/* Matches the gca-flow-mapper / helix design system: cool light surfaces, white
   sharp-cornered plates, electric cobalt accent, Archivo / Inter Tight / JetBrains Mono. */
:root{
  --bg:#F4F5F7; --card:#FFFFFF; --raised:#FAFAFB; --line:rgba(10,14,26,.10); --line2:#EFF1F4;
  --ink:#0A0E1A; --ink8:#1F2937; --ink7:#374151; --muted:#6B7280; --ink5:#9CA3AF; --ink4:#D1D5DB;
  --cobalt:#1638F5; --cobalt50:#E8ECFE; --cobalt600:#091870;
  --forest:#059669; --forest50:#D1FAE5;
  --oxblood:#DC2645; --oxblood50:#FCE7EC;
  --amber:#92740E; --amber50:#FBF3DC;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
  --sans:'Inter Tight',system-ui,-apple-system,sans-serif;
  --disp:'Archivo',system-ui,sans-serif;
  --plate:0 1px 0 0 rgba(10,14,26,.04),0 12px 32px -16px rgba(10,14,26,.08);
}
*{box-sizing:border-box}
body{margin:0;display:flex;min-height:100vh;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:14px;font-feature-settings:"ss01","ss02","cv11";
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3{font-family:var(--disp);margin:0;letter-spacing:-.02em}
.num,td.num,.kpi .val,.kpi .mini,.cycle b,.drawer-meta b{font-family:var(--mono);font-feature-settings:"tnum"}
::selection{background:var(--cobalt);color:#fff}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--ink4);border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--cobalt)}
/* nav (light, hairline) */
.nav{width:230px;flex:0 0 230px;background:var(--card);border-right:1px solid var(--line);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{font-family:var(--disp);font-weight:800;font-size:17px;color:var(--ink);padding:24px 20px 20px;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;line-height:1;letter-spacing:-.02em}
.brand small{flex-basis:100%;font-family:var(--mono);font-weight:500;font-size:9.5px;color:var(--ink5);
  letter-spacing:.18em;text-transform:uppercase;margin-top:9px;padding-left:22px}
.dot{width:11px;height:11px;background:var(--cobalt)}
#nav{display:flex;flex-direction:column;gap:1px;padding:10px;flex:1}
.nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px;
  color:var(--ink7);cursor:pointer;font-weight:500;font-size:13.5px;border:none;background:none;
  text-align:left;width:100%;font-family:var(--sans)}
.nav-item:hover{background:var(--bg)}
.nav-item.active{background:var(--cobalt50);color:var(--cobalt);font-weight:600;box-shadow:inset 3px 0 0 var(--cobalt)}
.nav-item.locked{color:var(--ink5);cursor:default}
.nav-item.locked:hover{background:none}
.tag{font-family:var(--mono);font-size:8.5px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;
  padding:2px 5px;color:var(--ink5);background:var(--bg)}
.nav-item.active .tag{background:#fff;color:var(--cobalt)}
.tag.live{color:var(--forest);background:var(--forest50)}
.tag.build{color:var(--amber);background:var(--amber50)}
.nav-foot{padding:16px 22px;font-family:var(--mono);font-size:9.5px;color:var(--ink5);
  border-top:1px solid var(--line);line-height:1.7;letter-spacing:.04em}
/* main */
main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;justify-content:space-between;align-items:flex-end;padding:26px 34px 20px;
  border-bottom:1px solid var(--line);background:var(--card)}
.topbar h1{font-size:25px;font-weight:700;color:var(--ink)}
.topbar p{margin:5px 0 0;color:var(--muted);font-size:13px;max-width:700px;text-wrap:pretty}
.cycle{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink5)}
.cycle b{color:var(--ink);font-size:13px;letter-spacing:0;margin-left:6px}
#content{padding:26px 34px 70px}
/* kpi strip */
.strip{display:flex;flex-wrap:wrap;gap:1px;
  background:var(--line);border:1px solid var(--line);box-shadow:var(--plate);margin-bottom:30px}
.kpi{background:var(--card);padding:16px 17px;flex:1 1 175px}
.kpi .lab{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;
  color:var(--muted);font-weight:600;margin-bottom:11px;line-height:1.45;min-height:28px}
.kpi .val{font-size:25px;font-weight:600;color:var(--ink);line-height:1;letter-spacing:-.01em}
.kpi .sub{font-size:11.5px;color:var(--ink5);margin-top:7px}
.kpi.warn .val{color:var(--oxblood)} .kpi.good .val{color:var(--forest)}
.kpi.split{flex:1 1 100%;display:flex;gap:8px} .kpi.split>div{flex:1;max-width:220px}
.kpi.split>div:first-child{max-width:280px}
.kpi .mini{font-size:17px;font-weight:600}
/* section heading */
.sec-h{display:flex;justify-content:space-between;align-items:baseline;margin:4px 0 12px}
.sec-h h2{font-size:13px;color:var(--ink);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.sec-h .hint{font-size:12px;color:var(--ink5)}
/* table */
.tbl-wrap{background:var(--card);border:1px solid var(--line);box-shadow:var(--plate);overflow:hidden}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:right;padding:11px 12px;font-family:var(--mono);font-size:9.5px;text-transform:uppercase;
  letter-spacing:.07em;color:var(--muted);font-weight:600;background:var(--raised);
  border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap}
th.l,td.l{text-align:left}
th:hover{color:var(--cobalt)}
td{padding:10px 12px;text-align:right;border-bottom:1px solid var(--line2);font-variant-numeric:tabular-nums;
  white-space:nowrap;color:var(--ink8)}
td.l{color:var(--ink)}
tr.row{cursor:pointer}
tr.row:hover td{background:var(--bg)}
tbody tr:last-child td{border-bottom:none}
.pill{display:inline-block;padding:3px 8px;font-family:var(--mono);font-size:10px;font-weight:600;
  text-transform:uppercase;letter-spacing:.05em}
.pill.now{background:var(--oxblood50);color:var(--oxblood)}
.pill.soon{background:var(--amber50);color:var(--amber)}
.pill.no{background:var(--bg);color:var(--ink5)}
.pill.con{background:var(--oxblood50);color:var(--oxblood)}
.flag-overdue{font-family:var(--mono);font-size:9px;color:var(--oxblood);font-weight:600;
  margin-left:5px;text-transform:uppercase;letter-spacing:.05em}
/* placeholder views */
.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:64px 30px;background:var(--card);border:1px solid var(--line);box-shadow:var(--plate);color:var(--muted)}
.placeholder .ic{width:48px;height:48px;background:var(--cobalt50);display:grid;place-items:center;
  font-size:22px;margin-bottom:18px}
.placeholder h2{color:var(--ink);font-size:19px;margin-bottom:10px;font-weight:700}
.placeholder>p{max-width:560px;line-height:1.6;margin:0;color:var(--ink7)}
.placeholder .why{margin-top:18px;font-size:12.5px;background:var(--bg);border:1px solid var(--line);
  padding:13px 16px;color:var(--ink8);max-width:580px;line-height:1.6;text-align:left}
.placeholder .why b{color:var(--ink)}
.caveats{margin-top:24px;font-size:11.5px;color:var(--ink5);line-height:1.7;border-top:1px solid var(--line);padding-top:14px}
.caveats b{color:var(--ink7);font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
/* controls + chart plates */
.tool-bar{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.lab-eyebrow{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}
.sel,.search{font-family:var(--sans);font-size:13px;color:var(--ink);background:var(--card);border:1px solid var(--line);padding:9px 12px}
.sel{min-width:360px}
.search{flex:1;max-width:440px}
.sel:focus,.search:focus{outline:none;border-color:var(--cobalt);box-shadow:inset 0 0 0 1px var(--cobalt)}
.chart-plate{background:var(--card);border:1px solid var(--line);box-shadow:var(--plate);padding:16px 18px 18px;margin-bottom:24px}
.chart-plate .sec-h{margin:0 0 12px}
.more-note{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink5);padding:11px 2px 0}
.prelim-banner{background:var(--amber50);border:1px solid #e9d8a0;border-left:3px solid var(--amber);padding:12px 16px;font-size:12.5px;color:var(--ink8);margin-bottom:24px;line-height:1.55}
.prelim-banner b{color:var(--amber)}
.seas-badge{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink5);margin-left:auto}
.seas-badge b{color:var(--cobalt)}
.ov-status{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink5);display:flex;align-items:center;gap:7px;margin-left:auto}
.dot-ind{width:8px;height:8px;display:inline-block}
.dot-ind.ok{background:var(--forest)} .dot-ind.warn{background:var(--amber)}
input.ov-qty,input.ov-reason{font-family:var(--sans);font-size:12px;color:var(--ink);background:var(--card);border:1px solid var(--line);padding:5px 7px}
input.ov-qty{max-width:84px;width:84px;font-family:var(--mono);text-align:right}
input.ov-reason{min-width:150px;width:170px}
input.ov-qty:focus,input.ov-reason:focus{outline:none;border-color:var(--cobalt);box-shadow:inset 0 0 0 1px var(--cobalt)}
input.saved{border-color:var(--forest);background:var(--forest50)}
input.saved-local{border-color:var(--amber);background:var(--amber50)}
/* drawer */
.drawer{position:fixed;inset:0;background:rgba(10,14,26,.45);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}
.drawer.hidden{display:none}
.drawer-card{background:var(--card);border:1px solid var(--line);padding:26px 28px;width:min(740px,94vw);
  position:relative;box-shadow:0 24px 60px -18px rgba(10,14,26,.4)}
#drawer-close{position:absolute;top:16px;right:18px;border:none;background:none;font-size:24px;color:var(--ink5);cursor:pointer;line-height:1}
.drawer-card h3{font-size:17px;color:var(--ink);margin-bottom:4px;padding-right:30px;font-weight:700}
.drawer-meta{display:flex;gap:22px;flex-wrap:wrap;margin:14px 0 18px;font-family:var(--mono);font-size:9.5px;
  text-transform:uppercase;letter-spacing:.1em;color:var(--ink5)}
.drawer-meta b{color:var(--ink);font-size:14px;display:block;margin-top:4px;letter-spacing:0;text-transform:none}
.drawer-note{font-size:11.5px;color:var(--ink5);margin-top:14px;line-height:1.6}
