/* evntrace document kit: one look for every report prepared through evntrace.
   Tokens follow Digital Forensics/BRAND.md §2–3. Coral is a fill and a marker only: it fails WCAG as text.
   Every text colour below was measured (see kit/README.md): nothing here is under 4.5:1 on its own ground. */
:root:has(> body.kit-doc),.kit-doc{
  color-scheme:light;
  --c-paper:#F8F7F4;--c-white:#FFFFFF;--c-stone:#EDEBE7;
  --c-ink:#0E0E10;--c-ink-raised:#18181B;--c-ink-2:#1F1F22;--c-paper-ink:#F2F1ED;
  --c-muted:#6B6B70;--c-fog:#A1A1A6;
  --c-coral:#FF6B4A;--c-coral-deep:#E5553A;--c-coral-sheen:#FD8A6F;
  --c-verdant:#4A9D7C;--c-flare:#D94343;--c-steel:#5B78B5;--c-gold:#C8A96E;
  --bg:var(--c-paper);--surface:var(--c-white);--surface-2:var(--c-stone);
  --text:var(--c-ink);--text-dim:var(--c-muted);
  --line:rgba(14,14,16,.09);--line-strong:var(--c-muted);
  --focus-ring:var(--c-ink);
  /* status text: the darkened brand colours, because the bright ones fail as text on paper */
  --ok-text:#2F7057;--bad-text:#A82F2F;--warn-text:#8A6B2A;--info-text:#3E5A94;
  --font-display:'Archivo Narrow','Arial Narrow','Helvetica Neue',Arial,sans-serif;
  --font-body:'Geist',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --fs-body:clamp(1.0625rem,.9375rem + .6vw,1.125rem);--fs-sm:.9375rem;--fs-label:.75rem;
  --tracking-label:.14em;
  --space-2:8px;--space-3:16px;--space-4:24px;--space-5:40px;--space-6:64px;
  --pad:clamp(16px,5vw,80px);--maxw:980px;
  --radius:10px;--radius-lg:16px;--radius-pill:9999px;
  --shadow-sm:0 1px 2px rgba(14,14,16,.04);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]):has(> body.kit-doc),:root:not([data-theme="light"]) .kit-doc{
  color-scheme:dark;--bg:var(--c-ink);--surface:var(--c-ink-raised);--surface-2:var(--c-ink-2);
  --text:var(--c-paper-ink);--text-dim:var(--c-fog);--line:rgba(255,255,255,.10);--line-strong:var(--c-fog);
  --focus-ring:var(--c-coral);--shadow-sm:none;
  --ok-text:#4A9D7C;--bad-text:#EF7B72;--warn-text:#C8A96E;--info-text:#8FA8DA}}
:root[data-theme="dark"]:has(> body.kit-doc),:root[data-theme="dark"] .kit-doc{
  color-scheme:dark;--bg:var(--c-ink);--surface:var(--c-ink-raised);--surface-2:var(--c-ink-2);
  --text:var(--c-paper-ink);--text-dim:var(--c-fog);--line:rgba(255,255,255,.10);--line-strong:var(--c-fog);
  --focus-ring:var(--c-coral);--shadow-sm:none;
  --ok-text:#4A9D7C;--bad-text:#EF7B72;--warn-text:#C8A96E;--info-text:#8FA8DA}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
/* The rules below that also exist in css/evntrace.css (body/h1-h4/p/li/a/.lead/.meta) are scoped
   under .kit-doc: unscoped, they silently overrode the site's own versions wherever both stylesheets
   are loaded on one page — measured on _dev/components.html (fix round, 2026-09-27; see
   DESIGN-SYSTEM.md's kit note and kit/README.md "How a page uses it"). Give the report page's <body>
   (or a wrapping element around the report content) class="kit-doc". Selectors with no site-side
   equivalent (.wrap, .hero-top, .clock, .tl, the disclosure/search/print-dialog components, etc.)
   can't collide and are unscoped, same as before. */
body.kit-doc{margin:0;background:var(--bg);color:var(--text);font:400 var(--fs-body)/1.6 var(--font-body);
  word-spacing:.08em;-webkit-font-smoothing:antialiased}
.kit-doc h1,.kit-doc h2{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:-.01em;
  margin:0;text-wrap:balance;word-spacing:.04em}
.kit-doc h1{font-size:clamp(2.5rem,7vw,4.5rem);line-height:.95}
.kit-doc h2{font-size:clamp(1.375rem,2.6vw,1.875rem);line-height:1.08}
.kit-doc main h2{margin-bottom:var(--space-4)}
.kit-doc main h2+p{color:var(--text-dim)}
.kit-doc h3,.kit-doc h4{font-size:1rem;margin:var(--space-4) 0 var(--space-2)}
.kit-doc p,.kit-doc li{max-width:66ch}
.kit-doc p{margin:0 0 var(--space-3)}
.kit-doc a{color:var(--text);text-underline-offset:3px}
:where(a,button,summary,audio,textarea):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
q{font-style:italic}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
.meta,.src,.tm,.cid{word-spacing:normal}
.kit-doc .meta{font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;
  letter-spacing:var(--tracking-label);color:var(--text-dim);margin:0 0 var(--space-3)}
.src{font:400 .78rem/1.45 var(--font-mono);color:var(--text-dim);overflow-wrap:anywhere}
.note{font-size:var(--fs-sm);color:var(--text-dim)}

/* hero */
header.hero{padding-block:var(--space-5);border-bottom:1px solid var(--line)}
.hero-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5)}
.brand{display:inline-flex;align-items:center;gap:14px;color:var(--text);text-decoration:none;min-height:44px}
.brand svg{flex:none;width:56px;height:56px}
.brand-text{display:flex;flex-direction:column;gap:3px}
.brand-text small{font:400 .6875rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim);word-spacing:normal}
.brand-text b{font:700 1.5rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.03em}
.brand:hover b,.brand:focus-visible b{text-decoration:underline;text-underline-offset:4px}
header.hero h1{margin-bottom:var(--space-3)}
.kit-doc .lead{font-size:1.1875rem;line-height:1.45;max-width:46ch;color:var(--text-dim)}
.clocks{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:var(--space-5)}
@media (min-width:900px){.clocks{grid-template-columns:repeat(4,1fr)}}
.clock{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(14px,2.4vw,24px);
  box-shadow:var(--shadow-sm);border-top:4px solid var(--line-strong)}
.clock[data-k=gold]{border-top-color:var(--c-gold)}.clock[data-k=steel]{border-top-color:var(--c-steel)}
.clock[data-k=coral]{border-top-color:var(--c-coral)}.clock[data-k=verdant]{border-top-color:var(--c-verdant)}
.clock b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:clamp(1.6rem,3.6vw,2.4rem);
  font-weight:700;line-height:1.05;display:block;word-spacing:-.12em;white-space:nowrap;margin-bottom:6px}
.clock span{display:block;font-family:var(--font-mono);font-size:var(--fs-label);line-height:1.45;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;word-spacing:normal}
.strip{margin:var(--space-3) 0 0;padding:var(--space-3) var(--space-4);max-width:none;background:var(--surface-2);
  border-radius:var(--radius-lg);font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;
  letter-spacing:var(--tracking-label);color:var(--text);line-height:1.8;word-spacing:normal}
.call{background:var(--surface-2);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);
  border-left:4px solid var(--c-coral);margin:var(--space-4) 0 0;font-size:var(--fs-sm);color:var(--text)}
.call p{max-width:none}.call p:last-child{margin:0}
.call--warn{border-left-color:var(--c-gold)}
.call .src,.call .note{color:var(--text)}
.howto{font-size:var(--fs-sm);color:var(--text-dim);margin:var(--space-3) 0 0;max-width:75ch}
nav.sections{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-4)}
nav.sections a{font-size:.82rem;padding:6px 12px;border:1px solid var(--line);border-radius:var(--radius-pill);
  text-decoration:none;color:var(--text);background:var(--surface);min-height:36px;display:inline-flex;align-items:center}
nav.sections a:hover{border-color:var(--line-strong)}

/* theme button: one round toggle, the ◑ pattern from the Listen page */
.theme-btn{flex:none;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0;
  border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-size:1.15rem;line-height:1;cursor:pointer}
.theme-btn:hover{background:var(--surface-2)}
.theme-float{position:fixed;right:16px;bottom:16px;z-index:21}

/* sections */
main>section{padding-block:var(--space-5);border-top:1px solid var(--line)}
main>section:first-child{border-top:0}
.sh{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:var(--space-3)}
.kit-doc ul,.kit-doc ol{padding-left:1.25em}.kit-doc li{margin:8px 0}.kit-doc ul.big li{margin:12px 0}
.kit-doc main ul,.kit-doc main ol{margin-left:var(--space-2);padding-left:var(--space-4)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:var(--space-4)}.cols>*{min-width:0}

/* status pills: word + glyph, never colour alone */
.chip{display:inline-flex;align-items:center;gap:5px;font:400 .6875rem/1.5 var(--font-mono);text-transform:uppercase;
  letter-spacing:var(--tracking-label);padding:2px 9px;border-radius:var(--radius-pill);border:1px solid var(--line-strong);
  white-space:nowrap;word-spacing:normal;background:transparent}
.chip.good{border-color:var(--c-verdant);color:var(--ok-text)}
.chip.bad{border-color:var(--c-flare);color:var(--bad-text)}
.chip.warn{border-color:var(--c-gold);color:var(--warn-text)}
.chip.info{border-color:var(--c-steel);color:var(--info-text)}

/* tables */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}
th,td{text-align:left;vertical-align:top;padding:10px var(--space-3) 10px 0;border-bottom:1px solid var(--line)}
th{font:400 var(--fs-label)/1.4 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim);white-space:nowrap}

/* bar graph */
.bars{display:grid;gap:12px;margin:var(--space-4) 0 0}
.brow{display:grid;grid-template-columns:minmax(120px,240px) 1fr auto;gap:var(--space-3);align-items:center}
.brow i{font:400 var(--fs-label)/1.35 var(--font-mono);font-style:normal;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);word-spacing:normal}
.brow u{display:block;height:12px;border-radius:6px;background:var(--surface-2);overflow:hidden;text-decoration:none}
.brow u>s{display:block;height:100%;border-radius:6px;text-decoration:none}
.brow b{font:500 var(--fs-sm)/1.2 var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;word-spacing:normal}
@media (max-width:560px){.brow{grid-template-columns:1fr auto}.brow i{grid-column:1/-1}}

/* timeline */
.tl{list-style:none;margin:var(--space-3) 0 var(--space-5);padding:0;position:relative}
.tl::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl li{position:relative;padding:0 0 var(--space-3) var(--space-5);font-size:var(--fs-sm);margin:0}
.tl li::before{content:"";position:absolute;left:0;top:6px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:2px solid var(--line-strong)}
.tl li[data-hi]::before{background:var(--c-coral);border-color:transparent}
.tl em{font:400 var(--fs-label)/1.5 var(--font-mono);font-style:normal;text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim);display:block;word-spacing:normal}

/* connection / evidence map (Stage B, 2026-09-28) — promoted from sample-report.html's page-local
   <style> (the "---- evidence map (interactive flow) ----" block), unchanged. Its @media print
   rules stay page-local: they sit in the same braces as unrelated .rpt-meta/.sig print rules in
   sample-report.html, and splitting that block is flagged as follow-up work in DESIGN-SYSTEM.md
   rather than risked here (tests/print.test.js parses the print block by brace-depth, not by
   selector, so a botched split would not fail loud). */
.vmap-intro{color:var(--text-dim);margin-bottom:var(--space-2)}
.vmap{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3) var(--space-5);margin:var(--space-4) 0 var(--space-2);align-items:start}
.vedges{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}
.vedges path{fill:none;stroke:var(--c-steel);stroke-width:1.1;opacity:.4;transition:stroke var(--dur-fast) var(--ease-out),stroke-width var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}
.vmap.has-sel .vedges path{opacity:.1}
.vedges path.hot{stroke:var(--accent-mark);stroke-width:2;opacity:1}
.vcol{display:flex;flex-direction:column;gap:var(--space-2);position:relative;z-index:1;min-width:0}
.vcol-h{font-family:var(--font-mono);font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);padding-bottom:var(--space-1);border-bottom:1px solid var(--line)}
.vn{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text);cursor:pointer;font:inherit;transition:border-color var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}
.vn:hover{border-color:var(--text-dim)}
.vn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.vn-t{display:block;font-size:var(--fs-sm);font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.vn-k{display:block;font-family:var(--font-mono);font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin-top:var(--space-1)}
.vn[data-col="src"],.vn[data-col="art"]{border-left:2px solid var(--c-steel)}
.vn[data-col="find"]{border-left:2px solid var(--c-gold)}
.vn[data-col="conc"]{border-left:2px solid var(--ok-mark)}
.vn-d{display:block;font-size:var(--fs-sm);color:var(--text-dim);line-height:1.55}
.vn-d b{color:var(--text);font-weight:600}
.vmap.js .vn-d{display:none}
.vmap.js .vn.open .vn-d{display:block;margin-top:var(--space-2);border-top:1px solid var(--line);padding-top:var(--space-2)}
.vmap.has-sel .vn{opacity:.4}
.vmap.has-sel .vn.sel,.vmap.has-sel .vn.lit{opacity:1}
.vn.sel{border-color:var(--accent-mark)}
.vn[aria-pressed="true"]{border-color:var(--accent-mark)}
.vmap-hint{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-label);color:var(--text-dim);margin-top:var(--space-3)}
/* ≤760px traces chips (built by the page script from EDGES) */
.vn-traces{display:none}
.traces__k{display:block;font-family:var(--font-mono);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim);margin-top:var(--space-2)}
.trace-chip{display:inline-flex;align-items:center;min-height:var(--target-min);padding:0 var(--space-3);background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--radius-pill);font-family:var(--font-body);font-weight:500;font-size:var(--fs-sm);color:var(--text);cursor:pointer}
.trace-chip:hover{border-color:var(--text-dim)}
.trace-chip:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
@media (max-width:760px){
  .vmap{grid-template-columns:1fr;gap:var(--space-2)}
  .vedges{display:none}
  .vmap.has-sel .vn{opacity:1}
  .vn-traces{display:block}
}
@media (prefers-reduced-motion:reduce){
  .vn,.vedges path{transition:none}
}

/* evidence panels and audio clips */
details summary{cursor:pointer}
details.more{margin-top:var(--space-4)}
.listen{margin-top:var(--space-3)}
.listen h4{font:400 var(--fs-label)/1.4 var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--text-dim)}
.clip{margin:12px 0;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}
.clip figcaption{font-size:var(--fs-sm);font-weight:600}.clip figcaption .src{display:block;font-weight:400;margin-top:2px}
.cid{display:inline-block;min-width:2.6em;margin-right:6px;padding:0 6px;border-radius:6px;background:var(--c-coral);color:var(--on-accent,var(--c-ink));
  font:700 .75rem/1.7 var(--font-mono);text-align:center}
audio{width:100%;margin:10px 0 4px}
.xs{margin-top:6px;font-size:.9rem}
.ln{padding:3px 10px;margin:3px 0;border-left:3px solid var(--line-strong)}
.ln.a{border-left-color:var(--c-steel)}
.tm{font:400 .72rem var(--font-mono);color:var(--text-dim);margin-right:8px}

/* footer, back-to-top */
footer{border-top:1px solid var(--line);padding-block:var(--space-4) var(--space-6)}
footer p{font:400 var(--fs-label)/1.7 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);max-width:none;word-spacing:normal}
.to-top{position:fixed;right:16px;bottom:88px;z-index:21;min-height:44px;min-width:44px;padding:0 16px;border:1px solid var(--line-strong);
  border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font:400 var(--fs-label)/1 var(--font-mono);
  text-transform:uppercase;letter-spacing:var(--tracking-label);box-shadow:0 2px 10px rgba(0,0,0,.14);cursor:pointer}
h1:focus{outline:none}

@media print{
  :root:has(> body.kit-doc),:root:not([data-theme=light]):has(> body.kit-doc),:root[data-theme=dark]:has(> body.kit-doc),.kit-doc,:root:not([data-theme=light]) .kit-doc,:root[data-theme=dark] .kit-doc{color-scheme:light;--bg:#fff;--surface:#fff;--surface-2:#EDEBE7;--text:#0E0E10;
    --text-dim:#55555A;--line:rgba(14,14,16,.14);--line-strong:#6B6B70;--ok-text:#2F7057;--bad-text:#A82F2F;--warn-text:#8A6B2A;--info-text:#3E5A94}
  .theme-btn,.theme-float,.to-top,nav.sections,audio{display:none!important}
  body{font-size:10.5pt}
  main>section,.clip,.clock{break-inside:avoid-page}
  header.hero{padding-block:0 16px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---- brand mark: the official monogram files, swapped for dark (both triggers); print is always light ---- */
.brand-mark{display:inline-flex;flex:none}
.brand-mark img{width:56px;height:56px;display:block}
.bm-dark{display:none!important}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .bm-light{display:none!important}:root:not([data-theme=light]) .bm-dark{display:block!important}}
:root[data-theme=dark] .bm-light{display:none!important}:root[data-theme=dark] .bm-dark{display:block!important}

/* ---- disclosures look like buttons: outlined pill, chevron that turns, Show/Hide words ---- */
main details>summary{list-style:none;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:4px 18px 4px 14px;
  border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);cursor:pointer;
  font:500 .9rem/1.3 var(--font-body);text-transform:none;letter-spacing:0;user-select:none}
main details>summary::-webkit-details-marker{display:none}
main details>summary::before{content:"";flex:none;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(-45deg);margin:0 2px}
main details[open]>summary::before{transform:rotate(45deg);margin-top:-4px}
main details>summary:hover{background:var(--surface-2);border-color:var(--text)}
/* ---- disclosure ROW variant: a full-width row for a list of same-width entries (e.g. a
   timeline), not a pill — same chevron and Show/Hide mechanism, just a different container
   shape. The D3 pill above stays the default for small "Show ..." triggers. ---- */
main details.disclosure-row>summary{display:flex;flex-wrap:wrap;align-items:baseline;width:100%;
  border-radius:var(--radius);column-gap:var(--space-2)}
main details.disclosure-row>summary .tm{margin-left:auto}
details.more{border-top:1px solid var(--line);padding-top:var(--space-3)}
details.more>summary{font:400 var(--fs-label)/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.1em;word-spacing:normal;padding:4px 20px 4px 16px}
details.more[open]>summary{margin-bottom:var(--space-3)}
.clip details>summary{font-size:.86rem;margin-top:4px}
summary .when-open{display:none}
details[open]>summary .when-open{display:inline}details[open]>summary .when-closed{display:none}

/* ---- smart search in the bottom bar ---- */
.search{position:relative;display:flex;align-items:center;flex:1 1 280px;min-width:0;max-width:460px}
.search svg{position:absolute;left:14px;width:16px;height:16px;color:var(--text-dim);pointer-events:none}
.search-input{width:100%;min-height:44px;padding:0 42px 0 38px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);
  background:var(--bg);color:var(--text);font:400 .95rem/1 var(--font-body);word-spacing:normal;-webkit-appearance:none;appearance:none}
.search-input::placeholder{color:var(--text-dim)}
.search-input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.search-key{position:absolute;right:12px;font:400 .72rem/1.4 var(--font-mono);border:1px solid var(--line-strong);border-radius:6px;padding:0 6px;color:var(--text-dim)}
@media (pointer:coarse){.search-key{display:none}}
.search-results{position:fixed;left:var(--pad);right:var(--pad);max-width:760px;margin:0;padding:6px;list-style:none;max-height:min(60vh,540px);overflow:auto;
  background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:0 10px 32px rgba(0,0,0,.2);z-index:30}
.search-result,.search-empty{margin:0;padding:10px 12px;border-radius:10px;max-width:none;color:var(--text)}
.search-result{cursor:pointer}
.search-result[aria-selected=true],.search-result:hover{background:var(--surface-2)}
.sr-top{display:flex;gap:10px;align-items:baseline;min-width:0}
.sr-kind{flex:none;font:400 .6875rem/1.4 var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);padding:0 7px;word-spacing:normal}
.sr-title{font-weight:600;font-size:.95rem;min-width:0;overflow-wrap:anywhere}
.sr-snip{font-size:.88rem;margin-top:3px;overflow-wrap:anywhere}
.sr-where{font:400 .7rem/1.4 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;word-spacing:normal}
.search-results mark{background:color-mix(in srgb,var(--c-coral) 30%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.search-float{position:fixed;left:16px;right:16px;bottom:16px;z-index:21;display:flex}
.search-hit{outline:3px solid var(--c-coral)!important;outline-offset:4px;border-radius:6px}
@media (max-width:560px){.notes-bar .search{flex:1 1 100%;max-width:none}}
@media print{.search,.search-results,.search-float{display:none!important}}
.sr-title{font-weight:500}
@media print{:root .bm-light,:root:not([data-theme=light]) .bm-light,:root[data-theme=dark] .bm-light{display:block!important}
  :root .bm-dark,:root:not([data-theme=light]) .bm-dark,:root[data-theme=dark] .bm-dark{display:none!important}}

/* ---- print: a round button beside light/dark opens a small panel (evntrace-print.js) ---- */
.print-btn svg{width:20px;height:20px}
.print-dlg{width:min(520px,calc(100vw - 32px));max-height:min(84vh,760px);padding:0;border:1px solid var(--line-strong);
  border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:0 18px 48px rgba(0,0,0,.28)}
.print-dlg[open]{display:flex;flex-direction:column}
.print-dlg::backdrop{background:rgba(14,14,16,.5)}
.pd-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px 0 24px}
.pd-head h2{font-size:1.5rem}
.pd-x{flex:none;width:44px;height:44px;border:0;border-radius:50%;background:none;color:var(--text);font-size:1.05rem;cursor:pointer}
.pd-x:hover{background:var(--surface-2)}
.pd-intro{margin:0;padding:2px 24px 0;font-size:var(--fs-sm);color:var(--text-dim);max-width:none}
.pd-quick{display:flex;gap:8px;padding:10px 24px 12px}
.pd-link{min-height:44px;padding:0 18px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);
  font:600 .9rem/1 var(--font-body);cursor:pointer}
.pd-link:hover{background:var(--surface-2);border-color:var(--text)}
.pd-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.pd-list{list-style:none;margin:0;padding:6px 12px;overflow:auto;flex:1 1 auto;border-block:1px solid var(--line)}
.pd-list li{max-width:none}
.pd-list label,.pd-opts label{display:flex;align-items:center;gap:12px;min-height:44px;padding:4px 12px;border-radius:10px;cursor:pointer;
  font-size:.95rem;line-height:1.3;word-spacing:normal}
.pd-list label:hover,.pd-opts label:hover{background:var(--surface-2)}
.print-dlg input[type=checkbox]{flex:none;width:20px;height:20px;margin:0;accent-color:var(--text)}
.pd-opts{padding:8px 12px 0}
.pd-fine{margin:0;padding:6px 24px 0;font-size:.82rem;color:var(--text-dim);max-width:none}
.pd-acts{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:16px 24px 20px}
.pd-btn{min-height:44px;padding:0 18px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);
  color:var(--text);font:500 .95rem/1 var(--font-body);cursor:pointer;word-spacing:normal}
.pd-btn.quiet{border-color:transparent;background:none}
.pd-btn.quiet:hover{background:var(--surface-2)}
.pd-btn.primary{border:0;color:var(--on-accent,var(--c-ink));font-weight:600;
  background:linear-gradient(135deg,var(--c-coral-sheen) 0%,var(--c-coral) 45%,var(--c-coral-deep) 100%)}
.pd-btn.primary:active{background:var(--c-coral-deep)}
.pd-btn.primary:disabled{background:var(--surface-2);color:var(--text);border:1px dashed var(--line-strong);cursor:not-allowed}
.print-dlg :focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.print-scope{display:none}
@media (max-width:560px){.print-dlg{width:calc(100vw - 16px);max-height:92vh}.pd-acts{padding:12px 16px 16px}.pd-acts .pd-btn{flex:1 1 auto}}
@media print{
  .print-dlg,.print-btn{display:none!important}
  .print-scope:not([hidden]){display:block;margin:0 0 12px;padding:8px 12px;border:1.5px solid #0E0E10;border-radius:8px;
    font:600 9.5pt/1.4 var(--font-body);color:#0E0E10;max-width:none}
  body.print-sel main>section.print-skip{display:none!important}
  body.print-no-notes .note-box,body.print-no-notes .gen-notes,body.print-no-notes .note-tr,body.print-no-notes .orphans{display:none!important}
  body.print-no-panels main details:not([open]){display:none!important}
  /* an opened panel's button prints as a small label, not as a button */
  main details[open]>summary{display:block;min-height:0;padding:0;border:0;background:none;margin:0 0 6px}
  main details>summary::before,summary .when-open,summary .when-closed,summary .note-count{display:none!important}
}

/* ---- a firm's own branding leads; the evntrace credit moves to the foot of the page, small ---- */
.brand.firm{cursor:default}
.brand.firm .brand-text b{text-transform:none;letter-spacing:0;font-size:1.5rem;line-height:1.1;overflow-wrap:break-word}
.firm-logo{display:block;flex:none;width:auto;height:auto;max-height:56px;max-width:220px;object-fit:contain}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .firm-logo{background:#fff;padding:6px;border-radius:8px}}
:root[data-theme=dark] .firm-logo{background:#fff;padding:6px;border-radius:8px}
.evt-credit{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:var(--space-2);color:var(--text-dim);text-decoration:none;
  font:400 var(--fs-label)/1.4 var(--font-mono);text-transform:uppercase;letter-spacing:.1em;word-spacing:normal}
.evt-credit:hover,.evt-credit:focus-visible{color:var(--text)}
.evt-credit .brand-mark img{width:20px;height:20px}
@media print{.firm-logo{background:none!important;padding:0!important}.evt-credit{color:#55555A}}

/* ---- "Provided by evntrace.com" on every printed page (page margin boxes: Chrome 131+, WeasyPrint; Safari prints without it) ---- */
@page{margin:16mm 14mm 18mm;
  @bottom-left{content:"Provided by evntrace.com";font:400 7.5pt/1 'Geist Mono',ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;color:#55555A}
  @bottom-right{content:"Page " counter(page) " of " counter(pages);font:400 7.5pt/1 'Geist Mono',ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;color:#55555A}}
