
/* Identity: a citizen watchdog's night-shift console. One committed dark look (deliberately single-theme):
   stencil headlines, a scanner's grid, hazard yellow for findings, alarm red for what is taken, signal green for
   what is verified or won back. Display: Big Shoulders Stencil. Text: IBM Plex Sans. Evidence and data: IBM Plex Mono. */
:root {
  color-scheme: dark;
  --bg: #0a0d0c; --panel: #111614; --panel-2: #161d1a; --line: #223029; --line-2: #2f4038;
  --fg: #e4ece6; --fg-2: #9fb0a6; --fg-3: #66786e;
  --hazard: #ffd21f; --hazard-ink: #141000; --hazard-dim: rgba(255, 210, 31, 0.13);
  --alarm: #ff4d3d; --alarm-dim: rgba(255, 77, 61, 0.13);
  --signal: #3dffa2; --signal-dim: rgba(61, 255, 162, 0.1);
  --t3: #ff4d3d; --t2: #ffb020; --t1: #7d9488; --t0: #3b4a43;
  --f-display: "Big Shoulders Stencil Display", Impact, "Arial Narrow", sans-serif;
  --f-ui: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
}
* { box-sizing: border-box; }
html { background: var(--bg); }
body { background: var(--bg); color: var(--fg); font: 400 1rem/1.6 var(--f-ui); -webkit-font-smoothing: antialiased;
  background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 48px 48px; background-position: -1px -1px; background-attachment: fixed; }
body::after { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 50;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0.18) 0 1px, transparent 1px 3px); opacity: 0.5; }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 10; background: var(--bg); }
.wrap { max-width: 60rem; margin: 0 auto; padding-block: 1.5rem 5rem;
  padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px));
  display: grid; gap: 2.5rem; position: relative; }
h1, h2, h3 { margin: 0; text-wrap: balance; }
h2 { font: 800 clamp(1.7rem, 4vw, 2.3rem)/1 var(--f-display); text-transform: uppercase; letter-spacing: 0.02em; }
p { margin: 0; }
a { color: var(--hazard); text-underline-offset: 3px; text-decoration-thickness: 1px; }
button { font: inherit; color: inherit; }
a:focus-visible, button:focus-visible, select:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--hazard); outline-offset: 2px; }
.mono { font-family: var(--f-mono); }
.code { font: 500 0.7rem/1.3 var(--f-mono); text-transform: uppercase; letter-spacing: 0.14em; color: var(--fg-3); }
.code.hz { color: var(--hazard); }

/* corner brackets: the scanner's frame */
.frame { position: relative; }
.frame::before, .frame::after { content: ""; position: absolute; width: 14px; height: 14px; pointer-events: none; border-color: var(--hazard); border-style: solid; opacity: 0.9; }
.frame::before { top: -1px; left: -1px; border-width: 2px 0 0 2px; }
.frame::after { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; }

/* ---- masthead ---- */
.status { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1rem; padding: 0.55rem 0.8rem;
  border: 1px solid var(--line-2); background: var(--panel); font: 500 0.7rem/1.3 var(--f-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--fg-2); }
.live { color: var(--signal); display: inline-flex; align-items: center; gap: 0.5rem; }
.live::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 10px var(--signal); animation: blink 1.6s steps(2, start) infinite; }
@keyframes blink { to { opacity: 0.2; } }
.mast { display: grid; gap: 1.25rem; }
h1 { font: 900 clamp(3.4rem, 13vw, 8.5rem)/0.82 var(--f-display); text-transform: uppercase; letter-spacing: 0.005em; }
h1 .redact { position: relative; color: transparent; display: inline-block; }
h1 .redact::after { content: ""; position: absolute; inset: 0.12em -0.04em 0.06em; background: var(--fg); }
h1 .hz { color: var(--hazard); }
.lede { font: 400 clamp(1.05rem, 2.2vw, 1.2rem)/1.55 var(--f-ui); color: var(--fg-2); max-width: 42rem; }
.lede b { color: var(--fg); font-weight: 600; }
.lede del { color: var(--alarm); } .lede ins { color: var(--signal); text-decoration: none; border-bottom: 1px solid var(--signal); }

.tally { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--line-2); border: 1px solid var(--line-2); }
.tally > div { background: var(--panel); padding: 0.9rem 1rem 0.85rem; display: grid; gap: 0.35rem; align-content: start; }
.tally b { font: 800 clamp(2rem, 5vw, 2.8rem)/0.9 var(--f-display); font-variant-numeric: tabular-nums; }
.tally b { color: var(--fg); } .tally .red b { color: var(--alarm); } .tally .hz b { color: var(--hazard); }
.tally span { font: 500 0.66rem/1.3 var(--f-mono); color: var(--fg-3); text-transform: uppercase; letter-spacing: 0.12em; }
.tally .meter { height: 3px; background: var(--line); position: relative; overflow: hidden; }
.tally .meter i { position: absolute; inset: 0 auto 0 0; background: currentColor; }
.tally > div { color: var(--fg-2); } .tally .red { color: var(--alarm); } .tally .hz { color: var(--hazard); }

/* ---- nav ---- */
.views-bar { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20; background: var(--bg); padding-block: 0.6rem; margin-block: -0.6rem; border-bottom: 1px solid var(--line-2); }
.views { display: flex; gap: 0; }
.views a { font: 800 1.25rem/1 var(--f-display); text-transform: uppercase; letter-spacing: 0.06em; color: var(--fg-3); text-decoration: none;
  padding: 0.7rem 1.1rem 0.6rem; border: 1px solid transparent; border-bottom: 0; display: inline-flex; gap: 0.6rem; align-items: baseline; }
.views a small { font: 500 0.65rem/1 var(--f-mono); letter-spacing: 0.12em; color: var(--fg-3); }
.views a:hover { color: var(--fg); }
.views a[aria-current="page"] { color: var(--hazard-ink); background: var(--hazard); }
.views a[aria-current="page"] small { color: var(--hazard-ink); }
.view { display: grid; gap: 2rem; }

/* ---- controls ---- */
.filters { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.chip { font: 500 0.75rem/1 var(--f-mono); text-transform: uppercase; letter-spacing: 0.08em; padding: 0.6rem 0.8rem; border: 1px solid var(--line-2);
  background: var(--panel); color: var(--fg-2); cursor: pointer; display: inline-flex; align-items: center; gap: 0.5rem; border-radius: 0; }
.chip::before { content: "[ ]"; color: var(--fg-3); }
.chip[aria-pressed="true"] { border-color: var(--hazard); color: var(--hazard); background: var(--hazard-dim); }
.chip[aria-pressed="true"]::before { content: "[x]"; color: var(--hazard); }
.chip:hover { color: var(--fg); }
.chip.nobox::before { content: none; }
.chip .n { background: var(--alarm); color: var(--bg); padding: 0.18rem 0.35rem; font-weight: 600; }
select.chip { appearance: none; -webkit-appearance: none; padding-right: 2rem; background: var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23ffd21f'/%3E%3C/svg%3E") no-repeat right 0.8rem center; }
select.chip option { background: var(--panel); color: var(--fg); }
.count { font: 500 0.72rem/1 var(--f-mono); color: var(--signal); letter-spacing: 0.1em; text-transform: uppercase; }

/* ---- threat level ---- */
.threat { display: inline-flex; align-items: center; gap: 0.5rem; font: 600 0.68rem/1 var(--f-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--tc); white-space: nowrap; }
.threat .bars { display: inline-flex; gap: 2px; }
.threat .bars i { width: 6px; height: 12px; background: var(--t0); transform: skewX(-12deg); }
.threat .bars i.on { background: var(--tc); box-shadow: 0 0 6px var(--tc); }

/* ---- incident feed ---- */
.feed { display: grid; gap: 1.25rem; }
.incident { background: var(--panel); border: 1px solid var(--line-2); min-width: 0; }
.incident.t3 { border-color: color-mix(in srgb, var(--alarm) 55%, var(--line-2)); }
.tape { height: 8px; background: repeating-linear-gradient(-45deg, var(--tc) 0 10px, var(--bg) 10px 20px); opacity: 0.9; }
.inc-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1rem; align-items: center; padding: 0.65rem 1.25rem; border-bottom: 1px dashed var(--line-2);
  font: 500 0.7rem/1.3 var(--f-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--fg-3); }
.inc-head .id { color: var(--fg-2); }
.inc-body { padding: 1.1rem 1.25rem 1.2rem; display: grid; gap: 0.9rem; }
.target { font: 600 0.8rem/1.3 var(--f-mono); text-transform: uppercase; letter-spacing: 0.1em; color: var(--hazard); }
.target span { color: var(--fg-3); }
.perma { color: inherit; text-decoration: none; } .perma:hover { text-decoration: underline; text-decoration-color: var(--hazard); }
.incident h3 { font: 800 clamp(1.45rem, 3.4vw, 1.9rem)/1.02 var(--f-display); text-transform: uppercase; letter-spacing: 0.01em; }
.incident .sum { color: var(--fg-2); max-width: 44rem; }
.tags { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.tag { font: 600 0.66rem/1 var(--f-mono); letter-spacing: 0.12em; text-transform: uppercase; padding: 0.38rem 0.5rem; border: 1px solid var(--line-2); color: var(--fg-2); }
.tag.ai { background: var(--hazard); color: var(--hazard-ink); border-color: var(--hazard); }
.tag.warn { border-color: var(--t2); color: var(--t2); }
.tag.ok { border-color: var(--signal); color: var(--signal); }
.ledger { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 0.75rem; }
.ledger > div { padding: 0.85rem 1rem; border-left: 3px solid; }
.ledger .lost { background: var(--alarm-dim); border-color: var(--alarm); }
.ledger .won { background: var(--signal-dim); border-color: var(--signal); }
.ledger h4 { margin: 0 0 0.5rem; font: 600 0.68rem/1.2 var(--f-mono); text-transform: uppercase; letter-spacing: 0.14em; }
.ledger .lost h4 { color: var(--alarm); } .ledger .won h4 { color: var(--signal); }
.ledger ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.4rem; font-size: 0.93rem; line-height: 1.45; }
.ledger li { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); }
.ledger .lost li::before { content: "✕"; color: var(--alarm); font: 600 0.8rem/1.6 var(--f-mono); }
.ledger .won li::before { content: "+"; color: var(--signal); font: 600 0.9rem/1.5 var(--f-mono); }
details { border-top: 1px dashed var(--line-2); padding-top: 0.75rem; }
summary { cursor: pointer; font: 500 0.72rem/1.4 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--fg-2); list-style: none; display: flex; gap: 0.5rem; }
summary::-webkit-details-marker { display: none; }
summary::before { content: "▶"; color: var(--hazard); font-size: 0.6rem; line-height: 1.9; transition: transform .15s; }
details[open] summary::before { transform: rotate(90deg); }
.quotes { display: grid; gap: 0.7rem; margin-top: 0.8rem; }
.q { font: 400 0.85rem/1.6 var(--f-mono); overflow-wrap: anywhere; padding: 0.6rem 0.8rem; background: var(--bg); border: 1px solid var(--line); }
.q del { color: var(--alarm); text-decoration-thickness: 1px; }
.q ins { color: var(--signal); text-decoration: none; }
.q small { display: block; font: 500 0.64rem/1.4 var(--f-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--fg-3); margin-top: 0.35rem; }
.q small .ok { color: var(--signal); } .q small .bad { color: var(--alarm); }
.src { font: 400 0.72rem/1.5 var(--f-mono); color: var(--fg-3); }
.src a { color: var(--fg-2); }
.empty { padding: 2rem; color: var(--fg-2); text-align: center; border: 1px dashed var(--line-2); font-family: var(--f-mono); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.8rem; }

/* ---- dossier ---- */
.dossier { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 1px; background: var(--line-2); border: 1px solid var(--line-2); }
.dossier > div { background: var(--panel); padding: clamp(1.25rem, 3vw, 2rem); min-width: 0; }
.subject { display: grid; gap: 1rem; align-content: start; }
.subject .name { font: 900 clamp(2.4rem, 6vw, 3.6rem)/0.9 var(--f-display); text-transform: uppercase; }
.verdict { font: 500 clamp(1.05rem, 2.2vw, 1.2rem)/1.5 var(--f-ui); color: var(--fg); border-left: 3px solid var(--hazard); padding-left: 1rem; }
.subject .meta { display: flex; flex-wrap: wrap; gap: 0.3rem 1.25rem; font: 500 0.68rem/1.5 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--fg-3); }
.subject .meta .ok { color: var(--signal); }
.radar { display: grid; gap: 0.5rem; align-content: start; justify-items: center; }
.radar svg { width: 100%; max-width: 26rem; height: auto; overflow: visible; }
.radar .ring { fill: none; stroke: var(--line-2); stroke-width: 1; }
.radar .axis { stroke: var(--line-2); stroke-width: 1; }
.radar .area { fill: var(--alarm-dim); stroke: var(--alarm); stroke-width: 2; stroke-linejoin: round; }
.radar .pt { fill: var(--alarm); }
.radar .lab { font: 600 11px var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; fill: var(--fg-3); cursor: pointer; }
.radar .lab.sel { fill: var(--hazard); }
.radar .sweep { transform-origin: 160px 150px; animation: sweep 6s linear infinite; }
@keyframes sweep { to { transform: rotate(360deg); } }
.radar .cap { font: 500 0.64rem/1.4 var(--f-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--fg-3); text-align: center; }

.scorecard { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; background: var(--line-2); border: 1px solid var(--line-2); }
.tile { text-align: left; background: var(--panel); border: 0; padding: 0.85rem 0.85rem 0.9rem; cursor: pointer; display: grid; gap: 0.55rem; align-content: start; position: relative; }
.tile:hover { background: var(--panel-2); }
.tile[aria-pressed="true"] { background: var(--hazard-dim); box-shadow: inset 0 -3px 0 var(--hazard); }
.tile .t { font: 800 1.05rem/1.05 var(--f-display); text-transform: uppercase; letter-spacing: 0.03em; }
.tile[aria-pressed="true"] .t { color: var(--hazard); }
.tile .k { font: 500 0.64rem/1.3 var(--f-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--fg-3); }
.tile .k.hot { color: var(--alarm); }
.tile .threat { gap: 0; }

.sec-head { display: grid; gap: 0.45rem; }
.sec-head p { color: var(--fg-2); max-width: 44rem; font-size: 1.05rem; }
.points { display: grid; gap: 1rem; }
.finding { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); background: var(--panel); border: 1px solid var(--line-2); min-width: 0; }
.finding .num { border-right: 1px dashed var(--line-2); display: grid; align-content: start; justify-items: center; gap: 0.3rem; padding-top: 1.1rem; }
.finding .num b { font: 900 2.4rem/0.9 var(--f-display); color: var(--tc); }
.finding .num span { font: 500 0.6rem/1 var(--f-mono); letter-spacing: 0.14em; color: var(--fg-3); }
.finding .body { padding: 1.1rem 1.25rem 1.15rem; display: grid; gap: 0.65rem; min-width: 0; }
.finding h3 { font: 800 1.45rem/1.05 var(--f-display); text-transform: uppercase; letter-spacing: 0.01em; }
.finding .why { color: var(--fg-2); font-size: 0.95rem; }
.evidence { margin: 0.15rem 0 0; padding: 0.8rem 0.95rem; background: var(--bg); border: 1px solid var(--line); border-left: 3px solid var(--hazard);
  font: 400 0.85rem/1.6 var(--f-mono); color: var(--fg); overflow-wrap: anywhere; }
.evidence mark { background: var(--hazard-dim); color: var(--fg); }
.evidence cite { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; margin-top: 0.55rem; font: normal 500 0.62rem/1.3 var(--f-mono); text-transform: uppercase; letter-spacing: 0.14em; color: var(--fg-3); }
.evidence cite .ok { color: var(--signal); } .evidence cite .bad { color: var(--alarm); }
.linkbtn { font: 600 0.7rem/1.4 var(--f-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--hazard); background: none; border: 0; padding: 0.2rem 0; cursor: pointer; justify-self: start; }
.linkbtn:hover { text-decoration: underline; }
.linkbtn.sm { font-size: 0.64rem; }

.counter { background: var(--signal-dim); border: 1px solid color-mix(in srgb, var(--signal) 40%, var(--line-2)); padding: 1.1rem 1.25rem; display: grid; gap: 0.7rem; }
.counter h4 { margin: 0; font: 800 1.3rem/1 var(--f-display); text-transform: uppercase; letter-spacing: 0.04em; color: var(--signal); }
.counter ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.5rem; font-size: 0.95rem; }
.counter li { display: grid; grid-template-columns: 1.4rem minmax(0, 1fr); }
.counter li::before { content: "▸"; color: var(--signal); font-family: var(--f-mono); }
.counter:empty { display: none; }

.docsec { display: grid; gap: 1rem; }
.doc-head { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; align-items: end; justify-content: space-between; }
.seg { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--line-2); }
.seg button { border: 0; background: var(--panel); cursor: pointer; font: 500 0.72rem/1 var(--f-mono); text-transform: uppercase; letter-spacing: 0.1em; color: var(--fg-2); padding: 0.65rem 0.9rem; }
.seg button + button { border-left: 1px solid var(--line-2); }
.seg button[aria-pressed="true"] { background: var(--hazard); color: var(--hazard-ink); }
.sheet { background: var(--panel); border: 1px solid var(--line-2); scroll-margin-top: 5rem; }
.sheet-bar { display: flex; flex-wrap: wrap; gap: 0.4rem 1.1rem; align-items: center; padding: 0.6rem 1rem; border-bottom: 1px solid var(--line-2); background: var(--panel-2);
  font: 500 0.68rem/1.5 var(--f-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--fg-3); }
.region { color: var(--t2); border: 1px dashed var(--t2); padding: 0.3rem 0.5rem; }
.sheet-bar .hits { color: var(--hazard); }
.doctext { max-height: 72vh; overflow-y: auto; padding: 1.25rem clamp(0.75rem, 3vw, 2rem) 2rem 0; display: grid; gap: 0.8rem;
  font: 400 0.84rem/1.7 var(--f-mono); color: var(--fg-2); counter-reset: para; position: relative; }
.doctext h5 { margin: 0.75rem 0 0 3.5rem; font: 800 1.15rem/1.1 var(--f-display); text-transform: uppercase; letter-spacing: 0.03em; color: var(--fg); }
.doctext p { white-space: pre-line; overflow-wrap: anywhere; display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); max-width: 52rem; }
.doctext p::before { counter-increment: para; content: counter(para, decimal-leading-zero); font: 400 0.64rem/2.6 var(--f-mono); color: var(--fg-3); text-align: right; padding-right: 0.9rem; opacity: 0.7; }
.doctext p > span { min-width: 0; }
.doctext .hit > span { background: var(--hazard-dim); color: var(--fg); padding: 0.55rem 0.75rem; margin-left: -0.75rem; border-left: 3px solid var(--hazard); }
.doctext .hit::before { color: var(--hazard); opacity: 1; }
.doctext .hit.dim > span { background: transparent; color: var(--fg-2); border-left-color: var(--line-2); padding-block: 0; }
.doctext .hit.dim::before { color: var(--fg-3); }
.doctext .lbl { display: block; font: 600 0.62rem/1.4 var(--f-mono); text-transform: uppercase; letter-spacing: 0.14em; color: var(--hazard); margin-bottom: 0.3rem; }
.doctext .hit.dim .lbl { color: var(--fg-3); }
.doctext .flash > span { outline: 2px solid var(--signal); outline-offset: 3px; }

/* ---- rules of engagement ---- */
.verdict-meta .warn { color: var(--t2); flex-basis: 100%; }
.status .where { display: inline-flex; gap: 0.5rem; align-items: center; color: var(--fg-2); }
.status .where b { color: var(--fg); }
.country-pick { background: var(--bg); color: var(--fg); border: 1px solid var(--line-2); padding: 0.3rem 0.45rem; font: 500 0.7rem/1 var(--f-mono); text-transform: none; letter-spacing: 0; }
.svc-search { min-width: 15rem; text-transform: none; letter-spacing: 0; }
.rg { display: inline-block; font: 600 0.62rem/1 var(--f-mono); letter-spacing: 0.08em; padding: 0.22rem 0.35rem; border: 1px solid var(--line-2); color: var(--fg-2); vertical-align: middle; }
.rg-EU { color: #8fb4ff; border-color: #3b5a99; } .rg-US { color: #ff9f8f; border-color: #8a3b33; } .rg-UK { color: #c9a8ff; border-color: #5b4790; }
.rg-AU { color: #ffd27a; border-color: #8a6a2a; } .rg-FR { color: #9fe0ff; border-color: #2f6a80; } .rg-XX { color: var(--fg-3); }
.svc-links ul { margin: 0.6rem 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 0.35rem 1.5rem; font-size: 0.85rem; }
.svc-links a { color: var(--fg-2); text-decoration: none; } .svc-links a:hover { color: var(--hazard); }
.fine { display: grid; gap: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--line-2); }
.fine section { display: grid; gap: 1rem; }
.steps { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 0.6rem; counter-reset: st; }
.steps li { counter-increment: st; display: block; background: var(--panel); border: 1px solid var(--line-2); border-top: 2px solid var(--hazard); padding: 0.9rem 1rem 1rem; font-size: 0.92rem; color: var(--fg-2); }
.steps li::before { content: "RULE " counter(st, decimal-leading-zero); display: block; margin-bottom: 0.4rem; font: 600 0.66rem/1 var(--f-mono); letter-spacing: 0.14em; color: var(--hazard); }
.caveat { border: 1px solid var(--t2); background: rgba(255, 176, 32, 0.07); padding: 1rem 1.2rem; font-size: 0.92rem; color: var(--fg-2); display: grid; gap: 0.5rem; }
.caveat b { color: var(--t2); font: 600 0.72rem/1.4 var(--f-mono); letter-spacing: 0.12em; text-transform: uppercase; display: block; }
.muted { color: var(--fg-2); }
.held { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.5rem; }
.held li { font-size: 0.92rem; color: var(--fg-2); padding: 0.75rem 1rem; border: 1px dashed var(--line-2); background: var(--panel); }
.held li b { color: var(--fg); }
.held .code { margin-right: 0.5rem; color: var(--t2); }
.tablewrap { overflow-x: auto; border: 1px solid var(--line-2); background: var(--panel); }
table { border-collapse: collapse; width: 100%; font: 400 0.78rem/1.4 var(--f-mono); font-variant-numeric: tabular-nums; }
th, td { text-align: left; padding: 0.55rem 1rem; border-bottom: 1px solid var(--line); white-space: nowrap; }
tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: var(--panel-2); }
th { color: var(--fg-3); font-weight: 500; text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.64rem; background: var(--panel-2); }
td:first-child { color: var(--fg); font-weight: 600; }
td.n, th.n { text-align: right; }
td .bar { display: inline-block; height: 8px; background: var(--alarm); vertical-align: middle; margin-left: 0.6rem; box-shadow: 0 0 6px var(--alarm); }
.sign { font: 500 0.7rem/1.6 var(--f-mono); color: var(--fg-3); letter-spacing: 0.06em; }

@media (max-width: 56rem) { .scorecard { grid-template-columns: repeat(3, minmax(0, 1fr)); } .dossier { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 40rem) {
  .tally { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tally > div:first-child { grid-column: 1 / -1; }
  .scorecard { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .views a { font-size: 1.05rem; padding-inline: 0.75rem; }
  .views a small { display: none; }
  .finding { grid-template-columns: minmax(0, 1fr); }
  .finding .num { border-right: 0; border-bottom: 1px dashed var(--line-2); grid-auto-flow: column; justify-content: start; align-items: center; gap: 0.6rem; padding: 0.7rem 1rem; }
  .finding .num b { font-size: 1.8rem; }
  .doctext p { grid-template-columns: 2.4rem minmax(0, 1fr); }
  .doctext h5 { margin-left: 2.4rem; }
  .inc-head, .inc-body { padding-inline: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .live::before, .radar .sweep { animation: none; } summary::before { transition: none; } }

/* sub-pages */
.topbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem 1.5rem; padding-block: 0.4rem 0.9rem; border-bottom: 1px solid var(--line-2); }
.topbar .home { font: 900 1.6rem/0.9 var(--f-display); text-transform: uppercase; color: var(--fg); text-decoration: none; letter-spacing: 0.01em; }
.topbar .home span { color: var(--hazard); }
.topbar nav { display: flex; flex-wrap: wrap; gap: 1rem; font: 500 0.72rem/1 var(--f-mono); text-transform: uppercase; letter-spacing: 0.12em; }
.topbar nav a { color: var(--fg-2); text-decoration: none; }
main { display: grid; gap: 2.5rem; } .topbar nav a:hover { color: var(--hazard); }
.page-title { font: 900 clamp(2.4rem, 7vw, 4.4rem)/0.92 var(--f-display); text-transform: uppercase; margin: 0; text-wrap: balance; }
.crumbs { font: 500 0.7rem/1.4 var(--f-mono); text-transform: uppercase; letter-spacing: 0.12em; color: var(--fg-3); }
.crumbs a { color: var(--fg-2); }
.incident h1.inc-title { font: 800 clamp(1.8rem, 5vw, 2.8rem)/1 var(--f-display); text-transform: uppercase; margin: 0; letter-spacing: 0.01em; }
.perma { color: inherit; text-decoration: none; } .perma:hover { text-decoration: underline; text-decoration-color: var(--hazard); }
.timeline { display: grid; gap: 0.6rem; }
.tl { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 1rem; padding: 0.8rem 1rem; background: var(--panel); border: 1px solid var(--line-2); border-left: 3px solid var(--tc); }
.tl .d { font: 500 0.72rem/1.5 var(--f-mono); color: var(--fg-3); display: grid; gap: 0.35rem; align-content: start; }
.tl a { color: var(--fg); font-weight: 600; text-decoration: none; } .tl a:hover { color: var(--hazard); }
.tl p { color: var(--fg-2); font-size: 0.92rem; margin-top: 0.2rem; }
.angle { display: grid; gap: 0.8rem; }
.angle h3 { font: 800 1.6rem/1 var(--f-display); text-transform: uppercase; margin: 0; }
.ai-table td.wrap-cell { white-space: normal; min-width: 14rem; font-family: var(--f-ui); font-size: 0.85rem; color: var(--fg-2); }
.ai-table td a { color: var(--fg); }
.dim { color: var(--fg-3); }
.rg { display: inline-block; font: 600 0.62rem/1 var(--f-mono); letter-spacing: 0.08em; padding: 0.22rem 0.35rem; border: 1px solid var(--line-2); color: var(--fg-2); vertical-align: middle; margin-right: 0.15rem; }
.rg-EU { color: #8fb4ff; border-color: #3b5a99; } .rg-US { color: #ff9f8f; border-color: #8a3b33; } .rg-UK { color: #c9a8ff; border-color: #5b4790; }
.rg-AU { color: #ffd27a; border-color: #8a6a2a; } .rg-FR { color: #9fe0ff; border-color: #2f6a80; } .rg-XX { color: var(--fg-3); }
.loc-note { margin: 0; padding: 0.7rem 0.9rem; border: 1px solid var(--line-2); border-left: 3px solid var(--signal); background: var(--panel); font-size: 0.9rem; color: var(--fg-2); display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: center; }
.loc-note b { color: var(--fg); }
.country-pick { background: var(--bg); color: var(--fg); border: 1px solid var(--line-2); padding: 0.35rem 0.5rem; font: 500 0.75rem/1 var(--f-mono); }
.edition.other-region { opacity: 0.75; }
.edition.other-region > .sec-head .code::after { content: " · does not apply to you"; color: var(--fg-3); }
.allreg { display: inline-flex; gap: 0.5rem; align-items: center; cursor: pointer; }
.follow { display: grid; gap: 0.5rem; padding: 0.9rem 1rem; border: 1px solid var(--line-2); border-left: 3px solid var(--hazard); background: var(--panel); }
.follow p { margin: 0; color: var(--fg-2); }
.topbar nav a.navfollow { color: var(--hazard); }
.picker { display: grid; gap: 0.8rem; }
.picker input[type=search] { background: var(--bg); color: var(--fg); border: 1px solid var(--line-2); padding: 0.7rem 0.8rem; font: 400 1rem var(--f-ui); }
.fpick { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: 0.4rem 1rem; }
.fitem { display: flex; gap: 0.5rem; align-items: center; color: var(--fg-2); cursor: pointer; }
.fout { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.4rem; font-size: 0.9rem; }
.fout a { font-family: var(--f-mono); font-size: 0.8rem; overflow-wrap: anywhere; }
.fx { background: none; border: 0; color: var(--fg-3); cursor: pointer; }
.btn-dl, .tgbtn { background: var(--hazard); color: var(--hazard-ink); border: 0; padding: 0.65rem 0.9rem; font: 600 0.75rem/1 var(--f-mono); text-transform: uppercase; letter-spacing: 0.08em; cursor: pointer; text-decoration: none; display: inline-block; }
.btn-dl:disabled { opacity: 0.4; cursor: not-allowed; }
.regnav { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.5rem; }
.regnav a { font: 500 0.75rem/1 var(--f-mono); text-transform: uppercase; letter-spacing: 0.08em; color: var(--fg-2); text-decoration: none; padding: 0.5rem 0.7rem; border: 1px solid var(--line-2); background: var(--panel); }
.regnav a:hover { border-color: var(--hazard); color: var(--hazard); }
.edition { display: grid; gap: 1.5rem; padding-top: 1rem; border-top: 1px dashed var(--line-2); scroll-margin-top: 1rem; }
.cmp th, .cmp td { white-space: normal; vertical-align: top; min-width: 9rem; } .cmp tbody th { color: var(--fg); font: 600 0.8rem/1.3 var(--f-ui); text-transform: none; letter-spacing: 0; background: var(--panel); }
.cmp-t { font: 400 0.8rem/1.35 var(--f-ui); color: var(--fg-2); margin-top: 0.35rem; }
.svc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 1px; background: var(--line-2); border: 1px solid var(--line-2); }
.svc-grid a { background: var(--panel); padding: 1rem; text-decoration: none; color: var(--fg); display: grid; gap: 0.35rem; }
.svc-grid a:hover { background: var(--panel-2); }
.svc-grid b { font: 800 1.35rem/1 var(--f-display); text-transform: uppercase; }
.svc-grid span { font: 500 0.66rem/1.4 var(--f-mono); text-transform: uppercase; letter-spacing: 0.1em; color: var(--fg-3); }
.svc-grid .hot { color: var(--alarm); }
.related { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.5rem; }
.related a { color: var(--fg); font-weight: 600; text-decoration: none; } .related a:hover { color: var(--hazard); }
.share { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.share input { flex: 1 1 16rem; min-width: 0; background: var(--bg); border: 1px solid var(--line-2); color: var(--fg-2); padding: 0.55rem 0.7rem; font: 400 0.8rem var(--f-mono); }
@media (max-width: 40rem) { .tl { grid-template-columns: minmax(0, 1fr); gap: 0.4rem; } }
