.race-profile-scroll { width:100%; max-width:100%; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; touch-action:pan-x pan-y; scrollbar-width:thin; }
.race-profile-scroll > div { width:100%; min-width:0; }
.race-profile-scroll:focus-visible { outline:2px solid #1769e0; }
.race-profile-scroll svg { user-select:none; }
.race-profile-scroll .small { position:sticky; left:0; max-width:100%; padding:4px; }
.race-profile-group { display:flex; flex-direction:column; max-height:calc(100% - 16px); position:absolute; top:8px; left:8px; z-index:2; width:min(400px,calc(100% - 16px)); overflow:hidden; background:#fff; border:1px solid #dce3e9; border-top:3px solid var(--race-profile-accent,#126c76); border-radius:12px; box-shadow:0 8px 28px #172b4426; }
.race-profile-group[hidden] { display:none; }
.race-profile-group-header { flex-shrink:0; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 10px 6px 14px; border-bottom:1px solid #e8edf3; }
.race-profile-group-header h3 { margin:0; font-size:13px; font-weight:700; color:#263f5d; }
.race-profile-group-close { display:grid; place-items:center; flex-shrink:0; width:36px; height:36px; border:0; border-radius:6px; background:transparent; color:#64748b; font-size:24px; line-height:1; cursor:pointer; }
.race-profile-group-close:hover { background:#f1f5f9; }
.race-profile-group-items { min-height:0; max-height:min(260px,36dvh); overflow-y:auto; overscroll-behavior:contain; touch-action:pan-y; }
.race-profile-group-entry { display:grid; grid-template-columns:56px minmax(0,1fr) 12px; align-items:center; gap:10px; width:100%; min-height:56px; padding:8px 14px; border:0; border-bottom:1px solid #edf1f5; background:#fff; text-align:left; color:#263f5d; cursor:pointer; }
.race-profile-group-entry:last-child { border-bottom:0; }
.race-profile-group-entry:hover { background:#f5f8fb; box-shadow:inset 3px 0 var(--race-profile-accent,#126c76); }
.race-profile-group-entry:focus-visible,.race-profile-group-close:focus-visible { outline:2px solid var(--race-profile-accent,#126c76); outline-offset:-2px; }
.race-profile-group-rank { display:grid; place-items:center; width:54px; height:34px; white-space:nowrap; border:1px solid var(--race-profile-accent,#1769e0); border-radius:8px; color:var(--race-profile-accent,#126c76); font-size:13px; font-weight:700; }
.race-profile-group-identity { min-width:0; }
.race-profile-group-identity strong { display:block; font-size:13px; line-height:1.3; overflow-wrap:anywhere; }
.race-profile-group-identity > span { display:block; margin-top:2px; color:#64748b; font-size:11px; }
.race-profile-group-arrow { color:#94a3b8; font-size:22px; }
.race-profile-checkpoint-entry { box-sizing:border-box; grid-template-columns:minmax(0,1fr) 12px; }
div.race-profile-checkpoint-entry { cursor:default; }
.race-profile-checkpoint-label,.race-profile-checkpoint-marker { cursor:pointer; }
.race-profile-checkpoint-label:focus-visible,.race-profile-checkpoint-marker:focus-visible { outline:2px solid #1769e0; outline-offset:3px; }

.race-profile-athlete-label { display:block; box-sizing:border-box; width:100%; height:44px; padding:4px 8px; border:1px solid #c5d8f5; border-top:2px solid var(--race-profile-accent,#126c76); border-radius:6px; background:#fff; color:#263f5d; font:inherit; font-size:11px; line-height:16px; text-align:left; cursor:pointer; }
.race-profile-athlete-label:hover { background:#f1f6ff; }
.race-profile-athlete-label:focus-visible { outline:2px solid var(--race-profile-accent,#126c76); outline-offset:-2px; }
.race-profile-athlete-label span { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.race-profile-athlete-name { font-size:12px; font-weight:600; }
.race-profile-athlete-summary { color:#64748b; }
