:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#203c38;background:#f7f8f5;font-synthesis:none;--green:#194d43;--muted:#758580;--line:#e1e7e1}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1.3px;margin-bottom:0}h2{letter-spacing:-.8px;font-size:26px}h3{font-size:18px}button,a{transition:background .15s}button:focus-visible,a:focus-visible{outline:3px solid #b7b961;outline-offset:3px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:25px;letter-spacing:2px}.brand small{font-size:9px;letter-spacing:2px;align-self:flex-end;margin:0 0 7px -4px}.logo{display:grid;place-items:center;width:37px;height:40px;background:#d9e6a2;color:#193d34;border-radius:12px;font-size:36px;font-style:italic;letter-spacing:-4px;padding-right:6px}aside{position:fixed;inset:0 auto 0 0;width:245px;padding:34px 22px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.nav-label{font-size:10px;letter-spacing:1.8px;color:#84918a;margin:55px 12px 18px}nav{display:grid;gap:8px}nav button{display:flex;align-items:center;gap:14px;border:0;background:transparent;text-align:left;padding:15px;border-radius:9px;color:#71817b;font-weight:600}nav button.active{background:#edf2e9;color:#234b3c}nav button:hover{background:#f3f5f1}.sidebar-bottom{margin-top:auto;font-size:11px;color:#547568;padding:10px}.sidebar-bottom p{color:#93a198;font-size:11px;margin:9px 0 22px}.dot{display:inline-block;width:6px;height:6px;background:#669574;border-radius:50%;margin-right:5px}.text-button{border:0;background:none;padding:0;color:#6b7c73;font-size:12px}main{margin-left:245px;padding:36px 46px 20px;max-width:1700px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:2px;color:#829086;margin-bottom:11px}.avatar{background:#e4e9de;border:1px solid #d5ded2;border-radius:50%;height:40px;width:40px;text-align:center;padding-top:7px;font-size:23px;font-style:italic}.hero{overflow:hidden;position:relative;background:#163e35;border-radius:17px;padding:32px 36px;color:#f5f6ec;display:flex;align-items:center;justify-content:space-between;min-height:230px}.hero h2{font-size:36px;line-height:1.12;font-weight:500;margin:19px 0 15px;letter-spacing:-1px}.hero p{font-size:13px;color:#b3c5b8;margin:0;max-width:460px}.pill{font-size:9px;letter-spacing:2px;color:#dbe8a2}.hero-mark{font-size:190px;line-height:1;color:#c8da8e;transform:rotate(-5deg);padding-right:35px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:32px 0 18px}.section-heading h2{margin:0}.section-heading .eyebrow{margin-bottom:7px}.primary{background:var(--green);color:white;border:1px solid var(--green);padding:13px 19px;border-radius:9px;font-size:13px;font-weight:600}.primary:hover{background:#276554}.secondary{background:#fff;border:1px solid var(--line);border-radius:7px;padding:9px 14px;font-size:12px;color:#50675a;text-decoration:none;display:inline-block}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stats article{background:#fff;padding:21px 23px;border:1px solid var(--line);border-radius:11px}.stats span{font-size:12px;color:#6e8175}.stats strong{display:block;font-size:30px;font-weight:500;letter-spacing:-1px;margin:10px 0}.stats small{font-size:10px;color:#97a295}.calendar-toolbar{margin:28px 0 18px;display:flex;align-items:center;justify-content:space-between;gap:8px}.week-controls{display:flex;align-items:center;gap:18px}.week-controls strong{font-size:14px}.week-controls button,.icon-button{background:#fff;border:1px solid var(--line);border-radius:7px;width:32px;height:32px;color:#476253}.legend{display:flex;gap:17px;color:#99968a;font-size:10px;margin:0 0 14px}.swim{color:#548995}.bike{color:#6b8b47}.run{color:#bd805a}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;min-height:245px}.day{border-right:1px solid var(--line);padding:12px 8px;min-width:0}.day:last-child{border:0}.day-title{display:flex;justify-content:center;align-items:center;gap:6px;margin-bottom:18px;font-size:10px;color:#8c998f;text-transform:uppercase}.day-title b{font-size:16px;font-weight:500;color:#496454}.day.today .day-title b{background:#285b49;color:#fff;border-radius:50%;padding:5px 7px}.workout{display:block;width:100%;text-align:left;border:0;border-left:3px solid #aaa894;background:#f0f0e9;color:#605e48;border-radius:5px;padding:10px 7px;margin-bottom:8px;overflow-wrap:anywhere}.workout.Natation{background:#edf5f7;border-color:#7ba8b2;color:#467582}.workout.Vélo{background:#f0f5e9;border-color:#9db673;color:#657c42}.workout.Course{background:#fcf2e9;border-color:#cf9f74;color:#a1704b}.workout small{font-size:9px;display:block;margin-bottom:8px}.workout strong{font-size:11px;line-height:1.5;display:block;font-weight:600}.workout .duration{font-size:10px;display:block;margin-top:9px}.workout.done{opacity:.7}.empty-day{display:block;text-align:center;color:#bcc7bc;margin-top:55px;font-size:10px}.calendar-note{color:#99a396;text-align:center;font-size:10px;margin:17px 0 30px}.panel{background:#fff;border:1px solid var(--line);padding:27px;border-radius:12px;margin-bottom:20px}.muted{font-size:13px;color:#839187;line-height:1.7}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.integration{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:17px 0;font-size:12px}.integration span{font-size:11px;color:#8a9383}.integration+p{margin-top:20px}label{font-size:12px;font-weight:600;display:block;margin-bottom:17px;color:#5f7365}input,textarea,select{display:block;width:100%;border:1px solid #d9e1d7;border-radius:7px;background:#fbfcf9;color:#294e3b;padding:12px;margin-top:8px;font-size:14px;outline-offset:3px}textarea{resize:vertical}.bar-row{display:grid;grid-template-columns:150px 1fr 65px;align-items:center;gap:20px;font-size:12px;margin:24px 0}.bar-row progress{width:100%;height:15px;accent-color:#8fa963}.bar-row strong{text-align:right}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#9aa695;font-size:9px;letter-spacing:1px;padding-top:20px;margin-top:30px}footer span{letter-spacing:0}dialog{border:1px solid var(--line);border-radius:17px;max-width:560px;width:calc(100% - 28px);padding:28px;max-height:90dvh;overflow-y:auto;color:#294b3b}dialog::backdrop{background:#142b2477;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between}.dialog-heading h2{margin-bottom:25px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px}.danger{color:#a34839;background:#fff0ea;border:1px solid #f2dbd2;border-radius:8px;padding:12px;font-size:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#234f40;color:#fff;padding:15px 25px;border-radius:10px;font-size:13px;z-index:10;max-width:90vw}#form-error,#login-error{color:#ab4a36;font-size:12px;margin:15px 0 0}.login{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.login-card{padding:10vh max(35px,10vw);display:flex;flex-direction:column;justify-content:center}.login .brand{margin-bottom:75px;white-space:nowrap}.login h1{font-size:52px;line-height:1.1;margin-bottom:24px}.login .muted{margin-bottom:30px}.login .primary{width:100%;display:flex;justify-content:space-between;padding:16px}.login-foot{font-size:9px;letter-spacing:1.5px;color:#95a18c;margin-top:45px}.login-art{background:#163e35;position:relative;overflow:hidden;min-height:100vh}.orbit{border:2px solid #a6c278;border-radius:50%;position:absolute;width:570px;height:570px;top:5%;left:15%;transform:rotate(-25deg) scaleX(.6)}.orbit.two{left:25%;top:15%;border-color:#708f6f}.orbit.three{left:35%;top:25%;border-color:#d8e5a0}.art-caption{position:absolute;left:45px;top:45px;color:#c2d6ac;font-size:10px;letter-spacing:3px;line-height:2.2}.login-art p{position:absolute;bottom:7%;left:12%;font-size:35px;color:#e6edcf;line-height:1.3;letter-spacing:-1px}
@media(min-width:1500px){.week{min-height:310px}.day{padding:15px}.workout{padding:15px 10px}}
@media(max-width:1100px){aside{width:205px;padding:28px 15px}.brand{font-size:21px;gap:7px}.brand small{font-size:8px}main{margin-left:205px;padding:28px 25px}.hero h2{font-size:30px}.hero-mark{font-size:140px;padding:0}.week{grid-template-columns:repeat(7,minmax(0,1fr))}.day{padding:10px 4px}.day-title{gap:4px;font-size:9px}.stats article{padding:18px 15px}.login-card{padding:8vh 45px}}
@media(max-width:760px){aside{z-index:5;inset:auto 0 0;width:100%;height:70px;border:0;border-top:1px solid var(--line);padding:5px 12px;background:#fffffff5}aside>.brand,.nav-label,.sidebar-bottom{display:none}nav{display:flex;justify-content:space-around;gap:0}nav button{flex-direction:column;gap:3px;font-size:18px;padding:7px 15px;min-width:90px}nav button span{font-size:10px}main{margin:0;padding:25px 18px 95px}h1{font-size:27px}header{margin-bottom:22px}.hero{padding:25px 22px;min-height:200px}.hero h2{font-size:30px}.hero-mark{font-size:85px;position:absolute;right:12px;top:25px;opacity:.3}.hero p{font-size:12px;max-width:80%}.stats{gap:7px}.stats article{padding:15px 10px}.stats span{font-size:10px}.stats strong{font-size:25px}.stats small{display:none}.section-heading h2{font-size:23px}.section-heading>.primary{padding:12px 10px;font-size:11px}.week{display:block;background:transparent;border:0}.day{border:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:60px 1fr;gap:8px;padding:12px 0;min-height:77px}.day-title{grid-column:1;grid-row:1 / span 20;align-self:start;display:flex;flex-direction:column;font-size:10px;gap:7px;margin:5px 0}.day-title b{font-size:21px}.workout{grid-column:2;padding:13px 15px;margin:0;border-radius:7px}.workout strong{font-size:14px}.workout small{font-size:10px;margin-bottom:5px}.workout .duration{font-size:11px;margin-top:6px}.empty-day{margin:15px 0;text-align:left;grid-column:2;font-size:12px}.week-controls{gap:10px}.week-controls strong{font-size:12px}.legend{font-size:10px;gap:13px}.two-col{grid-template-columns:1fr}.two-col label{margin-bottom:0}.two-col{margin-bottom:18px}.panel{padding:21px}.bar-row{grid-template-columns:90px 1fr 50px;gap:10px;font-size:10px}dialog{padding:22px}dialog .two-col{grid-template-columns:1fr 1fr;gap:13px}dialog label{font-size:11px}dialog input,dialog select{padding:11px 8px}.login{display:block}.login-card{padding:45px 30px;min-height:100dvh}.login-art{display:none}.login .brand{margin-bottom:65px}.login h1{font-size:49px}.login-foot{margin-top:35px}#toast{bottom:85px}footer{font-size:8px}.calendar-toolbar>.secondary{font-size:10px;padding:9px}.view{min-width:0}}

.block-editor{border-top:1px solid var(--line);padding-top:20px;margin:20px 0}.structured-block{border:1px solid var(--line);border-radius:9px;padding:12px;margin:10px 0;background:#f7faf4}.structured-block.repeat{background:#edf2e6}.block-top{display:flex;gap:12px;align-items:center;justify-content:space-between}.block-top>select{width:auto;margin:0}.block-top label{display:flex;align-items:center;gap:10px;margin:0}.block-top input{width:65px;margin:0}.remove-block{border:0;background:transparent;font-size:23px;color:#956d5a}.block-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0}.structured-block label{margin:0;font-size:10px}.structured-block input,.structured-block select{font-size:12px;padding:9px}.block-actions{display:flex;gap:10px}.plan-pill{display:block;color:#57704c;margin-bottom:20px}.plan-weeks{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:25px 0}.plan-weeks button{display:grid;gap:8px;text-align:left}.plan-weeks small{color:#83917a}#plan-content li{font-size:12px;margin-bottom:10px}#plan-content a{color:#426e4a}#garmin-actions{margin:20px 0}#garmin-actions a{margin-top:8px}#garmin-result{white-space:normal}dialog{max-width:650px}@media(max-width:760px){nav button{min-width:0;padding:7px 8px}nav button span{font-size:9px}.plan-weeks{grid-template-columns:repeat(2,1fr)}}

.activity{padding:22px 0;border-bottom:1px solid #d9dfd9}.activity:last-child{border:0}.activity-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.activity-controls label{min-width:140px;flex:1}.activity-controls input,.activity-controls select{max-width:100%}.activity.replaced{opacity:.65}#recovery-summary li{margin:10px 0}#wellness-form button,#swim-form button{margin-top:16px}.panel summary{cursor:pointer;font-weight:700}#progress .panel{overflow-wrap:anywhere}#progress .pill{color:#526b36}@media(max-width:650px){#progress .section-heading{align-items:start;gap:14px;flex-direction:column}.activity-controls{display:grid;grid-template-columns:1fr}.activity-controls button{width:100%}#recovery-summary .stats{grid-template-columns:1fr}}

.install-banner{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 18px;background:#e6f0b9;color:#122e2b;position:relative;z-index:5}.install-banner[hidden]{display:none}#install-help{max-width:480px;padding:28px}#install-help p{line-height:1.6}html{min-height:100%;background:#f5f4ef}body{overscroll-behavior-y:none}@media(max-width:800px){.install-banner{font-size:12px;padding-top:max(10px,env(safe-area-inset-top))}.install-banner .secondary{white-space:nowrap;font-size:12px}aside nav{padding-bottom:env(safe-area-inset-bottom)}main{padding-bottom:calc(100px + env(safe-area-inset-bottom))}dialog{max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto}input,select,textarea{font-size:16px}}@media(display-mode:standalone){.install-banner{display:none}body{padding-top:env(safe-area-inset-top)}}
