/* 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 {
  position: relative;
  width: 100%;
  max-width: 880px;
  margin: 0 auto;
  padding: var(--space-6) var(--space-5) var(--space-5);
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 20px;
}

/* Hover tooltip — the want label, floating above a dot */
.fv-tip {
  position: absolute;
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 40;
  max-width: 240px;
  padding: var(--space-2) var(--space-3);
  background: rgba(10, 10, 14, 0.98);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45);
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.94);
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.fv-tip[hidden] { display: none; }

/* Header row: title + status key. LIVE sits as a badge on the card edge. */
.fv-head {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin: 0 0 var(--space-4);
}
.fv-head > div { min-width: 0; }

.fv-title {
  font-family: var(--font-heading);
  font-size: var(--text-2xl);
  font-weight: var(--font-bold);
  color: var(--color-white, #fff);
  margin: 0;
  line-height: 1.15;
}
.fv-window {
  margin: var(--space-1) 0 0;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}

.fv-live {
  position: absolute;
  top: 0;
  left: var(--space-5);
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  z-index: 20;
  padding: 4px 12px;
  background: rgba(5, 5, 9, 0.98);
  border: 1px solid var(--accent-primary, #33e658);
  border-radius: 999px;
  box-shadow: 0 0 0 6px rgba(5, 5, 9, 0.92);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--font-bold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-primary, #33e658);
}
.fv-live__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent-primary, #33e658);
  flex-shrink: 0;
}

.fv-status-key {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
  margin-top: var(--space-2);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(184, 190, 207, 0.78);
}
.fv-status-key__item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}
.fv-status-key__label strong {
  font-weight: 700;
  color: rgba(239, 243, 255, 0.9);
}
.fv-status-key__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.fv-status-key__mark--success {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--accent-primary, #33e658);
  box-shadow: 0 0 12px rgba(51, 230, 88, 0.5);
}
.fv-status-key__mark--ongoing {
  width: 12px;
  height: 12px;
  border: 2px solid rgba(137, 150, 178, 0.9);
  border-radius: 50%;
}
.fv-status-key__mark--fail {
  width: 12px;
  height: 12px;
  color: var(--status-error, #e53e3e);
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
}

.fv-chart-wrap {
  width: 100%;
}

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

/* Three bench lanes */
.fv-lane {
  fill: rgba(20, 19, 25, 0.9);
  stroke: none;
}
.fv-lane--moon,
.fv-lane--hard,
.fv-lane--easy { fill: rgba(20, 19, 25, 0.9); }
.fv-lane-title {
  font-family: var(--font-mono);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.3em;
  fill: rgba(184, 190, 207, 0.78);
  text-anchor: start;
}
.fv-lane-range {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.11em;
  fill: rgba(126, 140, 166, 0.74);
  text-anchor: start;
}

/* Axis / grid lines */
.fv-axis { stroke: rgba(255, 255, 255, 0.25); stroke-width: 1; }
.fv-divider { stroke: rgba(255, 255, 255, 0.08); stroke-width: 1; }
.fv-grid { stroke: rgba(156, 170, 198, 0.18); stroke-width: 1.3; }

/* Tick labels */
.fv-xtick {
  font-family: var(--font-mono);
  font-size: 16px;
  letter-spacing: 0.08em;
  fill: rgba(156, 170, 198, 0.64);
  text-anchor: middle;
}
.fv-xlabel {
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  fill: rgba(156, 170, 198, 0.58);
  text-anchor: middle;
}

/* Marks — status marker plus the attached agent-time segment. */
.fv-dot { cursor: default; }
.fv-work-line {
  fill: none;
  stroke-width: 3.5;
  stroke-linecap: round;
  opacity: 0.92;
}
.fv-work-line--going,
.fv-work-line--delivered {
  filter: drop-shadow(0 0 3px rgba(51, 230, 88, 0.32));
}
.fv-work-line--failed {
  filter: drop-shadow(0 0 2px rgba(229, 62, 62, 0.24));
}
.fv-work-stop--going,
.fv-work-stop--delivered { stop-color: var(--accent-primary, #33e658); }
.fv-work-stop--failed { stop-color: var(--status-error, #e53e3e); }
.fv-work-stop--tail { stop-opacity: 0.06; }
.fv-work-stop--body { stop-opacity: 0.46; }
.fv-work-stop--head { stop-opacity: 0.92; }
.fv-work-stop--failed.fv-work-stop--tail { stop-opacity: 0.08; }
.fv-work-stop--failed.fv-work-stop--body { stop-opacity: 0.5; }
.fv-work-stop--failed.fv-work-stop--head { stop-opacity: 0.86; }
.fv-dot--going {
  fill: rgba(51, 230, 88, 0.14);
  stroke: var(--accent-primary, #33e658);
  stroke-width: 2.6;
}
.fv-dot--failed {
  stroke: var(--status-error, #e53e3e);
  stroke-width: 2.6;
  stroke-opacity: 0.9;
}
.fv-dot--delivered {
  fill: var(--accent-primary, #33e658);
  stroke: none;
  fill-opacity: 1;
}
.fv-dot--delivered .fv-marker {
  filter: url(#fv-delivered-glow);
}
.fv-marker {
  vector-effect: non-scaling-stroke;
}
.fv-fail-stroke {
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
}

/* 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;
}

/* Agent-day clock — a subtle "?" help affordance that reveals the note */
.fv-clock-help {
  margin: var(--space-4) 0 0;
}
.fv-clock-help__q {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.25);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  line-height: 1;
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.fv-clock-help__q::-webkit-details-marker { display: none; }
.fv-clock-help__q:hover { color: rgba(255, 255, 255, 0.85); border-color: rgba(255, 255, 255, 0.4); }
.fv-clock-help[open] .fv-clock-help__text {
  margin-top: var(--space-2);
  max-width: 520px;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.6;
}
.fv-clock-help__text { margin: 0; }

.fv-section--light {
  padding: 0;
  border-bottom: 0;
}
.fv-card--light {
  max-width: none;
  padding: var(--feed-card-padding);
  background: var(--color-white, #fff);
  border-color: rgba(17, 24, 39, 0.08);
  box-shadow: var(--feed-card-shadow);
}
.fv-card--light .fv-title {
  color: var(--text-primary);
  letter-spacing: 0;
  text-transform: none;
}
.fv-card--light .fv-live {
  background: var(--color-white, #fff);
  box-shadow: 0 6px 18px rgba(17, 24, 39, 0.08);
}
.fv-card--light .fv-tip {
  background: rgba(255, 255, 255, 0.98);
  border-color: rgba(17, 24, 39, 0.12);
  box-shadow: 0 8px 24px rgba(17, 24, 39, 0.18);
  color: var(--text-primary);
}
.fv-card--light .fv-status-key {
  color: rgba(67, 76, 94, 0.68);
}
.fv-card--light .fv-status-key__label strong {
  color: rgba(31, 41, 55, 0.94);
}
.fv-card--light .fv-status-key__mark--ongoing {
  border-color: rgba(91, 105, 132, 0.82);
}
.fv-card--light .fv-lane,
.fv-card--light .fv-lane--moon,
.fv-card--light .fv-lane--hard,
.fv-card--light .fv-lane--easy {
  fill: rgba(17, 24, 39, 0.045);
}
.fv-card--light .fv-lane-title {
  fill: rgba(50, 59, 74, 0.58);
}
.fv-card--light .fv-lane-range {
  fill: rgba(69, 81, 105, 0.70);
}
.fv-card--light .fv-grid {
  stroke: rgba(38, 49, 67, 0.10);
  stroke-width: 1.35;
}
.fv-card--light .fv-xtick {
  fill: rgba(69, 81, 105, 0.68);
}
.fv-card--light .fv-xlabel {
  fill: rgba(69, 81, 105, 0.60);
}
.fv-card--light .fv-work-line--going,
.fv-card--light .fv-work-line--delivered {
  filter: drop-shadow(0 0 2px rgba(51, 230, 88, 0.22));
}
.fv-card--light .fv-work-line--failed {
  filter: drop-shadow(0 0 2px rgba(229, 62, 62, 0.18));
}
.fv-card--light .fv-empty-state {
  fill: rgba(69, 81, 105, 0.50);
}
.fv-card--light .fv-clock-help__q {
  border-color: rgba(69, 81, 105, 0.32);
  color: rgba(69, 81, 105, 0.70);
}
.fv-card--light .fv-clock-help__q:hover {
  border-color: rgba(69, 81, 105, 0.48);
  color: var(--text-primary);
}
.fv-card--light .fv-clock-help[open] .fv-clock-help__text {
  color: rgba(69, 81, 105, 0.78);
}

@media (max-width: 720px) {
  .fv-card { padding: var(--space-4); border-radius: 16px; }
  .fv-card--light { padding: var(--feed-card-padding-mobile); }
  .fv-title { font-size: var(--text-xl); }
}

/* ── Wave-2 board display (2026-08-19): attribution chips, Day Zero note,
   per-band leaderboard panels, human-work column ── */
.tb-label--house  { background: rgba(255, 255, 255, 0.12); color: rgba(255, 255, 255, 0.82); }
.tb-label--keeper { background: color-mix(in srgb, var(--color-yellow-400, #f2e841) 24%, transparent); color: color-mix(in srgb, var(--color-yellow-400, #f2e841) 85%, #fff); }
.tb-side-note { font-family: var(--font-mono); font-size: var(--text-xs); color: rgba(255, 255, 255, 0.45); margin: 0 0 var(--space-2); }
.tb-side-note--dayzero { margin-bottom: var(--space-8); }
.tb-claim { font-family: var(--font-heading); font-size: 0.62rem; font-weight: var(--font-bold); letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); margin-left: var(--space-1); }
.tb-bandpanel[hidden] { display: none; }
.tb-humanwork small { display: block; font-size: 0.68rem; color: rgba(255, 255, 255, 0.5); }
.tb-moon-note { border-left: 3px solid color-mix(in srgb, var(--color-purple-500, #6355eb) 60%, transparent); padding-left: var(--space-3); }

/* ── Check the math + cite (item 22) ───────────────────────────────────── */
.tb-cite { 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-cite__verify { display: flex; align-items: center; gap: var(--space-3); margin: var(--space-3) 0 var(--space-4); }
.tb-cite__verify img { display: block; }
.tb-cite__verify span { font-size: var(--text-sm); color: rgba(255, 255, 255, 0.7); }
.tb-cite__links { margin: 0 0 var(--space-4); padding-left: var(--space-5); font-size: var(--text-sm); }
.tb-cite__links li { margin-bottom: var(--space-1); }
.tb-cite__links a { color: var(--accent-primary); }
.tb-cite__label { font-family: var(--font-heading); font-weight: var(--font-bold); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.08em; color: rgba(255, 255, 255, 0.6); margin: 0 0 var(--space-1); }
.tb-cite__bibtex { font-family: var(--font-mono); font-size: var(--text-xs); background: rgba(255, 255, 255, 0.05); border-radius: var(--radius-lg); padding: var(--space-4); overflow-x: auto; margin: 0; }
.tb-receipt--real { display: block; text-decoration: none; color: inherit; transition: border-color 0.15s ease; }
.tb-receipt--real:hover { border-color: var(--accent-primary); }
.tb-receipt__res--delivered { color: var(--status-success); }
.tb-receipt__res--failed, .tb-receipt__res--walked { color: var(--status-error); }
