/* Asymmetric Investor — design system v3.0 (light-first).
   Ported verbatim from the v1.3 proposal mock-up token file, with the
   mock-up-only annotation-block rules REMOVED: they are build narrative,
   the no-build-scaffolding gate rejects them in CSS as well as in markup,
   and shipping them would be exactly the scaffolding the proposal's own
   §2.6 forbids. Nothing else is changed, so this file can be diffed
   against the proposal.
   Currently consumed by ONE page (sigil.html) as the v3.0 pilot, per the
   proposal's Sprint 1 ("flag-gate on one page"). The other routes remain
   on assets/tokens.css until that migration is taken deliberately. */
/* ============================================================
   Asymmetric Investor — design system v3.0  ·  LIGHT-FIRST
   ============================================================
   WHAT CHANGED AND WHY

   v2.x was dark-first and carried the observation/interpretation
   distinction on light-vs-dark. That was wrong twice over:

   1. Readability. The operator finds the dark surfaces hard to
      read. That beats design theory.
   2. Convergence. The fleet already ships a light token system —
      advennt-theme.css maps v5 art direction onto the shared
      primitives, and the primitives are ~72 var() references with
      almost no hard-coded colour precisely so they can be themed.
      Inventing a third palette would have put this consumer out
      of step with advennt, world-payments, financial-integrity,
      AIC, crypto and data-protection.

   So: every colour below is LIFTED FROM THE FLEET TOKENS, not
   invented here. Names match advennt-theme.css / v5.css so this
   file can be reduced to a thin theme layer once the investor
   pages consume the shared primitives.

   THE REGISTER DISTINCTION NOW RIDES ON A DIFFERENT AXIS
   Observation vs interpretation is carried by SURFACE + TYPE +
   DENSITY, not by lightness:
     .reg-instrument  white cards on warm ground, mono numerals,
                      hairline rules, dense, tabular
     .reg-page        warm ground, Newsreader prose, 68ch measure,
                      generous leading, no card chrome
   Because the distinction no longer depends on lightness, a
   dark-mode toggle is now SAFE — it flips both registers together
   and the observation/interpretation contrast survives.

   DARK MODE
   Opt-in via [data-theme="dark"] on <html>. Light is the default,
   including when no preference is stored. See theme.js.
   ============================================================ */

@import url('https://api.fontshare.com/v2/css?f[]=satoshi@400,500,700,900&display=swap');

/* ─── FLEET TOKENS (light) — values lifted verbatim ─────────── */
:root{
  --color-bg:#F7F6F2; --color-surface:#ffffff;
  --surface-2:#F9F8F5; --surface-3:#EEECEA;
  --color-border:#E2E0DA; --line-2:#CCCAC4;
  --color-text:#1C1A16; --color-text-secondary:#4A4845; --color-text-muted:#8A8885;

  --color-primary:#01696F; --accent-hover:#0C4E54; --accent-dim:#E8F4F4;
  --green:#2A7A3B; --green-dim:#EDFAF1;
  --amber:#EA6C0A; --amber-dim:#FFF4E8; --amber-text:#a04e05;
  --red:#B22D2D; --red-dim:#FEF2F2;
  --crit:#991b1b; --crit-bg:#fbe3e3;
  --violet:#5B3FA8; --violet-dim:#F1EDFB;   /* provenance / evidence chrome */

  --shadow:0 1px 3px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.05);
  --shadow-md:0 4px 12px rgba(0,0,0,.1),0 2px 4px rgba(0,0,0,.06);
  --r:8px; --r-sm:5px;

  --ui:'Satoshi',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --read:'Newsreader',Georgia,serif;
  --mono:ui-monospace,'SF Mono',Menlo,monospace;

  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;
  --maxw:1240px; --readw:68ch;

  /* aliases used throughout this file */
  --bg:var(--color-bg); --surface:var(--color-surface);
  --line:var(--color-border);
  --ink:var(--color-text); --ink-2:var(--color-text-secondary); --ink-3:var(--color-text-muted);
  --accent:var(--color-primary);

  /* absence textures — light */
  --tex-void:repeating-linear-gradient(135deg,transparent 0 4px,rgba(28,26,22,.055) 4px 5px),var(--surface-3);
  --tex-pre:repeating-linear-gradient(90deg,transparent 0 5px,rgba(1,105,111,.10) 5px 6px),var(--accent-dim);
  --tex-blocked:repeating-linear-gradient(45deg,rgba(178,45,45,.10) 0 6px,transparent 6px 12px),var(--red-dim);
}

/* ─── DARK THEME — same names, dark values ──────────────────── */
[data-theme="dark"]{
  --color-bg:#12140F; --color-surface:#1A1D18;
  --surface-2:#20241E; --surface-3:#282D25;
  --color-border:#333830; --line-2:#454B42;
  --color-text:#F2F1EC; --color-text-secondary:#C3C0B8; --color-text-muted:#8F8D85;

  --color-primary:#4FBFC4; --accent-hover:#79D4D8; --accent-dim:#0E2B2D;
  --green:#67C77C; --green-dim:#12281A;
  --amber:#F5943C; --amber-dim:#2E1E0C; --amber-text:#F0AE68;
  --red:#E8756F; --red-dim:#2C1413;
  --crit:#F0918B; --crit-bg:#32100F;
  --violet:#A996E8; --violet-dim:#1E1830;

  --shadow:0 1px 3px rgba(0,0,0,.5); --shadow-md:0 6px 18px rgba(0,0,0,.55);

  --tex-void:repeating-linear-gradient(135deg,transparent 0 4px,rgba(255,255,255,.05) 4px 5px),var(--surface-3);
  --tex-pre:repeating-linear-gradient(90deg,transparent 0 5px,rgba(79,191,196,.14) 5px 6px),var(--accent-dim);
  --tex-blocked:repeating-linear-gradient(45deg,rgba(232,117,111,.12) 0 6px,transparent 6px 12px),var(--red-dim);
}

.void-fill{background:var(--tex-void)}
.pre-fill{background:var(--tex-pre)}
.blocked-fill{background:var(--tex-blocked)}

/* ─── base ──────────────────────────────────────────────────── */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:15.5px/1.55 var(--ui);-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none;text-underline-offset:3px}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:3px}
img,svg{max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--s5);min-width:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ─── registers ─────────────────────────────────────────────── */
/* INSTRUMENT: white cards, mono numerals, dense, hairline rules */
.reg-instrument{background:var(--bg)}
/* PAGE: no card chrome, serif prose, wide measure */
.reg-page{background:var(--bg)}
.reg-page main{font-family:var(--read)}
.reg-page .card{box-shadow:none;background:transparent;border-color:var(--line)}

/* ─── type ──────────────────────────────────────────────────── */
h1,h2,h3{margin:0;line-height:1.15;letter-spacing:-.018em;font-weight:700}
h1.display{font:900 clamp(30px,4.6vw,54px)/1.05 var(--ui);letter-spacing:-.032em;margin:.1em 0 .25em}
h1.editorial{font:400 clamp(28px,3.8vw,46px)/1.14 var(--read);letter-spacing:-.015em;margin:.1em 0 .3em}
h2{font:800 11.5px var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--amber-text);margin:var(--s7) 0 var(--s2);display:flex;align-items:center;gap:var(--s3)}
h2::after{content:"";flex:1;height:1px;background:var(--line)}
h2.teal{color:var(--accent)}
h2+.sub{margin:0 0 var(--s4);font-size:13.5px;color:var(--ink-3)}
h3{font-size:17px}
.kicker{font:800 11.5px var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.src{font:600 10.5px var(--mono);letter-spacing:.06em;color:var(--ink-3);margin-top:3px}
.lede{font:400 clamp(16.5px,1.7vw,20px)/1.5 var(--read);color:var(--ink-2);max-width:62ch}
.mono{font-family:var(--mono);font-size:.88em;font-variant-numeric:tabular-nums}
.tabular{font-family:var(--mono);font-variant-numeric:tabular-nums}
.bignum{font:900 clamp(30px,4.6vw,54px)/1 var(--ui);letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.bignum small{display:block;font:700 11px var(--ui);letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase;margin-top:var(--s2);letter-spacing:.08em}
svg.spark{display:block;width:100%}
.body-serif{font:400 17.5px/1.62 var(--read);max-width:var(--readw);color:#26241f}
[data-theme="dark"] .body-serif{color:var(--ink)}
.dropcap::first-letter{float:left;font:400 72px/.74 var(--read);margin:5px 10px 0 0;color:var(--accent)}
.pullquote{font:italic 400 25px/1.32 var(--read);border-top:2.5px solid var(--accent);border-bottom:1px solid var(--line);padding:var(--s4) 0;margin:var(--s5) 0;max-width:48ch}

/* utilities — replace hard-coded hexes in page markup with these */
.u-ink2{color:var(--ink-2)}.u-ink3{color:var(--ink-3)}
.u-accent{color:var(--accent)}.u-good{color:var(--green)}
.u-warn{color:var(--amber-text)}.u-bad{color:var(--red)}
.u-violet{color:var(--violet)}.u-crit{color:var(--crit)}
.u-small{font-size:13px}.u-xs{font-size:12px}
.u-max80{max-width:80ch}.u-max90{max-width:92ch}
.u-mt0{margin-top:0}.u-mt2{margin-top:var(--s2)}.u-mt3{margin-top:var(--s3)}.u-mt4{margin-top:var(--s4)}

/* ─── chrome ────────────────────────────────────────────────── */
.rail{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.rail .row{display:flex;align-items:stretch;min-height:58px;gap:var(--s4)}
.mark{display:flex;align-items:center;gap:9px;padding-right:var(--s4);border-right:1px solid var(--line);color:var(--ink)}
.mark:hover{text-decoration:none}
.mark .glyph{width:24px;height:24px;position:relative;flex:none}
.mark .glyph i{position:absolute;inset:0;border:2px solid var(--accent)}
.mark .glyph i:last-child{inset:7px 0 0 7px;border-color:var(--amber);opacity:.85}
.mark b{font:900 15px/1.15 var(--ui);letter-spacing:-.03em}
nav{display:flex;align-items:stretch;overflow:auto}
nav a{display:flex;align-items:center;padding:0 var(--s3);font-size:14px;font-weight:600;color:var(--ink-2);white-space:nowrap}
nav a:hover{color:var(--ink);text-decoration:none}
nav a[aria-current],nav a.on{color:var(--ink);font-weight:700;box-shadow:inset 0 -2.5px 0 var(--accent)}
.statusstrip{margin-left:auto;display:flex;align-items:center;gap:var(--s2);padding-left:var(--s3);border-left:1px solid var(--line);flex-wrap:wrap}
.statusstrip .state{font:800 13px var(--ui);letter-spacing:.06em;color:var(--amber-text);text-transform:uppercase}
.beacon{width:8px;height:8px;border-radius:99px;background:var(--amber);flex:none}

/* theme toggle */
.themebtn{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 10px;font:600 12px var(--ui);color:var(--ink-2);cursor:pointer}
.themebtn:hover{border-color:var(--ink-3);color:var(--ink)}

/* StateStrip — static, single pass, no marquee */
.statestrip{border-bottom:1px solid var(--line);background:var(--surface);overflow-x:auto}
.statestrip ul{display:flex;margin:0;padding:0;list-style:none;max-width:var(--maxw);margin:0 auto}
.statestrip li{display:flex;flex-direction:column;gap:2px;padding:9px var(--s4);border-right:1px solid var(--line);white-space:nowrap;flex:none}
.statestrip li:last-child{border-right:0}
.statestrip .k{font:800 10px var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.statestrip .v{font:700 12.5px var(--ui);color:var(--ink)}
.statestrip .v em{font-style:normal;color:var(--amber-text)}
.statestrip .v u{text-decoration:none;color:var(--ink-3);font-weight:500}
.statestrip li.pend .v{color:var(--accent)}

main{padding:var(--s6) 0 var(--s8)}

/* ─── primitives ────────────────────────────────────────────── */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4)}
.card.hi{border-left:3px solid var(--amber);background:var(--amber-dim)}
.card.warn{border-left:3px solid var(--red);background:var(--red-dim)}
.card.good{border-left:3px solid var(--green);background:var(--green-dim)}
.grid{display:grid;gap:var(--s4)}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}.g5{grid-template-columns:repeat(5,1fr)}
.g6{grid-template-columns:repeat(6,1fr)}
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--s6);align-items:end;padding:var(--s4) 0}
.split{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:var(--s6);align-items:start}
.hr{border:0;border-top:1px solid var(--line);margin:var(--s5) 0;height:0}
.row{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center}

.tag{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:2.5px 9px;font:700 11.5px var(--ui);color:var(--ink-2);white-space:nowrap}
.tag.sig{background:var(--amber-dim);color:var(--amber-text);border-color:#F5D3AE}
.tag.red{background:var(--red-dim);color:var(--red);border-color:#F0C4C4}
.tag.lime{background:var(--green-dim);color:#1d5c2c;border-color:#BFE3C9}
.tag.teal{background:var(--accent-dim);color:#04555a;border-color:#B9DCDE}
.tag.violet{background:var(--violet-dim);color:var(--violet);border-color:#D6CBF0}
.tag.void{background:transparent;color:var(--ink-3);border-style:dashed;border-color:var(--line-2)}
.tag.ph{background:var(--accent-dim);color:#04555a;border-color:#B9DCDE;border-style:dashed}
[data-theme="dark"] .tag.lime{color:var(--green);border-color:#2c5a39}
[data-theme="dark"] .tag.teal,[data-theme="dark"] .tag.ph{color:var(--accent);border-color:#245a5e}

/* ─── six-state freshness contract, in fleet colours ────────── */
.f6{display:inline-flex;align-items:center;gap:5px;padding:2.5px 8px;border-radius:99px;font:700 11px var(--ui);border:1px solid;white-space:nowrap}
.f6::before{content:"";width:6px;height:6px;flex:none;background:currentColor;border-radius:99px}
.f6.fresh{background:var(--green-dim);color:#1d5c2c;border-color:#BFE3C9}
.f6.unchanged{background:var(--accent-dim);color:#04555a;border-color:#B9DCDE}
.f6.stale{background:var(--amber-dim);color:var(--amber-text);border-color:#F5D3AE}
.f6.stale::before{border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%)}
.f6.unavailable{background:transparent;color:var(--ink-3);border-color:var(--line-2);border-style:dashed}
.f6.unavailable::before{background:transparent;border:1px solid var(--line-2)}
.f6.revised{background:var(--violet-dim);color:var(--violet);border-color:#D6CBF0}
.f6.revised::before{border-radius:0;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.f6.invalid{background:var(--crit-bg);color:var(--crit);border-color:#F0C4C4}
.f6.invalid::before{border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%)}
.f6 .nohead{font-size:9.5px;font-weight:600;border-left:1px solid currentColor;padding-left:5px;margin-left:2px;opacity:.85}
[data-theme="dark"] .f6.fresh{color:var(--green);border-color:#2c5a39}
[data-theme="dark"] .f6.unchanged{color:var(--accent);border-color:#245a5e}
[data-theme="dark"] .f6.stale{color:var(--amber-text);border-color:#5a4415}
[data-theme="dark"] .f6.revised{color:var(--violet);border-color:#3c3563}
[data-theme="dark"] .f6.invalid{color:var(--crit);border-color:#5a2320}

/* ─── licensing ─────────────────────────────────────────────── */
.lic{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:3px;font:600 10.5px var(--mono);border:1px solid;white-space:nowrap}
.lic.permitted{background:var(--green-dim);color:#1d5c2c;border-color:#BFE3C9}
.lic.pending{background:var(--amber-dim);color:var(--amber-text);border-color:#F5D3AE}
.lic.prohibited{background:var(--red-dim);color:var(--red);border-color:#F0C4C4}
.derived-only{display:inline-flex;align-items:center;gap:6px;background:var(--violet-dim);color:var(--violet);border:1px solid #D6CBF0;border-radius:3px;padding:3px 9px;font:600 10.5px var(--mono)}
[data-theme="dark"] .lic.permitted{color:var(--green);border-color:#2c5a39}
[data-theme="dark"] .lic.pending{color:var(--amber-text);border-color:#5a4415}
[data-theme="dark"] .lic.prohibited{color:var(--red);border-color:#5a2320}
[data-theme="dark"] .derived-only{color:var(--violet);border-color:#3c3563}
.attrib{border-top:1px solid var(--line);margin-top:var(--s6);padding-top:var(--s4);font:12px/1.6 var(--ui);color:var(--ink-3);max-width:96ch}
.val-raw{outline:2px dashed var(--red);outline-offset:2px}

/* ─── pending panel (honest absence, not scaffolding) ───────── */
.pending{border:1px solid var(--line-2);border-left:3px solid var(--accent);background:var(--accent-dim);border-radius:var(--r-sm);padding:var(--s4)}
.pending.blocked-fill{border-left-color:var(--red)}
.pending .mode{float:right}
.why{font:12.5px/1.6 var(--ui);color:#04555a;margin-top:var(--s2)}
[data-theme="dark"] .why{color:var(--accent)}
.pendingdial{border-color:var(--line-2);background:var(--surface-2)}

.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:var(--r-sm);border:1px solid transparent;font:700 14.5px var(--ui);cursor:pointer;background:var(--accent);color:#fff}
.btn:hover{background:var(--accent-hover);color:#fff;text-decoration:none}
.btn.g{background:var(--surface);border-color:var(--line-2);color:var(--ink)}
.btn.g:hover{background:var(--surface);border-color:var(--ink-3)}


/* ─── boards ────────────────────────────────────────────────── */
table.board{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;background:var(--surface)}
table.board th{text-align:left;font:800 11px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);padding:9px 11px;background:var(--surface-2);border-bottom:1px solid var(--line-2);white-space:nowrap}
table.board td{padding:10px 11px;border-bottom:1px solid var(--line);vertical-align:middle}
table.board tbody tr:hover td{background:var(--surface-2)}
tr.leader td{background:var(--amber-dim)}
tr.leader td:first-child{box-shadow:inset 3px 0 0 var(--amber)}
tr.classhead td{background:var(--surface-3);font:800 10.5px var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.scroller{overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);max-width:100%;min-width:0}

/* BandTrack — position within a band, never the value */
.bandtrack{position:relative;height:22px;min-width:170px}
.bandtrack .bands{position:absolute;top:9px;left:0;right:0;height:5px;display:flex;gap:1px;border-radius:99px;overflow:hidden}
.bandtrack .bands i{flex:1}
.bandtrack .b-calm{background:#BFE3C9}
.bandtrack .b-watch{background:#F5D3AE}
.bandtrack .b-armed{background:#F0C4C4}
[data-theme="dark"] .bandtrack .b-calm{background:#2c5a39}
[data-theme="dark"] .bandtrack .b-watch{background:#5a4415}
[data-theme="dark"] .bandtrack .b-armed{background:#5a2320}
.bandtrack .head{position:absolute;top:3px;width:3px;height:17px;border-radius:2px;background:var(--ink)}
.bandtrack .head.hot{background:var(--amber);box-shadow:0 0 0 3px var(--amber-dim)}
.bandtrack.novalue .bands{filter:grayscale(1) opacity(.5)}

/* ─── dials ─────────────────────────────────────────────────── */
.dialgrid{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.dialcard{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:var(--s4);display:flex;flex-direction:column;gap:var(--s2)}
.dialcard.blocked{border-left:3px solid var(--red)}
.dialcard.pendingdial{border-left:3px solid var(--line-2)}
.dialcard header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s2)}
.dialcard h3{font-size:14px;font-weight:700;margin:0}
.dialsvg{display:block;width:100%;height:auto}
.dialcard footer{display:flex;gap:6px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding-top:var(--s2);margin-top:auto}
.bandlabel{font:900 15px var(--ui);letter-spacing:.04em;text-transform:uppercase}
.bandlabel.calm{color:#1d5c2c}.bandlabel.watch{color:var(--amber-text)}
.bandlabel.armed{color:var(--red)}.bandlabel.none{color:var(--ink-3)}
[data-theme="dark"] .bandlabel.calm{color:var(--green)}

/* dial SVG stroke helpers — reference from markup, not hexes */
.arc-track{stroke:var(--surface-3)}
.arc-calm{stroke:#BFE3C9}.arc-watch{stroke:#F5D3AE}.arc-armed{stroke:#F0C4C4}
.needle-calm{stroke:#1d5c2c}.needle-watch{stroke:var(--amber-text)}
.needle-armed{stroke:var(--red)}.needle-none{stroke:var(--ink-3)}
.dial-cap-calm{fill:#1d5c2c}.dial-cap-watch{fill:var(--amber-text)}
.dial-cap-armed{fill:var(--red)}.dial-cap-none{fill:var(--ink-3)}
.dial-label{fill:var(--ink-3);font:600 9px var(--mono);letter-spacing:.1em}
.dial-note{fill:var(--accent);font:600 11px var(--mono);letter-spacing:.1em}

/* posture dial 0–10 */
.lin{position:relative;height:48px}
.lin .scale{position:absolute;top:20px;left:0;right:0;height:6px;border-radius:99px;background:linear-gradient(90deg,#BFE3C9,#F5D3AE,#F0C4C4)}
.lin .ticks{position:absolute;top:30px;left:0;right:0;display:flex;justify-content:space-between;font:700 10px var(--mono);color:var(--ink-3)}
.lin .needle{position:absolute;top:12px;width:2px;height:22px;background:var(--ink)}
.lin .needle::after{content:"";position:absolute;top:-7px;left:-4px;width:10px;height:10px;background:var(--amber);clip-path:polygon(50% 100%,0 0,100% 0)}
.lin .ci{position:absolute;top:20px;height:6px;border-radius:99px;background:rgba(28,26,22,.10);outline:1px solid var(--line-2)}
[data-theme="dark"] .lin .ci{background:rgba(255,255,255,.12)}

.pair{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}
.pair>div{padding:var(--s4)}
.pair>div:first-child{border-right:1px solid var(--line)}
.pair .num{font:900 26px var(--ui);letter-spacing:-.03em;margin-top:4px}

.wstack{display:flex;height:34px;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;position:relative;background:var(--surface)}
.wstack i{position:relative}
.wstack i.got{background:#BFE3C9}
.wstack i.missing{background:var(--tex-void)}
.wstack .thr{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--amber);z-index:2}

/* ─── emission map ──────────────────────────────────────────── */
.modebar{display:flex;height:30px;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;font:800 10.5px var(--ui);letter-spacing:.08em;text-transform:uppercase}
.modebar div{display:flex;align-items:center;justify-content:center}
.m-req{background:var(--accent-dim);color:#04555a}
.m-persist{background:var(--green-dim);color:#1d5c2c}
.m-dep{background:var(--surface-3);color:var(--ink-2)}
.m-json{background:var(--violet-dim);color:var(--violet)}
.flow{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}
.flow>div{padding:var(--s4);border-right:1px solid var(--line)}
.flow>div:last-child{border-right:0}
.flow .pl{font:800 11px var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.flow .vis{font:600 10.5px var(--mono);color:var(--ink-3);margin-top:var(--s3)}
.starved{display:flex;gap:6px;flex-wrap:wrap}
.starved span{border:1px solid #F0C4C4;background:var(--red-dim);color:var(--red);padding:2.5px 8px;border-radius:3px;font:600 10.5px var(--mono)}

/* ─── reused components ─────────────────────────────────────── */
.meter{height:5px;background:var(--surface-3);border-radius:99px;margin-top:var(--s3);overflow:hidden}
.meter i{display:block;height:100%}
.completeness{display:flex;gap:3px;margin-top:var(--s3)}
.completeness i{height:16px;flex:1;background:#BFE3C9;border:1px solid #9fd0ad;border-radius:2px}
.completeness i.off{background:var(--tex-void);border-color:var(--line-2);border-style:dashed}
.triad{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}
.triad .t{padding:var(--s4);border-right:1px solid var(--line);position:relative}
.triad .t:last-child{border-right:0}
.triad .t.clash{background:var(--amber-dim)}
.triad .t.clash::after{content:"DISAGREES";position:absolute;top:var(--s3);right:var(--s3);font:800 9.5px var(--ui);letter-spacing:.14em;color:var(--amber-text)}
.thesis{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}
.thesis .top{padding:var(--s4)}
.thesis .foot{display:flex;border-top:1px solid var(--line);background:var(--surface-2)}
.thesis .foot div{flex:1;padding:9px 11px;border-right:1px solid var(--line);font:700 10.5px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.thesis .foot div:last-child{border-right:0}
.thesis .foot b{display:block;font:900 18px var(--ui);color:var(--ink);letter-spacing:-.02em;margin-top:3px}
.thesis h3.tt{font:400 21px/1.22 var(--read);margin:var(--s2) 0}
.entityrail{display:flex;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:auto}
.ent{padding:11px var(--s4);border-right:1px solid var(--line);min-width:120px;cursor:pointer;flex:none}
.ent:last-child{border-right:0}
.ent.on{background:var(--accent-dim);box-shadow:inset 0 -2.5px 0 var(--accent)}
.ent .n{font:700 12.5px var(--ui)}
.ent .c{font:600 10.5px var(--mono);color:var(--ink-3);margin-top:3px}
.ent.zero .c{color:var(--amber-text)}
.ladder{display:grid;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}
.ladder .rung{display:grid;grid-template-columns:52px 1fr 200px 150px;gap:var(--s3);align-items:center;padding:11px var(--s4);border-bottom:1px solid var(--line)}
.ladder .rung:last-child{border-bottom:0}
.ladder .rung.no{background:var(--surface-2);color:var(--ink-3)}
.ladder .rung.breach{background:var(--red-dim);box-shadow:inset 3px 0 0 var(--red)}
.ladder .t{font:900 20px var(--ui);letter-spacing:-.03em;color:var(--accent)}
.ladder .rung.no .t{color:var(--ink-3)}
.clockrow{display:grid;grid-template-columns:1fr 96px 130px 1fr;gap:var(--s3);align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.clockrow.head{color:var(--ink-2);font:800 10.5px var(--ui);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--line-2)}
.age{height:6px;background:var(--surface-3);border-radius:99px;position:relative;overflow:visible}
.age i{position:absolute;inset:0 auto 0 0;border-radius:99px}
.age .cad{position:absolute;top:-4px;width:1px;height:14px;background:var(--ink-3)}
.stale-banner{border:1px solid #F5D3AE;border-left:3px solid var(--amber);background:var(--amber-dim);border-radius:var(--r-sm);padding:var(--s4);display:flex;gap:var(--s3);align-items:flex-start;margin:var(--s3) 0;color:var(--amber-text)}
.stale-banner b{color:var(--ink)}
.record{display:flex;align-items:flex-end;gap:7px;height:140px}
.record>div{flex:1;position:relative;border-radius:3px 3px 0 0}
.record .evt{position:absolute;top:-22px;left:50%;transform:translateX(-50%);font:700 9.5px var(--mono);color:var(--amber-text)}
.legend{display:flex;gap:var(--s4);margin-top:var(--s3);font:700 10.5px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);flex-wrap:wrap}
.bar-caution{background:#F5D3AE}.bar-riskon{background:#BFE3C9}.bar-none{background:var(--surface-3)}

/* page-register extras */
.kj{display:grid;grid-template-columns:48px 1fr;gap:var(--s4);padding:var(--s4) 0;border-top:1px solid var(--line)}
.kj .id{font:900 25px var(--ui);color:var(--line-2);line-height:1}
.kj.measured .id{color:var(--amber)}
.kj .claim{font:400 18.5px/1.45 var(--read);margin-top:3px}
.srcchip{display:inline-flex;align-items:center;gap:4px;background:var(--violet-dim);color:var(--violet);border:1px solid #D6CBF0;border-radius:3px;padding:1px 6px;font:600 10.5px var(--mono);white-space:nowrap}
.stamp{display:inline-block;border:2px solid var(--accent);color:var(--accent);border-radius:var(--r-sm);padding:6px 12px;font:700 11px/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;transform:rotate(-2deg)}
.toc{position:sticky;top:74px;font-size:13.5px}
.toc a{display:block;padding:5px 0 5px 10px;color:var(--ink-2);border-left:2px solid transparent}
.toc a:hover{text-decoration:none;color:var(--ink)}
.toc a.on{color:var(--ink);font-weight:700;border-left-color:var(--accent)}

footer{border-top:1px solid var(--line);padding:var(--s6) 0;color:var(--ink-3);font-size:12.5px;margin-top:var(--s7)}

@media (max-width:960px){
  .hero,.split,.pair{grid-template-columns:1fr}
  .g6,.g5,.g4,.g3,.g2{grid-template-columns:repeat(2,1fr)}
  .triad,.flow{grid-template-columns:1fr}
  .triad .t,.flow>div{border-right:0;border-bottom:1px solid var(--line)}
  .ladder .rung,.clockrow{grid-template-columns:1fr;gap:6px}
}
@media (max-width:620px){
  .grid{grid-template-columns:1fr!important}
  .dialgrid{grid-template-columns:1fr}
  body{font-size:15px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
@media print{.rail,.statestrip,.themebtn{display:none!important}}
