:root{--bg:#111318;--card:#1c1f26;--line:#2c303a;--text:#f2f3f5;--muted:#9aa0ac;--accent:#ff6b2c;--danger:#ff4d4f;--radius:14px;--safe-top:env(safe-area-inset-top);--safe-bottom:env(safe-area-inset-bottom);--k-ready:#4b5160;--k-warmup:#d98a00;--k-run:#ff6b2c;--k-jog:#e0a100;--k-walk:#23a55a;--k-sprint:#e5243b;--k-work:#e5243b;--k-rest:#2f6fed;--k-recover:#13a3a3;--k-cooldown:#5b5bd6;--k-stretch:#9b51e0;--k-done:#23a55a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);margin:0}body{-webkit-user-select:none;user-select:none;overscroll-behavior:none;font:16px/1.4 -apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}input,select,button{font:inherit;color:inherit}input{-webkit-user-select:text;user-select:text}h1{margin:0;font-size:28px}h2{margin:0 0 12px}h3{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:24px 4px 8px;font-size:13px}.screen{max-width:560px;padding:calc(var(--safe-top) + 12px) 16px calc(var(--safe-bottom) + 32px);margin:0 auto}.bar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.row{gap:8px;display:flex}.muted{color:var(--muted);font-size:14px}.center{text-align:center}.btn{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:999px;min-height:44px;padding:10px 16px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#111;font-weight:600}.btn.ghost{background:0 0;border-color:#0000}.btn.danger{color:var(--danger);margin-top:24px}.btn.wide{width:100%}.btn.light{color:#111;background:#fffffff2;border:0;font-weight:600}.btn.ghost.light{color:#fff;background:0 0}.btn.big{min-height:64px;font-size:22px}.btn:disabled{opacity:.6}.icon{min-width:36px;min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;font-size:18px}.icon:active{background:var(--line)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.workout{align-items:center;padding:0;display:flex}.workout-main{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:2px;padding:16px;display:flex}.workout-name{font-size:19px;font-weight:600}.resume{border-color:var(--accent);flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.sheet-backdrop{z-index:10;background:#0009;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-height:85vh;padding:20px 16px calc(var(--safe-bottom) + 16px);border-radius:20px 20px 0 0;gap:10px;display:grid;overflow:auto}.pick{text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.title-input,.label-input{border:0;border-bottom:1px solid var(--line);background:0 0;outline:none;width:100%}.title-input{margin-bottom:16px;padding:8px 4px;font-size:26px;font-weight:700}.label-input{color:var(--muted);padding:6px 2px;font-size:14px}.label-input:focus,.title-input:focus{border-color:var(--accent);color:var(--text)}.nodes{gap:8px;display:grid}.step{background:var(--card);border-radius:var(--radius);border-left:6px solid var(--k);padding:10px 10px 8px 14px}.step-top{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.step select{color:var(--k);appearance:none;background:0 0;border:0;min-width:90px;padding:4px 0;font-size:17px;font-weight:600}.duration{background:var(--bg);border-radius:10px;align-items:center;gap:2px;display:flex}.duration input{text-align:center;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;width:64px;font-size:17px}.stepper-value{text-align:center;min-width:40px;font-weight:600}.node-menu{margin-left:auto;display:flex}.repeat{border:1px dashed var(--line);border-radius:var(--radius);gap:8px;padding:10px;display:grid}.repeat-head{align-items:center;gap:8px;font-weight:600;display:flex}.add .btn{min-height:40px;color:var(--muted);flex:1;padding:6px 10px;font-size:14px}.settings{gap:4px;padding:6px 14px;display:grid}.setting{justify-content:space-between;align-items:center;gap:12px;min-height:44px;display:flex}.setting.small{color:var(--muted);justify-content:flex-start;min-height:32px;font-size:14px}.setting select{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 8px}.switch{width:22px;height:22px;accent-color:var(--accent)}.run{background:var(--k);color:#fff;padding:calc(var(--safe-top) + 8px) 16px calc(var(--safe-bottom) + 16px);flex-direction:column;transition:background-color .35s;display:flex;position:fixed;inset:0}.run-top{justify-content:space-between;align-items:center;gap:8px;font-weight:600;display:flex}.run-top>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.awake{white-space:nowrap;align-items:center;gap:6px;font-size:14px;font-weight:400;display:flex}.run-center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.run-round{opacity:.85;font-size:20px;font-weight:600}.run-kind{font-size:clamp(36px,11vw,64px);font-weight:800;line-height:1.05}.run-big{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:clamp(96px,32vw,180px);font-weight:700;line-height:1}.run-bar{background:#00000040;border-radius:4px;width:80%;height:8px;overflow:hidden}.run-bar>div{background:#fff;height:100%}.run-sub{opacity:.9;font-size:20px}.run-bottom{gap:12px;display:grid}.run-total{opacity:.9;font-variant-numeric:tabular-nums;justify-content:space-between;font-size:17px;display:flex}.controls{justify-content:space-around;align-items:center;display:flex}.ctrl{cursor:pointer;color:#fff;background:#0003;border:0;border-radius:50%;width:72px;height:72px;font-size:28px}.ctrl.main{color:#111;background:#fff;width:96px;height:96px;font-size:40px}.error{background:#00000059;border-radius:10px;padding:12px}.kind-ready{--k:var(--k-ready)}.kind-warmup{--k:var(--k-warmup)}.kind-run{--k:var(--k-run)}.kind-jog{--k:var(--k-jog)}.kind-walk{--k:var(--k-walk)}.kind-sprint{--k:var(--k-sprint)}.kind-work{--k:var(--k-work)}.kind-rest{--k:var(--k-rest)}.kind-recover{--k:var(--k-recover)}.kind-cooldown{--k:var(--k-cooldown)}.kind-stretch{--k:var(--k-stretch)}.kind-done{--k:var(--k-done)}.small{font-size:12px}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{flex-direction:column;gap:2px;padding:12px;display:flex}.stat-value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.weeks{grid-template-columns:repeat(8,1fr);align-items:end;gap:6px;height:150px;padding:12px 10px 8px;display:grid}.week{flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.week-bar{background:var(--line);border-radius:4px 4px 0 0;width:100%;max-width:24px;min-height:2px}.week-bar.current{background:var(--accent)}.week-val{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.week-label{color:var(--muted);white-space:nowrap;font-size:10px}.cal-head{justify-content:space-between;align-items:center;display:flex}.cal-head span{text-transform:none;letter-spacing:0;color:var(--text);font-size:15px}.calendar{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;padding:10px;display:grid}.cal-dow{color:var(--muted);padding-bottom:4px;font-size:11px}.cal-day{aspect-ratio:1;font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex}.cal-day.out{opacity:.3}.cal-day.done{background:var(--accent);color:#111;font-weight:700}.cal-day.today{box-shadow:inset 0 0 0 2px var(--text)}.icon:disabled{opacity:.3}.day-head{margin:16px 4px 8px;font-weight:600}.entry{align-items:center;gap:8px;padding:10px 8px 10px 14px;display:flex}.entry-main{flex-direction:column;flex:1;min-width:0;display:flex}.entry-main strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.badge{white-space:nowrap;background:var(--line);color:var(--muted);border-radius:999px;padding:4px 8px;font-size:12px}.badge.completed{color:#4ad685;background:#23a55a2e}.badge.active{color:var(--accent);background:#ff6b2c2e}.backup{gap:10px;display:grid}.backup p{margin:0}label.btn{align-items:center;display:inline-flex}
