:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-border:#e3e5e8;--color-border-strong:#cbced3;--color-bg:#f5f6f8;--color-surface:#fff;--color-text:#1a1a1a;--color-text-muted:#6b7280;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-tint:#eff4ff;--color-flagged:#b45309;--color-flagged-bg:#fef3c7;--color-completed:#15803d;--color-completed-hover:#12692f;--color-completed-bg:#dcfce7;--color-unverified:#b91c1c;--color-unverified-bg:#fee2e2;--color-error:#b91c1c;--color-error-bg:#fee2e2;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #0f172a0d;--shadow-md:0 4px 12px #0f172a14, 0 1px 2px #0f172a0a;--shadow-lg:0 12px 32px #0f172a1f;--transition-fast:.12s ease}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Malgun Gothic,Apple SD Gothic Neo,sans-serif;font-size:14px}h1{margin:0 0 var(--space-4);font-size:20px;font-weight:700}button{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);transition:background var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);border:none;align-self:flex-start;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:600}button:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:var(--shadow-md)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{color:#6b7280;cursor:not-allowed;box-shadow:none;background:#d1d5db}.btn-secondary,.btn-danger{border-radius:var(--radius-md);cursor:pointer;background:var(--color-surface);transition:background var(--transition-fast), box-shadow var(--transition-fast);padding:10px 18px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.btn-secondary{color:var(--color-text);border:1px solid var(--color-border-strong);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--color-bg);box-shadow:none}.btn-danger{color:var(--color-error);border:1px solid var(--color-error-bg);box-shadow:none}.btn-danger:hover:not(:disabled){background:var(--color-error-bg);box-shadow:none}
:root{--header-height:56px;--bp-tablet:720px;--bp-desktop:1080px;--submit-bar-height:70px;--review-header-height:52px;--queue-tabs-height:44px;--review-shell-height:max(320px, calc(100vh - var(--header-height) - var(--submit-bar-height)))}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.tabular{font-variant-numeric:tabular-nums}.app-header{z-index:20;align-items:center;gap:var(--space-4);min-height:var(--header-height);padding:var(--space-3) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);display:flex;position:sticky;top:0}.app-header h1{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;font-size:16px;overflow:hidden}.app-header nav{gap:var(--space-2);flex-shrink:0;margin-left:auto;display:flex}.app-nav-link{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);color:var(--color-text-muted);white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast);border-radius:999px;font-size:13.5px;font-weight:700;line-height:16px;text-decoration:none;display:flex}.app-nav-link:hover{background:var(--color-bg);color:var(--color-text)}.app-nav-link[aria-current=page]{background:var(--color-primary-tint);color:var(--color-primary)}@media (max-width:720px){.app-header{gap:var(--space-2);padding-right:var(--space-3);padding-left:var(--space-3)}.app-nav-link{padding-right:var(--space-3);padding-left:var(--space-3)}}main{padding:0 var(--space-5)}.card{max-width:560px;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:0 auto}.field{gap:var(--space-2);margin-bottom:var(--space-4);flex-direction:column;display:flex}.sub,.hint{color:var(--color-text-muted);font-size:13px}.form-error{color:var(--color-error);background:var(--color-error-bg);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.invoice-table{border-collapse:collapse;width:100%;margin-bottom:20px}.invoice-table th,.invoice-table td{padding:var(--space-2);border-bottom:1px solid var(--color-border);text-align:left}.invoice-table th[data-column=change],.invoice-table td[data-column=change]{text-align:center}.review-head h1{margin:0 0 var(--space-1);font-size:18px}.review-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.review-head .meta{color:var(--color-text-muted);font-size:13px}.summary-bar{gap:var(--space-3);margin:var(--space-4) 0;display:flex}.summary-item{gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.summary-item.attn{border-color:var(--color-flagged);background:var(--color-flagged-bg)}.summary-item .n{font-variant-numeric:tabular-nums;font-size:20px;font-weight:600}.summary-item .l{color:var(--color-text-muted);font-size:12px}.toolbar{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.toggle-all,.recalc{padding:var(--space-2) var(--space-3);color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:none;background:0 0;font-size:13px}.toggle-all:hover:not(:disabled),.recalc:hover:not(:disabled){border-color:var(--color-primary);box-shadow:none;background:0 0}.line-table{border-collapse:collapse;width:100%}.line-table th,.line-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.line-table td.num{font-variant-numeric:tabular-nums}.row-quiet{background:var(--color-bg)}.cell-edit{align-items:center;gap:var(--space-1);display:inline-flex}.cell-edit .editable{width:100%;min-width:60px;padding:2px var(--space-1);border-radius:var(--radius-sm);font:inherit;font-variant-numeric:inherit;color:inherit;background:0 0;border:1px solid #0000}.cell-edit .editable:hover{border-color:var(--color-border)}.cell-edit .editable:focus{background:var(--color-surface);border-color:var(--color-primary);outline:none}.num-prefix,.num-suffix,.prev-price,.printed-price{color:var(--color-text-muted);font-size:12px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gst-line{align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.gst-chip{padding:1px var(--space-2);border-radius:var(--radius-sm);font-size:11px}.gst-chip.tax{background:var(--color-primary-tint);color:var(--color-primary)}.gst-chip.free{background:var(--color-completed-bg);color:var(--color-completed)}.gst-chip.unknown{background:var(--color-flagged-bg);color:var(--color-flagged)}.gst-resolve{gap:var(--space-1);display:inline-flex}.gst-resolve-btn,.note-toggle,.inline-action,.candidate-btn{padding:1px var(--space-2);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-size:11px}.inline-action:hover:not(:disabled){background:var(--color-bg);color:var(--color-text);box-shadow:none}.note-area{margin-top:var(--space-1)}.note-field{align-items:center;gap:var(--space-1);display:flex}.badge{margin-right:var(--space-1);padding:1px var(--space-2);background:var(--color-flagged-bg);color:var(--color-flagged);border-radius:var(--radius-sm);font-size:11px;display:inline-block}.label-reprint{margin-top:var(--space-1);color:var(--color-text-muted);font-size:11px}.candidate-picker{gap:var(--space-1);margin-top:var(--space-2);flex-direction:column;display:flex}.candidate-title{color:var(--color-text-muted);font-size:11px}.scan-panel{gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.scan-panel .row{gap:var(--space-2);display:flex}.scan-panel .checkbox{align-items:center;gap:var(--space-2);font-size:12px;display:flex}.scan-panel .checkbox input{flex:none;margin:0}.newproduct-extra{gap:var(--space-1);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--color-flagged);flex-direction:column;display:flex}.newproduct-extra label,.field-label{color:var(--color-flagged);letter-spacing:.03em;font-size:11px;font-weight:700}.gst-toggle{gap:var(--space-2);display:flex}.gst-toggle button{background:var(--color-surface);color:var(--color-flagged);border:1px solid var(--color-flagged);box-shadow:none;flex:1}.gst-toggle button[aria-pressed=true]{background:var(--color-flagged);color:var(--color-surface)}.gst-toggle button:hover:not(:disabled){background:var(--color-flagged-bg);color:var(--color-flagged);box-shadow:none}.gst-toggle button[aria-pressed=true]:hover:not(:disabled){background:var(--color-flagged);color:var(--color-surface)}.confirm-strip{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;position:sticky;bottom:0}.screen-message{top:var(--header-height);z-index:15;margin:var(--space-3) 0;box-shadow:var(--shadow-md);position:sticky}.btn-submit{padding:var(--space-3) var(--space-5);flex:none;font-size:15px}.block-msg{color:var(--color-flagged);max-width:420px;font-size:13px}.block-msg.ok{color:var(--color-completed)}.form-notice{color:var(--color-primary);background:var(--color-primary-tint);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.login-container{justify-content:center;align-items:center;min-height:70vh;display:flex}.login-form{gap:var(--space-3);width:320px;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;display:flex}.upload-grid{gap:var(--space-5);grid-template-columns:1fr;align-items:start;max-width:900px;margin:0 auto;display:grid}@media (min-width:720px){.upload-grid{grid-template-columns:1.6fr 1fr}}.upload-wrap{max-width:520px;margin:var(--space-5) auto 0}.tips-card{margin-top:var(--space-5);padding:var(--space-5)}.tips-card h2{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);font-size:15px;display:flex}.tips-list{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tips-list li{align-items:flex-start;gap:10px;display:flex}.tip-icon{background:var(--color-primary-tint);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-primary);flex:none;justify-content:center;align-items:center;font-size:16px;display:flex}.tip-title{margin-bottom:2px;font-size:13.5px;font-weight:700;display:block}.tip-detail{color:var(--color-text-muted);font-size:12.5px;display:block}.upload-card{padding:var(--space-5)}.upload-card h1{margin-bottom:var(--space-1);font-size:21px}.upload-card .sub{margin:0 0 var(--space-5);font-size:14px}.step{margin-bottom:var(--space-5)}.step-label{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:12.5px;font-weight:700;display:flex}.step-label .n{background:var(--color-border-strong);width:18px;height:18px;color:var(--color-surface);border-radius:999px;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.select-field{background:var(--color-surface);border:1.5px solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;color:var(--color-text);padding:14px;font-family:inherit;font-size:15px}.dropzone{padding:var(--space-5) var(--space-4);border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);display:block}.dropzone:hover,.dropzone:focus-within{background:var(--color-primary-tint);border-color:var(--color-primary)}.dropzone .icon,.dropzone .primary-text,.dropzone .secondary-text,.dropzone .filename{display:block}.dropzone .icon{margin-bottom:var(--space-2);font-size:34px}.dropzone .primary-text{font-size:15px;font-weight:700}.dropzone .secondary-text{margin-top:var(--space-1);color:var(--color-text-muted);font-size:13px}.dropzone .filename{margin-top:var(--space-3);color:var(--color-completed);font-size:13.5px;font-weight:600}.format-hint{margin-top:var(--space-2);color:var(--color-text-muted);font-size:12.5px}.cta-primary{align-self:stretch;width:100%;padding:15px;font-size:15.5px;font-weight:700}.progress-card,.fail-card{padding:var(--space-5);text-align:center}.spinner{width:44px;height:44px;margin:0 auto var(--space-4);border:4px solid var(--color-primary-tint);border-top-color:var(--color-primary);border-radius:999px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress-card h2,.fail-card h2{margin:0 0 var(--space-1);font-size:17px}.progress-card .stage-text{min-height:18px;color:var(--color-text-muted);font-size:13.5px}.progress-bar-track{height:6px;margin:var(--space-5) 0 var(--space-2);background:var(--color-border);border-radius:999px;overflow:hidden}.progress-bar-fill{background:var(--color-primary);border-radius:999px;height:100%;transition:width .6s}.progress-note,.fail-card p{color:var(--color-text-muted);font-size:12.5px}.fail-icon{width:44px;height:44px;margin:0 auto var(--space-4);background:var(--color-error-bg);color:var(--color-error);border-radius:999px;justify-content:center;align-items:center;font-size:22px;font-weight:800;display:flex}.fail-actions{gap:var(--space-2);justify-content:center;display:flex}.btn-secondary-lg{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:none;color:var(--color-text);padding:12px 18px;font-size:14px;font-weight:600}.btn-secondary-lg:hover:not(:disabled){background:var(--color-bg);box-shadow:none}.review-shell{gap:var(--space-4);flex-direction:column;display:flex}.review-header{top:var(--header-height);z-index:20;align-items:center;gap:var(--space-3);min-height:var(--review-header-height);padding:var(--space-2) 0;background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-wrap:nowrap;display:flex;position:sticky}.review-title{min-width:0}.review-header h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:17px;overflow:hidden}.review-header .meta{color:var(--color-text-muted);white-space:nowrap;font-size:13px}.review-header .meta b{color:var(--color-text)}.review-header .back-to-mapping{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);white-space:nowrap;margin-left:auto;padding:6px 12px;font-size:13px;text-decoration:none}.review-header .back-to-mapping:hover{background:var(--color-bg)}.queue-section-label{align-items:center;gap:var(--space-2);margin:var(--space-2) 0 var(--space-1);color:var(--color-text-muted);font-size:13px;font-weight:700;display:flex}.queue-section-label .rule{background:var(--color-border);flex:1;height:1px}.reason-badge{white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:11.5px;font-weight:700}.reason-badge.blocker{background:var(--color-unverified-bg);color:var(--color-unverified)}.reason-badge.attn{background:var(--color-flagged-bg);color:var(--color-flagged);width:fit-content;height:fit-content}.candidate-list{gap:var(--space-2);flex-direction:column;display:flex;position:relative}.candidate-dropdown{top:calc(100% + var(--space-1));z-index:30;gap:var(--space-2);max-height:320px;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute;left:0;right:0;overflow-y:auto}.candidate-dropdown--flip-up{top:auto;bottom:calc(100% + var(--space-1))}.candidate-list .candidate-title{color:var(--color-text-muted);font-size:12.5px;font-weight:700}.candidate-list .candidate-note{color:var(--color-unverified);font-size:12px;font-weight:600}.candidate-search-boxes{gap:var(--space-2);display:flex}.candidate-search-field{flex:1 1 0;min-width:0}@media (max-width:900px){.candidate-search-boxes{flex-direction:column}}.candidate-search{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text);padding:8px 10px;font-family:inherit;font-size:13.5px}.candidate-search:focus{border-color:var(--color-primary);outline:none}.candidate-search--confirmed::placeholder{color:var(--color-text);opacity:1;font-weight:600}.candidate-search--ai-suggested{background:var(--color-primary-tint);border-color:var(--color-primary)}.candidate-ai-badge{background:var(--color-primary);border-radius:var(--radius-sm);color:#fff;white-space:nowrap;padding:1px 5px;font-size:10.5px;font-weight:700;display:inline-block}.ai-link-badge{background:var(--color-primary-tint);border:1px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-primary);white-space:nowrap;padding:1px 6px;font-size:10.5px;font-weight:700;display:inline-block}.candidate-option{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;box-shadow:none;color:var(--color-text);text-align:left;align-items:center;gap:10px;padding:10px 12px;display:flex}.candidate-option:hover:not(:disabled),.candidate-option.is-picked,.candidate-option.is-highlighted{background:var(--color-primary-tint);border-color:var(--color-primary);box-shadow:none;color:var(--color-text)}.candidate-option.is-suggested{border-color:var(--color-flagged);border-style:dashed}.candidate-radio{border:2px solid var(--color-border-strong);border-radius:999px;flex:none;width:18px;height:18px}.candidate-option.is-picked .candidate-radio{background:radial-gradient(circle, var(--color-primary) 0 40%, transparent 44%);border-color:var(--color-primary)}.candidate-body b{font-size:14px;display:block}.candidate-body span{color:var(--color-text-muted);font-size:12px}.candidate-body .candidate-name-en{color:var(--color-text);font-size:12.5px;display:block}.note-row{align-items:center;gap:var(--space-1);color:var(--color-text-muted);font-size:13px;display:flex}.note-row input{padding:var(--space-2) 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);flex:1;font-size:13.5px}.review-split{gap:var(--space-4);align-items:flex-start;display:flex}.queue-panel{gap:var(--space-3);flex-direction:column;flex:1;min-width:0;display:flex}.doc-panel{display:none}@media (min-width:721px){.review-shell{height:var(--review-shell-height)}.review-split{flex:1;align-items:stretch;min-height:0}.doc-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-height:0;box-shadow:var(--shadow-sm);flex-direction:column;flex:0 0 36%;display:flex;overflow:hidden}.queue-panel{min-height:0;overflow-y:auto}.queue-panel .review-tabs{z-index:2;min-height:var(--queue-tabs-height);background:var(--color-bg);position:sticky;top:0}.queue-panel .review-table thead th{top:var(--queue-tabs-height)}.queue-panel .mapping-table thead th{top:0}}.doc-toolbar{justify-content:space-between;align-items:center;gap:var(--space-2);padding:10px var(--space-4);background:var(--color-bg);border-bottom:1px solid var(--color-border);display:flex}.doc-toolbar h2{font-size:13.5px;font-weight:700}.doc-zoom{align-items:center;gap:var(--space-1);display:flex}.doc-zoom button{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);width:30px;height:30px;box-shadow:none;color:var(--color-text);padding:0;font-size:15px;font-weight:700;line-height:1}.doc-zoom button:hover:not(:disabled){background:var(--color-bg);box-shadow:none}.doc-zoom .pct{min-width:42px;color:var(--color-text-muted);text-align:center;font-size:12px}.doc-viewport{padding:var(--space-4);background:#dfe2e8;flex:1;justify-content:center;align-items:flex-start;display:flex}.doc-viewport,.doc-overlay-body{touch-action:none;cursor:grab;overflow:hidden}.doc-viewport[data-panning=true] .doc-page,.doc-overlay-body[data-panning=true] .doc-page{transition:none}.doc-viewport[data-panning=true],.doc-overlay-body[data-panning=true]{cursor:grabbing;-webkit-user-select:none;user-select:none}.doc-page{background:var(--color-surface);width:100%;max-width:520px;min-height:320px;box-shadow:var(--shadow-md);transform-origin:top;transition:transform var(--transition-fast);position:relative}.doc-page img,.doc-page canvas{width:100%;height:auto;display:block}.doc-page img{-webkit-user-drag:none}.doc-toolbar-controls{align-items:center;gap:var(--space-3);display:flex}.doc-pager{align-items:center;gap:var(--space-1);display:flex}.doc-pager button{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);width:30px;height:30px;box-shadow:none;color:var(--color-text);padding:0;font-size:15px;line-height:1}.doc-pager button:hover:not(:disabled){background:var(--color-bg);box-shadow:none}.doc-page-count{min-width:44px;color:var(--color-text-muted);text-align:center;font-size:12px}.doc-overlay .doc-pager{padding-bottom:var(--space-2);justify-content:center}.doc-overlay .doc-pager button{width:38px;height:38px;color:var(--color-surface);background:#ffffff1f;border:none;border-radius:999px;font-size:17px}.doc-overlay .doc-page-count{color:var(--color-surface)}.doc-fab{right:var(--space-4);z-index:45;align-items:center;gap:var(--space-1);padding:11px var(--space-4);background:var(--color-text);box-shadow:var(--shadow-lg);color:var(--color-surface);border:none;border-radius:999px;font-size:13px;font-weight:700;display:inline-flex;position:fixed;bottom:80px}.doc-fab:hover:not(:disabled){background:var(--color-text);box-shadow:var(--shadow-lg)}@media (min-width:720px){.doc-fab{display:none}}.doc-overlay{z-index:90;background:#0f1115eb;flex-direction:column;display:flex;position:fixed;inset:0}.doc-overlay-bar{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);color:var(--color-surface);display:flex}.doc-overlay-bar h2{font-size:14px;font-weight:700}.doc-overlay-close{width:36px;height:36px;box-shadow:none;color:var(--color-surface);background:#ffffff1f;border:none;border-radius:999px;padding:0;font-size:16px}.doc-overlay .doc-zoom{padding-bottom:var(--space-4);justify-content:center}.doc-overlay .doc-zoom button{width:38px;height:38px;color:var(--color-surface);background:#ffffff1f;border:none;border-radius:999px;font-size:17px}.doc-overlay .doc-zoom button:hover:not(:disabled),.doc-overlay .doc-pager button:hover:not(:disabled),.doc-overlay-close:hover:not(:disabled){box-shadow:none;background:#ffffff38}.doc-overlay-body{padding:var(--space-4);flex:1;justify-content:center;align-items:flex-start;display:flex}.submit-bar{z-index:40;min-height:var(--submit-bar-height);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-top:1px solid var(--color-border);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 18px #0f172a14}.submit-bar.is-actions-only{min-height:auto}.mapping-shell{--submit-bar-height:72px;--review-shell-height:max(320px, calc(100vh - var(--header-height) - var(--submit-bar-height)))}.mapping-unresolved-hint{max-width:1120px;margin:0 auto var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-primary-tint);border-radius:var(--radius-sm);color:var(--color-text-muted);text-align:center;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-size:13px;line-height:18px;display:-webkit-box;overflow:hidden}.mapping-shell.has-unresolved-hint{--submit-bar-height:114px}.submit-bar-inner{align-items:center;gap:var(--space-4);flex-wrap:wrap;justify-content:center;max-width:1120px;margin:0 auto;display:flex}.submit-msg{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;flex:1;min-width:220px;font-size:13.5px;font-weight:600;line-height:18px;display:-webkit-box;overflow:hidden}.submit-msg.blocked{color:var(--color-unverified)}.submit-msg.ok{color:var(--color-completed)}.submit-actions{align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.submit-action{flex-direction:column;flex:160px;gap:6px;max-width:260px;display:flex}.submit-btn{padding:13px 22px;font-size:14.5px;font-weight:700;line-height:18px}.submit-action .submit-btn{width:100%}.submit-action-status{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:12.5px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.submit-action-status.wait{color:var(--color-text-muted)}.submit-action-status.ok{color:var(--color-completed)}.submit-action-status.attn{color:var(--color-unverified)}.submit-link{color:var(--color-text-muted);align-self:center;font-size:13px;font-weight:600;text-decoration:underline}@media (max-width:1080px) and (min-width:721px){:root{--submit-bar-height:180px}.submit-msg{flex-basis:100%}}@media (max-width:720px){:root{--submit-bar-height:249px}.review-shell{padding-bottom:var(--submit-bar-height)}.mapping-shell{--submit-bar-height:131px}.mapping-shell.has-unresolved-hint{--submit-bar-height:209px}.submit-action{flex-basis:calc(50% - 6px);min-width:0}.submit-action-status{-webkit-line-clamp:3;line-clamp:3}.submit-link{flex-basis:100%}}.complete-wrap{max-width:640px;margin:0 auto}.independence-note{margin:var(--space-3) 0 var(--space-5);padding:10px var(--space-4);background:var(--color-primary-tint);border-radius:var(--radius-md);color:var(--color-text-muted);border:1px solid #c7d9fb;font-size:13px}.target-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.target-row{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-left:5px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.target-row[data-tone=ok]{border-left-color:var(--color-completed)}.target-row[data-tone=attn]{border-left-color:var(--color-flagged)}.target-row[data-tone=wait]{border-left-color:var(--color-primary)}.target-top{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.target-name{font-size:15px;font-weight:700}.target-status{padding:var(--space-1) 10px;border-radius:999px;font-size:12.5px;font-weight:700}.target-status.ok{background:var(--color-completed-bg);color:var(--color-completed)}.target-status.attn{background:var(--color-flagged-bg);color:var(--color-flagged)}.target-status.wait{background:var(--color-primary-tint);color:var(--color-primary)}.target-status.none{background:var(--color-bg);color:var(--color-text-muted)}.target-tag{padding:2px var(--space-1);background:var(--color-text);border-radius:var(--radius-sm);color:var(--color-surface);font-size:11px;font-weight:700}.target-meta{color:var(--color-text-muted);align-items:center;gap:10px;margin-left:auto;font-size:12px;display:flex}.target-action{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.target-action button{padding:9px var(--space-4);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:none;color:var(--color-text);font-size:13.5px;font-weight:600}.target-action button:hover:not(:disabled){background:var(--color-bg);box-shadow:none}.target-action button.primary{background:var(--color-primary);color:var(--color-surface);border:none}.target-action button.primary:hover:not(:disabled){background:var(--color-primary-hover);color:var(--color-surface)}.retry-strip{align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-flagged-bg);border-radius:var(--radius-md);border:1px solid #f3d896;flex-wrap:wrap;display:flex}.retry-strip span{color:var(--color-flagged);font-size:13px;font-weight:600}.retry-strip button{padding:9px var(--space-4);background:var(--color-flagged);border-radius:var(--radius-md);color:var(--color-surface);border:none;margin-left:auto;font-size:13px;font-weight:700}.cell-input-wrap{align-items:center;gap:5px;width:100%;display:flex}.cell-input{border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;background:0 0;border:1.5px solid #0000;width:100%;min-width:0;padding:6px 8px;font-size:14px}.cell-input-wrap.align-end .cell-input{text-align:right}.cell-input:hover{border-color:var(--color-border-strong)}.cell-input:focus{border-color:var(--color-primary);background:var(--color-surface);outline:none}.cell-input.is-missing{border-color:var(--color-flagged)}.price-mark{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;padding:0;font-size:12px;font-weight:700;display:block}.kpos-queue-row .price-mark{text-align:center}.price-mark.up{color:var(--color-unverified)}.price-mark.down{color:var(--color-primary)}.review-table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.review-table th[data-column=name],.review-table td[data-column=name]{width:30%}.review-table th[data-column=size],.review-table td[data-column=size]{width:120px}.review-table th[data-column=unit],.review-table td[data-column=unit]{width:160px}.review-table th[data-column=qty],.review-table td[data-column=qty]{width:75px}.review-table th[data-column=gst],.review-table td[data-column=gst]{width:72px}.review-table thead th{top:var(--header-height);z-index:1;background:var(--color-surface);box-shadow:inset 0 -1px 0 var(--color-border);color:var(--color-text-muted);text-align:left;white-space:nowrap;padding:8px;font-size:12px;font-weight:600;position:sticky}.review-table tbody td{padding:var(--space-2);border-bottom:1px solid var(--color-border);vertical-align:middle}.review-table td.align-end,.review-table thead th.align-end{text-align:right}.cell-note{color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:right;padding:0 8px;font-size:12px;display:block}.cell-warning{color:var(--color-flagged);text-align:right;padding:0 8px;font-size:12px;display:block}.review-table .cell-name{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:6px 8px}.review-table .cell-name:hover{box-shadow:none;background:0 0;text-decoration:underline}.review-table .cell-name.is-missing{border:1px solid var(--color-flagged);border-radius:var(--radius-sm)}.review-empty td{color:var(--color-text-muted);text-align:center;padding:24px 8px}.modal-backdrop{width:min(600px, calc(100vw - 2 * var(--space-4)));max-width:min(600px, calc(100vw - 2 * var(--space-4)));max-height:calc(100vh - 2 * var(--space-5));border-radius:var(--radius-lg);background:0 0;border:none;padding:0;overflow:auto}.modal-backdrop::backdrop{background:#0f172a73}.modal-panel{padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);justify-content:space-between;gap:var(--space-4);flex-direction:column;min-height:100%;display:flex}.modal-header{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.modal-header h2{margin:0;font-size:16px;font-weight:600}.modal-content{white-space:pre-line;text-align:center;justify-content:center;line-height:1.6;display:flex}.modal-actions{justify-content:center;align-items:center;gap:var(--space-4);display:flex}.modal-actions .close{color:#000;border:1px solid var(--color-primary);background-color:#fff!important}.modal-actions .close:hover{background:#e5e5e5!important}.modal-close{border-radius:var(--radius-sm);width:44px;height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:20px;line-height:1;display:flex}.modal-close:hover:not(:disabled){background:var(--color-bg);color:var(--color-text);box-shadow:none}.review-tabs{gap:var(--space-2);flex-wrap:nowrap;display:flex;overflow-x:auto}.review-tab{padding:var(--space-3) var(--space-4);white-space:nowrap;background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border-strong);box-shadow:none;border-radius:999px;font-size:14px;font-weight:800}.review-tab:hover:not(:disabled){background:var(--color-bg);box-shadow:none}.review-tab.is-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface)}.review-tab.is-active:hover:not(:disabled){background:var(--color-primary-hover);color:var(--color-surface)}.review-tab .count{font-variant-numeric:tabular-nums;opacity:.85}.review-row{background:var(--color-surface);transition:background var(--transition-fast)}.review-row:nth-child(2n){background:var(--color-bg)}.review-row:hover{background:var(--color-primary-tint)}.mapping-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:14px}.mapping-table th[data-column=seq],.mapping-table td[data-column=seq]{width:52px}.mapping-table th[data-column=new],.mapping-table td[data-column=new]{width:56px}.mapping-table th[data-column=delete],.mapping-table td[data-column=delete]{width:48px}.mapping-table th[data-column=raw],.mapping-table td[data-column=raw],.mapping-table th[data-column=matched],.mapping-table td[data-column=matched]{width:calc(50% - 78px)}.mapping-table td.align-end,.mapping-table thead th.align-end{text-align:right}.mapping-table td[data-column=raw]{overflow-wrap:anywhere}.raw-cell{align-items:center;gap:var(--space-1);display:flex}.raw-cell .raw-text{flex:auto;min-width:0;max-width:450px}.raw-cell .candidate-ai-badge,.raw-cell .ai-link-badge{width:fit-content}.mapping-table thead th{top:var(--header-height);z-index:1;background:var(--color-surface);box-shadow:inset 0 -1px 0 var(--color-border);color:var(--color-text-muted);text-align:left;white-space:nowrap;padding:8px;font-size:12px;font-weight:600;position:sticky}.mapping-table tbody td{padding:var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}.mapping-row{background:var(--color-surface);transition:background var(--transition-fast)}.mapping-row:nth-child(2n){background:var(--color-bg)}.mapping-row:hover{background:var(--color-primary-tint)}.mapping-empty td{color:var(--color-text-muted);text-align:center;padding:24px 8px}.gst-checkbox{background:var(--color-surface);border:1.5px solid var(--color-border-strong);border-radius:var(--radius-sm);appearance:none;cursor:pointer;flex:none;width:22px;height:22px;margin:0;position:relative}.gst-checkbox:checked{background:var(--color-primary);border-color:var(--color-primary)}.gst-checkbox:checked:after{content:"";border:solid var(--color-surface);border-width:0 2px 2px 0;width:6px;height:11px;position:absolute;top:3px;left:7px;transform:rotate(45deg)}.gst-checkbox.is-missing{border-color:var(--color-flagged)}.product-edit{gap:var(--space-4);flex-direction:column;display:flex}.edit-reasons{gap:var(--space-2);flex-wrap:wrap;display:flex}.edit-grid,.edit-prices{gap:var(--space-4);padding:var(--space-4);background:var(--color-bg);border-radius:var(--radius-md);grid-template-columns:1fr;display:grid}@media (min-width:720px){.edit-grid,.edit-prices{grid-template-columns:1fr 1fr}}.edit-field{color:var(--color-text);flex-direction:column;gap:6px;font-size:16px;font-weight:600;display:flex}.edit-field input,.edit-field select{width:100%;padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:inherit;font-size:15px;font-weight:400}.edit-field input:focus,.edit-field select:focus{border-color:var(--color-primary);outline:none}.edit-field.is-readonly{grid-column:1/-1}.edit-readonly{padding:var(--space-3);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:15px;font-weight:500}.edit-field.is-readonly.is-gridded{grid-column:auto}.edit-exported{padding:var(--space-3) var(--space-4);background:var(--color-bg);border-radius:var(--radius-md);color:var(--color-text);font-size:14px;font-weight:600;line-height:1.5}.edit-field.is-unverified .edit-hint{font-weight:500}.edit-hint{color:var(--color-text-muted);white-space:pre-line;font-size:12.5px;font-weight:400}.edit-gst{align-items:center;gap:var(--space-2);color:var(--color-text);-webkit-user-select:none;user-select:none;grid-column:1/-1;width:fit-content;font-size:14px;font-weight:600;display:flex}.edit-actions{justify-content:center;display:flex}.btn-primary-lg{min-height:47px;padding:var(--space-3) var(--space-5);border-radius:999px;font-size:15px;font-weight:700}:root{--list-content-width:1300px;--list-sidebar-width:394px}.list-page{gap:var(--space-4);max-width:var(--list-content-width);flex-direction:column;margin:0 auto;padding:20px 0;display:flex}.list-page h1{margin:0;font-size:34px}.list-shell{align-items:flex-start;gap:var(--space-4);flex-wrap:nowrap;display:flex}.list-main{gap:var(--space-4);min-width:0;padding:var(--space-3);background:var(--color-bg);border-radius:var(--radius-md);flex-direction:column;flex:1;display:flex;overflow-x:auto}body:has(.list-page){background:var(--color-surface)}@media (max-width:720px){.list-shell{flex-direction:column}}.wholesaler-sidebar{flex:0 0 var(--list-sidebar-width);gap:var(--space-2);width:var(--list-sidebar-width);padding:var(--space-3);background:var(--color-bg);border-radius:var(--radius-md);flex-direction:column;display:flex}@media (max-width:720px){.wholesaler-sidebar{flex-flow:wrap;flex:none;width:100%}}@media (max-width:1080px) and (min-width:721px){.wholesaler-sidebar{flex:0 1 var(--list-sidebar-width);width:auto;min-width:200px}}.wholesaler-sidebar-item{min-height:50px;padding:var(--space-2) var(--space-3);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:none;color:var(--color-text);text-align:center;border:none;justify-content:center;align-self:stretch;align-items:center;font-size:14px;font-weight:700;display:flex}.wholesaler-sidebar-item:hover:not(:disabled){background:var(--color-bg);box-shadow:none}.wholesaler-sidebar-item.is-active{background:var(--color-primary);color:var(--color-surface)}.wholesaler-sidebar-item.is-active:hover:not(:disabled){background:var(--color-primary-hover);color:var(--color-surface)}.invoice-status-tabs{gap:var(--space-3);display:flex}.invoice-status-tab{min-height:50px;padding:var(--space-2) var(--space-4);background:var(--color-surface);border:2px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:none;color:var(--color-text-muted);flex:1 1 0;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex}.invoice-status-tab:hover:not(:disabled){background:var(--color-surface);border-color:var(--color-primary);box-shadow:none}.invoice-status-tab.is-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface)}.invoice-status-tab.is-active:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-surface)}.list-main .invoice-table thead th{padding:var(--space-3);background:var(--color-bg);color:var(--color-text);white-space:nowrap;font-size:15px;font-weight:700}.invoice-table-row{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast)}.invoice-table-row:nth-child(2n){background:var(--color-bg);border-color:#0000}.invoice-table-row:hover{background:var(--color-primary-tint)}.invoice-table-row td{padding:var(--space-3)}.invoice-table-row-delete-button,.mapping-row-delete-button{color:#000;stroke:#000;background-color:#0000;width:24px;height:24px;padding:0}.invoice-table-row-delete-button:hover,.mapping-row-delete-button:hover{background-color:#0000!important}.invoice-table .cell-name{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.invoice-table .cell-name:hover{box-shadow:none;background:0 0;text-decoration:underline}.invoice-table .row-review-link{margin-left:var(--space-2);color:var(--color-text-muted);font-size:12px;text-decoration:none}.invoice-table .row-review-link:hover{color:var(--color-primary)}.invoice-status-pill{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:7px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.invoice-status-pill.done{background:var(--color-completed-bg);color:var(--color-completed)}.invoice-status-pill.attn{background:var(--color-flagged-bg);color:var(--color-flagged)}.invoice-status-pill.progress{background:var(--color-primary-tint);color:var(--color-primary)}.kpos-queue-row{background:var(--color-surface);transition:background var(--transition-fast)}.kpos-queue-row:nth-child(2n){background:var(--color-bg)}.kpos-queue-row:hover{background:var(--color-primary-tint)}.kpos-queue-row td{padding:var(--space-3);word-break:keep-all}.kpos-queue-table th[data-column=date],.kpos-queue-table td[data-column=date]{white-space:nowrap;width:108px}.kpos-queue-table th[data-column=barcode],.kpos-queue-table td[data-column=barcode],.kpos-queue-table th[data-column=kind],.kpos-queue-table td[data-column=kind]{white-space:nowrap}.kpos-queue-table th[data-column=select],.kpos-queue-table td[data-column=select]{width:40px}.rules-hub-header{max-width:560px;margin:0 auto var(--space-4)}.rules-page-intro{max-width:560px;margin:0 auto var(--space-4);color:var(--color-text-muted);font-size:13px;line-height:1.7}.rules-advanced{max-width:1280px;margin:var(--space-6) auto 0;padding-top:var(--space-4);border-top:1px solid var(--color-border)}.rules-advanced>summary{color:var(--color-text-muted);cursor:pointer;font-size:13px;font-weight:700;list-style-position:outside}.rules-advanced>summary:hover{color:var(--color-text)}.rules-advanced>.rules-page-intro{max-width:none;margin:var(--space-3) 0 var(--space-4)}.rules-tabs{gap:var(--space-2);flex-wrap:nowrap;display:flex;overflow-x:auto}.rules-tab{padding:var(--space-2) var(--space-4);background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border);white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast);border-radius:999px;font-size:13.5px;font-weight:700;line-height:16px;text-decoration:none}.rules-tab:hover{background:var(--color-bg);color:var(--color-text)}.rules-tab[aria-current=page]{background:var(--color-primary-tint);color:var(--color-primary);border-color:var(--color-primary-tint)}.hint-input{min-height:160px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;font-size:13px;line-height:1.6}.hint-input-count{margin:var(--space-1) 0 0;align-self:flex-end}.rules-skeleton{height:40px;margin-bottom:var(--space-3);background:var(--color-bg);border-radius:var(--radius-sm)}.rules-save-bar{gap:var(--space-3);max-width:560px;margin:var(--space-4) auto 0;flex-direction:column;display:flex}.prompt-layout{gap:var(--space-5);grid-template-columns:1fr;align-items:start;max-width:1280px;margin:0 auto;display:grid}@media (min-width:1080px){.prompt-layout{grid-template-columns:3fr 1fr}}.prompt-layout .card{max-width:none;margin:0}.prompt-body-input{min-height:460px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono,ui-monospace, monospace);resize:vertical;font-size:13px;line-height:1.6}.prompt-note-count{align-self:flex-end;margin:0}.prompt-history h2{margin:0 0 var(--space-3);font-size:15px}.prompt-version-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}@media (min-width:1080px){.prompt-version-list{max-height:70vh;overflow-y:auto}}.prompt-version-row{gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.prompt-version-head{align-items:center;gap:var(--space-2);display:flex}.prompt-version-revision{font-variant-numeric:tabular-nums;font-weight:700}.prompt-version-date{color:var(--color-text-muted);font-size:12px}.prompt-version-note{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;overflow:hidden}.prompt-version-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.prompt-version-actions button{padding:2px var(--space-2);color:var(--color-primary);box-shadow:none;background:0 0;font-size:12px}.prompt-version-actions button:hover:not(:disabled){background:var(--color-primary-tint)}.prompt-version-body{max-height:320px;padding:var(--space-2);background:var(--color-bg);border-radius:var(--radius-sm);white-space:pre-wrap;margin:0;font-size:12px;line-height:1.5;overflow:auto}.prompt-diff-dialog{width:min(900px, calc(100vw - 2 * var(--space-4)));max-width:min(900px, calc(100vw - 2 * var(--space-4)));max-height:calc(100vh - 2 * var(--space-5))}.prompt-diff-body{min-height:0;padding:var(--space-2) 0;background:var(--color-bg);border-radius:var(--radius-sm);flex:1;overflow:auto}.prompt-diff-line{align-items:baseline;gap:var(--space-2);padding:1px var(--space-3);font-family:var(--font-mono,ui-monospace, monospace);white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.7;display:flex}.prompt-diff-line--added{background:color-mix(in srgb, var(--color-completed) 12%, transparent)}.prompt-diff-line--removed{background:color-mix(in srgb, var(--color-error) 12%, transparent)}.prompt-diff-gutter{width:1ch;color:var(--color-text-muted);-webkit-user-select:none;user-select:none;flex:none;font-weight:700}.prompt-diff-text{flex:1;min-height:22.1px}.margin-rule-scope{max-width:320px}.margin-rule-scope .sub{margin:0}.margin-rule-row.is-dirty th[scope=row]{box-shadow:inset 3px 0 0 var(--color-primary)}.margin-rule-row input.is-dirty{border-color:var(--color-primary)}.inline-action-primary,.inline-action-primary:hover:not(:disabled){background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary)}.inline-action-primary:hover:not(:disabled){background:var(--color-primary-hover)}.badge-neutral{color:var(--color-text-muted);border:1px solid var(--color-border);background:0 0}.field-error{margin:var(--space-1) 0 0;color:var(--color-error);font-size:11px}.row-saved{margin-left:var(--space-2);color:var(--color-completed);font-size:11px}
