@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/inter-var.woff2)format("woff2")}@font-face{font-family:Montserrat;font-style:italic;font-weight:900;font-display:swap;src:url(/fonts/montserrat-900-italic.woff2)format("woff2")}@font-face{font-family:Inconsolata;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/inconsolata-var.woff2)format("woff2")}:root{--bg:#fafafa;--surface:#fff;--surface-raised:#f8fafc;--border:#e2e8f0;--border-subtle:#f1f5f9;--text:#0f172a;--text-muted:#475569;--text-subtle:#94a3b8;--brand:#c71125;--brand-muted:#fad5d9;--brand-ring:#c7112566;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--i-easy:#64748b;--i-long:#10b981;--i-threshold:#c71125;--i-subt:#dc6b1f;--i-vo2:#a855f7;--i-race:#c9a227;--s-xs:4px;--s-sm:8px;--s-md:12px;--s-lg:16px;--s-xl:24px;--s-xxl:32px;--r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-pill:9999px;--f-ui:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--f-display:"Montserrat", "Inter", system-ui, sans-serif;--f-mono:"Inconsolata", Consolas, "SF Mono", Menlo, "Courier New", monospace;--shadow-card:0 1px 3px #00000014;--shadow-elevated:0 4px 6px #00000012;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--f-ui);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:16px;line-height:1.4}#root{min-height:100svh}.app{flex-direction:column;min-height:100svh;display:flex}.wrap{width:100%;max-width:720px;padding-left:var(--s-lg);padding-right:var(--s-lg);margin:0 auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.t-title{font-family:var(--f-display);letter-spacing:-.5px;color:var(--text);font-size:32px;font-style:italic;font-weight:900;line-height:1.05}.t-h2{font-size:20px;font-weight:700}.t-section{letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:500}.t-body-bold{font-size:16px;font-weight:600}.t-body{font-size:16px;font-weight:400}.t-caption{font-size:13px;font-weight:400}.t-micro{font-size:11px;font-weight:500}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.stat-value{font-family:var(--f-mono);color:var(--text);white-space:nowrap;font-size:24px;font-weight:700;line-height:1.15}.pace-value{font-family:var(--f-mono);color:var(--text);white-space:nowrap;font-size:18px;font-weight:700;line-height:1.2}.masthead{background:var(--bg);border-bottom:1px solid var(--border)}.masthead-inner{align-items:center;gap:var(--s-md);padding-top:var(--s-lg);padding-bottom:var(--s-md);display:flex}.tr-mark{flex:none;width:auto;height:40px;display:block}.brand-line{color:var(--brand);margin:0}.masthead-text{flex:1;min-width:0}.masthead-link{white-space:nowrap;flex:none;align-self:flex-start;align-items:center;text-decoration:none;display:inline-flex}.app-title{margin:2px 0 0}.content{padding-top:var(--s-lg);padding-bottom:var(--s-xxl);gap:var(--s-md);flex-direction:column;flex:1;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-card);overflow:hidden}.card.raised{background:var(--surface-raised);box-shadow:var(--shadow-elevated)}.card.intent{border-left-width:6px}.card.intent-threshold{border-left-color:var(--i-threshold);background:#c7112526}.card.intent-subt{border-left-color:var(--i-subt);background:#dc6b1f26}.card.intent-danger{border-left-color:var(--danger);background:#ef444426}.card-body{padding:var(--s-lg);gap:var(--s-md);flex-direction:column;display:flex}.card-head{justify-content:space-between;align-items:center;gap:var(--s-sm);margin:0;display:flex}.card-head .t-section{color:var(--text)}.chip{border-radius:var(--r-pill);letter-spacing:.3px;white-space:nowrap;align-self:flex-start;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.chip.sm{padding:3px 8px;font-size:11px}.chip-threshold{color:var(--i-threshold);background:#c7112533}.chip-subt{color:var(--i-subt);background:#dc6b1f33}.chip-easy{color:var(--i-easy);background:#64748b33}.chip-long{color:var(--i-long);background:#10b98133}.chip-brand{color:var(--brand);background:var(--brand-muted)}.chip-plain{color:var(--text-muted);background:var(--surface-raised);border:1px solid var(--border)}.dot{border-radius:50%;flex:none;width:8px;height:8px}.dot-easy{background:var(--i-easy)}.dot-long{background:var(--i-long)}.dot-threshold{background:var(--i-threshold)}.dot-subt{background:var(--i-subt)}.prow{align-items:center;gap:var(--s-sm);padding:var(--s-sm) 0;border-top:1px solid var(--border-subtle);display:flex}.prow:first-child{border-top:0}.prow-label{color:var(--text-muted);flex-direction:column;flex:1;font-size:15px;display:flex}.prow-sub{color:var(--text-muted)}.prow-val{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.prow-val .t-micro,.grid-cell .t-micro{color:var(--text-muted);white-space:nowrap}.base{color:var(--text-muted);font-family:var(--f-mono);font-size:11px;text-decoration:line-through}.btn{letter-spacing:.1px;min-height:48px;padding:var(--s-md) var(--s-xl);border-radius:var(--r-md);cursor:pointer;color:var(--brand);background:0 0;border:1.5px solid #0000;flex:auto;font-family:inherit;font-size:15px;font-weight:600}.btn.primary{background:var(--brand);color:#fff}.btn.secondary{border-color:var(--brand);color:var(--brand)}.btn.ghost{padding:var(--s-sm) var(--s-md);flex:none}.btn.on{background:var(--text);border-color:var(--text);color:#fff}.btn:disabled{opacity:.45;cursor:default}.btn:active:not(:disabled){opacity:.82}.btn:focus-visible,.input:focus-visible,.seg-btn:focus-visible,.result:focus-visible,.toggle input:focus-visible{outline:3px solid var(--brand-ring);outline-offset:2px}.btn-row{gap:var(--s-sm);flex-wrap:wrap;display:flex}.field{gap:var(--s-xs);flex-direction:column;display:flex}.field.grow{flex:1}.label{letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:500}.input{font:inherit;min-height:48px;padding:var(--s-md) var(--s-lg);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);width:100%;font-size:16px}.input.mono{font-weight:600}.input:focus{border-color:var(--brand)}.input.bad{border-color:var(--danger)}.help{color:var(--text-muted);margin:0;font-size:13px}.help.err{color:var(--danger);font-weight:500}.seg{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);display:flex;overflow:hidden}.seg-btn{min-height:48px;font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:1;font-size:15px;font-weight:600}.seg-btn+.seg-btn{border-left:1px solid var(--border)}.seg-btn.on{background:var(--brand);color:#fff}.search{gap:var(--s-sm);align-items:flex-end;display:flex}.search .btn{flex:none}.results{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);margin:0;padding:0;list-style:none;overflow:hidden}.result{text-align:left;width:100%;font:inherit;min-height:48px;padding:var(--s-md) var(--s-lg);border:0;border-bottom:1px solid var(--border-subtle);color:var(--text);cursor:pointer;background:0 0;font-size:15px}.results li:last-child .result{border-bottom:0}.result:hover{background:var(--surface-raised)}.manual{gap:var(--s-md);grid-template-columns:1fr 1fr;display:grid}.manual .help{grid-column:1/-1}.pr-summary{justify-content:space-between;align-items:center;gap:var(--s-md);padding:var(--s-md) var(--s-md) var(--s-md) var(--s-lg);display:flex}.pr-summary-text{align-items:baseline;gap:var(--s-xs) var(--s-lg);color:var(--text-muted);flex-wrap:wrap;margin:0;font-size:15px;font-weight:400;display:flex}.pr-summary-text .pace-value{font-size:16px}.stats{gap:var(--s-sm);grid-template-columns:repeat(4,1fr);display:grid}.stat{flex-direction:column;min-width:0;display:flex}.stat .t-caption{color:var(--text-muted);margin-top:2px}.track-wrap{gap:var(--s-xs);flex-direction:column;display:flex}.track{border-radius:var(--r-pill);background:var(--border);height:8px;position:relative;overflow:visible}.seg-bar{height:8px;position:absolute;top:0}.seg-bar:first-child{border-radius:var(--r-pill) 0 0 var(--r-pill)}.seg-bar:nth-child(6){border-radius:0 var(--r-pill) var(--r-pill) 0}.tick{background:var(--text-subtle);width:1px;height:4px;position:absolute;top:8px}.marker{background:var(--surface);border:3px solid var(--text);width:16px;height:16px;box-shadow:var(--shadow-card);border-radius:50%;margin-left:-8px;transition:left .5s cubic-bezier(.2,.8,.2,1);position:absolute;top:-4px}.track-scale{height:14px;color:var(--text-muted);position:relative}.track-scale span{position:absolute;transform:translate(-50%)}.cond-foot{justify-content:space-between;align-items:center;gap:var(--s-sm);flex-wrap:wrap;display:flex}.cond-src{color:var(--text-muted)}.warn{border-left:4px solid var(--danger);padding:var(--s-md);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--text);background:#ef44441f}.warn strong{color:var(--danger)}.cond-controls{border-top:1px solid var(--border-subtle);padding:var(--s-lg);gap:var(--s-md);flex-direction:column;display:flex}@media (prefers-reduced-motion:reduce){.marker{transition:none}}.note{padding:var(--s-md) var(--s-lg);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-muted);margin:0;font-size:15px}.section-row{justify-content:space-between;align-items:center;gap:var(--s-sm);margin-top:var(--s-sm);display:flex}.section-row h2{margin:0}.toggle{align-items:center;gap:var(--s-sm);min-height:44px;color:var(--text-muted);cursor:pointer;font-size:15px;font-weight:500;display:flex}.toggle input{width:20px;height:20px;accent-color:var(--brand);margin:0}.zone-grid{gap:var(--s-sm);grid-template-columns:repeat(3,1fr);display:grid}.grid-cell{min-width:0;padding:var(--s-sm);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);flex-direction:column;gap:2px;display:flex}.grid-cell .t-micro.head{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.grid-cell .heat{color:var(--brand)}.explain{color:var(--text-muted);margin:0;font-size:13px}.greyed .pace-value,.greyed .stat-value{color:var(--text-muted)}.footnote{color:var(--text-muted);margin:0;font-size:13px}.legal{border-top:1px solid var(--border);background:var(--surface);color:var(--text-muted);padding:var(--s-lg) 0 var(--s-xxl)}.legal p{margin:0 0 var(--s-sm);font-size:13px}@media (width<=480px){.t-title{font-size:26px}}@media (width<=400px){.pace-value{font-size:16px}.stat-value{font-size:22px}}.masthead.dark{background:#0a0a0b;border-bottom:0}.masthead.dark .app-title{color:#f5f5f7}.laktic-mark{border-radius:10px;flex:none;display:block}.bar-actions{gap:var(--s-xs);display:flex}.btn.sm{min-height:36px;padding:var(--s-xs) var(--s-md);font-size:13px}.btn.danger{color:var(--danger)}.chip-row{gap:var(--s-sm);flex-wrap:wrap;display:flex}.chip.athlete-chip,.chip.pick{font:inherit;border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--text-muted);cursor:pointer;padding:6px 14px;font-size:13px;font-weight:600}.chip.athlete-chip.on,.chip.pick.on{background:var(--brand);border-color:var(--brand);color:#fff}.chip.athlete-chip.incomplete:not(.on){border-style:dashed}.chip.athlete-chip.add{color:var(--brand);border-style:dashed}.chip.athlete-chip:focus-visible,.chip.pick:focus-visible{outline:3px solid var(--brand-ring);outline-offset:2px}.roster-section{gap:var(--s-md);margin-top:var(--s-lg);padding-top:var(--s-lg);border-top:1px solid var(--border);flex-direction:column;display:flex}.athlete-list{flex-direction:column;display:flex}.athlete-row{justify-content:space-between;align-items:center;gap:var(--s-sm);padding:var(--s-sm) 0;border-top:1px solid var(--border-subtle);display:flex}.athlete-row:first-child{border-top:0}.athlete-row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.athlete-meta{color:var(--text-muted);align-items:center;gap:var(--s-sm);flex-wrap:wrap;display:flex}.athlete-row-actions{flex:none;gap:2px;display:flex}.athlete-form{gap:var(--s-md);padding:var(--s-md);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-raised);flex-direction:column;display:flex}.athlete-name{color:var(--text)}.form-grid{gap:var(--s-md);align-items:flex-start;display:flex}.form-grid .field:not(.grow){flex:0 0 40%}.view-switch{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);display:flex;overflow:hidden}.view-switch button{min-height:44px;font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:1;font-size:15px;font-weight:600}.view-switch button+button{border-left:1px solid var(--border)}.view-switch button.on{background:var(--text);color:#fff}.view-switch button:focus-visible{outline:3px solid var(--brand-ring);outline-offset:-3px}.board-title{flex-direction:column;gap:2px;display:flex}.board-cond{color:var(--text-muted)}.board-table{border-collapse:collapse;width:100%}.board-table th{text-align:left;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);padding:var(--s-xs) 0 var(--s-sm);border-bottom:1px solid var(--border);font-size:12px;font-weight:500}.board-table td{padding:var(--s-sm) 0;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.board-table tr:last-child td{border-bottom:0}.board-table .num-col{text-align:right;white-space:nowrap}.board-table td span,.board-table td s{display:block}.board-group{color:var(--text-muted)}@media print{.no-print,.cond-controls,.toggle,.legal,.explain,.footnote,.section-row,.roster-section>.card:not(.board),.roster-section>.help,.content>.card:not(.raised),.content>.note{display:none!important}.roster-section{border-top:0;margin-top:0;padding-top:0}body{background:#fff}.card{box-shadow:none;border-color:#999}.content{gap:12px}}
