:root{color-scheme:light;--surface-1: #fcfcfb;--surface-page: #f9f9f7;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #898781;--gridline: #e1e0d9;--baseline: #c3c2b7;--border: rgba(11, 11, 11, .1);--series-1: #0047ba;--brand-navy: #002e6d;--brand-gold: #ffcd00;--status-good: #0ca30c;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b}@media (prefers-color-scheme: dark){:root:where(:not([data-theme=light])){color-scheme:dark;--surface-1: #1a1a19;--surface-page: #0d0d0d;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--gridline: #2c2c2a;--baseline: #383835;--border: rgba(255, 255, 255, .1);--series-1: #009ade;--brand-navy: #002e6d;--brand-gold: #ffcd00}}:root[data-theme=dark]{color-scheme:dark;--surface-1: #1a1a19;--surface-page: #0d0d0d;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--gridline: #2c2c2a;--baseline: #383835;--border: rgba(255, 255, 255, .1);--series-1: #009ade;--brand-navy: #002e6d;--brand-gold: #ffcd00}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.app-shell{display:flex;min-height:100vh}.app-nav{width:220px;flex-shrink:0;background:var(--surface-1);border-right:1px solid var(--border);border-top:3px solid var(--brand-navy);padding:20px 12px}.brand{display:flex;align-items:center;gap:10px;margin:4px 8px 20px;padding-bottom:16px;border-bottom:2px solid var(--brand-gold)}.brand-logo{width:26px;height:auto;flex-shrink:0}.app-nav h1{font-size:15px;font-weight:700;margin:0;color:var(--text-primary)}.app-nav h1 span{display:block;font-size:11px;font-weight:500;color:var(--text-muted);margin-top:2px}.app-nav a{display:block;padding:8px 10px;border-radius:6px;color:var(--text-secondary);text-decoration:none;font-size:13px;font-weight:500;margin-bottom:2px}.app-nav a:hover{background:var(--gridline)}.app-nav a.active{background:var(--series-1);color:#fff}.app-content{flex:1;min-width:0;padding:28px 32px;max-width:1400px}.page-title{font-size:20px;font-weight:700;margin:0 0 4px}.page-subtitle{font-size:13px;color:var(--text-secondary);margin:0 0 24px}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:20px}.card h2{font-size:14px;font-weight:700;margin:0 0 16px}.field-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em}.field input,.field select{border:1px solid var(--border);border-radius:6px;padding:7px 10px;font-size:13px;background:var(--surface-page);color:var(--text-primary);min-width:160px}button{font-family:inherit;font-size:13px;font-weight:600;border-radius:6px;padding:8px 14px;border:1px solid var(--border);background:var(--surface-page);color:var(--text-primary);cursor:pointer}button:hover:not(:disabled){filter:brightness(.97)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--series-1);border-color:var(--series-1);color:#fff}button.danger{background:var(--status-critical);border-color:var(--status-critical);color:#fff}.readout{display:flex;align-items:baseline;gap:12px;margin:4px 0 16px}.readout .value{font-size:48px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.readout .unit{font-size:16px;color:var(--text-secondary);font-weight:500}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em}.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.badge-idle{background:var(--gridline);color:var(--text-secondary)}.badge-candidate{background:color-mix(in srgb,var(--status-warning) 20%,transparent);color:#8a5c00}:root[data-theme=dark] .badge-candidate{color:var(--status-warning)}@media (prefers-color-scheme: dark){:root:where(:not([data-theme=light])) .badge-candidate{color:var(--status-warning)}}.badge-confirmed{background:color-mix(in srgb,var(--status-good) 18%,transparent);color:var(--status-good)}.sparkline{display:block;width:100%;height:64px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);font-weight:600;padding:6px 10px;border-bottom:1px solid var(--gridline)}td{padding:8px 10px;border-bottom:1px solid var(--gridline);font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:none}.status-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}.status-unclassified{background:color-mix(in srgb,var(--status-warning) 20%,transparent);color:#8a5c00}.status-container{background:color-mix(in srgb,var(--status-good) 18%,transparent);color:var(--status-good)}.status-bulk{background:color-mix(in srgb,var(--series-1) 16%,transparent);color:var(--series-1)}.status-critical{background:color-mix(in srgb,var(--status-critical) 16%,transparent);color:var(--status-critical)}.review-flag{color:var(--text-muted);font-size:11px;font-style:italic}.empty-state{color:var(--text-muted);font-size:13px;padding:24px 0;text-align:center}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}.stat-tile{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:16px}.stat-tile .label{font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);font-weight:600;margin-bottom:6px}.stat-tile .value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.stat-tile-button{cursor:pointer;text-align:left}.stat-tile-button:hover{filter:brightness(.97)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0b0b66;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:24px;width:480px;max-width:calc(100vw - 32px)}.modal h2{font-size:16px;margin:0 0 4px}.tab-row{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--gridline)}.tab{background:none;border:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 4px;margin-right:16px;color:var(--text-secondary)}.tab.active{color:var(--series-1);border-bottom-color:var(--series-1)}.modal-footer{display:flex;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid var(--gridline)}.guide-list{margin:0;padding-left:20px;font-size:13px;line-height:1.6}.guide-list li{margin-bottom:10px}.guide-list li:last-child{margin-bottom:0}.note-box{background:color-mix(in srgb,var(--status-warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--status-warning) 35%,transparent);border-radius:8px;padding:12px 14px;font-size:13px;color:var(--text-secondary);margin-top:16px}.two-col-layout{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}.two-col-main{min-width:0}.two-col-aside{position:sticky;top:20px;min-width:0}@media (max-width: 900px){.two-col-layout{grid-template-columns:1fr}.two-col-aside{position:static}}@media (max-width: 900px){.app-nav{width:180px;padding:16px 8px}.app-content{padding:20px 16px}.field input,.field select{min-width:140px}.modal{padding:16px}.readout .value{font-size:36px}}@media (max-width: 680px){.app-shell{flex-direction:column}.app-nav{width:auto;display:flex;align-items:center;gap:2px;overflow-x:auto;padding:10px 12px;border-right:none;border-top:none;border-bottom:3px solid var(--brand-navy)}.brand{flex-shrink:0;margin:0 10px 0 0;padding:0 12px 0 0;border-bottom:none;border-right:2px solid var(--brand-gold)}.app-nav h1 span{display:none}.app-nav a{flex-shrink:0;white-space:nowrap;margin-bottom:0}}.disconnect-banner{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--status-critical);color:#fff;text-align:center;font-size:13px;font-weight:600;padding:6px 12px}.toast-stack{position:fixed;bottom:20px;right:20px;z-index:100;display:flex;flex-direction:column;gap:8px;max-width:320px}.toast{border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600;color:#fff;box-shadow:0 4px 16px #0003}.toast-error{background:var(--status-critical)}.toast-success{background:var(--status-good)}
