:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1f1f1e;--surface-2:#2a2a28;--ink:#fff;--ink-2:#c3c2b7;--muted:#898781;--border:#ffffff1a;--card-border:#ffffff47;--accent:#3987e5;--accent-soft:#3987e524;--atl:#e5739a;--go:#3fb67a;--easy:#3987e5;--warn:#fab219;--stop:#e5534b;--good:#0ca30c;--serious:#ec835a;--critical:#d03b3b;--info:#6d8fc4;--warn2:#f0954a;--neutral:#a9a7a0;--trend-ctl:#4fc9b4;--trend-atl:#d4629a;--font-sans:system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--page);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}.top{justify-content:space-between;align-items:center;max-width:760px;margin:0 auto;padding:20px 16px 4px;display:flex}.brand{margin:0;font-size:24px;font-weight:600}.brand span{color:var(--accent)}.who{min-width:0;color:var(--muted);text-align:right;flex-direction:column;align-items:flex-end;gap:2px;font-size:14px;display:flex}.who>*{overflow-wrap:anywhere}.who [hidden]{display:none}.logout{color:var(--muted)}main{max-width:760px;margin:0 auto;padding:8px 16px 40px}.card{background:var(--surface);border:1px solid var(--card-border);border-radius:12px;margin-top:14px;padding:18px}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px;font-size:13px;font-weight:600}.tiles{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.tile{background:var(--surface-2);border-radius:10px;padding:12px}.tile .label{color:var(--muted);font-size:12px}.tile .value{font-variant-numeric:tabular-nums;margin:2px 0 4px;font-size:28px;font-weight:600}.tile .sub{color:var(--ink-2);font-size:12px}.badge{border:1px solid;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.go{color:var(--go)}.badge.easy{color:var(--easy)}.badge.warning{color:var(--warn)}.badge.stop{color:var(--stop)}.hint{color:var(--muted);margin:10px 0 0;font-size:13px;line-height:1.5}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}input,select,textarea{background:var(--surface-2);border:1px solid var(--border);color:var(--ink);font:15px var(--font-sans);border-radius:8px;padding:9px 10px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}textarea{width:100%;margin-top:8px;font-family:ui-monospace,monospace;font-size:13px}button{background:var(--surface-2);border:1px solid var(--accent);color:var(--ink);font:600 14px var(--font-sans);cursor:pointer;border-radius:999px;padding:9px 18px}button:hover{box-shadow:0 0 16px var(--accent-soft)}button.danger{border-color:var(--stop)}button.link{color:var(--muted);background:0 0;border:none;padding:0;font-weight:400}button.link:hover{color:var(--stop);box-shadow:none}button:disabled,input:disabled{opacity:.45;cursor:not-allowed}button:disabled:hover{box-shadow:none}details{margin-top:14px}summary{cursor:pointer;color:var(--ink-2);font-size:14px}details button{margin-top:8px}.series-toggles{flex-wrap:wrap;gap:6px 14px;margin-top:14px;display:flex}.series-toggle{color:var(--ink-2);cursor:pointer;flex-direction:row;align-items:center;gap:6px;font-size:13px}.series-toggle input{width:auto;accent-color:var(--accent);padding:0}.chart-range{margin-top:8px}.chart-range input{padding:6px 8px;font-size:14px}.chips{flex-wrap:wrap;gap:6px;display:flex}button.chip{border-color:var(--border);color:var(--ink-2);padding:6px 12px;font-size:13px;font-weight:500}button.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.zone-key{color:var(--ink-2);flex-direction:column;gap:4px;margin:12px 0 4px;font-size:12px;display:flex}.zone-group{align-items:baseline;gap:4px 12px;display:flex}.zone-items{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.zone-group strong{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;flex:none;min-width:6.5em;font-size:11px;font-weight:600}.zone-item{align-items:center;gap:5px;display:inline-flex}.zone-sw{border-radius:2px;width:10px;height:10px}.chart-wrap{margin-top:8px;position:relative}.chart svg{touch-action:pan-y;width:100%;height:auto;display:block}.chart .grid{stroke:var(--border)}.chart .zero{stroke:var(--muted);stroke-opacity:.6}.chart .axis{fill:var(--muted);font-size:11px}.chart .series{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .cross{stroke:var(--muted);stroke-dasharray:2 3}.chart .series.future{stroke-dasharray:5 4}.chart .today{stroke:var(--muted);stroke-dasharray:2 3;opacity:.6}.chart-tip{pointer-events:none;opacity:0;background:var(--ink);min-width:170px;color:var(--page);border-radius:6px;padding:7px 10px;font-size:13px;line-height:1.55;position:absolute;top:4px}.chart-tip .t-date{opacity:.65;text-transform:uppercase;letter-spacing:.03em;font-size:11px;display:block}.chart-tip .t-row{justify-content:space-between;gap:14px;display:flex}.chart-tip .t-val{font-variant-numeric:tabular-nums;font-weight:600}.chart-tip .t-sub{opacity:.65;font-size:12px}.table-wrap{margin-top:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{border-bottom:1px solid var(--border);text-align:left;padding:7px 8px}th{color:var(--muted);font-size:12px;font-weight:600}.num{text-align:right;font-variant-numeric:tabular-nums}tr.excluded td{color:var(--muted)}.double{color:var(--warn);cursor:help}.hint.warn{color:var(--warn)}button.link.toggle-all{color:var(--accent);margin-left:6px;font-size:13px}button.link.toggle-all:hover{color:var(--ink)}tr.excluded td.num:nth-child(2){text-decoration:line-through}#sessions td:first-child,#athletes td{white-space:nowrap}.stack{flex-direction:column;gap:12px;margin-top:12px;display:flex}.question{flex-direction:column;gap:6px;margin-top:12px;font-size:14px;display:flex}.stack .question{margin-top:0}.consent{color:var(--muted);flex-direction:row;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;display:flex}.consent input{width:auto;margin-top:3px}button.link.athlete{color:var(--accent);text-align:left}button.link.athlete:hover{color:var(--ink)}.tabs{gap:6px;max-width:760px;margin:12px auto 0;padding:0 16px;display:flex}.tabs a{border:1px solid var(--border);color:var(--ink-2);border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600;text-decoration:none}.tabs a.on{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.tabs .attn{background:var(--warn);vertical-align:2px;border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block}details.card.fold{margin-top:14px}details.fold>summary{align-items:center;gap:8px;list-style:none;display:flex}details.fold>summary::-webkit-details-marker{display:none}details.fold>summary h2{margin:0}details.fold>summary:after{content:"▾";color:var(--muted);font-size:13px;transition:transform .15s}details.fold:not([open])>summary:after{transform:rotate(-90deg)}details.fold[open]>summary{margin-bottom:12px}.light{background:var(--surface-2);border-radius:10px;margin-bottom:10px;padding:12px 14px}.light-q{flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:18px;font-weight:600;display:flex}.light-q strong{letter-spacing:.02em;font-size:18px}.light-dot{border-radius:50%;flex:none;width:14px;height:14px}.light-a{color:var(--ink-2);margin-top:6px;font-size:14px;line-height:1.5}.badge.zone{border-color:currentColor}.coach .top,.coach main{max-width:1000px}#athletes td:first-child{white-space:normal;overflow-wrap:anywhere}@media (width<=640px){#athletes th:nth-child(2),#athletes td:nth-child(2),#athletes th:nth-child(6),#athletes td:nth-child(6){display:none}#athletes td.num{white-space:normal}#athletes td.num .badge{margin-top:2px}#athletes th,#athletes td{padding:7px 4px}#athletes .badge{padding:1px 6px;font-size:10px}}.subtitle{color:var(--ink-2);margin:-6px 0 12px;font-size:13px}.detail-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.detail-head h2{overflow-wrap:anywhere;min-width:0;margin:0}#detail .detail-head{margin-bottom:12px}.lang-switch a{color:var(--accent)}
