/* Reusable identity and table components. Typography tokens live in styles.css. */
.country-flag { display:inline-block; width:1.625rem; height:1.21875rem; object-fit:contain; flex:0 0 1.625rem; vertical-align:middle; }
.calendar-race-title-line .country-flag { margin-top:.25rem; }
.table .country-flag { margin-right:.5rem; }
.roster-facts .roster-number strong { font-size:1.5rem; font-variant-numeric:tabular-nums; }
.roster-facts strong { overflow-wrap:anywhere; }
.roster-facts .country-flag { margin-right:.5rem; }
.table-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.table-scroll:focus-visible { outline:3px solid var(--orange-dark); outline-offset:3px; }
.table-scroll-hint { margin:.5rem 0; font-size:var(--text-sm); color:var(--muted); }
h1 { font-size:var(--text-title); line-height:1.2; }
h2 { font-size:var(--text-section); line-height:1.3; }
h3 { font-size:var(--text-card); line-height:1.3; }
:where(button,input,select,textarea) { font-size:var(--text-body); }
:where(button,a,summary) { touch-action:manipulation; }
:where(p,li,h1,h2,h3,h4) { overflow-wrap:break-word; }
:where(td.num,td.cell-end,.position) { font-variant-numeric:tabular-nums; }
@media (max-width:620px) {
 .roster-item { grid-template-columns:2.5rem minmax(0,1fr); gap:1rem; padding:1rem; }
 .roster-item:hover { padding:1rem; }
 .roster-facts { grid-column:2; gap:1rem; }
 .results-page .result-protection-summary { grid-template-columns:minmax(0,1fr); }
 .results-page .result-protection-summary > .result-winner-toggle { justify-self:start; }
}

small { font-size:var(--text-sm); }

.hx-home .hx-skip { color:var(--ink); }
.hx-home .hx-stats-cta .hx-btn { background:transparent; }
.hx-home .hx-stats-cta .hx-btn-solid { background:var(--orange); }

.roster-rank { flex:0 0 2.5rem; }
.roster-identity { flex:1 1 12rem; min-width:0; }
.roster-facts .roster-number strong { white-space:nowrap; }

.site-header { --muted: #c4c4c4; --ink: #f2f2f2; --line: #555555; }
.site-header .nav { border-color:var(--line); }
.site-footer { --ink:#f2f2f2; --muted:#c4c4c4; --line:#555555; --orange-dark:var(--orange); }
.footer-social { display:flex; flex-wrap:wrap; gap:.25rem 1.25rem; grid-column:1; grid-row:2; }
.footer-social a { display:inline-flex; align-items:center; min-height:44px; font-size:var(--text-sm); }
.footer-contact { grid-row:3; }
.results-season-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; }
.results-season-actions [hidden] { display:none; }
.results-page .results-season-table .result-winner-toggle { width:13rem; max-width:100%; min-height:44px; padding:.5rem .75rem; flex-wrap:nowrap; background:transparent; border-color:transparent; }
.results-page .results-season-table .result-winner-toggle:hover { background:rgba(255,107,0,.09); border-color:var(--line); color:var(--ink); }
.results-page .results-season-table .result-winner-toggle:hover .result-eye-off::after { box-shadow:none; }
.results-page .results-season-table .result-winner-toggle.is-revealed:hover { text-decoration:underline; text-underline-offset:.25em; }
.results-page .result-winner-toggle [hidden] { display:none; }
.results-page .result-winner-value { transition:none; }
@media(max-width:860px) { .has-nav-toggle .site-header.is-nav-open .nav { background:var(--black); } }
@media(max-width:620px) { .footer-social { grid-column:1/-1; grid-row:auto; } .footer-contact { grid-row:auto; } .results-season-actions { width:100%; } }

/* Shared column geometry keeps labels and values on the same baseline. */
.results-page .results-season-table th { text-transform:uppercase; font-size:.75rem; letter-spacing:.045em; }
.results-page .results-season-table .cell-result { text-align:left; width:15rem; }
.results-page .results-season-table .result-winner-slot { margin:0; justify-content:flex-start; }
.results-page .results-season-table .result-winner-toggle { justify-content:flex-start; width:100%; padding:.5rem 0; gap:.6rem; text-align:left; }
.results-page .results-season-table .result-winner-value { text-align:left; white-space:nowrap; }
.roster-item { display:grid; grid-template-columns:3rem minmax(0,1fr) minmax(20rem,.75fr); gap:1.5rem; padding:1.5rem; transition:background .18s; text-decoration:none; color:var(--ink); }
.roster-item:hover { padding:1.5rem; background:var(--surface); }
.roster-identity { display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem 1.5rem; }
.roster-identity h3 { margin:0; font-size:1.2rem; min-width:12rem; }
.roster-team { font-size:.875rem; font-weight:500; }
.roster-facts { display:grid; grid-template-columns:1fr 9rem; gap:1.5rem; }
.roster-facts strong { margin:0; font-weight:500; overflow-wrap:normal; }
.roster-facts .roster-number strong { font-size:1rem; }
.roster-rank { color:var(--muted); font-size:1rem; }
@media(max-width:900px) {
 .roster-item { grid-template-columns:2rem minmax(0,1fr); gap:1rem; padding:1.25rem; }
 .roster-item:hover { padding:1.25rem; }
 .roster-facts { grid-column:2; padding:0; border:0; grid-template-columns:1fr 1fr; }
 .roster-identity { gap:.3rem 1rem; }
 .roster-identity h3 { min-width:0; }
}
@media(max-width:640px) {
 .results-page .results-season-table.mobile-cards .season-result-row .cell-result { width:auto; text-align:left; }
 .results-page .results-season-table.mobile-cards .season-result-row .result-winner-slot { justify-content:flex-start; }
}
