:root{--color-bg: #f7f9fb;--color-surface: #ffffff;--color-surface-2: #eef2f6;--color-text: #0b0f14;--color-text-muted: #56626e;--color-border: #d7dee6;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-tint: #e8effe;--risk-critical: #dc2626;--risk-critical-tint: #fdecec;--risk-high: #ea580c;--risk-high-tint: #fdf1e8;--risk-medium: #b45309;--risk-medium-tint: #fdf4e3;--risk-low: #ca8a04;--status-ok: #15803d;--status-ok-tint: #e8f6ed;--status-review: #6d28d9;--status-review-tint: #f1eafb;--status-info: #0e7490;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-panel: 0 1px 2px rgba(11, 15, 20, .04), 0 8px 24px -12px rgba(11, 15, 20, .12);color-scheme:light}@media(prefers-color-scheme:dark){:root{--color-bg: #0b0f14;--color-surface: #121821;--color-surface-2: #1a222d;--color-text: #e6edf3;--color-text-muted: #93a1b0;--color-border: #263241;--color-primary-tint: #16233f;--risk-critical-tint: #2e1616;--risk-high-tint: #2e2013;--risk-medium: #d97706;--risk-medium-tint: #2c2210;--status-ok: #16a34a;--status-ok-tint: #122a1c;--status-review: #8b5cf6;--status-review-tint: #241a38;--shadow-panel: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px -12px rgba(0, 0, 0, .5);color-scheme:dark}}:root[data-theme=dark]{--color-bg: #0b0f14;--color-surface: #121821;--color-surface-2: #1a222d;--color-text: #e6edf3;--color-text-muted: #93a1b0;--color-border: #263241;--color-primary-tint: #16233f;--risk-critical-tint: #2e1616;--risk-high-tint: #2e2013;--risk-medium: #d97706;--risk-medium-tint: #2c2210;--status-ok: #16a34a;--status-ok-tint: #122a1c;--status-review: #8b5cf6;--status-review-tint: #241a38;--shadow-panel: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px -12px rgba(0, 0, 0, .5);color-scheme:dark}:root[data-theme=light]{--color-bg: #f7f9fb;--color-surface: #ffffff;--color-surface-2: #eef2f6;--color-text: #0b0f14;--color-text-muted: #56626e;--color-border: #d7dee6;--color-primary-tint: #e8effe;--risk-critical-tint: #fdecec;--risk-high-tint: #fdf1e8;--risk-medium: #b45309;--risk-medium-tint: #fdf4e3;--status-ok: #15803d;--status-ok-tint: #e8f6ed;--status-review: #6d28d9;--status-review-tint: #f1eafb;--shadow-panel: 0 1px 2px rgba(11, 15, 20, .04), 0 8px 24px -12px rgba(11, 15, 20, .12);color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh}body{background:var(--color-bg);color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}button{font:inherit;color:inherit}.tabular{font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app{display:flex;flex-direction:column;min-height:100vh}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.queue-layout,.admin-page,.state-block{animation:page-enter .18s ease-out}.btn,.topnav a,.stat,.chip,.input,.table-card tbody tr{transition:background-color .14s ease-out,border-color .14s ease-out,color .14s ease-out,box-shadow .14s ease-out,transform .14s ease-out}.btn:hover:not(:disabled){transform:translateY(-1px)}.stat:hover{transform:translateY(-2px);box-shadow:0 12px 32px -12px color-mix(in srgb,var(--color-primary) 30%,transparent)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 50% 40% at 12% 0%,color-mix(in srgb,var(--color-primary) 22%,transparent) 0%,transparent 70%),radial-gradient(ellipse 45% 35% at 90% 12%,color-mix(in srgb,var(--status-review) 14%,transparent) 0%,transparent 70%),radial-gradient(ellipse 55% 45% at 70% 100%,color-mix(in srgb,var(--risk-high) 10%,transparent) 0%,transparent 70%),var(--color-bg)}.topbar,.stat,.table-card,.evidence,.admin-form,.dash-hero,.insights-panel,.breakdown-panel,.job-status,.state-block.welcome{background:color-mix(in srgb,var(--color-surface) 62%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);border-color:color-mix(in srgb,var(--color-text) 14%,transparent)}.topbar{position:sticky;top:0;z-index:10}.state-block.welcome{border:1px solid color-mix(in srgb,var(--color-text) 14%,transparent);border-radius:var(--radius-lg);margin:48px auto;max-width:520px;box-shadow:var(--shadow-panel)}.topbar{display:flex;align-items:center;gap:24px;padding:0 24px;height:56px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.9375rem;white-space:nowrap}.brand svg{color:var(--color-primary)}.brand small{color:var(--color-text-muted);font-weight:500;font-size:.75rem}.topnav{display:flex;align-items:center;gap:4px}.topnav a{padding:8px 12px;border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-weight:500;font-size:.875rem}.topnav a[aria-current=page]{color:var(--color-text);background:var(--color-surface-2)}.topnav a:hover{color:var(--color-text)}.session-area{display:flex;align-items:center;gap:10px;margin-left:auto}.user-chip{display:flex;align-items:center;gap:8px;padding-left:12px;border-left:1px solid var(--color-border)}.avatar{width:26px;height:26px;border-radius:50%;background:var(--color-primary);color:#fff;display:grid;place-items:center;font-size:.75rem;font-weight:700}.user-email{font-size:.8125rem;color:var(--color-text-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.welcome h2{font-size:1.5rem}.welcome .btn{text-decoration:none;display:inline-flex;margin-bottom:12px}.welcome a:not(.btn){color:var(--color-primary)}.dashboard{max-width:1100px}.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0 0 20px}.stat{display:flex;flex-direction:column;gap:2px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;text-decoration:none;color:var(--color-text);box-shadow:var(--shadow-panel)}.stat:hover{border-color:var(--color-primary)}.stat-label{color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.stat-value{font-size:1.375rem;font-weight:700}.stat-value.at-risk{color:var(--risk-high)}.stat-value.ok{color:var(--status-ok)}.stat-foot{color:var(--color-text-muted);font-size:.75rem}.dash-hero{border-radius:var(--radius-lg);padding:24px 24px 8px;margin-bottom:16px;background:radial-gradient(ellipse 60% 120% at 15% 0%,var(--color-primary-tint) 0%,transparent 60%),var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-panel)}.dash-hero h1{font-size:1.75rem;background:linear-gradient(90deg,var(--color-text) 30%,var(--color-primary) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;width:fit-content}.stat-value.at-risk{text-shadow:0 0 24px color-mix(in srgb,var(--risk-high) 40%,transparent)}.stat-value.ok{text-shadow:0 0 24px color-mix(in srgb,var(--status-ok) 35%,transparent)}.stat-head{display:flex;align-items:center;gap:6px;color:var(--color-text-muted)}.stat-head svg{flex:0 0 auto}.meter{position:relative;display:block;height:18px;border-radius:9px;background:var(--color-surface-2);overflow:hidden;margin-top:4px}.meter-fill{position:absolute;inset:0 auto 0 0;background:var(--status-ok-tint);border-right:2px solid var(--status-ok);transition:width .2s ease-out}.meter-text{position:relative;display:block;font-size:.6875rem;font-weight:700;line-height:18px;padding-left:8px;color:var(--color-text)}.breakdown-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:20px;box-shadow:var(--shadow-panel)}.breakdown-panel h2{font-size:.9375rem;font-weight:700;margin:0 0 10px}.breakdown{display:flex;flex-direction:column;gap:8px;max-width:560px}.breakdown-row{display:grid;grid-template-columns:90px 1fr 70px;align-items:center;gap:10px;font-size:.8125rem}.breakdown-label{font-weight:600;text-transform:capitalize}.breakdown-bar{height:12px;border-radius:6px;background:var(--color-surface-2);overflow:hidden}.breakdown-fill{display:block;height:100%;border-radius:6px;transition:width .2s ease-out}.fill-price{background:var(--risk-high)}.fill-quantity{background:var(--risk-medium)}.fill-duplicate{background:var(--risk-critical)}.fill-term{background:var(--status-review)}.breakdown-count{color:var(--color-text-muted);text-align:right}.insights-panel{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:20px}.insights-panel h2{font-size:.9375rem;font-weight:700;margin:0 0 8px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.insights-note{color:var(--color-text-muted);font-size:.75rem;font-weight:400}.insights-panel ul{margin:0;padding-left:20px}.insights-panel li{line-height:1.6;max-width:80ch}.value-panel h2{font-size:1.0625rem;font-weight:650;margin:0 0 12px}.value-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.value-grid h3{font-size:.875rem;font-weight:650;margin:0 0 4px}.value-grid p{margin:0;color:var(--color-text-muted);font-size:.8375rem;line-height:1.55}.guide{max-width:760px}.guide-section h2{font-size:1.0625rem;font-weight:650;margin:24px 0 8px}.guide-section p,.guide-section li{color:var(--color-text);line-height:1.6;max-width:72ch}.guide-section ul{padding-left:20px}.guide-caution{background:var(--risk-medium-tint);border:1px solid var(--risk-medium);border-radius:var(--radius-md);padding:10px 14px;font-size:.875rem}.rules-patterns{min-height:90px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.8125rem}.patterns-cell{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.75rem;max-width:340px;overflow-wrap:anywhere}.project-form{display:flex;align-items:center;gap:8px;margin-left:auto}.project-label{color:var(--color-text-muted);font-size:.8125rem}.project-input{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:var(--radius-sm);padding:7px 10px;font:inherit;width:220px}.queue-layout{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;padding:20px 24px 24px;align-items:start}@media(max-width:1080px){.queue-layout{grid-template-columns:1fr}}.page-head h1{margin:0;font-size:1.5rem;font-weight:650;letter-spacing:-.015em;text-wrap:balance}.page-head .sub{color:var(--color-text-muted);margin:4px 0 16px;max-width:72ch}.table-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto;box-shadow:var(--shadow-panel)}.table-card table{width:100%;border-collapse:collapse;min-width:560px}.table-card thead th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:600;padding:10px 14px;border-bottom:1px solid var(--color-border);white-space:nowrap}.table-card th.num,.table-card td.num{text-align:right}.table-card tbody tr{border-bottom:1px solid var(--color-border)}.table-card tbody tr:last-child{border-bottom:none}.table-card tbody tr:hover{background:var(--color-surface-2)}.table-card tbody tr.selected{background:var(--color-primary-tint)}.table-card td{padding:12px 14px;vertical-align:middle}.row-select{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:none;background:none;padding:0;cursor:pointer;text-align:left;width:100%}.num-id{font-weight:600}.muted{color:var(--color-text-muted)}.sku{display:block;font-size:.75rem}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.chip-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.tone-critical.chip{background:var(--risk-critical-tint);color:var(--risk-critical)}.tone-high.chip{background:var(--risk-high-tint);color:var(--risk-high)}.tone-medium.chip{background:var(--risk-medium-tint);color:var(--risk-medium)}.tone-review.chip{background:var(--status-review-tint);color:var(--status-review)}.evidence{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);display:flex;flex-direction:column;min-height:480px;position:sticky;top:20px;max-height:calc(100vh - 40px);overflow:hidden}.evidence-inner{display:flex;flex-direction:column;min-height:0;flex:1}.evidence-scroll{overflow-y:auto;flex:1}.evidence-head{padding:18px 20px 14px;border-bottom:1px solid var(--color-border)}.evidence-head h2{margin:8px 0 2px;font-size:1.125rem;font-weight:650}.evidence-head p{margin:0;font-size:.8125rem}.status-pill{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.pill-exception{background:var(--risk-high-tint);color:var(--risk-high)}.pill-decided{background:var(--status-ok-tint);color:var(--status-ok)}.evidence-section{padding:16px 20px;border-bottom:1px solid var(--color-border)}.evidence-section:last-child{border-bottom:none}.evidence-section h3{margin:0 0 10px;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:700}.confidence-note{margin:0;color:var(--color-text-muted);font-size:.8125rem}.confidence-note strong{color:var(--color-text)}.line-scroll{overflow-x:auto}.line-table{width:100%;border-collapse:collapse;font-size:.8125rem}.line-table th{text-align:left;font-weight:600;color:var(--color-text-muted);font-size:.6875rem;text-transform:uppercase;letter-spacing:.03em;padding:0 0 6px;border-bottom:1px solid var(--color-border)}.line-table td{padding:7px 0;border-bottom:1px dashed var(--color-border);vertical-align:top}.line-table tr:last-child td{border-bottom:none}.variance-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--color-border)}.variance-item:last-child{border-bottom:none;padding-bottom:0}.variance-stripe{width:3px;border-radius:3px;flex:0 0 auto;align-self:stretch}.tone-critical .variance-stripe{background:var(--risk-critical)}.tone-high .variance-stripe{background:var(--risk-high)}.tone-medium .variance-stripe{background:var(--risk-medium)}.tone-review .variance-stripe{background:var(--status-review)}.variance-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.variance-amount{font-weight:700;font-size:.8125rem}.variance-detail{margin:8px 0 0;font-size:.8125rem;display:grid;grid-template-columns:auto 1fr;gap:2px 10px}.variance-detail dt{color:var(--color-text-muted);font-weight:600}.variance-detail dd{margin:0;overflow-wrap:anywhere}.decision-bar{flex:0 0 auto;padding:14px 20px;border-top:1px solid var(--color-border);background:var(--color-surface-2)}.reason{width:100%;resize:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);padding:8px 10px;font:inherit;font-size:.8125rem;margin-bottom:10px;min-height:52px}.decision-actions{display:flex;gap:8px}.decision-actions .btn{flex:1;justify-content:center}.decision-error{color:var(--risk-critical);font-size:.8125rem;margin:0 0 10px}.decision-foot{color:var(--color-text-muted);font-size:.75rem;margin:10px 0 0}.btn{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);padding:8px 14px;font-weight:600;cursor:pointer;font-size:.875rem}.btn:hover:not(:disabled){border-color:var(--color-text-muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:6px 10px;font-size:.8125rem}.btn-approve{color:var(--status-ok)}.btn-approve:hover:not(:disabled){border-color:var(--status-ok);background:var(--status-ok-tint)}.btn-review{color:var(--status-review)}.btn-review:hover:not(:disabled){border-color:var(--status-review);background:var(--status-review-tint)}.btn-danger{color:var(--risk-critical)}.btn-danger:hover:not(:disabled){border-color:var(--risk-critical);background:var(--risk-critical-tint)}.admin-page{padding:20px 24px 24px;max-width:960px}.admin-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;align-items:end;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px;margin-bottom:20px;box-shadow:var(--shadow-panel)}.field{display:flex;flex-direction:column;gap:4px}.field-label{font-size:.8125rem;font-weight:600}.field-required{color:var(--color-text-muted);font-weight:400}.field-helper{margin:0;font-size:.75rem;color:var(--color-text-muted)}.field-error{margin:0;font-size:.75rem;color:var(--risk-critical);font-weight:600}.input{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:var(--radius-sm);padding:8px 10px;font:inherit;width:100%}.input[aria-invalid=true]{border-color:var(--risk-critical)}.input-inline{width:auto}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.standing-note{background:var(--status-review-tint);color:var(--status-review);border:1px solid var(--status-review);border-radius:var(--radius-md);padding:10px 14px;font-size:.8125rem;font-weight:500;margin:0 0 16px}.filter-row{display:flex;align-items:center;gap:10px;margin:0 0 12px}.section-title{font-size:1rem;font-weight:650;margin:24px 0 10px}.confirm-inline{display:inline-flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--color-text-muted)}.upload-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.tone-ok.chip{background:var(--status-ok-tint);color:var(--status-ok)}.finding-body{flex:1;min-width:0}.finding-snippet{margin:8px 0 4px;font-size:.8125rem;border-left:2px solid var(--color-border);padding-left:10px;color:var(--color-text);overflow-wrap:anywhere}.finding-rationale{font-size:.75rem;margin:0 0 8px}.finding-decided{font-size:.8125rem;color:var(--status-ok);margin:4px 0 0}.finding-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.finding-note{flex:1 1 180px;font-size:.75rem;padding:6px 8px}.import-textarea{min-height:320px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.8125rem;resize:vertical}.import-actions{display:flex;gap:8px;margin-top:12px}.job-status{margin-top:20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px 20px;box-shadow:var(--shadow-panel)}.job-done{font-weight:650;color:var(--status-ok);margin:0 0 8px}.job-counts{margin:0 0 14px;padding-left:18px;color:var(--color-text-muted)}.job-status .btn{text-decoration:none}.state-block{padding:40px 24px;text-align:center;color:var(--color-text-muted)}.state-block h2{color:var(--color-text);font-size:1.125rem;margin:0 0 6px}.state-block p{margin:0 auto 14px;max-width:48ch}.state-error h2{color:var(--risk-critical)}.skeleton-stack{display:flex;flex-direction:column;gap:10px}.skeleton-row{height:40px;border-radius:var(--radius-md);background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-surface) 50%,var(--color-surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
