*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--surface: #1a1d27;--border: #2a2d3a;--text: #e1e1e6;--text-muted: #8b8d98;--accent: #6366f1;--green: #22c55e;--green-bg: rgba(34, 197, 94, .1);--red: #ef4444;--red-bg: rgba(239, 68, 68, .1);--blue: #3b82f6;--kbd-bg: rgba(255, 255, 255, .15);--accent-tint: rgba(99, 102, 241, .1);--accent-tint-subtle: rgba(99, 102, 241, .06);--muted-tint: rgba(139, 141, 152, .12);color-scheme:dark}[data-theme=light]{--bg: #f5f6f8;--surface: #ffffff;--border: #e0e2e7;--text: #1a1d27;--text-muted: #6b7280;--accent: #6366f1;--green: #16a34a;--green-bg: rgba(22, 163, 74, .1);--red: #dc2626;--red-bg: rgba(220, 38, 38, .08);--blue: #2563eb;--kbd-bg: rgba(0, 0, 0, .08);--accent-tint: rgba(99, 102, 241, .08);--accent-tint-subtle: rgba(99, 102, 241, .04);--muted-tint: rgba(107, 114, 128, .08);color-scheme:light}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--bg: #f5f6f8;--surface: #ffffff;--border: #e0e2e7;--text: #1a1d27;--text-muted: #6b7280;--accent: #6366f1;--green: #16a34a;--green-bg: rgba(22, 163, 74, .1);--red: #dc2626;--red-bg: rgba(220, 38, 38, .08);--blue: #2563eb;--kbd-bg: rgba(0, 0, 0, .08);--accent-tint: rgba(99, 102, 241, .08);--accent-tint-subtle: rgba(99, 102, 241, .04);--muted-tint: rgba(107, 114, 128, .08);color-scheme:light}}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.auth-gate{display:flex;align-items:center;justify-content:center;min-height:100vh}.auth-gate form{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:40px;max-width:400px;width:100%}.auth-gate h1{font-size:24px;margin-bottom:8px}.auth-gate p{color:var(--text-muted);margin-bottom:24px}.auth-gate input{width:100%;padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:14px;margin-bottom:16px;outline:none}.auth-gate input:focus{border-color:var(--accent)}.auth-gate button{width:100%;padding:10px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.auth-gate button:disabled{opacity:.5;cursor:not-allowed}.mode-switcher{display:flex;flex-wrap:wrap;align-items:center;gap:8px 0;max-width:1400px;margin:0 auto;padding:12px 24px 0}.mode-switcher .theme-switcher{margin-left:auto;flex-shrink:0}.mode-tab{padding:10px 20px;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.mode-tab:first-child{border-radius:8px 0 0 8px}.mode-tab:last-child{border-radius:0 8px 8px 0;border-left:none}.mode-tab:hover{color:var(--text);border-color:var(--text-muted)}.mode-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mode-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.review-container{max-width:1400px;margin:0 auto;padding:0 24px}.review-header{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--border);margin-bottom:24px;flex-wrap:wrap}.review-header h1{font-size:18px;font-weight:600}.pending-count,.session-ratio{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:4px 12px;font-size:13px;color:var(--text-muted)}.ratio-accepted{color:var(--green);font-weight:600}.ratio-rejected{color:var(--red);font-weight:600}.header-filters{display:flex;align-items:center;gap:8px}.filter-select{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:5px 10px;font-size:13px;cursor:pointer;outline:none;max-width:180px}.filter-select:focus{border-color:var(--accent)}.min-gap-filter{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-muted)}.min-gap-label{white-space:nowrap}.min-gap-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:80px;height:4px;background:var(--border);border-radius:2px;outline:none;cursor:pointer}.min-gap-slider:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.min-gap-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--accent);border-radius:50%;cursor:pointer}.min-gap-slider::-moz-range-thumb{width:14px;height:14px;background:var(--accent);border:none;border-radius:50%;cursor:pointer}.min-gap-value{color:var(--text);font-variant-numeric:tabular-nums;min-width:32px}.hide-no-scanner-filter{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.hide-no-scanner-filter input{cursor:pointer}.empty-state-filters{display:flex;align-items:center;gap:12px;justify-content:center;padding:12px 0}.filter-count{font-size:12px;color:var(--text-muted);white-space:nowrap}.btn-customer-panel{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:5px 10px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:6px}.btn-customer-panel:hover{border-color:var(--accent)}.btn-customer-panel.active{border-color:var(--accent);background:var(--accent-tint)}.customer-panel-badge{background:var(--accent);color:#fff;font-size:11px;font-weight:600;padding:1px 6px;border-radius:10px}.customer-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:24px}.customer-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.customer-panel-title{font-size:14px;font-weight:500;color:var(--text-muted)}.customer-panel-actions{display:flex;gap:8px}.btn-select-action{background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);font-size:12px;padding:3px 8px;cursor:pointer}.btn-select-action:hover{border-color:var(--text-muted);color:var(--text)}.customer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.customer-card{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .15s,background .15s}.customer-card:hover{border-color:var(--text-muted)}.customer-card.selected{border-color:var(--accent);background:var(--accent-tint-subtle)}.customer-card input[type=checkbox]{accent-color:var(--accent);flex-shrink:0}.customer-card-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.customer-card-count{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.btn-logout{margin-left:auto;background:none;border:1px solid var(--border);color:var(--text-muted);padding:6px 14px;min-height:36px;border-radius:6px;font-size:13px;cursor:pointer}.btn-logout:hover{border-color:var(--text-muted);color:var(--text)}.review-content{display:grid;grid-template-columns:1fr 280px;gap:24px;align-items:start}.image-container{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;line-height:0}.frame-image{width:100%;height:auto;display:block}.mask-overlay{position:absolute;top:0;left:0;pointer-events:none}.image-container.main-frame-active{border-color:#d97706;box-shadow:0 0 0 1px #d97706}.scan-badge{position:absolute;top:8px;left:8px;background:#d97706d9;color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;letter-spacing:.5px;z-index:2;line-height:1.5}.image-container.measure-frame-active{border-color:#06b6d4;box-shadow:0 0 0 1px #06b6d4}.measure-badge{position:absolute;top:8px;right:8px;background:#06b6d4d9;color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;letter-spacing:.5px;z-index:2;line-height:1.5}.measure-frame-hint{color:#06b6d4}.frame-indicator{position:absolute;bottom:8px;right:8px;background:#0009;color:#fff;font-size:12px;font-weight:600;padding:3px 8px;border-radius:4px;font-variant-numeric:tabular-nums;z-index:2;line-height:1.5}.frame-controls{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.frame-controls kbd{font-size:11px}.frame-speed-badge{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-size:11px;font-variant-numeric:tabular-nums}.img-error{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--text-muted);font-size:14px;line-height:1.5}.review-sidebar{display:flex;flex-direction:column;gap:20px}.metadata{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.meta-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.meta-row+.meta-row{border-top:1px solid var(--border)}.meta-label{font-size:13px;color:var(--text-muted)}.meta-value{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px;text-align:right}.meta-value.copyable{cursor:pointer;border-radius:4px;padding:0 4px;transition:background .15s}.meta-value.copyable:hover{background:var(--surface-hover, rgba(255, 255, 255, .08))}.badge{font-size:12px;font-weight:600;padding:2px 10px;border-radius:12px}.badge-yes{background:var(--green-bg);color:var(--green)}.badge-no{background:var(--red-bg);color:var(--red)}.toggle-floor{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-floor input{accent-color:var(--blue)}.scan-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.btn-nav{display:flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;background:transparent;color:var(--text-muted);transition:border-color .15s,color .15s}.btn-nav:not(:disabled):hover{border-color:var(--text-muted);color:var(--text)}.btn-nav:disabled{opacity:.3;cursor:not-allowed}.nav-position{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.actions{display:flex;flex-direction:column;gap:10px}.btn-accept,.btn-reject{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-accept{background:var(--green);color:#fff}.btn-reject{background:var(--red);color:#fff}.btn-accept:disabled,.btn-reject:disabled{opacity:.5;cursor:not-allowed}.btn-accept:not(:disabled):hover,.btn-reject:not(:disabled):hover{opacity:.9}.btn-undo{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border:1px solid var(--border);border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;background:var(--surface);color:var(--text-muted);transition:border-color .15s,color .15s}.btn-undo:hover{border-color:var(--text-muted);color:var(--text)}.reason-picker{display:flex;flex-direction:column;gap:8px}.reason-picker-title{font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:2px}.btn-reason{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border:1px solid var(--red);border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;background:var(--red-bg);color:var(--red);transition:background .15s,border-color .15s}.btn-reason:not(:disabled):hover,.btn-reason.focused:not(:disabled){background:var(--red);color:#fff}.btn-reason:focus-visible{outline:2px solid var(--red);outline-offset:2px}.btn-reason:disabled{opacity:.5;cursor:not-allowed}.btn-reason-cancel{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border:1px solid var(--border);border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;background:var(--surface);color:var(--text-muted);transition:border-color .15s,color .15s}.btn-reason-cancel:hover{border-color:var(--text-muted);color:var(--text)}.btn-reason-cancel:focus-visible{outline:2px solid var(--text-muted);outline-offset:2px}.toggle-reasons{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;margin-top:4px}.toggle-reasons input{accent-color:var(--accent)}kbd{background:var(--kbd-bg);padding:2px 6px;border-radius:4px;font-size:12px;font-family:inherit}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:12px;text-align:center}.empty-state h2{font-size:20px}.empty-state p{color:var(--text-muted)}.error-text{color:var(--red)}.btn-primary{padding:10px 24px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:1000}.toast{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;animation:toast-in .2s ease;white-space:nowrap}.toast-success{background:var(--green);color:#fff}.toast-error{background:var(--red);color:#fff}.toast-info{background:var(--blue);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dimensions-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;text-align:center}.dimensions-title{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.dimensions-values{display:flex;align-items:baseline;justify-content:center;gap:6px}.dim-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}.dim-sep{font-size:20px;color:var(--text-muted)}.dim-unit{font-size:14px;color:var(--text-muted);margin-left:2px}.triage-badge{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid;border-radius:10px;font-size:13px}.triage-score{font-weight:700;font-size:13px;letter-spacing:.04em}.triage-flags{font-size:12px;opacity:.85}.image-container.triage-fail-border{border-color:var(--red);box-shadow:0 0 0 2px var(--red-bg)}.measurement-overlay-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.measurement-stats-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stat-chip{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500;white-space:nowrap}.stat-pending{background:var(--accent-tint);color:var(--accent)}.stat-accepted{background:var(--green-bg);color:var(--green)}.stat-rejected{background:var(--red-bg);color:var(--red)}.stat-total{background:var(--muted-tint);color:var(--text-muted)}.theme-switcher{display:flex;gap:0;border:1px solid var(--border);border-radius:6px;overflow:hidden}.theme-option{padding:8px 10px;min-width:36px;min-height:36px;background:var(--bg);color:var(--text-muted);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.theme-option+.theme-option{border-left:1px solid var(--border)}.theme-option:hover{color:var(--text)}.theme-option.active{background:var(--accent);color:#fff}.overlay-warning{font-size:12px;color:#f59e0b;padding:4px 0}
