@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#24382f;background:#f5f7f6;font-synthesis:none;--ink:#20392e;--line:#e0e6e2;--lime:#d4f463;--recovery:#e9edf3;--easy:#e5f0e8;--quality:#eee7fc;--long:#fceaca;--support:#e6eef8}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #708d28;outline-offset:3px}button{color:inherit}a{color:inherit;text-decoration:none}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;padding:0 3.3vw}.brand{font-family:Manrope,sans-serif;display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.04em;font-size:22px}.brand-symbol{display:grid;place-items:center;width:33px;height:33px;background:var(--ink);color:var(--lime);border-radius:8px;font-size:28px}.edition{font:500 11px 'DM Sans',sans-serif;letter-spacing:.12em;border-left:1px solid var(--line);padding-left:15px;margin-left:7px}.header-note{margin-left:auto;font-size:13px;color:#67796d}.version{font-size:11px;border:1px solid var(--line);border-radius:5px;padding:5px 7px}main{max-width:1720px;margin:auto;padding:34px 3.3vw 20px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow,.section-kicker,.mini-label{font-size:11px;font-weight:650;letter-spacing:.12em;color:#69806f}h1{font-family:Manrope,sans-serif;font-size:38px;line-height:1.2;letter-spacing:-.055em;font-weight:750;margin:10px 0 0}h2{font-family:Manrope,sans-serif;font-size:18px;letter-spacing:-.025em;margin:0;font-weight:750}.heading-note{font-size:14px;line-height:1.65;color:#738075;border-left:2px solid #c9d6bf;padding-left:18px}.workspace{display:grid;grid-template-columns:254px minmax(0,1fr);gap:30px}.settings{align-self:start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:23px 20px}.section-kicker{margin-bottom:23px}label{display:block;font-size:14px;font-weight:550;margin:17px 0 8px}input:not([type=range]),select{width:100%;height:42px;border:1px solid #dbe2dd;background:white;border-radius:6px;padding:8px 10px;color:#283c30;font-size:14px;min-width:0}select{height:auto;min-height:44px;padding-right:6px;font-size:13px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.unit-input{position:relative}.unit-input input{padding-right:46px}.unit-input span{position:absolute;right:9px;top:14px;font-size:11px;color:#6b7e6e;pointer-events:none}.field-note{font-size:12px;line-height:1.55;color:#748076;margin:9px 0 0}.slider-label{display:flex;align-items:baseline;justify-content:space-between;margin-top:10px}.slider-label output{font-size:14px;font-weight:650}input[type=range]{width:100%;accent-color:#36503d;margin:7px 0}.range-labels{display:flex;justify-content:space-between;font-size:11px;color:#829085}.primary-button{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:23px;border:0;border-radius:6px;background:var(--ink);color:#f5ffe3;padding:13px 14px;font-weight:550;font-size:14px}.primary-button span{color:var(--lime);font-size:20px}.error{font-size:13px;color:#aa422d;line-height:1.5}.error:empty{display:none}.context-note{margin-top:25px;border-top:1px solid var(--line);padding-top:20px}.context-note p{font-size:13px;font-weight:550}.context-note>span:last-child{font-size:12px;line-height:1.6;display:block;color:#738075}.mini-label{font-size:10px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.metric{background:white;border:1px solid var(--line);padding:17px 19px;border-radius:9px}.metric:first-child{background:var(--ink);color:white;border-color:var(--ink)}.metric-label{font-size:12px;color:#78877b}.metric:first-child .metric-label{color:#bed0ba}.metric-value{font:700 29px Manrope,sans-serif;letter-spacing:-.04em;margin:7px 0}.metric-value small{font:450 13px 'DM Sans',sans-serif;letter-spacing:0}.metric:first-child .metric-value{color:var(--lime)}.metric-caption{font-size:11px;color:#7a887e}.metric:first-child .metric-caption{color:#bfcebc}.trajectory{border:1px solid var(--line);border-radius:10px;padding:19px 22px 15px;background:#fff}.section-line{display:flex;justify-content:space-between;gap:10px;align-items:center}.section-line h2{font-size:15px}.section-line>span{font-size:12px;color:#7a887e}.volume-chart{display:flex;gap:5px;align-items:end;height:94px;margin:12px 0 7px}.chart-bar{position:relative;flex:1;min-width:0;border:0;border-radius:3px 3px 0 0;background:#a8c491;transition:filter .15s}.chart-bar:hover,.chart-bar.active{filter:brightness(.85)}.chart-bar.utilization{background:#395f4b}.chart-bar.taper{background:#d4dcdb}.chart-bar.rest{background:repeating-linear-gradient(135deg,#e5ecdf,#e5ecdf 3px,#bbcbb0 3px,#bbcbb0 4px)}.phase-track{display:flex;gap:0;font-size:10px;color:#748271;letter-spacing:.07em}.phase-track span{border-top:2px solid #aac291;padding-top:6px;min-width:0;overflow:hidden}.phase-track span:nth-child(2){border-color:#395f4b}.phase-track span:nth-child(3){border-color:#d4dcdb}.notice{border-left:3px solid #dba445;padding:10px 13px;font-size:13px;line-height:1.6;background:#fff7e9;margin-top:13px;border-radius:3px}.notice.good{border-color:#8db054;background:#edf3e7}.view-toolbar{display:flex;margin:24px 0 22px;border-bottom:1px solid var(--line)}.view-switch{display:flex;gap:24px}.view-switch button{border:0;background:none;font-size:14px;padding:0 0 13px;color:#7b857b;position:relative}.view-switch button[aria-selected=true]{color:#20392e;font-weight:650}.view-switch button[aria-selected=true]:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:3px;background:#304e36;border-radius:3px}.calendar-navigation{display:flex;justify-content:space-between;align-items:center}.calendar-navigation h2{font-size:22px}.calendar-navigation p{font-size:12px;color:#79877c;margin:7px 0 0}.nav-buttons{display:flex;gap:7px}.nav-buttons button{border:1px solid #d6dfd9;background:#fff;border-radius:6px;height:34px;width:35px;font-size:20px}.legend{display:flex;gap:17px;margin:19px 0;font-size:11px;color:#6d7b71;flex-wrap:wrap}.legend span{display:flex;gap:6px;align-items:center}.legend span:before{content:'';height:8px;width:8px;border-radius:2px;background:var(--tone)}.recovery{--tone:#b6c1d2;--bg:var(--recovery)}.easy{--tone:#89b595;--bg:var(--easy)}.quality{--tone:#a18acb;--bg:var(--quality)}.long,.specific{--tone:#d6a35a;--bg:var(--long)}.support{--tone:#8faacb;--bg:var(--support)}.calendar-head,.calendar-week{display:grid;grid-template-columns:155px repeat(7,minmax(0,1fr))}.calendar-head{margin-bottom:8px}.calendar-head span{font-size:11px;letter-spacing:.06em;text-align:center;color:#79867b}.calendar-head span:first-child{text-align:left}.calendar-week{background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:10px;overflow:hidden;min-height:175px}.week-summary{padding:14px 13px;background:#f9faf8;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:start}.week-number{font-size:10px;letter-spacing:.07em;color:#7c8b7a}.week-summary h3{font-size:13px;line-height:1.35;margin:9px 0}.week-totals{font:700 17px Manrope,sans-serif;letter-spacing:-.04em}.week-totals small{font:400 11px 'DM Sans',sans-serif}.week-secondary{font-size:11px;color:#7a877b;margin-top:5px;line-height:1.5}.recovery-toggle{font-size:10px;border:1px solid #d9e0d5;border-radius:4px;background:transparent;color:#6f806b;padding:4px 5px;margin-top:auto}.recovery-toggle[aria-pressed=true]{background:#e9efdc;border-color:#bfcda5;color:#4d643a}.day{padding:11px 6px;min-width:0;border-right:1px solid #edf0ec}.day:last-child{border-right:0}.day.outside{background:#fafbf9}.date-number{font-size:11px;color:#7b897e;margin-bottom:10px;display:block}.session{display:block;text-align:left;width:100%;border:0;border-left:2px solid var(--tone);border-radius:4px;background:var(--bg);padding:8px 6px;margin-bottom:5px;min-width:0}.session:hover{filter:brightness(.97);box-shadow:0 1px 4px #0001}.session-name{display:block;font-size:11px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}.session-metrics{display:block;font-size:12px;margin-top:7px;line-height:1.25}.session-description{display:block;font-size:10px;color:#647268;margin-top:5px;line-height:1.4}.rest-label{font-size:11px;color:#8d988b;line-height:1.6}.target-day{font-size:12px;line-height:1.5;color:#3d5731;background:#e8f0d8;border-radius:5px;padding:9px 6px;font-weight:600}.calendar-footnote{font-size:12px;color:#778579;line-height:1.6;margin:16px 0}.library-heading p{font-size:14px;line-height:1.6;color:#6f8072;max-width:700px}.library-card{background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:12px;padding:18px}.library-title{display:flex;justify-content:space-between;gap:10px}.library-title h3{font-size:16px;margin:0}.library-source{font-size:12px;color:#7b877d;margin-top:6px}.zone-tag{padding:4px 9px;border-radius:4px;background:var(--bg);height:fit-content;font-size:12px;font-weight:600}.ladder{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.ladder button{border:1px solid #dce2d8;border-radius:5px;background:#f9fbf7;text-align:left;padding:9px 11px;min-width:100px;font-size:12px}.ladder button strong{display:block;font-size:14px;margin:5px 0}.library-card p{font-size:13px;line-height:1.6;margin-bottom:0;color:#6d7c70}.audit-row{display:flex;align-items:start;gap:12px;border-bottom:1px solid var(--line);padding:17px 0;font-size:14px;line-height:1.6}.audit-icon{color:#44682e}.audit-row.warning .audit-icon{color:#b17b2e}.audit-row p{margin:3px 0 0;color:#728074;font-size:13px}.audit-notes{line-height:1.7;font-size:14px;color:#687b6a;margin-top:25px}footer{display:flex;justify-content:space-between;gap:20px;margin-top:38px;border-top:1px solid var(--line);padding-top:17px;color:#879082;font-size:10px;line-height:1.5}dialog{border:1px solid #d6dfd5;border-radius:14px;width:min(560px,calc(100% - 28px));padding:32px;color:var(--ink);box-shadow:0 25px 100px #15231530}dialog::backdrop{background:#13271d66;backdrop-filter:blur(3px)}.close-dialog{position:absolute;right:12px;top:9px;font-size:28px;border:0;background:none;color:#7a8877}dialog h2{font-size:27px;margin-top:12px}dialog p{line-height:1.7;font-size:14px;color:#697b6c}.detail-metrics{display:flex;gap:24px;margin:20px 0}.detail-metrics strong{display:block;font-size:25px;letter-spacing:-.04em}.detail-metrics span{font-size:12px;color:#7d887c}.structure-row{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid var(--line);font-size:14px}.detail-source{font-size:12px!important}.pending{color:#9f742e!important}[hidden]{display:none!important}
.athlete-panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 20px;margin-bottom:18px}.athlete-panel>summary{cursor:pointer;font-weight:650;font-size:16px}.athlete-panel>summary small{font-weight:400;font-size:12px;color:#6d7c70;margin-left:8px}#anchor-summary{float:right;font-size:12px;font-weight:400;color:#697d6c}.anchor-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.anchor-grid label{margin-top:16px}.zone-settings{margin-top:16px}.zone-settings summary,.export-guidance summary{font-size:14px;cursor:pointer;color:#4b6652}.zone-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.zone-grid fieldset{display:flex;gap:6px;border:0;padding:0;margin:0;align-items:center;min-width:0}.zone-grid legend,.zone-grid label{font-size:13px;margin:0 0 8px}.zone-grid label input{margin-top:8px}.zone-grid fieldset input{min-width:0}.profile-actions{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-top:16px}.secondary-button{border:1px solid #bfcfbe;background:#f1f6ec;border-radius:6px;padding:10px 13px;font-size:14px;font-weight:550}.local-opt-in{display:flex;align-items:center;gap:7px;font-size:12px;margin:0}input[type=checkbox]{width:16px;height:16px;padding:0;accent-color:#36503d}#profile-status{font-size:12px;color:#647465}.resolved-zones{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.resolved-zones span{border:1px solid var(--line);padding:5px 7px;border-radius:5px;font-size:12px;line-height:1.5}.export-guidance{margin:14px 0;padding:12px 15px;background:#fff7e9;border-radius:6px}.export-guidance p{font-size:13px;line-height:1.6;color:#70644e}.export-guidance a{text-decoration:underline}.session-target{display:block;font-size:12px;line-height:1.45;margin:8px 0;font-weight:550;overflow-wrap:anywhere}.session-wrap{margin-bottom:8px}.session-wrap .session{margin-bottom:0}.download-link{background:none;border:0;padding:6px 3px;font-size:12px;color:#426341;text-align:left;text-decoration:underline;min-height:30px}.ladder-item{display:flex;flex-direction:column}.ladder-item .download-link{border:0;background:none;padding:7px 3px}.download-panel{background:#f5f8f2;border:1px solid #dce5d6;padding:16px;border-radius:7px;margin:18px 0}.download-panel h3{font-size:16px;margin:0}.download-panel p{font-size:13px}.download-actions{display:flex;flex-wrap:wrap;gap:8px}.structure-row small{font-size:12px;color:#708271}.structure-row strong{flex-shrink:0}.structured-steps{max-height:420px;overflow:auto}.detail-metrics{flex-wrap:wrap}#download-status:empty{display:none}.library-target{font-weight:600}
@media(max-width:700px){.anchor-grid,.zone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.athlete-panel{padding:16px}#anchor-summary{float:none;display:block;margin-top:8px}.day .session-wrap{grid-column:2;margin:0}.session-target{font-size:13px}.download-link{min-height:36px}.athlete-panel>summary{line-height:1.5}.structured-steps{max-height:320px}.download-actions .secondary-button{width:100%}}
/* Stable type sizes remain legible as the desktop calendar gets denser. */
.session-name{font-size:14px}.session-metrics{font-size:14px}.session-description{font-size:12px}.date-number,.week-number,.week-secondary,.legend,.calendar-head span,.metric-caption,.metric-label,.recovery-toggle,.section-kicker,.mini-label,.phase-track,.range-labels{font-size:12px}.week-summary h3{font-size:14px}.phase-track .phase-capacity{border-color:#aac291}.phase-track .phase-utilization{border-color:#395f4b}.phase-track .phase-taper{border-color:#d4dcdb}.phase-track .phase-{border-color:transparent}.phase-track{letter-spacing:0}.calendar-week{min-height:210px}
@media(min-width:1500px){.calendar-head,.calendar-week{grid-template-columns:165px repeat(7,minmax(0,1fr))}}
@media(max-width:1180px){.workspace{grid-template-columns:220px minmax(0,1fr);gap:20px}.settings{padding:20px 14px}.calendar-head,.calendar-week{grid-template-columns:120px repeat(7,minmax(0,1fr))}.week-summary{padding:12px 8px}.day{padding:10px 4px}.session{padding:7px 4px}.metrics{gap:8px}.metric{padding:15px 12px}.metric-value{font-size:25px}.view-switch{gap:18px}.session-description{display:none}}
@media(max-width:960px){.workspace{grid-template-columns:1fr}.settings{padding:20px}.settings form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 18px}.settings form>label{margin:0;align-self:end}.settings form{display:block;columns:2;column-gap:26px}.settings form>*{break-inside:avoid}.context-note{display:none}.calendar-head,.calendar-week{grid-template-columns:145px repeat(7,minmax(0,1fr))}.session-description{display:block}.header-note{display:none}.version{margin-left:auto}.page-heading{margin-bottom:24px}.metric{padding:17px}.session-name{font-size:12px}}
@media(max-width:700px){main{padding:25px 16px}.topbar{padding:0 16px;height:65px}.edition{font-size:9px}.heading-note{display:none}h1{font-size:32px}.settings form{columns:auto}.settings{padding:20px}.metrics{grid-template-columns:repeat(2,1fr)}.metric-value{font-size:28px}.calendar-head{display:none}.calendar-week{display:block}.week-summary{border-right:0;border-bottom:1px solid var(--line);padding:15px;display:grid;grid-template-columns:1fr auto;gap:6px}.week-summary h3{margin:0}.week-number{grid-column:1/-1}.week-totals{grid-row:2;grid-column:2}.week-secondary{margin:0}.recovery-toggle{grid-column:2;grid-row:3}.day{display:grid;grid-template-columns:60px 1fr;gap:7px;border-right:0;border-bottom:1px solid #edf0ec;padding:10px 12px}.day .date-number{grid-column:1;grid-row:1/4;margin:7px 0}.day .session,.day .rest-label,.day .target-day{grid-column:2;margin:0}.session-name{font-size:14px}.session-metrics{font-size:13px}.session-description{font-size:12px}.session{padding:10px}.day.outside{display:none}.view-switch{gap:15px}.view-switch button{font-size:12px}.calendar-navigation h2{font-size:20px}.section-line>span{font-size:10px}.volume-chart{gap:3px}.phase-track{font-size:9px}.legend{gap:12px}.trajectory{padding:16px}.calendar-footnote{font-size:12px}footer{display:block;font-size:11px}footer span{display:block;margin-bottom:8px}}
