.runner{height:100%;display:flex;flex-direction:column;background:var(--bg);transition:background .3s}.runner-bar{display:flex;align-items:center;gap:10px;padding:max(6px,env(safe-area-inset-top)) 12px 6px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.runner-title{min-width:150px}.runner-title .name{font-weight:750;font-size:15px}.runner-title .meta{font-size:12.5px;color:var(--text-2)}.runner-title .over{color:var(--critical);font-weight:700}.progress-track{flex:1;min-width:100px;height:12px;border-radius:999px;border:0;padding:0;background:var(--surface-3);overflow:hidden;position:relative}.progress-track span{position:absolute;inset:0 auto 0 0;background:var(--accent);border-radius:999px;transition:width .3s}.runner-banner{padding:5px 14px;text-align:center;background:var(--warn-soft);font-weight:600;font-size:13px;border:0}.paused-banner{background:var(--accent);color:var(--accent-ink);min-height:40px;font-size:16px}.runner-body{flex:1;min-height:0;overflow-y:auto;padding:12px}.work-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.92fr);gap:14px;max-width:1280px;height:100%;margin:0 auto;align-items:stretch}.work-info,.work-log{display:flex;flex-direction:column;gap:8px;min-height:0}.work-log{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:12px;overflow-y:auto}.work-note{font-size:13px;text-align:center}.work-name{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.1}.target-line{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:15px;color:var(--text-2)}.target-line b{color:var(--text);font-size:19px}.coach{padding:7px 11px;border-radius:10px;background:var(--accent-soft);font-size:13px;font-weight:550}.work-anim{border:0;padding:0;background:none;text-align:inherit;width:100%;flex:1 1 0;min-height:90px;display:flex;justify-content:center}.work-anim .figure{height:100%;max-width:100%}.work-anim .stage{flex:1 1 auto;min-height:0;width:auto;max-width:100%}.cue-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.cue-row .badge{font-size:13px;padding:4px 10px}.stopwatch{font-size:28px;font-weight:750;text-align:center;color:var(--text-2);line-height:1}.rir-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.rir-row .chip{min-height:44px;font-size:18px}.set-goals{display:grid;grid-template-columns:1fr 1fr;gap:8px}.goal{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid transparent;min-width:0}.goal.target{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.goal .k{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.goal.target .k{color:var(--accent)}.goal b{font-size:30px;font-weight:800;line-height:1.05}.goal.target b{color:var(--accent)}.goal .u{font-size:12px;color:var(--text-3);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.set-history{display:flex;gap:4px;justify-content:center;flex-wrap:wrap;font-variant-numeric:tabular-nums}.set-history span{min-width:24px;padding:1px 5px;border-radius:6px;text-align:center;font-size:12px;font-weight:650;color:var(--text-3);background:var(--surface-2)}.set-history span.now{color:var(--text);background:var(--surface-3);outline:1px solid var(--border)}.rir-row .chip.in-target:not(.on){border-style:dashed;border-color:var(--accent)}.rest-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;max-width:1280px;height:100%;margin:0 auto;align-items:stretch}.rest-timer{display:flex;flex-direction:column;align-items:center;gap:10px;min-height:0}.ring{flex:none;width:min(100%,42vh)}.ring-time{font-size:52px;font-weight:800;line-height:1;letter-spacing:-.03em}.next-card,.rest-grid>.card.stack{min-height:0;overflow-y:auto}.next-card{display:flex;flex-direction:column;gap:8px}.next-anim,.warm-anim{width:100%;max-width:340px;flex:1 1 0;min-height:110px;display:flex;justify-content:center}.rest-grid>.stack{min-height:0}.rest-grid>.stack>.card:first-child{flex:1 1 auto;min-height:0}.rest-grid>.stack>.phase-list{flex:0 1 auto}.next-anim .figure,.warm-anim .figure{height:100%;max-width:100%}.next-anim .stage,.warm-anim .stage{flex:1 1 auto;min-height:0;width:auto;max-width:100%}.warm-anim{max-width:220px}.runner.kind-rest:has(.overtime){animation:pulse-bg 1.2s ease-in-out infinite}@keyframes pulse-bg{50%{background:var(--accent-soft)}}.phase-label{font-size:28px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.runner:has(.interval-hard){background:var(--hard-soft)}.runner:has(.interval-easy){background:var(--rest-soft)}.phase-list{display:flex;flex-direction:column;gap:1px;padding:8px;min-height:0;overflow-y:auto;font-size:14px}.phase-item{display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:8px}.phase-item .dot{width:10px;height:10px;border-radius:3px}.phase-item.current{background:var(--surface-2);font-weight:750}.phase-item.past{color:var(--text-3)}.step-list{display:flex;flex-direction:column;gap:4px}.step-item{display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 10px;border-radius:12px;border:0;background:transparent;text-align:left}.step-item.current{background:var(--accent-soft)}.step-item .idx{width:28px;height:28px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-size:14px;font-weight:700}.runner.paused .runner-body{opacity:.55}@media (max-height: 760px) and (orientation: landscape){.work-log{gap:6px;padding:10px}.stopwatch{font-size:22px}.goal{padding:3px 8px}.goal b{font-size:26px}.runner .stepper button{height:44px;font-size:22px}.runner .stepper .value{font-size:26px}.runner .stepper .hint{min-height:13px}.rir-row .chip{min-height:40px;font-size:17px}.runner .btn.huge{min-height:52px;font-size:18px}.work-note{display:none}}@media (orientation: portrait),(max-width: 900px){.work-grid,.rest-grid{grid-template-columns:1fr;height:auto;align-items:start}.work-anim,.next-anim,.warm-anim{flex:none;max-width:320px;margin:0 auto}.work-anim .figure,.next-anim .figure,.warm-anim .figure{height:auto;width:100%}.work-anim .stage,.next-anim .stage,.warm-anim .stage{width:100%}.next-card,.phase-list,.rest-grid>.card.stack{overflow-y:visible}}:root{color-scheme:light;--bg: #f4f3ef;--surface: #fcfcfb;--surface-2: #ecebe6;--surface-3: #e0dfd8;--border: #d8d6cf;--text: #121212;--text-2: #52514e;--text-3: #7a7872;--accent: #2a78d6;--accent-ink: #ffffff;--accent-soft: #dbe8f8;--good: #0ca30c;--good-ink: #006300;--warn: #b77900;--warn-soft: #fbefd3;--critical: #d03b3b;--critical-soft: #f8dddd;--rest: #1baf7a;--rest-soft: #d6f1e6;--hard: #eb6834;--hard-soft: #fbe2d7;--series-1: #2a78d6;--grid: #e6e4de;--fig-body: #1d2230;--fig-far: #a3abbb;--fig-prop: #7b808a;--fig-prop-fill: #e7e6e1;--fig-fault: #d03b3b;--fig-band: #d98a00;--radius: 14px;--radius-sm: 10px;--tap: 48px;--gap: 12px;--pad: 14px;--shadow: 0 1px 2px rgb(0 0 0 / .06), 0 4px 16px rgb(0 0 0 / .05);--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Roboto Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--bg: #111110;--surface: #1a1a19;--surface-2: #242423;--surface-3: #2f2f2d;--border: #383835;--text: #f4f3ef;--text-2: #c3c2b7;--text-3: #908f86;--accent: #3987e5;--accent-ink: #ffffff;--accent-soft: #1b2e45;--good: #0ca30c;--good-ink: #5fd35f;--warn: #fab219;--warn-soft: #3a2f14;--critical: #e66767;--critical-soft: #3d1f1f;--rest: #199e70;--rest-soft: #143328;--hard: #d95926;--hard-soft: #3d2217;--series-1: #3987e5;--grid: #2b2b29;--fig-body: #eceae4;--fig-far: #6d6f76;--fig-prop: #8c8f96;--fig-prop-fill: #2c2c2a;--fig-fault: #ff6b6b;--fig-band: #f0a500;--shadow: none}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}a{color:var(--accent)}h1,h2,h3,h4{margin:0;line-height:1.2;letter-spacing:-.01em}h1{font-size:24px}h2{font-size:19px}h3{font-size:16px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.app{display:grid;grid-template-columns:74px 1fr;height:100%}.nav{display:flex;flex-direction:column;gap:2px;padding:max(8px,env(safe-area-inset-top)) 6px 8px;background:var(--surface);border-right:1px solid var(--border)}.nav a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 2px;border-radius:var(--radius-sm);color:var(--text-2);text-decoration:none;font-size:11px;font-weight:600}.nav a svg{width:21px;height:21px}.nav a.active{background:var(--accent-soft);color:var(--accent)}.main{overflow-y:auto;-webkit-overflow-scrolling:touch}.page{max-width:1180px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 18px 28px;display:flex;flex-direction:column;gap:14px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}@media (orientation: portrait),(max-width: 760px){.app{grid-template-columns:1fr;grid-template-rows:1fr auto}.nav{order:2;flex-direction:row;justify-content:space-around;border-right:0;border-top:1px solid var(--border);padding:6px 6px max(6px,env(safe-area-inset-bottom))}.nav a{flex:1}.page{padding:14px 14px 22px}}.grid{display:grid;gap:var(--gap)}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.grid-4{grid-template-columns:repeat(auto-fill,minmax(175px,1fr))}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:10px}.stack.tight{gap:5px}.spacer{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad);box-shadow:var(--shadow)}.card.flat{box-shadow:none}.card-link{text-decoration:none;color:inherit;display:block}.section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.divider{height:1px;background:var(--border);margin:4px 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 18px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);font-weight:650;text-decoration:none;color:var(--text);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;pointer-events:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.good{background:var(--good);border-color:var(--good);color:#fff}.btn.danger{color:var(--critical)}.btn.ghost{background:transparent;border-color:transparent}.btn.small{min-height:38px;padding:0 14px;font-size:14px}.btn.huge{min-height:60px;font-size:20px;padding:0 26px;border-radius:20px}.btn.block{width:100%}.icon-btn{width:var(--tap);height:var(--tap);padding:0;border-radius:999px}.icon-btn svg{width:22px;height:22px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-weight:600;font-size:14px}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;background:var(--surface-2);font-size:12px;font-weight:650;color:var(--text-2)}.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.good{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good-ink)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.note{display:flex;gap:8px;align-items:flex-start;padding:9px 12px;border-radius:var(--radius-sm);background:var(--surface-2);font-size:14px}.note svg{flex:none;width:18px;height:18px;margin-top:1px}.note.warn{background:var(--warn-soft)}.note.warn svg{color:var(--warn)}.note.info{background:var(--accent-soft)}.note.info svg{color:var(--accent)}.note.good{background:color-mix(in srgb,var(--good) 14%,transparent)}.note.good svg{color:var(--good-ink)}.toggle-row{display:flex;align-items:center;gap:14px;min-height:var(--tap);padding:4px 0}.toggle-row .label{flex:1}.switch{position:relative;width:52px;height:32px;flex:none;border-radius:999px;border:0;background:var(--surface-3);transition:background .15s}.switch:after{content:"";position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .15s}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{transform:translate(24px)}.input,select.input,textarea.input{min-height:42px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:100%}textarea.input{min-height:72px;resize:vertical}.check{display:flex;align-items:center;gap:12px;min-height:44px;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);text-align:left;width:100%;font-weight:550}.check .box{width:26px;height:26px;flex:none;border-radius:8px;border:2px solid var(--border);display:grid;place-items:center}.check.on .box{background:var(--good);border-color:var(--good);color:#fff}.check.on{color:var(--text-2)}.stepper{display:flex;flex-direction:column;gap:4px;align-items:stretch}.stepper .label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);text-align:center}.stepper .controls{display:grid;grid-template-columns:56px 1fr 56px;align-items:center;max-width:420px;margin:0 auto;width:100%;background:var(--surface-2);border-radius:16px;padding:5px}.stepper button{height:52px;border:0;border-radius:13px;background:var(--surface);font-size:26px;font-weight:500;box-shadow:var(--shadow)}.stepper .value{text-align:center;font-size:32px;font-weight:750;font-variant-numeric:tabular-nums;line-height:1}.stepper .value small{font-size:14px;font-weight:600;color:var(--text-3);margin-left:2px}.stepper .hint{text-align:center;font-size:12px;color:var(--text-3);min-height:15px}.stepper.target-hit .value{color:var(--good-ink)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:50;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease-out}.sheet{width:min(900px,100%);max-height:92vh;overflow-y:auto;background:var(--surface);border-radius:20px 20px 0 0;padding:10px 18px max(16px,env(safe-area-inset-bottom));animation:slide-up .2s ease-out}.sheet .grabber{width:48px;height:5px;border-radius:3px;background:var(--surface-3);margin:0 auto 12px}@keyframes fade{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(40px);opacity:0}}.figure{position:relative;display:flex;flex-direction:column;gap:6px}.figure-svg{width:100%;height:100%;display:block;overflow:visible}.figure .stage{background:var(--surface-2);border-radius:var(--radius);aspect-ratio:4 / 3;padding:8px;overflow:hidden}.figure .phase{font-weight:650;font-size:13px;min-height:18px;text-align:center;color:var(--text-2)}.figure.fault .stage{outline:2px solid var(--fig-fault);outline-offset:-2px}.list{display:flex;flex-direction:column}.list>*{padding:10px 0;border-bottom:1px solid var(--border)}.list>*:last-child{border-bottom:0}ol.steps,ul.bullets{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px}table.data{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}table.data th,table.data td{text-align:left;padding:7px 6px;border-bottom:1px solid var(--border)}table.data th{font-size:12px;color:var(--text-3);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.scroll-x{overflow-x:auto}.empty{padding:24px;text-align:center;color:var(--text-3)}.roadmap{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px}.roadmap-stage{display:flex;align-items:center;gap:8px;min-height:52px;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);text-align:left;font-weight:650}.roadmap-stage .num{width:26px;height:26px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);font-size:13px}.roadmap-stage.past{color:var(--text-3)}.roadmap-stage.past .num{background:var(--good);color:#fff}.roadmap-stage.current{border-color:var(--accent);background:var(--accent-soft)}.roadmap-stage.current .num{background:var(--accent);color:#fff}.exercise-card .figure .stage{aspect-ratio:4 / 3}.exercise-card h3{margin-top:4px}.weight-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:6px 6px 6px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface)}.weight-row.ready{background:color-mix(in srgb,var(--good) 8%,var(--surface));border-color:color-mix(in srgb,var(--good) 40%,var(--border))}.weight-check{width:32px;height:32px;border-radius:9px;border:2px solid var(--border);background:transparent;display:grid;place-items:center;padding:0}.weight-row.ready .weight-check{background:var(--good);border-color:var(--good);color:#fff}.weight-hint{font-size:13px;color:var(--text-3)}.weight-hint.up{color:var(--good-ink);font-weight:600}.weight-picker{display:grid;grid-template-columns:46px minmax(80px,auto) 46px;align-items:center;background:var(--surface-2);border-radius:14px;padding:4px}.weight-picker button{height:44px;border:0;border-radius:11px;background:var(--surface);font-size:22px;box-shadow:var(--shadow)}.weight-value{text-align:center;font-size:25px;font-weight:800;line-height:1}.weight-value small{font-size:13px;font-weight:600;color:var(--text-3);margin-left:2px}.weight-callout{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:9px 13px;border-radius:var(--radius-sm);background:var(--warn-soft);font-weight:650}.weight-callout b{font-size:24px;font-weight:800}
