:root{--ink:#173b40;--muted:#61746b;--line:#dce5df;--lime:#d9ef68;--bg:#f3f6f4}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 Arial,Helvetica,sans-serif}main{max-width:1280px;margin:auto;padding:0 36px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 0;border-bottom:1px solid var(--line)}a{color:inherit;text-underline-offset:4px}header a{text-decoration:none;font-size:14px}.brand{font-size:16px;font-weight:800;letter-spacing:1.8px}.brand span{font-weight:400;color:var(--muted)}.intro{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:38px 0 28px}.intro p:last-child{color:var(--muted);margin:14px 0 0}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.5px;margin:0 0 12px;color:var(--muted)}h1{font-size:clamp(36px,4.5vw,60px);line-height:1.12;letter-spacing:-2px;margin:0}h2{font-size:26px;line-height:1.25;letter-spacing:-.6px;margin:0 0 16px}h3{font-size:18px;margin:0 0 8px}.button,button{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:white;padding:12px 19px;border:1px solid transparent;border-radius:8px;cursor:pointer;font:600 14px/1.5 Arial;text-decoration:none}button:hover,.button:hover{background:#28554b}button:focus-visible,a:focus-visible{outline:3px solid #789739;outline-offset:3px}.light{background:white;color:var(--ink);border:1px solid var(--line)}.light:hover{background:#eaf1e7}.score{display:grid;grid-template-columns:2fr 1fr 1.2fr;color:white;background:var(--ink);border-radius:16px;overflow:hidden;margin-bottom:32px}.main-score{padding:30px 34px}.main-score>.eyebrow{color:#c3d6cc}.main-score>p:nth-child(2){margin:10px 0 18px;line-height:1}.main-score strong{font-size:60px;letter-spacing:-2px;font-weight:500}.main-score span{color:#c3d6cc}.main-score progress{display:block;width:100%;height:8px;border:0;border-radius:10px;overflow:hidden;background:#49615b;accent-color:var(--lime)}progress::-webkit-progress-bar{background:#49615b}progress::-webkit-progress-value{background:var(--lime)}progress::-moz-progress-bar{background:var(--lime)}.progress-label{display:flex;justify-content:space-between;margin-top:12px;font-size:13px;gap:12px}.metric{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:20px 30px;border-left:1px solid #426059;margin:30px 0}.metric strong{font-size:42px;font-weight:500}.metric span{color:#c3d6cc;font-size:14px}.mission{background:var(--lime);color:var(--ink);padding:30px;display:flex;flex-direction:column;justify-content:center}.mission .eyebrow{color:#3c5a37;font-size:11px}.mission h2{font-size:28px;margin:0}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.calendar,.detail,.panel{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:26px}.section-head h2{margin:0}.section-head h2 span{color:#809083;font-weight:400}.section-head>span{font-size:14px;color:var(--muted)}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{background:#f8faf9;border-block:1px solid var(--line)}.weekdays span{text-align:center;font-size:13px;padding:12px 0;color:var(--muted)}.day,.blank{border:0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);border-radius:0;padding:12px;min-height:108px;background:white;color:var(--ink);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.blank{background:#fafcfb}.day:nth-child(7n){border-right:0}.day:hover{background:#f3f8e3}.day.selected{background:#f0f6d8;box-shadow:inset 0 0 0 2px #87a044}.day.ridden{background:#e8f1c5}.day.selected.ridden{background:#dfebb1}.day-number{font-weight:600}.day strong{font-size:16px;font-weight:500}.calendar-foot{padding:18px 24px;font-size:12px;display:flex;justify-content:space-between;gap:16px;color:var(--muted)}.detail{padding:25px}.detail>h2{margin-bottom:28px}.detail p{font-size:14px;color:var(--muted)}.day-entry{padding:16px 0;border-top:1px solid var(--line)}.day-entry .eyebrow{font-size:11px}.day-entry strong{display:block;font-size:24px;margin:8px 0}.notes{white-space:pre-wrap;overflow-wrap:anywhere}footer{font-size:12px;color:var(--muted);padding:30px 0;display:flex;justify-content:space-between;gap:20px}footer nav{display:flex;gap:20px}.admin{max-width:1060px}.admin>h1{font-size:36px;letter-spacing:-1px;margin:32px 0 20px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:30px 0}.panel{padding:24px;margin:18px 0}.panel p{overflow-wrap:anywhere}.panel>h2:not(:first-child){margin-top:30px}.muted{color:var(--muted);font-size:14px}.actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.actions form{display:flex;align-items:center;gap:12px}.actions label{margin:0}label{display:block;font-size:14px;font-weight:600;margin:0 0 18px}input:not([type=hidden]),textarea,select{display:block;width:100%;padding:11px 12px;border:1px solid #cbd8ce;border-radius:7px;font:16px/1.5 Arial;background:white;color:var(--ink);margin-top:6px}textarea{resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid #819f42;outline-offset:1px}.check{font-weight:400;font-size:14px;line-height:1.6}.check input[type=checkbox]{width:18px;height:18px;display:inline-block;vertical-align:middle;margin:0 6px 0 0}.notice{padding:14px 18px;background:#eaf3d3;border-left:3px solid #728f3b;border-radius:4px}.error{padding:14px 18px;background:#fff0e9;color:#953c28;border-left:3px solid #b75438;border-radius:4px}.spaced{margin-top:25px}.ride-top{display:flex;justify-content:space-between;gap:20px}.stravalink{font-weight:700;text-decoration:underline;color:#a63800}summary{cursor:pointer;font-weight:600}details form{margin-top:20px}.admin .panel form button{margin-top:4px}
@media(max-width:950px){main{padding:0 24px}.mission{display:none}.score{grid-template-columns:2fr 1fr}.workspace{grid-template-columns:minmax(0,1fr) 270px;gap:16px}.day,.blank{padding:10px;min-height:95px}.day strong{font-size:14px}.section-head>span{display:none}}
@media(max-width:720px){main{padding:0 16px}header{padding:22px 0}.intro{display:block;padding:28px 0}.intro .button{margin-top:20px}h1{font-size:42px}.eyebrow{font-size:11px}.main-score{padding:25px}.main-score strong{font-size:48px}.metric{padding:15px 22px}.metric strong{font-size:32px}.mission{display:none}.workspace{grid-template-columns:1fr}.day,.blank{min-height:88px;padding:9px}.day strong{font-size:13px}.calendar-foot{padding:15px;font-size:11px}.admin-grid{grid-template-columns:1fr;gap:5px}.panel{padding:20px}.admin>h1{font-size:32px}.progress-label{font-size:12px}footer{flex-direction:column;gap:12px}.brand{font-size:13px;letter-spacing:1px}.detail{padding:22px}.actions form{flex-wrap:wrap}}
@media(max-width:380px){.score{grid-template-columns:1fr}.metric{margin:0 25px 20px;padding:10px 0;border:0;flex-direction:row;align-items:center;gap:15px}.day,.blank{padding:7px}.day strong{font-size:12px}.calendar-foot span{display:none}}

.strava-public{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:center;margin-top:28px;padding:28px}.strava-public>div{max-width:520px}.strava-widget{display:block;width:300px;max-width:100%;height:454px;border:0;background:transparent;justify-self:center}@media(max-width:720px){.strava-public{grid-template-columns:minmax(0,1fr);padding:20px;gap:24px}}
