/* Material 3 race board. Reuse the website's theme roles, including dark mode. */
.qualified-section{
 --qf-primary:var(--md-primary);--qf-on-primary:var(--md-on-primary);
 --qf-primary-container:var(--md-primary-container);--qf-on-primary-container:var(--md-primary-dark);
 --qf-surface:var(--md-surface);--qf-tonal:var(--md-surface-variant);--qf-background:var(--md-background);
 --qf-ink:var(--md-on-surface);--qf-muted:var(--md-on-surface-variant);--qf-line:var(--md-outline-variant);
 --qf-success:var(--md-success);--qf-success-container:var(--md-success-container);
 --qf-error:var(--md-error);--qf-error-container:var(--md-error-container);
 min-width:0;scroll-margin-top:112px;font-family:ScoremanRoboto,Roboto,Arial,sans-serif;color:var(--qf-ink);-webkit-font-smoothing:antialiased
}
.qualified-section *{box-sizing:border-box}
.qualified-section .results-eyebrow{color:var(--qf-primary);letter-spacing:.1em;font-weight:650}
.qualified-section .results-heading h2{color:var(--qf-ink);letter-spacing:-.03em}
.qualified-section .results-heading p{font-size:13px;line-height:1.5;color:var(--qf-muted)}
.qf-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:20px 0}
.qf-toolbar>div{width:100%;max-width:480px}
.qf-toolbar label{display:block;font-size:12px;font-weight:600;margin-bottom:7px;color:var(--qf-muted)}
.qf-toolbar input{width:100%;min-height:48px;border:1px solid var(--qf-line);border-radius:28px;padding:12px 18px;background:var(--qf-tonal);color:var(--qf-ink);font:inherit}
.qf-toolbar input::placeholder{color:var(--qf-muted);opacity:1}
.qf-legend{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--qf-success)}
.qf-legend i{width:8px;height:8px;border-radius:50%;background:var(--qf-success);flex:none}
.public-qualified-notice{margin-top:18px;border:1px solid var(--qf-line);border-radius:24px;overflow:hidden;background:var(--qf-surface)}
.public-qualified-notice[hidden]{display:none}
.public-qualified-notice>summary{display:flex;align-items:center;gap:16px;list-style:none;min-height:72px;padding:20px 22px;background:var(--qf-primary-container);color:var(--qf-on-primary-container);cursor:pointer}
.public-qualified-notice>summary::-webkit-details-marker{display:none}
.public-qualified-notice>summary:after{content:'+';display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:50%;font-size:22px;color:var(--qf-primary);background:var(--qf-surface)}
.public-qualified-notice[open]>summary:after{content:'−'}
.public-qualified-notice>summary:hover:after{background:var(--qf-primary);color:var(--qf-on-primary)}
.qf-event-copy{display:grid;gap:5px;flex:1;min-width:0}
.qf-event-copy>strong{font-size:22px;font-weight:650;letter-spacing:-.025em;color:var(--qf-on-primary-container);line-height:1.25;overflow-wrap:anywhere}
.qf-event-copy>span{font-size:12px;color:var(--qf-on-primary-container)}
.qf-published{padding:7px 11px;border-radius:20px;background:var(--qf-surface);color:var(--qf-primary);font-size:11px;font-weight:600}
.qf-content{padding:18px;min-width:0}
.qf-round-switcher{display:none}
.qf-progress{display:flex;gap:16px;margin:0;padding:0;list-style:none}
.qf-progress>li{position:relative;flex:1;min-width:0;padding:11px 13px;background:var(--qf-background);border:1px solid var(--qf-line);border-radius:16px}
.qf-progress>li:not(:last-child):after{content:'›';position:absolute;right:-13px;top:10px;color:var(--qf-primary);font-size:22px}
.qf-progress>li.has-list{background:var(--qf-tonal)}
.qf-progress strong{display:block;font-size:12px;font-weight:650;color:var(--qf-primary)}
.qf-progress span{display:block;margin-top:4px;font-size:10px;line-height:1.5;color:var(--qf-muted)}
.qf-board-help{display:flex;justify-content:space-between;gap:12px;margin:16px 0 10px;color:var(--qf-muted);font-size:10px}
.qf-board{display:flex;align-items:flex-start;gap:16px;overflow-x:auto;padding:2px 1px 12px;scroll-snap-type:x proximity;scrollbar-width:thin}
.qf-round{position:relative;flex:1 0 350px;min-width:0;border:1px solid var(--qf-line);border-radius:20px;background:var(--qf-background);scroll-snap-align:start;overflow:hidden}
.qf-round-title{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px;background:var(--qf-primary-container);color:var(--qf-on-primary-container)}
.qf-round-title h3{margin:0!important;font-size:16px!important;font-weight:650;color:inherit!important;letter-spacing:-.01em}
.qf-round-title>span{white-space:nowrap;border-radius:20px;padding:4px 8px;background:var(--qf-surface);color:var(--qf-primary);font-size:11px;font-weight:550}
.qf-round-rule{display:none}
.qf-round-note{font-size:10px;line-height:1.5;color:var(--qf-muted);margin:0;padding:9px 10px}
.qf-heat{margin:0 8px 12px;border:1px solid var(--qf-line);border-radius:12px;overflow:hidden;background:var(--qf-surface)}
.qf-heat>header{display:flex;align-items:center;justify-content:space-between;padding:10px;background:var(--qf-tonal);border-bottom:1px solid var(--qf-line)}
.qf-heat h4{margin:0;font-size:13px;font-weight:650;color:var(--qf-primary)}
.qf-heat>header>span{font-size:10px;color:var(--qf-muted)}
.qf-heat-columns,.qf-skater{display:grid;grid-template-columns:23px 34px minmax(0,1fr) 26px 84px;column-gap:6px;padding:6px 8px}
.qf-heat.is-startlist .qf-heat-columns,.qf-heat.is-startlist .qf-skater{grid-template-columns:23px 34px minmax(0,1fr)}
.qf-heat-columns{align-items:center;font-size:9px;line-height:1.3;letter-spacing:.025em;color:var(--qf-muted);background:var(--qf-surface);border-bottom:1px solid var(--qf-line)}
.qf-heat.has-results .qf-heat-columns>span:last-child{text-align:right}
.qf-heat-columns>span:first-child,.qf-heat-columns>span:nth-child(4){text-align:center}
.qf-skaters{list-style:none;margin:0;padding:0}
.qf-skater{align-items:center;border-bottom:1px solid var(--qf-line);min-height:42px}
.qf-skater:last-child{border-bottom:0}
.qf-skater.is-qualified{background:var(--qf-success-container);box-shadow:inset 2px 0 var(--qf-success)}
.qf-skater.has-sanction{background:var(--qf-error-container);box-shadow:inset 2px 0 var(--qf-error)}
.qf-lane{display:grid;place-items:center;width:23px;min-height:24px;border-radius:8px;background:var(--qf-tonal);color:var(--qf-muted);font-size:12px;font-weight:550;font-variant-numeric:tabular-nums}
.qf-heat-position{display:grid;place-items:center;min-height:24px;border-radius:8px;background:var(--qf-primary-container);color:var(--qf-on-primary-container);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.qf-bib{font-size:11px;font-weight:600;color:var(--qf-muted);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.qf-athlete{min-width:0}
.qf-athlete>strong{display:block;font-size:13px;font-weight:600;line-height:1.3;overflow-wrap:anywhere;color:var(--qf-ink)}
.qf-team{display:block;margin-top:2px;font-size:10px;line-height:1.3;color:var(--qf-muted);overflow-wrap:anywhere}
.qf-metrics{display:flex;align-items:flex-end;justify-content:center;flex-direction:column;gap:3px;min-width:0}
.qf-time{font:600 12px/1.3 ScoremanRoboto,Roboto,Arial,sans-serif;color:var(--qf-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.qf-qualification{display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;font-size:9px;line-height:1.25;font-weight:600;white-space:nowrap;color:var(--qf-success)}
.qf-qualification b{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 3px;border-radius:5px;background:var(--qf-surface);color:var(--qf-success);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.qf-sanctions{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}
.qf-sanctions>span,.qf-terminal{display:inline-block;border:1px solid currentColor;border-radius:5px;padding:1px 4px;background:var(--qf-error-container);color:var(--qf-error);font-size:9px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.qf-round.is-pending{background:var(--qf-surface);border-style:dashed}
.qf-round.is-pending .qf-round-title{background:var(--qf-tonal);color:var(--qf-muted)}
.qf-round.is-pending .qf-round-title>span{color:var(--qf-muted)}
.qf-empty{padding:26px 18px;text-align:center;color:var(--qf-muted);font-size:12px}
.qf-empty>span{display:block;font-size:28px;letter-spacing:8px;color:var(--qf-primary)}
.qf-empty>strong{display:block;margin-top:7px;font-size:13px;font-weight:550;color:var(--qf-ink)}
.qf-empty p{line-height:1.6}
.qf-footer{margin-top:12px;padding-top:12px;border-top:1px solid var(--qf-line);font-size:10px;color:var(--qf-muted);line-height:1.6}
.qualified-section :is(button,input,summary,.qf-board):focus-visible{outline:3px solid var(--qf-primary);outline-offset:3px}
@media(min-width:1600px){.qf-round{flex-basis:320px}}
@media(max-width:900px){
 .public-championship .qualified-section{padding:20px 12px;border-radius:24px}
 .qualified-section .results-heading{align-items:flex-start;flex-wrap:wrap;gap:10px}
 .qualified-section .results-heading p{font-size:13px;line-height:1.5;margin:6px 0 0}
 .qualified-section .results-heading .btn{min-height:48px}
 .qf-toolbar{align-items:flex-start;flex-direction:column;gap:12px;margin:18px 0}
 .qf-toolbar>div{max-width:none}.qf-toolbar input{font-size:16px}
 .qf-legend{font-size:11px;line-height:1.5;margin-left:3px}
 .public-qualified-notice{border-radius:20px;margin-top:14px}
 .public-qualified-notice>summary{padding:16px 12px;gap:10px}
 .qf-event-copy>strong{font-size:20px}.qf-event-copy>span{font-size:12px;line-height:1.5}.qf-published{display:none}
 .qf-content{padding:12px 8px}.qf-progress{display:none}
 .qf-interactive .qf-round-switcher{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:8px;margin:0 0 12px;padding:6px;border-radius:32px;background:var(--qf-tonal)}
 .qf-round-arrow{display:grid;place-items:center;width:48px;height:48px;min-height:48px;margin:0;padding:0;border:0;border-radius:50%;background:var(--qf-primary);color:var(--qf-on-primary);font:inherit;cursor:pointer;touch-action:manipulation;transition:background-color 160ms ease,transform 160ms ease}
 .qf-round-arrow>span{font-size:32px;font-weight:400;line-height:1;transform:translateY(-1px)}
 .qf-round-arrow:hover:not(:disabled){background:var(--md-primary-hover)}
 .qf-round-arrow:active:not(:disabled){transform:scale(.94)}
 .qf-round-arrow:disabled{background:var(--qf-surface);color:var(--qf-muted);opacity:.45;cursor:default}
 .qf-round-current{display:grid;gap:3px;min-width:0;text-align:center}
 .qf-round-current strong{font-size:15px;font-weight:650;line-height:1.3;color:var(--qf-ink);overflow-wrap:anywhere}
 .qf-round-current small{font-size:10px;line-height:1.3;color:var(--qf-muted)}
 .qf-board-help{display:block;font-size:10px;line-height:1.5;margin:0 1px 10px}.qf-board-help>span:last-child{display:none}
 .qf-board{display:block;overflow:visible;padding:0;scroll-snap-type:none}
 .qf-round{width:100%;min-width:0;margin-bottom:14px;border:0;border-radius:16px;background:transparent;overflow:hidden}
 .qf-interactive .qf-round:not(.is-active){display:none}.qf-round:last-child,.qf-interactive .qf-round.is-active{margin-bottom:0}
 .qf-interactive .qf-round.is-active{animation:qf-reveal 160ms ease-out}
 .qf-round-title{padding:13px 12px;border-radius:16px}.qf-round-title h3{font-size:16px!important}
 .qf-round-rule{display:block;color:var(--qf-muted);font-size:11px;line-height:1.5;margin:9px 2px 0}
 .qf-round-note{font-size:10px;padding:4px 2px 11px}
 .qf-heat{margin:0 0 12px;border-radius:12px}.qf-heat:last-child{margin-bottom:0}
 .qf-heat>header{padding:10px}.qf-heat h4{font-size:13px}.qf-heat>header>span{font-size:11px}
 .qf-heat-columns,.qf-skater{grid-template-columns:22px 31px minmax(0,1fr) 23px 78px;column-gap:5px;padding:6px}
 .qf-heat.is-startlist .qf-heat-columns,.qf-heat.is-startlist .qf-skater{grid-template-columns:22px 34px minmax(0,1fr);column-gap:8px;padding:7px 9px}
 .qf-heat-columns{font-size:9px;padding-top:5px;padding-bottom:5px}
 .qf-lane{width:22px}.qf-bib{font-size:10px}.qf-time{font-size:11px}
 .qf-athlete>strong{font-size:13px;line-height:1.3}.qf-team{font-size:10px;line-height:1.3}
 .qf-qualification{font-size:9px}.qf-qualification b{font-size:10px;height:16px;min-width:15px}
 .qf-footer{font-size:10px;margin-top:15px;padding-top:12px}
}
@media(max-width:380px){
 .public-championship .qualified-section{padding:18px 8px}.qf-content{padding:10px 5px}
 .qf-heat-columns,.qf-skater{grid-template-columns:19px 27px minmax(0,1fr) 21px 74px;column-gap:3px;padding-left:4px;padding-right:4px}
 .qf-lane{width:19px;font-size:11px}.qf-heat-position{font-size:11px}.qf-bib{font-size:10px}.qf-athlete>strong{font-size:12px}
 .qf-round-current strong{font-size:14px}
}
@keyframes qf-reveal{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.qf-round-arrow{transition:none}.qf-interactive .qf-round.is-active{animation:none}}
@media print{
 .qf-toolbar,.qf-board-help,.qf-round-switcher,.qualified-section .results-heading>a{display:none!important}
 .qf-board{display:flex;overflow:visible;flex-wrap:wrap}.qf-interactive .qf-round:not(.is-active){display:block}
 .qf-round{flex:1 0 320px;break-inside:avoid}.public-qualified-notice{break-inside:auto;box-shadow:none}.qf-progress>li{break-inside:avoid}
}

/* Final classifications stay inside their race's final round. */
.qf-final{margin:0 8px 12px;border:1px solid var(--qf-line);border-radius:12px;overflow:hidden;background:var(--qf-surface)}
.qf-final-heading{margin:0;padding:12px 10px;font-size:13px;font-weight:650;color:var(--qf-primary)}
.qf-final-podium{display:grid;grid-template-columns:1fr 1.12fr 1fr;align-items:end;gap:8px;padding:8px 10px 0;background:var(--qf-tonal)}
.qf-medallist{text-align:center;min-width:0;--medal-bg:#f1dfce;--medal-ink:#75441f}
.qf-medallist-1{--medal-bg:#ffedb5;--medal-ink:#715100}.qf-medallist-2{--medal-bg:#e1e7ef;--medal-ink:#415571}
.qf-medallist-photo{width:48px;height:48px;object-fit:cover;border-radius:50%;margin:0 auto 8px;border:2px solid var(--medal-ink)}
.qf-medallist>strong{display:block;font-size:12px;line-height:1.4;overflow-wrap:anywhere;color:var(--qf-ink)}
.qf-medallist>small{display:block;font-size:10px;line-height:1.4;margin:4px 0 10px;overflow-wrap:anywhere;color:var(--qf-muted)}
.qf-medal-step{display:grid;gap:3px;padding:9px 3px;border-radius:10px 10px 0 0;background:var(--medal-bg);color:var(--medal-ink)}
.qf-medal-step b{font-size:22px;line-height:1.2}.qf-medal-step span{font-size:10px;font-weight:600}
.qf-medallist-1 .qf-medal-step{padding-bottom:30px}.qf-medallist-2 .qf-medal-step{padding-bottom:20px}
.qf-final-classification{border-top:1px solid var(--qf-line)}
.qf-final-table{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed}
.qf-final-table th,.qf-final-table td{padding:8px 6px;border-bottom:1px solid var(--qf-line);font-size:11px;text-align:left;vertical-align:middle;overflow-wrap:anywhere}
.qf-final-table th{background:var(--qf-tonal);color:var(--qf-muted);font-size:9px;font-weight:500}
.qf-final-table th:first-child{width:46px}.qf-final-table th:last-child{width:90px}
.qf-final-table td:last-child,.qf-final-table th:last-child{text-align:right}
.qf-final-table td>strong{display:block;font-size:12px;line-height:1.4;color:var(--qf-ink)}
.qf-final-table .qf-sanctions{justify-content:flex-end}.qf-final-table tr:last-child td{border-bottom:0}
.qf-final .public-race-photos{margin:0;padding:10px;border-top:1px solid var(--qf-line)}
@media(max-width:900px){.qf-final{margin:0}.qf-final-table .qf-time{font-size:11px}}
