:root{--bg:#EAF0EE;--card:#F7FAF9;--stage:#E1EAE7;--ink:#10282E;--muted:#4F6264;--line:#C6D4D0;--accent:#0E7470;--accent-ink:#FFFFFF;--soft:#D3E5E1;--soft-ink:#0A4F4C;--far:#93ABA8;--grass:#5F8F48;--wood:#8A6A4A;--soil:#D4E0D9;--run-bg:#0C1E22;--run-card:#12282C;--run-ink:#E2EEEB;--run-muted:#A3B8B5;--run-line:#2E4C4B;--run-accent:#5FC8B8;--run-accent-ink:#06211F;--display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;--body:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0C181B;--card:#122327;--stage:#0F1F22;--ink:#E2EEEB;--muted:#9AAEAC;--line:#25403F;--accent:#4EC1B3;--accent-ink:#06211F;--soft:#173734;--soft-ink:#A8E2D9;--far:#4E6B6A;--grass:#5A8A44;--wood:#A68663;--soil:#13282B;color-scheme:dark}}:root[data-theme=dark]{--bg:#0C181B;--card:#122327;--stage:#0F1F22;--ink:#E2EEEB;--muted:#9AAEAC;--line:#25403F;--accent:#4EC1B3;--accent-ink:#06211F;--soft:#173734;--soft-ink:#A8E2D9;--far:#4E6B6A;--grass:#5A8A44;--wood:#A68663;--soil:#13282B;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body,html{min-height:100%}body{margin:0;-webkit-text-size-adjust:100%;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.45;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.app{max-width:440px;margin:0 auto;padding-block:max(28px,env(safe-area-inset-top,0px)) 120px;display:flex;flex-direction:column;gap:22px;min-height:100vh}.brand{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:.01em;line-height:1}.brand span{color:var(--accent)}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}h1{font-size:44px;line-height:.95;text-wrap:balance}h1,h2{font-family:var(--display);font-weight:700;margin:0;text-transform:uppercase}h2{font-size:26px;line-height:1}.lede{margin:0;color:var(--muted)}.steps{display:flex;gap:8px}.steps i{flex:1 1;height:4px;border-radius:2px;background:var(--line)}.steps i.on{background:var(--accent)}.row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.link{background:none;border:0;padding:8px 0;font-weight:700;color:var(--accent);min-height:44px}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.field{display:flex;flex-direction:column;gap:6px}.field label,.lbl{font-size:14px;font-weight:700}.unit{display:flex;align-items:baseline;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:0 12px;height:56px}.unit input{width:100%;min-width:0;border:0;background:transparent;font:700 22px var(--mono);padding:14px 0;outline:none}.unit:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.unit span{font-size:13px;color:var(--muted)}.group{flex-direction:column;gap:8px}.group,.opt{display:flex}.opt{align-items:center;gap:14px;text-align:left;min-height:58px;padding:11px 16px;border-radius:14px;border:1px solid var(--line);background:var(--card)}.opt b,.opt small{display:block}.opt small{font-size:13.5px;color:var(--muted)}.goal[aria-pressed=true],.opt[aria-pressed=true],.pill[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.goal[aria-pressed=true] small,.opt[aria-pressed=true] small{color:inherit;opacity:.8}.pills{display:grid;grid-gap:6px;gap:6px}.pill{height:46px;border-radius:12px;border:1px solid var(--line);background:var(--card);font-weight:700;font-size:15px;padding:0 4px}.goals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.goal{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;min-height:74px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--card)}.goal b{display:flex;width:100%;justify-content:space-between;font-size:16px}.goal small{font-size:13px;color:var(--muted);line-height:1.3}.goal:disabled{opacity:.45;cursor:not-allowed}.cta{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;border-radius:999px;border:0;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:17px;width:100%;padding:0 20px}.cta:disabled{opacity:.45;cursor:not-allowed}.cta small{font:500 14px var(--mono);opacity:.85}.ghost{min-height:44px;border-radius:999px;border:1px solid var(--line);background:transparent;font-weight:700;font-size:14px;padding:0 16px;display:inline-flex;align-items:center;gap:8px}.muted{color:var(--muted)}.spacer{flex:1 1}.strip{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.strip div{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.strip span{font:500 11px var(--mono);color:var(--muted)}.strip em{width:100%;height:54px;border-radius:8px;background:var(--accent)}.strip em.rest{background:transparent;border:1.5px dashed var(--far)}.strip b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.ticks li{display:flex;gap:12px;align-items:flex-start}.ticks svg{flex:none;margin-top:2px}.price{background:var(--ink);color:var(--bg);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:14px}.price .big{font-family:var(--display);font-weight:700;font-size:52px;line-height:1}.price .cta{background:var(--run-accent);color:var(--run-accent-ink)}.testnote{font-size:13px;text-align:center;color:var(--muted);margin:0}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:13px;font-weight:700;padding:5px 10px;border-radius:999px;background:var(--soft);color:var(--soft-ink)}.days{flex-direction:column;gap:8px}.day,.days{display:flex}.day{align-items:center;gap:14px;padding:12px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line);text-align:left;width:100%;min-height:62px}.day .dn{width:42px;flex:none;font-family:var(--display);font-weight:700;font-size:20px}.day .dt{flex:1 1;min-width:0;display:flex;flex-direction:column}.day .dt b{font-size:16px}.day .dt small{font-size:13px;color:var(--muted)}.day.rest{background:transparent;border-style:dashed;border-color:var(--far)}.day.done .dt b{text-decoration:line-through;color:var(--muted)}.day.today{background:var(--ink);color:var(--bg);border-color:var(--ink)}.day.today .dt small{color:inherit;opacity:.75}.day.today .dn{color:var(--run-accent)}.badge{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase}.timebar{display:flex;gap:4px}.seg{border-radius:8px;padding:7px 10px;min-width:66px;background:var(--card);border:1px solid var(--line)}.seg.main{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.seg b{display:block;font:500 12px var(--mono)}.seg span{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.moves{flex-direction:column;gap:8px}.moves,.mv{display:flex}.mv{align-items:center;gap:12px;padding:8px;border-radius:14px;background:var(--card);border:1px solid var(--line);width:100%;text-align:left}.mv:hover{border-color:var(--accent)}.mv .chev{flex:none;color:var(--muted)}.sheet{position:fixed;inset:0;z-index:45;background:var(--bg);overflow-y:auto;padding:max(12px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.sheet-in{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.sheet canvas{width:100%;aspect-ratio:240/170;border-radius:18px;background:var(--stage);display:block}.ts{display:flex;flex-direction:column;gap:8px}.ts h3{margin:0;font-family:var(--display);font-size:20px;text-transform:uppercase;letter-spacing:.02em}.ts p{margin:0;font-size:16.5px;line-height:1.5}.steps-list{margin:0;padding:0;list-style:none;counter-reset:st;display:flex;flex-direction:column;gap:10px}.steps-list li{counter-increment:st;display:flex;gap:12px;align-items:flex-start;font-size:16px}.steps-list li:before{content:counter(st);flex:none;width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--bg);font:500 13px/26px var(--mono);text-align:center}.bad,.good{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.bad li,.good li{display:flex;gap:10px;align-items:baseline;font-size:15.5px}.good li:before{content:"\2713";color:var(--accent)}.bad li:before,.good li:before{font-weight:700;flex:none;width:16px}.bad li:before{content:"\2715";color:var(--muted)}.eh{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.eh div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}.eh b{font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.eh span{font-size:14.5px}.mv canvas{width:96px;height:68px;flex:none;border-radius:10px;background:var(--stage)}.mv .t{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:1px}.mv .t b{font-size:15.5px;line-height:1.25}.mv .dose{font:500 13px var(--mono);color:var(--accent)}.mv .t small{font-size:13px;color:var(--muted);line-height:1.3}.blockh{display:flex;gap:10px;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:4px}.blockh h3{margin:0;font-family:var(--display);font-size:20px;text-transform:uppercase}.blockh span{font:500 12px var(--mono);color:var(--muted)}.note{background:var(--soft);color:var(--soft-ink);border-radius:12px;padding:10px 14px;font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px}.stat b{display:block;font:700 30px var(--display);line-height:1}.stat span{font-size:12.5px;color:var(--muted)}.log{display:flex;flex-direction:column;border-top:1px solid var(--line)}.log div{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14.5px}.log span{font:500 13px var(--mono);color:var(--muted);white-space:nowrap}.kv{flex-direction:column;border-top:1px solid var(--line)}.kv,.kv div{display:flex}.kv div{justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.kv span{color:var(--muted)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--card);border-top:1px solid var(--line);padding:6px max(16px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.tabbar nav{max-width:440px;margin:0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.tabbar a{text-decoration:none;background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:52px;justify-content:center;font-size:12px;font-weight:700;color:var(--muted)}.tabbar a[aria-current=page]{color:var(--accent)}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(90px + env(safe-area-inset-bottom,0px));z-index:40;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:999px;font-size:14px;font-weight:700;max-width:calc(100% - 32px);text-align:center}.run{position:fixed;inset:0;z-index:50;background:var(--run-bg);color:var(--run-ink);display:flex;flex-direction:column;overflow-y:auto;padding:max(14px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.run-in{max-width:520px;width:100%;margin:0 auto;flex:1 1;display:flex;flex-direction:column;gap:14px}.run-top{display:flex;align-items:center;gap:12px}.run-top .lbl{font:500 12px var(--mono);color:var(--run-muted);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.prog{flex:1 1;height:6px;border-radius:3px;background:var(--run-line);overflow:hidden;min-width:30px}.prog i{display:block;height:100%;width:0;background:var(--run-accent)}.run canvas{width:100%;aspect-ratio:240/170;border-radius:18px;background:var(--run-card);display:block;max-height:38vh;object-fit:contain}.phase{font:500 13px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--run-accent)}.phase.dim{color:var(--run-muted)}.clock{font:500 clamp(72px,22vw,110px)/1 var(--mono);letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.run-name{font-family:var(--display);font-weight:700;font-size:38px;line-height:.95;margin:0;text-transform:uppercase}.run-dose{font:500 15px var(--mono);color:var(--run-accent)}.run-cue{margin:0;color:var(--run-muted);font-size:16px}.switch{align-self:flex-start;background:var(--run-ink);color:var(--run-bg);border-radius:6px;padding:4px 10px;font-weight:700;font-size:14px}.ctls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.ctl{min-height:54px;border-radius:999px;border:1px solid var(--run-line);background:transparent;color:var(--run-ink);font-weight:700}.ctl.main{background:var(--run-accent);border-color:var(--run-accent);color:var(--run-accent-ink)}.run .end{min-width:56px;border-radius:999px;border:1px solid var(--run-line);background:transparent;color:var(--run-ink);font-size:14px}.run .end,.run .snd{min-height:44px;font-weight:700}.run .snd{background:none;border:0;color:var(--run-muted);font-size:13px}a{color:var(--accent)}.app.plain{padding-bottom:40px}.err{background:#F9E3DA;color:#7A2E12;border-radius:12px;padding:10px 14px;font-size:14px}@media (prefers-color-scheme:dark){.err{background:#3A1F16;color:#F6C4AE}}.field-input{width:100%;height:52px;border-radius:12px;border:1px solid var(--line);background:var(--card);padding:0 14px;font-size:17px}.field-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.code-input{font:700 26px var(--mono);letter-spacing:.2em;text-transform:uppercase;text-align:center}.plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.plan{position:relative;display:flex;flex-direction:column;gap:2px;text-align:left;padding:14px;border-radius:16px;border:1px solid var(--line);background:var(--card);min-height:110px}.plan[aria-pressed=true]{border:2px solid var(--accent);padding:13px}.plan .p{font-family:var(--display);font-weight:700;font-size:34px;line-height:1}.plan small{font-size:13px;color:var(--muted)}.plan .flag{position:absolute;top:-10px;right:10px;background:var(--accent);color:var(--accent-ink);font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px}.plan s{color:var(--muted);font-size:14px}.hero{display:flex;flex-direction:column;gap:14px}.hero h1{font-size:clamp(46px,13vw,64px)}.hero canvas{width:100%;aspect-ratio:240/170;border-radius:18px;background:var(--stage);display:block}.topnav{display:flex;justify-content:space-between;align-items:center}.mv .ver{color:var(--muted);font-family:var(--body);font-size:12.5px}.bandcard{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line)}.bandcard .sw{flex:none;width:50px;height:30px;border-radius:999px;border:1px solid var(--line);background:var(--stage);position:relative;padding:0}.bandcard .sw:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--muted);transition:transform .15s}.bandcard .sw[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.bandcard .sw[aria-checked=true]:after{transform:translateX(20px);background:var(--accent-ink)}.bandcard .t{flex:1 1;min-width:0;display:flex;flex-direction:column}.bandcard small{color:var(--muted);font-size:13px}.routines{display:flex;flex-direction:column;gap:8px}.routine{display:flex;align-items:center;gap:12px;padding:8px;border-radius:14px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:inherit}.routine canvas{width:96px;height:68px;flex:none;border-radius:10px;background:var(--stage)}.routine .t{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:1px}.routine .t b{font-size:16px}.routine .t small{font-size:13px;color:var(--muted)}.routine .m{font:500 13px var(--mono);color:var(--accent)}.bandtag{display:inline-flex;align-items:center;gap:4px;font:500 11px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:#C2551A}@media (prefers-color-scheme:dark){.bandtag{color:#F59A62}}