:root{--bg:#f7f6f2;--surface:#fff;--text:#1f2320;--muted:#6b716c;--border:#e2e0d8;--ok:#2f7d4f;--warn:#a8660b;--bad:#b3261e;--series-1:#2a78d6;--series-2:#eb6834;--grid:#e1e0d9;--axis:#c3c2b7;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#161917;--surface:#1f2321;--text:#e8eae6;--muted:#9aa19b;--border:#2e3330;--ok:#6cc28f;--warn:#e0a548;--bad:#f08a80;--series-1:#3987e5;--series-2:#d95926;--grid:#2c2c2a;--axis:#383835}}body{margin:0}main{max-width:56rem;margin:0 auto;padding:2rem 1rem 4rem}header{margin-bottom:1.5rem}h1{margin:0;font-size:2rem}h2{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 .25rem;font-size:.8rem;font-weight:600}section p,section ul{margin:0}.muted{color:var(--muted)}.status{margin:.25rem 0 0;font-size:.9rem}.status.ok{color:var(--ok)}.status.warn{color:var(--warn)}.status.bad{color:var(--bad)}.counts{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.75rem;margin:0;display:grid}.counts div{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;flex-direction:column-reverse;padding:.75rem 1rem;display:flex}.counts dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.5rem;font-weight:600}.counts dt{color:var(--muted);font-size:.8rem}.title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.small{font-size:.8rem}.nowrap{white-space:nowrap}button{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:.4rem;padding:.4rem .9rem;font-size:.9rem}button:disabled{cursor:default;opacity:.55}.sync{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.tabs{scrollbar-width:none;border-bottom:1px solid var(--border);gap:1.25rem;margin-bottom:1.25rem;display:flex;overflow-x:auto}.tabs a{color:var(--muted);border-bottom:2px solid #0000;flex:none;padding:.4rem 0;text-decoration:none}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:.5rem .75rem}tbody tr:last-child td{border-bottom:none}th{color:var(--muted);white-space:nowrap;font-size:.75rem;font-weight:600}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tbody.stale{opacity:.6}.pager{justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;display:flex}a{color:inherit;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:.2em}a:hover{text-decoration-color:currentColor}.activity-title{letter-spacing:normal;text-transform:none;color:var(--text);margin:.5rem 0 0;font-size:1.5rem;font-weight:600}tr.this-run td{font-weight:600}.tiles{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.75rem;margin:1.25rem 0;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:.75rem 1rem}.tile dt,.tile-note{color:var(--muted);margin:0;font-size:.8rem}.tile-value{margin:0;font-size:1.35rem;font-weight:600}.route-map{border:1px solid var(--border);z-index:0;border-radius:.5rem;height:18rem;margin:1.25rem 0}.profile-charts{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;gap:.5rem;padding:.75rem .75rem .25rem;display:grid}.profile-chart{margin:0}.profile-chart figcaption{color:var(--muted);font-size:.8rem;font-weight:600}.chart-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:.4rem;flex-direction:column;padding:.35rem .6rem;font-size:.8rem;display:flex;box-shadow:0 2px 8px #00000014}.chart-tooltip strong{font-size:.95rem}.chart-tooltip span{color:var(--muted)}.zone-bars{border-collapse:collapse;width:100%}.zone-bars th{width:7.5rem;color:var(--text);text-align:left;border:none;padding:.3rem .75rem .3rem 0;font-size:.85rem;font-weight:600}.zone-bars td{border:none;padding:.3rem 0}.bar-cell{align-items:center;gap:.5rem;display:flex}.bar{background:var(--series-1);border-radius:0 4px 4px 0;flex:none;min-width:2px;height:1rem}.bar-value{white-space:nowrap;font-size:.85rem}.journal{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;display:grid}.journal p{margin:0 0 .25rem}.plan-picker{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}select{max-width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:.4rem;padding:.35rem .5rem;font-size:.9rem}.badge{border:1px solid;border-radius:.3rem;padding:.05rem .45rem;font-size:.8rem;font-weight:600}.badge.active{color:var(--ok)}.badge.proposed{color:var(--warn)}.badge.signal{margin-left:var(--space-2);font-weight:500}.badge.signal.tier-research{color:var(--ok)}.badge.signal.tier-practice{color:var(--accent)}.badge.signal.tier-context{color:var(--muted)}.adaptation-list{margin:0;padding-left:1rem}.adaptation-list .badge.signal{margin-left:0}.decision{flex-wrap:wrap;align-items:center;gap:.75rem;margin:1rem 0;display:flex}button.primary{color:var(--surface);background:var(--text);border-color:var(--text)}.check-summary{align-items:baseline;display:flex}.check-summary .marker{position:relative;top:.15rem}.marker{width:1.1rem;height:1.1rem;color:var(--surface);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-right:.3rem;font-size:.7rem;font-weight:700;display:inline-flex}.marker.block{background:var(--bad)}.marker.warn{background:var(--warn)}.marker.overridden{background:var(--ok)}.findings{gap:.35rem;margin:.75rem 0 0;padding:0;font-size:.9rem;list-style:none;display:grid}.findings li{align-items:baseline;display:flex}.findings .marker{position:relative;top:.15rem}.calendar{margin-top:1.5rem}.week{margin-top:1.25rem}.week-head{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;margin:0 0 .4rem;font-size:.9rem;display:flex}.phase{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:600}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;display:grid}.day{background:var(--surface);border:1px solid var(--border);border-radius:.4rem;flex-direction:column;gap:.3rem;min-height:4.5rem;padding:.35rem;display:flex}.day.outside{opacity:.4}.day.today{border-color:var(--text)}.day-label{color:var(--muted);font-size:.75rem}.day-sessions{flex-direction:column;gap:.3rem;display:flex}.session-chip{text-align:left;background:var(--bg);border:1px solid var(--border);border-left-width:3px;border-radius:.3rem;flex-direction:column;gap:.1rem;width:100%;padding:.3rem .4rem;font-size:.8rem;line-height:1.3;display:flex}.session-chip.key{border-left-color:var(--text)}.session-chip.type-rest{color:var(--muted);background:0 0}.session-chip[aria-pressed=true]{border-color:var(--text)}.session-chip.movable{cursor:grab;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.session-chip.carried{opacity:.4;border-style:dashed}.calendar-hint{margin:0 0 .25rem}.day.drop-target{border-color:color-mix(in srgb, var(--accent) 35%, var(--border))}.day.drop-over{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.day.drop-invalid{background:repeating-linear-gradient(-45deg, transparent 0 6px, color-mix(in srgb, var(--bad) 10%, transparent) 6px 12px);border-color:var(--bad)}body.session-dragging,body.session-dragging *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}body.session-dragging:has(.day.drop-invalid) *{cursor:not-allowed!important}.drag-ghost{z-index:1300;pointer-events:none;will-change:transform;min-width:8rem;position:fixed;top:0;left:0}.drag-ghost .session-chip{background:var(--surface);border-color:var(--accent);animation:.14s ease-out lift;transform:rotate(-1.5deg)scale(1.03);box-shadow:0 12px 28px #00000038,0 2px 6px #0000001f}@keyframes lift{0%{box-shadow:none;transform:none}}.drag-tip{width:max-content;max-width:min(20rem,100vw - 1rem);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-s);padding:.35rem .6rem;font-size:.8rem;line-height:1.35;position:absolute;left:0;box-shadow:0 4px 14px #00000024}.drag-tip.muted{color:var(--muted)}.drag-tip.bad{color:var(--bad);border-color:var(--bad)}.drag-tip.warn{border-color:var(--warn)}.drag-tip.docked{z-index:1300;top:var(--space-3);position:fixed;left:50%;translate:-50%}.toast{z-index:1250;bottom:var(--space-5);gap:var(--space-1);width:max-content;max-width:min(36rem,100vw - 2rem);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-4);color:var(--bg);background:var(--text);border-left:4px solid var(--accent);border-radius:var(--radius);align-items:center;animation:.18s ease-out toast-in;display:flex;position:fixed;left:50%;translate:-50%;box-shadow:0 8px 28px #00000040}.toast.warn{border-left-color:var(--warn)}.toast.bad{border-left-color:var(--bad)}.toast-text{padding:var(--space-2) 0;flex:1;font-size:.9rem;line-height:1.4}.toast button{min-height:var(--tap);color:inherit;background:0 0;border:none}.toast .toast-action{padding:0 var(--space-3);color:var(--accent-soft);font-weight:700}.toast .toast-close{min-width:var(--tap);opacity:.7;padding:0;font-size:1.25rem}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}}@media (width<=40rem){.toast{right:var(--space-4);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--space-3));left:var(--space-4);width:auto;max-width:none;translate:none}}@media (pointer:coarse){.session-chip{min-height:var(--tap)}}@media (prefers-reduced-motion:reduce){.drag-ghost .session-chip{animation:none;transform:none}.toast{animation:none}}.move-dialog{box-sizing:border-box;width:min(32rem,100vw - 2rem);max-width:none;padding:var(--space-4) var(--space-5);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 16px 48px #00000040}.move-dialog::backdrop{background:#00000059}.move-dialog h3{margin:0 0 var(--space-2);font-size:1rem}.changed-line .link-button{margin-left:var(--space-1);color:var(--accent);font-weight:600}.move-preview{z-index:5;background:var(--surface);border:1px solid var(--text);border-radius:.5rem;max-height:60vh;margin-top:1rem;padding:.6rem .9rem;position:sticky;bottom:.75rem;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.move-preview-head{margin:0 0 .25rem}.move-list{margin:.25rem 0;padding-left:1.2rem}.session-title{overflow-wrap:anywhere;align-items:center;font-weight:600;display:flex}.session-targets{color:var(--muted);overflow-wrap:anywhere}.session-detail{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;margin-top:.5rem;padding:.75rem 1rem}.session-detail h3{margin:0;font-size:1rem}.session-detail>p{margin:0 0 .5rem}.detail-list{grid-template-columns:auto 1fr;gap:.25rem .75rem;margin:0;display:grid}.detail-list dt{color:var(--muted);font-weight:600}.detail-list dd{margin:0}.detail-row{display:contents}.exports{flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;display:flex}.exports code{overflow-wrap:anywhere}@media (width<=40rem){.week-grid{grid-template-columns:1fr}.day{flex-direction:row;gap:.5rem;min-height:0}.day.empty{display:none}.calendar.carrying .day.empty.drop-target,.calendar.carrying .day.empty.drop-invalid{display:flex}.day-label{flex:none;width:3.5rem;padding-top:.3rem}.day-sessions{flex:1;min-width:0}}.session-progress{font-weight:600}.session-chip.progress-done .session-progress{color:var(--ok)}.session-chip.progress-missed .session-progress{color:var(--bad)}.today-sessions,.changes{gap:.75rem;display:grid}.today-session,.change-card{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:.75rem 1rem}.today-session.key{border-left:3px solid var(--text)}.today-session h3{margin:0;font-size:1.1rem}.today-session>p{margin:0 0 .5rem}.badge.progress-done{color:var(--ok)}.badge.progress-missed{color:var(--bad)}.badge.progress-today,.badge.progress-upcoming,.badge.progress-unrecorded{color:var(--muted)}.change-card{border-left:3px solid var(--warn)}.change-card p{margin:0 0 .5rem}.change-trigger{color:var(--warn);font-size:.8rem;font-weight:600}.change-card .decision{margin:.5rem 0 0}table.diff{width:auto;font-size:.9rem}table.diff th{color:var(--text);border:none;padding:.25rem 1rem .25rem 0;font-size:.85rem}table.diff td{border:none;padding:.25rem 0}.diff .before{color:var(--muted);text-decoration:line-through}.diff .after:before{content:"→ ";color:var(--muted)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.counts .small-value{font-size:1.1rem}.check-in{gap:.75rem;max-width:32rem;display:grid}.check-in fieldset{border:none;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;padding:0;display:flex}.check-in legend,.check-in label>span{color:var(--muted);margin-bottom:.25rem;font-size:.85rem;font-weight:600;display:block}.scales{flex-wrap:wrap;gap:1rem 2rem;display:flex}.scale button{min-width:2.25rem}.scale button[aria-pressed=true]{color:var(--surface);background:var(--text);border-color:var(--text)}.soreness-row{gap:.4rem;width:100%;display:flex}.soreness-row input:first-child{flex:1;min-width:0}.soreness-row input[type=number]{width:4rem}input,textarea{box-sizing:border-box;width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:.4rem;padding:.4rem .5rem;font-size:.95rem}.soreness-row input{width:auto}.soreness-row select:first-child{flex:1;min-width:0}.avoid-chips{flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;display:flex}.issues li>form{width:100%}.issues{gap:.5rem;margin:0 0 .75rem;padding:0;list-style:none;display:grid}.issues li{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.6rem .75rem;display:flex}.course-setup{gap:.75rem;max-width:32rem;margin-top:.75rem;display:grid}.course-setup label>span,.scales label>span{color:var(--muted);margin-bottom:.25rem;font-size:.85rem;font-weight:600;display:block}.race-settings{margin:1rem 0}.race-settings>summary,details>summary{cursor:pointer;color:var(--muted)}.race-settings .check-in{max-width:none;margin-top:.75rem}.stations{gap:.4rem;display:grid!important}.station-row{grid-template-columns:minmax(6rem,2fr) 5rem 7rem 5.5rem minmax(6rem,2fr) auto;gap:.4rem;display:grid}.spaced{margin-top:1.5rem}.bad-text{color:var(--bad);font-weight:600}.course-profile{margin:0}.pace-card .card-table{margin-top:.75rem;font-size:.85rem}.pace-card .card-table td,.pace-card .card-table th{padding:.35rem .5rem}.card-list{margin-top:.75rem;font-size:.9rem}@media screen and (width<=40rem){.pace-card .card-table,.pace-card .card-table tbody{display:block}.pace-card .card-table thead{display:none}.pace-card .card-table tr{gap:var(--space-2) var(--space-5);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(3,max-content) 1fr;display:grid}.pace-card .card-table td{text-align:left;border:none;padding:0}.pace-card .card-table td[data-label]:before{content:attr(data-label);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600;display:block}.pace-card .card-table .card-to,.pace-card .card-table .card-wide{grid-column:1/-1}.pace-card .card-table .card-to{font-size:var(--text-m)}.pace-card .card-table .card-empty{display:none}}@media (width<=40rem){.station-label{display:none}.station-row{grid-template-columns:1fr 5rem auto}.station-row input:nth-child(3),.station-row input:nth-child(4),.station-row input:nth-child(5){grid-column:span 1}}@media print{:root{--bg:#fff;--surface:#fff;--text:#000;--muted:#444;--border:#bbb}header,nav.tabs,.no-print{display:none!important}main{max-width:none;padding:0}.pace-card .card-table{font-size:9pt}.pace-card tr{break-inside:avoid}}.gear-bar{background:var(--grid);border-radius:.2rem;max-width:16rem;height:.4rem;margin:.35rem 0}.gear-bar>div{background:var(--series-1);border-radius:.2rem;height:100%}.gear-bar>div.warn{background:var(--warn)}.spaced-small{margin-top:.75rem}fieldset.scale{border:none;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;display:flex}.trend-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:1rem 1.5rem}.checkbox{margin:.2rem 0;display:block}.readiness{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--ok);border-radius:.5rem;flex-direction:column;gap:.15rem;margin-top:1rem;padding:.6rem 1rem;display:flex}.readiness.easy{border-left-color:var(--warn)}.readiness.rest{border-left-color:var(--bad)}.readiness.unknown{border-left-color:var(--border)}.decision.adjust{margin:.4rem 0 .6rem}.decision.adjust button{padding:.25rem .6rem;font-size:.8rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.chart-legend{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:.25rem 1rem;margin:.25rem 0 0;padding:0;font-size:.75rem;list-style:none;display:flex}.chart-legend li{align-items:center;gap:.35rem;display:flex}.chart-legend .swatch{width:1rem;display:inline-block}.chart-legend .swatch.line{height:2px}.chart-legend .swatch.dot{border-radius:50%;width:.6rem;height:.6rem}.chart-legend .swatch.hollow{box-sizing:border-box;background:0 0;border:2px solid}.chart-legend .swatch.dash{border-top:2px dashed;height:0}.chart-legend .swatch.bar{width:.5rem;height:.7rem}.chart-legend .swatch.block{opacity:.2;height:.6rem}.info{vertical-align:.1em;margin-left:.3rem;display:inline-block;position:relative}.info-button{width:1rem;height:1rem;min-height:0;color:var(--muted);border:1px solid var(--axis);cursor:help;background:0 0;border-radius:50%;place-items:center;padding:0;font:italic 600 .65rem/1 Georgia,serif;display:inline-grid}.info-button:hover,.info-button:focus-visible{color:var(--text);border-color:var(--muted)}.info-pop{z-index:1000;text-transform:none;letter-spacing:normal;width:max-content;max-width:min(18rem,80vw);color:var(--text);white-space:normal;background:var(--surface);border:1px solid var(--border);border-radius:.4rem;padding:.5rem .65rem;font-size:.8rem;font-weight:400;line-height:1.4;position:absolute;top:calc(100% + .4rem);left:-.5rem;box-shadow:0 4px 16px #0000001f}.info-pop.right{left:auto;right:-.5rem}.journal-filters,.journal-day{gap:.6rem;display:grid}.journal-item{overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;min-width:0;padding:.75rem 1rem}.journal-item h3{margin:0;font-size:1rem}.journal-item p{margin:0 0 .35rem}.journal-item .detail-list{margin-top:.25rem}.link-button{font-size:inherit;color:var(--muted);text-underline-offset:.2em;background:0 0;border:none;padding:0;text-decoration:underline}.plan-match-item{max-width:32rem;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.plan-match-item+.plan-match-item,.plan-match-item+p{margin-top:var(--space-2)}.plan-match .plan-match-title{gap:var(--space-1) var(--space-2);flex-wrap:wrap;align-items:baseline;display:flex}.plan-match-item p+p,.plan-match-item table+p{margin-top:var(--space-1)}table.plan-vs-actual{width:auto;margin-top:var(--space-2);font-size:var(--text-s)}table.plan-vs-actual th[scope=row]{color:var(--muted);font-weight:500}.profile{max-width:32rem;display:grid}.profile section:first-child{margin-top:0}.profile-row{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));display:grid}.profile-field{gap:var(--space-1);align-content:start;display:grid}.profile-field>span:first-child{font-size:var(--text-s);color:var(--muted);font-weight:600}.input-unit{gap:var(--space-2);align-items:center;display:flex}.input-unit input{max-width:7rem}.per-kg{margin-top:var(--space-3);font-size:var(--text-s)}.per-kg dt{font-weight:500}.zone-table{gap:var(--space-2);margin-top:var(--space-3);grid-template-columns:minmax(0,1fr) 5rem 5rem;display:grid}.zone-row{display:contents}.zone-head{font-size:var(--text-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.profile .decision{margin-top:var(--space-5)}.watch-panel{max-width:40rem;margin-top:var(--space-5)}.watch-panel h3{margin-top:var(--space-5)}.watch-toggle{gap:var(--space-3);align-items:flex-start;display:flex}.watch-toggle>span{gap:var(--space-1);display:grid}.watch-row dd button{margin-top:var(--space-2)}.watch-models{gap:var(--space-3);display:grid}.watch-model{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:.75rem 1rem}.watch-model.recommended{border-left:3px solid var(--ok)}.watch-model p{margin:var(--space-1) 0}.watch-model-head{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.watch-preview{margin-top:var(--space-3)}.zone-compare{border-collapse:collapse;font-size:var(--text-s)}.zone-compare th,.zone-compare td{padding:var(--space-1) var(--space-3) var(--space-1) 0;text-align:left}.watch-history{gap:var(--space-3);padding:0;list-style:none;display:grid}.watch-history li.undone>div{opacity:.7;text-decoration:line-through}button.link{color:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.profile-notice{border-left-color:var(--ok)}.profile-problems{margin:var(--space-3) 0 0;padding-left:var(--space-5)}.activity-filter-row{flex-wrap:wrap;align-items:end;gap:.6rem;display:flex}.activity-filter-row label{gap:.15rem;display:grid}.activity-filter-row .link-button{padding-bottom:.5rem}.profile-notice.small{margin:0 0 var(--space-3);border-left:0}.week-vitals{border-top:0;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0;padding-top:0}.week-vitals dd{font-size:var(--text-m,1rem)}.week-bar{width:100%;height:.4rem;margin:var(--space-1,.25rem) 0;accent-color:var(--series-1)}.trend-chip{margin-left:var(--space-3);border:1px solid var(--border);font-size:var(--text-xs);text-transform:none;letter-spacing:0;color:var(--muted);cursor:help;border-radius:999px;padding:.1rem .5rem;font-weight:400}.hrv-strip{margin-top:var(--space-3)}.hrv-strip p{margin:0}.week-note,.next-race{width:100%;margin:var(--space-2) 0 var(--space-3)}.subtabs button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:none;padding:.4rem 0}.subtabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--text)}.trend-group{margin:1.5rem 0}.trend-group h3{margin-bottom:.25rem}.trend-group h4{margin:1.25rem 0 .25rem}.trend-group .recharts-legend-wrapper{flex-wrap:wrap}.gap-legend{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:.25rem 1rem;margin:0;padding:0;font-size:.75rem;list-style:none;display:flex}.gap-legend svg{vertical-align:middle}.auth-page{max-width:24rem;padding:var(--space-6) var(--space-4);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.auth-form{gap:var(--space-3);flex-direction:column;display:flex}.auth-form label{gap:var(--space-1);font-size:var(--text-s);color:var(--muted);flex-direction:column;display:flex}.auth-form input{box-sizing:border-box;width:100%}.auth-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}:root{--accent:#2f6b4f;--accent-contrast:#fff;--accent-soft:#e3eee7;--surface-2:#efede6;--focus:#2f6b4f;--shadow:0 1px 2px #0000000a, 0 2px 8px #0000000a;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius-s:.4rem;--radius:.6rem;--text-xs:.75rem;--text-s:.85rem;--text-m:1rem;--text-l:1.25rem;--text-xl:1.6rem;--tap:2.75rem;--tabbar-h:3.75rem}@media (prefers-color-scheme:dark){:root{--accent:#6cc28f;--accent-contrast:#0e1a13;--accent-soft:#1f3328;--surface-2:#252a27;--focus:#8fd6aa;--shadow:none}}body{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}main{padding-top:var(--space-4)}h2{font-size:var(--text-xs);letter-spacing:.06em;margin-bottom:var(--space-2)}section{margin-top:var(--space-6)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}button{border-radius:var(--radius-s);min-height:2.25rem;font-weight:500;transition:background-color .12s,border-color .12s}button:hover:not(:disabled){border-color:var(--muted)}button.primary,.scale button[aria-pressed=true]{color:var(--accent-contrast);background:var(--accent);border-color:var(--accent)}button.primary:hover:not(:disabled){border-color:var(--accent);filter:brightness(1.08)}.tile,.counts div,.today-session,.change-card,.journal-item,.issues li,.table-wrap,.profile-charts,.session-detail{border-radius:var(--radius);box-shadow:var(--shadow)}.loading{margin:var(--space-4) 0;color:var(--muted);animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.loading{animation:none}}.app-header{gap:var(--space-3);margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.brand{gap:var(--space-2);font-size:var(--text-l);letter-spacing:-.01em;color:var(--text);align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.brand svg{color:var(--accent)}.status-dot{background:var(--ok);border-radius:50%;width:.5rem;height:.5rem;display:inline-block}.app-header .sync{justify-content:flex-end}.app-header .sync .small{text-align:right;max-width:22rem}.status-banner{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--text-s);border-radius:var(--radius-s);border:1px solid}.tabs{gap:var(--space-1);margin-bottom:var(--space-5);align-items:stretch}.tabs a{min-height:var(--tap);padding:0 var(--space-3);border-bottom-width:2px;align-items:center;font-weight:500;display:inline-flex}.tabs a:hover{color:var(--text)}.tabs a[aria-current=page]{color:var(--text);border-bottom-color:var(--accent)}.tabs .tab-sep{width:1px;margin:var(--space-3) var(--space-2);background:var(--border);flex:none}.tabbar,.more-sheet,.more-backdrop{display:none}@media (width<=40rem){main{padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--space-6))}.tabs,.app-header .sync .small.muted,.wide-only{display:none}.tabbar{z-index:1100;height:var(--tabbar-h);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a,.tabbar button{min-height:0;color:var(--muted);background:0 0;border:none;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:0;font-size:.68rem;font-weight:500;text-decoration:none;display:flex}.tabbar svg{width:1.35rem;height:1.35rem}.tabbar [aria-current=page],.tabbar button.current{color:var(--accent)}.more-backdrop{z-index:1090;background:#00000040;display:block;position:fixed;inset:0}.more-sheet{z-index:1095;right:var(--space-3);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--space-2));left:var(--space-3);padding:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:grid;position:fixed;box-shadow:0 8px 32px #0000002e}.more-sheet a{min-height:3.25rem;padding:0 var(--space-3);color:var(--text);border-radius:var(--radius-s);flex-direction:column;justify-content:center;text-decoration:none;display:flex}.more-sheet a[aria-current=page]{background:var(--accent-soft)}.more-sheet a small{color:var(--muted)}.more-sheet[hidden],.more-backdrop[hidden]{display:none}}@media (pointer:coarse){button,select,input:not([type=checkbox]):not([type=radio]),.tabs a{min-height:var(--tap)}.scale button{min-width:var(--tap)}.decision.adjust button,.link-button{min-height:var(--tap)}.info-button{min-height:0;position:relative}.info-button:after{content:"";position:absolute;inset:-.9rem}input[type=checkbox]{height:1.25rem;width:1.25rem!important}}.page-head{margin:var(--space-2) 0 0}.page-title{font-size:var(--text-xl);letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.2}.page-sub{margin:var(--space-1) 0 0;color:var(--muted)}.readiness-card{margin-top:var(--space-4);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.verdict{gap:var(--space-2);font-size:var(--text-l);align-items:center;margin:0;font-weight:650;display:flex}.verdict .status-dot{width:.75rem;height:.75rem}.readiness-card.easy .status-dot{background:var(--warn)}.readiness-card.rest .status-dot{background:var(--bad)}.readiness-card.unknown .status-dot{background:var(--border)}.readiness-card .why{margin:var(--space-1) 0 0;font-size:var(--text-s);color:var(--muted)}.vitals{gap:var(--space-3);margin:var(--space-4) 0 0;padding-top:var(--space-3);border-top:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.vitals div{flex-direction:column-reverse;display:flex}.vitals dt{font-size:var(--text-xs);color:var(--muted)}.vitals dd{font-size:var(--text-l);font-variant-numeric:tabular-nums;margin:0;font-weight:600}.vitals dd small{font-size:var(--text-s);color:var(--muted);font-weight:400}@media (width<=40rem){.vitals{grid-template-columns:repeat(2,minmax(0,1fr))}}.next-steps{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.next-steps a,.next-steps .step,.next-steps .step-button{box-sizing:border-box;width:100%;font:inherit;text-align:left;gap:var(--space-3);min-height:var(--tap);padding:var(--space-2) var(--space-4);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;text-decoration:none;display:flex}.next-steps .step-button:hover:not(:disabled),.next-steps a:hover{border-color:var(--accent)}.next-steps .step-button:after,.next-steps a:after{content:"›";font-size:var(--text-l);color:var(--muted);margin-left:auto}.next-steps .todo .step-mark{border:2px solid var(--accent)}.next-steps .done{color:var(--muted);box-shadow:none;background:0 0}.step-mark{width:1.25rem;height:1.25rem;color:var(--accent-contrast);border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:700;display:inline-grid}.next-steps .done .step-mark{background:var(--ok);color:var(--surface)}.step-text{flex-direction:column;line-height:1.3;display:flex}.step-text small{color:var(--muted)}.check-in-summary{gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.today-session h3{font-size:var(--text-l)}.race-list li{position:relative}.race-list li:hover{border-color:var(--muted)}.race-list a:after{content:"";border-radius:inherit;position:absolute;inset:0}.race-list a:focus-visible{outline:none}.race-list li:has(a:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.evaluate-prompt{gap:var(--space-2) var(--space-4);margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);background:var(--accent-soft);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}@media print{.app-header,.tabbar,.more-sheet,.more-backdrop{display:none!important}}@media (width>=40.01rem){.phone-only{display:none}}h1.phone-only{margin-bottom:var(--space-3)}@media (width<=40rem){.app-header{margin-bottom:var(--space-4)}.tiles{gap:var(--space-2)}.tile{padding:var(--space-2) var(--space-3)}.tile-value{font-size:1.15rem}}.guide{max-width:46rem;line-height:1.55}.guide h2{margin-top:2rem}.guide h3{margin:1.25rem 0 .4rem;font-size:1rem}.guide li+li{margin-top:.3rem}.guide blockquote{border-left:3px solid var(--accent,var(--border));background:var(--surface);border-radius:.25rem;margin:.75rem 0;padding:.6rem .9rem}.guide code{background:var(--surface);border:1px solid var(--border);border-radius:.25rem;padding:.05rem .3rem;font-size:.9em}.strength-exercises{gap:var(--space-2);margin:var(--space-3) 0;padding:0;list-style:none;display:grid}.strength-exercise{padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.strength-exercise p{margin:var(--space-1) 0 0}.strength-next .badge,.strength-plan .badge{margin-left:var(--space-2)}.badge.flag-too_light{color:var(--accent);background:var(--accent-soft)}.badge.flag-too_heavy{color:var(--warn);background:var(--surface-2)}.set-logger{gap:var(--space-2);margin-top:var(--space-3);display:grid}.set-row{gap:var(--space-2) var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;display:flex}.set-number{min-width:1.5rem;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.stepper{gap:var(--space-1);align-items:center;display:inline-flex}.stepper button{min-width:2.25rem;font-size:var(--text-l);padding:0;line-height:1}.stepper input{text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;width:3.5rem}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper .unit{font-size:var(--text-xs);color:var(--muted)}.strength-plan{margin:var(--space-3) 0 0;padding-left:var(--space-4)}@media (pointer:coarse){.stepper button{min-width:var(--tap)}}.done-today{margin:0;padding:0;list-style:none}.done-today li{padding:.4rem 0}.watch-toggle input[type=checkbox]{flex:none;width:1.25rem;height:1.25rem;min-height:0;margin:.15rem 0 0}@media (width<=600px){.watch-panel .detail-list{grid-template-columns:1fr;gap:0}.watch-panel .detail-list dt{margin-top:var(--space-3)}}
