@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--green:#224c3a;--ink:#253c32;--muted:#899087;--line:#e5e8df;--bg:#f7f8f3}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}button,a,input,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:hover{filter:brightness(.95)}button:focus-visible,a:focus-visible{outline:2px solid #abbb4e;outline-offset:4px}aside{position:fixed;width:246px;inset:0 auto 0 0;border-right:1px solid var(--line);background:#f0f2e9;padding:37px 24px;display:flex;flex-direction:column}.brand{font:800 35px Manrope,sans-serif;letter-spacing:-2px;color:var(--green);text-decoration:none}.brand span{font-size:35px;color:#80954d;margin-left:5px}aside>small{font-size:8px;letter-spacing:1.4px;margin-top:8px}nav{display:grid;gap:7px;margin-top:41px}nav button{display:flex;align-items:center;gap:13px;border:0;color:#778076;background:none;text-align:left;padding:13px 14px;border-radius:6px;font-size:18px}nav button span{font-size:12px}nav button.active{background:#e0e7d5;color:#28492f;font-weight:600}nav em{margin-left:auto;font-size:10px;font-style:normal}.sidebottom{margin-top:auto}.private{font-size:10px;color:#858e7e;border-bottom:1px solid #dce1d4;padding:20px 0}#profile{display:flex;align-items:center;gap:10px;background:none;border:0;padding:20px 0;text-align:left;width:100%;font-size:11px}#profile small{display:block;font-size:9px;color:var(--muted);margin-top:5px}#profile b{margin-left:auto}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;width:31px;height:31px;background:#dce4c9;color:#4b6436;font-size:11px;font-weight:600;font-style:normal;border:2px solid var(--bg)}main{margin-left:246px}header{min-height:78px;flex-wrap:wrap;row-gap:12px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:12px 44px;font-size:11px;color:#8c948b}header b{margin:0 15px;font-weight:400}header strong{font-weight:500;color:#4b5b4f}header>div{display:flex;align-items:center;gap:20px}.demo{font-size:8px;letter-spacing:1px;border:1px solid #dce1d4;border-radius:4px;padding:5px 7px}.content{max-width:1440px;margin:auto;padding:36px 44px 20px}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{font-size:9px;letter-spacing:1.6px;font-weight:600;color:#87937e;margin:0 0 11px}h1{font:600 30px Manrope,sans-serif;letter-spacing:-1.1px;margin:0}p{line-height:1.7}.intro p:last-child{color:#92988d;font-size:12px;margin-bottom:0}.primary{background:var(--green);color:white;border:0;border-radius:6px;padding:13px 18px;font-size:11px}.textbtn{background:none;border:0;color:#6c7f5a;font-size:10px;padding:0}.sectionTitle{display:flex;align-items:center;justify-content:space-between;margin:0 0 18px}.sectionTitle h2{font:600 19px Manrope,sans-serif;letter-spacing:-.6px;margin:0}.sectionTitle .eyebrow{font-size:8px;margin-bottom:8px}.sessionGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.session{border:1px solid var(--line);border-radius:8px;background:#fffefa;padding:20px;display:flex;flex-direction:column}.session .type{font-size:8px;letter-spacing:1.1px;color:#71865a;display:flex;justify-content:space-between}.session h3{font:600 18px Manrope,sans-serif;margin:15px 0 5px;letter-spacing:-.5px}.session p{font-size:10px;color:#92998e;margin:4px 0 10px;min-height:36px}.bars{height:47px;display:flex;align-items:end;gap:3px;margin:10px 0 16px}.bars i{flex:1;background:#a3b584;border-radius:2px 2px 0 0}.session:nth-child(2) .bars i{background:#c0a36f}.session:nth-child(3) .bars i{background:#95abb3}.metrics{display:flex;gap:17px;font-size:11px;padding-bottom:17px;border-bottom:1px solid var(--line)}.metrics small{color:#a0a598;font-size:9px}.cardfoot{display:flex;align-items:center;justify-content:space-between;margin-top:16px;font-size:9px;color:#959d8e}.scheduleBtn{border:1px solid #dde3d4;background:#f2f5eb;color:#587047;padding:8px 11px;border-radius:4px;font-size:9px}.lower{margin-top:34px}.lower .sectionTitle h2{font-size:17px}.muted{font-size:9px;color:#9ba18f}.week{border:1px solid var(--line);border-radius:8px;background:#fffefa;overflow:hidden}.days{display:grid;grid-template-columns:repeat(7,1fr)}.day{border-right:1px solid #eff0e9;min-height:151px;text-align:center;padding:13px 3px;font-size:9px;color:#969e8d}.day:last-child{border:0}.day b{display:block;font-size:15px;color:#6b785f;margin:8px auto 15px;font-weight:500}.day.today b{background:#2b5038;color:white;border-radius:50%;width:26px;padding:4px;margin-top:4px;margin-bottom:11px}.event{display:block;font-size:7px;background:#e8eddf;border-left:2px solid #a8b88c;border-radius:3px;padding:5px 2px;text-align:left;color:#627353;margin-top:5px;line-height:1.5}.legend{border-top:1px solid var(--line);padding:10px 14px;font-size:8px;color:#8d9783}footer{display:flex;justify-content:space-between;color:#abb09f;font-size:8px;border-top:1px solid var(--line);margin-top:34px;padding-top:17px}dialog{border:1px solid var(--line);border-radius:12px;padding:28px;max-width:460px;width:90%;color:var(--ink);background:var(--bg)}dialog::backdrop{background:#13291c88;backdrop-filter:blur(3px)}.modalHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modalHead h2{font-size:22px;margin:0}.modalHead button{background:none;border:0;font-size:25px;color:#6c7f5a}label{display:block;font-size:11px;margin:15px 0}input,select{display:block;width:100%;padding:11px;margin-top:7px;border:1px solid #d7ddcd;border-radius:5px;color:var(--ink);background:white}.notice{padding:16px;background:#eaf0df;color:#768367;line-height:1.7;font-size:12px;border-radius:6px;margin-bottom:22px}.journal{padding:22px;border:1px solid var(--line);border-radius:8px;background:#fffefa;margin-bottom:13px;display:flex;align-items:center;gap:20px}.journal h3{margin:0 0 7px;font-size:16px}.journal p{font-size:11px;color:#92998e;margin:0}.journal strong{margin-left:auto;font-size:13px}.toolbar{display:flex;gap:8px;margin-bottom:24px}.toolbar button{border:1px solid #dae1d1;background:white;padding:8px 13px;border-radius:20px;color:#7d8b6e;font-size:10px}.toolbar button.selected{background:#234c3a;color:white}#toast{position:fixed;bottom:28px;left:50%;background:#244c3a;color:white;padding:13px 24px;border-radius:7px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}@media(min-width:1500px){.content{padding-top:44px}}@media(max-width:1100px){aside{width:200px;padding:30px 16px}main{margin-left:200px}.content{padding:28px}.session{padding:15px}.intro h1{font-size:25px}}@media(max-width:760px){aside{position:static;width:100%;height:auto;padding:15px 20px;display:block}.brand{font-size:28px}aside>small,.sidebottom{display:none}nav{display:flex;margin-top:16px;overflow:auto;gap:5px}nav button{white-space:nowrap;padding:9px;font-size:13px}nav button span{font-size:10px}nav em{display:none}main{margin:0}header{min-height:55px;padding:8px 20px}.content{padding:25px 20px}.intro{gap:12px;align-items:start}.intro h1{font-size:25px}.intro .primary{font-size:0;padding:12px}.intro .primary:after{content:'＋';font-size:20px}.intro p:last-child{font-size:11px}.sessionGrid{grid-template-columns:1fr}.session p{min-height:auto}footer{gap:20px}}
[hidden]{display:none!important}.header-ride{border:1px solid #d8e1cd;color:#385b3f;background:#edf2e5;border-radius:6px;padding:8px 12px;font-size:11px}.ride-card{font-weight:600;font-size:11px;padding:9px 14px}.quiet-btn{border:1px solid #d9e0d1;background:#fffefa;color:#567047;border-radius:6px;padding:12px 15px;font-size:11px}button:disabled{opacity:.45;cursor:not-allowed;filter:none}.ride-panel{background:#1d3e2f;border-radius:12px;padding:27px 30px;color:#f2f4e5;box-shadow:0 9px 30px #193c2c0c}.ride-panel-top{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#bacb97;font-size:9px;letter-spacing:1.7px;font-weight:600}.ride-panel-state{display:flex;flex-wrap:wrap;gap:4px 18px}.panel-btn{border:1px solid #45614b;background:none;color:#f2f4e5;border-radius:6px;padding:10px 14px;font-size:11px;font-weight:500;letter-spacing:0;white-space:nowrap}.panel-btn:hover{filter:none;background:#26493a}.panel-btn.popout{border-color:#d7e5a0;color:#d7e5a0;font-weight:600}.panel-btn.danger{border-color:#7a5a4c;color:#f3b8a5}.ride-workout{margin-top:20px;padding-bottom:20px;border-bottom:1px solid #3e5b45}.ride-workout-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.ride-workout strong{font:600 17px Manrope,sans-serif;letter-spacing:-.4px}.ride-workout-title .panel-btn{padding:7px 12px}.ride-workout>span{display:block;font-size:11px;color:#a4b899;margin-top:6px}.ride-panel h3{font:500 25px Manrope,sans-serif;letter-spacing:-.6px;margin:22px 0 8px}.ride-panel>p{font-size:11px;color:#b5c4ad;margin:0 0 23px;min-height:19px}.ride-numbers{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;align-items:center}.ride-numbers>div{border-right:1px solid #45614b;padding-left:28px}.ride-numbers>div:first-child{padding-left:0}.ride-numbers>div:last-child{border:0}.ride-numbers small,.ride-time small{font-size:8px;letter-spacing:1.5px;color:#9fb692;display:block}.ride-numbers strong{display:block;font:500 59px Manrope,sans-serif;letter-spacing:-2.5px;font-variant-numeric:tabular-nums;line-height:1.3}.ride-numbers .target-number strong{color:#d7e5a0;font-size:74px}.ride-numbers strong em{font-style:normal;font-size:19px;letter-spacing:0;color:#bdce99;margin-left:7px}.ride-numbers>div>span{font-size:10px;color:#a4b899;display:block;min-height:15px}.ride-time{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #3e5b45;margin-top:29px;padding-top:21px}.ride-time strong{font:500 23px Manrope,sans-serif;margin-top:8px;display:block;font-variant-numeric:tabular-nums}.ride-progress{height:3px;background:#3e5b45;margin:22px 0}.ride-progress i{display:block;height:3px;background:#c0d188;width:0;transition:width .3s linear}.ride-chart svg{width:100%;display:block;max-height:110px}.ride-chart-legend{display:flex;justify-content:space-between;font-size:9px;color:#a4b899;gap:15px;margin-top:7px}.ride-chart-legend b{color:#fffce9}.ride-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #3e5b45;margin-top:24px;padding-top:22px}.ride-controls>div:first-child{display:flex;gap:10px}.ride-warning{margin:12px 0 0;font-size:11px;color:#f0c27a}.ride-panel .primary{background:#d7e5a0;color:#1d3e2f;font-weight:600}.ride-start{min-width:158px;font-size:12px;padding:15px 22px}.intensity{display:flex;gap:11px;align-items:center}.intensity span{font-size:8px;letter-spacing:1px;color:#9fb692;margin-right:6px}.intensity b{font-size:13px;width:40px;text-align:center;font-variant-numeric:tabular-nums;color:#f2f4e5}.intensity button{border:1px solid #45614b;border-radius:50%;width:29px;height:29px;background:none;color:#d7e5a0;font-size:16px}.ride-footnote{font-size:10px;color:#94a087;line-height:1.7;margin:12px 0 25px}#connections details p{font-size:11px;line-height:1.8;color:#8b987d}#connections>.quiet-btn{margin-top:16px;width:100%;font-size:11px}#connections details{border-top:1px solid #dae2cd;margin-top:21px;padding-top:16px}#connections summary{font-size:11px;cursor:pointer;color:#6c805a}.ride-summary{border-top:1px solid #3e5b45;margin-top:24px;padding-top:22px}.ride-summary .eyebrow{color:#bacb97;font-size:9px;margin:0 0 10px}.ride-summary h3{margin:0 0 6px;font:600 21px Manrope,sans-serif;letter-spacing:-.5px}.ride-summary p{font-size:11px;color:#b5c4ad;margin:0 0 4px}.ride-decision{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.ride-summary>.textbtn{display:block;margin-top:18px;font-size:11px;font-weight:600}.ride-panel .textbtn{color:#d7e5a0}.ride-panel .sent-link{color:#d7e5a0}.ride-panel .send-failed,.ride-panel .send-message{color:#f3b8a5}.ride-panel .ride-rate legend{color:#f2f4e5}.ride-panel .rpe button{background:none;border-color:#45614b;color:#d7e5a0}.ride-panel .rpe button:hover{background:#26493a}.ride-panel .rpe button[aria-pressed="true"]{background:#d7e5a0;border-color:#d7e5a0;color:#1d3e2f}.ride-panel .rpe span{color:#b5c4ad}.empty-journal{text-align:center;border:1px dashed #cfdcc0;border-radius:10px;background:#f0f4e8;padding:45px 25px}.empty-journal>span{font-size:35px;color:#7e9568}.empty-journal h3{font:600 22px Manrope,sans-serif}.empty-journal p{font-size:12px;color:#8b987e}.journal .demo{margin-left:8px}.journal .scheduleBtn{margin-left:auto;white-space:nowrap}.journal .textbtn{white-space:nowrap}.journal .delete-ride{margin-left:auto;color:#8a4b3c;font-size:11px}.modal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.primary.danger{background:#8a4b3c}
@media(max-width:1050px){.ride-numbers{grid-template-columns:repeat(3,1fr);row-gap:16px}.ride-numbers .target-number{grid-column:1/-1;border:0}.ride-numbers>div:nth-child(2){padding-left:0}.ride-numbers strong{font-size:48px}.ride-numbers .target-number strong{font-size:61px}.intensity{gap:8px}.intensity span{display:none}}@media(max-width:760px){.ride-panel{padding:22px 18px}.ride-panel h3{font-size:21px}.ride-numbers>div{padding-left:13px}.ride-numbers strong{font-size:37px}.ride-numbers .target-number strong{font-size:48px}.ride-numbers small,.ride-time small{font-size:7px;letter-spacing:1px}.ride-time strong{font-size:18px}.ride-controls{flex-wrap:wrap}.ride-controls>div:first-child{flex:1}.ride-start{min-width:130px}.ride-chart-legend{font-size:8px}.journal{flex-wrap:wrap}.journal>div{width:100%}}

.booting aside,.booting main,.booting #signIn,.signed-out aside,.signed-out main,body:not(.signed-out) #signIn{display:none}
#signIn{max-width:420px;margin:12vh auto;padding:0 20px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.sign-in-entry{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
#signIn>small{font-size:8px;letter-spacing:1.4px;margin-bottom:34px}
#signIn p{color:#87917d;font-size:12px;margin:4px 0 16px}
#signIn .primary{font-size:12px;padding:14px 20px}
#signIn .notice{margin:18px 0 0;color:#8a4b3c;background:#f4e6df}
#signIn .muted{margin-top:22px;line-height:1.7}
.account-actions{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px;margin-bottom:16px}
.link-actions{display:flex;gap:10px;flex-wrap:wrap}
.header-connections{display:flex;align-items:center;gap:9px;border:1px solid #d8e1cd;color:#385b3f;background:#fffefa;border-radius:6px;padding:8px 12px;font-size:11px;white-space:nowrap}
.marks{display:flex;gap:4px}.mark{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:#c8cdbf}.mark.ok{background:#4f9a5d}.mark.warn{background:#d9952b}
.connections-values{font-variant-numeric:tabular-nums}header.riding .connections-values{display:none}
.live-ride{order:3;flex-basis:100%;display:flex;align-items:center;gap:16px;min-width:0;background:#1d3e2f;color:#a4b899;border-radius:8px;padding:8px 8px 8px 16px;font-size:10px}
.live-status{display:flex;align-items:center;gap:8px;color:#bacb97;font-size:9px;letter-spacing:1.7px;font-weight:600;white-space:nowrap}.live-status .demo{color:#d7e5a0;border-color:#45614b;padding:3px 6px}
.live-block{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f2f4e5;font:500 13px Manrope,sans-serif}
.live-numbers{display:flex;gap:14px;white-space:nowrap}.live-value{color:#f2f4e5;font:500 15px Manrope,sans-serif;font-variant-numeric:tabular-nums}
.live-toggle{background:#d7e5a0;color:#1d3e2f;border:0;border-radius:6px;padding:8px 16px;font-size:11px;font-weight:600}.live-ride .textbtn{color:#d7e5a0;font-size:11px;white-space:nowrap}
#connections{max-width:880px}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tile{display:flex;flex-direction:column;gap:4px;min-width:0;border:1px solid var(--line);border-radius:8px;background:#fffefa;padding:16px}.tile.empty{border-color:#abbb4e;background:#f0f4e8}
.tile-head{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.4px;font-weight:600;color:#87937e}
.tile strong{font:600 32px Manrope,sans-serif;letter-spacing:-1px;font-variant-numeric:tabular-nums;margin:8px 0 2px}.tile strong em{font:400 12px 'DM Sans',sans-serif;letter-spacing:0;color:#8b987d;margin-left:5px}
.tile-name{font-size:12px;font-weight:600;overflow-wrap:anywhere}.tile-detail{font-size:10px;color:#839074;min-height:15px}.tile-detail.failed{color:#8a4b3c}
.tile-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:12px}.tile-actions button{flex:1 1 auto;padding:10px 12px;font-size:11px;white-space:nowrap}
@media(max-width:760px){header>div{gap:8px}.connections-label,.connections-values{display:none}.live-ride{flex-wrap:wrap;gap:8px 12px;padding:10px 12px}.live-block{flex-basis:calc(100% - 140px)}.live-numbers{order:1;flex-basis:100%;flex-wrap:wrap;gap:6px 12px}.live-toggle{order:2;flex:1}.live-ride .textbtn{order:2}.tiles{grid-template-columns:1fr}#connections{padding:20px}}
.mini-player{display:flex;flex-wrap:wrap;align-items:center;align-content:center;gap:3px 10px;min-height:100vh;padding:10px 14px;background:#1d3e2f;color:#a4b899;font-size:11px;line-height:1.3}
.mini-player>*{flex:0 0 100%;order:0}.mini-player>button,.mini-player>.live-intensity{flex:none}.mini-player>.textbtn{margin-left:auto;color:#d7e5a0;font-size:11px;white-space:nowrap}
.mini-player .live-block{font-size:clamp(13px,6vmin,26px)}.mini-player .live-numbers{flex-wrap:wrap;gap:0 14px}.mini-player .live-value{font-size:clamp(15px,8vmin,36px)}
.mini-player .live-numbers>:first-child{flex-basis:100%}.mini-player .live-numbers>:first-child .live-value{font-size:clamp(30px,20vmin,110px);line-height:1;letter-spacing:-2px;color:#d7e5a0}
.live-progress{height:3px;background:#3e5b45}.live-progress i{display:block;height:3px;background:#c0d188;transition:width .3s linear}.live-note{color:#f2f4e5}
.live-intensity{display:flex;align-items:center;gap:6px}.live-intensity button{width:26px;height:26px;border:1px solid #45614b;border-radius:50%;color:#d7e5a0;font-size:15px}.live-intensity b{min-width:36px;text-align:center;color:#f2f4e5;font-weight:500;font-variant-numeric:tabular-nums}
@media(max-height:150px){.mini-player .live-block,.mini-player .live-progress,.mini-player .live-next,.mini-player .live-intensity{display:none}}
.ride-rate{border:0;padding:0;margin:16px 0 0;min-width:0}.ride-rate legend{padding:0;margin-bottom:10px;font:600 13px Manrope,sans-serif;color:var(--ink)}
.rpe{position:relative;display:grid;grid-template-columns:repeat(10,minmax(0,34px));gap:4px;padding-bottom:24px}
.rpe button{height:34px;padding:0;border:1px solid #d9e0d1;border-radius:5px;background:#fffefa;color:#567047;font-size:12px;font-variant-numeric:tabular-nums}
.rpe button:hover{filter:none;background:#eef2e6}.rpe button[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:white}
.rpe span{display:none;position:absolute;left:0;bottom:0;font-size:11px;color:#77866a;white-space:nowrap;pointer-events:none}
.rpe button:hover span,.rpe button:focus-visible span,.rpe:not(:has(button:hover,button:focus-visible)) [aria-pressed="true"] span{display:block}
.send-state,.journal-effort{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.journal-effort{margin-top:10px}.journal-effort .scheduleBtn{margin-left:0}.journal-effort .textbtn{font-size:11px;font-weight:600}
.sent-link{color:#567047;font-size:11px;font-weight:600}#modalBody a{color:#567047;font-weight:600}.send-failed{color:#8a4b3c;font-size:11px}.send-message{flex-basis:100%;color:#8a4b3c;font-size:11px}
.linked-apps{border-top:1px solid var(--line);padding-top:16px;margin-bottom:16px}.linked-app{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px}
/* The Overview (home.mjs). Its labels are at least 11 px and its body text at least 13 px; secondary text is #5f6a5a, about 5.6:1 on the cards. Verdicts pair a glyph, a word and a tint; clay stays for errors. */
.today-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);border:1px solid var(--line);border-radius:8px;background:#fffefa;overflow:hidden;margin-bottom:20px}
.verdict{--tone:#d5dacb;--tint:#f6f7f1;display:flex;flex-direction:column;gap:14px;min-width:0;background:var(--tint);border-left:4px solid var(--tone);padding:22px 24px}
.verdict.ride,.together-row.ride{--tone:var(--green);--tint:#e9efe6}.verdict.ease,.together-row.ease{--tone:#c0a36f;--tint:#f6f0e2}.verdict.recover,.together-row.recover{--tone:#95abb3;--tint:#ecf1f3}.verdict.rest,.together-row.rest{--tone:#5d6f8c;--tint:#eceff5}
.verdict.stale{--tone:#b5b9ae;--tint:#f1f2ed}.stale>.verdict-body,.stale>.card-data{filter:grayscale(1)}
.verdict-word{margin:0 0 6px;font-size:11px;letter-spacing:1.4px;font-weight:700;text-transform:uppercase;color:var(--ink)}.verdict-word span{color:var(--tone);font-size:15px;letter-spacing:0}
.verdict h2{font:600 22px Manrope,sans-serif;letter-spacing:-.6px;margin:0 0 12px}.verdict-text{margin:0;font-size:14px;line-height:1.6}
.verdict-lines,.verdict-notes,.why ul{list-style:none;padding:0;margin:0 0 12px;font-size:13px;line-height:1.6}.verdict-lines li+li,.verdict-notes li+li,.why li+li{margin-top:4px}
.verdict-lines .soft,.verdict-notes{color:#4a5546}.verdict-notes{border-top:1px solid #253c3214;padding-top:10px}
.why summary{cursor:pointer;font-size:13px;font-weight:600;color:#4f6a3f}.why ul{margin:10px 0 0}.why p{margin:8px 0 0;font-size:13px;line-height:1.6}
.verdict-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 14px;margin-top:auto;font-size:13px;color:#5f6a5a}.verdict-foot .sync-problem{flex-basis:100%;margin:0;color:var(--ink);line-height:1.6}
.today-card .textbtn,.home-card .textbtn{font-size:13px;font-weight:600;color:#4f6a3f}.verdict-foot .textbtn{min-height:44px}.refresh[aria-disabled="true"]{opacity:.45;cursor:not-allowed;filter:none}
.today-card .quiet-btn,.plan-main{min-height:44px;font-size:13px}.plan-main{font-weight:600;padding:12px 18px}
.plan{display:flex;flex-direction:column;gap:8px;min-width:0;padding:22px 24px}
.plan-type{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin:0;font-size:11px;letter-spacing:1.2px;font-weight:600;color:#5f6a5a;text-transform:uppercase}.plan-type span{letter-spacing:.4px;font-variant-numeric:tabular-nums}
.plan h3{font:600 19px Manrope,sans-serif;letter-spacing:-.5px;margin:0}.plan-lead,.plan-desc,.plan-ride,.plan-metrics,.plan-next{margin:0;font-size:13px;line-height:1.6;color:#5f6a5a}.plan-ride{color:var(--ink)}
.plan-bars{margin:4px 0}.plan-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.plan .journal-effort button{min-height:44px;font-size:13px}.plan .sent-link,.plan .send-failed,.plan .send-message{font-size:13px}
.home-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-template-areas:"load nights";gap:20px;align-items:start}.load-card{grid-area:load}.nights-card{grid-area:nights}
.home-card{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fffefa;padding:20px 22px}
.card-title{margin:0 0 12px;font-size:11px;letter-spacing:1.4px;font-weight:700;text-transform:uppercase;color:#5f6a5a}.card-note{margin:8px 0;font-size:13px;line-height:1.6;color:#5f6a5a}
.load-head{margin:0;font:600 17px Manrope,sans-serif;letter-spacing:-.3px}.load-form{margin:2px 0 12px;font-size:13px}.load-chart{margin:0}
.chart-key{display:flex;flex-wrap:wrap;gap:4px 6px;margin:0 0 6px;font-size:11px;color:#5f6a5a}.key-fitness{color:var(--green);font-weight:700}.key-fatigue{color:#a8874a}.key-form{color:var(--ink);font-weight:700;margin-left:6px}
.chart-panel{position:relative}.chart-panel svg{display:block;width:100%;height:120px}.form-panel{margin-top:6px}.form-panel svg{height:110px}
.chart-panel .fitness{fill:none;stroke:var(--green);stroke-width:2}.chart-panel .fatigue{fill:none;stroke:#c0a36f;stroke-width:1.5}.form-line{fill:none;stroke:var(--ink);stroke-width:2}.today-rule{stroke:#5f6a5a;stroke-width:1;stroke-dasharray:3 3}
.chart-today{position:absolute;top:0;right:6px;padding:0 3px;font-size:11px;color:#5f6a5a;background:#fffefacc}
.band-rested{fill:#e6ecf2}.band-fresh{fill:#e8efdf}.band-holding{fill:#f3f3ee}.band-building{fill:#f5eedf}.band-stretched{fill:#ece6ee}
.band-label{position:absolute;left:6px;transform:translateY(-50%);font-size:11px;line-height:1;color:#4a5546;pointer-events:none}
.load-chart figcaption{margin-top:8px;font-size:13px;line-height:1.6}
.load-table{margin:10px 0}.load-table summary{cursor:pointer;font-size:13px;font-weight:600;color:#4f6a3f}.table-wrap{overflow-x:auto}
.load-table table{width:100%;margin-top:8px;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.load-table caption{text-align:left;padding-bottom:6px;font-size:11px;color:#5f6a5a}
.load-table th,.load-table td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.load-week{margin:10px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:13px;line-height:1.6}
.ftp-row{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:13px}.ftp-row p{margin:0;line-height:1.7}.ftp-note{color:#4a5546}
.night{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.night:last-child{border-bottom:0}
.night-label{margin:0;font-size:11px;letter-spacing:1.2px;font-weight:600;text-transform:uppercase;color:#5f6a5a}.night-value{margin:2px 0 0;font-size:13px}.night-value strong{font:600 18px Manrope,sans-serif}.night-value span{color:#4a5546}
.night-chart{flex:0 0 140px}.night-chart svg{display:block;width:100%;height:auto}
.night-chart rect{fill:#b9c6a2}.night-chart rect.last{fill:var(--green)}.night-chart .normal-band{fill:#e3ead8}.night-chart .median{stroke:#7d8775;stroke-width:1;stroke-dasharray:3 3}
.night-chart .night-line{fill:none;stroke:var(--green);stroke-width:1.5}.night-chart circle{fill:#fffefa;stroke:var(--green);stroke-width:1.5}.night-chart circle.last{fill:var(--green)}
.night-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;line-height:1.4;color:#5f6a5a}.night-days span:last-child{font-weight:700;color:var(--ink)}
.day .ridden{display:block;margin:-8px 0 6px;font-size:11px;font-weight:600;color:var(--green)}
/* Together today, under the Today card: each verdict keeps its glyph, word and tone. The profile's sharing switches say On or Off as well as sliding. */
.together{border:1px solid var(--line);border-radius:8px;background:#fffefa;padding:16px 22px;margin-bottom:20px}.together .card-title{margin-bottom:6px}
.together-row{display:flex;flex-wrap:wrap;gap:0 14px;padding:4px 0;font-size:13px;line-height:1.6}.together-who{flex:0 0 auto;min-width:56px;max-width:100%;font-weight:700;overflow-wrap:anywhere}.together-day{flex:1 1 220px;min-width:0}
.together-word{font-weight:600}.together-word span{color:var(--tone)}.together-asof{color:#5f6a5a}
.together-plan{margin-top:6px;padding-top:10px;border-top:1px solid var(--line)}.together-plan p{margin:0;font-size:13px;line-height:1.6}.together .quiet-btn{min-height:44px;font-size:13px}
.sharing{border-top:1px solid var(--line);padding-top:16px;margin-bottom:16px}.sharing .muted{font-size:11px;line-height:1.6}
.share-switch{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;border:0;background:none;padding:6px 0;text-align:left;font-size:13px;color:var(--ink)}
.share-switch .switch{position:relative;flex:0 0 34px;height:20px;border-radius:10px;background:#87917e}.share-switch .switch::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fffefa;transition:transform .15s}
.share-switch[aria-checked="true"] .switch{background:var(--green)}.share-switch[aria-checked="true"] .switch::after{transform:translateX(14px)}.switch-state{margin-left:auto;font-size:11px;font-weight:600;color:#5f6a5a}
@media(max-width:1100px){.home-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"nights" "load"}}
@media(max-width:900px){.today-card{grid-template-columns:minmax(0,1fr)}.plan{border-top:1px solid var(--line)}}
@media(max-width:760px){.content{padding:25px 16px}.verdict,.plan{padding:18px 16px}.home-card,.together{padding:16px}.plan-actions{flex-direction:column}.plan-actions button,.verdict-foot .quiet-btn{width:100%}
  .nights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.night{display:block;padding:10px;border:1px solid var(--line);border-radius:6px}.night:last-child{border-bottom:1px solid var(--line)}.night-chart{margin-top:8px}}
/* Collections: sub-tabs under All workouts, a shelf per collection with its weeks, and cards whose long descriptions open in place. */
.subnav{display:grid;gap:2px;margin:-4px 0 4px 31px}nav .subnav button{padding:8px 12px;font-size:12px}
.shelf{margin-top:34px}.shelf .sectionTitle h2{font-size:17px}.shelf .sectionTitle .textbtn{font-size:11px;font-weight:600}
.shelf-intro{font-size:12px;line-height:1.7;color:#5f6a5a;max-width:720px;margin:-6px 0 4px}.shelf-intro a{color:#4f6a3f;font-weight:600;white-space:nowrap}
.week-title{text-transform:uppercase;margin:26px 0 12px}
.session .desc{font-size:10px;color:#92998e;margin:4px 0 10px;min-height:36px}.session .desc summary{cursor:pointer;list-style:none}.session .desc summary::-webkit-details-marker{display:none}
.session .desc:not([open]) summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
@media(max-width:760px){.subnav{display:contents}nav .subnav button{padding:9px;font-size:13px}.session .desc{min-height:auto}}
