
.athlete-map-frame { position: relative; }
.athlete-map-tools { position: absolute; top: 12px; right: 12px; z-index: 2; }
.athlete-map-frame.is-expanded { position: fixed; inset: 12px; z-index: 1060; background: white; border-radius: 12px; box-shadow: 0 0 0 20px #17263c80; }
.athlete-map-frame.is-expanded [data-athlete-map] { height: 100% !important; }
@media (max-width: 575px) { .athlete-map-frame.is-expanded { inset: 0; border-radius: 0; } }

.athlete-checkpoint-stats { display:flex; gap:12px; padding:12px 0; }
.athlete-checkpoint-stat { flex:0 0 200px; width:200px; padding:12px; border:1px solid #dce3e9; border-radius:8px; background:#fff; font-size:13px; }
.athlete-checkpoint-stats.is-aligned { display:block; position:relative; padding:0; }
.athlete-checkpoint-stats.is-aligned .athlete-checkpoint-stat { position:absolute; }
.athlete-checkpoint-stats.is-aligned .athlete-checkpoint-stat::before { content:''; position:absolute; top:-12px; left:var(--checkpoint-anchor); height:11px; border-left:1px solid #8ca0b8; }
.athlete-timeline-scroll .athlete-checkpoint-stat .small { position:static; padding:0; max-width:none; }

.athlete-vertical-timeline .athlete-checkpoint-stat { position:relative; width:auto; margin-left:8px; padding:0 0 24px 20px; border:0; border-left:2px solid #dce3e9; border-radius:0; }
.athlete-vertical-timeline .athlete-checkpoint-stat:last-child { padding-bottom:0; }
.athlete-vertical-timeline .athlete-checkpoint-stat::before { content:''; position:absolute; left:-5px; top:5px; width:8px; height:8px; background:#8ca0b8; border-radius:50%; }

.athlete-timeline-scroll [data-athlete-boxes] { margin-top:12px; }

.athlete-timeline-scroll svg { cursor:grab; }
.athlete-timeline-scroll.is-dragging svg { cursor:grabbing; }

/* The visible athlete box uses the shared result-card layout unchanged. */
.event-page .athlete-result-card { border-top:6px solid var(--athlete-social-color,#194e66) !important; }
.athlete-heading-actions { display:flex; align-items:center; justify-content:flex-end; gap:.65rem; margin-left:auto; }
.athlete-heading-actions .race-metrics { justify-content:flex-end; }

/* Export uses the same result renderer and CSS as the page, with a fixed canvas width. */
.athlete-social-card { position:fixed; top:0; left:-10000px; pointer-events:none; z-index:-1; width:560px; box-sizing:border-box; padding:24px; border:1px solid #e4e9ee; border-top:6px solid var(--athlete-social-color); border-radius:1rem; background:#fff; color:#223b46; font-family:var(--bs-body-font-family); }
.athlete-social-heading { margin-bottom:1rem; overflow-wrap:anywhere; }
.athlete-social-event { margin-bottom:.5rem; font-size:.875rem; color:#687c87; }
.athlete-social-card footer { display:flex; justify-content:center; margin-top:1rem; padding-top:1rem; border-top:1px solid #e4e9ee; }
.athlete-social-card footer img { display:block; width:100px; height:auto; }

[data-athlete-position-detail] { white-space:pre-line; }
.athlete-chart-point { cursor:pointer; }
.athlete-chart-point:focus-visible { outline:2px solid #1769e0; outline-offset:3px; }

.athlete-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; margin:1rem 0 .4rem; }
.athlete-summary-grid > div { min-width:0; padding:.8rem; background:#f1f5f8; border:1px solid #e0e8ed; border-radius:.65rem; }
.athlete-summary-grid dt { color:#526875; font-size:.75rem; font-weight:600; }
.athlete-summary-grid dd { margin:.35rem 0 0; color:#193b43; font-size:1.2rem; font-weight:750; overflow-wrap:anywhere; }
.athlete-summary-grid dd small { font-size:.7em; font-weight:500; }
.athlete-summary-note { margin:0; font-size:.75rem; color:#526875; }
@media(max-width:575px) { .athlete-summary-grid { gap:.4rem; } .athlete-summary-grid > div { padding:.65rem .5rem; } .athlete-summary-grid dt { min-height:3em; } .athlete-summary-grid dd { font-size:1rem; } }

/* Comparison shares the event panels, spacing and typography. */
.athlete-compare-canvas { height:92dvh!important; max-height:1040px; border-radius:1rem 1rem 0 0; color:#223b46; }
.comparison-sheet-header { gap:1rem; padding:1rem max(1.25rem,calc((100% - 1100px)/2)); border-bottom:1px solid var(--event-panel-border,#e4e9ee); }
.comparison-sheet-title { display:flex; align-items:center; gap:.85rem; min-width:0; }
.comparison-sheet-title h2 { font-weight:750; color:#193b43; }
.comparison-sheet-title p { overflow-wrap:anywhere; }
.comparison-sheet-icon,.comparison-lead-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; background:#eaf1f4; border-radius:12px; color:#194e66; font-size:1.15rem; }
.athlete-compare-canvas .offcanvas-body { padding:1.25rem; background:#f5f7fa; }
.comparison-workspace { max-width:1100px; margin:auto; display:grid; gap:1rem; }
.comparison-panel,.comparison-athlete { border:1px solid var(--event-panel-border,#e4e9ee); border-radius:var(--event-panel-radius,1rem); background:#fff; box-shadow:var(--event-panel-shadow,0 3px 16px rgb(23 43 68 / 6%)); min-width:0; }
.comparison-search-panel { padding:1rem 1.25rem; }
.comparison-intro { margin:0 0 .85rem; color:#657a85; font-size:.85rem; }
.comparison-add-form { display:flex; align-items:flex-end; gap:.65rem; }
.comparison-add-form label { flex:1; min-width:0; }
.comparison-add-form .results-control-label > span { color:#193b43; }
.comparison-add-form .form-control { background:#f5f7fa; }
.comparison-add-form .form-control,.comparison-add-form .btn { min-height:44px; border-radius:.65rem; }
.comparison-add-form .btn { display:flex; align-items:center; justify-content:center; gap:.5rem; }
.comparison-message { margin:.65rem 0 0; color:#657a85; font-size:.8rem; }
.comparison-message:empty { display:none; }
.comparison-athletes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.comparison-athlete { padding:1.1rem 1.25rem; border-top:3px solid var(--comparison-color); }
.comparison-athlete-top { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.8rem; }
.comparison-bib { display:inline-flex; align-items:center; gap:.5rem; font-size:.8rem; font-weight:750; color:var(--comparison-color); }
.comparison-color-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--comparison-color); flex-shrink:0; }
.comparison-athlete-heading { display:flex; align-items:center; gap:.75rem; min-height:48px; }
.comparison-athlete-heading > div { flex-shrink:0; margin:0!important; }
.comparison-athlete-heading a { color:#193b43; font-size:1rem; font-weight:750; line-height:1.3; overflow-wrap:anywhere; text-decoration:none; }
.comparison-athlete-heading a:hover { text-decoration:underline; }
.comparison-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; margin:1rem 0 0; padding-top:1rem; border-top:1px solid #edf1f4; }
.comparison-stats > div { min-width:0; }
.comparison-stats dt { color:#657a85; font-size:.7rem; font-weight:500; min-height:2.6em; }
.comparison-stats dd { margin:.25rem 0 0; color:#193b43; font-size:.9rem; font-weight:750; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.comparison-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; min-height:190px; padding:1.25rem; border:1px dashed #c6d5e3; border-radius:1rem; background:#f0f4f7; text-align:center; color:#657a85; font-size:.8rem; }
.comparison-empty strong { color:#194e66; font-size:.9rem; }
.comparison-empty:hover { border-color:#194e66; background:#eaf1f4; }
.comparison-empty-icon { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:white; color:#194e66; font-size:1.35rem; }
[data-comparison-results] { display:grid; gap:1rem; }
.comparison-lead { display:flex; align-items:center; gap:.8rem; padding:.9rem 1.1rem; background:#eaf1f4; border:1px solid #dae5eb; border-radius:.85rem; }
.comparison-lead-icon { background:#fff; }
.comparison-lead strong { display:block; font-size:.95rem; color:#193b43; }
.comparison-lead div > span { display:block; margin-top:.2rem; font-size:.75rem; color:#657a85; }
.comparison-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.1rem 1.25rem; border-bottom:1px solid #edf1f4; }
.comparison-panel-heading h3 { font-size:.95rem; font-weight:750; color:#193b43; margin:0; }
.comparison-chart-panel { overflow:hidden; }
.comparison-chart-panel [data-comparison-chart] { padding:1rem 1.25rem; }
.comparison-metrics { display:flex; gap:.25rem; padding:.25rem; border:1px solid #e4e9ee; border-radius:.65rem; background:#f5f7fa; }
.comparison-metrics button { min-height:38px; padding:.4rem .7rem; border:0; border-radius:.45rem; background:transparent; color:#657a85; font-size:.75rem; line-height:1.3; font-weight:600; }
.comparison-metrics button.active { background:#fff; color:#194e66; box-shadow:0 1px 5px #17304414; }
.comparison-metrics button:focus-visible,.comparison-empty:focus-visible { outline:2px solid #194e66; outline-offset:2px; }
.comparison-chart-legend { display:flex; flex-wrap:wrap; gap:.5rem 1.2rem; margin-bottom:.5rem; font-size:.75rem; font-weight:600; }
.comparison-chart-svg { display:block; max-width:none; font-family:inherit; color:#657a85; }
.comparison-chart-detail { padding:.7rem .8rem; border-radius:.6rem; background:#f5f7fa; color:#657a85; }
.comparison-chart-panel .results-top-scroll { display:none; }
.comparison-lower-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:1rem; align-items:start; }
.comparison-passages-panel { overflow:hidden; }
.comparison-splits { margin:0; font-size:.8rem; font-variant-numeric:tabular-nums; }
.comparison-splits thead th { padding:.8rem 1rem; background:#f5f7fa; color:#657a85; font-size:.7rem; font-weight:600; border-bottom:1px solid #e4e9ee; }
.comparison-splits tbody th,.comparison-splits td { padding:.8rem 1rem; border-bottom-color:#edf1f4; vertical-align:middle; }
.comparison-splits tbody th { color:#193b43; font-weight:600; min-width:90px; }
.comparison-splits td { white-space:nowrap; color:#526875; }
.comparison-splits .comparison-fastest { color:#193b43; font-weight:750; }
.comparison-split-gap span,.comparison-split-gap strong { display:block; font-size:.7rem; }
.comparison-split-gap span { color:#657a85; font-weight:500; }
.comparison-changes { padding:1rem 1.25rem 0; margin:0; list-style:none; }
.comparison-changes li { display:flex; gap:.8rem; padding-bottom:1rem; font-size:.8rem; line-height:1.5; }
.comparison-change-marker { width:8px; height:8px; flex:0 0 8px; margin-top:.35rem; border-radius:50%; background:#194e66; box-shadow:0 0 0 4px #eaf1f4; }
.comparison-footnote,.comparison-no-changes { margin:0; padding:1rem 1.25rem; color:#657a85; font-size:.75rem; line-height:1.5; }
.comparison-footnote { border-top:1px solid #edf1f4; }
@media(max-width:767px) {
    .comparison-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .comparison-lower-grid { grid-template-columns:minmax(0,1fr); }
    .comparison-chart-panel .comparison-panel-heading { align-items:stretch; flex-direction:column; gap:.8rem; }
    .comparison-metrics button { flex:1; min-width:0; }
}
@media(max-width:575px) {
    .comparison-sheet-header { padding:.9rem 1rem; }
    .comparison-sheet-title h2 { font-size:1rem; }
    .comparison-sheet-icon { width:36px; height:36px; flex-basis:36px; }
    .athlete-compare-canvas .offcanvas-body { padding:.85rem; }
    .comparison-workspace,.comparison-athletes,[data-comparison-results] { gap:.75rem; }
    .comparison-search-panel { padding:.9rem; }
    .comparison-intro { font-size:.8rem; }
    .comparison-add-form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:.5rem; }
    .comparison-add-form label > span { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
    .comparison-add-form .form-control { font-size:16px; }
    .comparison-athlete { padding:.85rem .75rem; }
    .comparison-athlete-heading { display:grid; grid-template-columns:32px minmax(0,1fr); align-items:center; gap:.45rem; min-height:64px; }
    .comparison-athlete-heading > div { width:32px!important; height:32px!important; }
    .comparison-athlete-heading a { font-size:.8rem; }
    .comparison-workspace.has-comparison .comparison-intro { display:none; }
    .comparison-stats { gap:.7rem .4rem; padding-top:.8rem; margin-top:.8rem; }
    .comparison-stats dt { font-size:.65rem; }
    .comparison-stats dd { font-size:.8rem; }
    .comparison-empty { padding:.75rem; font-size:.75rem; }
    .comparison-lead { padding:.8rem; }
    .comparison-lead strong { font-size:.85rem; }
    .comparison-panel-heading { padding:.9rem; }
    .comparison-chart-panel [data-comparison-chart] { padding:.8rem; }
    .comparison-splits thead th,.comparison-splits tbody th,.comparison-splits td { padding:.7rem .5rem; }
    .comparison-splits { font-size:.75rem; }
}

.comparison-remove { display:grid; place-items:center; width:30px; height:30px; margin:-.35rem -.3rem; border:0; border-radius:50%; background:#f5f7fa; color:#657a85; }
.comparison-remove:hover { color:#193b43; background:#eaf1f4; }
.comparison-remove:focus-visible { outline:2px solid #194e66; outline-offset:2px; }


.athlete-access-card { border-left:4px solid #194e66!important; }
.athlete-withdrawal-canvas { height:min(90dvh,850px)!important; border-radius:1rem 1rem 0 0; }
.athlete-withdrawal-form { max-width:600px; margin:auto; }
.athlete-withdrawal-form .form-control,.athlete-withdrawal-form .form-select,.athlete-withdrawal-form .btn { min-height:44px; }
.athlete-withdrawal-summary { padding:1rem; white-space:pre-line; overflow-wrap:anywhere; background:#f1f5f8; border:1px solid #e4e9ee; border-radius:.75rem; }
@media(max-width:575px) { .athlete-withdrawal-form .form-control,.athlete-withdrawal-form .form-select { font-size:16px; }.athlete-access-card .card-body { padding:1rem; } }
