/* ============================================================================
   HitchAI — The President's Budget (internal explorer)
   Tokens come from ../explorer/hitch-tokens.css; this file adds the few extras
   the budget tool needs (civilian teal, mandatory violet, bad red, rail bg) and
   all component styles. Two-tier trust model: authoritative PBDB agency rollups
   vs. parsed/summable line detail.
   ========================================================================== */
:root {
  --civ: #6fb6c8; --civ-soft: #a9d6e1;
  --mand: #a292e8; --mand-soft: #c8bdf5;
  --bad: #d97a6c;
  --bg-rail: #0c0e11;
}
* { margin:0; padding:0; box-sizing:border-box; }
html, body { height:100%; }
body { background:var(--bg); color:var(--ink); font-family:var(--sans); font-weight:300; -webkit-font-smoothing:antialiased; overflow:hidden; }
::selection { background:var(--accent); color:#1a1206; }
*::-webkit-scrollbar { width:9px; height:9px; }
*::-webkit-scrollbar-thumb { background:rgba(244,241,234,0.12); border-radius:100px; }
*::-webkit-scrollbar-track { background:transparent; }
a { color:inherit; }
.grain { position:fixed; inset:0; z-index:0; pointer-events:none; opacity:0.03;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

.app { position:relative; z-index:1; height:100vh; display:grid; grid-template-rows:auto 1fr; }

/* ---- universal HitchAI header (HITCH_NAV grouped chicklets) ---- */
/* header.uheader is a grid row of .app (height:100vh, single column) — a grid
   item's default min-width is auto (its content size), so without this the
   .modnav pill row below refuses to shrink and pushes .app/body wider than
   the viewport. At higher browser zoom the effective viewport shrinks before
   the pills do, and because body is overflow:hidden, the spilled-over pills
   (and the gear/account controls after them) become clipped and permanently
   unreachable — same failure as explorer/tool.css's .topbar/.viewnav. */
header.uheader { display:flex; align-items:center; gap:0.85rem; padding:0.55rem clamp(1rem,2.5vw,1.4rem);
  border-bottom:1px solid var(--line-soft); background:rgba(10,11,13,0.85); backdrop-filter:blur(14px);
  min-width: 0; }
.brand { font-family:var(--serif); font-size:1.25rem; white-space:nowrap; text-decoration:none; flex: none; }
.brand em { color:var(--accent); font-style:italic; }
/* min-width:0 lets this flex item shrink below its content width instead of
   forcing header.uheader (and body) wider than the viewport; flex-wrap then
   drops the pills that no longer fit onto a second row.
   ⚠ This was `overflow-x:auto` (scroll internally) and it hid every group
   dropdown: a scroll container clips both axes (overflow-y computes to `auto`
   once overflow-x is not `visible`), and modules.js pops the tray BELOW this
   box. Same failure, same fix as explorer/tool.css's .viewnav — keep the
   overflow `visible` here. */
.modnav { display:inline-flex; flex-wrap:wrap; gap:6px; align-items:center; margin-left:6px; min-width: 0; }
.modnav > .viewnav__btn { font-family:var(--mono); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; white-space:nowrap;
  color:var(--ink-dim); background:none; border:1px solid var(--line); border-radius:100px; padding:4px 10px; cursor:pointer;
  transition:color .2s var(--ease),border-color .2s var(--ease); }
.modnav > .viewnav__btn:hover { color:var(--ink); border-color:var(--ink-dim); }
/* tray items inside the group pop — uppercase mono pills like the Defense Budget tray */
.hitch-bgroup .bgroup__panel > .viewnav__btn { font-family:var(--mono); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase;
  white-space:nowrap; color:var(--ink-dim); background:none; border:1px solid var(--line); border-radius:100px; cursor:pointer; }
.hitch-bgroup .bgroup__panel > .viewnav__btn:hover { color:var(--ink); border-color:var(--ink-dim); }
.hitch-bgroup .bgroup__panel > .viewnav__btn.on { color:var(--accent); border-color:rgba(232,161,60,.5); }
.topbar__spacer, .spacer { flex:1; }
.h-actions { display:flex; align-items:center; gap:0.55rem; }
.uheader .gs-trigger { margin-left:0; }
.provenance { display:none; }  /* a hidden anchor only (the gear it held was removed 2026-10-30) */
/* help / definitions "?" button */
.wb-help { width:30px; height:30px; border-radius:50%; border:1px solid var(--line); background:transparent; color:var(--ink-dim); cursor:pointer; font-size:0.95rem; transition:color .2s var(--ease), border-color .2s var(--ease); flex:none; }
.wb-help:hover { color:var(--accent); border-color:var(--accent); }
.help-ov { position:fixed; inset:0; z-index:90; background:rgba(6,7,9,0.62); backdrop-filter:blur(3px); display:flex; align-items:center; justify-content:center; padding:1.2rem; opacity:0; pointer-events:none; transition:opacity 0.2s; }
.help-ov.on { opacity:1; pointer-events:auto; }
.help-card { position:relative; max-width:660px; width:100%; max-height:86vh; overflow-y:auto; background:var(--bg-soft); border:1px solid var(--line); border-radius:16px; padding:1.7rem 1.9rem 2rem; box-shadow:0 30px 80px rgba(0,0,0,0.6); }
.help-x { position:absolute; top:1rem; right:1.1rem; background:none; border:none; color:var(--ink-faint); font-size:1.2rem; cursor:pointer; }
.help-x:hover { color:var(--ink); }
.help-card h2 { font-family:var(--serif); font-size:1.7rem; line-height:1.1; margin-bottom:0.4rem; }
.help-card h3 { font-family:var(--mono); font-size:0.6rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-faint); margin:1.4rem 0 0.6rem; }
.help-card > p { font-size:0.88rem; line-height:1.65; color:var(--ink-dim); margin-bottom:0.5rem; }
.help-card > p b { color:var(--ink); font-weight:500; }
.help-def { display:grid; grid-template-columns:150px 1fr; gap:0.9rem; align-items:baseline; padding:0.55rem 0; border-bottom:1px solid var(--line-soft); }
.help-def:last-of-type { border-bottom:none; }
.help-def > b { font-size:0.9rem; color:var(--ink); font-weight:500; }
.help-def > span:last-child { font-size:0.83rem; line-height:1.6; color:var(--ink-dim); }
.help-def > span:last-child b { color:var(--ink); font-weight:500; }
@media (max-width:560px) { .help-def { grid-template-columns:1fr; gap:0.3rem; } }

/* account chip (platform-lite) */
.acctbar { display:flex; align-items:center; gap:0.5rem; margin-left:0.3rem; }
.acctbar__chip { display:inline-flex; align-items:center; gap:0.45rem; font-size:0.78rem; color:var(--ink-dim); border:1px solid var(--line); border-radius:100px; padding:0.35rem 0.8rem; background:none; cursor:pointer; white-space:nowrap; }
.acctbar__chip:hover { color:var(--ink); border-color:var(--ink-dim); }
@media (max-width:1180px) { .acctbar { display:none; } }

/* assistant slide-over */
.asst-toggle { display:inline-flex; align-items:center; gap:0.42rem; font-size:0.8rem; color:var(--ink-dim); background:none; border:1px solid var(--line); border-radius:100px; padding:0.35rem 0.85rem; cursor:pointer; white-space:nowrap; transition:color .2s var(--ease), border-color .2s var(--ease); }
.asst-toggle:hover, .asst-toggle.on { color:var(--accent); border-color:rgba(232,161,60,0.5); }
.asst-dot { width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 7px rgba(232,161,60,0.8); }
.asst { position:fixed; top:0; right:0; height:100vh; width:min(400px,94vw); background:var(--bg-soft); border-left:1px solid var(--line); z-index:70; display:flex; flex-direction:column; transform:translateX(100%); transition:transform 0.3s var(--ease); box-shadow:-24px 0 60px rgba(0,0,0,0.5); }
.asst.on { transform:translateX(0); }
.asst__head { display:flex; align-items:center; gap:0.6rem; padding:1rem 1.2rem; border-bottom:1px solid var(--line-soft); }
.asst__mark { font-family:var(--serif); font-size:1.15rem; } .asst__mark em { font-style:italic; color:var(--accent-soft); }
.asst__live { display:inline-flex; align-items:center; gap:0.35rem; font-family:var(--mono); font-size:0.55rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--good); }
.asst__live i { width:6px; height:6px; border-radius:50%; background:var(--good); }
.asst__spacer { flex:1; }
.asst__x { background:none; border:none; color:var(--ink-faint); font-size:1.1rem; cursor:pointer; } .asst__x:hover { color:var(--ink); }
.asst__log { flex:1; overflow-y:auto; padding:1.1rem 1.2rem; display:flex; flex-direction:column; gap:0.9rem; }
.amsg { max-width:100%; } .amsg--u { align-self:flex-end; max-width:85%; }
.amsg--u .amsg__b { background:rgba(232,161,60,0.12); border:1px solid rgba(232,161,60,0.25); border-radius:12px 12px 3px 12px; padding:0.5rem 0.8rem; font-size:0.85rem; color:var(--ink); }
.amsg--a .amsg__b { font-size:0.86rem; line-height:1.6; color:var(--ink-dim); }
.amsg--a .amsg__b b { color:var(--ink); font-weight:500; }
.amsg--a .amsg__b p { margin:0; } .amsg--a .amsg__b p + p { margin-top:0.4rem; }
.asst-cite { color:var(--ink-faint); font-size:0.74rem; margin-top:0.4rem; }
.asst-acts { display:flex; flex-wrap:wrap; gap:0.5rem; margin-top:0.7rem; }
.asst-act { font-family:var(--mono); font-size:0.62rem; letter-spacing:0.04em; color:var(--accent); background:rgba(232,161,60,0.08); border:1px solid rgba(232,161,60,0.4); border-radius:8px; padding:0.4rem 0.7rem; cursor:pointer; }
.asst-act:hover { background:rgba(232,161,60,0.16); }
.asst__composer { border-top:1px solid var(--line-soft); padding:0.8rem 1.2rem 1rem; }
.asst__sugg { display:flex; flex-wrap:wrap; gap:0.4rem; margin-bottom:0.7rem; }
.asst-chip { font-family:var(--mono); font-size:0.6rem; color:var(--ink-dim); border:1px solid var(--line); border-radius:100px; padding:0.28rem 0.6rem; cursor:pointer; }
.asst-chip:hover { color:var(--accent); border-color:rgba(232,161,60,0.5); }
.asst__inputwrap { display:flex; align-items:flex-end; gap:0.5rem; border:1px solid var(--line); border-radius:11px; background:var(--bg); padding:0.5rem 0.55rem 0.5rem 0.8rem; }
.asst__inputwrap:focus-within { border-color:rgba(232,161,60,0.5); }
.asst__ta { flex:1; background:none; border:none; outline:none; resize:none; color:var(--ink); font-family:var(--sans); font-size:0.86rem; max-height:120px; }
.asst__send { flex:none; width:30px; height:30px; border-radius:8px; border:none; background:var(--accent); color:#1a1206; font-size:0.9rem; cursor:pointer; }
.asst__send:hover { background:var(--accent-soft); }
.asst__foot { font-size:0.66rem; color:var(--ink-faint); line-height:1.5; margin-top:0.6rem; }

/* ---- workspace ---- */
.work { display:grid; grid-template-columns:260px 1fr; min-height:0; }
.rail { border-right:1px solid var(--line-soft); background:var(--bg-rail); overflow-y:auto; padding:1rem 0.9rem 3rem; }
.main { overflow-y:auto; min-width:0; padding:1.3rem clamp(1.1rem,2.4vw,2rem) 4rem; }

/* rail: sector toggle + tree */
.raillbl { font-family:var(--mono); font-size:0.56rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-faint); margin:0.4rem 0.4rem 0.6rem; }
.sect { display:flex; flex-direction:column; gap:2px; margin-bottom:1.2rem; }
.sectbtn { display:flex; justify-content:space-between; align-items:center; font-size:0.8rem; color:var(--ink-dim); background:none; border:none;
  text-align:left; padding:0.5rem 0.6rem; border-radius:8px; cursor:pointer; transition:all 0.12s; }
.sectbtn:hover { background:rgba(244,241,234,0.03); color:var(--ink); }
.sectbtn.on { background:rgba(232,161,60,0.08); color:var(--accent); }
.sectbtn .n { font-family:var(--mono); font-size:0.62rem; color:var(--ink-faint); }
.sectbtn.on .n { color:var(--accent-soft); }
.sectbtn .dot { width:7px; height:7px; border-radius:50%; margin-right:0.5rem; display:inline-block; }
.dot-all { background:var(--ink-dim); } .dot-def { background:var(--accent); } .dot-civ { background:var(--civ); }

.tree { display:flex; flex-direction:column; }
.tnode { display:flex; align-items:center; gap:0.4rem; font-size:0.78rem; color:var(--ink-dim); padding:0.36rem 0.5rem; border-radius:7px; cursor:pointer; transition:all 0.1s; }
.tnode:hover { background:rgba(244,241,234,0.03); color:var(--ink); }
.tnode.on { background:rgba(232,161,60,0.1); color:var(--accent); }
.tnode__nm { flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tnode__pct { font-family:var(--mono); font-size:0.62rem; }
.tnode__pct.up { color:var(--good); } .tnode__pct.dn { color:var(--bad); } .tnode__pct.flat { color:var(--ink-faint); }
.tnode .cd { width:7px; height:7px; border-radius:50%; flex:none; }

/* scope header */
.scopehead { margin-bottom:1.3rem; }
.crumbs { font-family:var(--mono); font-size:0.64rem; color:var(--ink-faint); letter-spacing:0.04em; margin-bottom:0.5rem; display:flex; gap:0.4rem; align-items:center; flex-wrap:wrap; }
.crumbs button { background:none; border:none; color:var(--ink-dim); font:inherit; cursor:pointer; }
.crumbs button:hover { color:var(--accent); }
.scopetitle { font-family:var(--serif); font-size:clamp(1.7rem,3vw,2.4rem); line-height:1.05; }
.scopetitle em { font-style:italic; color:var(--accent-soft); }
.scopelede { color:var(--ink-dim); font-size:0.92rem; line-height:1.6; max-width:720px; margin-top:0.5rem; }
.scopelede b { color:var(--ink); font-weight:500; }

/* trust badges */
.badge { display:inline-flex; align-items:center; gap:0.35rem; font-family:var(--mono); font-size:0.55rem; letter-spacing:0.08em; text-transform:uppercase;
  border-radius:100px; padding:0.16rem 0.55rem; white-space:nowrap; vertical-align:1px; }
.badge::before { content:""; width:6px; height:6px; border-radius:50%; }
.badge--auth { color:var(--good); border:1px solid rgba(123,191,123,0.4); } .badge--auth::before { background:var(--good); }
.badge--sum { color:var(--accent-soft); border:1px solid rgba(232,161,60,0.4); } .badge--sum::before { background:var(--accent); }
.badge--parsed { color:var(--civ-soft); border:1px solid rgba(111,182,200,0.4); } .badge--parsed::before { background:var(--civ); }
.badge--mand { color:var(--mand-soft); border:1px solid rgba(162,146,232,0.4); } .badge--mand::before { background:var(--mand); }

/* stat band */
.band { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft); border-radius:13px; overflow:hidden; margin:1.2rem 0; }
.bcell { background:var(--bg-panel); padding:1.1rem 1.2rem; }
.bcell__v { font-family:var(--serif); font-size:clamp(1.5rem,2.6vw,2.1rem); line-height:1; }
.bcell__v .u { font-size:0.55em; color:var(--ink-dim); }
.bcell__v.acc { color:var(--accent); } .bcell__v.good { color:var(--good); } .bcell__v.bad { color:var(--bad); } .bcell__v.mand { color:var(--mand-soft); }
.bcell__l { font-family:var(--mono); font-size:0.58rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); margin-top:0.5rem; line-height:1.5; }

/* card + section */
.card { border:1px solid var(--line-soft); border-radius:13px; background:var(--bg-panel); padding:1.3rem 1.5rem; margin-bottom:1.2rem; }
.card__h { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.card__t { font-family:var(--serif); font-size:1.3rem; }
.card__t em { font-style:italic; color:var(--accent-soft); }
.card__hint { font-family:var(--mono); font-size:0.58rem; letter-spacing:0.06em; color:var(--ink-faint); }
.cols2 { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }

/* diverging chart */
.divg__axis { display:flex; justify-content:space-between; font-family:var(--mono); font-size:0.58rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-faint); padding-bottom:0.7rem; }
.divg__axis .l { color:var(--bad); } .divg__axis .r { color:var(--good); }
.drow { display:grid; grid-template-columns:1fr 1fr; align-items:center; height:27px; position:relative; cursor:pointer; }
.drow:hover { background:rgba(244,241,234,0.02); }
.dhalf { position:relative; height:100%; }
.dbar { position:absolute; top:6px; bottom:6px; border-radius:3px; transition:filter 0.15s; }
.dhalf--l .dbar { right:0; background:linear-gradient(90deg,rgba(217,122,108,0.25),rgba(217,122,108,0.85)); }
.dhalf--r .dbar { left:0; background:linear-gradient(90deg,rgba(123,191,123,0.85),rgba(123,191,123,0.25)); }
.drow:hover .dbar { filter:brightness(1.3); }
.dnm { position:absolute; top:50%; transform:translateY(-50%); font-size:0.74rem; color:var(--ink-dim); white-space:nowrap; }
.drow:hover .dnm { color:var(--ink); }
.dhalf--l .dnm { right:calc(var(--w) + 10px); } .dhalf--r .dnm { left:calc(var(--w) + 10px); }
.dpct { position:absolute; top:50%; transform:translateY(-50%); font-family:var(--mono); font-size:0.64rem; }
.dhalf--l .dpct { left:6px; color:var(--bad); } .dhalf--r .dpct { right:6px; color:var(--good); }
.dspine { position:absolute; left:50%; top:0; bottom:0; width:1px; background:var(--line); }

/* two-checkbook split bars */
.tcrow { display:grid; grid-template-columns:210px 1fr; gap:1rem; align-items:center; padding:0.55rem 0; border-bottom:1px solid var(--line-soft); }
.tcrow:last-child { border-bottom:none; }
.tcrow__n { font-size:0.83rem; } .tcrow__sub { display:block; font-family:var(--mono); font-size:0.56rem; color:var(--ink-faint); margin-top:0.12rem; }
.tcbar { display:flex; height:22px; border-radius:5px; overflow:hidden; background:var(--line-soft); }
.tcbar i { display:flex; align-items:center; padding:0 0.55rem; font-family:var(--mono); font-size:0.58rem; white-space:nowrap; overflow:hidden; }
.tcbar .disc { background:rgba(232,161,60,0.72); color:#1a1206; }
.tcbar .mand { color:#14101f; font-weight:500; background:repeating-linear-gradient(-45deg,var(--mand),var(--mand) 7px,#b4a6f0 7px,#b4a6f0 14px); }
.leg { display:flex; gap:1.3rem; font-family:var(--mono); font-size:0.56rem; letter-spacing:0.08em; color:var(--ink-faint); margin-top:0.8rem; text-transform:uppercase; flex-wrap:wrap; }
.leg i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:0.4rem; vertical-align:-1px; }

/* iceberg */
.bergrow { display:grid; grid-template-columns:180px 1fr auto; gap:1rem; align-items:center; padding:0.5rem 0; border-bottom:1px solid var(--line-soft); }
.bergrow:last-child { border-bottom:none; }
.bergrow__n { font-size:0.82rem; }
.bergtrack { position:relative; height:15px; border-radius:4px; background:rgba(111,182,200,0.12); overflow:hidden; }
.bergtrack .tot { position:absolute; inset:0; background:repeating-linear-gradient(-45deg,rgba(111,182,200,0.1),rgba(111,182,200,0.1) 6px,rgba(111,182,200,0.16) 6px,rgba(111,182,200,0.16) 12px); }
.bergtrack .disc { position:absolute; top:0; bottom:0; left:0; background:var(--accent); border-radius:4px 0 0 4px; min-width:2px; }
.bergrow__v { font-family:var(--mono); font-size:0.68rem; text-align:right; color:var(--ink-dim); white-space:nowrap; }
.bergrow__v b { color:var(--accent-soft); font-weight:400; }

/* survivors / descent (civilian) */
.surv { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.sv { border:1px solid var(--line-soft); border-radius:12px; background:var(--bg-panel); padding:1rem 1.1rem; border-top:2px solid var(--good); cursor:pointer; }
.sv:hover { border-color:rgba(123,191,123,0.5); }
.sv__n { font-family:var(--serif); font-size:1.1rem; }
.sv__v { font-family:var(--mono); font-size:0.74rem; color:var(--good); margin-top:0.3rem; }
.descrow { display:grid; grid-template-columns:200px 1fr auto auto; gap:0.9rem; align-items:center; padding:0.42rem 0; border-bottom:1px solid var(--line-soft); cursor:pointer; }
.descrow:last-child { border-bottom:none; } .descrow:hover { background:rgba(244,241,234,0.025); }
.descrow__n { font-size:0.82rem; color:var(--ink-dim); }
.descrow__track { height:7px; border-radius:4px; background:var(--line-soft); overflow:hidden; }
.descrow__track i { display:block; height:100%; border-radius:4px; background:linear-gradient(90deg,rgba(217,122,108,0.45),var(--bad)); }
.descrow__d { font-family:var(--mono); font-size:0.72rem; color:var(--bad); text-align:right; min-width:56px; }
.descrow__pct { font-family:var(--mono); font-size:0.72rem; color:var(--bad); text-align:right; min-width:52px; }

/* born & killed / movers */
.prow { display:flex; align-items:center; gap:0.8rem; padding:0.55rem 0; border-bottom:1px solid var(--line-soft); cursor:pointer; }
.prow:last-child { border-bottom:none; } .prow:hover { background:rgba(244,241,234,0.025); }
.pdot { width:7px; height:7px; border-radius:50%; flex:none; }
.pdot--new { background:var(--accent); box-shadow:0 0 8px rgba(232,161,60,0.7); } .pdot--zero { background:var(--bad); }
.pt { flex:1; min-width:0; } .pnm { font-size:0.82rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pmeta { font-family:var(--mono); font-size:0.56rem; color:var(--ink-faint); margin-top:0.1rem; }
.pamt { font-family:var(--mono); font-size:0.76rem; white-space:nowrap; }
.pamt.nw { color:var(--accent); } .pamt.zr { color:var(--bad); text-decoration:line-through; text-decoration-color:rgba(217,122,108,0.5); }

/* movers */
.mv { padding:0.5rem 0; display:grid; grid-template-columns:1fr auto; gap:0.15rem 1rem; border-bottom:1px solid var(--line-soft); cursor:pointer; }
.mv:hover { background:rgba(244,241,234,0.025); }
.mv__name { font-size:0.82rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mv__delta { font-family:var(--mono); font-size:0.78rem; text-align:right; }
.mv__delta.up { color:var(--good); } .mv__delta.dn { color:var(--bad); }
.mv__bar { grid-column:1 / -1; height:3px; border-radius:2px; background:var(--line-soft); position:relative; overflow:hidden; }
.mv__bar i { position:absolute; top:0; bottom:0; left:0; border-radius:2px; }
.mv__bar--up i { background:var(--good); } .mv__bar--dn i { background:var(--bad); }
.mv__meta { grid-column:1 / -1; font-family:var(--mono); font-size:0.56rem; color:var(--ink-faint); }

/* line table (Explore) */
.toolbar { display:flex; align-items:center; gap:0.6rem; flex-wrap:wrap; margin:0.4rem 0 0.9rem; }
.fchip { font-family:var(--mono); font-size:0.62rem; letter-spacing:0.03em; color:var(--ink-dim); background:none; border:1px solid var(--line); border-radius:100px; padding:0.3rem 0.7rem; cursor:pointer; transition:all 0.15s; }
.fchip:hover { color:var(--ink); border-color:var(--ink-dim); } .fchip.on { color:var(--accent); border-color:rgba(232,161,60,0.5); background:rgba(232,161,60,0.07); }
/* the count riding inside a filter chip — present, never louder than its label */
.fchip i { font-style:normal; opacity:0.6; margin-left:0.15rem; }
.fchip.on i { opacity:0.75; }
/* Change filter: the threshold (%) and the size floor ($M). Rendered only for
   the modes that read them (app.js chgNumRow). */
.numrow { display:flex; flex-wrap:wrap; gap:0.5rem; margin:-0.3rem 0 0.8rem; }
.numlab { display:inline-flex; align-items:center; gap:0.15rem; font-family:var(--mono); font-size:0.62rem; letter-spacing:0.03em; color:var(--ink-faint); background:var(--bg-soft); border:1px solid var(--line); border-radius:100px; padding:0.22rem 0.6rem; }
.numlab:focus-within { border-color:rgba(232,161,60,0.5); color:var(--ink-dim); }
.numin { width:3.2rem; background:none; border:0; outline:none; color:var(--ink); font-family:var(--mono); font-size:0.74rem; padding:0.1rem; text-align:right; }
.lsearch { display:flex; align-items:center; gap:0.5rem; border:1px solid var(--line); border-radius:9px; background:var(--bg-soft); padding:0.35rem 0.7rem; flex:1; min-width:200px; }
.lsearch input { flex:1; background:none; border:none; outline:none; color:var(--ink); font-size:0.82rem; font-family:var(--sans); }
.lsearch svg { color:var(--ink-faint); flex:none; }

.ltbl { width:100%; border-collapse:collapse; }
.ltbl th { font-family:var(--mono); font-size:0.56rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-faint); text-align:left; padding:0.5rem 0.7rem; border-bottom:1px solid var(--line); font-weight:400; cursor:pointer; white-space:nowrap; }
.ltbl th.rt { text-align:right; } .ltbl th:hover { color:var(--ink-dim); } .ltbl th.on { color:var(--accent); }
.ltbl td { padding:0.55rem 0.7rem; border-bottom:1px solid var(--line-soft); font-size:0.85rem; }
.lrow { cursor:pointer; transition:background 0.1s; }
.lrow:hover { background:rgba(244,241,234,0.025); } .lrow:hover .ltitle { color:var(--accent); }
.ltitle { display:flex; align-items:center; gap:0.5rem; }
.lparent { font-family:var(--mono); font-size:0.6rem; letter-spacing:0.03em; color:var(--ink-faint); margin-bottom:0.1rem; }
.lflag { font-family:var(--mono); font-size:0.52rem; letter-spacing:0.06em; text-transform:uppercase; padding:0.08rem 0.4rem; border-radius:4px; white-space:nowrap; }
.lflag--new { color:var(--accent); border:1px solid rgba(232,161,60,0.4); } .lflag--zero { color:var(--bad); border:1px solid rgba(217,122,108,0.4); }
.lflag--mand { color:var(--mand-soft); border:1px solid rgba(162,146,232,0.4); }
.ltbl td.rt { text-align:right; font-family:var(--mono); font-size:0.8rem; }
.ltbl td.up { color:var(--good); } .ltbl td.dn { color:var(--bad); } .ltbl td.flat { color:var(--ink-faint); }
.lcite { font-family:var(--mono); font-size:0.6rem; color:var(--ink-faint); }
.lcite a { color:var(--civ-soft); text-decoration:none; border-bottom:1px dotted rgba(111,182,200,0.4); }
.lempty { padding:2.5rem; text-align:center; color:var(--ink-faint); font-size:0.85rem; }
.lmore { display:block; width:100%; text-align:center; padding:0.7rem; background:none; border:none; color:var(--ink-faint); font-family:var(--mono); font-size:0.62rem; letter-spacing:0.1em; cursor:pointer; }
.lmore:hover { color:var(--accent); }

.note { font-size:0.72rem; color:var(--ink-faint); line-height:1.6; margin-top:0.8rem; }
.note b { color:var(--ink-dim); font-weight:400; }
.recon { border:1px solid var(--line-soft); border-radius:11px; padding:0.7rem 0.95rem; margin:0 0 0.9rem; background:rgba(111,182,200,0.04); }
.recon__pair { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:0.18rem 0; font-size:0.82rem; }
.recon__pair + .recon__pair { border-top:1px solid var(--line-soft); }
.recon__k { color:var(--ink-dim); font-family:var(--mono); font-size:0.62rem; letter-spacing:0.09em; text-transform:uppercase; white-space:nowrap; }
.recon__v { color:var(--ink); text-align:right; } .recon__v em { color:var(--ink-faint); font-style:normal; font-size:0.74rem; }
.recon__note { margin-top:0.5rem; padding-top:0.5rem; border-top:1px solid var(--line-soft); font-size:0.72rem; color:var(--ink-faint); line-height:1.55; }

/* search view */
.searchwrap { max-width:820px; margin:1rem auto 0; }
.sbig { display:flex; align-items:center; gap:0.8rem; border:1px solid var(--line); border-radius:14px; background:var(--bg-soft); padding:0.95rem 1.2rem; }
.sbig:focus-within { border-color:rgba(232,161,60,0.55); box-shadow:0 0 0 4px rgba(232,161,60,0.08); }
.sbig input { flex:1; background:none; border:none; outline:none; color:var(--ink); font-size:1.05rem; font-family:var(--sans); font-weight:300; }
.sbig svg { color:var(--ink-faint); flex:none; }
.schips { display:flex; flex-wrap:wrap; gap:0.5rem; margin-top:1rem; }
.schip { font-family:var(--mono); font-size:0.64rem; color:var(--ink-dim); border:1px solid var(--line); border-radius:100px; padding:0.3rem 0.75rem; cursor:pointer; }
.schip:hover { color:var(--accent); border-color:rgba(232,161,60,0.5); }
.schip--mine { color:var(--accent); border-color:rgba(232,161,60,0.4); }
.sgrouphead { font-family:var(--mono); font-size:0.6rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); margin:1.4rem 0 0.5rem; display:flex; align-items:center; gap:0.5rem; }

/* drawer */
.scrim { position:fixed; inset:0; background:rgba(6,7,9,0.6); backdrop-filter:blur(2px); opacity:0; pointer-events:none; transition:opacity 0.25s; z-index:80; }
.scrim.on { opacity:1; pointer-events:auto; }
.drawer { position:fixed; top:0; right:0; height:100vh; width:min(560px,92vw); background:var(--bg-soft); border-left:1px solid var(--line);
  transform:translateX(100%); transition:transform 0.32s var(--ease); z-index:81; overflow-y:auto; box-shadow:-30px 0 80px rgba(0,0,0,0.5); }
.drawer.on { transform:translateX(0); }
.dwhead { padding:1.3rem 1.5rem 1.1rem; border-bottom:1px solid var(--line-soft); position:sticky; top:0; background:var(--bg-soft); z-index:2; }
.dwclose { position:absolute; top:1.1rem; right:1.2rem; background:none; border:none; color:var(--ink-faint); font-size:1.2rem; cursor:pointer; }
.dwclose:hover { color:var(--ink); }
.dwtitle { font-family:var(--serif); font-size:1.5rem; line-height:1.1; margin:0.5rem 0 0.4rem; max-width:44ch; }
.dwsub { font-family:var(--mono); font-size:0.64rem; color:var(--ink-dim); letter-spacing:0.03em; }
.dwbody { padding:1.3rem 1.5rem 3rem; }
.dwsec { margin-bottom:1.5rem; }
.dwlbl { font-family:var(--mono); font-size:0.56rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:0.6rem; }
.dwmetrics { display:grid; grid-template-columns:repeat(3,1fr); gap:0.9rem; }
.dwm__v { font-family:var(--serif); font-size:1.5rem; } .dwm__v.up { color:var(--good); } .dwm__v.dn { color:var(--bad); } .dwm__v.acc { color:var(--accent); }
.dwm__l { font-family:var(--mono); font-size:0.54rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); margin-top:0.3rem; }
.dwchart { width:100%; height:150px; display:block; }
.cx { font-family:var(--mono); font-size:9px; fill:var(--ink-faint); } .cv { font-family:var(--mono); font-size:9px; fill:var(--ink-dim); }
.dwdesc { font-size:0.88rem; line-height:1.7; color:var(--ink-dim); }
.dwcrumb { display:flex; flex-wrap:wrap; gap:0.3rem; align-items:center; font-family:var(--mono); font-size:0.64rem; color:var(--ink-dim); }
.dwcrumb .sep { color:var(--ink-faint); } .dwcrumb .leaf { color:var(--accent-soft); }
.dwprov { font-size:0.78rem; color:var(--ink-dim); line-height:1.6; }
.dwverify { display:inline-flex; align-items:center; gap:0.4rem; margin-top:0.6rem; font-family:var(--mono); font-size:0.66rem; color:var(--civ-soft);
  border:1px solid rgba(111,182,200,0.35); border-radius:8px; padding:0.4rem 0.8rem; text-decoration:none; cursor:pointer; }
.dwverify:hover { background:rgba(111,182,200,0.08); }
.dwactions { display:flex; gap:0.6rem; flex-wrap:wrap; margin-top:0.5rem; }
.dwbtn { font-family:var(--mono); font-size:0.64rem; letter-spacing:0.06em; padding:0.5rem 0.9rem; border-radius:8px; cursor:pointer;
  border:1px solid rgba(232,161,60,0.4); background:rgba(232,161,60,0.08); color:var(--accent); }
.dwbtn--ghost { border-color:var(--line); background:none; color:var(--ink-dim); } .dwbtn--ghost:hover { color:var(--ink); border-color:var(--ink-dim); }
.dwnote { font-size:0.72rem; color:var(--ink-faint); line-height:1.6; margin-top:0.6rem; padding:0.7rem 0.9rem; border:1px solid var(--line-soft); border-radius:9px; background:var(--bg-panel); }

@media (max-width:1080px){ .work { grid-template-columns:1fr; } .rail { display:none; } .cols2 { grid-template-columns:1fr; } .band { grid-template-columns:1fr 1fr; } .surv { grid-template-columns:1fr; } }

/* Group by — a rolled-up row and the lines behind it (app.js groupRow /
   groupTable, over ../explorer/rollup.js). A group is a SUM: it opens in place
   to its own lines rather than to a drawer, because it has no source citation
   and no trajectory of its own to show. */
.gby { font-family:var(--mono); font-size:0.56rem; letter-spacing:0.09em; text-transform:uppercase; color:var(--ink-faint); align-self:center; margin-right:0.1rem; }
.gcov { margin:0; align-self:center; }
.lrow.grow .ltitle { color:var(--ink); }
.lrow.grow.on .ltitle { color:var(--accent); }
.lrow.grow.on td { border-bottom-color:transparent; }
.kidrow td { background:rgba(244,241,234,0.018); font-size:0.8rem; }
.kidrow td:first-child { padding-left:1.9rem; }
.kidrow .ltitle { color:var(--ink-dim); }
.kidmore td { color:var(--ink-faint); font-family:var(--mono); font-size:0.62rem; letter-spacing:0.04em; padding-left:1.9rem; }
.kidmore.lrow:hover td { color:var(--accent); }

/* The page's own tab row (app.js #pbtabs): Briefing · Explore · Search. */
.pbtabs{display:flex;gap:6px;flex-wrap:wrap;max-width:1180px;margin:14px auto 0;padding:0 16px}
.pbtabs button{font-family:var(--mono,ui-monospace,monospace);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);background:none;border:1px solid var(--line);border-radius:99px;padding:6px 14px;cursor:pointer}
.pbtabs button:hover{color:var(--ink);border-color:var(--accent)}
.pbtabs button.on{color:var(--accent);border-color:var(--accent)}

/* a fee-funded office in the request column: no request exists, so a word, not a figure */
.feetag { font-size:0.72em; color:var(--ink-faint); letter-spacing:0.02em; }

/* the intelligence toplines card (Briefing, Defense and All): a figure, its move, a history line */
.intel__v { font-family:var(--mono); font-size:0.82rem; color:var(--ink-dim); display:flex; flex-direction:column; gap:0.15rem; }
.intel__v b { color:var(--ink); font-weight:600; }
.intel__v .good { color:var(--good); } .intel__v .bad { color:var(--bad); }
.intel__h { font-size:0.68rem; color:var(--ink-faint); }
