/* race.php: one 2026 contest. Tokens only (DESIGN.md); charts use css/archive-charts.css, candidate cards css/vf-system.css. */
.rc-main { padding-bottom: 48px; }
.rc-hero { padding-inline: 16px; }
.rc-shell { max-width: var(--vf-page); }
.rc-crumbs { margin: 4px 0 12px; color: var(--vf-mute); font-size: .875rem; text-align: center; }
.rc-crumbs a { color: var(--vf-blue-text); }
.rc-toc { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 24px; padding: 0; }
.rc-toc a { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 14px; border: 1px solid var(--vf-rule); border-radius: var(--vf-radius-pill); background: var(--vf-surface); color: var(--vf-ink); font-size: .875rem; font-weight: 600; text-decoration: none; }
.rc-toc a:hover { border-color: var(--vf-navy); }
.rc-toc a:focus-visible { outline: 3px solid var(--vf-blue); outline-offset: 2px; }
.rc-sec { margin: 0 0 20px; padding: 20px 16px; border: 1px solid var(--vf-rule); border-radius: var(--vf-radius); background: var(--vf-surface); box-shadow: var(--vf-shadow-sm); scroll-margin-top: 80px; }
.rc-sec > h2 { margin: 0 0 12px; color: var(--vf-ink); font: 700 clamp(1.5rem, 3.4vw, 1.875rem)/1.15 var(--vf-font-head); letter-spacing: -.01em; }
.rc-source, .rc-note { margin: 12px 0 0; color: var(--vf-ink-2); font-size: .875rem; line-height: 1.5; }
.rc-note { color: var(--vf-mute); }
.rc-source a, .rc-note a, .rc-held a, .rc-src a { color: var(--vf-blue-text); text-decoration: underline; }
.rc-held { margin: 0; color: var(--vf-ink-2); line-height: 1.55; }
.rc-flag { margin: 0 0 12px; padding: 10px 12px; border-left: 3px solid var(--vf-gold); background: var(--vf-surface-2); line-height: 1.5; }
.rc-names { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.rc-facts ul { margin: 0; padding: 0 0 0 1.1em; }
.rc-facts li { margin: 0 0 10px; line-height: 1.55; }
.rc-src { display: block; color: var(--vf-mute); font-size: .8125rem; }
.rc-table-wrap { overflow-x: auto; }
.rc-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: .9375rem; }
.rc-table caption { padding: 0 0 8px; color: var(--vf-ink-2); font-size: .875rem; text-align: left; }
.rc-table th, .rc-table td { padding: 8px 10px; border-bottom: 1px solid var(--vf-rule); text-align: left; vertical-align: top; }
.rc-table thead th { color: var(--vf-mute); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rc-table td { text-align: right; }
.rc-table td:nth-child(2) { text-align: left; }
.rc-details { margin: 12px 0 0; }
.rc-details > summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; color: var(--vf-ink); font-weight: 700; }
.rc-details > summary:focus-visible { outline: 3px solid var(--vf-blue); outline-offset: 2px; }
.rc-links { display: grid; grid-template-columns: 1fr; gap: 4px 20px; margin: 8px 0; padding: 0; list-style: none; }
.rc-links a { display: inline-block; padding: 6px 0; color: var(--vf-blue-text); }
.rc-news { margin: 0; padding: 0; list-style: none; }
.rc-news li { padding: 10px 0; border-bottom: 1px solid var(--vf-rule); }
.rc-news a { color: var(--vf-ink); font: 600 1.0625rem/1.35 var(--vf-font-head); text-decoration: none; }
.rc-news a:hover { text-decoration: underline; }
.rc-news-meta { display: block; margin-top: 4px; color: var(--vf-mute); font-size: .8125rem; }
@media (min-width: 720px) {
  .rc-sec { padding: 24px 28px; }
  .rc-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1040px) {
  .rc-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
