/* Toll Bench board — dark page column inside the light Book of Houses rail shell.
   The start-home shell is a fixed-height app frame; this page needs document scroll. */
.toll-bench *, .toll-bench *::before, .toll-bench *::after { box-sizing: border-box; }
.start-home.toll-bench { height: auto; min-height: 100dvh; overflow: visible; }
.toll-bench .start-home__page { height: auto; min-height: 100dvh; overflow: visible; background: var(--color-dark-900, #030308); color: rgba(255, 255, 255, 0.85); }
.toll-bench .start-home__topbar.market-topbar { background: var(--color-black); border-bottom-color: rgba(255, 255, 255, 0.08); }
.toll-bench .market-brand { color: var(--color-white, #fff); }
.toll-bench .market-brand:hover { color: var(--accent-primary, #33e658); }
.toll-bench .market-nav__link { color: rgba(255, 255, 255, 0.65); }
.toll-bench .market-nav__link:hover,
.toll-bench .market-nav__link[aria-current="page"] { color: var(--color-white, #fff); }
.toll-bench .market-nav__sep { color: rgba(255, 255, 255, 0.35); }
.toll-bench .market-menu-toggle { color: var(--color-white, #fff); }
.toll-bench .market-menu:not([hidden]) { border-bottom-color: rgba(255, 255, 255, 0.08); }
.toll-bench .market-menu__link { color: rgba(255, 255, 255, 0.65); border-bottom-color: rgba(255, 255, 255, 0.08); }
.toll-bench .market-menu__link:hover { color: var(--color-white, #fff); }

.tb-topbar { display: flex; align-items: center; justify-content: flex-end; padding: var(--space-4) var(--space-6); border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.tb-topnav { display: flex; align-items: center; gap: var(--space-5); }
.tb-topnav > a:not(.tb-login) { color: rgba(255, 255, 255, 0.65); font-family: var(--font-heading); font-size: var(--text-sm); font-weight: var(--font-semibold); text-decoration: none; white-space: nowrap; }
.tb-topnav > a:not(.tb-login):hover { color: var(--color-white, #fff); }
.tb-topnav > a[aria-current="page"]:not(.tb-login) { color: var(--color-white, #fff); }
.tb-login { padding: var(--space-2) var(--space-4); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: var(--radius-full); color: var(--color-white, #fff); font-family: var(--font-heading); font-size: var(--text-sm); font-weight: var(--font-semibold); text-decoration: none; }


.tb-nav { position: sticky; top: 0; z-index: 5; display: flex; gap: var(--space-5); overflow-x: auto; padding: var(--space-3) var(--space-6); background: var(--color-dark-900, #030308); border-bottom: 1px solid rgba(255, 255, 255, 0.08); font-family: var(--font-heading); font-size: var(--text-xs); font-weight: var(--font-bold); letter-spacing: 0.09em; text-transform: uppercase; scrollbar-width: none; }
.tb-nav::-webkit-scrollbar { display: none; }
.tb-nav a { color: rgba(255, 255, 255, 0.55); text-decoration: none; white-space: nowrap; }
.tb-nav a:hover { color: var(--color-white, #fff); }

.tb-wrap { width: 100%; max-width: 880px; margin: 0 auto; padding: var(--space-6) var(--space-6) var(--space-16); }

.tb-intro p { font-family: var(--font-serif); font-size: var(--text-lg); line-height: 1.6; color: rgba(255, 255, 255, 0.9); margin: var(--space-4) 0; }
.tb-wordmark { font-family: var(--font-heading); font-size: var(--text-5xl); font-weight: var(--font-bold); line-height: 1.05; letter-spacing: -0.02em; color: var(--color-white, #fff); text-align: left; margin: 0 0 var(--space-4); }
.tb-ctas { display: flex; flex-wrap: wrap; gap: var(--space-3); margin: var(--space-5) 0; }
.tb-btn { display: inline-block; padding: var(--space-2) var(--space-5); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: var(--radius-full); background: transparent; color: var(--color-white, #fff); font-family: var(--font-heading); font-size: var(--text-sm); font-weight: var(--font-semibold); text-decoration: none; }
.tb-btn--primary { background: var(--accent-primary, #33e658); border-color: transparent; color: var(--color-black, #000); }

.tb-section { margin-top: var(--space-12); }
.tb-section h2 { font-family: var(--font-heading); font-size: var(--text-2xl); color: var(--color-white, #fff); margin: var(--space-1) 0 var(--space-3); }
.tb-section p, .tb-section li { line-height: 1.65; }
.tb-kicker { font-family: var(--font-heading); font-size: var(--text-xs); font-weight: var(--font-bold); letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent-primary, #33e658); margin: 0; }

.tb-free { display: inline-block; padding: 0 8px; border-radius: var(--radius-full); background: color-mix(in srgb, var(--accent-primary, #33e658) 18%, transparent); color: var(--accent-primary, #33e658); font-family: var(--font-heading); font-size: 0.68rem; font-weight: var(--font-bold); letter-spacing: 0.06em; text-transform: uppercase; vertical-align: 1px; }

.tb-status { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: var(--radius-full); font-family: var(--font-heading); font-size: var(--text-xs); font-weight: var(--font-bold); letter-spacing: 0.07em; text-transform: uppercase; color: rgba(255, 255, 255, 0.85); }
.tb-dot { color: var(--accent-primary, #33e658); font-size: 0.6rem; }

.tb-tabs { display: flex; gap: var(--space-2); margin: var(--space-4) 0 var(--space-2); flex-wrap: wrap; }
.tb-tab { padding: var(--space-1) var(--space-4); border: 1px solid transparent; border-radius: var(--radius-full); background: transparent; color: rgba(255, 255, 255, 0.6); font-family: var(--font-heading); font-size: var(--text-sm); font-weight: var(--font-semibold); cursor: pointer; }
.tb-tab.is-active { border-color: rgba(255, 255, 255, 0.25); color: var(--color-white, #fff); }

.tb-bands { display: flex; gap: var(--space-2); margin: var(--space-2) 0; flex-wrap: wrap; align-items: center; }
.tb-band { padding: var(--space-1) var(--space-4); border: 1px solid rgba(255, 255, 255, 0.18); border-radius: var(--radius-full); background: transparent; color: rgba(255, 255, 255, 0.75); font-family: var(--font-heading); font-size: var(--text-sm); font-weight: var(--font-semibold); cursor: pointer; }
.tb-band.is-active { border-color: var(--accent-primary, #33e658); color: var(--accent-primary, #33e658); }
.tb-band-caption { font-family: var(--font-serif); color: rgba(255, 255, 255, 0.6); font-size: var(--text-sm); margin: var(--space-2) 0 var(--space-4); }

.tb-tablewrap { overflow-x: auto; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: var(--radius-lg); background: var(--color-dark-800, #0a0e1a); }
.tb-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); min-width: 720px; }
.tb-table th { text-align: left; padding: var(--space-3) var(--space-3); font-family: var(--font-heading); font-size: 0.68rem; font-weight: var(--font-bold); letter-spacing: 0.07em; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); border-bottom: 1px solid rgba(255, 255, 255, 0.1); white-space: nowrap; }
.tb-table td { padding: var(--space-3); border-bottom: 1px solid rgba(255, 255, 255, 0.06); color: rgba(255, 255, 255, 0.85); vertical-align: top; }
.tb-table tr:last-child td { border-bottom: 0; }
.tb-empty td { text-align: center; font-family: var(--font-serif); font-style: italic; color: rgba(255, 255, 255, 0.55); padding: var(--space-8) var(--space-4); }
.tb-table--rubric { min-width: 560px; }
.tb-table--rubric td:first-child { white-space: nowrap; font-weight: var(--font-semibold); color: var(--color-white, #fff); }

.tb-note { font-size: var(--text-sm); color: rgba(255, 255, 255, 0.55); margin-top: var(--space-3); }
.tb-note a { color: var(--accent-primary, #33e658); }

.tb-steps { list-style: none; counter-reset: tbstep; padding: 0; margin: var(--space-4) 0 0; }
.tb-steps > li { counter-increment: tbstep; position: relative; padding: var(--space-4) 0 var(--space-4) var(--space-10); border-bottom: 1px dashed rgba(255, 255, 255, 0.12); }
.tb-steps > li:last-child { border-bottom: 0; }
.tb-steps > li::before { content: counter(tbstep); position: absolute; left: 0; top: var(--space-4); font-family: var(--font-heading); font-weight: var(--font-extrabold, 800); color: var(--accent-primary, #33e658); }
.tb-steps strong { color: var(--color-white, #fff); display: block; margin-bottom: var(--space-1); font-family: var(--font-heading); }

.tb-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--space-3); margin-top: var(--space-4); }
.tb-metric { padding: var(--space-4); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: var(--radius-lg); background: var(--color-dark-800, #0a0e1a); }
.tb-metric p { margin: var(--space-2) 0 0; font-size: var(--text-sm); color: rgba(255, 255, 255, 0.75); }
.tb-metric strong { color: var(--color-white, #fff); }
.tb-eq { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--accent-primary, #33e658); }

.tb-list { padding-left: var(--space-5); }
.tb-list li { margin: var(--space-2) 0; }

.tb-rail-toll { margin-top: auto; display: grid; justify-items: center; gap: 2px; padding: var(--space-2) var(--space-1); border: 1px solid var(--border-default); border-radius: var(--radius-lg); background: var(--surface-primary); color: var(--text-primary); font-family: var(--font-heading); font-size: 0.62rem; font-weight: var(--font-bold); letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; cursor: pointer; }
.tb-rail-toll svg { width: var(--size-5, 20px); height: var(--size-5, 20px); }
.tb-agent { color: var(--color-white, #fff); font-weight: var(--font-semibold); white-space: nowrap; }
.tb-model { font-family: var(--font-mono); font-size: 0.8rem; color: rgba(255, 255, 255, 0.6); }
.tb-pts { font-family: var(--font-mono); font-weight: 700; }
.tb-pts--pos { color: var(--accent-primary, #33e658); }
.tb-pts--neg { color: var(--color-red-400, #e66); }
.tb-specimen-note { margin: var(--space-3) 0; padding: var(--space-2) var(--space-4); border: 1px dashed rgba(255, 255, 255, 0.3); border-radius: var(--radius-lg); font-family: var(--font-heading); font-size: var(--text-xs); font-weight: var(--font-bold); letter-spacing: 0.05em; text-transform: uppercase; color: rgba(255, 255, 255, 0.65); }
.tb-tablewrap--specimen { border-style: dashed; }

@media (max-width: 720px) {
  .tb-topbar, .tb-nav { padding-left: var(--space-4); padding-right: var(--space-4); }
  .tb-wrap { padding: var(--space-4) var(--space-4) var(--space-12); }
  .tb-wordmark { font-size: var(--text-4xl); }
}

/* ── V-A8 row status label vocabulary (v1.1) ─────────────────────────────
   Reusable outcome-row chips. Same chip family as .tb-free; data wiring is V-B.
   Tokens only; on the dark board each hue is mixed over transparent.        */
.tb-legend { margin: var(--space-4) 0 var(--space-2); }
.tb-legend__lead { margin: 0 0 var(--space-3); color: rgba(255, 255, 255, 0.78); }
.tb-legend__foot { margin: var(--space-3) 0 0; color: rgba(255, 255, 255, 0.55); font-size: var(--text-sm); }
.tb-legend__set { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.tb-legend__set li { display: flex; align-items: baseline; gap: var(--space-3); color: rgba(255, 255, 255, 0.72); font-size: var(--text-sm); line-height: 1.5; flex-wrap: wrap; }

.tb-label { display: inline-block; padding: 0 8px; border-radius: var(--radius-full); font-family: var(--font-heading); font-size: 0.68rem; font-weight: var(--font-bold); letter-spacing: 0.06em; text-transform: uppercase; vertical-align: 1px; white-space: nowrap; }
.tb-label--provisional { background: color-mix(in srgb, var(--status-info) 20%, transparent); color: color-mix(in srgb, var(--status-info) 70%, #fff); }
.tb-label--official    { background: color-mix(in srgb, var(--status-success) 20%, transparent); color: color-mix(in srgb, var(--status-success) 65%, #fff); }
.tb-label--review      { background: color-mix(in srgb, var(--color-orange-500, #f59e0b) 22%, transparent); color: color-mix(in srgb, var(--color-orange-500, #f59e0b) 70%, #fff); }
.tb-label--invalid     { background: color-mix(in srgb, var(--status-error) 22%, transparent); color: color-mix(in srgb, var(--status-error) 72%, #fff); }
.tb-label--subsidy     { background: color-mix(in srgb, var(--accent-secondary, #0112f7) 24%, transparent); color: color-mix(in srgb, var(--accent-secondary, #0112f7) 55%, #fff); }
.tb-label--changed     { background: rgba(255, 255, 255, 0.12); color: rgba(255, 255, 255, 0.82); }
.tb-label--legacy      { background: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.6); }

/* ── V-B board wiring (V-B1/V-B2): live ledger tables, weekly tournament,
   specimen test-runs strip, observational rollups, dig-in links.
   Tokens only; extends the existing dark-board vocabulary above.          */
.tb-ci { color: rgba(255, 255, 255, 0.4); font-size: 0.66rem; font-family: var(--font-mono); }
.tb-table small { color: rgba(255, 255, 255, 0.4); font-size: 0.66rem; }

.tb-week { margin-top: var(--space-8); padding: var(--space-5); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: var(--radius-lg); background: var(--color-dark-800, #0a0e1a); }
.tb-week__head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-2); }
.tb-week .tb-tablewrap { margin-top: var(--space-3); }

.tb-testruns, .tb-rollups { margin-top: var(--space-10); }
.tb-testruns__h { font-family: var(--font-heading); font-size: var(--text-xl); color: var(--color-white, #fff); margin: var(--space-1) 0 var(--space-2); }
.tb-testruns .tb-tablewrap, .tb-rollups .tb-tablewrap { margin-top: var(--space-3); }
.tb-disclaimer { font-family: var(--font-serif); font-style: italic; color: rgba(255, 255, 255, 0.65); border-left: 2px solid var(--accent-primary, #33e658); padding-left: var(--space-3); }

.tb-digin { margin-top: var(--space-10); padding-top: var(--space-5); border-top: 1px solid rgba(255, 255, 255, 0.1); }
.tb-digin__set { list-style: none; margin: var(--space-3) 0 0; padding: 0; display: grid; gap: var(--space-2); }
.tb-digin__set a { color: var(--accent-primary, #33e658); text-decoration: none; font-family: var(--font-heading); font-size: var(--text-sm); font-weight: var(--font-semibold); }
.tb-digin__set a:hover { text-decoration: underline; }

/* a couple of label hues the specimen strip uses that were free/stale only */
.tb-agent .tb-label { margin-left: var(--space-2); vertical-align: 1px; }

/* Legacy Toll Bench companion pages still use this four-link header. */
@media (max-width: 520px) { .tb-topbar { padding-inline: var(--space-3); } .tb-topnav { gap: var(--space-1); } .tb-topnav > a:not(.tb-login) { font-size: var(--text-xs); } .tb-login { white-space: nowrap; font-size: var(--text-xs); padding-inline: var(--space-2); } }

/* ══ STATE OF THE TOLL — the front page (2026-07-29) ══════════════════════
   The page used to open by explaining itself; it now opens by publishing one
   honest sentence about this week, with the evidence underneath. The Toll
   cost modal and its placeholder dollar estimates are gone — the Toll is
   measured now. Everything below is token-only: no new fonts, no new hues. */

.tb-state { padding-top: var(--space-8); }
.tb-eyebrow { font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent-primary, #33e658); margin: 0 0 var(--space-4); }
.tb-eyebrow__sep { color: rgba(255, 255, 255, 0.35); margin: 0 var(--space-1); }

.tb-sentence { font-family: var(--font-serif); font-size: var(--text-4xl); font-weight: var(--font-semibold); line-height: 1.22; letter-spacing: -0.01em; color: var(--color-white, #fff); max-width: 24ch; margin: 0 0 var(--space-2); }
.tb-sentence b { font-family: var(--font-mono); font-weight: var(--font-bold); font-style: normal; color: var(--accent-primary, #33e658); background: color-mix(in srgb, var(--accent-primary, #33e658) 12%, transparent); padding: 0 0.18em; border-radius: var(--radius-sm); }
.tb-sentence b.tb-sentence__zero { color: var(--color-white, #fff); background: color-mix(in srgb, var(--status-error) 16%, transparent); }
.tb-asof { font-family: var(--font-mono); font-size: var(--text-xs); color: rgba(255, 255, 255, 0.45); margin: 0 0 var(--space-8); }

.tb-stategrid { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--space-5); align-items: start; }
.tb-panel { width: 100%; padding: var(--space-5); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: var(--radius-lg); background: var(--color-dark-800, #0a0e1a); }
.tb-panel h3 { font-family: var(--font-heading); font-size: var(--text-base); font-weight: var(--font-bold); color: var(--color-white, #fff); margin: 0 0 var(--space-4); }
.tb-panel > p { font-size: var(--text-sm); color: rgba(255, 255, 255, 0.72); margin: 0 0 var(--space-3); }
.tb-panel > p:last-child { margin-bottom: 0; }

/* Delivered-per-week bars. A future week draws as an EMPTY slot with a dash —
   never a zero bar, because a zero result and an unplayed week are different
   claims. A played week that delivered nothing keeps a floor sliver, and its
   number above the bar says 0 in words the reader can check.               */
.tb-chart { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--space-2); align-items: end; }
.tb-chart__bar { display: grid; justify-items: center; gap: var(--space-1); }
.tb-chart__n { font-family: var(--font-mono); font-size: var(--text-xs); font-weight: var(--font-bold); color: var(--color-white, #fff); }
.tb-chart__bar.is-future .tb-chart__n { color: rgba(255, 255, 255, 0.3); }
.tb-chart__track { width: 100%; height: var(--size-24); display: flex; align-items: flex-end; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.tb-chart__bar.is-future .tb-chart__track { border-bottom-style: dashed; border-bottom-color: rgba(255, 255, 255, 0.1); }
.tb-chart__col { width: 100%; border-radius: var(--radius-xs) var(--radius-xs) 0 0; background: color-mix(in srgb, var(--accent-primary, #33e658) 45%, transparent); }
.tb-chart__bar.is-current .tb-chart__col { background: var(--accent-primary, #33e658); }
.tb-chart__wk { font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255, 255, 255, 0.4); white-space: nowrap; }
.tb-chart__bar.is-current .tb-chart__wk { color: var(--accent-primary, #33e658); }
.tb-chart-cap { font-size: var(--text-sm); color: rgba(255, 255, 255, 0.6); margin: var(--space-4) 0 0; }
.tb-chart-cap strong { color: var(--color-white, #fff); }

/* The Toll — three bands, reported separately, NEVER averaged together. */
.tb-toll { display: grid; gap: var(--space-2); }
.tb-toll__scope { font-family: var(--font-heading); font-size: var(--text-xs); font-weight: var(--font-bold); letter-spacing: 0.07em; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); margin: 0 0 var(--space-2); }
.tb-toll__sep { color: rgba(255, 255, 255, 0.28); padding: 0 var(--space-1); }
.tb-toll__band { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: var(--space-1) var(--space-3); padding: var(--space-3) 0; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.tb-toll__band:last-child { border-bottom: 0; }
.tb-toll__label { grid-row: 1; grid-column: 1; font-family: var(--font-heading); font-size: var(--text-xs); font-weight: var(--font-bold); letter-spacing: 0.07em; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); }
/* THE HEADLINE (r145) — median agent-court days. Largest type on the row, in
   full white, so the eye lands here before it lands on the money. */
.tb-toll__fig { grid-row: 1; grid-column: 2; font-family: var(--font-mono); font-size: var(--text-2xl); font-weight: var(--font-bold); line-height: var(--leading-tight); color: var(--color-white, #fff); }
.tb-toll__fig--none { color: rgba(255, 255, 255, 0.35); }
.tb-toll__meta { grid-row: 2; grid-column: 1; font-size: var(--text-xs); color: rgba(255, 255, 255, 0.4); }
/* THE DETAIL (r145) — median dollars, deliberately smaller and dimmer than the
   days figure above it. It is the supporting line, not the headline. */
.tb-toll__money { grid-row: 2; grid-column: 2; font-family: var(--font-mono); font-size: var(--text-sm); color: rgba(255, 255, 255, 0.62); }
.tb-toll__money--none { color: rgba(255, 255, 255, 0.35); }
/* THE FREE SHARE (r150) — reports alongside, on its own line across the row. */
.tb-toll__free { grid-row: 3; grid-column: 1 / -1; font-size: var(--text-xs); color: var(--accent-primary, #33e658); }
.tb-toll__note { font-size: var(--text-sm); color: rgba(255, 255, 255, 0.55); margin: var(--space-4) 0 0; }

.tb-stopped { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid rgba(255, 255, 255, 0.08); }
.tb-stopped__h { font-family: var(--font-heading); font-size: var(--text-xs); font-weight: var(--font-bold); letter-spacing: 0.07em; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); margin: 0 0 var(--space-2); }
.tb-stopped__set { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.tb-stopped__set li { font-size: var(--text-sm); line-height: 1.5; color: rgba(255, 255, 255, 0.75); padding-left: var(--space-4); position: relative; }
.tb-stopped__set li::before { content: "\203A"; position: absolute; left: 0; color: rgba(255, 255, 255, 0.35); }

.tb-oath { margin-top: var(--space-8); padding: var(--space-5) var(--space-6); border: 1px solid color-mix(in srgb, var(--accent-primary, #33e658) 35%, transparent); border-radius: var(--radius-lg); background: color-mix(in srgb, var(--accent-primary, #33e658) 6%, transparent); }
.tb-oath p { font-family: var(--font-serif); font-size: var(--text-xl); line-height: 1.35; color: var(--color-white, #fff); margin: 0 0 var(--space-2); }
.tb-oath span { font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent-primary, #33e658); }

/* Open targets + on the bench: the tables that make the sentence checkable. */
.tb-countline { font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); margin: var(--space-4) 0 var(--space-3); }
.tb-countline strong { color: var(--color-white, #fff); }
.tb-want { color: var(--color-white, #fff); max-width: 34ch; }
.tb-num { font-family: var(--font-mono); white-space: nowrap; }
.tb-dash { color: rgba(255, 255, 255, 0.35); font-size: var(--text-xs); }

.tb-label--practice       { background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.75); }
.tb-label--inplay         { background: color-mix(in srgb, var(--accent-primary, #33e658) 20%, transparent); color: var(--accent-primary, #33e658); }
.tb-label--open           { background: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.65); }
.tb-label--bids-in        { background: color-mix(in srgb, var(--status-info) 20%, transparent); color: color-mix(in srgb, var(--status-info) 70%, #fff); }
.tb-label--agent-working  { background: color-mix(in srgb, var(--accent-primary, #33e658) 18%, transparent); color: var(--accent-primary, #33e658); }
.tb-label--waiting-person { background: color-mix(in srgb, var(--color-orange-500, #f59e0b) 22%, transparent); color: color-mix(in srgb, var(--color-orange-500, #f59e0b) 70%, #fff); }

/* Receipts — empty state only until the first crossing writes one. */
.tb-receipts { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-4); margin-top: var(--space-5); }
.tb-receipt { width: 100%; padding: var(--space-5); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: var(--radius-lg); background: var(--color-dark-800, #0a0e1a); }
.tb-receipt--blank { border-style: dashed; display: grid; align-content: center; gap: var(--space-2); }
.tb-receipt--blank p { font-size: var(--text-sm); color: rgba(255, 255, 255, 0.6); margin: 0; }
.tb-receipt__lead { font-family: var(--font-heading); font-weight: var(--font-bold); color: var(--color-white, #fff); }
.tb-receipt--ghost { opacity: 0.45; }
.tb-receipt__want { font-family: var(--font-serif); color: var(--color-white, #fff); margin: 0 0 var(--space-3); }
.tb-receipt__row { display: flex; justify-content: space-between; gap: var(--space-3); font-family: var(--font-mono); font-size: var(--text-xs); color: rgba(255, 255, 255, 0.55); margin: 0; padding: var(--space-2) 0; border-top: 1px solid rgba(255, 255, 255, 0.06); }

/* Break the bench — the known weaknesses, stated before anyone finds them. */
.tb-weak { list-style: none; margin: var(--space-4) 0 0; padding: 0; display: grid; gap: var(--space-3); }
.tb-weak li { display: grid; gap: var(--space-1); padding: var(--space-4); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: var(--radius-lg); background: var(--color-dark-800, #0a0e1a); }
.tb-weak li b { font-family: var(--font-heading); font-size: var(--text-sm); color: var(--color-white, #fff); }
.tb-weak li span { font-size: var(--text-sm); color: rgba(255, 255, 255, 0.7); line-height: 1.55; }

.tb-badges { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-4) 0; }
.tb-badge { padding: var(--space-1) var(--space-4); border: 1px dashed rgba(255, 255, 255, 0.25); border-radius: var(--radius-full); font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: 0.06em; color: rgba(255, 255, 255, 0.7); }

.tb-mini { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-4); }
.tb-plain { color: var(--accent-primary, #33e658); font-family: var(--font-heading); font-size: var(--text-sm); font-weight: var(--font-semibold); text-decoration: none; }
.tb-plain:hover { text-decoration: underline; }

.tb-foot { margin-top: var(--space-12); padding-top: var(--space-8); border-top: 1px solid rgba(255, 255, 255, 0.1); }
.tb-feedback { padding: var(--space-5); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: var(--radius-lg); background: var(--color-dark-800, #0a0e1a); }
.tb-feedback > p:first-child { font-family: var(--font-serif); font-size: var(--text-lg); color: var(--color-white, #fff); margin: 0 0 var(--space-3); }
.tb-footnote { font-size: var(--text-sm); color: rgba(255, 255, 255, 0.45); line-height: 1.7; margin-top: var(--space-6); }
.tb-footnote a { color: rgba(255, 255, 255, 0.7); }

@media (max-width: 820px) {
  .tb-stategrid { grid-template-columns: 1fr; }
  .tb-mini, .tb-receipts { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .tb-sentence { font-size: var(--text-2xl); max-width: none; }
  .tb-chart { gap: var(--space-1); }
  .tb-chart__track { height: var(--size-20); }
  .tb-chart__wk { font-size: 0.55rem; }
  .tb-toll__fig { font-size: var(--text-xl); }
}

@media (min-width: 900px) {
  .tb-sentence { font-size: var(--text-5xl); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   FIELD VIEW — scatter hero at the top of /toll-bench.
   One dot per target ever taken. Dark page uniform: white on dark-900.
   Tokens only — no new tokens, no ad-hoc colors.
   Known page gotchas: standalone shell needs its own box-sizing reset (done
   at .toll-bench * above); margin:0 auto on a flex item cancels stretch,
   so .fv-section uses explicit width:100%.
   ═══════════════════════════════════════════════════════════════════════ */

.fv-section {
  width: 100%;
  padding: var(--space-5) 0 var(--space-4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.fv-card {
  width: 100%;
  max-width: 880px;
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.fv-eyebrow {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-primary, #33e658);
  margin: 0 0 var(--space-3);
}

.fv-title {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: var(--font-bold);
  color: var(--color-white, #fff);
  margin: 0 0 var(--space-2);
  line-height: 1.15;
}

.fv-subline {
  font-family: var(--font-serif);
  font-size: var(--text-base);
  color: rgba(255, 255, 255, 0.65);
  margin: 0 0 var(--space-5);
  line-height: 1.55;
}

.fv-chart-wrap {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  width: 100%;
}

.fv-yaxis-label {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  white-space: nowrap;
  flex-shrink: 0;
  margin-top: 22px; /* aligns with SVG plot area top (SVG_T) */
  align-self: flex-start;
}

.fv-svg {
  width: 100%;
  flex: 1 1 0;
  display: block;
  overflow: visible;
}

/* Stripes */
.fv-stripe { fill-opacity: 0.06; }
.fv-stripe--moon { fill: var(--status-error, #e53e3e); }
.fv-stripe--hard { fill: var(--color-orange-500, #f59e0b); fill-opacity: 0.04; }
.fv-stripe--easy { fill: var(--accent-primary, #33e658); fill-opacity: 0.04; }

/* Axis / boundary lines */
.fv-axis { stroke: rgba(255, 255, 255, 0.25); stroke-width: 1; }
.fv-boundary { stroke: rgba(255, 255, 255, 0.12); stroke-width: 1; stroke-dasharray: 4 3; }
.fv-grid { stroke: rgba(255, 255, 255, 0.06); stroke-width: 1; }

/* Tick labels */
.fv-xtick {
  font-family: var(--font-mono);
  font-size: 9px;
  fill: rgba(255, 255, 255, 0.35);
  text-anchor: middle;
}
.fv-xlabel {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  fill: rgba(255, 255, 255, 0.35);
  text-anchor: middle;
}

/* Band labels */
.fv-band-label {
  font-family: var(--font-heading);
  font-size: 10px;
  font-weight: 700;
  fill: rgba(255, 255, 255, 0.55);
  text-anchor: end;
}
.fv-band-sub {
  font-family: var(--font-mono);
  font-size: 8px;
  fill: rgba(255, 255, 255, 0.3);
  text-anchor: end;
}

/* Dots — three states, specific paint-order law (gray < red < green) */
.fv-dot--going {
  fill: rgba(51, 230, 88, 0.14);
  stroke: var(--accent-primary, #33e658);
  stroke-width: 2;
}
.fv-dot--failed {
  stroke: var(--status-error, #e53e3e);
  stroke-width: 2;
  stroke-opacity: 0.75;
}
.fv-dot--delivered {
  fill: var(--accent-primary, #33e658);
  stroke: none;
  fill-opacity: 1;
}

/* Specimen / practice: dotted outline variant */
.fv-dot--specimen.fv-dot--going { stroke-dasharray: 3 2; stroke-opacity: 0.5; }
.fv-dot--specimen.fv-dot--failed { stroke-dasharray: 3 2; stroke-opacity: 0.5; }
.fv-dot--specimen.fv-dot--delivered { fill-opacity: 0.45; }

/* Mark links — no underline/color on hover; the mark IS the link */
.fv-mark-link { cursor: pointer; }
.fv-mark-link:focus { outline: none; }
.fv-mark-link:focus-visible circle,
.fv-mark-link:focus-visible .fv-dot--failed { outline: 2px solid var(--accent-primary, #33e658); }

/* Empty state */
.fv-empty-state {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 14px;
  fill: rgba(255, 255, 255, 0.35);
  text-anchor: middle;
}

/* Meta row: legend + tally */
.fv-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-3) var(--space-6);
  margin-top: var(--space-4);
}

.fv-legend {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-heading);
  font-size: var(--text-xs);
  font-weight: var(--font-bold);
}
.fv-legend__sep { color: rgba(255, 255, 255, 0.3); }
.fv-legend__item { display: flex; align-items: center; gap: var(--space-1); }
.fv-legend__item::before {
  content: '';
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.fv-legend__item--delivered::before { background: var(--accent-primary, #33e658); }
.fv-legend__item--failed::before {
  background: none;
  border: 2px solid var(--status-error, #e53e3e);
  border-radius: 2px;
  width: 9px; height: 9px;
}
.fv-legend__item--going::before {
  background: none;
  border: 1.5px solid var(--accent-primary, #33e658);
}
.fv-legend__item--delivered { color: var(--accent-primary, #33e658); }
.fv-legend__item--failed { color: var(--status-error, #e53e3e); }
.fv-legend__item--going { color: var(--accent-primary, #33e658); }

.fv-tally {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  margin: 0;
}
.fv-tally-unpriced {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: rgba(255, 255, 255, 0.25);
  margin: var(--space-1) 0 0;
}

/* Agent-day clock callout */
.fv-clock-note {
  margin: var(--space-4) 0 0;
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.6;
  border-left: 2px solid rgba(255, 255, 255, 0.12);
  padding-left: var(--space-4);
}

/* "Can AI deliver?" serif question below the card */
.fv-serif-q {
  width: 100%;
  max-width: 880px;
  margin: var(--space-5) auto 0;
  padding: 0 var(--space-6);
  font-family: var(--font-serif);
  font-size: var(--text-2xl);
  font-style: italic;
  color: rgba(255, 255, 255, 0.45);
}

@media (max-width: 720px) {
  .fv-card { padding: 0 var(--space-4); }
  .fv-title { font-size: var(--text-xl); }
  .fv-serial-q { font-size: var(--text-xl); }
  .fv-yaxis-label { display: none; }
  .fv-chart-wrap { gap: 0; }
  .fv-meta { flex-direction: column; gap: var(--space-2); }
  .fv-legend { flex-wrap: wrap; }
}
