@font-face{font-family:Barlow;src:url('BarlowCondensed-SemiBold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Barlow;src:url('BarlowCondensed-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--bg:#10120f;--surface:#1c1f19;--raised:#252a20;--ink:#f4f6ec;--muted:#a1a79a;--dim:#737c69;--line:#33382d;--signal:#c5f65b;--num:Barlow,'Arial Narrow',sans-serif;--text:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:#292d23;color:var(--ink);font-family:var(--text);-webkit-font-smoothing:antialiased}body{display:grid;place-items:center}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;border:0;color:inherit;background:none;cursor:pointer}button:hover{filter:brightness(1.14)}button:active{transform:scale(.98);filter:brightness(.92)}button:focus-visible,a:focus-visible{outline:2px solid var(--signal);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.5;transform:none}svg{display:block}::selection{background:var(--signal);color:var(--bg)}.app{width:100%;max-width:390px;height:100dvh;max-height:844px;background:var(--bg);position:relative;display:flex;flex-direction:column;overflow:hidden}.view{flex:1;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.view::-webkit-scrollbar{width:3px}.view::-webkit-scrollbar-thumb{background:var(--line)}.header{height:70px;padding:17px 22px 10px;display:flex;align-items:center;justify-content:space-between;flex:none}.logo{font:700 30px/1 var(--num);letter-spacing:1.7px;font-style:italic;display:flex;align-items:center;gap:7px}.logo svg{width:24px;height:24px;color:var(--signal)}.connection{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;min-height:44px;padding:0 0 0 12px}.connection svg{width:16px;height:19px}.connection .status-dot{width:5px;height:5px;background:var(--signal);border-radius:50%}.content{padding:0 22px 18px}.section-top{display:flex;align-items:baseline;justify-content:space-between;padding-top:6px}.section-top h1{font-size:21px;line-height:1.4;margin:0;font-weight:600;letter-spacing:-.5px}.date{font-size:13px;color:var(--muted)}.display{font-family:var(--num);font-variant-numeric:tabular-nums;line-height:1;font-weight:600}.muted{color:var(--muted)}.signal{color:var(--signal)}.label{font-size:13px;color:var(--muted)}.icon-button{width:44px;height:44px;display:grid;place-items:center;padding:10px;border-radius:50%}.icon-button:hover{background:var(--surface)}.icon-button svg{width:22px;height:22px}.page-heading{font-size:16px;font-weight:500}.header-title{display:flex;align-items:center;gap:5px;margin-left:-9px}.gauge-button{position:relative;width:100%;height:304px;display:block;padding:0;margin:9px 0 12px;text-align:center;cursor:pointer;border-radius:50%}.gauge-button:hover{filter:none}.gauge-button:hover .gauge-svg{opacity:.9}.gauge-svg{position:absolute;inset:0;width:100%;height:100%;transition:opacity .15s}.gauge-center{position:absolute;inset:0;display:flex;align-items:center;flex-direction:column;padding-top:74px;pointer-events:none}.gauge-label{color:var(--muted);font-size:14px}.score{font:700 148px/.99 var(--num);letter-spacing:-4px;color:var(--signal);margin-top:5px;margin-left:-5px}.gauge-state{font-size:17px;font-weight:600;margin-top:0}.gauge-change{position:absolute;bottom:7px;left:0;width:100%;font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center;justify-content:center}.gauge-change strong{font-family:var(--num);font-size:18px;line-height:1;color:var(--signal);font-weight:600}.gauge-change svg{width:12px;height:12px;color:var(--signal)}.vitals{display:grid;grid-template-columns:1fr 1fr;padding:3px 0 17px;margin-bottom:18px;border-bottom:.5px solid var(--line)}.vital{position:relative}.vital+ .vital{padding-left:20px;border-left:.5px solid var(--line)}.vital-value{display:flex;align-items:baseline;gap:3px;margin:7px 0 4px}.vital-value .display{font-size:38px;letter-spacing:-.3px}.vital-value .unit{font-size:12px;color:var(--muted);padding:0 4px 0 0}.vital-note{font-size:12px;color:var(--muted);margin-top:7px}.vital+.vital .vital-note{margin-top:7px}.vital-note span{color:var(--signal)}.sleep-strip{height:5px;display:flex;gap:2px;margin-top:12px;max-width:142px}.sleep-strip i{flex:1;background:var(--signal);opacity:.85;border-radius:1px}.sleep-strip i.partial{background:linear-gradient(to right,var(--signal) 40%,var(--line) 40%)}.hrv-line{width:143px;max-width:100%;height:24px;margin-top:2px}.training-card{background:var(--surface);width:100%;text-align:left;padding:15px 16px 14px;border-radius:12px;display:block}.card-head{display:flex;align-items:center;justify-content:space-between}.card-head span{font-size:12px;color:var(--muted)}.training-title{font-size:17px;font-weight:600;display:flex;align-items:center;gap:8px;margin:8px 0 7px}.training-copy{font-size:13px;line-height:1.6;color:var(--muted);margin:0}.training-card .arrow{width:17px;height:17px;color:var(--signal)}.intensity{white-space:nowrap}.recent-run{margin-top:14px;padding:12px 0 3px;display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left}.recent-label{font-size:12px;color:var(--muted)}.recent-title{font-size:14px;margin-top:5px;display:flex;align-items:center;gap:9px}.recent-title strong{font-family:var(--num);font-size:22px;font-weight:600}.recent-title .muted{font-size:12px}.recent-run>svg{width:20px;height:20px;color:var(--muted)}.bottom-nav{height:75px;flex:none;border-top:.5px solid var(--line);display:flex;padding:9px 25px 11px;background:var(--bg);z-index:2}.bottom-nav button{position:relative;flex:1;min-width:44px;min-height:44px;display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--dim);font-size:11px;border-radius:8px;padding:4px}.bottom-nav button[aria-current="page"]{color:var(--signal)}.nav-icon svg{width:23px;height:23px}.bottom-nav button:hover{background:var(--surface)}.run-meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);padding-top:1px}.run-meta .activity-label{display:flex;gap:5px;align-items:center;color:var(--signal)}.activity-label svg{width:14px;height:14px}.distance{display:flex;align-items:baseline;gap:8px;margin:8px 0 2px}.distance .display{font-size:74px;letter-spacing:-1px;font-weight:700}.distance .unit{font-size:18px;color:var(--muted)}.route-panel{position:relative;margin:3px -22px 0;height:152px;background:#171a14;overflow:hidden}.route-panel>svg{width:100%;height:100%}.route-panel:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 32px 12px #10120f;pointer-events:none}.route-caption{position:absolute;left:22px;bottom:10px;font-size:11px;color:#a4ac9a;z-index:1}.route-caption svg{display:inline-block;vertical-align:-2px;width:12px;height:12px;margin-right:4px}.route-scale{position:absolute;right:22px;bottom:11px;font:600 12px var(--num);color:var(--muted);z-index:1}.route-scale:before{content:"";display:block;height:4px;width:17px;border:1px solid var(--muted);border-top:0;margin-bottom:2px}.run-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;padding:14px 0 13px;border-bottom:.5px solid var(--line)}.run-stats .value{display:flex;align-items:baseline;gap:4px;margin-top:7px;white-space:nowrap}.run-stats .display{font-size:33px}.run-stats .unit{font-size:11px;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:18px 0 12px}.section-heading h2{margin:0;font-size:15px;font-weight:500}.section-heading .small-value{font-size:12px;color:var(--muted)}.small-value strong{color:var(--ink);font:600 20px var(--num)}.run-content .section-heading{margin-top:14px}.splits-head{margin:15px 0 5px;padding-top:13px;border-top:.5px solid var(--line)}.text-button{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:2px;min-height:44px;margin:-9px -6px -9px 0;padding:0 6px}.text-button svg{width:13px;height:13px}.split-columns{display:grid;grid-template-columns:26px 1fr 42px 34px;gap:10px;align-items:center}.split-labels{font-size:11px;color:var(--muted);margin-bottom:6px}.split-labels span:last-child{text-align:right}.split-row{height:25px}.split-number{font-size:12px;color:var(--muted)}.split-bar{height:8px;background:#252a20;border-radius:1px;position:relative}.split-bar i{display:block;position:absolute;height:100%;background:#a1a79a;opacity:1;border-radius:1px}.split-row.fast .split-bar i{opacity:1}.split-pace{font:600 18px var(--num);text-align:right}.split-hr{font:600 15px var(--num);color:var(--muted);text-align:right}.best-split{font-size:11px;color:var(--muted);margin-top:8px}.best-split span{color:var(--signal)}.week-top{padding-top:0}.week-range{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:7px}.week-range .icon-button{width:44px;height:44px;padding:12px;margin-right:-11px}.week-range svg{width:16px;height:16px}.week-summary{display:flex;align-items:center;justify-content:space-between;margin:10px 0 16px}.week-total{display:flex;align-items:baseline;gap:7px;margin-top:5px}.week-total .display{font-size:72px;font-weight:700;letter-spacing:-1px}.week-total .unit{font-size:13px;color:var(--muted)}.load-status{padding-top:17px;text-align:right}.load-status strong{display:flex;align-items:center;justify-content:flex-end;gap:5px;color:var(--signal);font-size:14px;font-weight:500}.load-status strong svg{width:19px;height:19px}.load-status p{font-size:12px;color:var(--muted);margin:7px 0 0}.week-chart{margin:0 -2px}.chart-legend{display:flex;gap:20px;font-size:12px;color:var(--muted);margin-bottom:11px}.chart-legend span{display:flex;align-items:center;gap:6px}.legend-bar{display:block;width:7px;height:11px;background:var(--signal);opacity:.7}.chart-stage{position:relative;height:201px}.chart-stage svg{width:100%;height:178px}.chart-axis{font:600 12px var(--num);fill:var(--muted)}.chart-note{font-size:11px;fill:var(--muted)}.chart-day-buttons{position:absolute;inset:0 26px 0 27px;display:grid;grid-template-columns:repeat(7,1fr);align-items:end}.chart-day-buttons button{height:201px;display:flex;justify-content:flex-end;flex-direction:column;align-items:center;padding:0 0 1px;gap:3px;min-width:0;border-radius:5px}.chart-day-buttons button:hover{background:#c5f65b0a}.chart-day-buttons .weekday{font-size:12px;color:var(--muted)}.chart-day-buttons .day-date{font:600 14px var(--num);color:var(--muted)}.chart-day-buttons button[aria-pressed="true"] .weekday,.chart-day-buttons button[aria-pressed="true"] .day-date{color:var(--signal)}.chart-day-buttons button[aria-pressed="true"] .day-date:after{content:"";display:block;width:4px;height:4px;border-radius:50%;background:var(--signal);position:absolute;bottom:-7px;left:calc(50% - 2px)}.chart-day-buttons button{position:relative}.day-detail{margin-top:16px;border-top:.5px solid var(--line);padding-top:16px}.day-detail-top{display:flex;align-items:center;justify-content:space-between;font-size:14px}.day-detail-top .day-status{font-size:12px;color:var(--signal)}.day-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.day-metrics .metric-value{display:flex;align-items:baseline;gap:6px;margin-top:6px}.day-metrics .display{font-size:34px}.day-metrics .unit{font-size:12px;color:var(--muted)}.day-metrics .comparison{font-size:11px;color:var(--muted);margin-left:4px}.week-advice{margin-top:16px;padding:14px 16px 15px;border-radius:12px;background:var(--surface)}.week-advice h2{font-size:15px;line-height:1.5;font-weight:500;margin:0 0 6px;display:flex;align-items:center;gap:7px}.week-advice h2 svg{width:16px;height:16px;color:var(--signal)}.week-advice p{color:var(--muted);font-size:13px;line-height:1.65;margin:0}.week-content{padding-bottom:22px}.save-error{font-size:13px;line-height:1.6;color:var(--signal);margin:0 0 12px}.sheet{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:19px 19px 0 0;width:min(390px,100%);max-height:calc(100dvh - 44px);padding:0;position:fixed;top:auto;bottom:max(0px,calc((100dvh - 844px)/2));margin:0 auto;overflow:hidden}.sheet[open]{display:flex;flex-direction:column}.sheet::backdrop{background:#0009}.sheet-heading{padding:12px 13px 6px 22px;display:flex;align-items:center;justify-content:space-between;flex:none}.sheet-heading h2{margin:0;font-size:20px;font-weight:600}.sheet-body{padding:9px 22px 22px;overflow-y:auto;min-height:0}.sheet-body p{color:var(--muted);font-size:14px;line-height:1.75;margin:8px 0 16px}.sheet-body h3{font-size:14px;font-weight:500;margin:22px 0 12px}.sheet-footer{padding:0 22px 22px;flex:none}.sheet-footer:empty{display:none}.primary-button{width:100%;height:48px;border-radius:8px;display:flex;justify-content:center;align-items:center;gap:8px;color:var(--bg);background:var(--signal);font-size:15px;font-weight:600}.primary-button svg{width:17px;height:17px}.detail-line{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:.5px solid var(--line);font-size:14px}.detail-line:last-child{border-bottom:0}.detail-line .display{font-size:27px}.detail-line span{color:var(--muted)}.detail-line b{font-weight:500}.recovery-history{display:flex;gap:10px;align-items:flex-end;height:112px;padding:14px 0 0}.recovery-history>div{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.recovery-history i{width:100%;max-width:25px;background:var(--signal);opacity:.4;border-radius:2px}.recovery-history .today i{opacity:1}.recovery-history strong{font:600 19px var(--num);color:var(--ink)}.recovery-detail{display:flex;align-items:baseline;gap:8px}.recovery-detail .display{font-size:76px;font-weight:700;color:var(--signal)}.recovery-detail span{font-size:14px;color:var(--muted)}.sheet .split-row{height:36px}.sheet .split-labels{font-size:12px}.toast{position:absolute;left:22px;right:22px;bottom:86px;border:1px solid var(--line);border-radius:9px;padding:13px 16px;background:var(--raised);font-size:13px;line-height:1.5;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .2s,transform .2s;z-index:4}.toast.visible{opacity:1;transform:none}.step-row{display:flex;align-items:center;gap:14px;margin:13px 0}.step-row>span{font:600 26px var(--num);color:var(--signal);width:24px}.step-row div{flex:1}.step-row strong{font-size:15px;font-weight:500}.step-row p{font-size:13px;margin:4px 0 0}.week-picker{display:flex;gap:8px;margin-top:12px}.week-picker button{flex:1;padding:14px 8px;background:var(--raised);border-radius:8px;text-align:left}.week-picker button[aria-pressed="true"]{box-shadow:inset 0 0 0 1px var(--signal)}.week-picker b{display:block;font-size:14px;font-weight:500}.week-picker span{display:block;margin-top:8px;font-size:12px;color:var(--muted)}
@media(min-width:600px){.app{box-shadow:0 16px 45px #0b0d0838}}@media(max-width:599px){body,html{background:var(--bg)}}@media(max-width:360px){.content{padding-left:18px;padding-right:18px}.header{padding-left:18px;padding-right:18px}.gauge-button{height:286px}.score{font-size:140px}.gauge-center{padding-top:71px}.hrv-line{width:128px}.route-panel{margin-left:-18px;margin-right:-18px}.run-stats{gap:8px}.run-stats .display{font-size:31px}.date{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.run-content{padding-bottom:12px}

.today-content{padding-bottom:12px}

.load-status.caution strong,.day-status.caution{color:var(--ink)}


.day-status.caution{display:flex;align-items:center;gap:5px}
.day-status.caution svg{width:16px;height:16px}


/* Review round: preserve signal hierarchy and give every mark a data meaning. */
.connection .status-dot{background:var(--muted)}
.gauge-change strong,.gauge-change svg,.vital-note span{color:var(--muted)}
.sleep-strip i{background:#c0c7b7}
.sleep-strip i.partial{background:linear-gradient(to right,#c0c7b7 40%,var(--line) 40%)}
.training-card .arrow,.run-meta .activity-label,.week-advice h2 svg{color:var(--muted)}
.heart-zones{width:100%;height:73px}
.split-bar:after{content:"";position:absolute;left:50%;top:-3px;width:1px;height:14px;background:#66705b}
.split-bar.faster i{background:#d2d7c9}
.split-row.fast .split-pace{color:var(--signal)}
.deviation-label{display:flex;justify-content:space-between;align-items:center}
.deviation-label span{font-size:10px}
.split-labels>span:nth-child(3){text-align:right}
.legend-previous{display:block;width:7px;height:11px;border:1px solid #87917b}
.legend-excess{display:block;width:7px;height:11px;background:repeating-linear-gradient(125deg,#c5f65b 0 2px,#10120f 2px 3px)}
.chart-legend{gap:16px}
.chart-day-buttons button.future .weekday,.chart-day-buttons button.future .day-date{color:var(--dim)}
.chart-day-buttons button.future[aria-pressed="true"] .weekday,.chart-day-buttons button.future[aria-pressed="true"] .day-date{color:var(--signal)}
.plan-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.plan-heading h2{font-size:14px;font-weight:500;margin:0;line-height:1.5}
.plan-heading>span{font-size:11px;color:var(--muted);white-space:nowrap}
.plan-list{margin-top:6px}
.plan-list button{display:flex;align-items:center;width:100%;min-height:44px;text-align:left;gap:14px;font-size:14px;border-bottom:.5px solid #2a2f24;padding:9px 0}
.plan-list button:last-child{border-bottom:0}
.plan-list .plan-day{font-size:12px;color:var(--muted);width:34px}
.plan-list button>svg{width:16px;height:16px;color:var(--muted);margin-left:auto}
.plan-list button.selected>span:nth-child(2){color:var(--signal)}
.recovery-history i{background:#87917b;opacity:1}
.recovery-history .today i{background:var(--signal)}

.week-summary{margin-bottom:12px}
.week-content{padding-bottom:14px}

.best-split span{color:var(--ink)}
.today-content{padding-bottom:3px}

.nowrap{white-space:nowrap}
.legend-bar{opacity:1}
