:root{--ink:#182e2a;--muted:#687b76;--paper:#f3f5f2;--card:#fff;--line:#e1e7e2;--gold:#24785e;--gold-soft:#e7f3eb;--blue-soft:#edf3ef;--shadow:none;--accent:#c9ed88}
body{font-size:14px;background:var(--paper)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #58a889;outline-offset:4px}button,input,select{border-radius:8px}[hidden]{display:none!important}.shell{max-width:1320px;padding:0 36px 40px}header{align-items:center;padding:26px 0;border-bottom:1px solid var(--line);margin-bottom:28px}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:42px;height:42px;border-radius:12px;background:var(--ink);color:var(--accent);display:grid;place-items:center;font-weight:900;font-style:italic;font-size:18px;letter-spacing:-2px}.eyebrow{color:#547268;font-size:10px;letter-spacing:.16em}h1,h2,.metric span,.dropzone strong{font-family:inherit}h1{font-size:20px;letter-spacing:-.8px;font-weight:800;line-height:1.2}.header-note{font-size:12px;max-width:none;margin:0;display:flex;align-items:center;gap:8px}.live-dot{height:7px;width:7px;border-radius:50%;background:#318764}.workspace{border:0;background:none;box-shadow:none}.upload{padding:0;border:0;display:flex;flex-wrap:wrap;align-items:center;gap:16px}.season-loader{margin:0;gap:9px}.season-loader>span{display:none}.season-loader label{font-size:12px}.season-loader select{background:white;padding:10px 30px 10px 12px;border-color:var(--line)}.season-loader button{background:#fff;padding:10px 14px;border-radius:8px;font-size:12px}.settings{margin:0;gap:14px;align-items:center;flex:1}.settings>.setting>span{display:none}.gender{border:1px solid var(--line);border-radius:9px;overflow:hidden;padding:3px;gap:3px;background:#e9eee9}.gender button{border:0;padding:8px 17px;font-size:12px}.gender button[aria-pressed=true]{background:white;color:var(--ink);box-shadow:0 1px 3px #182e2a12}.primary{background:var(--ink);padding:12px 20px;border-radius:9px;font-size:12px;box-shadow:0 2px 3px #182e2a15}.primary:hover{background:#285043}.download,.utility-button{background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:8px;font-size:12px;color:var(--ink)}.utility-button:hover,.download:hover{background:#edf3ef}.status{flex-basis:100%;margin:0;font-size:11px;line-height:1.6;color:#647870;max-width:1050px}.data-settings{flex-basis:100%;background:white;border:1px solid var(--line);border-radius:12px;padding:18px}.data-settings summary{font-size:12px;font-weight:650;cursor:pointer}.data-settings[open] summary{margin-bottom:16px}.dropzone{min-height:85px;border:1px dashed #a8bdb0;background:#f6faf6;padding:18px;border-radius:9px}.dropzone strong{font-size:14px}.dropzone span{font-size:12px;margin-top:3px}.advanced{border:0;margin:0}.advanced>summary{font-size:12px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:8px}.advanced[open]{flex-basis:100%;order:5}.advanced .advanced-body{padding:18px;background:white;border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.setting{font-size:12px}.check{font-size:12px;align-items:start}.setting input[type=range]{width:150px;padding:0;accent-color:#327859}.results{padding:26px 0 0}.summary{border:0;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 28px}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px}.metric b{font-size:10px;font-weight:600;letter-spacing:.06em}.metric span{font-size:27px;letter-spacing:-1px;font-weight:650;margin-top:7px}.metric:last-child{display:none}.results-head{align-items:center;margin-bottom:20px}.results-head h2{font-size:29px;letter-spacing:-1px;font-weight:700}.results-head .eyebrow{margin-bottom:4px}.method{font-size:12px;line-height:1.7}.method-details{margin:0 0 22px;color:var(--muted);font-size:12px}.method-details summary{cursor:pointer}.method-details .method{max-width:1000px}.view-bar{display:flex;align-items:center;gap:14px;justify-content:space-between;margin:0 0 20px}.view-tabs{display:flex;gap:4px;padding:4px;background:#e7ede7;border-radius:10px}.view-tabs button{padding:9px 18px;border:0;color:#62766c;background:transparent;font-weight:650;font-size:12px}.view-tabs button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 4px #18352712}.search-input{width:255px;padding:11px 14px;border:1px solid var(--line);background:white;color:var(--ink);font-size:12px}.grid{display:block}.team-panel,.athlete-panel,.forecast{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0;overflow:hidden;box-shadow:none;color:var(--ink)}.panel h2{font-size:15px;padding:21px 24px 0;font-weight:700;letter-spacing:-.3px}.panel>.method{padding:0 24px 20px;margin:4px 0 0;max-width:none}.table-wrap{border:0;background:#fff}table{font-size:13px}th{background:#fafbf9;font-size:10px;font-weight:600;letter-spacing:.07em;padding:13px 18px;border-top:1px solid var(--line)}td{padding:15px 18px;vertical-align:middle;border-top:1px solid #edf0eb}.rank{color:#819087;font-size:13px;font-weight:650;width:62px}tbody tr:hover{background:#f7faf6}.team-identity{display:flex;align-items:center;gap:12px}.team-emblem{flex-shrink:0;display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:var(--team-color,#34635c);color:white;font-size:10px;font-weight:850;letter-spacing:-.2px;box-shadow:inset 0 0 0 1px #00000008}.team-label{font-weight:650;color:var(--ink);font-size:13px}.team-subtitle{font-size:10px;color:#8a978f;display:block;margin-top:2px}.text-button{border:0;padding:0;background:transparent;text-align:left;color:var(--ink);font-weight:600;border-radius:3px}.text-button:hover{color:#24785e;text-decoration:underline;text-underline-offset:3px}.points{font-size:17px;font-weight:700;letter-spacing:-.5px}.points small{font-size:10px;font-weight:400;color:var(--muted);margin-left:5px}.podium{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 20px}.podium-card{position:relative;overflow:hidden;border:1px solid var(--line);background:white;border-radius:12px;padding:20px;border-top:3px solid var(--team-color)}.podium-card:first-child{background:#193c30;color:white;border-color:#193c30}.podium-card:first-child .team-label,.podium-card:first-child .podium-points{color:white}.podium-card:first-child .team-subtitle,.podium-card:first-child .podium-note{color:#b6cdbf}.podium-rank{position:absolute;right:18px;top:13px;font-size:43px;font-weight:750;opacity:.09;letter-spacing:-2px}.podium-points{font-size:29px;letter-spacing:-1px;font-weight:700;margin-top:23px;line-height:1}.podium-note{font-size:10px;color:var(--muted);margin-top:6px}.tag{font-size:10px;font-weight:500;border-radius:5px;padding:4px 7px}.tier-pill{display:inline-flex;justify-content:center;align-items:center;width:25px;height:25px;background:#edf3e9;border-radius:7px;font-size:11px;color:#44604a}.forecast-head{padding:22px 24px;align-items:center;margin:0;flex-wrap:wrap}.forecast h2{padding:0;font-size:17px}.forecast .eyebrow{color:#51715d}.forecast .method{color:var(--muted);max-width:650px}.forecast-note{color:#557264;background:#edf4e9;border:0;border-radius:6px;font-size:10px}.forecast .table-wrap{background:white;border:0}.probability{display:inline-flex;align-items:center;gap:9px;font-size:12px}.prob-track{width:65px;height:5px;border-radius:9px;background:#ecf0e9;overflow:hidden}.prob-fill{height:100%;background:#5f9870;border-radius:9px}.sim-empty{padding:55px 24px;text-align:center;background:white;border:1px solid var(--line);border-radius:14px}.sim-empty h2{font-size:23px;letter-spacing:-.8px}.sim-empty p{color:var(--muted);font-size:13px;max-width:410px;margin:12px auto 22px}.sim-empty .primary{margin:0}.empty{padding:32px;color:var(--muted)}footer{font-size:10px;color:#8c9991;max-width:850px;line-height:1.6;margin-top:28px}.welcome{margin:32px 0 0;border:1px solid var(--line);border-radius:14px;padding:48px;background:linear-gradient(120deg,#193c30,#315846);color:white;position:relative;overflow:hidden}.welcome:after{content:'XC';position:absolute;right:30px;top:-45px;font-size:210px;font-style:italic;font-weight:900;color:#ffffff06;pointer-events:none}.welcome .eyebrow{color:#c9ed88}.welcome h2{font-size:34px;max-width:480px;letter-spacing:-1px;line-height:1.15;margin-bottom:14px}.welcome p:last-child{font-size:13px;max-width:450px;color:#c5d5ca;line-height:1.8}.drawer{margin:0 0 0 auto;height:100dvh;max-height:100dvh;width:530px;max-width:100%;border:0;border-left:1px solid var(--line);padding:0;color:var(--ink);background:#fafbf9;box-shadow:-15px 0 70px #10251c18}.drawer::backdrop{background:#142c2455;backdrop-filter:blur(3px)}.drawer-head{padding:30px;border-bottom:1px solid var(--line);background:#fff}.drawer-close{float:right;border:1px solid var(--line);background:white;width:32px;height:32px;font-size:20px}.drawer h2{font-size:28px;letter-spacing:-1px;line-height:1.2;margin:22px 0 8px}.drawer-section{padding:25px 30px}.drawer-section h3{font-size:12px;margin:0 0 16px}.drawer-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:23px;gap:14px}.drawer-stats small{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}.drawer-stats b{font-size:22px}.race-item{display:grid;grid-template-columns:42px 1fr auto;gap:13px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center}.race-place{font-size:18px;font-weight:650;color:#326b51}.race-name{font-size:12px;font-weight:600}.race-meta{font-size:10px;color:var(--muted);line-height:1.6;margin-top:4px}.race-time{font-size:12px;font-variant-numeric:tabular-nums}.drawer-list button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 0;border:0;border-bottom:1px solid var(--line);background:none;font-size:13px}.drawer a{color:#286f53;font-size:12px}.ranking-context{color:var(--muted);font-size:12px;margin-top:7px}.drawer-note{font-size:12px;line-height:1.7;color:var(--muted)}
@media(max-width:800px){.shell{padding:0 18px 30px}header{margin-bottom:20px}.header-note{display:none}.upload{gap:12px}.settings{flex-basis:100%}.settings>.primary{margin-left:auto;width:auto}.summary{gap:8px;grid-template-columns:repeat(2,1fr);margin-bottom:22px}.metric{padding:13px 16px}.metric span{font-size:23px}.view-bar{flex-wrap:wrap}.search-input{width:100%}.podium{gap:8px}.podium-card{padding:14px}.podium-card .team-identity{display:block}.podium-card .team-label{margin-top:10px;display:block;font-size:11px}.podium-points{font-size:25px;margin-top:16px}.podium-rank{font-size:32px}.results-head h2{font-size:25px}.results-head{flex-direction:row;align-items:center}.results-head .download{font-size:10px;padding:9px}.advanced .advanced-body{grid-template-columns:1fr 1fr}td,th{padding:13px 12px}.team-emblem{width:29px;height:29px;border-radius:8px}.team-identity{gap:9px}.team-label{font-size:12px}.welcome{padding:30px}.welcome h2{font-size:29px}.drawer-head,.drawer-section{padding:23px}.view-tabs button{padding:8px 14px}.forecast-head{padding:20px}.prob-track{width:40px}.team-subtitle{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.phase-athlete { display:flex; gap:12px; flex-wrap:wrap; margin:14px 0; }
.phase-athlete span { background:#edf3ed; padding:12px 16px; border-radius:12px; font-size:13px; }
.phase-athlete strong { display:block; font-size:24px; color:#173a2e; }

.performance-blend{display:flex;flex-direction:column;gap:5px;min-width:260px;max-width:360px;flex:1;padding:4px 0}.blend-labels{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;font-weight:600;color:var(--ink)}.blend-labels output{font-size:10px;color:var(--muted);font-weight:400}.performance-blend input{width:100%;margin:0;accent-color:#426c62;cursor:pointer;padding:0;height:20px;min-height:20px}.performance-blend input:disabled{cursor:default;opacity:.45}.blend-hint{font-size:10px;color:var(--muted)}@media(max-width:800px){.performance-blend{min-width:220px;max-width:none;flex-basis:100%}}

.unraced-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;max-width:310px;padding:9px 12px;border:1px solid #cedad3;border-radius:12px;background:#edf3ed;color:#254b3f;text-align:left;font-size:11px;line-height:1.45;font-weight:500;box-shadow:none}.unraced-state{font-size:10px;font-weight:650;border-radius:20px;background:#426c62;color:white;padding:4px 9px;min-width:33px;text-align:center}.unraced-toggle[aria-pressed="false"]{background:white;color:var(--muted)}.unraced-toggle[aria-pressed="false"] .unraced-state{background:#e9ede8;color:#69766e}.unraced-toggle:disabled{opacity:.5;cursor:default}@media(max-width:800px){.unraced-toggle{flex-basis:100%;max-width:none}}
