/* =============================================================================
   THE PUBLIC LEDGER: design system for the U.S.–Israel Money & Policy Tracker
   An investigative broadsheet built from public records. Paper and ink; one signal red.
   Reference: site/DESIGN.md. Page styles live in css/pages/<group>.css.

   Sections: tokens (paper) · tokens (night) · legacy aliases · base · type · rules · layout
   · masthead · section bar · section index (mega) · drawer · index card (palette) · colophon (footer)
   · components: figures/ledger, stamps & footnotes, section heads, tables, filter bar, tabs, buttons,
     badges/chips, callouts, empty, skeleton, tooltip, pager, cards · charts · utilities · motion
   No shadows, glass, glow, gradients or rounded pills anywhere in this file.
   ============================================================================= */

/* ---------- tokens: paper (default) ---------- */
:root {
  color-scheme: light;
  /* paper & ink */
  --paper: #f1ece2;
  --paper-2: #e9e2d4;      /* panel tint */
  --paper-3: #dfd6c4;      /* deeper tint, hover */
  --ink: #161412;
  --ink-2: #39342e;
  --ink-3: #5c554c;        /* secondary text, AA on paper */
  --ink-4: #6b6358;        /* meta, AA at >=12px */
  --rule: rgba(22, 20, 18, .2);    /* hairline */
  --rule-2: rgba(22, 20, 18, .34); /* control borders, firmer hairline */
  --rule-3: rgba(22, 20, 18, .62); /* emphasis rule */
  --red: #8a0b06;          /* the single signal color: the logo's crimson */
  --red-ink: #7a0904;      /* red used as text */
  --logo-red: #820001;     /* the wordmark's red; reference only */
  --mark: rgba(138, 11, 6, .11); /* highlighter for search matches */

  /* print inks (charts + semantic roles). Slots 1–6 validated on #f1ece2. */
  --ink-slate: #2b5d99;
  --ink-olive: #6c7d18;
  --ink-plum: #8e4580;
  --ink-ochre: #a9750f;
  --ink-teal: #088672;
  --ink-rust: #b5552a;
  --ink-brown: #7a5634;
  --ink-sand: #8a7650;
  --ink-gray: #8a8178;
  /* FROZEN Nov. 12, 2026 — role inks (all-pairs validated, both themes, >= dE 15 from party, vote and signal inks): moss, leaf, orchid */
  --cat-a: #3e5c18; --cat-b: #279035; --cat-c: #b767bc; --cat-d: var(--cat-a);
  --ink-steel: #4f6378;   /* extra (roles only) */
  --ink-clay: #9a6b52;    /* extra (roles only) */

  /* party (party only) */
  --dem: #2e5c8a;
  --rep: #b4583f;   /* party brick red for marks (4.1:1); validated apart from the signal red */
  --rep-ink: #9a4530; /* party red for text (5.5:1) */
  --ind: #6b5b8e;
  /* vote positions (positions, not judgements) */
  --yea: #2b2723;   /* positions in ink, never a hue: yea solid ink */
  --nay: #8f8270;   /* nay warm gray (3.2:1) */
  --present: #c4b7a0;
  --absent: #e6ddcc;

  /* sequential (one hue, slate; low values recede toward paper) */
  --seq-0: #ece4d3; --seq-1: #e0c89c; --seq-2: #cda46a; --seq-3: #b07d38; --seq-4: #8a5a1f; --seq-5: #5e3b12;
  --seqc-0: #e4e0d5; --seqc-1: #c3ccd5; --seqc-2: #97acc2; --seqc-3: #6a8cb0; --seqc-4: #3f6b98; --seqc-5: #1f4673;

  /* chart chrome */
  --grid: rgba(22, 20, 18, .1);
  --axis: rgba(22, 20, 18, .7);
  --hatch: rgba(22, 20, 18, .55);

  /* type */
  --font-display: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --font-body: Charter, "Bitstream Charter", "Sitka Text", Georgia, Cambria, serif;
  --font-label: "Arial Narrow", "Roboto Condensed", "Helvetica Neue Condensed", "Helvetica Neue", Arial, sans-serif;
  --font-ui: "Helvetica Neue", "Segoe UI", Arial, sans-serif;
  --mono: Consolas, "Courier New", "Liberation Mono", monospace;
  --font: var(--font-body);

  /* editorial type scale */
  --fs-2xs: 11px;   /* labels, stamps */
  --fs-xs: 12.5px;  /* meta, table heads */
  --fs-sm: 14.5px;  /* secondary, captions */
  --fs-base: 17px;  /* body serif */
  --fs-md: 19px;    /* decks */
  --fs-lg: 23px;    /* h3 / subheads */
  --fs-xl: 30px;    /* h2 */
  --fs-2xl: clamp(32px, 4vw, 52px);   /* page headline */
  --fs-3xl: clamp(40px, 6.4vw, 84px); /* lead headline / nameplate */
  --fs-num: clamp(26px, 2.8vw, 38px); /* ledger figures */
  --lh-tight: 1.04; --lh-snug: 1.22; --lh-body: 1.55;
  --track-label: .12em;

  /* rules */
  --hair: 1px solid var(--rule);
  --hair-2: 1px solid var(--rule-2);
  --heavy: 3px solid var(--ink);
  --double: 3px double var(--ink);

  /* shape, space, motion, layers */
  --r-xs: 0; --r-sm: 2px; --r-md: 2px; --r-lg: 2px; --r-xl: 2px; --r-pill: 2px; --radius: 2px;
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 20px; --s-6: 24px; --s-7: 32px; --s-8: 40px; --s-9: 56px; --s-10: 72px;
  --dur-1: 100ms; --dur-2: 180ms; --dur-3: 280ms; --dur-4: 520ms; --dur-5: 900ms;
  --ease-out: cubic-bezier(.2, .7, .2, 1); --ease-in-out: cubic-bezier(.6, 0, .3, 1); --ease-spring: var(--ease-out);
  --z-base: 1; --z-sticky: 40; --z-dropdown: 60; --z-drawer: 80; --z-modal: 90; --z-tip: 100; --z-skip: 110;
  --maxw: 1320px;
  --header-h: 46px; /* height of the sticky section bar */
}

/* ---------- tokens: night edition (warm charcoal + ivory) ---------- */
html[data-theme="night"] {
  color-scheme: dark;
  --paper: #1c1a17;
  --paper-2: #24211d;
  --paper-3: #2e2a25;
  --ink: #ede6d6;
  --ink-2: #d4cbb9;
  --ink-3: #aea492;
  --ink-4: #978d7c;
  --rule: rgba(237, 230, 214, .17);
  --rule-2: rgba(237, 230, 214, .3);
  --rule-3: rgba(237, 230, 214, .58);
  --red: #ff7b72;
  --red-ink: #ff958d;
  --mark: rgba(255, 123, 114, .18);
  --ink-slate: #5785bf; --ink-olive: #83952c; --ink-plum: #b05fa0; --ink-ochre: #b88524; --ink-teal: #17977f; --ink-rust: #c8693f;
  --ink-brown: #9a6a44; --ink-sand: #b8a67e; --ink-gray: #8c8478; --ink-steel: #93a6ba; --ink-clay: #c4957a; --cat-a: #4aae12; --cat-b: #1b7f37; --cat-c: #9656a9; --cat-d: var(--cat-a);   /* night: >= 3.4:1, all-pairs validated */
  --dem: #79a3d1; --rep: #b0603f; --rep-ink: #d48a70; --ind: #a897cc;
  --yea: #ece4d4; --nay: #8a7f6e; --present: #5a5246; --absent: #2e2a25;
  --seq-0: #2a2620; --seq-1: #4a3a22; --seq-2: #6e5228; --seq-3: #96702f; --seq-4: #c09650; --seq-5: #e6c88c;
  --seqc-0: #2a2925; --seqc-1: #2e3c4e; --seqc-2: #3c5878; --seqc-3: #5579a2; --seqc-4: #7fa2cc; --seqc-5: #b9d0ea;
  --grid: rgba(237, 230, 214, .1);
  --axis: rgba(237, 230, 214, .65);
  --hatch: rgba(237, 230, 214, .5);
}

/* ---------- legacy aliases (old names keep working; new code should use the names above) ---------- */
:root, html[data-theme="night"] {
  --bg: var(--paper); --bg-2: var(--paper-2);
  --panel: var(--paper); --panel-2: var(--paper-2); --panel-3: var(--paper-3);
  --glass: var(--paper); --glass-strong: var(--paper);
  --line: var(--rule); --line-2: var(--rule-2); --line-3: var(--rule-3);
  --text: var(--ink); --text-2: var(--ink-2); --muted: var(--ink-3); --dim: var(--ink-4);
  --cyan: var(--ink-slate); --lime: var(--ink-olive); --pink: var(--ink-plum); --amber: var(--ink-ochre);
  --violet: var(--ind); --green: var(--ink-teal);
  --accent: var(--red);
  /* categories 5–8 are categories 1–4 HATCHED (Charts.catFill); as plain tokens they alias the same inks, never a near-duplicate hue */
  --cat-1: var(--cat-a); --cat-2: var(--cat-b); --cat-3: var(--cat-c); --cat-4: var(--cat-a); --cat-5: var(--cat-b);
  --cat-6: var(--cat-c); --cat-7: var(--cat-a); --cat-8: var(--cat-b); --cat-9: var(--cat-c);   /* 4–6 hatched, 7–9 outlined (Charts.catMeta) */
  --shadow-1: none; --shadow-2: none; --shadow-3: none; --shadow-4: none; --shadow: none; --glow: none;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); background: var(--paper); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: var(--fs-base)/var(--lh-body) var(--font-body);
  font-variant-numeric: oldstyle-nums proportional-nums;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: hidden; min-height: 100vh;
}
body.no-scroll { overflow: hidden; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: var(--rule-3); }
a:hover { color: var(--red-ink); text-decoration-color: currentColor; }
p { margin: 0 0 1em; }
b, strong { font-weight: 700; }
em, i { font-style: italic; }
code { font-family: var(--mono); font-size: .86em; background: var(--paper-2); border: var(--hair); padding: 0 4px; word-break: break-word; }
mark { background: var(--mark); color: inherit; padding: 0 1px; }
hr { border: 0; border-top: var(--hair); margin: var(--s-6) 0; }
hr.heavy { border-top: var(--heavy); } hr.double { border-top: var(--double); }
img, svg { max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
::selection { background: var(--ink); color: var(--paper); }
:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.skip { position: fixed; left: 12px; top: -80px; z-index: var(--z-skip); background: var(--ink); color: var(--paper); padding: 10px 14px; font: 700 var(--fs-sm)/1 var(--font-ui); text-decoration: none; }
.skip:focus { top: 12px; color: var(--paper); }
.ico { width: 1em; height: 1em; display: inline-block; vertical-align: -.14em; flex-shrink: 0; }

/* ---------- type ---------- */
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 700; margin: 0 0 .4em; letter-spacing: -.005em; text-wrap: balance; color: var(--ink); }
h1 { font-size: var(--fs-2xl); line-height: var(--lh-tight); letter-spacing: -.015em; }
h2 { font-size: var(--fs-xl); line-height: 1.1; }
h3 { font-size: var(--fs-lg); line-height: var(--lh-snug); }
h4 { font-size: var(--fs-md); line-height: var(--lh-snug); }
.deck, .lead { font-family: var(--font-display); font-style: italic; font-size: var(--fs-md); line-height: 1.45; color: var(--ink-2); max-width: 760px; }
.kicker, .label, .smallcaps { font-family: var(--font-label); font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-3); }
.byline { font-family: var(--font-label); font-size: var(--fs-xs); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
.dateline { font-family: var(--mono); font-size: var(--fs-xs); color: var(--ink-3); }
.figure, .fig { font-family: var(--font-display); font-variant-numeric: lining-nums tabular-nums; }
.dropcap::first-letter { float: left; font-family: var(--font-display); font-size: 3.4em; line-height: .82; padding: .06em .08em 0 0; font-weight: 700; }
.pull { font-family: var(--font-display); font-style: italic; font-size: var(--fs-lg); line-height: 1.3; border-top: var(--heavy); border-bottom: var(--hair-2); padding: var(--s-3) 0; margin: var(--s-5) 0; }
.muted { color: var(--ink-3); }
.dim { color: var(--ink-4); }
.mono { font-family: var(--mono); }
.num, .tnum { font-variant-numeric: lining-nums tabular-nums; }
.red { color: var(--red-ink); }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- rules ---------- */
.rule { border: 0; border-top: var(--hair); }
.rule-heavy { border-top: var(--heavy); }
.rule-double { border-top: var(--double); }
.rule-top { border-top: var(--hair); padding-top: var(--s-3); }
.cols-2, .cols-3 { column-gap: var(--s-7); column-rule: var(--hair); }
.cols-2 { columns: 2; } .cols-3 { columns: 3; }
@media (max-width: 800px) { .cols-2, .cols-3 { columns: 1; } }
.col-rules > * + * { border-left: var(--hair); padding-left: var(--s-5); }
@media (max-width: 800px) { .col-rules > * + * { border-left: 0; padding-left: 0; border-top: var(--hair); padding-top: var(--s-4); } }

/* ---------- layout ---------- */
main { max-width: var(--maxw); margin: 0 auto; padding: var(--s-6) var(--s-5) var(--s-9); min-height: 70vh; counter-reset: sec; }
main:focus { outline: none; }
.page-enter { animation: page-in var(--dur-3) var(--ease-out) both; }
@keyframes page-in { from { opacity: 0; } to { opacity: 1; } }
.page-head { margin: var(--s-2) 0 var(--s-6); padding-bottom: var(--s-4); border-bottom: var(--hair-2); }
.page-head h1 { max-width: 980px; }
.page-head p { font-family: var(--font-display); font-style: italic; font-size: var(--fs-md); color: var(--ink-2); max-width: 800px; }
.eyebrow { display: flex; align-items: center; gap: var(--s-3); font: 700 var(--fs-2xs)/1.2 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--red-ink); margin-bottom: var(--s-3); }
.eyebrow::after { content: ""; flex: 1; border-top: var(--hair); }
.grid { display: grid; gap: var(--s-5); }
.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.split { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--s-7); }
.split > :last-child { border-left: var(--hair); padding-left: var(--s-6); }
.stack { display: flex; flex-direction: column; gap: var(--s-3); }
.row { display: flex; gap: var(--s-3); align-items: center; flex-wrap: wrap; }
.spacer { flex: 1; }
@media (max-width: 1000px) { .g3, .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .split { grid-template-columns: 1fr; } .split > :last-child { border-left: 0; padding-left: 0; border-top: var(--hair); padding-top: var(--s-5); } }
@media (max-width: 640px) { .g2, .g3, .g4 { grid-template-columns: 1fr; } main { padding: var(--s-4) 14px var(--s-8); } }
.section { margin: var(--s-8) 0; }
.section-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; margin-bottom: var(--s-4); border-top: var(--heavy); padding-top: var(--s-2); }
.section-head h2, .section-head h3 { margin: 0; }

/* =============================================================================
   MASTHEAD · SECTION BAR · INSIDE THIS EDITION · DRAWER · INDEX CARD · COLOPHON
   One grid for the whole shell: every band is var(--maxw) wide with var(--s-5) gutters (14px on phones),
   so the masthead, section bar, index panel, page and colophon share the same left and right edges.
   ============================================================================= */
.masthead, .secbar-inner, .sindex-inner, .footer-inner { max-width: var(--maxw); margin: 0 auto; padding-left: var(--s-5); padding-right: var(--s-5); }
@media (max-width: 640px) { .masthead, .secbar-inner, .sindex-inner, .footer-inner { padding-left: 14px; padding-right: 14px; } }

/* ---------- masthead ---------- */
.masthead { color: var(--ink); }
.mast-strip { display: flex; align-items: center; gap: var(--s-4); justify-content: space-between; padding: 7px 0 6px; border-bottom: var(--hair); font: var(--fs-xs)/1.3 var(--font-label); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
.mast-strip .dl { display: flex; flex-wrap: wrap; align-items: center; min-width: 0; }
.mast-strip .dl > * { white-space: nowrap; }
.mast-strip .dl > *:not(:last-child)::after { content: "·"; margin: 0 .7em; color: var(--ink-4); }
.mast-strip .mono { font-family: var(--mono); letter-spacing: 0; text-transform: none; }
.mast-tools { display: flex; gap: var(--s-2); align-items: center; flex-shrink: 0; }
.mast-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 28px; background: none; border: 1px solid var(--rule-3); color: var(--ink); padding: 4px 10px; cursor: pointer; font: 700 var(--fs-2xs)/1.2 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; }
.mast-btn:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.mast-btn[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.mast-btn .ico { width: 13px; height: 13px; }
.mast-btn .k { font-family: var(--mono); letter-spacing: 0; text-transform: none; font-weight: 400; opacity: .75; }
.mast-btn .lbl-s { display: none; }
.theme-dot { font: 13px/1 var(--font-body); }
.mast-main { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: var(--s-5); padding: var(--s-3) 0 var(--s-3); }
.ear { font-family: var(--font-label); font-size: var(--fs-2xs); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); line-height: 1.45; border: 1px solid var(--rule-2); border-top: var(--heavy); padding: 8px 10px; max-width: 232px; min-height: 96px; display: flex; flex-direction: column; justify-content: flex-start; align-self: start; }
.ear .it { white-space: nowrap; }
.ear b { display: block; font-family: var(--font-display); font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--ink); font-weight: 700; margin-bottom: 2px; }
.ear.right { justify-self: end; text-align: right; }
.nameplate { display: block; text-align: center; color: var(--ink); text-decoration: none; line-height: 1; }
.nameplate:hover { color: var(--ink); }
.np-word { display: block; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-3xl); letter-spacing: -.02em; line-height: .92; white-space: nowrap; }
.np-amp { font-style: italic; font-weight: 400; color: var(--red); padding: 0 .04em; }
.np-sub { display: flex; align-items: center; justify-content: center; gap: var(--s-3); margin-top: 10px; font-family: var(--font-display); font-style: italic; font-size: var(--fs-md); color: var(--ink-2); letter-spacing: .01em; }
.np-sub::before, .np-sub::after { content: ""; width: 44px; border-top: 1px solid var(--rule-2); }
.mast-rule { border: 0; border-top: var(--double); margin: 0; }
@media (max-width: 1180px) { .ear { display: none; } .mast-main { grid-template-columns: 1fr; } }
@media (max-width: 1000px) {
  .mast-strip .dl .opt2 { display: none; }
  .ear { display: none; }
  .mast-main { grid-template-columns: 1fr; padding: var(--s-4) 0 var(--s-3); }
  .mast-btn { min-height: 44px; min-width: 44px; }
  .mast-tools .mast-btn[data-cmdk] { display: none; }
}
@media (max-width: 640px) {
  .mast-strip { gap: 10px; }
  .mast-strip .dl .opt { display: none; }
  .mast-strip .dl > :first-child::after { content: none; }
  .mast-btn .lbl, .mast-btn .k { display: none; }
  .mast-btn .lbl-s { display: inline; }
  .np-word { font-size: clamp(34px, 11vw, 52px); }
  .np-sub { font-size: 14px; margin-top: 12px; } .np-sub::before, .np-sub::after { width: 18px; }
}

/* ---------- sticky section bar ---------- */
.secbar { position: sticky; top: 0; z-index: var(--z-sticky); background: var(--paper); border-bottom: 1px solid var(--rule-2); }
.secbar-inner { position: relative; display: flex; align-items: stretch; min-height: var(--header-h); }
.secbar .mini { display: flex; align-items: center; gap: 8px; margin-right: var(--s-2); border-right: 1px solid transparent; font-family: var(--font-display); font-weight: 700; font-size: 20px; color: var(--ink); text-decoration: none; white-space: nowrap; max-width: 0; overflow: hidden; opacity: 0; padding-right: 0; visibility: hidden;
  transition: max-width var(--dur-3) var(--ease-out), opacity var(--dur-2), padding var(--dur-3), visibility 0s linear var(--dur-3); }
.secbar .mini .np-amp { font-size: 1em; }
.secbar.is-stuck .mini { max-width: 260px; opacity: 1; padding-right: var(--s-4); border-right-color: var(--rule); visibility: visible; transition-delay: 0s; }
.secbar .cur-sec { display: none; align-items: center; font: 700 var(--fs-2xs)/1.2 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.secbar .cur-sec b { color: var(--red-ink); margin-right: 6px; font-family: var(--font-display); font-size: 15px; letter-spacing: 0; text-transform: none; }
.secnav { position: relative; flex: 1; display: flex; justify-content: center; align-items: stretch; min-width: 0; }
.secnav-list { position: relative; display: flex; align-items: stretch; margin: 0; padding: 0; list-style: none; }
.secnav-list > li { display: flex; position: static; }
.secnav-list > li + li:not(.sec-ind) { border-left: var(--hair); }
.secnav-list > li.sec-ind { position: absolute; display: block; bottom: -1px; left: 0; height: 3px; width: 0; background: var(--red); transition: transform var(--dur-3) var(--ease-out), width var(--dur-3) var(--ease-out); pointer-events: none; }
.sec-item { display: inline-flex; align-items: center; gap: 6px; padding: 0 16px; background: none; border: 0; cursor: pointer; color: var(--ink); text-decoration: none; font: 700 var(--fs-xs)/1 var(--font-label); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.sec-item:hover { color: var(--red-ink); }
.sec-item .caret { width: 8px; height: 8px; transition: transform var(--dur-2); }
.sec-item[aria-expanded="true"] .caret { transform: rotate(180deg); }
.sec-item[aria-expanded="true"], .sec-item.is-active { color: var(--ink); }
.secbar-tools { display: flex; align-items: center; gap: var(--s-2); padding-left: var(--s-3); }
.secbar .icon-btn { display: inline-grid; place-items: center; width: 34px; height: 34px; background: none; border: 1px solid var(--rule-3); color: var(--ink); cursor: pointer; }
.secbar .icon-btn:hover { background: var(--ink); color: var(--paper); }
.secbar .icon-btn .ico { width: 16px; height: 16px; }
.secbar .t-stuck { display: none; }
.secbar.is-stuck .t-stuck { display: inline-grid; }
.nav-toggle { display: none !important; }
.scroll-progress { position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; transform-origin: 0 50%; transform: scaleX(var(--p, 0)); background: var(--red); opacity: .85; pointer-events: none; }
@media (max-width: 1000px) {
  .secnav { display: none; }
  .secbar:not(.is-stuck) .cur-sec { display: flex; }
  .secbar-tools { margin-left: auto; }
  .secbar .icon-btn { width: 44px; height: 44px; }
  .secbar .nav-toggle { display: inline-flex !important; align-items: center; width: auto; padding: 0 12px; gap: 8px; font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; }
  .secbar .t-stuck { display: inline-grid; }
}
@media (max-width: 640px) { .secbar .mini { font-size: 17px; } }

/* ---------- inside this edition (section index) ---------- */
.sindex { position: absolute; left: var(--s-5); right: var(--s-5); top: 100%; z-index: var(--z-dropdown); background: var(--paper); border-top: var(--heavy); border-bottom: var(--double);
  visibility: hidden; clip-path: inset(0 0 100% 0); transition: clip-path 220ms var(--ease-out), visibility 0s linear 220ms; }
.sindex.is-open { visibility: visible; clip-path: inset(0 0 -16px 0); transition-delay: 0s; }
.sindex::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 12px; margin-top: 3px; background: var(--paper); }
.sindex-inner { padding: var(--s-6) 0; display: grid; grid-template-columns: 200px minmax(0, 1.5fr) minmax(0, 1fr); gap: 0; }
.sindex-inner > * + * { border-left: var(--hair); padding-left: var(--s-6); margin-left: var(--s-6); }
.sindex-head .k { font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--red-ink); }
.sindex-head h3 { font-size: 40px; line-height: 1; margin: 10px 0 10px; }
.sindex-head p { font-style: italic; font-family: var(--font-display); color: var(--ink-3); font-size: var(--fs-sm); margin: 0 0 14px; }
.sindex-head .sec-letter { font: 400 84px/.8 var(--font-display); font-variant-numeric: oldstyle-nums; color: var(--ink); opacity: .14; }
.sindex-list { list-style: none; margin: 0; padding: 0; border-top: var(--hair-2); }
.sindex-list > li { border-bottom: var(--hair); }
.toc { display: grid; grid-template-columns: 58px minmax(0, 1fr); column-gap: 10px; padding: 10px 0; color: var(--ink); text-decoration: none; }
@media (hover: hover) { .toc:hover { color: var(--ink); background: var(--paper-2); } }
.toc:focus-visible { background: var(--paper-2); }
.toc .folio { grid-row: 1 / span 3; font: 400 34px/1 var(--font-display); font-variant-numeric: oldstyle-nums; color: var(--ink-3); text-align: right; padding-right: 4px; letter-spacing: -.02em; }
.toc.is-active .folio { color: var(--red-ink); }
.toc .tl { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.toc .tn { display: none; }
.toc .tt { font-family: var(--font-display); font-weight: 700; font-size: 20px; line-height: 1.15; }
.toc .lead-dots { flex: 1; border-bottom: 1px dotted var(--rule-3); transform: translateY(-4px); min-width: 16px; }
.toc .tc { font-family: var(--mono); font-size: var(--fs-sm); color: var(--ink-2); white-space: nowrap; }
.toc .td { display: block; font-style: italic; font-family: var(--font-display); font-size: var(--fs-sm); color: var(--ink-3); line-height: 1.4; margin-top: 2px; }
.toc.is-active .tt { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.toc-subs { list-style: none; margin: 0; padding: 0 0 10px 68px; display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.toc-subs a { display: flex; gap: 6px; align-items: baseline; padding: 4px 0; font: 14.5px/1.35 var(--font-body); text-decoration: none; color: var(--ink-2); border-top: 1px dotted var(--rule-2); }
.toc-subs a::before { content: "¶"; color: var(--red-ink); font-family: var(--font-display); }
.toc-subs a:hover { color: var(--red-ink); }
.brief { border: 1px solid var(--rule-2); border-top: var(--heavy); padding: 10px 14px 12px; align-self: start; }
.sindex-inner > .brief { margin-left: var(--s-6); border-left: 1px solid var(--rule-2); padding-left: 14px; }
.brief .k { font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-3); border-bottom: var(--hair); padding-bottom: 8px; margin-bottom: 10px; display: flex; justify-content: space-between; gap: 8px; }
.brief .h { font-family: var(--font-display); font-size: 21px; line-height: 1.2; font-weight: 700; margin: 0 0 6px; }
.brief .h a { text-decoration: none; }
.brief .h a:hover { text-decoration: underline; }
.brief p { font-size: var(--fs-sm); color: var(--ink-2); margin: 0 0 8px; }
.brief .dc::first-letter { float: left; font: 700 2.9em/.8 var(--font-display); padding: .08em .08em 0 0; color: var(--ink); }
.brief .status { font-family: var(--font-display); font-style: italic; color: var(--red-ink); }
.brief .meta { font-family: var(--mono); font-size: var(--fs-xs); color: var(--ink-3); }
.brief .tally { margin: 8px 0; }
.brief .mini-fig { display: block; margin: 8px 0 6px; border-top: var(--hair); padding-top: 8px; }
.brief .mini-fig svg { display: block; width: 100%; height: auto; overflow: visible; }
.brief .mini-fig figcaption { font: italic 12.5px/1.35 var(--font-display); color: var(--ink-3); margin-top: 4px; }
.brief .fnlist { margin-top: 6px; }

/* ---------- drawer (folded section list) ---------- */
.drawer-scrim { position: fixed; inset: 0; background: rgba(22, 20, 18, .45); z-index: var(--z-drawer); opacity: 0; transition: opacity var(--dur-3); }
html[data-theme="night"] .drawer-scrim, html[data-theme="night"] .cmdk-scrim { background: rgba(0, 0, 0, .6); }
.drawer-scrim.is-open { opacity: 1; }
.drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(420px, 100vw); z-index: calc(var(--z-drawer) + 1); display: flex; flex-direction: column; background: var(--paper); border-left: var(--heavy); transform: translateX(100%); transition: transform var(--dur-3) var(--ease-out); }
.drawer.is-open { transform: none; }
.drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px 10px; border-bottom: var(--double); }
.drawer-head .np-word { font-size: 28px; }
.drawer-head .icon-btn { display: inline-grid; place-items: center; width: 44px; height: 44px; background: none; border: 1px solid var(--rule-3); color: var(--ink); cursor: pointer; }
.drawer-body { flex: 1; overflow-y: auto; padding: 4px 16px 24px; overscroll-behavior: contain; }
.fold { padding: 12px 0 8px; border-bottom: 1px solid var(--rule-2); }
.fold:last-child { border-bottom: 0; }
.fold-h { display: flex; justify-content: space-between; align-items: baseline; font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--red-ink); margin-bottom: 4px; }
.fold-h .n { font-family: var(--mono); color: var(--ink-3); letter-spacing: 0; }
.fold .toc { grid-template-columns: 40px minmax(0, 1fr); padding: 9px 0; min-height: 44px; }
.fold .toc .folio { font-size: 24px; }
.fold .toc .tt { font-size: 18px; }
.fold .toc .td { font-size: 13.5px; }
.drawer-tools { display: flex; gap: 8px; padding: 12px 0 4px; }
.drawer-tools .mast-btn { flex: 1; min-height: 44px; }
.drawer .mast-btn .lbl { display: inline; }
.drawer .mast-btn .lbl-s { display: none; }

/* ---------- index card (command palette) ---------- */
.cmdk-scrim { position: fixed; inset: 0; z-index: var(--z-modal); background: rgba(22, 20, 18, .42); display: flex; align-items: flex-start; justify-content: center; padding: 11vh 16px 16px; opacity: 0; transition: opacity var(--dur-2); }
.cmdk-scrim.is-open { opacity: 1; }
.cmdk { width: min(660px, 100%); max-height: min(620px, 78vh); display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--ink); outline: 4px solid var(--paper); }
html[data-theme="night"] .cmdk { background: var(--paper-2); outline-color: var(--paper-2); border-color: var(--rule-3); }
.cmdk-top { display: flex; align-items: baseline; gap: 12px; padding: 14px 18px 10px; border-bottom: 2px solid var(--red); }
.cmdk-top .k { font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--red-ink); flex-shrink: 0; }
.cmdk-input { flex: 1; min-width: 0; background: transparent; border: 0; outline: none; font: 19px/1.3 var(--mono); color: var(--ink); }
.cmdk-input::placeholder { color: var(--ink-4); }
.cmdk-close { background: none; border: 1px solid var(--rule-3); color: var(--ink); font: 700 10.5px/1 var(--font-label); letter-spacing: .1em; text-transform: uppercase; padding: 6px 8px; cursor: pointer; min-height: 28px; }
.cmdk-list { overflow-y: auto; padding: 0 18px 8px; overscroll-behavior: contain; }
.cmdk-group { font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-3); padding: 14px 0 6px; border-bottom: 1px solid var(--rule-2); }
.cmdk-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: baseline; padding: 8px 6px; border-bottom: var(--hair); color: var(--ink); text-decoration: none; cursor: pointer; }
.cmdk-item:hover { color: var(--ink); background: var(--paper-2); }
.cmdk-item[aria-selected="true"] { background: var(--ink); color: var(--paper); }
.cmdk-item .ct { display: block; font-family: var(--font-display); font-size: 17px; font-weight: 700; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cmdk-item .cs { display: block; font-family: var(--mono); font-size: var(--fs-xs); color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cmdk-item[aria-selected="true"] .cs { color: var(--paper-3); }
.cmdk-item mark { background: transparent; color: inherit; text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 2px; }
.cmdk-item .enter { font: italic 13px var(--font-display); opacity: 0; }
.cmdk-item[aria-selected="true"] .enter { opacity: 1; }
.cmdk-empty { margin: 16px 0 8px; padding: 12px 14px; border: 1px solid var(--rule-2); border-top: 2px solid var(--red); }
.cmdk-empty .k { font: 700 10.5px/1 var(--font-label); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.cmdk-empty p { margin: 6px 0 0; font-family: var(--font-display); font-style: italic; color: var(--ink-2); }
.cmdk-foot { display: flex; gap: 16px; flex-wrap: wrap; align-items: baseline; justify-content: space-between; padding: 9px 18px; border-top: 1px solid var(--rule-2); font: italic 13.5px/1.3 var(--font-display); color: var(--ink-3); }
.cmdk-foot .mono { font-style: normal; font-size: var(--fs-xs); }
.kbd { display: inline-block; font: 400 11px/1 var(--mono); color: var(--ink-2); padding: 3px 5px; border: 1px solid var(--rule-3); }
@media (max-width: 640px) { .cmdk-scrim { padding-top: 8px; } .cmdk { max-height: 88vh; } .cmdk-foot { display: none; } .cmdk-close { min-height: 44px; } }

/* =============================================================================
   COLOPHON (footer)
   ============================================================================= */
.footer { margin-top: var(--s-9); background: var(--paper); color: var(--ink); }
.footer-inner { padding-bottom: var(--s-6); font-size: var(--fs-sm); }
.colo-plate { border-top: var(--double); border-bottom: 1px solid var(--rule-2); padding: var(--s-6) 0 var(--s-4); text-align: center; overflow: hidden; }
.colo-plate .np-word { font-size: clamp(40px, 9.5vw, 132px); line-height: .95; }
.colo-plate .np-sub { margin-top: 22px; }
.colo-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) minmax(0, 1.6fr) minmax(0, .8fr); gap: 0; padding: var(--s-6) 0; border-bottom: 1px solid var(--rule-2); }
.colo-grid > * { min-width: 0; }
.colo-grid > * + * { border-left: var(--hair); padding-left: var(--s-5); margin-left: var(--s-5); }
.colo-h { font: 700 11px/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink); border-bottom: var(--heavy); padding-bottom: 7px; margin: 0 0 12px; display: block; }
.colo-about p { margin: 0 0 10px; color: var(--ink-2); }
.colo-about .figs { margin: 10px 0 0; }
.colo-sig { margin: 12px 0 0; padding-top: 10px; border-top: var(--hair); font: italic 14px/1.5 var(--font-display); color: var(--ink-2); }
.colo-sig > span { display: block; }
.colo-sig .mono { font-style: normal; font-size: var(--fs-xs); }
.ed-note-scope { font-family: var(--font-display); font-size: 16.5px; line-height: 1.55; color: var(--ink); margin: 0; }
.ed-note-scope::first-letter { font-weight: 700; }
.ed-note-scope + .muted { margin-top: 12px; font-size: var(--fs-sm); font-style: italic; font-family: var(--font-display); }
.corrections { margin-top: 16px; border: 1px solid var(--rule-2); border-top: 2px solid var(--ink); padding: 8px 12px 10px; }
.corrections .colo-h { border-bottom: var(--hair); margin-bottom: 8px; }
.corrections p { margin: 0; font: italic 14.5px/1.5 var(--font-display); color: var(--ink-2); }
.corrections p + p { margin-top: 4px; font-size: 13px; color: var(--ink-3); }
.wire { width: 100%; border-collapse: collapse; font: var(--fs-xs)/1.35 var(--mono); }
.wire th { position: static; background: none; font: 700 11px/1.2 var(--font-label); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); border-bottom: 1px solid var(--ink); padding: 4px 6px 4px 0; text-align: left; }
.wire td { padding: 5px 6px 5px 0; border-bottom: 1px dotted var(--rule-2); vertical-align: top; }
.wire td:first-child { font-family: var(--mono); color: var(--ink); }
.wire .mk { display: inline-block; width: 1.3em; color: var(--ink); }
.wire tr.stale .mk { color: var(--ink-ochre); }
.wire tr.pending .mk { color: var(--red-ink); }
.wire .st { font: 700 11px/1.3 var(--font-label); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; color: var(--ink-2); }
.wire .st.ok { color: var(--ink); }
.wire .st.stale { color: var(--ink-2); }
.wire .st.pending { color: var(--red-ink); }
.wire .ts { color: var(--ink-3); white-space: nowrap; }
.wire .why { display: block; font: italic 12.5px/1.35 var(--font-display); color: var(--ink-3); padding-left: 1.3em; }
.wire-key { margin: 8px 0 0; font: var(--fs-xs)/1.4 var(--mono); color: var(--ink-3); }
.colo-map > summary { list-style: none; cursor: default; }
.colo-map > summary::-webkit-details-marker { display: none; }
.colo-map > summary::before, .colo-map[open] > summary::before { content: none; }
.colo-map { border: 0; padding: 0; }
.sitemap { list-style: none; margin: 0; padding: 0; }
.sitemap > li + li { margin-top: 10px; }
.sitemap .grp { font: 700 11px/1 var(--font-label); letter-spacing: .12em; text-transform: uppercase; color: var(--red-ink); }
.sitemap ul { list-style: none; margin: 4px 0 0; padding: 0; }
.sitemap a { display: inline-flex; gap: 6px; align-items: baseline; font-family: var(--font-display); font-size: 15px; text-decoration: none; }
.sitemap a .f { font: 12px var(--mono); color: var(--ink-3); min-width: 1.8em; }
.sitemap a:hover { text-decoration: underline; }
.colo-agencies { padding: var(--s-4) 0; border-bottom: 1px solid var(--rule-2); font: var(--fs-xs)/1.9 var(--font-label); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.colo-agencies b { color: var(--ink); margin-right: 6px; }
.colo-agencies a { text-decoration: none; color: var(--ink-2); white-space: nowrap; display: inline-block; }
.colo-agencies a:hover { text-decoration: underline; color: var(--red-ink); }
.colo-agencies a + a::before { content: "·"; margin: 0 .6em; color: var(--ink-4); }
.colo-base { display: flex; justify-content: space-between; align-items: center; gap: var(--s-4); flex-wrap: wrap; padding: var(--s-3) 0 0; font: var(--fs-xs)/1.5 var(--mono); color: var(--ink-3); }
.colo-base .caveat { font-family: var(--font-display); font-style: italic; font-size: 14px; color: var(--ink-2); }
.to-top { background: none; border: 0; color: var(--ink); cursor: pointer; font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; padding: 8px 0; min-height: 28px; text-decoration: underline; text-underline-offset: 4px; }
.to-top:hover { color: var(--red-ink); }
.colo-end { text-align: center; margin: var(--s-6) 0 0; font: 400 20px/1 var(--font-display); letter-spacing: .3em; color: var(--ink-2); }
.colo-end span { display: block; margin-top: 8px; font: 700 10.5px/1 var(--font-label); letter-spacing: .18em; text-transform: uppercase; color: var(--ink-3); }
@media (max-width: 1000px) {
  .colo-grid { grid-template-columns: 1fr 1fr; row-gap: var(--s-6); }
  .colo-grid > :nth-child(3) { border-left: 0; padding-left: 0; margin-left: 0; }
  .to-top { min-height: 44px; padding: 12px 0; }
}
@media (max-width: 640px) {
  .colo-grid { grid-template-columns: 1fr; }
  .colo-grid > * + * { border-left: 0; padding-left: 0; margin-left: 0; border-top: 1px solid var(--rule-2); padding-top: var(--s-5); }
  .sitemap a, .colo-agencies a, .colo-about a, .colo-sig a { padding: 12px 0; }
  .colo-about .lrow { padding: 6px 0; }
  .sitemap > li + li { margin-top: 4px; }
  .colo-map > summary { cursor: pointer; display: flex; justify-content: space-between; }
  .colo-map > summary::after { content: "+"; font-family: var(--mono); color: var(--red-ink); }
  .colo-map[open] > summary::after { content: "−"; }
  .colo-map > summary.colo-h { padding: 14px 0 10px; margin: 0; }
  .colo-map[open] > summary.colo-h { margin-bottom: 8px; }
}

/* =============================================================================
   COMPONENTS
   ============================================================================= */

/* ---------- panels & cards (paper tints and rules; no shadows) ---------- */
.panel { position: relative; background: transparent; border-top: var(--hair-2); padding: var(--s-4) 0 var(--s-2); }
.panel.boxed, .panel.glass { border: var(--hair-2); padding: var(--s-4) var(--s-5); }
.panel.tint { background: var(--paper-2); border: 0; padding: var(--s-4) var(--s-5); }
.panel.tight { padding-top: var(--s-3); padding-bottom: var(--s-2); }
.panel.flush { padding: 0; }
.panel h3 { margin-bottom: var(--s-2); }
a.panel { display: block; color: var(--ink); text-decoration: none; }
a.panel:hover, .panel.lift:hover { background: var(--paper-2); }
.panel-accent { border-top: var(--heavy); }
.list { display: flex; flex-direction: column; gap: 0; border-top: var(--hair-2); }
.card { display: block; padding: 14px 0; border-bottom: var(--hair); color: var(--ink); text-decoration: none; }
.list > .card:last-child { border-bottom: 0; }
a.card:hover { background: var(--paper-2); color: var(--ink); }
.card .top { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; margin-bottom: 4px; font: var(--fs-xs)/1.4 var(--font-label); letter-spacing: .04em; color: var(--ink-3); }
.card .t { font-family: var(--font-display); font-size: 20px; font-weight: 700; line-height: 1.22; margin-bottom: 4px; }
.card .t a { text-decoration: none; }
.card .t a:hover { text-decoration: underline; }
.card .s { color: var(--ink-2); font-size: var(--fs-sm); margin: 0; }
.bill-id { font-family: var(--mono); font-size: 13px; font-weight: 700; color: var(--ink); white-space: nowrap; letter-spacing: 0; }

/* ---------- ledger figure (T.kpi) & ledger box (T.ledger) ---------- */
.kpi, .stat { position: relative; border-top: var(--heavy); padding: 10px 0 var(--s-3); }
.kpi .l, .stat .l { display: block; font: 700 var(--fs-2xs)/1.3 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-3); }
.kpi .v, .stat .v { display: block; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-num); line-height: 1.02; letter-spacing: -.01em; margin: 6px 0 6px; font-variant-numeric: lining-nums; color: var(--ink); }
.kpi .v small { font-size: .45em; font-weight: 400; font-style: italic; margin-left: 4px; color: var(--ink-3); letter-spacing: 0; }
.kpi .d, .stat .d { font-size: var(--fs-sm); color: var(--ink-2); margin: 0 0 6px; line-height: 1.45; }
.kpi .src, .stat .src { font-size: var(--fs-xs); }
.kpi.lift:hover, a.kpi:hover { background: var(--paper-2); }
a.kpi { display: block; color: var(--ink); text-decoration: none; }
.kpi.accent .v, .c-red .v { color: var(--red-ink); }
.c-cyan, .c-lime, .c-pink, .c-amber, .c-violet, .c-plain { --accent: var(--red); }
.kpi .spark { display: none; }
.ledger { border-top: var(--heavy); border-bottom: var(--hair-2); padding: 6px 0 4px; }
.ledger-h { display: flex; justify-content: space-between; gap: 8px; font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink); padding: 4px 0 8px; border-bottom: var(--hair); }
.lrow { display: flex; align-items: baseline; gap: 6px; padding: 7px 0; border-bottom: var(--hair); }
.lrow:last-of-type { border-bottom: 0; }
.lrow .ll { font-family: var(--font-body); font-size: var(--fs-sm); color: var(--ink); }
.lrow .ll small { display: block; font-style: italic; color: var(--ink-3); font-size: 12.5px; }
.lrow .ld { flex: 1; min-width: 16px; border-bottom: 1px dotted var(--rule-3); transform: translateY(-4px); }
.lrow .lv { font-family: var(--mono); font-size: 15px; font-weight: 700; color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.lrow.hot .lv { color: var(--red-ink); }
.lrow a { text-decoration: none; }
.lrow a:hover { text-decoration: underline; }
.ledger .fnlist { margin-top: 6px; border-top: var(--hair); padding-top: 6px; }

/* ---------- stamps & footnotes ---------- */
.stamp, .srckind { display: inline-block; font: 700 9.5px/1 var(--font-label); letter-spacing: .14em; text-transform: uppercase; padding: 3px 5px 2px; border: 1px solid var(--ink); color: var(--ink); vertical-align: 1px; white-space: nowrap; }
.stamp.reported, .srckind.reported { border: 1px dashed var(--ink-2); color: var(--ink-2); }
.stamp.reported::before, .srckind.reported::before { content: ""; display: inline-block; width: 6px; height: 6px; border: 1px solid currentColor; border-radius: 50%; margin-right: 4px; vertical-align: 0; }
.stamp.documented, .srckind.documented { border: 1px solid var(--ink); color: var(--ink); }
.stamp.red { border-color: var(--red); color: var(--red-ink); }
.srcnote { display: inline-flex; align-items: baseline; gap: 6px; flex-wrap: wrap; font-size: var(--fs-xs); color: var(--ink-3); line-height: 1.45; font-family: var(--font-body); }
.srcnote .k { font-family: var(--font-label); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: 10px; color: var(--ink-3); }
.srcnote a { color: var(--ink-2); }
sup.fn { font: 700 .62em/0 var(--font-ui); vertical-align: super; margin-left: 1px; }
sup.fn a { text-decoration: none; color: var(--red-ink); padding: 0 1px; }
sup.fn a:hover { text-decoration: underline; }
.fnlist { list-style: none; counter-reset: none; margin: var(--s-3) 0 0; padding: 0; font-size: var(--fs-xs); color: var(--ink-2); line-height: 1.5; }
.fnlist li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 4px; padding: 2px 0; }
.fnlist li .n { font: 700 11px/1.5 var(--font-ui); color: var(--red-ink); }
.fnlist li:target { background: var(--mark); }
.fnlist .stamp { margin-right: 6px; }
.fnlist-h { font: 700 10px/1 var(--font-label); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); border-top: var(--hair); padding-top: 8px; margin-top: var(--s-3); }
.sources { font-size: var(--fs-sm); padding-left: 20px; margin: 0; }
.sources li { margin: 3px 0; }

/* ---------- section heads (T.sectionHead) ---------- */
.shead { counter-increment: sec; margin: 0 0 var(--s-5); }
.shead-slug { display: flex; align-items: center; gap: 10px; border-top: var(--heavy); padding-top: 7px; margin-bottom: 8px; font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-3); }
.shead-num { font-family: var(--font-display); font-size: 15px; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--red-ink); }
.shead-num:empty::before { content: "§\00a0" counter(sec); }
.shead-slug .sp { flex: 1; }
.shead-slug .acts { display: flex; gap: 12px; align-items: center; letter-spacing: .06em; }
.shead-row { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-4); flex-wrap: wrap; }
.shead-text { max-width: 820px; min-width: 0; }
.shead h2 { font-size: var(--fs-xl); line-height: 1.08; margin: 0; }
.shead h3 { margin: 0; }
.shead .kicker, .shead .deck { display: block; margin: 6px 0 0; font-family: var(--font-display); font-style: italic; font-size: 17.5px; line-height: 1.45; color: var(--ink-2); text-transform: none; letter-spacing: 0; font-weight: 400; }
.shead-actions { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }

/* ---------- callouts: editor's notes ---------- */
.explain, .note, .warn, .callout, .ed-note { position: relative; padding: 10px 0 10px 16px; border-left: 3px solid var(--ink); font-size: var(--fs-sm); line-height: 1.55; color: var(--ink-2); background: none; }
.explain { font-family: var(--font-display); font-size: 17px; color: var(--ink); }
.note { border-left-color: var(--ink-ochre); }
.warn { border-left-color: var(--red); }
.ed-note::before, .callout[data-label]::before { content: attr(data-label); display: block; font: 700 10px/1 var(--font-label); letter-spacing: .14em; text-transform: uppercase; color: var(--red-ink); margin-bottom: 5px; }
.ed-note:not([data-label])::before { content: "Editor's note"; }
.callout { display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.callout > .ico { display: none; }
.callout.amber { border-left-color: var(--ink-ochre); } .callout.pink { border-left-color: var(--red); } .callout.violet { border-left-color: var(--ind); }
.snip { font-size: var(--fs-sm); color: var(--ink-2); border-left: var(--hair-2); padding: 3px 0 3px 12px; margin: 8px 0; font-style: italic; font-family: var(--font-display); }
.snip mark { font-style: normal; }
details { border-top: var(--hair-2); border-bottom: var(--hair); padding: 8px 0; background: none; }
details summary { cursor: pointer; font: 700 var(--fs-xs)/1.4 var(--font-label); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); list-style: none; }
details summary::-webkit-details-marker { display: none; }
details summary::before { content: "+"; display: inline-block; width: 1.2em; font-family: var(--mono); color: var(--red-ink); }
details[open] summary::before { content: "−"; }
details[open] summary { margin-bottom: 8px; }

/* ---------- empty state & skeleton ---------- */
.empty { padding: var(--s-6) var(--s-4); text-align: center; border-top: var(--double); border-bottom: var(--hair-2); color: var(--ink-3); font-size: var(--fs-sm); }
.empty .ico { display: none; }
.empty b { display: block; font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: 21px; color: var(--ink); margin-bottom: 6px; }
.sk { position: relative; background: transparent; border-bottom: var(--hair); animation: sk-pulse 1.6s var(--ease-in-out) infinite; }
@keyframes sk-pulse { 50% { opacity: .45; } }
.sk-line { height: 14px; margin: 10px 0; border-bottom: 2px solid var(--rule); }
.sk-title { height: 44px; width: 60%; margin: 12px 0 18px; border-bottom: 4px solid var(--rule-2); }
.sk-block { height: 120px; border-top: var(--heavy); border-bottom: var(--hair); opacity: .6; }
.sk-row { height: 38px; }
.loading-note { display: inline-flex; gap: 10px; align-items: baseline; font: var(--fs-xs)/1 var(--mono); color: var(--ink-3); margin: 8px 0 16px; }
.spinner { width: 9px; height: 9px; background: var(--red); animation: sk-pulse 1s infinite; }

/* ---------- tooltip (paper card, ink border) ---------- */
.chart-tip, .tip { position: fixed; left: 0; top: 0; pointer-events: none; z-index: var(--z-tip); max-width: 300px; background: var(--paper); border: 1px solid var(--ink); padding: 8px 10px 7px; font: var(--fs-xs)/1.45 var(--font-body); color: var(--ink); opacity: 0; transition: opacity var(--dur-1); }
html[data-theme="night"] .chart-tip { background: var(--paper-2); }
.chart-tip.is-on { opacity: 1; }
.chart-tip.is-touch { pointer-events: auto; }
.chart-tip .tt { font-family: var(--font-display); font-weight: 700; font-size: 15px; line-height: 1.25; margin-bottom: 4px; padding-bottom: 4px; border-bottom: var(--hair); }
.chart-tip .tr { display: flex; justify-content: space-between; gap: 14px; align-items: baseline; }
.chart-tip .tr > span:first-child { display: inline-flex; align-items: center; gap: 6px; color: var(--ink-2); }
.chart-tip .tr b { font-family: var(--mono); font-weight: 700; }
.chart-tip .sw { width: 9px; height: 9px; display: inline-block; flex-shrink: 0; }
.chart-tip .tn { color: var(--ink-3); font-style: italic; font-family: var(--font-display); font-size: 13px; margin-top: 4px; }
.chart-tip .go { display: block; margin-top: 6px; font: 700 10.5px/1 var(--font-label); letter-spacing: .1em; text-transform: uppercase; color: var(--red-ink); }
[data-tip] { cursor: help; text-decoration: underline dotted var(--rule-3); text-underline-offset: 3px; }

/* ---------- badges & chips ---------- */
.chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.badge { display: inline-flex; align-items: center; gap: 5px; font: 700 10.5px/1.5 var(--font-label); letter-spacing: .08em; text-transform: uppercase; padding: 0 5px; border: 1px solid var(--rule-3); color: var(--ink-2); background: none; white-space: nowrap; vertical-align: 1px; }
.badge a { text-decoration: none; }
.badge .ico { width: 11px; height: 11px; }
.badge.cyan { color: var(--ink-slate); border-color: currentColor; }
.badge.lime, .badge.green { color: var(--ink-olive); border-color: currentColor; }
.badge.pink, .badge.violet { color: var(--ink-plum); border-color: currentColor; }
.badge.amber { color: var(--ink-ochre); border-color: currentColor; }
.badge.red { color: var(--red-ink); border-color: currentColor; }
.badge.solid { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.badge.dot::before { content: ""; width: 6px; height: 6px; background: currentColor; }
.badge.live::before { content: ""; width: 6px; height: 6px; background: currentColor; }
.party { font-weight: 700; font-family: var(--font-label); letter-spacing: .04em; }
.party.D { color: var(--dem); } .party.R { color: var(--rep-ink); } .party.I, .party.L { color: var(--ind); }
/* checkbox chips (filters): a square box + small-caps label */
.chip { display: inline-flex; align-items: center; gap: 7px; padding: 5px 8px 5px 6px; background: none; border: 1px solid var(--rule-3); color: var(--ink-2); cursor: pointer; user-select: none; font: 700 var(--fs-2xs)/1.2 var(--font-label); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
button.chip { font: 700 var(--fs-2xs)/1.2 var(--font-label); }
.chip::before { content: ""; width: 10px; height: 10px; border: 1.5px solid var(--ink); flex-shrink: 0; background: var(--paper); }
.chip:hover { border-color: var(--ink); color: var(--ink); }
.chip.on, .chip[aria-pressed="true"] { color: var(--ink); border-color: var(--ink); }
.chip.on::before, .chip[aria-pressed="true"]::before { background: var(--chip, var(--ink)); background-clip: content-box; padding: 1.5px; border-color: var(--chip, var(--ink)); }
.chip .sw { width: 8px; height: 8px; background: var(--chip, var(--ink)); flex-shrink: 0; display: none; }
.chip .n { font-family: var(--mono); font-weight: 400; letter-spacing: 0; color: var(--ink-4); }

/* ---------- buttons & links ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--ink); color: var(--paper); border: 1px solid var(--ink); padding: 8px 14px; cursor: pointer; font: 700 var(--fs-xs)/1.2 var(--font-label); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; white-space: nowrap; }
.btn:hover { background: var(--red); border-color: var(--red); color: #fff; }
.btn .ico { width: 14px; height: 14px; }
.btn.ghost { background: none; color: var(--ink); }
.btn.ghost:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.btn.subtle { background: none; border-color: var(--rule-3); color: var(--ink); }
.btn.subtle:hover { border-color: var(--ink); background: none; color: var(--ink); }
.btn.sm { padding: 5px 9px; font-size: 10.5px; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .4; cursor: not-allowed; }
.link-arrow { display: inline-flex; align-items: baseline; gap: 5px; font: 700 var(--fs-xs)/1.3 var(--font-label); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; color: var(--ink); }
.link-arrow::after { content: "→"; font-family: var(--font-body); transition: transform var(--dur-2); }
.link-arrow .ico { display: none; }
.link-arrow:hover { color: var(--red-ink); }
.link-arrow:hover::after { transform: translateX(3px); }

/* ---------- tabs (T.segmented / .pill-tabs): underlined index tabs ---------- */
.seg, .pill-tabs { position: relative; display: inline-flex; gap: 0; max-width: 100%; overflow-x: auto; scrollbar-width: none; border-bottom: var(--hair-2); background: none; padding: 0; }
.seg::-webkit-scrollbar, .pill-tabs::-webkit-scrollbar { display: none; }
.seg button, .pill-tabs button { position: relative; z-index: 1; background: none; border: 0; color: var(--ink-3); padding: 8px 14px 9px; cursor: pointer; white-space: nowrap; font: 700 var(--fs-xs)/1 var(--font-label); letter-spacing: .1em; text-transform: uppercase; }
.seg button + button, .pill-tabs button + button { border-left: var(--hair); }
.seg button:hover, .pill-tabs button:hover { color: var(--ink); }
.seg button[aria-pressed="true"], .seg button[aria-selected="true"], .seg button.on, .pill-tabs button.on { color: var(--ink); }
.seg:not(.has-thumb) button[aria-pressed="true"], .seg:not(.has-thumb) button.on, .pill-tabs button.on { border-bottom: 3px solid var(--red); padding-bottom: 6px; }
.seg-thumb { position: absolute; z-index: 2; bottom: -1px; left: 0; height: 3px; background: var(--red); transition: transform var(--dur-3) var(--ease-out), width var(--dur-3) var(--ease-out); }

/* ---------- filter bar: newspaper index controls ---------- */
.fbar { display: flex; flex-direction: column; gap: 10px; margin-bottom: var(--s-5); padding: 10px 0 0; border-top: var(--heavy); border-bottom: var(--hair-2); background: none; }
.fbar-row { display: flex; gap: 12px 18px; flex-wrap: wrap; align-items: flex-end; }
.fbar-search { position: relative; flex: 1 1 260px; min-width: 0; }
.fbar-search .ico { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 15px; height: 15px; color: var(--ink-3); pointer-events: none; }
.input, .fbar-search input, .fbar select, .filters input[type=search], .filters select {
  width: 100%; background: transparent; border: 0; border-bottom: 1.5px solid var(--ink); color: var(--ink); padding: 7px 2px 6px; font: var(--fs-base)/1.2 var(--font-body); border-radius: 0;
}
.fbar-search input { padding-left: 24px; font-style: italic; }
.fbar-search input:not(:placeholder-shown) { font-style: normal; }
.input::placeholder, .fbar-search input::placeholder { color: var(--ink-4); }
.input:focus, .fbar-search input:focus, .fbar select:focus, .filters input:focus, .filters select:focus { outline: none; border-bottom-color: var(--red); }
.fbar-sel { max-width: 100%; min-width: 0; }
.fbar select, .filters select { width: auto; max-width: 100%; padding-right: 22px; appearance: none; -webkit-appearance: none; cursor: pointer; font: 700 var(--fs-xs)/1.2 var(--font-label); letter-spacing: .08em; text-transform: uppercase; }
.filters select { appearance: auto; -webkit-appearance: menulist; padding-right: 4px; }
.fbar-sel { position: relative; display: inline-block; }
.fbar-sel::after { content: "▾"; position: absolute; right: 3px; bottom: 7px; font-size: 11px; color: var(--ink); pointer-events: none; }
.fbar select option, .filters select option { background: var(--paper); color: var(--ink); text-transform: none; }
.fbar-group { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; min-width: 0; }
.fbar-label { font: 700 10.5px/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--red-ink); margin-right: 6px; }
.fbar-toggle { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; user-select: none; font: 700 var(--fs-2xs)/1.2 var(--font-label); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); padding-bottom: 7px; }
.fbar-toggle input { appearance: none; -webkit-appearance: none; width: 12px; height: 12px; border: 1.5px solid var(--ink); margin: 0; background: var(--paper); cursor: pointer; }
.fbar-toggle input:checked { background: var(--ink); background-clip: content-box; padding: 2px; }
.fbar-meta { display: flex; align-items: baseline; gap: 12px; justify-content: space-between; flex-wrap: wrap; border-top: var(--hair); padding: 6px 0 7px; }
.fbar-count { font: var(--fs-xs)/1.3 var(--mono); color: var(--ink-3); }
.fbar-count b { color: var(--ink); }
.fbar-clear { background: none; border: 0; cursor: pointer; color: var(--red-ink); font: 700 10.5px/1 var(--font-label); letter-spacing: .1em; text-transform: uppercase; padding: 2px 0; text-decoration: underline; text-underline-offset: 3px; }
.fbar-clear .ico { display: none; }
.filters { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end; margin-bottom: var(--s-4); padding: 8px 0; border-top: var(--hair-2); border-bottom: var(--hair); }
.filters input[type=search] { min-width: 200px; flex: 1; width: auto; }
.filters label { font: 700 var(--fs-2xs)/1.2 var(--font-label); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); display: inline-flex; gap: 6px; align-items: center; }
.count { font: var(--fs-xs)/1.3 var(--mono); color: var(--ink-3); margin: 0 0 10px; }
@media (max-width: 640px) { .fbar-group { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; width: 100%; padding-bottom: 2px; } .fbar-group::-webkit-scrollbar { display: none; } .fbar-group .chip { flex-shrink: 0; } .fbar-sel { flex: 1 1 140px; } }

/* ---------- tables: the ledger ---------- */
.table-wrap { overflow-x: auto; border-top: var(--heavy); border-bottom: var(--hair-2); background: none; }
.table-wrap.scroll-y { max-height: 640px; overflow-y: auto; }
table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--fs-sm); }
th, td { padding: 8px 12px 8px 0; text-align: left; border-bottom: var(--hair); vertical-align: top; }
th:last-child, td:last-child { padding-right: 0; }
th { position: sticky; top: 0; z-index: 1; background: var(--paper); font: 700 10.5px/1.25 var(--font-label); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); border-bottom: 1px solid var(--ink); white-space: nowrap; }
tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: var(--paper-2); }
td.num, th.num, .al-right { text-align: right; }
td.num { font-family: var(--mono); font-variant-numeric: tabular-nums; font-size: 14px; }
.al-center { text-align: center; }
.money { font-family: var(--mono); font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.money.neg { color: var(--red-ink); }
.th-btn { all: unset; display: inline-flex; align-items: center; gap: 5px; cursor: pointer; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; }
.th-btn:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.th-btn .sort-ic { display: inline-flex; flex-direction: column; gap: 2px; opacity: .35; }
.th-btn .sort-ic i { width: 0; height: 0; border-left: 3px solid transparent; border-right: 3px solid transparent; }
.th-btn .sort-ic i:first-child { border-bottom: 4px solid currentColor; }
.th-btn .sort-ic i:last-child { border-top: 4px solid currentColor; }
th[aria-sort] { color: var(--ink); border-bottom: 3px solid var(--red); padding-bottom: 6px; }
th[aria-sort] .sort-ic { opacity: 1; }
th[aria-sort="ascending"] .sort-ic i:last-child, th[aria-sort="descending"] .sort-ic i:first-child { opacity: .2; }
th.num .th-btn { flex-direction: row-reverse; }
tr.row-link { cursor: pointer; }
tr.row-link:focus-visible { outline: 2px solid var(--red); outline-offset: -2px; }
.dt-table tbody tr:nth-child(even) { background: transparent; }
.dt-empty td { text-align: center; color: var(--ink-3); padding: 26px 0; font-style: italic; font-family: var(--font-display); }
.dt-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 10px; font: var(--fs-xs)/1.3 var(--mono); color: var(--ink-3); }
@media (max-width: 1000px) { .hide-tablet, .dt.cards td.hide-tablet { display: none; } }
@media (max-width: 640px) {
  .hide-phone { display: none; }
  .dt.cards .table-wrap { border-top: var(--heavy); overflow: visible; }
  .dt.cards table, .dt.cards tbody, .dt.cards tr, .dt.cards td { display: block; width: 100%; }
  .dt.cards thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .dt.cards tr { padding: 10px 0; border-bottom: var(--hair-2); background: none !important; }
  .dt.cards td { border: 0; padding: 3px 0; text-align: left; display: flex; gap: 10px; justify-content: space-between; align-items: baseline; }
  .dt.cards td[data-label]::before { content: attr(data-label); flex-shrink: 0; font: 700 10px/1.3 var(--font-label); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-4); }
  .dt.cards td.dt-primary { display: block; padding-bottom: 6px; font-family: var(--font-display); font-size: 17px; }
  .dt.cards td.dt-primary::before { display: none; }
  .dt.cards td.num { text-align: right; }
  .dt.cards td > * { min-width: 0; }
  .dt.cards td.hide-phone { display: none; }
  .dt.cards td .badge { white-space: normal; text-align: right; }
  .dt.cards .dt-empty td { display: block; text-align: center; }
}

/* ---------- pager / show more ---------- */
.pager { display: flex; gap: 0; justify-content: center; align-items: stretch; margin-top: 14px; flex-wrap: wrap; }
.pager .pg { min-width: 34px; height: 32px; padding: 0 8px; border: 1px solid var(--rule-3); margin-left: -1px; background: none; color: var(--ink); cursor: pointer; font: var(--fs-xs)/1 var(--mono); }
.pager .pg:hover { background: var(--paper-2); }
.pager .pg[aria-current="page"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.pager .pg[disabled] { opacity: .35; cursor: not-allowed; }
.pager .dim { padding: 0 8px; align-self: center; }
.show-more { display: flex; align-items: baseline; justify-content: center; gap: 14px; margin-top: 14px; padding-top: 10px; border-top: var(--hair); flex-wrap: wrap; }
.show-more .meta { font: var(--fs-xs)/1 var(--mono); color: var(--ink-3); }
.show-more .bar { display: none; }

/* ---------- hero (legacy) & tiles (legacy) ---------- */
.hero { padding: var(--s-5) 0 var(--s-4); border-bottom: var(--hair-2); margin-bottom: var(--s-5); }
.hero h1 { font-size: var(--fs-3xl); max-width: 1000px; }
.hl { font-style: inherit; color: inherit; } /* retired: single-word headline styling is banned */
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 var(--s-5); border-top: var(--hair-2); }
.tile { display: block; padding: 12px 0; border-bottom: var(--hair); color: var(--ink); text-decoration: none; }
.tile:hover { background: var(--paper-2); color: var(--ink); }
.tile b { display: block; font-family: var(--font-display); font-size: 18px; margin-bottom: 2px; }
.tile span { font-size: var(--fs-sm); color: var(--ink-3); font-style: italic; }
.tile .ico { display: none; }

/* ---------- stepper (Charts.stepper) ---------- */
.stepper { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; border-top: var(--hair-2); }
.stepper li { position: relative; padding: 12px 10px 4px 0; }
.stepper li::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; border-top: 3px solid var(--rule); }
.stepper li.done::before, .stepper li.cur::before { border-top-color: var(--ink); }
.stepper li.cur::before { border-top-color: var(--red); }
.stepper .n { font: 700 11px/1 var(--mono); color: var(--ink-4); }
.stepper li.done .n, .stepper li.cur .n { color: var(--ink); }
.stepper .t { display: block; font-family: var(--font-display); font-weight: 700; font-size: 16px; line-height: 1.2; margin-top: 4px; }
.stepper li.todo .t { color: var(--ink-4); font-weight: 400; }
.stepper .s { display: block; font: var(--fs-xs)/1.35 var(--mono); color: var(--ink-3); margin-top: 3px; }
@media (max-width: 640px) { .stepper { grid-template-columns: 1fr; } .stepper li { padding: 6px 0 6px 14px; } .stepper li::before { top: 0; bottom: 0; right: auto; border-top: 0; border-left: 3px solid var(--rule); } .stepper li.done::before { border-left-color: var(--ink); } .stepper li.cur::before { border-left-color: var(--red); } }

/* ---------- share bar & stack rows (Charts.shareBar / stackRows) ---------- */
.sharebar { display: flex; gap: 2px; height: 12px; background: none; }
.sharebar span { display: block; height: 100%; flex: 0 0 var(--w); background: var(--c); min-width: 2px; }
.stackrows { list-style: none; margin: 0; padding: 0; border-top: var(--hair-2); }
.stackrows li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 8px 0; border-bottom: var(--hair); align-items: baseline; }
.stackrows .sl { font-family: var(--font-display); font-size: 16px; min-width: 0; overflow-wrap: anywhere; }
.stackrows .sl a { text-decoration: none; } .stackrows .sl a:hover { text-decoration: underline; }
.stackrows .sv { font: 700 13.5px/1 var(--mono); }
.stackrows .sharebar { grid-column: 1 / -1; }

/* =============================================================================
   CHARTS
   ============================================================================= */
.chart { width: 100%; height: auto; display: block; overflow: visible; }
.chart text { fill: var(--ink-3); font: 11.5px var(--font-label); letter-spacing: .02em; font-variant-numeric: lining-nums tabular-nums; }
.chart .lbl-strong { fill: var(--ink); font-weight: 700; }
.chart .val { fill: var(--ink); font-family: var(--mono); font-size: 11.5px; letter-spacing: 0; }
.chart .val-in { fill: var(--paper); font-family: var(--mono); font-size: 11px; font-weight: 700; letter-spacing: 0; }
.chart .ttl { fill: var(--ink); font: 700 12px var(--font-label); letter-spacing: .1em; text-transform: uppercase; }
.chart .axis line, .chart .axis path, .chart .baseline { stroke: var(--axis); stroke-width: 1; }
.chart .grid line { stroke: var(--grid); stroke-width: 1; }
.chart .bar, .chart .mark { transition: opacity var(--dur-2); }
.chart .bar:hover, .chart .mark:hover { opacity: .82; }
.chart.has-hover .mark.dim, .chart.has-hover .bar.dim, .chart .mark.dim { opacity: .3; }
.chart .hit { fill: transparent; cursor: pointer; }
.chart .crosshair { stroke: var(--ink); stroke-width: 1; pointer-events: none; }
.chart .annot line, .chart .leader { stroke: var(--ink-2); stroke-width: .8; }
.chart .annot text, .chart .note-t { fill: var(--ink-2); font: italic 13px var(--font-display); letter-spacing: 0; }
.chart .annot.hot line { stroke: var(--red); }
.chart .annot.hot text, .chart .hot { fill: var(--red-ink); }
.chart .brk { fill: none; stroke: var(--paper); stroke-width: 3; }
.chart .brk-ink { fill: none; stroke: var(--ink); stroke-width: 1; }
.chart .off { fill: var(--ink); font: italic 12.5px var(--font-display); letter-spacing: 0; }
.chart a { cursor: pointer; }
.chart .focusable:focus { outline: none; }
.chart .focusable:focus-visible { outline: 2px solid var(--red); }
.chart .sel-ring { fill: none; stroke: var(--ink); stroke-width: 2.5; }
.chart-wrap { position: relative; }
.chart.hemicycle { max-width: 640px; margin: 0 auto; }
.chart.hemicycle.photos { max-width: 920px; }
.hemicycle .seat-ph { cursor: pointer; }
.hemicycle .seat-ph.dim image { opacity: .38; filter: grayscale(1); }
.hemicycle .seat-ph:hover circle:last-child, .hemicycle .seat-ph:focus-visible circle:last-child { stroke: var(--ink); }
.hemi-tools { display: flex; justify-content: flex-end; margin: 0 0 6px; }

/* Portraits: small avatars next to names, and the profile-header portrait */
.avatar { display: inline-block; width: var(--av, 28px); height: var(--av, 28px); border-radius: 0; object-fit: cover; object-position: 50% 20%; vertical-align: middle; background: var(--paper-2); border: 1px solid var(--rule-3); flex-shrink: 0; filter: grayscale(.25) contrast(1.05); }
.avatar.ini { display: inline-flex; align-items: center; justify-content: center; font: 700 calc(var(--av, 28px) * .38)/1 var(--font-label); letter-spacing: .02em; color: var(--ink-2); }
.who { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.who > span { min-width: 0; }
.portrait { margin: 0; width: 168px; flex-shrink: 0; }
.portrait img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: var(--paper-2); border: 1px solid var(--ink); outline: 3px double var(--rule-3); outline-offset: 3px; }
.portrait figcaption { font: 11px/1.4 var(--font-label); color: var(--ink-3); margin-top: 6px; overflow-wrap: anywhere; }
.portrait figcaption a { color: inherit; }
.dossier-top { display: flex; gap: 24px; align-items: flex-start; }
.dossier-top > div { min-width: 0; flex: 1; }
@media (max-width: 640px) { .dossier-top { flex-direction: column; gap: 14px; } .portrait { width: 132px; } }
a.plink { text-decoration-thickness: 1px; text-underline-offset: 2px; text-decoration-style: dotted; }
.chart-legend, .legend { display: flex; gap: 4px 16px; flex-wrap: wrap; font: 700 10.5px/1.5 var(--font-label); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); margin: 0 0 8px; }
.chart-legend span, .legend span { display: inline-flex; align-items: center; }
.chart-legend i, .legend i { display: inline-block; width: 12px; height: 9px; margin-right: 6px; flex-shrink: 0; }
.chart-legend i.hatch { position: relative; background: none !important; border: 1px solid var(--hc, var(--ink-2)); }
.chart-legend i.hatch::after, .hatch-fill::after { content: ""; position: absolute; inset: 0; background-color: var(--hc, var(--hatch)); -webkit-mask: var(--hatch-mask) repeat; mask: var(--hatch-mask) repeat; }
html[data-theme="night"] pattern line { stroke-width: 2; }
.hatch-fill { position: relative; background: none !important; border: 1px solid var(--hc, var(--hatch)); }
:root { --hatch-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='5'%3E%3Cpath d='M-1,1 l2,-2 M0,5 l5,-5 M4,6 l2,-2' stroke='%23000' stroke-width='1.3'/%3E%3C/svg%3E"); }
.hemi-legend { display: flex; justify-content: center; gap: 4px 16px; flex-wrap: wrap; margin: 6px 0 0; font: 700 10.5px/1.5 var(--font-label); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
.hemi-legend span { display: inline-flex; align-items: center; gap: 6px; }
.hemi-legend b { font-family: var(--mono); letter-spacing: 0; }
.hemi-legend i { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.hemi-legend i.ring { background: none !important; border: 1.5px solid var(--ink-3); }
.live-region { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.chart-table { margin-top: 8px; }
.chart-table table { font-size: var(--fs-xs); }
.chart-table th, .chart-table td { padding: 5px 10px 5px 0; }
.chart-caption { font-family: var(--font-display); font-style: italic; font-size: var(--fs-sm); color: var(--ink-3); margin: 6px 0 0; }
/* draw-in (only with motion allowed, once in view) */
.chart.anim .grow { transform: scaleY(0); transform-box: fill-box; transform-origin: 50% 100%; }
.chart.anim .grow-x { transform: scaleX(0); transform-box: fill-box; transform-origin: 0 50%; }
.chart.anim .grow-x.from-right { transform-origin: 100% 50%; }
.chart.anim .pop { opacity: 0; }
.chart.anim .draw { stroke-dasharray: 1; stroke-dashoffset: 1; }
.chart.anim .fade { opacity: 0; }
.chart.anim.is-drawn .grow, .chart.anim.is-drawn .grow-x { transform: none; transition: transform var(--dur-5) var(--ease-out); transition-delay: calc(var(--i, 0) * 14ms); }
.chart.anim.is-drawn .pop { opacity: 1; transition: opacity var(--dur-4) var(--ease-out); transition-delay: calc(var(--i, 0) * 5ms); }
.chart.anim.is-drawn .draw { stroke-dashoffset: 0; transition: stroke-dashoffset 1.2s var(--ease-in-out); }
.chart.anim.is-drawn .fade { opacity: 1; transition: opacity var(--dur-4) var(--ease-out) .25s; }
.chart.anim.is-drawn .area-fill { animation: fade-in 1s var(--ease-out) both .2s; }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
.meter { height: 6px; background: var(--paper-3); overflow: hidden; min-width: 60px; }
.meter span { display: block; height: 100%; background: var(--ink-2); }
.meter.lg { height: 10px; }
.tally { display: flex; gap: 1px; height: 8px; background: none; margin: 8px 0 6px; }
.tally span { display: block; height: 100%; }
.tally .y { background: var(--yea); } .tally .n { background: var(--nay); } .tally .p { background: var(--present); } .tally .x { background: var(--absent); }
.usmap .tile-st:hover rect { stroke: var(--ink); }

/* ---------- misc carried over ---------- */
.vote-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: var(--heavy); }
.vote-cols > * + * { border-left: var(--hair); padding-left: var(--s-4); }
@media (max-width: 900px) { .vote-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } .vote-cols > :nth-child(3) { border-left: 0; padding-left: 0; } }
@media (max-width: 640px) { .vote-cols { grid-template-columns: 1fr; } .vote-cols > * + * { border-left: 0; padding-left: 0; } }
.vote-col h4 { font: 700 var(--fs-2xs)/1.3 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; margin: 10px 0 8px; }
.vote-col ul { list-style: none; padding: 0; margin: 0; font-size: var(--fs-sm); max-height: 520px; overflow: auto; }
.vote-col li { padding: 4px 0; border-bottom: 1px dotted var(--rule-2); display: flex; justify-content: space-between; gap: 6px; }
.vote-col li .m { font: 12px var(--mono); color: var(--ink-2); }
.crumbs { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font: 700 var(--fs-2xs)/1.2 var(--font-label); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 14px; }
.crumbs a { text-decoration: none; color: var(--ink-3); }
.crumbs a:hover { color: var(--red-ink); text-decoration: underline; }
.crumbs .ico { width: 10px; height: 10px; }
.kv { display: grid; grid-template-columns: 160px 1fr; gap: 0; font-size: var(--fs-sm); border-top: var(--hair-2); }
.kv dt, .kv dd { padding: 7px 0; border-bottom: var(--hair); margin: 0; }
.kv dt { font: 700 10.5px/1.6 var(--font-label); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); padding-right: 10px; }
.kv dd { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 640px) { .kv { grid-template-columns: 1fr !important; } .kv dt { border-bottom: 0; padding-bottom: 0; } }
.status-list { list-style: none; padding: 0; margin: 0; font-size: var(--fs-sm); border-top: var(--hair-2); }
.status-list li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: var(--hair); flex-wrap: wrap; }
.ok { color: var(--ink); } .no { color: var(--red-ink); }
.defs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: var(--heavy); }
.defs > * + * { border-left: var(--hair); padding-left: var(--s-5); }
@media (max-width: 800px) { .defs { grid-template-columns: 1fr; } .defs > * + * { border-left: 0; padding-left: 0; } }
.defs .panel { border-top: 0; }
.defs .panel h3 { color: var(--ink); }
.verdict { font: 700 11px/1 var(--font-label); letter-spacing: .14em; text-transform: uppercase; display: inline-block; padding: 4px 6px 3px; border: 1.5px solid currentColor; }
.verdict.false { color: var(--red-ink); } .verdict.true { color: var(--ink); } .verdict.mixed { color: var(--ink-ochre); }
.partial { font-style: italic; }
.partial::after { content: "*"; color: var(--red-ink); font-style: normal; }

/* ---------- motion & forced colors ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; transition-delay: 0s !important; }
  [data-reveal] { opacity: 1; transform: none; }
}
[data-reveal] { opacity: 1; }
@media (forced-colors: active) {
  .sec-ind, .seg-thumb { background: Highlight; }
  .chip[aria-pressed="true"]::before { background: Highlight; }
}
@media print {
  .secbar, .mast-tools, .drawer, .cmdk-scrim, .to-top, .fbar { display: none !important; }
  body { background: #fff; color: #000; }
}
/* =============================================================================
   SHELL DETAILS: section underline, footnote groups, section index extras, brand marks, wire log, footer folds
   (one block; earlier stacked overrides were merged here)
   ============================================================================= */
.secnav-list { overflow: hidden; }
.sec-item:focus-visible { outline-offset: -3px; }
.fbar input:focus-visible, .fbar select:focus-visible, .fbar button:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.fnlist-grp { font: 700 10.5px/1 var(--font-label); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); margin: 8px 0 2px; display: flex; gap: 6px; align-items: center; }
.fnlist-grp + .fnlist { margin-top: 2px; }

/* ---------- section index: contents strip, figures ledger, docket, stagger ---------- */
.sindex-inner { align-items: stretch; }
.sec-strip { font-style: normal !important; margin: 4px 0 0; padding: 8px 0 0; border-top: 3px double var(--ink); font: var(--fs-xs)/1.6 var(--mono); color: var(--ink-2); }
.sec-strip span { display: block; }
.sec-strip b { font-family: var(--font-display); font-size: 30px; line-height: 1; font-weight: 400; font-variant-numeric: oldstyle-nums; color: var(--ink); display: block; margin-bottom: 4px; }
.sec-figs { margin-top: 14px; font-style: normal; }
.sec-figs .ledger { border-top: var(--heavy); }
.sec-figs .lrow .ll { font-size: 13.5px; }
.sec-figs .lrow .lv { font-size: 13.5px; }
.sec-cov { margin: 8px 0 0; font: italic 13px/1.4 var(--font-display) !important; color: var(--ink-3); }
.sec-cov b { font: 700 10.5px/1 var(--font-label); font-style: normal; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); display: block; margin-bottom: 3px; }
.docket { margin: 14px 0 0; border-top: var(--heavy); padding-top: 6px; }
.docket-h { font: 700 11px/1 var(--font-label); letter-spacing: .12em; text-transform: uppercase; color: var(--red-ink); margin-bottom: 6px; display: flex; justify-content: space-between; }
.docket ol { list-style: none; margin: 0; padding: 0; }
.docket li { display: grid; grid-template-columns: 108px 14px minmax(0, 1fr) auto; gap: 6px; align-items: baseline; padding: 6px 0; border-bottom: 1px dotted var(--rule-2); }
.docket .dd { font: var(--fs-xs)/1.3 var(--mono); color: var(--ink-3); white-space: nowrap; }
.docket .pp { font-family: var(--font-display); color: var(--red-ink); }
.docket .dt { font: 14.5px/1.35 var(--font-body); color: var(--ink); min-width: 0; text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.docket a.dt:hover { text-decoration: underline; }
@media (prefers-reduced-motion: no-preference) {
  .sindex.is-open .sindex-list > li, .sindex.is-open .docket li, .sindex.is-open .brief { animation: toc-in 260ms var(--ease-out) both; animation-delay: calc(200ms + var(--k, 0) * 40ms); }
  @keyframes toc-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
}
.brief .dc::first-letter { float: none; font: inherit; padding: 0; }
.brief .ri { font-variant: small-caps; font-weight: 700; letter-spacing: .04em; color: var(--ink); }
.brief .mini-fig svg text { display: none; }
.mf-axis { display: flex; justify-content: space-between; gap: 8px; margin-top: 3px; font: 11px/1.3 var(--mono); color: var(--ink-3); }
.mf-axis b { color: var(--ink); font-weight: 700; }

/* ---------- brand marks: never recolor, crop or invert; night edition sets them on a paper plate ---------- */
:root { --plate: #f1ece2; }
html[data-theme="night"] { --plate: #e4dccb; }
.np-plate { display: block; width: fit-content; margin: 0 auto; line-height: 0; }
.np-logo { display: block; width: 600px; max-width: calc(100vw - 56px); height: auto; }
.mast-main .nameplate { padding: 4px 0; }
.colo-plate .np-logo { width: 420px; }
.emblem-plate { display: inline-grid; place-items: center; flex-shrink: 0; line-height: 0; }
.emblem { display: block; width: 28px; height: 28px; }
.np-text { display: inline; font-family: var(--font-display); font-weight: 700; letter-spacing: -.01em; white-space: nowrap; }
.np-red { color: var(--logo-red); }
.secbar .mini { gap: 8px; font-size: 19px; border-bottom: 0; }
.secbar .mini .emblem { width: 34px; height: 34px; }
.drawer-np { display: flex; align-items: center; gap: 10px; text-align: left; min-height: 44px; }
.drawer-np .np-word { font-size: 24px; }
html[data-theme="night"] .np-plate { background: var(--plate); padding: 6px 12px; outline: 1px solid var(--rule-3); outline-offset: 3px; }
html[data-theme="night"] .mast-main .np-logo { width: 440px; }
html[data-theme="night"] .emblem-plate { background: var(--plate); padding: 3px; border: 1px solid var(--ink-3); outline: 1px solid var(--rule-2); outline-offset: 2px; }
html[data-theme="night"] .np-red { color: #ef7a6e; }
@media (max-width: 640px) {
  .colo-plate .np-logo { width: 240px; }
  html[data-theme="night"] .np-plate { padding: 6px 10px; outline: 0; }
  html[data-theme="night"] .mast-main .np-logo { width: 440px; max-width: calc(100vw - 64px); }
  .secbar .mini { font-size: 16px; }
  .secbar .mini .emblem { width: 28px; height: 28px; }
}
@media (max-width: 480px) { .np-sub::before, .np-sub::after { display: none; } }

/* ---------- wire log (desktop table; two-line rows on phones) ---------- */
.wire { width: 100%; border-collapse: collapse; font: var(--fs-xs)/1.35 var(--mono); table-layout: auto; }
.wire thead th { position: static; background: none; font: 700 11px/1.2 var(--font-label); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); border-bottom: 1px solid var(--ink); padding: 4px 8px 4px 0; text-align: left; white-space: nowrap; }
.wire tbody th { font: 400 13px/1.35 var(--mono); color: var(--ink); text-align: left; padding: 6px 8px 6px 0; position: static; background: none; border-bottom: 1px dotted var(--rule-2); text-transform: none; letter-spacing: 0; white-space: normal; }
.wire td { padding: 6px 8px 6px 0; border-bottom: 1px dotted var(--rule-2); vertical-align: top; }
.wire .mk { display: inline-block; width: 1.4em; color: var(--ink); }
.wire tr.stale .mk { color: var(--ink-ochre); }
.wire tr.curated .mk { color: var(--ink-2); }
.wire tr.pending .mk { color: var(--red-ink); }
.wire .st { font: 700 11px/1.3 var(--font-label); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; color: var(--ink-2); }
.wire .st.ok { color: var(--ink); }
.wire .st.pending { color: var(--red-ink); }
.wire .since, .wire .ts { color: var(--ink-3); white-space: nowrap; }
.wire tr.has-note > * { border-bottom: 0; padding-bottom: 0; }
.wire tr.wnote td { font: italic 13px/1.4 var(--font-display); color: var(--ink-3); padding: 2px 0 7px 1.4em; }
.wire-key { margin: 8px 0 0; font: var(--fs-xs)/1.5 var(--mono); color: var(--ink-3); }
.wire-key .pending { color: var(--red-ink); }
.wire-key .stale { color: var(--ink-ochre); }
@media (max-width: 640px) {
  .wire thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .wire, .wire tbody { display: block; }
  .wire tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 8px; border-bottom: 1px dotted var(--rule-2); padding: 6px 0; }
  .wire tr > * { border: 0 !important; padding: 0 !important; }
  .wire tbody th { grid-column: 1; }
  .wire td.stc { grid-column: 2; text-align: right; }
  .wire td.since { grid-column: 1; grid-row: 2; white-space: normal; }
  .wire td.since:not(:empty)::before { content: "since "; }
  .wire td.ts { grid-column: 1 / -1; grid-row: 3; white-space: normal; }
  .wire td.ts:not(:empty)::after { content: " ET"; }
  .wire tr.has-note { border-bottom: 0; padding-bottom: 0; }
  .wire tr.wnote { display: block; padding: 2px 0 8px; }
  .wire tr.wnote td { display: block; padding: 0 0 0 1.4em !important; }
}

/* ---------- footer folds (phones) ---------- */
.colo-fold { border-top: 0; border-right: 0; border-bottom: 0; padding: 0; }
.colo-fold > summary { list-style: none; cursor: default; }
.colo-fold > summary::-webkit-details-marker { display: none; }
.colo-fold > summary::before, .colo-fold[open] > summary::before { content: none; }
@media (min-width: 641px) { .colo-grid > * + * { border-left: var(--hair) !important; } }
@media (max-width: 640px) {
  .colo-about .lrow, .colo-about .lrow a { min-height: 44px; display: flex; align-items: center; }
  .colo-fold > summary { cursor: pointer; display: flex; justify-content: space-between; padding: 14px 0 10px; margin: 0; }
  .colo-fold > summary::after { content: "+"; font-family: var(--mono); color: var(--red-ink); }
  .colo-fold[open] > summary::after { content: "−"; }
  .colo-agencies { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
  .colo-agencies b { grid-column: 1 / -1; padding: 10px 0 4px; }
  .colo-agencies a { min-height: 44px; display: flex; align-items: center; padding: 0; white-space: normal; border-bottom: 1px dotted var(--rule-2); }
  .colo-agencies a + a::before { content: none; }
  .colo-plate { padding: var(--s-4) 0 var(--s-3); }
  .colo-grid { padding: var(--s-3) 0; }
  .colo-base { gap: 6px; }
}
.chart-legend i.outline { background: var(--paper) !important; border: 1.5px solid var(--hc, var(--ink-2)); }
/* chart data tables scroll inside their box and never widen a grid/flex parent */
.chart-table { max-width: 100%; }
.chart-table .table-wrap { contain: inline-size; max-width: 100%; }

/* night nameplate: a deliberate paper plate, not a light box. The logo file is untouched (its
   background is already transparent); the plate is the paper the black lettering needs to read.
   Even padding, rounded corners, a hairline inside the plate edge and a rule offset outside it. */
html[data-theme="night"] .np-plate {
  background: var(--plate); border-radius: 6px; padding: 14px 22px;
  border: 1px solid #b8ab92; outline: 1px solid var(--rule-3); outline-offset: 4px;
}
html[data-theme="night"] .colo-plate .np-plate { padding: 12px 18px; }
@media (max-width: 640px) {
  html[data-theme="night"] .np-plate { padding: 10px 14px; border-radius: 5px; outline: 1px solid var(--rule-3); outline-offset: 3px; }
  html[data-theme="night"] .mast-main .np-logo { max-width: calc(100vw - 80px); }
  html[data-theme="night"] .colo-plate .np-plate { padding: 8px 12px; }
}

/* branch rubrics inside a section (Government: Congress / Executive / Judiciary): a small-caps kicker
   on a hairline, set like the docket heads. Used in the section index, the drawer and the footer sitemap. */
.br-rub { display: flex; align-items: center; gap: 10px; margin: 0; padding: 12px 0 6px; font: 700 10.5px/1 var(--font-label); letter-spacing: .16em; text-transform: uppercase; color: var(--red-ink); }
.br-rub::after { content: ""; flex: 1; border-top: var(--hair); }
.br-rub > span::before { content: "§\00a0"; color: var(--ink-3); letter-spacing: 0; margin-right: 2px; }
.sindex-list > li.br-rub { border-bottom: 0; }
.sindex-list > li.br-rub + li { border-top: 0; }
.drawer .fold .br-rub { padding: 10px 0 4px; }
.sitemap .br-rub { padding: 8px 0 3px; font-size: 9.5px; color: var(--ink-3); }
.sitemap .br-rub > span::before { content: none; }
.sitemap li.br-rub:first-child { padding-top: 2px; }
