:root{--color-bg:#f4f6f8;--color-surface:#fff;--color-border:#d9dee4;--color-text:#1f2933;--color-muted:#5f6b7a;--color-primary:#1d4ed8;--color-primary-hover:#1e40af;--color-focus:#93b4ff;--color-error:#b42318;--color-error-bg:#fef3f2;--color-info:#1e40af;--color-info-bg:#eff4ff;--color-success:#067647;--color-success-bg:#ecfdf3;--color-warning:#93370d;--color-warning-bg:#fffaeb;--color-warning-accent:#f79009;--color-dropzone-bg:#f8fafc;--color-dropzone-active:#e8efff;--radius:8px;--shadow:0 1px 3px #10182814, 0 1px 2px #1018280a;color:var(--color-text);background:var(--color-bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}h1,p{margin:0}h1{font-size:1.5rem;line-height:1.25}.muted{color:var(--color-muted)}.small{font-size:.875rem}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);font-size:.8rem;font-weight:600}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.5rem;display:flex}.app-header-brand{font-weight:600}.app-header-actions{align-items:center;gap:.75rem;display:flex}.header-error{color:var(--color-error);font-size:.8125rem}.centered-page{min-height:100vh;color:var(--color-muted);place-content:center;justify-items:center;gap:1rem;padding:1rem;display:grid}.page{gap:1.5rem;max-width:1120px;margin:0 auto;padding:2rem 1rem;display:grid}.page-header{gap:.5rem;display:grid}.actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.login-page{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{width:100%;max-width:400px;padding:2rem}.login-header{gap:.5rem;margin-bottom:1.5rem;display:grid}.login-header h1{font-size:1.25rem}.form{gap:1rem;display:grid}.field{gap:.375rem;display:grid}.field label{font-size:.875rem;font-weight:600}.field input{font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:inherit;padding:.625rem .75rem}.field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus);outline:none}.field input[aria-invalid=true]{border-color:var(--color-error)}.field-error{color:var(--color-error);font-size:.8125rem}.button{font:inherit;border-radius:var(--radius);cursor:pointer;border:1px solid #0000;padding:.625rem 1.125rem;font-weight:600;transition:background-color .15s,border-color .15s}.button:focus-visible{box-shadow:0 0 0 3px var(--color-focus);outline:none}.button:disabled{opacity:.55;cursor:not-allowed}.button-primary{background:var(--color-primary);color:#fff}.button-primary:hover:not(:disabled){background:var(--color-primary-hover)}.button-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.button-secondary:hover:not(:disabled){background:var(--color-bg)}.button-small{padding:.375rem .75rem;font-size:.875rem}.alert{border-radius:var(--radius);margin-top:1rem;padding:.75rem 1rem;font-size:.875rem}.form .alert{margin-top:0}.alert-error{color:var(--color-error);background:var(--color-error-bg)}.alert-info{color:var(--color-info);background:var(--color-info-bg)}.dropzone{text-align:center;border:2px dashed var(--color-border);border-radius:var(--radius);background:var(--color-dropzone-bg);cursor:pointer;place-items:center;gap:.375rem;padding:2.5rem 1rem;transition:background-color .15s,border-color .15s;display:grid}.dropzone:hover,.dropzone.is-dragging{border-color:var(--color-primary);background:var(--color-dropzone-active)}.dropzone:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus);outline:none}.dropzone.is-disabled{opacity:.6;cursor:not-allowed}.dropzone-title{font-weight:600}.file-summary{border:1px solid var(--color-border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.file-summary-info{align-items:center;gap:.875rem;min-width:0;display:flex}.file-badge{color:var(--color-primary);background:var(--color-info-bg);border-radius:6px;flex-shrink:0;padding:.375rem .5rem;font-size:.75rem;font-weight:700}.file-name{overflow-wrap:anywhere;font-weight:600}.file-list-wrapper{margin-top:1.25rem}.file-list-title{margin-bottom:.5rem;font-size:.875rem;font-weight:600}.file-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.file-list .file-summary{padding:.75rem 1rem}.file-summary-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.rejection-list{margin:.25rem 0 0;padding-left:1.25rem}.rejection-list strong{overflow-wrap:anywhere}.badge{white-space:nowrap;border-radius:999px;padding:.125rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.badge-success{color:var(--color-success);background:var(--color-success-bg)}.badge-warning{color:var(--color-warning);background:var(--color-warning-bg)}.badge-danger{color:var(--color-error);background:var(--color-error-bg)}.badge-info{color:var(--color-info);background:var(--color-info-bg)}.badge-neutral{color:var(--color-muted);background:var(--color-bg)}.result{gap:1.5rem;display:grid}.result-summary{gap:.5rem;display:grid}.result-summary h2{margin:0;font-size:1.25rem}.result-summary .alert{margin-top:.25rem}.result-search{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.search-input{min-width:0;font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:inherit;flex:260px;padding:.625rem .75rem}.search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus);outline:none}.search-input::-webkit-search-cancel-button{appearance:none}.result-search-count{flex-basis:100%}.order-group-list{gap:1rem;display:grid}.order-group{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-success);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.order-group-review{border-left-color:var(--color-error)}.order-group-warnings{border-left-color:var(--color-warning-accent)}.order-group-heading{font-size:inherit;margin:0}.order-group-toggle{width:100%;font:inherit;text-align:left;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.75rem;padding:.875rem 1.25rem;font-size:1.0625rem;font-weight:600;display:flex}.order-group-toggle:hover{background:var(--color-bg)}.order-group-toggle:focus-visible,.order-row-toggle:focus-visible{box-shadow:inset 0 0 0 3px var(--color-focus);outline:none}.order-group-title{flex:1}.order-group-count{text-align:center;min-width:1.75rem;color:var(--color-success);background:var(--color-success-bg);border-radius:999px;padding:.125rem .625rem;font-size:.875rem}.order-group-review .order-group-count{color:var(--color-error);background:var(--color-error-bg)}.order-group-warnings .order-group-count{color:var(--color-warning);background:var(--color-warning-bg)}.order-group-panel{border-top:1px solid var(--color-border)}.order-group-empty{margin:0;padding:.875rem 1.25rem}.collapse-chevron{color:var(--color-muted);flex-shrink:0;transition:transform .2s cubic-bezier(.4,0,.2,1);display:inline-block}.collapse-chevron.is-expanded{transform:rotate(90deg)}.order-row+.order-row{border-top:1px solid var(--color-border)}.order-row>.execution-result{margin:0 1.25rem .75rem 3.25rem}.order-row-summary{align-items:center;gap:.75rem;padding:.625rem 1.25rem;display:flex}.order-row-toggle,.order-row-toggle-placeholder{flex-shrink:0;width:1.75rem;height:1.75rem}.order-row-toggle{border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:inline-grid}.order-row-toggle:hover{background:var(--color-bg);border-color:var(--color-border)}.order-row-text{flex:1;gap:.125rem;min-width:0;display:grid}.order-row-title{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.9375rem;overflow:hidden}.order-row-meta,.order-row-message{color:var(--color-muted);overflow-wrap:anywhere;margin:0;font-size:.8125rem}.order-row-danger .order-row-message{color:var(--color-error)}.order-row-warning .order-row-message{color:var(--color-warning)}.confirm-dialog-warnings ul ul{margin:.25rem 0 .5rem}.order-row-message .error-code{color:var(--color-muted)}.order-row-badges{flex-wrap:wrap;justify-content:flex-end;gap:.375rem;display:flex}.order-row-actions{padding:.375rem .75rem}.order-row-detail{background:var(--color-bg);border-top:1px dashed var(--color-border);padding:1rem 1.25rem 1.25rem 3.25rem}@media (prefers-reduced-motion:reduce){.collapse-chevron{transition:none}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.error-code{margin-top:.25rem;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.8125rem;display:block}.order-detail{gap:1.25rem;display:grid}.order-detail>p{margin:0}.order-sections{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;display:grid}.order-section h4{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);margin:0 0 .5rem;font-size:.875rem}.order-section dl{gap:.375rem;margin:0;display:grid}.field-row{grid-template-columns:11rem 1fr;gap:.5rem;font-size:.9375rem;display:grid}.field-row dt{color:var(--color-muted)}.field-row dd{overflow-wrap:anywhere;margin:0}.hint{color:var(--color-muted);margin-top:.125rem;font-size:.8125rem;font-style:italic;display:block}.message-list{border-radius:var(--radius);border-left:4px solid;padding:.75rem 1rem;font-size:.9375rem}.message-list ul{margin:.25rem 0 0;padding-left:1.25rem}.message-list-title{font-weight:700}.message-list-danger{color:var(--color-error);background:var(--color-error-bg);border-color:var(--color-error)}.message-list-warning{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning)}.table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.875rem}.data-table th,.data-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border);padding:.5rem .625rem}.data-table th{background:var(--color-bg);white-space:nowrap;font-weight:600}.data-table tbody tr:last-child td{border-bottom:none}.data-table .numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.mono{white-space:nowrap;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.line-warnings{color:var(--color-warning);margin:.25rem 0 0;padding-left:1rem;font-size:.8125rem}@media (width<=480px){.card,.login-card{padding:1.25rem}.file-summary{flex-direction:column;align-items:stretch}.file-summary-actions{justify-content:space-between}.order-row-summary{flex-wrap:wrap;padding:.625rem 1rem}.order-row-text{flex-basis:calc(100% - 2.5rem)}.order-row-title{white-space:normal;overflow-wrap:anywhere}.order-row-badges{justify-content:flex-start;padding-left:2.5rem}.order-row-actions{flex-basis:100%}.order-row>.execution-result{margin:0 1rem .75rem}.order-row-detail{padding:.75rem .5rem}.actions .button{width:100%}}@media (width<=640px){.field-row{grid-template-columns:1fr;gap:0}}.alert-warning{color:var(--color-warning);background:var(--color-warning-bg)}.alert-detail{margin-top:.25rem;display:block}.plain-list{margin:0;padding:0;list-style:none}.checkbox{cursor:pointer;align-items:center;gap:.5rem;font-size:.9375rem;display:inline-flex}.checkbox input{width:1.125rem;height:1.125rem;accent-color:var(--color-primary);cursor:inherit;margin:0}.checkbox:has(input:disabled){opacity:.55;cursor:not-allowed}.execution-panel{border-left:4px solid var(--color-primary);gap:1rem;display:grid}.execution-panel-header{gap:.25rem;display:grid}.execution-panel h2{margin:0;font-size:1.25rem}.execution-panel .alert{margin-top:0}.execution-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;display:flex}.execution-toolbar-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.execution-summary{border-top:1px solid var(--color-border);gap:.75rem;padding-top:1rem;display:grid}.execution-summary h3{margin:0;font-size:1rem}.execution-summary .alert{margin-top:0}.execution-stats{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.execution-stats .badge{padding:.25rem .75rem;font-size:.875rem}.order-execution-actions{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-info-bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.execution-result{border-radius:var(--radius);border-left:4px solid;gap:.25rem;padding:.75rem 1rem;font-size:.9375rem;display:grid}.execution-result-header{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.execution-result-title{font-weight:700}.execution-result-number{font-variant-numeric:tabular-nums;font-size:1.125rem;font-weight:700}.execution-result-success{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success)}.execution-result-danger{color:var(--color-error);background:var(--color-error-bg);border-color:var(--color-error)}.execution-result-warning{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning)}.execution-result .error-code{color:var(--color-muted);margin-top:0}.confirm-dialog{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:min(480px,100vw - 2rem);color:var(--color-text);padding:1.5rem;box-shadow:0 12px 32px #10182833}.confirm-dialog::backdrop{background:#10182873}.confirm-dialog h2{margin:0 0 .75rem;font-size:1.125rem}.confirm-dialog-body{gap:.5rem;display:grid}.confirm-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}@media (width<=480px){.execution-toolbar-actions,.execution-toolbar-actions .button,.order-execution-actions .button{width:100%}}.job-progress{border-radius:var(--radius);background:var(--color-info-bg);gap:.375rem;margin-top:1rem;padding:.75rem 1rem;display:grid}.job-progress p{margin:0}.job-progress-bar{width:100%;height:.5rem;accent-color:var(--color-primary)}.alert-success{color:var(--color-success);background:var(--color-success-bg)}.alert p{margin:0}.alert .button{margin-top:.5rem}.order-edit-bar{margin-bottom:.75rem}.order-edit-bar-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.order-edit-bar .alert{margin-top:.5rem}.value-edited{flex-direction:column;align-items:flex-end;display:inline-flex}.value-effective{color:var(--color-info);font-weight:700}.value-original{color:var(--color-muted);font-size:.75rem;display:block}.line-deleted td,.value-deleted{color:var(--color-muted)}.line-deleted td:not(:last-child){text-decoration:line-through}.line-badges{flex-wrap:wrap;gap:.25rem;display:inline-flex}.order-edit-form{gap:.75rem;display:grid}.order-edit-form .actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:0;display:flex}.edit-cell{min-width:7rem}.edit-cell .badge{margin-top:.125rem}.edit-input{font:inherit;border:1px solid var(--color-border);text-align:right;background:var(--color-surface);width:100%;max-width:9rem;color:inherit;border-radius:6px;padding:.25rem .5rem}.edit-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus);outline:none}.edit-input.has-error{border-color:var(--color-error)}.edit-input:disabled{background:var(--color-bg)}.edit-cell .field-error{white-space:normal;display:block}.edit-line-title{font-weight:600;display:block}.form-field{gap:.25rem;display:grid}.form-field label{font-size:.875rem;font-weight:600}.form-field textarea{font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical;padding:.5rem .75rem}.order-edit-delivery{border:1px solid var(--color-border);border-radius:var(--radius);gap:.5rem;padding:.75rem;display:grid}.order-edit-delivery h5{margin:0;font-size:.9375rem}.order-edit-delivery .alert,.delivery-current p{margin:0}.delivery-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.delivery-input{text-align:left}
