/* ============================================================================
   FleetPulse — Blank-Slate v2 ("instrument paper")
   A calm white worksheet topped by one loud verdict stamp. Light theme, locked.
   Tokens in OKLCH. No build step, no framework, no CDN, no new dependency.
   LOOK ONLY: every displayed datum, label, count, and FMCSA attribution is
   preserved. This stylesheet reskins the existing production class names —
   HTMX hooks (id/name based) and JSON serializers are untouched.
   ========================================================================== */

:root {
  /* ── paper + ink (chroma 0 surfaces — no hidden warmth) ── */
  --bg:           oklch(0.992 0 0);
  --surface:      oklch(1 0 0);
  --surface-sunk: oklch(0.972 0 0);
  --line:         oklch(0.912 0 0);
  --line-soft:    oklch(0.940 0 0);
  --line-strong:  oklch(0.852 0 0);
  --ink:          oklch(0.205 0.012 220);
  --ink-2:        oklch(0.435 0.012 220);
  --ink-3:        oklch(0.585 0.010 220);

  /* ── brand: ink-teal (instrument-grade, no traffic-light meaning) ── */
  --primary:      oklch(0.460 0.078 205);
  --primary-deep: oklch(0.330 0.066 207);
  --primary-tint: oklch(0.962 0.018 200);
  --primary-ink:  oklch(0.995 0 0);

  /* ── verdict palette — the loudest vocabulary on the page ── */
  /* PROCEED — deep evergreen */
  --go:      oklch(0.520 0.118 158);
  --go-ink:  oklch(0.290 0.090 158);
  --go-wash: oklch(0.963 0.034 158);
  --go-line: oklch(0.840 0.060 158);
  /* VET FURTHER — amber-ochre */
  --vet:      oklch(0.660 0.140 75);
  --vet-ink:  oklch(0.430 0.110 62);
  --vet-wash: oklch(0.962 0.044 80);
  --vet-line: oklch(0.852 0.080 78);
  /* AVOID — seed red, spent where alarm belongs */
  --avoid:      oklch(0.560 0.200 22);
  --avoid-ink:  oklch(0.430 0.176 24);
  --avoid-wash: oklch(0.960 0.040 25);
  --avoid-line: oklch(0.848 0.092 26);
  /* INSUFFICIENT — desaturated slate */
  --unk:      oklch(0.560 0.014 230);
  --unk-ink:  oklch(0.405 0.012 230);
  --unk-wash: oklch(0.965 0.004 230);
  --unk-line: oklch(0.880 0.006 230);
  /* NEUTRAL (instrument neutral — never a verdict color) */
  --neu-ink: var(--ink-2);
  --neu-wash: var(--surface-sunk);
  --neu-line: var(--line);

  /* ── type ── */
  --font-display: "Archivo Narrow", "Roboto Condensed", "Oswald", "Arial Narrow",
    "Helvetica Neue", system-ui, sans-serif;
  --font-ui: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto,
    Helvetica, Arial, sans-serif;
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas,
    "Liberation Mono", monospace;

  --step--1: clamp(0.78rem, 0.76rem + 0.1vw, 0.84rem);
  --step-0:  clamp(0.92rem, 0.90rem + 0.2vw, 1.00rem);
  --step-1:  clamp(1.10rem, 1.02rem + 0.4vw, 1.32rem);
  --step-2:  clamp(1.45rem, 1.28rem + 0.9vw, 1.95rem);
  --step-3:  clamp(1.95rem, 1.60rem + 1.8vw, 2.90rem);
  --step-4:  clamp(2.2rem, 1.7rem + 2.6vw, 3.4rem);

  /* ── space (4-based) ── */
  --s1: 4px;  --s2: 8px;  --s3: 12px; --s4: 16px;
  --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px;
  --radius: 10px;
  --radius-sm: 7px;
  --maxw: 1120px;

  /* ── motion ── */
  --t-fast: 140ms; --t-mid: 180ms; --t-stamp: 120ms;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}

/* ---- Reset / base -------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-ui);
  font-size: var(--step-0);
  line-height: 1.55;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3 { line-height: 1.14; margin: 0; text-wrap: balance; letter-spacing: -0.01em; }
p { margin: 0; }
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 2px; }
::selection { background: var(--primary-tint); color: var(--primary-deep); }

code, .mono, .tnum, .num {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}
.muted { color: var(--ink-3); }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
  border-radius: 3px;
}

/* ---- Skip link ----------------------------------------------------------- */
.skip-link {
  position: absolute; left: var(--s4); top: -48px; z-index: 100;
  background: var(--primary-deep); color: var(--primary-ink);
  padding: var(--s2) var(--s4); border-radius: var(--radius-sm);
  font-weight: 600; transition: top var(--t-fast) var(--ease-out);
}
.skip-link:focus { top: var(--s2); }

/* ============================================================================
   SHELL — slim ink-teal header bar, quiet footer with permanent FMCSA attribution
   ============================================================================ */
.site-header {
  position: sticky; top: 0; z-index: 40;
  background: var(--primary-deep);
  color: var(--primary-ink);
  border-bottom: 1px solid color-mix(in oklch, var(--primary-deep), black 14%);
}
.site-header__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: flex; align-items: center; gap: var(--s4);
  padding: 0 var(--s5); height: 60px;
}
.brand { display: inline-flex; align-items: center; gap: var(--s3); color: inherit; }
.brand:hover { text-decoration: none; color: inherit; }
.brand__logo { display: block; flex: none; color: var(--primary-ink); }
.brand__name {
  font-size: 1.18rem; font-weight: 600; letter-spacing: -0.015em; line-height: 1;
}
.brand__name b { font-weight: 800; }
.tagline {
  margin-left: auto;
  font-size: var(--step--1);
  color: color-mix(in oklch, var(--primary-ink), transparent 28%);
  font-variant: small-caps; letter-spacing: 0.04em;
}
@media (max-width: 540px) { .tagline { display: none; } }

.content {
  max-width: var(--maxw); margin: 0 auto;
  padding: var(--s7) var(--s5) var(--s8);
}

.site-footer {
  border-top: 1px solid var(--line);
  background: var(--surface);
  margin-top: var(--s8);
}
.site-footer .attribution {
  max-width: var(--maxw); margin: 0 auto;
  padding: var(--s5);
  font-size: var(--step--1); color: var(--ink-2); line-height: 1.6;
}
.site-footer .attribution strong { color: var(--ink); }
.site-footer .as-of {
  max-width: var(--maxw); margin: 0 auto;
  padding: 0 var(--s5) var(--s5);
  font-size: var(--step--1); color: var(--ink-3);
}
.site-footer .as-of.muted { color: var(--ink-3); }

/* ============================================================================
   PANELS — flat white on paper, 1px line, one radius system. No nested cards.
   ============================================================================ */
.card, .panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  margin: var(--s5) 0;
  overflow: clip;
}
.section__head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: var(--s4); flex-wrap: wrap;
  padding: var(--s4) var(--s5);
  border-bottom: 1px solid var(--line);
}
.section__head h2 {
  font-size: var(--step-1); font-weight: 700;
  display: inline-flex; align-items: baseline; gap: var(--s2); flex-wrap: wrap;
}
.section__head h2 .count { font-size: 0.82em; }
.section__sub { font-size: 0.7em; font-weight: 600; color: var(--ink-3); }
.section__body { padding: var(--s5); }
.count {
  font-family: var(--font-mono); font-size: 0.82em; font-weight: 600;
  color: var(--ink-2); background: var(--surface-sunk);
  border: 1px solid var(--line); border-radius: 999px;
  padding: 1px 9px;
}
.count.is-zero { color: var(--ink-3); }

/* ============================================================================
   VERDICT SYSTEM — four states, three channels (color + shape + word).
   Production levels: go | caution | nogo | insufficient | unavailable
   mapped onto the comp verdict palette (go / vet / avoid / unk).
   ============================================================================ */
.verdict-hero--go         { --v: var(--go);    --v-ink: var(--go-ink);    --v-wash: var(--go-wash);    --v-line: var(--go-line); }
.verdict-hero--caution    { --v: var(--vet);   --v-ink: var(--vet-ink);   --v-wash: var(--vet-wash);   --v-line: var(--vet-line); }
.verdict-hero--nogo       { --v: var(--avoid); --v-ink: var(--avoid-ink); --v-wash: var(--avoid-wash); --v-line: var(--avoid-line); }
.verdict-hero--insufficient,
.verdict-hero--unavailable{ --v: var(--unk);   --v-ink: var(--unk-ink);   --v-wash: var(--unk-wash);   --v-line: var(--unk-line); }

/* the verdict hero = a stamped, wash-filled ticket */
.verdict-hero {
  position: relative;
  background: var(--v-wash);
  border: 2px solid var(--v);
  border-radius: var(--radius);
  padding: var(--s5) var(--s6);
  margin: 0 0 var(--s6);
  overflow: visible; /* ponytail: override .card overflow:clip — the stamped mark is rotated and casts a shadow */
  box-shadow: 0 1px 0 var(--line), 0 14px 40px -28px color-mix(in oklch, var(--v), transparent 30%);
}
.verdict-hero--insufficient, .verdict-hero--unavailable { border-style: dashed; }
/* long verdict words shrink so the stamped ticket never overflows */
.verdict-hero--insufficient .verdict-mark,
.verdict-hero--unavailable .verdict-mark { font-size: clamp(1.5rem, 1.1rem + 2vw, 2.4rem); }
.verdict-hero__top {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--s4); margin-bottom: var(--s4); flex-wrap: wrap;
}
.verdict-hero__carrier {
  font-size: var(--step-1); font-weight: 700; letter-spacing: -0.015em;
}
.verdict-hero__call { display: flex; align-items: center; gap: var(--s5); }

/* the stamped ticket: icon + word, double frame, slight rotation */
.verdict-mark {
  flex: none; display: inline-flex; align-items: center; gap: var(--s3);
  padding: var(--s3) var(--s5);
  background: var(--surface);
  color: var(--v-ink);
  border: 2px solid var(--v);
  border-radius: var(--radius-sm);
  box-shadow: inset 0 0 0 2px var(--surface), inset 0 0 0 4px var(--v);
  transform: rotate(-1.4deg);
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--step-4);
  line-height: 0.9;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--v);
  animation: verdict-stamp var(--t-stamp) var(--ease-out) both;
}
.verdict-mark::before {
  content: ""; width: 38px; height: 38px; flex: none;
  background: var(--v);
  -webkit-mask: center / contain no-repeat;
  mask: center / contain no-repeat;
}
.verdict-mark--go::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.6' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M7.5 12.5 10.5 15.5 16.5 8.5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.6' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M7.5 12.5 10.5 15.5 16.5 8.5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.verdict-mark--caution::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 21.5 20H2.5Z' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M12 9v4.5M12 16.6v.1' stroke='%23000' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 21.5 20H2.5Z' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M12 9v4.5M12 16.6v.1' stroke='%23000' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}
.verdict-mark--nogo::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 3 16 3 21 8 21 16 16 21 8 21 3 16 3 8Z' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M8.5 12h7' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 3 16 3 21 8 21 16 16 21 8 21 3 16 3 8Z' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M8.5 12h7' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
}
.verdict-mark--insufficient::before,
.verdict-mark--unavailable::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.6' fill='none' stroke='%23000' stroke-width='2' stroke-dasharray='3.6 3'/%3E%3Cpath d='M9.4 9.6a2.6 2.6 0 1 1 3.6 2.2c-.8.5-1 1-1 1.7' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M12 16.2v.1' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.6' fill='none' stroke='%23000' stroke-width='2' stroke-dasharray='3.6 3'/%3E%3Cpath d='M9.4 9.6a2.6 2.6 0 1 1 3.6 2.2c-.8.5-1 1-1 1.7' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M12 16.2v.1' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}
.verdict-hero--insufficient .verdict-mark,
.verdict-hero--unavailable .verdict-mark { border-style: dashed; }

@keyframes verdict-stamp {
  from { opacity: 0; transform: rotate(-3deg) scale(0.985); }
  to   { opacity: 1; transform: rotate(-1.4deg) scale(1); }
}

.verdict-hero__reason { min-width: 0; }
.verdict-hero__question {
  font-size: var(--step--1); color: var(--ink-2); font-weight: 600; margin-bottom: 2px;
}
.verdict-hero__why {
  font-size: var(--step-1); font-weight: 600; color: var(--ink); max-width: 52ch;
}

/* evidence chips strip */
.verdict-hero__chips { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s5); }

.evidence-chip {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--step--1); font-weight: 600;
  padding: 4px 10px; border-radius: 999px;
  background: var(--surface); border: 1px solid var(--line); color: var(--ink-2);
  line-height: 1.4;
}
.evidence-chip__dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: none; }
.evidence-chip__icon { width: 12px; height: 12px; flex: none; }
.evidence-chip__label { color: var(--ink-2); }
.evidence-chip__value { font-family: var(--font-mono); font-variant-numeric: tabular-nums; color: var(--ink); }

.evidence-chip--go      { color: var(--go-ink);    border-color: var(--go-line);    background: var(--go-wash); }
.evidence-chip--go .evidence-chip__icon { color: var(--go); }
.evidence-chip--go .evidence-chip__dot { background: var(--go); }
.evidence-chip--caution { color: var(--vet-ink);   border-color: var(--vet-line);   background: var(--vet-wash); }
.evidence-chip--caution .evidence-chip__icon { color: var(--vet); }
.evidence-chip--caution .evidence-chip__dot { background: var(--vet); }
.evidence-chip--nogo    { color: var(--avoid-ink); border-color: var(--avoid-line); background: var(--avoid-wash); }
.evidence-chip--nogo .evidence-chip__icon { color: var(--avoid); }
.evidence-chip--nogo .evidence-chip__dot { background: var(--avoid); }
.evidence-chip--neutral .evidence-chip__dot { background: var(--ink-3); }

/* honesty footer inside the stamp */
.verdict-hero__honesty {
  margin-top: var(--s5); padding-top: var(--s4);
  border-top: 1px dashed var(--v-line);
  font-size: var(--step--1); color: var(--ink-2);
}
.verdict-hero__honesty strong { color: var(--ink); }
.verdict-hero__disclaimer { }
.verdict-hero__info { margin-top: var(--s2); }
.verdict-hero__info summary,
.provenance-details summary { cursor: pointer; color: var(--primary); font-weight: 600; }
.info-i {
  display: inline-grid; place-items: center; width: 1.1em; height: 1.1em;
  border-radius: 50%; background: var(--primary-tint); color: var(--primary-deep);
  font-size: 0.9em; font-weight: 700; font-style: normal; margin-right: 4px;
}
.verdict-hero__positioning { margin-top: var(--s2); color: var(--ink-3); }

/* heuristic badge — visibly distinct from FMCSA source */
.heuristic-badge {
  display: inline-flex; align-items: center; flex: none;
  font-size: var(--step--1); font-weight: 600; letter-spacing: 0.01em;
  color: var(--ink-2); background: var(--surface);
  border: 1px solid var(--line); border-radius: 999px;
  padding: 3px 11px; white-space: nowrap;
}
.heuristic-badge--sm { font-size: 0.66rem; padding: 2px 8px; }
.heuristic-badge--onhero {
  color: var(--ink); background: color-mix(in oklch, var(--surface), var(--v-wash) 40%);
  border-color: var(--v-line);
}

/* ============================================================================
   RESULT PAGE — spine: result-head / verdict / narrative / reasoning / proof
   ============================================================================ */
.result-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--s4); margin-bottom: var(--s5); flex-wrap: wrap;
}
.back {
  display: inline-flex; align-items: center; gap: 6px;
  font-weight: 600; font-size: var(--step--1);
  color: var(--ink-2); background: var(--surface);
  border: 1px solid var(--line); border-radius: 999px;
  padding: 5px 12px 5px 10px;
}
.back:hover { color: var(--primary); border-color: var(--primary); text-decoration: none; }
.queried-dot { font-size: var(--step--1); color: var(--ink-2); }
.queried-dot strong { font-family: var(--font-mono); color: var(--ink); font-weight: 600; }
.queried-dot .muted { color: var(--ink-3); }

/* derived narrative */
.derived-summary {
  background: var(--primary-tint);
  border: 1px solid color-mix(in oklch, var(--primary-tint), var(--primary) 16%);
  border-radius: var(--radius); padding: var(--s4) var(--s5);
  margin: var(--s5) 0;
}
.derived-summary__label {
  font-size: var(--step--1); font-weight: 700; letter-spacing: 0.04em;
  text-transform: uppercase; color: var(--primary-deep); margin-bottom: var(--s2);
}
.derived-summary__prose { color: var(--ink); max-width: 70ch; }
.derived-summary__source { font-size: var(--step--1); color: var(--ink-3); margin-top: var(--s2); }

/* reasoning grid — lens (1fr) + sub-verdicts (360px), stacked on mobile */
.reasoning-grid { display: grid; grid-template-columns: 1fr; gap: var(--s5); }
@media (min-width: 900px) {
  .reasoning-grid { grid-template-columns: 1fr 360px; align-items: start; }
}
.reasoning-grid > * { min-width: 0; }

/* vetting lens */
.vetting-lens { margin: 0; }
.vetting-lens__sub { font-size: var(--step--1); color: var(--ink-3); margin-top: 2px; }
.lens-list { list-style: none; margin: 0; padding: 0; }

/* verdict tint per lens item (sets --v for dot + state pill) */
.lens-item--go         { --v: var(--go);    --v-ink: var(--go-ink);    --v-wash: var(--go-wash);    --v-line: var(--go-line); }
.lens-item--caution    { --v: var(--vet);   --v-ink: var(--vet-ink);   --v-wash: var(--vet-wash);   --v-line: var(--vet-line); }
.lens-item--nogo       { --v: var(--avoid); --v-ink: var(--avoid-ink); --v-wash: var(--avoid-wash); --v-line: var(--avoid-line); }
.lens-item--insufficient,
.lens-item--unavailable{ --v: var(--unk);   --v-ink: var(--unk-ink);   --v-wash: var(--unk-wash);   --v-line: var(--unk-line); }

.lens-item {
  display: grid; grid-template-columns: 22px 1fr; gap: var(--s3);
  padding: var(--s4) var(--s5); border-top: 1px solid var(--line); align-items: start;
}
.lens-item:first-child { border-top: 0; }
.lens-item__dot {
  width: 18px; height: 18px; margin-top: 2px; flex: none; background: var(--v);
  border: 1.5px solid var(--v);
}
.lens-item--go .lens-item__dot { border-radius: 50%; }
.lens-item--caution .lens-item__dot {
  border-radius: 0; clip-path: polygon(50% 0, 100% 100%, 0 100%);
  border: 0;
}
.lens-item--nogo .lens-item__dot {
  border-radius: 0; clip-path: polygon(30% 0, 70% 0, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0 70%, 0 30%);
  border: 0;
}
.lens-item--insufficient .lens-item__dot,
.lens-item--unavailable .lens-item__dot { border-radius: 50%; border-style: dashed; background: transparent; }
.lens-item__body { min-width: 0; }
.lens-item__head {
  display: flex; align-items: center; gap: var(--s2); margin-bottom: 2px; flex-wrap: wrap;
}
.lens-item__label { font-weight: 700; font-size: var(--step-0); }
.lens-item__state {
  display: inline-flex; align-items: center;
  font-size: var(--step--1); font-weight: 700; letter-spacing: 0.01em;
  padding: 2px 9px; border-radius: 999px;
  background: var(--v-wash); color: var(--v-ink); border: 1px solid var(--v-line);
  white-space: nowrap;
}
.lens-item--insufficient .lens-item__state,
.lens-item--unavailable .lens-item__state { border-style: dashed; }
.state--go         { --v: var(--go);    --v-ink: var(--go-ink);    --v-wash: var(--go-wash);    --v-line: var(--go-line); }
.state--caution    { --v: var(--vet);   --v-ink: var(--vet-ink);   --v-wash: var(--vet-wash);   --v-line: var(--vet-line); }
.state--nogo       { --v: var(--avoid); --v-ink: var(--avoid-ink); --v-wash: var(--avoid-wash); --v-line: var(--avoid-line); }
.state--insufficient,
.state--unavailable{ --v: var(--unk);   --v-ink: var(--unk-ink);   --v-wash: var(--unk-wash);   --v-line: var(--unk-line); }
.lens-item__fact { font-size: var(--step-0); color: var(--ink-2); }
.lens-item__proof { margin-top: var(--s2); }
.lens-item__proof summary { font-size: var(--step--1); color: var(--primary); cursor: pointer; font-weight: 600; }
.lens-item__proof p { font-size: var(--step--1); color: var(--ink-3); margin-top: var(--s2); }
.lens-item__proof code { color: var(--ink-2); }
@media (max-width: 520px) { .lens-item { grid-template-columns: 1fr; } .lens-item__dot { display: none; } }

/* sub-verdicts */
.reasoning-grid__subverdicts { display: flex; flex-direction: column; gap: var(--s4); }
.sub-verdict {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius); overflow: hidden;
}
.sub-verdict--go         { --v: var(--go);    --v-ink: var(--go-ink);    --v-wash: var(--go-wash);    --v-line: var(--go-line); }
.sub-verdict--caution    { --v: var(--vet);   --v-ink: var(--vet-ink);   --v-wash: var(--vet-wash);   --v-line: var(--vet-line); }
.sub-verdict--nogo       { --v: var(--avoid); --v-ink: var(--avoid-ink); --v-wash: var(--avoid-wash); --v-line: var(--avoid-line); }
.sub-verdict--neutral    { --v: var(--ink-2); --v-ink: var(--ink-2);     --v-wash: var(--surface-sunk); --v-line: var(--line); }
.sub-verdict__head {
  display: flex; gap: var(--s3); justify-content: space-between;
  padding: var(--s4); align-items: start; flex-wrap: wrap;
}
.sub-verdict__claim { min-width: 0; }
.sub-verdict__title { font-size: var(--step-0); font-weight: 700; }
.sub-verdict__line { font-size: var(--step--1); color: var(--ink-2); margin-top: 2px; max-width: 40ch; }
.sub-verdict__tags { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: none; }

/* band pill (reuses verdict palette) */
.band {
  font-family: var(--font-mono); font-size: var(--step--1); font-weight: 700;
  padding: 2px 9px; border-radius: var(--radius-sm);
  background: var(--v-wash, var(--surface-sunk)); color: var(--v-ink, var(--ink-2));
  border: 1px solid var(--v-line, var(--line));
  white-space: nowrap;
}
.band-sm { font-size: 0.66rem; padding: 2px 8px; }
.band--go, .band--low, .band--iss-pass              { --v: var(--go);    --v-ink: var(--go-ink);    --v-wash: var(--go-wash);    --v-line: var(--go-line); }
.band--caution, .band--medium, .band--iss-optional,
.band--iss-elevated                                { --v: var(--vet);   --v-ink: var(--vet-ink);   --v-wash: var(--vet-wash);   --v-line: var(--vet-line); }
.band--nogo, .band--high, .band--iss-fail           { --v: var(--avoid); --v-ink: var(--avoid-ink); --v-wash: var(--avoid-wash); --v-line: var(--avoid-line); }
.band--neutral                                      { --v: var(--ink-2); --v-ink: var(--ink-2);     --v-wash: var(--surface-sunk); --v-line: var(--line); }

.sub-verdict__proof { border-top: 1px solid var(--line); }
.sub-verdict__proof summary {
  padding: var(--s3) var(--s4); cursor: pointer; font-size: var(--step--1);
  font-weight: 600; color: var(--primary); background: var(--surface-sunk);
}
.sub-verdict__body { padding: var(--s4); }
/* flatten nested .card inside sub-verdict / proof bodies (avoid card-in-card) */
.sub-verdict__body > .card,
.sub-verdict__body .derived-section,
.proof-section__body > .card,
.proof-section__body .derived-section {
  background: transparent; border: 0; box-shadow: none; margin: 0; overflow: visible;
}
.sub-verdict__body .section__body,
.proof-section__body .section__body { padding: 0; }

/* derived metrics dl + crash sub-signal */
.derived-metrics, .crash-subsignal dl {
  display: grid; grid-template-columns: 1fr auto; gap: 2px var(--s4); margin: 0;
}
.derived-metrics dt, .crash-subsignal dt {
  color: var(--ink-2); font-size: var(--step--1); padding: 5px 0;
  border-bottom: 1px dotted var(--line);
}
.derived-metrics dd, .crash-subsignal dd {
  margin: 0; font-family: var(--font-mono); font-variant-numeric: tabular-nums;
  text-align: right; padding: 5px 0; border-bottom: 1px dotted var(--line); color: var(--ink);
}
.crash-subsignal { margin-top: var(--s4); }
.crash-subsignal h3 { font-size: var(--step--1); font-weight: 700; color: var(--ink-2); margin-bottom: var(--s2); text-transform: uppercase; letter-spacing: 0.03em; }

/* FMCSA source figures (safety rating / crash rate) — labeled as FMCSA's own */
.fmcsa-figures { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); margin-top: var(--s4); }
.fmcsa-figure {
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: var(--s3); background: var(--surface);
}
.fmcsa-figure__label { display: block; font-size: var(--step--1); color: var(--ink-3); }
.fmcsa-figure__value { font-family: var(--font-mono); font-weight: 700; font-size: var(--step-1); color: var(--ink); }
@media (max-width: 480px) { .fmcsa-figures { grid-template-columns: 1fr; } }

.iss-not-fmcsa {
  font-size: var(--step--1); color: var(--ink-2); background: var(--surface-sunk);
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: var(--s3); margin-bottom: var(--s3);
}
.iss-not-fmcsa strong { color: var(--ink); }
.iss-band__grade { margin-bottom: var(--s3); }
.iss-band__grade .band { font-size: var(--step-0); padding: 4px 12px; }

.not-fraud {
  font-size: var(--step--1); color: var(--ink-2); background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: var(--s3); margin-bottom: var(--s3);
}
.not-fraud strong { color: var(--ink); }

/* identity associations */
.assoc-summary { font-size: var(--step-0); color: var(--ink); margin-bottom: var(--s3); }
.assoc-summary--unique { color: var(--go-ink); }
.assoc-summary strong { color: var(--ink); }
.assoc-list { list-style: none; margin: 0 0 var(--s3); padding: 0; }
.assoc-field {
  display: grid; grid-template-columns: 160px 1fr; gap: var(--s3);
  padding: 6px 0; border-bottom: 1px dotted var(--line); font-size: var(--step--1);
}
.assoc-field__name { color: var(--ink); font-weight: 600; }
.assoc-field__state { color: var(--ink-2); }
.assoc-field__state--risk { color: var(--avoid-ink); font-weight: 600; }
.assoc-field__state--strength { color: var(--go-ink); font-weight: 600; }
.assoc-field__state--context { color: var(--ink-3); }
.kind--strength { color: var(--go-ink); font-weight: 600; }
.assoc-counts { color: var(--ink-3); font-size: var(--step--1); }

/* derived state banners (unavailable / insufficient) */
.derived-state {
  border-radius: var(--radius-sm); padding: var(--s3) var(--s4);
  margin-bottom: var(--s4); font-size: var(--step--1);
  border: 1px solid var(--line); background: var(--surface-sunk);
}
.derived-state strong { color: var(--ink); }
.derived-state .muted { color: var(--ink-2); margin-top: 2px; }
.derived-state--unavailable { border-color: var(--avoid-line); background: var(--avoid-wash); }
.derived-state--unavailable strong { color: var(--avoid-ink); }
.derived-state--insufficient { border-color: var(--unk-line); background: var(--unk-wash); border-style: dashed; }
.derived-state--insufficient strong { color: var(--unk-ink); }

/* findings appendix */
.findings-appendix {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius); margin: var(--s6) 0;
}
.findings-appendix > summary { padding: var(--s4) var(--s5); cursor: pointer; font-weight: 700; }
.findings-appendix > summary .count { margin-left: var(--s2); }

/* findings cards grid */
.cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--s5); }
.card-group { min-width: 0; }
.card-group__title {
  font-size: var(--step--1); font-weight: 700; color: var(--ink-2);
  text-transform: uppercase; letter-spacing: 0.04em; margin: 0 0 var(--s2);
}
.card-group__n {
  font-family: var(--font-mono); color: var(--ink-3); font-weight: 600;
}
.card-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s2); }
.finding-card {
  display: grid; grid-template-columns: 14px 1fr; gap: var(--s2);
  padding: var(--s3); border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: var(--surface);
}
.finding-card__dot { width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; background: var(--ink-3); }
.finding-card--risk_factor { --v: var(--avoid); }
.finding-card--risk_factor .finding-card__dot { background: var(--avoid); }
.finding-card--strength { --v: var(--go); }
.finding-card--strength .finding-card__dot { background: var(--go); }
.finding-card--context .finding-card__dot { background: var(--ink-3); }
.finding-card__head { display: flex; align-items: baseline; gap: var(--s2); flex-wrap: wrap; }
.finding-card__title { font-weight: 700; font-size: var(--step--1); color: var(--ink); }
.finding-card__kind { font-size: 0.66rem; font-weight: 700; color: var(--ink-3); text-transform: uppercase; letter-spacing: 0.03em; }
.finding-card__kind.kind--strength { color: var(--go-ink); }
.kind--risk_factor { color: var(--avoid-ink); }
.finding-card__detail { font-size: var(--step--1); color: var(--ink-2); margin-top: 2px; }
.finding-card__meta { display: flex; gap: var(--s2); flex-wrap: wrap; margin-top: var(--s2); align-items: center; }
.finding-card__fields { font-size: var(--step--1); }

/* ============================================================================
   PROOF TIER — the raw federal record in recessed wells
   ============================================================================ */
.proof-tier-divider {
  display: flex; align-items: center; gap: var(--s4);
  margin: var(--s8) 0 var(--s4);
}
.proof-tier-divider__rule { flex: 1; height: 1px; background: var(--line-strong); }
.proof-tier-divider h2 {
  font-size: var(--step-1); white-space: nowrap; color: var(--ink); font-weight: 700;
}
.proof-tier-intro { font-size: var(--step--1); color: var(--ink-3); margin-bottom: var(--s5); }
.proof-tier { display: flex; flex-direction: column; gap: var(--s4); }
.proof-section {
  background: var(--surface-sunk); border: 1px solid var(--line);
  border-radius: var(--radius);
}
.proof-section > summary {
  padding: var(--s4) var(--s5); cursor: pointer; font-weight: 700;
  display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap;
  font-size: var(--step-0);
}
.proof-section__hint { font-weight: 400; font-size: var(--step--1); color: var(--ink-3); }
.proof-section__body { padding: 0 var(--s5) var(--s5); }

/* carrier profile (proof + standalone) */
.profile { margin: 0; }
.profile__hero { padding: var(--s4) 0; }
.profile__name {
  font-size: var(--step-2); font-weight: 700; letter-spacing: -0.015em; line-height: 1.12;
}
.dba { margin: var(--s2) 0 0; color: var(--ink-2); font-size: var(--step-0); }
.dba b { color: var(--ink); font-weight: 600; }
.profile__meta { margin-top: var(--s3); display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); }
.status-label { color: var(--ink-3); font-size: var(--step--1); font-weight: 600; }

/* operating-status chip — reflects the genuine status_code only */
.chip {
  display: inline-flex; align-items: center; gap: 6px;
  font-weight: 650; font-size: var(--step--1); line-height: 1;
  padding: 5px 10px; border-radius: 999px;
  border: 1px solid transparent;
}
.chip__dot { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.chip .raw-code { font-family: var(--font-mono); font-weight: 600; font-size: 0.82em; opacity: .8; }
.chip--active   { color: var(--go-ink);    background: var(--go-wash);    border-color: var(--go-line); }
.chip--active   .chip__dot { background: var(--go); }
.chip--inactive { color: var(--ink-2);     background: var(--surface-sunk); border-color: var(--line); }
.chip--inactive .chip__dot { background: var(--ink-3); }
.chip--unknown  { color: var(--vet-ink);   background: var(--vet-wash);   border-color: var(--vet-line); }
.chip--unknown  .chip__dot { background: var(--vet); }

/* profile groups grid */
.profile-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(15.5rem, 1fr));
  gap: var(--s5) var(--s6); padding-top: var(--s5);
}
.group { min-width: 0; }
.group h3 {
  margin: 0 0 var(--s2); font-size: var(--step--1); font-weight: 700;
  letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-3);
  padding-bottom: var(--s2); border-bottom: 1px solid var(--line);
}
.group dl {
  display: grid; grid-template-columns: minmax(7rem, auto) 1fr;
  gap: 4px var(--s4); margin: 0; align-items: baseline;
}
.group dt { color: var(--ink-2); font-size: var(--step--1); }
.group dd { margin: 0; color: var(--ink); font-weight: 500; overflow-wrap: anywhere; }
.group address { font-style: normal; color: var(--ink); font-weight: 500; line-height: 1.6; }
.group ul { margin: 0; padding: 0; list-style: none; }
.group ul li {
  position: relative; padding-left: var(--s3); color: var(--ink); font-weight: 500;
  margin-bottom: 4px;
}
.group ul li::before {
  content: ""; position: absolute; left: 0; top: .58em;
  width: 5px; height: 5px; border-radius: 50%; background: var(--primary);
}
.note {
  font-size: var(--step--1); color: var(--ink-2); margin: var(--s2) 0 0;
  padding: var(--s2) var(--s3); background: var(--surface-sunk);
  border-radius: var(--radius-sm); line-height: 1.5;
}
.group--safety h3 { color: var(--primary-deep); }
.rating-value { font-size: var(--step-1); font-weight: 700; color: var(--ink); }

/* ============================================================================
   LEDGER TABLES (proof tier, directory) — sticky head, hairline rows, no zebra
   ============================================================================ */
.table-wrap {
  overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin;
  border: 1px solid var(--line); border-radius: var(--radius-sm);
}
.section .table-wrap { max-height: 30rem; overflow-y: auto; }
table { width: 100%; border-collapse: collapse; font-size: var(--step--1); }
thead th {
  position: sticky; top: 0; z-index: 1;
  background: var(--surface);
  text-align: left; font-weight: 700; color: var(--ink-2);
  font-size: var(--step--1); letter-spacing: 0;
  padding: var(--s2) var(--s3);
  border-bottom: 1.5px solid var(--line-strong);
  white-space: nowrap;
}
tbody td {
  padding: var(--s2) var(--s3); white-space: nowrap;
  border-bottom: 1px solid var(--line); color: var(--ink);
}
tbody tr:last-child td { border-bottom: 0; }
td.num, td.mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; text-align: left; }
td .hot-warn, .hot-warn  { color: var(--vet-ink); font-weight: 700; }
td .hot-alert, .hot-alert { color: var(--avoid-ink); font-weight: 700; }
.crash-carrier-name { font-weight: 600; color: var(--ink); }
.flag-y { color: var(--avoid-ink); font-weight: 650; }
.no-id-flag { color: var(--ink-3); }
.basic-summary { }

/* empty-state rows */
.empty-state {
  display: flex; align-items: center; gap: var(--s2);
  color: var(--ink-3); font-size: var(--step-0);
  padding: var(--s4) 0;
}
.empty-state svg { flex: none; color: var(--ink-3); }

/* provenance + source notes */
.provenance {
  font-size: var(--step--1); color: var(--ink-3); margin: var(--s3) 0 0;
  line-height: 1.55;
}
.provenance code, .provenance-note code {
  font-family: var(--font-mono); font-size: 0.92em; color: var(--ink-2);
  background: var(--surface); border: 1px solid var(--line);
  padding: 0 4px; border-radius: 4px;
}
.provenance strong { color: var(--ink-2); }
.provenance-note { font-size: var(--step--1); color: var(--ink-3); margin-top: var(--s3); }
.provenance-note summary { cursor: pointer; color: var(--primary); font-weight: 600; }
.provenance-note dl { display: grid; grid-template-columns: auto 1fr; gap: 2px var(--s4); margin: var(--s2) 0 0; }
.provenance-note dt { color: var(--ink-3); font-size: var(--step--1); }
.provenance-note dd { margin: 0; color: var(--ink-2); font-size: var(--step--1); }
.provenance-details { margin-top: var(--s3); font-size: var(--step--1); }
.provenance-details summary { color: var(--primary); font-weight: 600; }

/* ============================================================================
   STATE PANELS (empty / too-broad / not-found / unavailable / capped)
   ============================================================================ */
.state-card {
  display: flex; gap: var(--s4); padding: var(--s5);
  border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--surface); align-items: flex-start;
  margin: var(--s5) 0;
}
.state-card__icon {
  flex: none; width: 40px; height: 40px; display: grid; place-items: center;
  border-radius: var(--radius-sm); background: var(--surface-sunk); color: var(--ink-2);
}
.state-card__body { min-width: 0; }
.state-card h2 { font-size: var(--step-1); margin-bottom: var(--s2); }
.state-card p { color: var(--ink-2); font-size: var(--step-0); max-width: 65ch; }
.state-card p + p { margin-top: var(--s2); }
.state-card .muted { color: var(--ink-3); font-size: var(--step--1); }
.state-card a { font-weight: 600; }
.state-card--notfound .state-card__icon { color: var(--ink-2); }
.state-card--unavailable { border-color: var(--avoid-line); background: var(--avoid-wash); }
.state-card--unavailable .state-card__icon { background: var(--surface); color: var(--avoid-ink); }
.state-card--unavailable h2, .state-card--unavailable p { color: var(--avoid-ink); }
.state-card--too-broad { border-color: var(--vet-line); background: var(--vet-wash); }
.state-card--too-broad .state-card__icon { color: var(--vet-ink); background: var(--surface); }
.state-card--too-broad h2, .state-card--too-broad p { color: var(--vet-ink); }
.state-card--empty .state-card__icon { color: var(--ink-3); }
.state-card--capped .state-card__icon { color: var(--ink-2); }
.capped-note { color: var(--ink); font-size: var(--step-0); }
.capped-note strong { color: var(--ink); }

/* inline section unavailable */
.section .state.unavailable, .section .unavailable {
  display: flex; gap: var(--s2); align-items: flex-start;
  margin: var(--s3) 0; padding: var(--s3) var(--s4);
  background: var(--avoid-wash); border: 1px solid var(--avoid-line);
  border-radius: var(--radius-sm); color: var(--avoid-ink); font-size: var(--step--1);
}
.section .state.unavailable p, .section .unavailable p { margin: 0; }
.state__icon { flex: none; }

/* ============================================================================
   HOME — worksheet entry card + instrument keypad lookup + source-totals strip
   ============================================================================ */
.home-hero { max-width: 760px; margin: 0 auto; }
/* drop the icon-eyebrow above the home heading (approved v2 ban) */
.lookup__eyebrow { display: none; }
.home-hero h1 {
  font-family: var(--font-display); font-weight: 800;
  font-size: var(--step-3); letter-spacing: -0.015em;
}
.home-hero__pitch {
  font-size: var(--step-1); color: var(--ink-2); margin-top: var(--s4); max-width: 60ch;
}
.home-hero__pitch strong { color: var(--ink); }
.home-hero__pitch .vs { color: var(--ink-3); }

/* instrument keypad — shared .modeform vocabulary (home + search) */
.modeform {
  margin-top: var(--s6);
  background: var(--surface); border: 1px solid var(--line-strong);
  border-radius: var(--radius); padding: var(--s4);
  box-shadow: 0 1px 0 var(--line);
}
.home-hero .modeform { max-width: 100%; }
.modeform__row {
  display: grid; grid-template-columns: minmax(150px, auto) 1fr auto; gap: var(--s2);
}
.modeform select, .modeform input, .modeform button {
  font: inherit; padding: 12px 14px; border-radius: var(--radius-sm);
  border: 1px solid var(--line); background: var(--surface); color: var(--ink);
}
.modeform select { font-weight: 600; background: var(--surface-sunk); }
.modeform input { font-family: var(--font-mono); min-width: 0; }
.modeform input::placeholder { font-family: var(--font-ui); color: var(--ink-3); }
.modeform input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-tint); }
.modeform button {
  border: 0; background: var(--primary); color: var(--primary-ink);
  font-weight: 700; cursor: pointer; padding-inline: 22px; white-space: nowrap;
  transition: transform var(--t-fast) var(--ease-out), background var(--t-fast) var(--ease-out);
}
.modeform button:hover { background: var(--primary-deep); }
.modeform button:active { transform: scale(0.985); }
.modeform__address {
  margin-top: var(--s2); border: 0; padding: 0;
  display: grid; grid-template-columns: 80px 1fr 1fr; gap: var(--s2);
}
.modeform__address input { padding: 10px 12px; }
.modeform__help { font-size: var(--step--1); color: var(--ink-3); margin-top: var(--s3); }
.form-error {
  display: flex; gap: var(--s2); align-items: flex-start;
  color: var(--avoid-ink); font-weight: 600; font-size: var(--step--1);
  margin: var(--s3) 0 0; padding: var(--s3) var(--s4);
  background: var(--avoid-wash); border: 1px solid var(--avoid-line);
  border-radius: var(--radius-sm);
}

.examples {
  margin-top: var(--s4); font-size: var(--step--1); color: var(--ink-3);
  display: flex; gap: var(--s3); flex-wrap: wrap; align-items: center;
}
.examples a { font-weight: 600; }

/* source-totals strip — NOT four gradient stat cards */
.stat-callouts {
  margin-top: var(--s7); display: flex; flex-wrap: wrap;
  border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface);
}
.stat-callout { flex: 1 1 160px; padding: var(--s4) var(--s5); border-left: 1px solid var(--line); }
.stat-callout:first-child { border-left: 0; }
.stat-callout__value {
  font-family: var(--font-mono); font-weight: 700; font-size: var(--step-2);
  letter-spacing: -0.02em; color: var(--ink);
}
.stat-callout__label { font-size: var(--step--1); color: var(--ink-3); margin-top: 2px; }

.home-foot-nav { margin-top: var(--s6); display: flex; gap: var(--s5); font-weight: 600; flex-wrap: wrap; }

/* ============================================================================
   PAGE HEAD (search / directory / stats) — no icon-eyebrow
   ============================================================================ */
.page-head { margin-bottom: var(--s6); }
.page-head__eyebrow { display: none; }
.page-head h1 {
  font-family: var(--font-display); font-weight: 800;
  font-size: var(--step-2); letter-spacing: -0.015em;
}
.lede { font-size: var(--step-1); color: var(--ink-2); margin-top: var(--s2); max-width: 62ch; }

/* ============================================================================
   SEARCH / DIRECTORY RESULT ROWS
   ============================================================================ */
.search-page, .directory-page, .stats-page { max-width: 100%; }
.search-results { margin-top: var(--s5); }
.result-count {
  font-size: var(--step-0); color: var(--ink-2); margin: var(--s5) 0 var(--s3);
}
.result-count strong { font-family: var(--font-mono); color: var(--ink); font-weight: 700; }
.result-list {
  list-style: none; margin: 0; padding: 0;
  border: 1px solid var(--line); border-radius: var(--radius);
  overflow: hidden; background: var(--surface);
}
.result-row {
  padding: var(--s4) var(--s5); border-top: 1px solid var(--line);
  display: grid; grid-template-columns: 1fr auto; gap: var(--s2) var(--s4);
  align-items: start;
}
.result-row:first-child { border-top: 0; }
.result-row__head { grid-column: 1; display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; }
.result-row__name { font-weight: 700; font-size: var(--step-0); color: var(--ink); }
.result-row__name:hover { color: var(--primary); text-decoration: none; }
.result-row__dba { font-weight: 400; color: var(--ink-3); font-size: var(--step--1); margin-left: 6px; }
.result-row__meta {
  grid-column: 1; display: flex; gap: var(--s4); font-size: var(--step--1);
  color: var(--ink-2); flex-wrap: wrap;
}
.result-row__dot { font-family: var(--font-mono); }
.result-row__loc { }
/* the status chip sits at the row's right edge */
.result-row__head .evidence-chip { grid-column: 2; justify-self: end; }
.result-row .provenance-note { grid-column: 1 / -1; margin-top: var(--s2); }
.directory-pastend { margin-top: var(--s3); }

/* directory count + freshness bar */
.result-bar {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: var(--s4); margin: var(--s5) 0 var(--s3); flex-wrap: wrap;
}
.result-freshness { font-size: var(--step--1); color: var(--ink-3); }
.directory-results { margin-top: var(--s5); }

/* ============================================================================
   DIRECTORY — filter rail + pagination
   ============================================================================ */
.dir-filters {
  display: flex; flex-wrap: wrap; gap: var(--s5); align-items: flex-end;
  padding: var(--s4) var(--s5); background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--radius);
}
.dir-filter__group { display: flex; flex-direction: column; gap: var(--s2); }
.dir-filter__legend, .dir-filter__group > label {
  font-size: var(--step--1); font-weight: 700; color: var(--ink-2);
}
.dir-filter__state { flex-direction: row; align-items: flex-end; gap: var(--s2); }
.dir-filter__state select, .dir-filter__apply {
  font: inherit; padding: 8px 12px; border-radius: var(--radius-sm);
  border: 1px solid var(--line); background: var(--surface); color: var(--ink);
}
.dir-filter__apply {
  border: 0; background: var(--primary); color: var(--primary-ink);
  font-weight: 700; cursor: pointer;
}
.dir-filter__apply:hover { background: var(--primary-deep); }
.toggle-group { display: inline-flex; border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; }
.toggle-group__opt {
  padding: 7px 12px; font-size: var(--step--1); font-weight: 600; color: var(--ink-2);
  border-left: 1px solid var(--line);
}
.toggle-group__opt:first-child { border-left: 0; }
.toggle-group__opt:hover { background: var(--surface-sunk); text-decoration: none; }
.toggle-group__opt[aria-current="true"] { background: var(--primary); color: var(--primary-ink); }
.letter-strip { display: flex; flex-wrap: wrap; gap: 3px; }
.letter-strip__a {
  width: 26px; height: 26px; display: grid; place-items: center;
  font-size: var(--step--1); font-weight: 600; font-family: var(--font-mono);
  border: 1px solid var(--line); border-radius: 5px; color: var(--ink-2);
}
.letter-strip__a:hover { background: var(--surface-sunk); text-decoration: none; }
.letter-strip__a[aria-current="true"] { background: var(--primary); color: var(--primary-ink); border-color: var(--primary); }
.letter-strip__a--all { width: auto; padding: 0 10px; }

/* pagination */
.pagination {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--s4); margin-top: var(--s5); flex-wrap: wrap;
}
.pagination__link {
  font-weight: 600; font-size: var(--step--1);
  padding: 8px 14px; border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: var(--surface); color: var(--ink);
}
.pagination__link:hover { background: var(--surface-sunk); text-decoration: none; }
.pagination__link--disabled { color: var(--ink-3); border-style: dashed; pointer-events: none; }
.pagination__status { font-size: var(--step--1); color: var(--ink-2); font-family: var(--font-mono); }
.pagination__sep { color: var(--ink-3); margin: 0 5px; }

/* ============================================================================
   STATS — tiles, operation breakdown, crash feed, crash map
   ============================================================================ */
.stat-tiles {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--s4); margin-bottom: var(--s6);
}
.stat-tile {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius); padding: var(--s5);
}
.stat-tile__label { font-size: var(--step--1); font-weight: 700; color: var(--ink-2); }
.stat-tile__value {
  font-family: var(--font-mono); font-weight: 700; font-size: var(--step-3);
  letter-spacing: -0.02em; margin: var(--s2) 0; color: var(--ink);
}
.stat-tile--down { background: var(--surface-sunk); border-style: dashed; }
.stat-card { margin: var(--s5) 0; }

/* carriers-by-operation horizontal bar breakdown (instrument-neutral fill) */
.operation-breakdown { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s3); }
.operation-breakdown__item {
  display: grid; grid-template-columns: 200px 1fr auto; gap: var(--s4); align-items: center;
}
.operation-breakdown__op { font-size: var(--step--1); color: var(--ink-2); }
.operation-breakdown__track {
  height: 12px; background: var(--surface-sunk); border: 1px solid var(--line);
  border-radius: 999px; overflow: hidden;
}
.operation-breakdown__fill { display: block; height: 100%; background: var(--primary); }
.operation-breakdown__count {
  font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: 600; color: var(--ink);
}
@media (max-width: 560px) { .operation-breakdown__item { grid-template-columns: 1fr; gap: var(--s1); } }

/* 8-week recent-crashes feed */
.crash-feed__window {
  font-size: var(--step--1); color: var(--ink-2);
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.crash-feed__window svg { color: var(--ink-3); }
.crash-feed__predicate { font-family: var(--font-mono); color: var(--ink-3); }
.crash-feed__figures {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: var(--s3); margin: var(--s4) 0;
}
.crash-figure {
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: var(--s3); background: var(--surface);
}
.crash-figure dt { font-size: var(--step--1); color: var(--ink-3); }
.crash-figure dd {
  margin: 4px 0 0; font-family: var(--font-mono); font-weight: 700;
  font-size: var(--step-2); color: var(--ink);
}
.crash-figure--fatal dd { color: var(--avoid-ink); }
.crash-figure--injury dd { color: var(--vet-ink); }
.crash-feed__toggles { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; }
.crash-feed__toggles-label {
  font-size: var(--step--1); font-weight: 700; color: var(--ink-2); margin-right: var(--s1);
}
.crash-chip {
  font-size: var(--step--1); font-weight: 600; padding: 4px 11px;
  border: 1px solid var(--line); border-radius: 999px;
  color: var(--ink-2); background: var(--surface);
}
.crash-chip:hover { background: var(--surface-sunk); text-decoration: none; }
.crash-chip--active { background: var(--primary); color: var(--primary-ink); border-color: var(--primary); }

/* crash MAP — single instrument-teal sequential ramp */
.crash-map__panel { display: flex; flex-direction: column; gap: var(--s4); }
.crash-map__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(11, 1fr); gap: 4px; max-width: 720px;
}
.crash-map__cell {
  aspect-ratio: 1; border-radius: 5px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  border: 1px solid var(--line);
}
.crash-map__code { font-family: var(--font-mono); font-size: 0.62rem; font-weight: 700; line-height: 1; }
.crash-map__count { font-family: var(--font-mono); font-size: 0.62rem; line-height: 1.2; }
.crash-map__cell--shade0 { background: var(--surface-sunk); color: var(--ink-3); }
.crash-map__cell--shade1 { background: oklch(0.905 0.040 205); color: var(--ink); border-color: oklch(0.86 0.05 205); }
.crash-map__cell--shade2 { background: oklch(0.755 0.075 205); color: oklch(0.20 0.04 220); border-color: oklch(0.70 0.08 205); }
.crash-map__cell--shade3 { background: oklch(0.520 0.090 205); color: var(--primary-ink); border-color: oklch(0.46 0.09 205); }
.crash-map__legend { display: flex; align-items: center; gap: 6px; font-size: var(--step--1); color: var(--ink-3); flex-wrap: wrap; }
.crash-map__legend-label { font-weight: 600; color: var(--ink-2); margin-right: var(--s1); }
.crash-map__swatch { width: 22px; height: 14px; border-radius: 3px; border: 1px solid var(--line); }
.crash-map__legend-range { font-family: var(--font-mono); }

/* ============================================================================
   MOTION / ACCESSIBILITY
   ============================================================================ */
@media (prefers-reduced-motion: reduce) {
  .verdict-mark { transform: none; animation: none; }
  *, *::before, *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
@media print {
  .verdict-mark { transform: none; box-shadow: none; }
  .site-header { position: static; }
}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media (max-width: 640px) {
  .modeform__row { grid-template-columns: 1fr; }
  .modeform__address { grid-template-columns: 1fr; }
  .verdict-hero__call { flex-direction: column; align-items: flex-start; }
  .verdict-mark { font-size: clamp(1.8rem, 8vw, 2.4rem); }
  .result-row { grid-template-columns: 1fr; }
  .result-row__head .evidence-chip { grid-column: 1; justify-self: start; }
  .lens-item { grid-template-columns: 1fr; }
  .lens-item__dot { display: none; }
}
