.results-page-wrap{max-width:1180px;padding-top:22px}
.results-mobile-sticky-header[hidden]{display:none}
.results-mobile-sticky-header{position:fixed;top:0;z-index:65;overflow:hidden;background:var(--panel2);box-shadow:0 1px var(--line)}
.results-mobile-header-scroll{overflow:hidden;width:100%}
.results-mobile-sticky-header .results-table{min-width:0!important;margin:0}
@media(max-width:650px), (max-width:1000px) and (max-height:550px){
  body:has(>main.results-page-wrap)>.topbar,body:has(>main.results-page-wrap)>.nav{position:static;top:auto}
  .results-mobile-sticky-header .results-table th{top:auto}
}
/* Keep unclassified riders discoverable without opening a long list on arrival. */
.zrs-verification-needed>summary{display:flex;align-items:center;gap:.65rem;min-height:38px;list-style:none;cursor:pointer}
.zrs-verification-needed>summary::-webkit-details-marker{display:none}
.zrs-verification-needed>summary h2{margin:0;min-width:0}
.zrs-verification-toggle{flex:0 0 1rem;color:#fd6900;font-weight:800;line-height:1;text-align:center}
.zrs-verification-toggle::before{content:'+'}
.zrs-verification-needed[open] .zrs-verification-toggle::before{content:'−'}
.zrs-verification-needed>summary:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:4px}
.zrs-verification-content{padding-top:12px}
@media(max-width:760px){.zrs-verification-needed>summary{min-height:44px}}
.results-head{align-items:center}
.results-head h1{margin:4px 0 2px;font-size:1.85rem}
.results-notice{max-width:900px;margin-top:12px;padding:10px 12px;border:1px solid #d85a5a;border-radius:6px;background:#ffe8e8;color:#a51313;font-size:.76rem;line-height:1.45}
:root[data-theme=dark] .results-notice{border-color:#9e4545;background:#3b2022;color:#ffaaaa}
.results-updated{color:var(--muted);font-size:.72rem}
.results-demo-notice{margin:0 0 12px;padding:10px 14px;border:1px solid #d7a45e;border-radius:8px;background:#fff4e2;color:#613b0b;font-size:.78rem;line-height:1.45}
:root[data-theme=dark] .results-demo-notice{border-color:#946c37;background:#35291a;color:#ffdeb2}
.results-filters{display:grid;grid-template-columns:repeat(5,minmax(135px,1fr)) auto;gap:10px;align-items:end;padding:14px;margin-bottom:14px}
.results-filter-panel{margin-bottom:14px}
.results-filter-panel>.results-filters{margin-bottom:0}
.results-filter-panel>summary{display:none}
.results-filters .field{min-width:0}
.results-filters label{display:block;margin-bottom:4px;color:var(--muted);font-size:.85rem}
.results-filters select{box-sizing:border-box;width:100%;height:38px;padding:7px 9px;font-size:.78rem}
.results-filter-actions{display:flex;align-self:end;gap:7px}
.results-filter-actions .btn{height:38px;min-height:38px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;padding:0 11px;font-size:.78rem;line-height:1}
.results-pagination .btn{height:38px;min-height:38px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;padding:0 11px;line-height:1}
:root:not([data-theme=dark]) .results-filter-actions a.btn:hover,:root:not([data-theme=dark]) .results-filter-actions a.btn:focus-visible{background:var(--panel2);border-color:var(--accent);color:var(--text);filter:none}
.results-table-wrap{overflow:auto;border-radius:var(--r)}
.results-table{width:100%;min-width:1120px;border-collapse:collapse;font-size:.78rem}
.results-table th{padding:8px 12px;background:var(--panel2);color:var(--muted);font-size:.68rem;text-align:left;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.results-table thead th,.results-table thead th.num,.results-table thead th.result-position,.results-table thead th.result-total{font-family:var(--disp);font-size:.9rem;font-weight:600;line-height:1.15}
.results-table th.num,.results-table th.result-total{text-align:right}
.result-sort,.result-sort:visited{display:inline-flex;align-items:center;justify-content:flex-start;gap:4px;color:var(--muted);text-decoration:none}
.results-table th.num .result-sort,.results-table th.result-total .result-sort{display:flex;justify-content:flex-end;width:100%}
.result-sort:hover,.result-sort:focus-visible{color:var(--text)}
.result-sort-indicator{display:inline-block;min-width:1em;font-family:"IBM Plex Mono",monospace;font-size:.62rem;line-height:1;text-align:center;opacity:.55}
.results-table th[aria-sort="ascending"] .result-sort-indicator,.results-table th[aria-sort="descending"] .result-sort-indicator{color:#fd6900;opacity:1}
.results-table td{height:20px;box-sizing:border-box;padding:2px 12px;border-top:1px solid var(--line);vertical-align:middle;white-space:nowrap;line-height:18px}
.results-table tbody tr:hover{background:color-mix(in srgb,var(--panel2) 70%,transparent)}
.results-table .num{text-align:right;font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}
.results-table .result-position{width:52px;text-align:center;font-family:"IBM Plex Mono",monospace;font-weight:700}
.individual-results-table th.result-total,.individual-results-table td.result-total,
.team-results-table th.result-total,.team-results-table td.result-total,
.team-roster-table th.result-total,.team-roster-table td.result-total{padding-right:16px}
.results-position-cup{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;vertical-align:middle}
.results-position-cup svg{display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.22))}
.results-position-cup--1{color:#d9a514}
.results-position-cup--2{color:#9daabd}
.results-position-cup--3{color:#b8753d}
.segment-results-table .result-position:has(.results-position-cup){text-align:center}
@media(max-width:650px){
  .results-filter-panel{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}
  .results-filter-panel>summary{display:flex;align-items:center;gap:10px;padding:13px 15px;list-style:none;color:var(--text);font-weight:700;cursor:pointer}
  .results-filter-panel>summary::-webkit-details-marker{display:none}
  .results-filter-icon{display:inline-grid;place-items:center;width:16px;color:#fd6900;font-size:1.15rem;line-height:1}
  .results-filter-icon::before{content:'+'}
  .results-filter-panel[open] .results-filter-icon::before{content:'−'}
  .results-filter-panel>.results-filters{border:0;border-top:1px solid var(--line);border-radius:0}
  .team-results-table>thead>tr>th:nth-child(8),.team-results-table>tbody>tr:not(.team-roster-row)>td:nth-child(8){position:sticky;right:78px;z-index:2;min-width:76px;background:var(--panel);box-shadow:-1px 0 var(--line)}
  .team-results-table>thead>tr>th:nth-child(9),.team-results-table>tbody>tr:not(.team-roster-row)>td:nth-child(9){position:sticky;right:0;z-index:2;min-width:78px;background:var(--panel);box-shadow:-1px 0 var(--line)}
  .team-results-table>thead>tr>th:nth-child(8),.team-results-table>thead>tr>th:nth-child(9){z-index:3;background:var(--panel2)}
  .team-roster-table th:last-child,.team-roster-table td:last-child,.segment-results-table th:last-child,.segment-results-table td:last-child,.standings-results-table th:last-child,.standings-results-table td:last-child{position:sticky;right:0;z-index:2;background:var(--panel);box-shadow:-1px 0 var(--line)}
  .team-roster-table th:last-child,.segment-results-table th:last-child,.standings-results-table th:last-child{z-index:3;background:var(--panel2)}
}
.results-table .result-country{width:54px;text-align:center}
.country-flag{display:inline-block;width:24px;height:18px;max-width:none;border:0;border-radius:0;box-shadow:none;object-fit:contain;vertical-align:middle}
.results-table td.result-country{padding-top:1px;padding-bottom:1px;overflow:visible;line-height:18px}
.results-table .result-category{width:50px;text-align:center}
.result-category-badge{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font:700 11px/1 Arial,sans-serif;vertical-align:middle}
.result-category-badge--a{background:#c72c3e;color:#fff}
.result-category-badge--b{background:#47bf6d;color:#fff}
.result-category-badge--c{background:#2468c9;color:#fff}
.result-category-badge--d{background:#f1ce49;color:#000}
.result-category-badge--e{background:#8a55c6;color:#fff}
.result-category-badge--zrs{width:auto;min-width:3rem;height:auto;min-height:1.3rem;padding:.1rem .4rem;border-radius:.4rem;background:var(--category-bg,#5b3b9e);color:var(--category-fg,#fff);font:700 .75rem/1.2 "IBM Plex Sans",sans-serif;white-space:nowrap}
.standings-results-table .result-category-badge:not(.result-category-badge--a):not(.result-category-badge--b):not(.result-category-badge--c):not(.result-category-badge--d):not(.result-category-badge--e){width:auto;min-width:3rem;height:auto;min-height:1.3rem;padding:.1rem .4rem;border-radius:.4rem;background:#5b3b9e;color:#fff;font:700 .75rem/1.2 "IBM Plex Sans",sans-serif;white-space:nowrap}
.segment-results-table .result-category-badge:not(.result-category-badge--a):not(.result-category-badge--b):not(.result-category-badge--c):not(.result-category-badge--d):not(.result-category-badge--e){width:auto;min-width:3rem;height:auto;min-height:1.3rem;padding:.1rem .4rem;border-radius:.4rem;background:#5b3b9e;color:#fff;font:700 .75rem/1.2 "IBM Plex Sans",sans-serif;white-space:nowrap}
.standings-results-table .result-category-badge--zrs,.segment-results-table .result-category-badge--zrs{background:var(--category-bg,#5b3b9e);color:var(--category-fg,#fff)}
.result-rider{min-width:190px;max-width:280px;overflow:hidden;text-overflow:ellipsis}
.result-rider strong{font-weight:600}
.result-rider .rider-profile-link,.result-rider .rider-profile-link:visited,.result-rider .rider-profile-link:hover,.result-rider .rider-profile-link:focus-visible{color:inherit;text-decoration:none}
.results-table .result-source-col{width:52px;text-align:center}
.result-source-bolt{display:inline-flex;align-items:center;justify-content:center;width:14px;vertical-align:middle}
.result-source-bolt svg{display:block}
.result-source-bolt--fit{color:#1888d8}
.result-source-bolt--live{color:#2ba64b}
.result-flag{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:6px;border-radius:50%;background:#b42318;color:#fff;font-size:.62rem}
.result-team{min-width:155px;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.team-badge{display:inline-block;max-width:175px;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;padding:2px 6px 3px;border:0;border-radius:3px;background:var(--team-background);color:var(--team-color);box-shadow:none;font-family:"ZwiftSprint-Medium",Helvetica,sans-serif;font-size:10.2px;font-weight:700;line-height:10.2px;vertical-align:middle;white-space:nowrap}
.result-time{font-weight:400}
.result-time{min-width:88px}
.result-points{width:72px;min-width:72px}
.result-total{font-weight:700;color:#fd6900}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table){min-width:0;table-layout:fixed}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th,
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) td{padding-left:4px;padding-right:4px;min-width:0}
.results-table-wrap.panel>.individual-results-table th.result-total,
.results-table-wrap.panel>.individual-results-table td.result-total{padding-right:16px}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(1){width:4%}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(2){width:4%}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(3){width:4%}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(4){width:20%}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(5){width:16%}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(6){width:4%}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(7){width:10%}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(8),
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(9),
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(10){width:6%}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(11){width:8%}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:nth-child(12){width:10%}
.results-table-wrap.panel>.individual-results-table th:nth-child(3){width:10%!important}
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) .result-rider,
.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) .result-team{overflow:hidden;text-overflow:ellipsis}
@media(max-width:850px){.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table){min-width:1050px}.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) th:last-child,.results-table-wrap.panel>.results-table:not(.team-results-table):not(.standings-results-table):not(.segment-results-table) td:last-child{position:sticky;right:0;background:var(--panel);box-shadow:-1px 0 var(--line)}}
.results-empty{text-align:center!important;padding:44px!important;color:var(--muted)}
.results-pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin:18px}
.results-note{margin:13px 2px 0;color:var(--muted);font-size:.72rem;line-height:1.5}
@media(max-width:1000px){.results-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.results-filter-actions{align-items:stretch}}
@media(max-width:650px){.results-filters{grid-template-columns:1fr}.results-filter-actions .btn{flex:1}.results-page-wrap{padding-top:14px}}

.results-view-tabs{display:flex;gap:20px;margin:0 0 10px;border-bottom:1px solid var(--line)}
.results-view-tab{display:inline-flex;align-items:center;min-height:38px;padding:7px 2px;border-bottom:2px solid transparent;color:var(--muted);font-size:.8rem;font-weight:700;text-decoration:none}
.results-view-tab:hover,.results-view-tab:focus-visible{color:var(--text)}
.results-view-tab.active{border-bottom-color:#fd6900;color:var(--text)}
.results-filters-team{grid-template-columns:repeat(5,minmax(135px,1fr)) auto}
.team-results-table{min-width:1000px;table-layout:fixed}
.team-results-table>thead>tr>th:nth-child(1),.team-results-table>tbody>tr:not(.team-roster-row)>td:nth-child(1){width:7%}
.team-results-table>thead>tr>th:nth-child(2),.team-results-table>tbody>tr:not(.team-roster-row)>td:nth-child(2){width:33%}
.team-results-table>thead>tr>th:nth-child(3),.team-results-table>tbody>tr:not(.team-roster-row)>td:nth-child(3){width:8%}
.team-results-table>thead>tr>th:nth-child(4),.team-results-table>tbody>tr:not(.team-roster-row)>td:nth-child(4),.team-results-table>thead>tr>th:nth-child(5),.team-results-table>tbody>tr:not(.team-roster-row)>td:nth-child(5),.team-results-table>thead>tr>th:nth-child(6),.team-results-table>tbody>tr:not(.team-roster-row)>td:nth-child(6){width:7%}
.team-results-table>thead>tr>th:nth-child(7),.team-results-table>tbody>tr:not(.team-roster-row)>td:nth-child(7){width:8%}
.team-results-table>thead>tr>th:nth-child(8),.team-results-table>tbody>tr:not(.team-roster-row)>td:nth-child(8){width:10%}
.team-results-table>thead>tr>th:nth-child(9),.team-results-table>tbody>tr:not(.team-roster-row)>td:nth-child(9){width:13%}
.team-results-table .team-result-name{min-width:190px;font-weight:700}
.team-roster-toggle{display:inline-flex;align-items:center;gap:7px;padding:2px 0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.team-roster-toggle:hover,.team-roster-toggle:focus-visible{color:#fd6900}
.team-roster-chevron{display:inline-block;color:#fd6900;transition:transform .15s}
.team-roster-toggle[aria-expanded=true] .team-roster-chevron{transform:rotate(90deg)}
.team-roster-count{color:var(--muted);font-size:.68rem;font-weight:400}
.team-rider-adjustment{display:inline-flex;align-items:center;margin-left:8px;padding:1px 6px;border:1px solid #fd6900;border-radius:999px;background:color-mix(in srgb,#fd6900 12%,var(--panel));color:#b94c00;font-size:.64rem;font-weight:700;line-height:1.35;white-space:nowrap}
:root[data-theme=dark] .team-rider-adjustment{color:#ffad74}
.team-rider-adjustment--pending{border-color:var(--line);background:var(--panel2);color:var(--muted)}
.team-rider-excluded{display:inline-block;margin-left:7px;color:#b94c00;font-size:.63rem;font-weight:600}
:root[data-theme=dark] .team-rider-excluded{color:#ffad74}
.team-results-table .team-roster-row[hidden]{display:none}
.team-results-table .team-roster-row>td{padding:0!important;background:var(--panel2);white-space:normal}
.team-roster-scroll{max-width:100%;overflow-x:auto}
.team-roster-table{width:100%;min-width:1000px;table-layout:fixed;border-collapse:collapse;font-size:.78rem}
.team-roster-table th,.team-roster-table td{padding:2px 12px;white-space:nowrap}
.team-roster-table th{padding-top:8px;padding-bottom:8px;background:var(--panel2)}
.team-roster-table .team-roster-rider{overflow:hidden;text-overflow:ellipsis;font-weight:600}
.team-roster-table .result-country,.team-roster-table .result-category{text-align:center}
.team-roster-rider a,.team-roster-rider a:visited{color:inherit;text-decoration:none}
.team-roster-empty{color:var(--muted)}
@media(max-width:650px){.results-view-tabs{gap:14px;overflow-x:auto;white-space:nowrap}.results-filters-team{grid-template-columns:1fr}}
.results-filters-segment{grid-template-columns:repeat(5,minmax(125px,1fr)) auto;grid-template-areas:"race segment type . . ." "competition category league division club actions"}
.results-filters-segment:not(:has(.result-league-field)){grid-template-areas:"race segment type . . ." "competition category division club . actions"}
.results-filters-segment:not(:has(.result-division-field)){grid-template-areas:"race segment type . . ." "competition category league club . actions"}
.results-filters-segment:not(:has(.result-league-field)):not(:has(.result-division-field)){grid-template-areas:"race segment type . . ." "competition category club . . actions"}
.results-filters-segment .result-race-field{grid-area:race}
.results-filters-segment .result-segment-field{grid-area:segment}
.results-filters-segment .results-type-field{grid-area:type}
.results-filters-segment .result-competition-field{grid-area:competition}
.results-filters-segment .result-league-field{grid-area:league}
.results-filters-segment .result-category-field{grid-area:category}
.results-filters-segment .result-division-field{grid-area:division}
.results-filters-segment .result-club-field{grid-area:club}
.results-filters-segment .results-filter-actions{grid-area:actions}
.results-type-field{min-width:0;margin:0;padding:0;border:0}
.results-type-field legend{margin-bottom:4px;color:var(--muted);font-size:.72rem}
.results-type-choices{display:flex;height:38px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:var(--panel2)}
.results-filters .results-type-choices label{display:flex;align-items:center;justify-content:center;flex:1;gap:5px;margin:0;color:var(--text);font-size:.78rem;cursor:pointer}
.results-type-choices label+label{border-left:1px solid var(--line)}
.results-type-choices label:has(input:checked){background:color-mix(in srgb,var(--accent) 12%,var(--panel2));color:var(--text);font-weight:700}
.results-type-choices input{accent-color:#fd6900}
.segment-results-context{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:2px 0 10px;color:var(--muted);font-size:.76rem}
.segment-results-context strong{color:#fd6900}
.segment-group{margin-bottom:10px;overflow:hidden}
.segment-group summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:40px;padding:8px 12px;cursor:pointer;list-style:none}
.segment-group summary::-webkit-details-marker{display:none}
.segment-group summary::before{content:'+';color:#fd6900;font-weight:700}
.segment-group[open] summary::before{content:'−'}
.segment-group-title{color:var(--text);font-size:.86rem;font-weight:700}
.segment-group-context{margin-left:auto;color:var(--muted);font-size:.72rem}
.segment-group-body{border-top:1px solid var(--line)}
.segment-load-note,.segment-preview-foot{margin:0;padding:12px;color:var(--muted);font-size:.76rem}
.segment-load-note a,.segment-preview-foot a{color:var(--accent)}
.results-segment-empty{padding:28px;color:var(--muted);text-align:center}
.segment-table-wrap{border:0;border-radius:0}
.segment-results-table{min-width:620px}
.segment-results-table .result-position{text-align:right}
.segment-results-table th.result-position .result-sort{justify-content:flex-end}
.segment-results-table .segment-points{color:#fd6900;font-weight:700}
.segment-mobile-meta,.segment-mobile-identity{display:none}
@media(max-width:1000px){.results-filters-segment{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"race segment type" "competition category league" "division club actions"}.results-filters-segment:not(:has(.result-league-field)){grid-template-areas:"race segment type" "competition category division" "club . actions"}.results-filters-segment:not(:has(.result-division-field)){grid-template-areas:"race segment type" "competition category league" "club . actions"}.results-filters-segment:not(:has(.result-league-field)):not(:has(.result-division-field)){grid-template-areas:"race segment type" "competition category club" ". . actions"}}
@media(max-width:650px){.results-filters-segment{grid-template-columns:1fr;grid-template-areas:none}.segment-results-table{min-width:0}.segment-results-table th,.segment-results-table td{padding:4px}.segment-results-table .segment-desktop-club,.segment-results-table .segment-desktop-source{display:none}.segment-results-table .result-position{width:36px}.segment-results-table .result-country{width:30px}.segment-results-table .result-category{width:26px}.segment-results-table .result-rider{min-width:105px;max-width:none;white-space:normal;line-height:1.3}.segment-results-table .result-rider strong{display:block;font-weight:600}.segment-mobile-meta{display:flex;align-items:center;gap:5px;margin-top:2px}.segment-results-table .result-time{min-width:65px}.segment-results-table .result-points{width:44px;min-width:44px}.segment-group-context{margin-left:0}.segment-group summary{justify-content:space-between}}
@media(max-width:450px){.segment-results-table .result-country,.segment-results-table .result-category{display:none}.segment-mobile-identity{display:inline-flex;align-items:center;gap:4px;margin-right:4px}.segment-results-table .result-rider strong{display:inline}.segment-results-table .result-position{width:33px}.segment-results-table .result-time{min-width:60px}.segment-results-table .result-points{min-width:39px;width:39px}}
@media(max-width:650px){.results-filters-segment{grid-template-areas:none!important}.results-filters-segment>.field,.results-filters-segment>.results-type-field,.results-filters-segment>.results-filter-actions{grid-area:auto}}
.standings-group{margin-top:14px;overflow:hidden}
.results-type-choices label[hidden]{display:none!important}
.standings-group h2{margin:0;padding:11px 14px;font-size:1.1rem;background:var(--panel2);border-bottom:1px solid var(--line)}
.standings-group--collapsible>summary{display:flex;align-items:center;gap:.5rem;padding:11px 14px;background:var(--panel2);list-style:none;cursor:pointer}
.standings-group--collapsible>summary::-webkit-details-marker{display:none}
.standings-group--collapsible[open]>summary{border-bottom:1px solid var(--line)}
.standings-group--collapsible>summary h2{flex:1;padding:0;border:0;background:none;min-width:0}
.standings-group-toggle{flex:none;width:1rem;text-align:center;color:#f97316;font-weight:700}
.standings-group-toggle::before{content:'+'}
.standings-group--collapsible[open] .standings-group-toggle::before{content:'−'}
.standings-group-count{color:var(--muted);font-family:var(--body);font-size:.8rem;font-weight:400;white-space:nowrap}
.standings-group-head:focus-visible{outline:2px solid #f97316;outline-offset:-2px}
.standings-group>.results-pagination{margin:0;padding:.65rem 14px;border-top:1px solid var(--line)}
.standings-results-table{min-width:900px;table-layout:fixed}
.standings-results-table col.standings-col-pos{width:6%}
.standings-results-table col.standings-col-flag{width:6%}
.standings-results-table col.standings-col-cat{width:10%}
.standings-results-table col.standings-col-rider{width:25%}
.standings-results-table col.standings-col-club{width:19%}
.standings-results-table col.standings-col-src{width:5%}
.standings-results-table col.standings-col-races{width:7%}
.standings-results-table col.standings-col-missed{width:8%}
.standings-results-table col.standings-col-value{width:12%}
.standings-results-table--gc{min-width:1040px}
.standings-results-table--gc col.standings-col-rider{width:22%}
.standings-results-table--gc col.standings-col-club{width:16%}
.standings-results-table--gc col.standings-col-medals{width:9%}
.standings-results-table--gc col.standings-col-bonus{width:9%}
.standings-results-table--gc col.standings-col-rider{width:19%}
.standings-results-table--gc col.standings-col-club{width:13%}
.standings-results-table--gc col.standings-col-value{width:11%}
.standings-results-table--gc .gc-bonus-col{white-space:nowrap}
.standings-results-table--gc td.gc-bonus-applied{color:#c6303b;font-weight:700}
:root[data-theme=dark] .standings-results-table--gc td.gc-bonus-applied{color:#ff818c}
.standings-results-table--gc td.gc-total-with-average{color:#245bc7}
:root[data-theme=dark] .standings-results-table--gc td.gc-total-with-average{color:#8db7ff}
.standings-results-table .result-race-medals{text-align:left;white-space:nowrap}
.standings-results-table /* RC22: podium medals read as one cluster rather than a spaced list.
   They are emoji glyphs with no box background, so the slight overlap
   shows the medal artwork itself touching. */
.result-race-medals span{display:inline-block;margin-right:-5px;font-size:1.15rem;line-height:1;background:none}
.result-race-medals span:last-child{margin-right:0}
.standings-results-table .result-country,.standings-results-table .result-category,.standings-results-table .result-source-col{width:auto}
.standings-results-table .result-rider,.standings-results-table .result-team{min-width:0}
/* Match the GC leaderboard's breathing room between position, flag, category and rider. */
@media(min-width:651px){
  .individual-results-table th:nth-child(1),.individual-results-table th:nth-child(2){width:6%!important}
  .individual-results-table th:nth-child(4){width:16%!important}
  .individual-results-table th:nth-child(5){width:12%!important}
  .individual-results-table th:nth-child(7){width:8%!important}
  .individual-results-table th:nth-child(-n+4),.individual-results-table td:nth-child(-n+4),
  .segment-results-table th:nth-child(-n+4),.segment-results-table td:nth-child(-n+4){padding-left:12px;padding-right:12px}
  .segment-results-table{table-layout:fixed;min-width:900px}
  .segment-results-table .result-position,.segment-results-table .result-country{width:6%}
  .segment-results-table .result-category{width:110px}
  .segment-results-table .result-position{text-align:center}
  .segment-results-table th.result-position .result-sort{justify-content:center}
}
@media(max-width:650px){.standings-results-table th,.standings-results-table td{padding-left:6px;padding-right:6px}}
@media(max-width:650px){
  .segment-group summary{justify-content:flex-start;gap:6px;flex-wrap:wrap;text-align:left}
  .segment-group-title{flex:1 1 calc(100% - 24px);text-align:left}
  .segment-group-context{flex-basis:100%;margin:0 0 0 20px;text-align:left}
  .segment-results-table{min-width:900px;table-layout:fixed}
  .segment-results-table th,.segment-results-table td{padding:6px}
  .segment-results-table .result-position{width:62px;text-align:center}
  .segment-results-table th.result-position .result-sort{justify-content:center}
  .segment-results-table .result-country{display:table-cell;width:52px;text-align:center}
  .segment-results-table .result-category{display:table-cell;width:110px;text-align:center}
  .segment-results-table .result-rider{width:240px;min-width:200px;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.35}
  .segment-results-table .result-rider strong{display:inline;white-space:nowrap}
  .segment-results-table .segment-desktop-club,.segment-results-table .segment-desktop-source{display:table-cell}
  .segment-results-table .segment-mobile-identity,.segment-results-table .segment-mobile-meta{display:none}
  .segment-results-table .result-time{min-width:85px}
  .segment-results-table .result-points{width:72px;min-width:72px}
}
/* Keep the unlabelled source icon between category and rider on every board. */
.individual-results-table th.result-source-col,.individual-results-table td.result-source-col,
.segment-results-table th.result-source-col,.segment-results-table td.result-source-col,
.standings-results-table th.result-source-col,.standings-results-table td.result-source-col{width:42px;min-width:42px;text-align:center}
.results-table .result-source-col{padding-left:6px;padding-right:6px}
/* Alternating rows inherit the active theme's panel colours. */
.results-table tbody tr:nth-child(even){--leaderboard-row-bg:color-mix(in srgb,var(--panel2) 48%,var(--panel));background:var(--leaderboard-row-bg)}
.results-table tbody tr:nth-child(even):hover{--leaderboard-row-bg:color-mix(in srgb,var(--panel2) 75%,var(--panel))}
.results-table tbody tr:nth-child(even)>td{background:var(--leaderboard-row-bg)!important}
.individual-results-table th.result-rider,.individual-results-table td.result-rider,
.segment-results-table th.result-rider,.segment-results-table td.result-rider,
.standings-results-table th.result-rider,.standings-results-table td.result-rider{padding-left:8px}
@media(min-width:651px){
  .results-table-wrap.panel>.individual-results-table th.result-total,
  .results-table-wrap.panel>.individual-results-table td.result-total{padding-right:32px!important}
}
@media(max-width:650px){
  .results-table-wrap.panel>.individual-results-table th.result-total,
  .results-table-wrap.panel>.individual-results-table td.result-total{padding-right:20px!important}
}

/* RC22: searching runs against the data source, so the control says so
   rather than letting a reader assume it filters only what is on screen. */
.result-rider-field input[type=search]{box-sizing:border-box;width:100%;padding:7px 9px;border:1px solid var(--line2);border-radius:7px;background:var(--panel);color:var(--text);font-size:.82rem}
.result-rider-field input[type=search]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.result-rider-field{position:relative}
.results-filters-individual{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px 12px}
.results-filters-individual .result-club-find-me{display:contents}
.results-filters-individual .result-race-field{grid-column:1;grid-row:1;order:1}
.results-filters-individual .field:has(#result-start){grid-column:2;grid-row:1;order:2}
.results-filters-individual .result-competition-field{grid-column:3;grid-row:1;order:3}
.results-filters-individual .result-category-field{grid-column:4;grid-row:1;order:4}
.results-filters-individual .result-club-field{grid-column:5;grid-row:1;order:5}
.results-filters-individual .result-find-me-inline{grid-column:1;grid-row:2;order:6}
.results-filters-individual .result-rider-field{grid-column:2/4;grid-row:2;order:7}
.results-filters-individual .result-rider-field input{height:38px}
.results-filters-individual .result-league-field{grid-column:1;grid-row:3;order:9}
.results-filters-individual .result-division-field{grid-column:2;grid-row:3;order:10}
.results-filters-individual label.result-find-me-inline{display:flex;align-items:center;gap:5px;flex:none;height:38px;margin:0;white-space:nowrap}
.results-filters-individual .result-find-me-help{grid-column:1/-1;margin:0;font-size:.72rem}
.results-filters-individual .results-filter-actions{grid-column:4/6;grid-row:2;justify-content:flex-start;order:8}
.results-filters-individual .results-filter-actions .btn{flex:none}
@media(max-width:1000px){.results-filters-individual{grid-template-columns:repeat(2,minmax(0,1fr))}.results-filters-individual>:is(.field,.results-filter-actions),.results-filters-individual .result-club-field,.results-filters-individual .result-find-me-inline{grid-column:auto!important;grid-row:auto!important}.results-filters-individual .result-find-me-help{order:11}}
@media(max-width:650px){.results-filters-individual{grid-template-columns:1fr}}

/* RC22: the standings carry the same search control as the results table. */
.standings-rider-field input[type=search]{box-sizing:border-box;width:100%;padding:7px 9px;border:1px solid var(--line2);border-radius:7px;background:var(--panel);color:var(--text);font-size:.82rem}
.standings-rider-field input[type=search]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* RC22: the standings page has no jersey filter panel, so the rider search
   stands on its own rather than living inside a form that page never shows. */
.standings-search{display:flex;align-items:flex-end;gap:12px;margin-bottom:12px;padding:12px 14px}
.standings-search .field{flex:1;min-width:0;margin:0}
.standings-search--gc{flex-wrap:wrap}
.standings-search--gc .standings-find-me-inline{display:flex;align-items:center;gap:5px;flex:none;height:38px;margin:0;white-space:nowrap}
.standings-search--gc .standings-rider-field input[type=search]{height:38px}
.standings-search--gc>.btn{height:38px;min-height:38px;box-sizing:border-box;display:inline-flex;align-items:center}
.standings-search--gc .standings-find-me-help{flex-basis:100%;margin:0;font-size:.72rem}
.standings-search--jersey{flex-wrap:wrap;align-items:flex-end}
.standings-search--jersey .standings-round-field{flex:0 1 170px}
.standings-search--jersey .standings-round-field select{box-sizing:border-box;width:100%;height:38px;padding:7px 9px;font-size:.78rem}
.standings-search--jersey .standings-find-me-inline{display:flex;align-items:center;gap:5px;flex:none;height:38px;margin:0;white-space:nowrap}
.standings-search--jersey .standings-rider-field{flex:1 1 180px}
.standings-search--jersey .standings-rider-field input[type=search]{height:38px}
.standings-search--jersey>.btn{flex:none;width:auto;min-width:0;height:38px;min-height:38px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;padding:0 11px;white-space:nowrap}
.standings-search--jersey .standings-find-me-help{flex-basis:100%;margin:0;font-size:.72rem}

/* RC22: the gap to the leader sits beside the cumulative time, quieter than
   the time itself so the ranking still reads first. */

/* RC22: the gap to the leader is its own column, so the Time header sits
   over the times and the table keeps its existing width rather than
   stretching past the wrapper and producing a horizontal scrollbar. */
.standings-col-gap{width:112px}
td.standings-gap{padding-left:6px;padding-right:8px;text-align:left;white-space:nowrap;
  font-weight:400;font-size:.7rem;font-variant-numeric:tabular-nums;color:var(--muted)}
/* Only the GC trims this padding, because its gap column supplies the
   gutter. The jersey views have nothing to the right of Points, so they
   keep the same 12px the table uses elsewhere, matching Pos on the left. */
.standings-results-table--gc td.result-total,.standings-results-table--gc th.result-total{padding-right:4px}
.standings-results-table:not(.standings-results-table--gc) td.result-total,
.standings-results-table:not(.standings-results-table--gc) th.result-total{padding-right:12px}
.standings-col-rider{width:20%}
.standings-col-club{width:15%}

/* RC22: inside the jersey filter panel the search sits in the row with
   Round and the submit button, so the controls read as one line. */
.results-filters .standings-rider-field{display:flex;flex-direction:column;gap:4px;min-width:170px}
.results-filters .standings-rider-field input[type=search]{box-sizing:border-box;width:100%;padding:7px 9px;border:1px solid var(--line2);border-radius:7px;background:var(--panel);color:var(--text);font-size:.82rem}

/* RC22: the races behind a summed row. These are rows of the results
   table itself, so the columns need no widths of their own - only a
   quieter treatment that sets them apart from the rider rows. */
.race-breakdown-toggle{display:inline-flex;align-items:center;gap:6px;padding:2px 0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.race-breakdown-toggle:hover,.race-breakdown-toggle:focus-visible{color:#fd6900}
.race-breakdown-chevron{display:inline-block;color:#fd6900;transition:transform .15s}
.race-breakdown-toggle[aria-expanded=true] .race-breakdown-chevron{transform:rotate(90deg)}
.individual-results-table .race-breakdown-row[hidden]{display:none}
.individual-results-table .race-breakdown-row>td{background:var(--panel2);color:var(--muted);font-size:.78rem}
.individual-results-table .race-breakdown-row+tr:not(.race-breakdown-row)>td{border-top:1px solid var(--line)}
/* No colour of its own: the label takes the muted tone set on the row,
   so it matches the time and points beside it. */
.individual-results-table .race-breakdown-row>td.race-breakdown-name{font-weight:500;white-space:nowrap;overflow:visible;text-overflow:clip}
.individual-results-table .race-breakdown-name time{white-space:nowrap;color:var(--muted);font-size:inherit}
.individual-results-table .race-breakdown-row>td.race-breakdown-pos{font-weight:600}
.individual-results-table .race-breakdown-row>td .position-medal{display:inline-block;font-size:1.15rem;line-height:1;vertical-align:middle}
.individual-results-table .race-breakdown-row>td.result-total{color:var(--ink);font-weight:600}

/* A standings view this series does not publish: an explanation and a way
   onward, rather than a bare Not Found. */
.standings-unavailable p{max-width:62ch}
.standings-unavailable-list{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.standings-unavailable-list li{margin:0}
.standings-unavailable-list form{margin:0}
.standings-unavailable-actions{margin-top:18px}

/* Match provisional standings' Round & race label across result filters.
   Keep helper text, control sizing and checkbox alignment independent. */
.results-page-wrap :is(.results-filters,.standings-search,.raced-filters) label{font-family:var(--body);font-size:.85rem;font-weight:600;font-style:normal;line-height:1.55;color:var(--muted)}

/* Shared positive-action accent, matching dashboard Check Signups. */
/* Outrank the shared .primary:not(...) theme rules, without changing other buttons. */
.results-page-wrap button.btn.results-filter-apply:not(.is-connected):not(.twitch):not(.auth-provider-button){background:#e1f3e8;color:#126c3d;border:1px solid #91c9a6;font:600 .78rem/1 var(--body)}
.results-page-wrap button.btn.results-filter-apply:not(.is-connected):not(.twitch):not(.auth-provider-button):hover{background:#d4ecde;border-color:#74b88d;filter:none}
.results-page-wrap button.btn.results-filter-apply:not(.is-connected):not(.twitch):not(.auth-provider-button):focus-visible{outline:2px solid #126c3d;outline-offset:3px}
:root[data-theme=dark] .results-page-wrap button.btn.results-filter-apply:not(.is-connected):not(.twitch):not(.auth-provider-button){background:#203e30;color:#bce8cc;border-color:#477c5d}
:root[data-theme=dark] .results-page-wrap button.btn.results-filter-apply:not(.is-connected):not(.twitch):not(.auth-provider-button):hover{background:#284c3a}
:root[data-theme=dark] .results-page-wrap button.btn.results-filter-apply:not(.is-connected):not(.twitch):not(.auth-provider-button):focus-visible{outline-color:#bce8cc}

@media(max-width:650px), (max-width:1000px) and (max-height:550px){
  /* Keep GC's time beside its already pinned gap when scrolling on phones. */
  .standings-results-table--gc th.standings-col-gap{width:112px}
  .standings-results-table--gc :is(th,td).result-total{position:sticky;right:112px;z-index:2;background:var(--panel);box-shadow:-1px 0 var(--line)}
  .standings-results-table--gc :is(th,td):last-child{position:sticky;right:0;z-index:2;background:var(--panel);box-shadow:-1px 0 var(--line)}
  .standings-results-table--gc thead th.result-total{z-index:3;background:var(--panel2)}
}
