/* The club race dashboard (/dashboard, templates/org/dashboard.html, dashboard.js). Tokens from brand/tokens.css.
   Layout: the heat on track and up next side by side, the leaderboard full width, the last two heats, then the
   night's lists. Every table fills its card; below 640px rows stack into small cards (components.css .stack-sm). */
.dash { gap: var(--s-4); }
.dash-body { display: flex; flex-direction: column; gap: var(--s-4); min-width: 0; }
.dash-body > * { min-width: 0; }
.dash-head-t { min-width: 0; }
.dash-head .h1 { overflow-wrap: anywhere; }
.dash-meta { display: flex; flex-wrap: wrap; gap: var(--s-2); align-items: center; }
.dash-meta .btn svg { margin-right: 4px; }
.dash-pad { padding: var(--s-3) var(--s-4); margin: 0; }
.dash-count { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--surface-3); color: var(--text-2); font: 700 10.5px/1 var(--font-body); }

/* page tabs and classes */
.dash-nav .tabs { max-width: 100%; }
.dash-nav .tabs a { display: inline-flex; align-items: center; gap: 6px; }
.dash-classes { display: flex; flex-wrap: wrap; gap: 6px; }
.dash-classes a { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: var(--r-pill); border: 1px solid var(--line-strong); color: var(--text-2); font-weight: 650; font-size: var(--fs-sm); }
.dash-classes a:hover { color: var(--text); border-color: var(--text-3); }
.dash-classes a[aria-current="page"] { background: var(--surface-3); color: var(--text); border-color: color-mix(in oklab, var(--c, var(--brand)) 60%, var(--line-strong)); }
.dash-cdot { width: 9px; height: 9px; border-radius: 50%; background: var(--c, var(--brand)); flex: none; }

/* event menu */
.dash-evmenu { position: relative; }
.dash-evmenu summary { list-style: none; cursor: pointer; }
.dash-evmenu summary::-webkit-details-marker { display: none; }
.dash-evmenu ul { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; min-width: 260px; max-width: min(90vw, 360px); max-height: 60vh; overflow: auto; list-style: none; margin: 0; padding: 6px;
  background: var(--bg-raised); border: 1px solid var(--line-strong); border-radius: var(--r-md); box-shadow: var(--shadow-2); }
.dash-evmenu li a { display: block; padding: 8px 10px; border-radius: var(--r-sm); font-weight: 600; font-size: var(--fs-sm); }
.dash-evmenu li a:hover, .dash-evmenu li a[aria-current] { background: var(--surface-2); }
.dash-live-tag { color: var(--live); }

/* the live page grid */
.dash-home { display: grid; gap: var(--s-4); grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); grid-template-areas: "track next" "fly fly" "board board" "last last" "side side"; align-items: start; }
.dash-a-fly { grid-area: fly; min-width: 0; }
.dash-a-track { grid-area: track; min-width: 0; }
.dash-a-next { grid-area: next; min-width: 0; display: flex; flex-direction: column; gap: var(--s-3); }
.dash-a-board { grid-area: board; min-width: 0; }
.dash-a-last { grid-area: last; min-width: 0; display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 540px), 1fr)); align-items: start; }
.dash-a-last .dash-legend { grid-column: 1 / -1; }
.dash-a-side { grid-area: side; min-width: 0; display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); align-items: start; }
@media (max-width: 1000px) {
  .dash-home { grid-template-columns: minmax(0, 1fr); grid-template-areas: "track" "next" "fly" "board" "last" "side"; }
}
.dash-sec-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--s-2) var(--s-4); }
.dash-sec-head h2, .dash-sec-head .h2, .dash-sec-head .h3 { margin: 0; }
.dash-idle { padding: var(--s-4) var(--s-5); }
.dash-a-track { display: grid; gap: var(--s-3); }
.dash-a-track .dash-idle .dash-idle-t { margin-bottom: 0; }
.dash-idle-t { font: 700 var(--fs-lg)/1.2 var(--font-display); margin: var(--s-2) 0; }

/* heat cards */
.dash-race { overflow: hidden; }
.dash-race.is-live { border-color: color-mix(in oklab, var(--live) 45%, var(--line-strong)); box-shadow: 0 0 0 1px color-mix(in oklab, var(--live) 20%, transparent), var(--shadow-1); }
.dash-race-head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s-3); flex-wrap: wrap; }
.dash-race-t { min-width: 0; }
.dash-race-t .eyebrow { margin: 0 0 2px; }
.dash-race-t .h3 { margin: 0; font-size: var(--fs-lg); }
.dash-race-meta { display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; }
.dash-clock { font-size: var(--fs-lg); font-weight: 700; color: var(--text); min-width: 5ch; text-align: right; }
.dash-clock:empty { display: none; }
.dash-race-foot { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); align-items: baseline; justify-content: space-between; padding: var(--s-2) var(--s-4) var(--s-3); border-top: 1px solid var(--line); }
.dash-rt { table-layout: auto; }
.dash-rt th, .dash-rt td { padding-left: var(--s-3); padding-right: var(--s-3); }
.dash-rt td { padding-top: 8px; padding-bottom: 8px; }
.dash-rt .c-pos { width: 1%; white-space: nowrap; }
.dash-rt .c-pilot { width: 1%; white-space: nowrap; }
.dash-rt .c-pilot .pname { max-width: 16ch; }
.dash-rt .c-hs, .dash-rt .c-total, .dash-rt .c-gap { width: 1%; }
.dash-rt .c-laps { width: 100%; }
.dash-rt tr.is-out td { opacity: .62; }
.dash-leader { color: var(--leader); font: 700 var(--fs-xs)/1 var(--font-body); letter-spacing: .03em; text-transform: uppercase; }
.dash-mv { display: inline-block; min-width: 0; margin-left: 4px; font: 700 var(--fs-xs)/1 var(--font-body); vertical-align: middle; }
.dash-mv:empty { display: none; }
.dash-mv .up, .dash-mv.up { color: var(--ok); }
.dash-mv .down, .dash-mv.down { color: var(--danger); }
.dash-mv.flash { animation: dash-mv 2.4s ease-out; }
@keyframes dash-mv { 0%, 70% { opacity: 1; } 100% { opacity: .35; } }

/* lap chips */
.dash-laps { display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
.dash-laps .lc { height: auto; min-height: 22px; flex-direction: column; align-items: flex-start; gap: 0; line-height: 1.2; padding: 3px 6px; }
.dash-laps .lc b { font-weight: 600; }
.lc.t-fastest { color: var(--fastest); background: color-mix(in oklab, var(--fastest) 22%, var(--surface-2)); box-shadow: inset 0 -2px 0 var(--fastest); }
.lc.t-fastest b { font-weight: 800; }
.lc.t-pb { color: var(--ok); box-shadow: inset 0 -2px 0 var(--ok); background: color-mix(in oklab, var(--ok) 10%, var(--surface-2)); }
.lc.t-hb { color: var(--leader); box-shadow: inset 0 -2px 0 var(--leader); }
.lc.t-hp { color: var(--text); box-shadow: inset 0 0 0 1px var(--line-strong); }
.lc.chk { color: var(--warn); text-decoration: line-through; text-decoration-thickness: 1px; opacity: .8; }
.lc.af { background: transparent; color: var(--text-3); border: 1px dashed var(--line-strong); opacity: .7; flex-direction: row !important; align-items: baseline !important; gap: 4px !important; }
.lc.af i { font-size: 9px; }
.lc.pending { width: 30px; background: repeating-linear-gradient(90deg, var(--surface-2) 0 6px, var(--surface-3) 6px 12px); background-size: 24px 100%; animation: dash-pend 1s linear infinite; }
@keyframes dash-pend { to { background-position: 24px 0; } }
.lc.land { animation: lc-land 1.1s cubic-bezier(.22, 1, .36, 1); }
.lc-sec { display: none; font: 500 9.5px/1.2 var(--font-mono); color: var(--text-3); }
.dash-splits .lc-sec { display: block; }
.dash-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px var(--s-3); font-size: var(--fs-sm); }
.dash-legend .lc { font-family: var(--font-body); }

/* stars and favourites */
.dash-star { all: unset; cursor: pointer; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; color: var(--text-3); flex: none; }
.dash-star svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }
.dash-star:hover { color: var(--text); }
.dash-star:focus-visible { outline: 2px solid var(--brand); outline-offset: 1px; }
.dash-star[aria-pressed="true"] { color: var(--gold); }
.dash-star[aria-pressed="true"] svg { fill: currentColor; }
.is-fav > td, .is-fav.dash-up, li.is-fav { background: color-mix(in oklab, var(--gold) 6%, transparent); }
tr.is-fav > td:first-child { box-shadow: inset 3px 0 0 var(--gold); }
.dash-favbtn svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; margin-right: 4px; }
.dash-favbtn[aria-pressed="true"] { color: var(--gold); border-color: var(--gold); }
.dash-favbtn[aria-pressed="true"] svg { fill: currentColor; }
.dash-fav-hide { display: none !important; }
.dash-h2 { margin: 0; }

/* leaderboard */
.dash-board-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--s-3); }
.dash-tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-3); }
.dash-sort button { padding: 5px 11px; font-size: var(--fs-xs); }
.dash-switch { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-sm); color: var(--text-2); cursor: pointer; white-space: nowrap; }
.dash-switch input { accent-color: var(--brand); }
.dash-st { table-layout: auto; }
.dash-st th, .dash-st td { padding-left: var(--s-3); padding-right: var(--s-3); }
.dash-st td { padding-top: 8px; padding-bottom: 8px; }
.dash-st .c-pos { width: 1%; white-space: nowrap; }
.dash-st .c-pilot { width: 28%; min-width: 180px; }
.dash-st .c-pilot .pilot { gap: var(--s-2); }
.dash-st .dash-who { min-width: 0; }
.dash-st .pname { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 22ch; }
.dash-st .c-next { white-space: nowrap; }
.dash-st th[data-sorted] { color: var(--text); }
.dash-vp { display: inline-block; padding: 1px 6px; border-radius: 6px; }
.dash-vp.is-top { background: color-mix(in oklab, var(--fastest) 22%, transparent); color: var(--fastest); font-weight: 800; }
.dash-nx { font-size: var(--fs-xs); font-weight: 650; color: var(--text-2); white-space: nowrap; }
.dash-nx.is-now { color: var(--live); }
.dash-nx.is-next { color: var(--brand); }
.dash-nx.is-soon { color: var(--text); }
.dash-nx.is-pred { color: var(--text-3); font-style: italic; }
.dash-board-scroll { max-height: none; }
.dash-empty-fav { padding: 0 var(--s-4) var(--s-4); margin: 0; }
tr.is-improved td.c-best .dash-vp { animation: dash-pb 2.4s ease-out; }
@keyframes dash-pb { 0% { background: var(--pb); color: #fff; } 100% { } }
@media (max-width: 1250px) { .dash-st .c-heats, .dash-st .c-ch { display: none; } }
@media (max-width: 1060px) and (min-width: 641px) { .dash-st .c-cons, .dash-st .c-avg { display: none; } }
@media (max-width: 820px) and (min-width: 641px) { .dash-st .c-season, .dash-st .c-best3 { display: none; } }

/* up next / lineup */
.dash-upgrid { display: grid; gap: var(--s-3); grid-template-columns: minmax(0, 1fr); }
.dash-up { min-width: 0; }
.dash-upgrid-wide { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.dash-up { padding: var(--s-3) var(--s-4); }
.dash-up.is-pred { border-style: dashed; }
.dash-up-head { display: flex; align-items: center; gap: var(--s-2); min-width: 0; }
.dash-up-name { font-weight: 700; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
.dash-up-sub { margin: 2px 0 var(--s-2); }
.dash-when { display: inline-grid; place-items: center; min-width: 38px; height: 22px; padding: 0 7px; border-radius: 6px; background: var(--surface-3); font: 700 11px/1 var(--font-body); color: var(--text-2); flex: none; }
.dash-when.is-next { background: var(--brand); color: var(--brand-ink); }
.dash-seats { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.dash-seats li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto auto; align-items: center; gap: var(--s-2); padding: 3px 4px; border-radius: 6px; }
.dash-seat-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.dash-q { font: 700 10.5px/1 var(--font-mono); padding: 3px 5px; border-radius: 4px; background: var(--surface-3); color: var(--text-2); }
.dash-pred { font: 800 11px/1 var(--font-mono); padding: 3px 6px; border-radius: 4px; background: var(--brand-soft); color: var(--brand); }
.dash-seat-open { grid-template-columns: auto minmax(0, 1fr) !important; }
.dash-tbd { font-size: var(--fs-xs); color: var(--text-3); border: 1px dashed var(--line-strong); border-radius: 6px; padding: 2px 6px; }
.dash-lineup-now { margin-bottom: var(--s-2); }

/* races list */
.dash-filters { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-3); align-items: center; }
.dash-search { max-width: 280px; flex: 1 1 200px; }
.dash-stack { display: grid; gap: var(--s-4); }
.dash-race.is-flash { animation: dash-flash 2s ease-out; }
@keyframes dash-flash { 0% { box-shadow: 0 0 0 3px var(--brand); } 100% { } }

/* season */
.dash-champ .c-form { width: 40%; }
.dash-form { display: inline-flex; flex-wrap: wrap; gap: 3px; }
.dash-pip { display: inline-grid; place-items: center; min-width: 24px; height: 22px; padding: 0 4px; border-radius: 5px; background: var(--surface-3); font: 700 11px/1 var(--font-mono); }
.dash-pip.is-absent { background: transparent; color: var(--text-3); border: 1px dashed var(--line-strong); }
.dash-pip.is-dropped { opacity: .45; text-decoration: line-through; }

/* pilot page */
.dash-pilot-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); align-items: center; }
.dash-pilot-who { align-items: center; }
.dash-pilot-who .h2 { margin: 0; display: flex; align-items: center; gap: var(--s-2); }
.dash-pilot-meta { flex-wrap: wrap; gap: 6px; margin-top: 6px; align-items: center; }
.dash-pilot-meta .chip.is-on { border-color: var(--brand); color: var(--text); }
.dash-pilot-acts { flex-wrap: wrap; gap: var(--s-2); }
.dash-pstats .stat .k { text-transform: none; }
.dash-chart { margin: 0; padding: var(--s-2) var(--s-4) var(--s-4); }
.dash-chart-scroll { overflow-x: auto; }
.dash-chart svg { display: block; max-width: none; }
.dash-chart-grid line { stroke: var(--line); }
.dash-chart-grid text { fill: var(--text-3); font: 500 10px var(--font-mono); }
.dash-chart-base { stroke: var(--line-strong); }
.dash-chart-sep { stroke: var(--line-strong); stroke-dasharray: 2 3; }
.dash-bar { fill: color-mix(in oklab, var(--brand) 45%, var(--surface-3)); transition: fill var(--t-fast); }
.dash-bar.is-pb { fill: color-mix(in oklab, var(--ok) 65%, var(--surface-3)); }
.dash-bar.is-best { fill: var(--fastest); }
a:hover .dash-bar, a:focus .dash-bar { fill: var(--brand); }

/* data page */
.dash-data-lead { margin: 0; }
.dash-data-list { list-style: none; margin: 0; padding: 0; }
.dash-data-list li { display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); border-top: 1px solid var(--line); flex-wrap: wrap; }
.dash-data-list li > div:first-child { min-width: 0; flex: 1 1 320px; }
.dash-data-list p { margin: 2px 0 6px; }
.dash-url { display: block; font: 500 12px/1.4 var(--font-mono); color: var(--accent); overflow-wrap: anywhere; }
.dash-kind { font-size: 10px; }
.dash-kind-live { color: var(--live); border-color: var(--live); }
.dash-code { margin: 0; padding: var(--s-3) var(--s-4) var(--s-4); overflow-x: auto; font: 500 12px/1.5 var(--font-mono); color: var(--text-2); }

/* share */
.dash-share-dlg { border: 1px solid var(--line-strong); border-radius: var(--r-lg); background: var(--bg-raised); color: var(--text); padding: 0; width: min(420px, calc(100vw - 32px)); box-shadow: var(--shadow-2); }
.dash-share-dlg::backdrop { background: var(--scrim); }
.dash-share-in { padding: var(--s-5); display: grid; gap: var(--s-3); }
.dash-share-in h2 { margin: 0; }
.dash-qr { background: #fff; border-radius: var(--r-md); padding: 12px; width: min(240px, 100%); justify-self: center; }
.dash-qr svg { width: 100%; height: auto; display: block; }
.dash-share-url { display: flex; gap: var(--s-2); align-items: center; min-width: 0; }
.dash-share-url code { flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: 12px; color: var(--accent); }
.dash-share-acts { flex-wrap: wrap; gap: var(--s-2); }

/* help */
.dash-help h2 { margin-top: var(--s-5); }
.dash-help h2:first-child { margin-top: 0; }

/* phones: stacked rows, laps across the full card */
@media (max-width: 640px) {
  .dash-head { align-items: flex-start; }
  .dash-meta .chip:nth-child(n+3) { display: none; }
  .dash .data.stack-sm td { width: auto !important; min-width: 0 !important; white-space: normal; }
  .dash .data.stack-sm td[data-label]::before { white-space: nowrap; }
  .dash .data.stack-sm .pilot { min-width: 0; }
  .dash .data.stack-sm .pilot .pname { flex: 1 1 auto; min-width: 5ch; max-width: none; }
  .dash .data.stack-sm .dash-who { flex: 1 1 auto; min-width: 0; }
  .data.stack-sm.dash-rt td.cell-laps { grid-column: 1 / -1; }
  .data.stack-sm.dash-rt td.c-total { grid-column: 2; }
  .data.stack-sm.dash-rt td.c-gap { grid-column: 3 / -1; }
  .data.stack-sm.dash-flyt td.c-ch { grid-column: 2; }
  .data.stack-sm.dash-flyt td.c-eta { grid-column: 3 / -1 !important; }
  .data.stack-sm.dash-rt td.num.mono, .data.stack-sm.dash-st td.num.mono, .data.stack-sm.dash-st td.num .mono { overflow-wrap: normal; white-space: nowrap; }
  .data.stack-sm.has-pos.dash-rt tr { grid-template-columns: 2.4rem repeat(3, minmax(0, 1fr)); }
  .data.stack-sm.dash-rt td.c-pos { grid-row: 1; }
  .data.stack-sm.dash-rt .c-pilot .pname { max-width: none; }
  .data.stack-sm.dash-st td.c-season { grid-column: 2; text-align: left; }
  .data.stack-sm.dash-st td.c-season .dash-spark { margin-left: 0; }
  .data.stack-sm.dash-st td.c-next { grid-column: 3 / -1; }
  .data.stack-sm.dash-st td.c-best3 { grid-column: 2; }
  .data.stack-sm.dash-st td.c-ch, .data.stack-sm.dash-st td.c-heats { display: none; }
  .data.stack-sm.dash-st .pname { max-width: none; }
  .data.stack-sm.dash-champ td.c-form { grid-column: 1 / -1; }
  .dash-board-head { align-items: flex-start; }
  .dash-sort { width: 100%; }
  .dash-tools { width: 100%; min-width: 0; }
  .dash-tools .dash-search { flex: 1 1 100%; max-width: none; }
  .dash-board-head > div:first-child { min-width: 0; }
  .dash-seats li { grid-template-columns: auto minmax(0, 1fr) auto auto; }
  .dash-seat-best { display: none; }
  .dash-pilot-acts .btn { flex: 1 1 auto; }
}

/* TV: one 1920×1080 screen, big type, the leaderboard scrolls itself */
.dash-tv { max-width: none; padding: 24px 36px; }
.dash-tv .dash-home { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); grid-template-areas: "track board" "next board"; }
.dash-tv .dash-board-scroll { max-height: calc(100vh - 220px); overflow: hidden; }
.dash-tv .dash-board { height: 100%; }
.dash-tv .dash-st .c-ch, .dash-tv .dash-st .c-heats, .dash-tv .dash-st .c-avg, .dash-tv .dash-st .c-season, .dash-tv .dash-st .c-next { display: none; }
.dash-tv .dash-st .c-cons { display: table-cell; }
.dash-tv .dash-star { display: none; }
.dash-tv .data td, .dash-tv .data th { font-size: 1.15rem; }
.dash-tv .lc { font-size: 15px; }
.dash-tv .dash-race-t .h3 { font-size: 1.6rem; }
.dash-tv .dash-clock { font-size: 1.8rem; }
.dash-tv .dash-seats li { font-size: 1.05rem; }
.dash-tvbar { position: fixed; right: 16px; bottom: 16px; opacity: .25; transition: opacity var(--t-med); z-index: 20; }
.dash-tvbar:hover, .dash-tvbar:focus-within { opacity: 1; }
@media (max-width: 1000px) { .dash-tv .dash-home { grid-template-columns: minmax(0, 1fr); grid-template-areas: "track" "board" "next"; } .dash-tv .dash-board-scroll { max-height: none; } }

/* TV pilot tiles */
.dash-tiles { display: grid; gap: var(--s-4); }
.dash-tiles-head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--s-4); }
.dash-tiles-head h1 { margin: 0; }
.dash-tile-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.dash-tile { position: relative; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); overflow: hidden; padding: var(--s-4) var(--s-5) var(--s-5); box-shadow: inset 0 4px 0 var(--c, var(--brand)); }
.dash-tile.is-pb { box-shadow: inset 0 4px 0 var(--pb), 0 0 0 2px var(--pb); }
.dash-tile.is-out { opacity: .6; }
.dash-tile-top { display: flex; align-items: center; gap: var(--s-3); }
.dash-tile-top .pos { width: 46px; height: 46px; font-size: 1.4rem; }
.dash-tile-name { font: 800 1.6rem/1.1 var(--font-display); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
.dash-tile-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-2); margin: var(--s-4) 0 var(--s-3); }
.dash-tile-stats div { min-width: 0; }
.dash-tile-stats dt { font-size: var(--fs-xs); color: var(--text-3); text-transform: lowercase; }
.dash-tile-stats dd { margin: 0; font: 700 1.4rem/1.1 var(--font-mono); }
.dash-tile-stats dd small { font-size: .6em; color: var(--text-3); }
.dash-tile .dash-laps .lc { font-size: 14px; }

@media (prefers-reduced-motion: reduce) { .lc.land, .dash-mv.flash, .lc.pending, .dash-race.is-flash, tr.is-improved td.c-best .dash-vp { animation: none; } }

/* "When do I fly?": races until each pilot flies, their heat, channel and an estimated start */
.dash-flyt .c-pos { width: 1%; }
.dash-flyt .c-heat { min-width: 0; }
.dash-flyt .c-eta { white-space: nowrap; width: 1%; }
.dash-fly-compact { max-height: 380px; overflow-y: auto; }
@media (max-width: 640px) { .dash-fly-compact { max-height: 460px; } }
.dash-rn { display: inline-grid; place-items: center; min-width: 34px; height: 30px; padding: 0 6px; border-radius: 8px; background: var(--surface-3); font: 800 var(--fs-md)/1 var(--font-display); }
.dash-rn.is-now { background: var(--live); color: #fff; }
.dash-rn.is-next { background: var(--brand); color: var(--brand-ink); }
.dash-rn.is-soon { background: color-mix(in oklab, var(--brand) 35%, var(--surface-3)); }
.dash-rn.is-pred { border: 1px dashed var(--line-strong); }
.dash-rn.is-none { background: transparent; color: var(--text-3); }
.dash-eta { font-size: var(--fs-sm); white-space: nowrap; }
.dash-nx.is-out { color: var(--text-3); }
.dash-branches { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 4px; font-size: var(--fs-sm); }
.dash-branches li { display: flex; flex-wrap: wrap; gap: 2px 8px; align-items: baseline; padding-left: 10px; border-left: 2px solid var(--line-strong); }
.dash-branches li.is-advance { border-color: var(--ok); }
.dash-branches li.is-lower { border-color: var(--warn); }
.dash-branches li.is-out, .dash-branches li.is-final { border-color: var(--text-3); }
.dash-br-k { font-weight: 700; }
.dash-then { margin: var(--s-2) 0 0; color: var(--text-2); }
.dash-flycard { display: flex; gap: var(--s-4); align-items: flex-start; padding: var(--s-4) var(--s-5); border-width: 2px; }
.dash-flycard.is-now { border-color: var(--live); background: color-mix(in oklab, var(--live) 10%, var(--surface)); }
.dash-flycard.is-soon { border-color: var(--brand); background: color-mix(in oklab, var(--brand) 8%, var(--surface)); }
.dash-flycard-n { display: grid; justify-items: center; flex: none; min-width: 72px; }
.dash-flycard-big { font: 900 clamp(2.8rem, 2rem + 3vw, 4.2rem)/1 var(--font-display); font-stretch: 110%; }
.dash-flycard.is-now .dash-flycard-big { color: var(--live); }
.dash-flycard.is-soon .dash-flycard-big { color: var(--brand); }
.dash-flycard-t { min-width: 0; flex: 1; }
.dash-flycard-t .eyebrow { margin: 0; }
.dash-flycard-h { font: 800 clamp(1.2rem, 1rem + 1vw, 1.6rem)/1.2 var(--font-display); margin: 4px 0; }
.dash-flycard-eta { font: 600 var(--fs-md)/1.2 var(--font-body); color: var(--text-2); }
.dash-flycard-sub { margin: 0 0 var(--s-2); }
.dash-br-hint { margin: 0; }
.dash-lb { padding: 0; }
@media (max-width: 640px) {
  .dash-flycard { padding: var(--s-4); gap: var(--s-3); }
  .dash-flycard-n { min-width: 56px; }
  .data.stack-sm.dash-flyt td.c-heat { grid-column: 2 / -1; }
}
