/* 3.4.1 visual upgrade: swipe race countdown; keeps existing module and data components. */
.raceCarousel{max-width:1240px;margin:0 auto 22px;position:relative;border:1px solid #5483a18c;border-radius:20px;padding:16px;background:linear-gradient(145deg,#061629ee,#071e34fa);box-shadow:0 16px 42px #010913a8;color:#f7f8f9}
.raceCarouselTop{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.raceCarousel h2{font-size:clamp(17px,2vw,22px);margin:0;color:#f1d8a8}.raceControls{display:flex;gap:7px;align-items:center}.raceControls button,.raceDateEdit,.raceCancel,.raceDateSave{background:#092842;color:#d8eafa;border:1px solid #5b8cad;border-radius:11px;padding:8px 12px;cursor:pointer}.raceControls button:hover,.raceDateEdit:hover{background:#174261}.raceStage{touch-action:pan-y;user-select:none;min-height:238px;border-radius:15px;overflow:hidden;display:flex;align-items:flex-end;padding:22px 24px;border:1px solid #b8845b88;background-position:center;background-size:cover;position:relative}
.raceStage[data-scene=winter]{background-image:linear-gradient(0deg,#061428f5,#0a254177 67%,#05213944),url('art/training-page.webp')}
.raceStage[data-scene=desert]{background-image:linear-gradient(0deg,#071628f6,#16294070 68%,#02102155),url('art/journey.webp')}
.raceStage[data-scene=coast]{background-image:linear-gradient(0deg,#051426f6,#0c284672 70%,#09152444),url('art/missions-page.webp')}
.raceStageContent{width:100%;max-width:640px;text-shadow:0 2px 9px #000}.raceStage .raceTag{font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:#dbecff;font-weight:700;margin:0 0 5px}.raceStage .raceName{margin:0 0 4px;font-size:clamp(26px,3.5vw,39px);line-height:1.12;color:#fff}.raceWhen{font-size:13px;color:#ffe5b8;margin:0 0 14px}.raceNumbers{display:flex;gap:9px;flex-wrap:wrap}.raceNumber{display:grid;min-width:79px;padding:8px 12px;background:#051b31db;border:1px solid #6f93b46b;border-radius:9px;text-align:center}.raceNumber strong{font-size:24px;font-variant-numeric:tabular-nums}.raceNumber small{font-size:10px;color:#bad4ee}.raceEmpty{margin:0;background:#051b31d9;border:1px solid #6385a76b;padding:12px;border-radius:9px;color:#d3e6ff}.raceBottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.raceDots{display:flex;gap:10px;align-items:center;justify-content:center;flex:1}.raceDot{border-radius:50%;width:11px;height:11px;padding:0;border:1px solid #7a9bbb;background:#29435e;cursor:pointer}.raceDot.active{background:#85caff;border-color:#cceaff;box-shadow:0 0 7px #65baffaa}.raceDateEdit{font-size:12px}.raceDateForm{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px;margin-top:10px;border:1px solid #517496;border-radius:12px;background:#071b30}.raceDateForm[hidden]{display:none}.raceDateForm label{font-size:13px}.raceDateForm input{max-width:180px}.raceHint{color:#a8c5d9;font-size:11px;margin:8px 2px 0}
@media(min-width:900px){.shell{max-width:1480px}.raceCarousel{max-width:1240px}.raceStage{min-height:275px}.modules{max-width:1240px;margin-left:auto;margin-right:auto;grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.raceCarousel{padding:10px;border-radius:15px;margin-bottom:18px}.raceStage{min-height:275px;padding:16px;align-items:flex-end}.raceStage .raceName{font-size:28px}.raceNumber{min-width:69px;padding:8px}.raceNumber strong{font-size:20px}.raceHint{font-size:10px}.raceControls button{padding:7px 10px}}
@media(prefers-reduced-motion:reduce){.raceCarousel *{scroll-behavior:auto;animation:none}}
/* Athlete profile must open in view, instead of halfway down the document. */
#athleteProfilePanel:not(.hide){position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(94vw,570px);max-height:90dvh;overflow:auto;z-index:250;box-shadow:0 0 0 100vmax #020b19e8,0 20px 60px #000;border-radius:18px;padding:22px}
/* 3.4.2 private synced race management */
.racePrev,.raceNext{display:none!important}.raceDot{width:9px;height:9px;border-radius:50%;min-width:9px;min-height:9px;transition:background .15s,transform .15s}.raceDot.active{transform:scale(1.5);background:#86cfff;border-color:#bde8ff;box-shadow:0 0 9px #58b4ff91}.raceStatus{min-height:1.3em;color:#a9cbdf;font-size:12px}.raceSeed{background:#174666;color:#f3faff;padding:10px 15px;border:1px solid #8acaff;border-radius:10px}.raceManager{background:#06192e;padding:16px;border-radius:14px;border:1px solid #4b83ac;margin:12px 0}.raceManager[hidden]{display:none}.raceFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.raceFormGrid label{display:grid;gap:4px;color:#d5e7f7;font-size:12px}.raceFormGrid input,.raceFormGrid select{width:100%;box-sizing:border-box;border:1px solid #648ba8;border-radius:8px;background:#102c43;color:#fff;padding:9px;min-height:40px}.raceFormGrid .wide{grid-column:1/-1}.raceFormGrid .raceCheck{display:flex;align-items:center;gap:9px}.raceCheck input{width:auto}.raceActions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.raceActions button{padding:9px 15px;border-radius:9px;background:#163c57;color:white;border:1px solid #70a6c4}.raceActions .raceDelete{margin-left:auto;border-color:#995c67}.raceControls .raceRefresh,.raceControls .raceAdd{background:#102e49;color:#e2f3ff;border:1px solid #5b8cad;border-radius:11px;padding:8px 11px}.raceStage[data-scene=night]{background-image:linear-gradient(0deg,#051124f5,#14274370),url('art/health-page.webp')}.raceStage[data-scene=mesa]{background-image:linear-gradient(0deg,#071628f6,#16294070),url('art/journey.webp')}.raceStage[data-scene=mountain]{background-image:linear-gradient(0deg,#051426f6,#0c284672),url('art/training-page.webp')}.raceStage[data-scene=lake]{background-image:linear-gradient(0deg,#051426f6,#0c284672),url('art/health.webp')}
@media(max-width:600px){.raceFormGrid{grid-template-columns:1fr}.raceCarouselTop{align-items:flex-start}.raceControls{gap:5px}.raceControls .raceRefresh,.raceControls .raceAdd{font-size:12px;padding:8px}}

/* 3.5.4: original race artwork, no SVG landscape overlays, text-only event names. */
.raceStage[data-scene]{background-image:linear-gradient(0deg,rgba(2,12,25,.92) 0%,rgba(2,12,25,.23) 59%,rgba(2,12,25,.05) 100%)!important;background-position:center!important;background-size:cover!important}
.raceStage[data-scene="coast"]{background-image:linear-gradient(0deg,rgba(2,12,25,.91),rgba(2,12,25,.08) 66%),url('art/races/imca-journey.webp')!important}
.raceStage[data-scene="mountain"]{background-image:linear-gradient(0deg,rgba(2,12,25,.91),rgba(2,12,25,.08) 66%),url('art/races/humphreys-approved.webp')!important}
.raceStage[data-scene="desert"],.raceStage[data-scene="mesa"]{background-image:linear-gradient(0deg,rgba(2,12,25,.9),rgba(2,12,25,.18)),url('art/journey.webp')!important}
.raceStage[data-scene="lake"]{background-image:linear-gradient(0deg,rgba(2,12,25,.9),rgba(2,12,25,.18)),url('art/health.webp')!important}
.raceStage[data-scene="winter"],.raceStage[data-scene="night"]{background-image:linear-gradient(0deg,rgba(2,12,25,.92),rgba(2,12,25,.15)),url('art/training-page.webp')!important}
.raceStage[data-custom-art="yes"]{background-image:linear-gradient(0deg,rgba(2,12,25,.94),rgba(2,12,25,.12) 64%),var(--personal-race-art)!important}
.personalArtworkControls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.personalArtworkControls button,.personalArtworkControls label{border:1px solid #5b8cad;border-radius:9px;background:#123750;color:#e8f6ff;padding:9px 12px;cursor:pointer;font:inherit;font-size:12px}
.personalArtworkControls input{display:none}.personalArtworkControls small{color:#b4ccdc}.personalArtworkControls button[hidden]{display:none}
