*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--vvh: 100dvh;--kb-inset: 0px;--safe-top: env(safe-area-inset-top, 0px);--banner-h: 0px;--top-inset: calc(var(--safe-top) + var(--banner-h));--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--gutter: 20px;--tap: 56px;--tap-primary: 72px;--gap: 12px;--nav-reserve: 84px;--bg: #0a0a0a;--fg: #f5f5f5;--fg-dim: rgba(245, 245, 245, .72);--fg-faint: rgba(245, 245, 245, .5);--line: rgba(245, 245, 245, .18);--accent: #ffd166;--ok: #6dd58c;--danger: #f78b8b;color-scheme:dark}html,body,#root{width:100%;height:var(--vvh, 100dvh);overflow:hidden}html{font-size:17px;-webkit-text-size-adjust:100%;touch-action:manipulation}body{background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-feature-settings:"tnum";-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font:inherit;color:inherit;background:transparent;border:none;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}input,textarea,select{font-size:max(16px,1rem)}.mono,.tv-mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Menlo,monospace}.screen{height:var(--vvh, 100dvh);width:100%;display:flex;flex-direction:column;gap:16px;padding:calc(var(--top-inset) + var(--gutter)) calc(var(--safe-right) + var(--gutter)) calc(var(--safe-bottom) + var(--gutter)) calc(var(--safe-left) + var(--gutter));background:var(--bg);transition:background-color .3s ease}.screen--center{justify-content:center;align-items:center;text-align:center}.screen--scroll{overflow-y:auto;-webkit-overflow-scrolling:touch}.h1{font-size:44px;font-weight:800;line-height:1.05;letter-spacing:-.02em}.h2{font-size:26px;font-weight:700;line-height:1.2}.dim{opacity:.85}.muted{opacity:.7}.meta{font-size:14px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.12em}.desc{font-size:19px;color:var(--fg-dim);max-width:44ch}.section{margin-bottom:20px}.section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--fg-faint);margin-bottom:8px}.list{list-style:none;display:flex;flex-direction:column;gap:6px;font-size:19px;line-height:1.35}.list--chips{flex-direction:row;flex-wrap:wrap;gap:8px}.list--chips li{padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:16px}.banner{padding:14px 18px;background:#5f3a1a;border-radius:12px;font-size:17px}.tint--warmup{background:#1e3a5f}.tint--work{background:#1a5f3a}.tint--rest{background:#5f3a1a}.tint--cooldown{background:#1e3a5f}.tint--countdown{background:#6b1a1a}.btn{min-height:var(--tap);min-width:var(--tap);padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:17px;font-weight:700;letter-spacing:.02em;border-radius:12px;background:#00000059;border:2px solid rgba(245,245,245,.25);transition:transform 60ms ease,background-color 80ms ease;white-space:nowrap}.btn:active:not(:disabled){transform:scale(.96);background:#0009;border-color:#f5f5f599}.btn:disabled{opacity:.35}.btn:focus-visible,.chip:focus-visible,.stepper-btn:focus-visible,.stepper-value:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn--primary{min-height:var(--tap-primary);background:var(--fg);color:var(--bg);border-color:var(--fg);font-size:22px;font-weight:800}.btn--primary:active:not(:disabled){background:var(--accent);border-color:var(--accent)}.btn--ghost{background:transparent}.btn--danger{border-color:#ff505099;color:#ffd1d1}.btn--block{width:100%}.btn--wide{min-width:220px}.button-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--gap)}.badge{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:#00000073;border:1px solid var(--line);white-space:nowrap}.badge--button{min-height:var(--tap);padding:0 16px}.badge--button:active{transform:scale(.96)}.badge--warn{background:#5f3a1a}.badge--error{background:#6b1a1a}.session-banner{position:fixed;top:0;left:0;right:0;z-index:1000;min-height:calc(var(--tap) + var(--safe-top));padding:var(--safe-top) calc(var(--safe-right) + 16px) 0 calc(var(--safe-left) + 16px);border:0;background:#b3261e;color:#fff;font-size:20px;font-weight:800;letter-spacing:.02em;text-align:center;touch-action:manipulation}.session-banner:active{background:#8c1d18}:root.session-expired{--banner-h: var(--tap)}.floating-badges{position:fixed;top:calc(var(--top-inset) + 10px);left:calc(var(--safe-left) + 10px);z-index:90;display:flex;gap:var(--gap)}.app-nav{position:fixed;top:calc(var(--top-inset) + 10px);right:calc(var(--safe-right) + 10px);display:flex;gap:var(--gap);z-index:100}.app-nav a{min-height:var(--tap);display:inline-flex;align-items:center;padding:0 18px;font-size:15px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:#0000008c;color:var(--fg);border:1px solid rgba(245,245,245,.25);border-radius:12px;text-decoration:none}.app-nav a:active{background:#000c}.app-nav a.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}.hint-banner{position:fixed;left:calc(var(--safe-left) + 16px);right:calc(var(--safe-right) + 16px);bottom:calc(var(--kb-inset) + var(--safe-bottom) + 16px);z-index:120;display:flex;align-items:center;gap:var(--gap);padding:12px 12px 12px 18px;background:#3a2f10;border:1px solid var(--accent);border-radius:14px;font-size:16px}.hint-banner span{flex:1}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000008c}.sheet{position:fixed;left:0;right:0;bottom:var(--kb-inset);z-index:201;margin-inline:auto;max-width:620px;max-height:calc(var(--vvh, 100dvh) - var(--top-inset) - 24px);overflow-y:auto;padding:16px calc(var(--safe-right) + 20px) calc(var(--safe-bottom) + 20px) calc(var(--safe-left) + 20px);background:#161616;border:1px solid var(--line);border-bottom:none;border-radius:20px 20px 0 0;box-shadow:0 -12px 40px #0009}.sheet--narrow{max-width:560px}@media(max-width:700px){:root{--gutter: 16px}.h1{font-size:34px}.h2{font-size:22px}}.adjust-banner{margin:0 0 var(--gap);border:1px solid var(--accent);border-radius:14px;background:#ffc80014}.adjust-banner-head{width:100%;min-height:var(--tap);padding:0 16px;text-align:left;font-size:18px;font-weight:800;color:var(--accent)}.adjust-banner-body{display:flex;flex-direction:column;gap:8px;padding:0 16px 14px;font-size:16px}.exercise-tags,.glance-adjusted{color:var(--accent)}.exercise--added strong:after{content:" ＋";color:var(--accent)}.library{gap:12px}.library-loc{margin:4px 0}.library-loc-pick{flex-wrap:wrap;gap:8px}.library-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}.library-item{display:flex;justify-content:space-between;align-items:center}.library-min{color:var(--fg-dim)}.library-foot{margin-top:12px}.library-makeup{margin:8px 0 4px}.setup{padding-top:calc(var(--top-inset) + 84px)}.setup-head{display:flex;flex-direction:column;gap:8px}.setup-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-right:4px}.setup-start{flex:none}.workout{height:var(--vvh, 100dvh);width:100%;display:flex;flex-direction:column;gap:var(--gap);padding:calc(var(--top-inset) + 8px) calc(var(--safe-right) + 16px) calc(var(--safe-bottom) + 12px) calc(var(--safe-left) + 16px);transition:background-color .2s ease}.workout--paused{filter:saturate(.5)}.workout-bar{display:flex;align-items:center;gap:var(--gap);min-height:var(--tap);font-size:15px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#f5f5f5e0}.workout-bar-spacer{flex:1}.workout-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(220px,35%) minmax(0,1fr);gap:16px}.workout--stacked .workout-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.workout--stacked .jmap:not(.jmap--collapsed){max-height:calc(var(--vvh, 100dvh) * .38)}.workout-pane{container-type:inline-size;position:relative;min-height:0;display:flex;flex-direction:column;gap:var(--gap);touch-action:pan-y}.workout-pane-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column}.workout-pane--glance .workout-pane-body{align-items:center;justify-content:center;text-align:center;gap:10px}.glance-set{font-size:clamp(18px,3.4cqi,28px);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.glance-name-row{display:flex;align-items:center;justify-content:center;gap:14px;min-width:0}.glance-thumb{width:108px;height:81px;flex:none;opacity:.92}.glance-thumb svg{display:block;width:100%;height:100%}.glance-name{font-size:clamp(36px,8.5cqi,92px);font-weight:900;line-height:1;letter-spacing:-.02em;overflow-wrap:anywhere}.glance-target{font-size:clamp(28px,6cqi,64px);font-weight:800;letter-spacing:-.01em}.glance-time{font-size:clamp(72px,18cqi,180px);font-weight:900;line-height:.95;letter-spacing:-.03em}.glance-prev{font-size:19px;color:#f5f5f5d1}.glance-desc{font-size:19px;color:#f5f5f5e0;max-width:42ch}.paused-badge{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:2;padding:8px 18px;border-radius:10px;background:#0009;font-size:18px;font-weight:800;letter-spacing:.28em;text-transform:uppercase}.workout-pane--log .workout-pane-body{gap:var(--gap)}.workout-pane--log .workout-pane-body>:first-child{margin-top:auto}.restlog-timer{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 16px;padding:4px 4px 0}.restlog-label{font-size:18px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.restlog-timer--over .restlog-label{color:var(--accent)}.restlog-time{font-size:clamp(48px,11cqi,104px);font-weight:900;line-height:1}.restlog-next{font-size:17px;color:var(--fg-dim)}.restlog-done{display:flex;flex-direction:column;gap:var(--gap);padding:16px;text-align:center;font-size:22px;font-weight:800;background:#00000059;border:1px solid rgba(109,213,140,.5);border-radius:16px}.workout-actions{display:flex;flex-direction:column;gap:var(--gap)}.workout-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap)}.workout-slot{min-height:var(--tap)}.workout-controls .btn{width:100%}.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}.more-grid .btn{width:100%}.more-close{margin-top:var(--gap)}.jmap{min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#0006;border:1px solid rgba(245,245,245,.15);border-radius:14px}.jmap--collapsed{overflow:hidden}.jmap-toggle{width:100%;min-height:var(--tap);display:flex;align-items:center;justify-content:space-between;gap:var(--gap);padding:0 16px;font-size:17px;font-weight:700;text-align:left}.jmap-toggle--open{position:sticky;top:0;z-index:1;background:#0a0a0af0;border-bottom:1px solid var(--line)}.jmap-toggle:active{background:#ffd1661f}.jmap-toggle-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent)}.jmap-toggle-meta{flex:none;font-size:15px;color:var(--fg-dim)}.jmap-list{list-style:none;margin:0;padding:6px 0}.jmap-section{font-size:13px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#f5f5f599;padding:14px 16px 6px;border-top:1px dashed rgba(245,245,245,.12)}.jmap-item:first-child .jmap-section{border-top:none}.jmap-section--warmup{color:#9fd4e0}.jmap-section--circuit,.jmap-section--intervals{color:#6dd58c}.jmap-section--steady,.jmap-section--cooldown{color:#9fd4e0}.jmap-section--finisher{color:#ffd166}.jmap-section--mobility,.jmap-section--walk{color:#c8b8e0}.jmap-row{display:grid;grid-template-columns:1.1em auto minmax(0,1fr) auto auto;align-items:baseline;gap:8px;padding:9px 16px;font-size:17px;color:#f5f5f5eb}.jmap-row--past{color:#f5f5f559}.jmap-row--current{background:#ffd1662e;border-left:4px solid var(--accent);padding-left:12px;color:var(--accent);font-weight:800}.jmap-row--current .jmap-dur,.jmap-row--current .jmap-round{color:var(--accent)}.jmap-row--rest{font-style:italic;opacity:.85}.jmap-row--round-break{font-style:normal;opacity:1;color:#ffd166d9}.jmap-arrow{font-weight:900;font-size:1.2em;line-height:1}.jmap-dur{color:#f5f5f5a6;font-size:.9em}.jmap-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jmap-round{color:#f5f5f58c;font-size:.85em}.jmap-check{color:var(--ok);font-weight:900}.jmap-partial{color:var(--accent);font-size:.82em;font-weight:700}@media(max-width:700px){.workout-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.workout-slot{display:none}.workout-bar{font-size:13px;letter-spacing:.08em}}.btn--defer{border-color:var(--accent);color:var(--accent)}.restlog-defer{min-height:var(--tap);padding:0 18px;font-size:17px;font-weight:800}.defer-hint{font-size:16px;color:var(--fg-dim);text-align:center}.jmap-later{font-size:.8em;font-weight:800;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:0 8px;margin-left:6px}.glance-repsleft{font-size:clamp(.8rem,1.6vw,1.05rem);opacity:.6;margin-top:.05em}.glance-strength{width:100%;margin-bottom:auto;display:flex;flex-direction:column;align-items:center;gap:10px}.stiles{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);gap:var(--stile-gap);--stile-gap: 10px;--stile-pad: 8px;--digit-em: .66;--row: calc(100cqi - 2 * var(--stile-gap));--inner-std: calc(var(--row) / 3.5 - 2 * var(--stile-pad));--inner-last: calc(var(--row) * 1.5 / 3.5 - 2 * var(--stile-pad));--num-box: min(calc(var(--inner-std) / (2 * var(--digit-em))), 30vh)}.stile{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:10px var(--stile-pad) 12px;border-radius:14px;background:#ffffff17;border:1px solid rgba(255,255,255,.14)}.stile-label{font-size:clamp(13px,1.4vw,17px);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim);line-height:1.2}.stile-num{height:var(--num-box);line-height:var(--num-box);font-size:min(calc(var(--inner-std) / (var(--chars) * var(--digit-em))),var(--num-box));font-weight:900;letter-spacing:-.02em;white-space:nowrap;color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-variant-numeric:tabular-nums}.stile--last .stile-num{font-size:min(calc(var(--inner-last) / (var(--chars) * var(--digit-em))),var(--num-box))}.stile-unit{font-size:.3em;font-weight:800;margin-left:.12em;letter-spacing:.02em;color:var(--fg-dim)}.stile-sub{font-size:clamp(14px,1.6vw,20px);font-weight:700;color:var(--fg-dim);line-height:1.2;text-align:center;height:2.4em;display:flex;align-items:center;justify-content:center;overflow-wrap:anywhere;max-width:100%}.glance-time--set{font-size:calc(clamp(72px,18cqi,180px)/2)}.workout--set:not(.workout--stacked) .glance-time--set{font-size:calc(clamp(72px,(100cqi - 16px - max(220px,35cqi)) * .18,180px)/2)}.workout--set:not(.workout--stacked) .workout-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.workout--set:not(.workout--stacked) .jmap{display:none}.restlog-note{font-size:17px;font-weight:700;color:var(--fg-dim);text-align:center;padding:2px 8px}.restlog-timer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);align-items:start;gap:8px 16px}.restlog-timer-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 16px;min-width:0}.upnext{container-type:inline-size;min-width:0;display:flex;flex-direction:column;gap:4px}.upnext-name{font-size:16px;font-weight:700;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stiles--compact{--stile-gap: 8px;--stile-pad: 6px;--num-box: min(calc(var(--inner-std) / (2 * var(--digit-em))), 44px)}.stiles--compact .stile{padding:6px var(--stile-pad) 8px}.stiles--compact .stile-label{font-size:clamp(10px,4cqi,13px);letter-spacing:.12em}.stiles--compact .stile-sub{font-size:clamp(10px,4cqi,13px)}@media(orientation:portrait){.restlog-timer{grid-template-columns:minmax(0,1fr)}.upnext{width:min(100%,62%)}}.workout-pane-body>.upnext{align-self:center;width:min(100%,60%);margin-top:10px}.log-card{display:flex;flex-direction:column;gap:14px;padding:16px;background:#00000061;border:1px solid rgba(245,245,245,.14);border-radius:16px}.log-card--done{border-color:#6dd58c80;background:#1a5f3a38}.log-card-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 12px}.log-card-name{font-size:22px;font-weight:800}.log-card-target{font-size:15px;color:var(--fg-dim)}.log-card-note{font-size:15px;font-weight:700;color:var(--accent)}.log-check{color:var(--ok);font-weight:900}.log-steppers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 16px}.stepper{display:flex;flex-direction:column;gap:6px;min-width:0}.stepper-label,.chip-label{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim)}.stepper-unit{color:var(--fg-faint);font-weight:600}.stepper-row{display:grid;grid-template-columns:64px minmax(56px,1fr) 64px;gap:var(--gap)}.stepper-btn{min-height:var(--tap-primary);font-size:38px;font-weight:900;border-radius:14px;background:#00000080;border:2px solid rgba(245,245,245,.28);touch-action:none}.stepper-btn:active:not(:disabled){transform:scale(.94);background:#ffd16640;border-color:var(--accent)}.stepper-btn:disabled{opacity:.3}.stepper-value,.setting-value{min-height:var(--tap-primary);width:100%;font-size:40px;font-weight:800;background:#0009;border:2px solid rgba(245,245,245,.22);border-radius:14px}.stepper-value:active:not(:disabled),.setting-value:active:not(:disabled){border-color:var(--accent)}.stepper--disabled .stepper-value,.setting-value:disabled{opacity:.5}.stepper-sub{font-size:15px;color:var(--fg-dim);text-align:center}.stepper-hint{align-self:center;min-height:var(--tap);padding:0 16px;font-size:16px;color:var(--accent);text-decoration:underline dotted}.setting-field{display:flex;flex-direction:column;gap:6px}.setting-label{min-height:var(--tap);text-align:left}.setting-help{font-size:15px;line-height:1.35;color:var(--fg-dim)}.setting-toggle{min-height:var(--tap);width:100%;padding:0 16px;font-size:16px;font-weight:700;text-align:left;color:var(--fg-dim);background:#00000059;border:1px dashed rgba(245,245,245,.22);border-radius:12px}.rpe,.flags{display:flex;flex-direction:column;gap:var(--gap)}.chip-row{display:grid;gap:var(--gap)}.chip-row--rpe{grid-template-columns:repeat(6,minmax(56px,1fr))}.chip-row--half{grid-template-columns:repeat(5,minmax(56px,1fr));padding-inline:8%}.chip-row--flags{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.chip{min-height:var(--tap);padding:0 10px;border-radius:12px;background:#0006;border:2px solid rgba(245,245,245,.25);font-size:22px;font-weight:800;transition:transform 60ms ease}.chip:active:not(:disabled){transform:scale(.95)}.chip:disabled{opacity:.35}.chip--on{background:var(--accent);border-color:var(--accent);color:var(--bg)}.rpe-chip--half{font-size:17px;font-weight:700}.flag-chip{font-size:16px;font-weight:700}.flag-hint{font-size:14px;color:var(--fg-faint)}.chip-row--regions{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}.region-chip,.pain-entry,.pain-cancel{font-size:16px;font-weight:700}.pain-entries{display:flex;flex-wrap:wrap;gap:var(--gap)}.pain-picker{display:flex;flex-direction:column;gap:var(--gap);padding:12px;border:1px solid rgba(245,245,245,.22);border-radius:12px;background:#0000004d}.pain-cancel{align-self:flex-start;min-width:140px}.log-save{min-height:var(--tap-primary);width:100%;padding:0 16px;font-size:22px;font-weight:800;background:var(--fg);color:var(--bg);border:2px solid var(--fg);border-radius:14px}.log-save:active:not(:disabled){background:var(--accent);border-color:var(--accent);transform:scale(.98)}.log-save:disabled{background:#f5f5f540;border-color:transparent;color:var(--bg)}.log-finish{background:var(--ok);border-color:var(--ok)}.log-hint{padding:8px 14px;font-size:15px;color:var(--fg-dim)}.log-error{padding:10px 14px;border-radius:10px;background:#6b1a1a;color:#ffd1d1;font-size:15px;font-weight:600;text-align:center}.log-summary{border-color:#ffd16666;background:#ffd16614}.notes-field{display:flex;flex-direction:column;gap:6px}.log-notes{font:inherit;font-size:17px;width:100%;min-height:96px;padding:12px 14px;resize:none;color:var(--fg);background:#00000073;border:2px solid rgba(245,245,245,.2);border-radius:12px;scroll-margin-bottom:calc(var(--kb-inset) + 24px)}.log-notes:focus{outline:none;border-color:var(--accent)}.keypad-head{display:flex;justify-content:space-between;align-items:center;gap:var(--gap);margin-bottom:8px}.keypad-title{font-size:15px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.keypad-unit{color:var(--fg-faint)}.keypad-display{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:var(--gap);margin-bottom:var(--gap)}.keypad-value{min-height:var(--tap-primary);display:flex;align-items:center;justify-content:flex-end;padding:0 18px;font-size:44px;font-weight:800;background:#00000080;border:2px solid var(--accent);border-radius:14px}.keypad-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}.keypad-key{min-height:var(--tap-primary);font-size:30px;font-weight:800;border-radius:14px;background:#f5f5f514;border:1px solid var(--line)}.keypad-key:active:not(:disabled){background:#ffd1664d;transform:scale(.96)}.keypad-key:disabled{opacity:.3}.keypad-done{margin-top:var(--gap)}.log-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:flex;flex-direction:column;gap:var(--gap);padding:calc(var(--top-inset) + 10px) calc(var(--safe-right) + 16px) 0 calc(var(--safe-left) + 16px);background:var(--bg)}.log-top{display:flex;align-items:center;gap:var(--gap);padding-bottom:10px;border-bottom:1px solid var(--line)}.log-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:800}.log-meta{font-size:13px;color:var(--fg-faint);letter-spacing:.1em;text-transform:uppercase}.log-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:16px;padding-bottom:calc(var(--kb-inset) + var(--safe-bottom) + 24px)}.log-section{display:flex;flex-direction:column;gap:var(--gap)}.log-section-title{font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-faint)}.log-stack{display:flex;flex-direction:column;gap:6px}.log-progress{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.done-screen{padding-top:calc(var(--top-inset) + 84px);padding-bottom:calc(var(--kb-inset) + var(--safe-bottom) + 24px);gap:24px}.done-header{display:flex;flex-direction:column;gap:8px;text-align:center}.done-elapsed{font-size:40px;font-weight:800}.done-meta{font-size:17px;color:var(--fg-dim)}.done-section{display:flex;flex-direction:column;gap:var(--gap)}.done-unlogged-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:16px}.done-unlogged-cell{display:flex;flex-direction:column;gap:8px}.done-footer{padding-bottom:12px}.setting-positions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}.setting-position{display:flex;flex-direction:column;gap:4px}.setting-position-label{font-size:14px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-dim)}.setting-position .setting-value{width:100%}.status{height:var(--vvh, 100dvh);width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:16px;padding:calc(var(--top-inset) + var(--nav-reserve)) calc(var(--safe-right) + var(--gutter)) calc(var(--safe-bottom) + 24px) calc(var(--safe-left) + var(--gutter));background:var(--bg);color:var(--fg);font-size:16px}.banner-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--gap);padding:12px 16px;background:#f5f5f50d;border:1px solid rgba(245,245,245,.15);border-radius:12px}.banner-phase{font-size:22px;font-weight:800;letter-spacing:.02em}.banner-week{font-size:15px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim)}.status-panel{background:#f5f5f508;border:1px solid rgba(245,245,245,.15);border-radius:14px;overflow:hidden}.status-panel-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 12px;padding:12px 16px;background:#f5f5f50d;border-bottom:1px solid rgba(245,245,245,.1)}.status-panel-title{font-size:18px;font-weight:800}.status-panel-subtitle{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim)}.status-panel-body{padding:12px 16px 16px}.status-empty{padding:18px 8px;text-align:center;font-size:16px;font-style:italic;color:var(--fg-faint)}.status-error{padding:10px 14px;border-radius:10px;background:#ff505026;border:1px solid rgba(255,80,80,.4);color:#ffd1d1;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px}.today-grid{display:flex;flex-direction:column;gap:16px}.today-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px 20px;padding-bottom:14px;border-bottom:1px solid rgba(245,245,245,.1)}.today-meta-label{margin-bottom:4px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-faint)}.today-meta-value{font-size:19px;font-weight:800}.today-meta-target{margin-left:.5em;font-weight:700;color:var(--fg-faint)}.today-exercises{display:flex;flex-direction:column;gap:14px}.today-exercise{padding-left:12px;border-left:3px solid rgba(245,245,245,.2)}.today-exercise-name{margin-bottom:4px;font-size:18px;font-weight:800}.today-set-list{list-style:none;display:flex;flex-direction:column;gap:4px}.set-readback{font-size:16px;font-variant-numeric:tabular-nums}.set-num{margin-right:.4em;color:var(--fg-faint)}.set-readback--skipped,.set-skipped{font-style:italic;color:#f5f5f573}.zone-note{font-size:.88em;color:var(--fg-faint)}.seven-day-strip{display:flex;flex-direction:column;gap:6px}.seven-day-row{display:grid;grid-template-columns:3.5em minmax(0,1.5fr) minmax(0,1fr) minmax(0,.7fr) minmax(0,.5fr) minmax(0,1.4fr);align-items:baseline;gap:10px;min-height:var(--tap);padding:10px 12px;background:#f5f5f508;border:1px solid rgba(245,245,245,.08);border-radius:10px;font-size:15px}.seven-day-row--today{border-color:var(--accent);background:#ffd16614}.seven-day-row--skipped{opacity:.55}.seven-day-row--incomplete{border-color:#ff505066}.seven-day-date{color:var(--fg-faint)}.seven-day-label{display:flex;flex-direction:column;min-width:0}.seven-day-name{font-weight:700;overflow-wrap:anywhere}.seven-day-sub{font-size:.85em;color:#f5f5f566}.seven-day-rpe{font-weight:700}.seven-day-target,.seven-day-hr-target{font-weight:600;color:var(--fg-faint)}.outlier-list{list-style:none;display:flex;flex-direction:column;gap:6px}.outlier-row{display:grid;grid-template-columns:3.5em 8em minmax(0,1fr);align-items:baseline;gap:10px;padding:8px 12px;background:#f5f5f508;border-radius:8px;font-size:15px}.outlier-date{color:var(--fg-faint)}.outlier-kind{font-size:.85em;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.outlier-kind--RPE9{color:var(--danger)}.outlier-kind--Incomplete{color:var(--accent)}.outlier-kind--Painnote{color:var(--danger)}.chart-wrap{display:flex;flex-direction:column;gap:8px}.chart{width:100%;height:160px}.chart-axis{stroke:#f5f5f540;stroke-width:1}.chart-path{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.chart-dot{fill:var(--accent);stroke:var(--bg);stroke-width:1}.chart-label{fill:var(--fg-faint);font-size:11px;font-family:ui-monospace,SF Mono,Menlo,monospace}.chart-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;font-size:14px;color:var(--fg-dim);font-family:ui-monospace,SF Mono,Menlo,monospace}@media(max-width:700px){.seven-day-row{grid-template-columns:3.5em minmax(0,1fr) auto;row-gap:4px}.seven-day-work,.seven-day-hr{grid-column:2 / -1}.outlier-row{grid-template-columns:3.5em minmax(0,1fr)}.outlier-detail{grid-column:1 / -1}}.flow-ready{display:flex;flex-direction:column;gap:var(--gap);padding:calc(var(--safe-top) + 72px) var(--gutter) 0;overflow-y:auto;-webkit-overflow-scrolling:touch;height:var(--vvh, 100dvh)}.flow-list{flex:none;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:17px}.flow-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);padding:6px 0;border-bottom:1px solid var(--line)}.flow-list-title{flex:1}.flow-thumb-slot{flex:none;width:64px;height:48px}.flow-run{position:relative;display:flex;flex-direction:column;height:var(--vvh, 100dvh);padding:calc(var(--safe-top) + 16px) var(--gutter) calc(var(--safe-bottom) + 16px);touch-action:pan-y;user-select:none;-webkit-user-select:none;background:linear-gradient(180deg,#102a26,#0a0a0a 70%)}.flow-head{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);font-size:20px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.flow-round{color:var(--accent)}.flow-mute{min-width:var(--tap);min-height:var(--tap);font-size:24px}.flow-body{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center}.flow-text{display:flex;flex-direction:column;align-items:center;gap:14px}.pose-figure{color:var(--fg);pointer-events:none;flex:none}.pose-figure svg{display:block;width:100%;height:100%}.flow-body--figure{justify-content:flex-start;gap:10px;padding-bottom:16px}.flow-figure{height:calc(var(--vvh, 100dvh) * .4);width:100%;max-width:calc(var(--vvh, 100dvh) * .4 * 4 / 3)}.flow-body--figure .flow-text{flex:1;justify-content:center;gap:10px}@media(orientation:landscape)and (min-width:900px){.flow-body--figure{flex-direction:row;align-items:center;justify-content:center;gap:32px}.flow-body--figure .flow-figure{width:46%;max-width:none;height:auto;aspect-ratio:4 / 3}.flow-body--figure .flow-text{flex:1;min-width:0}.flow-body--figure .flow-clock{font-size:130px}}.pose-thumb{width:64px;height:48px}.flow-switch-figure{width:280px;height:210px}.flow-step{font-size:18px}.flow-name{font-size:64px;font-weight:800;line-height:1.05}.flow-side{font-size:40px;font-weight:800;color:var(--accent)}.flow-clock{font-size:150px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.flow-cue{font-size:24px;color:var(--fg-dim);max-width:34ch}.flow-easier{font-size:20px;color:var(--fg-faint)}.flow-run{--next-bar-h: 96px}.flow-next{flex:none;height:var(--next-bar-h);box-sizing:border-box;padding:10px 20px;border-radius:16px;background:#ffd1661a;border:2px solid rgba(255,209,102,.45);font-size:28px;font-weight:800;text-align:center;display:flex;align-items:center;justify-content:center;gap:16px;overflow:hidden}.flow-next-thumb-slot{flex:none;width:104px;height:78px}.flow-next-thumb{width:104px;height:78px;margin:0}.flow-move{font-size:34px;font-weight:800;letter-spacing:.04em;color:var(--accent)}.flow-move--idle{visibility:hidden}.flow-clock--moving{color:var(--accent)}.flow-switch{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#0a0a0afb;text-align:center}.flow-switch-title{font-size:110px;font-weight:900;line-height:1;color:var(--accent)}.flow-switch-next{font-size:44px;font-weight:800}.flow-roundcard .flow-switch-title{color:var(--ok)}.flow-paused{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0a0a0ac7;font-size:48px;font-weight:800}@media(max-width:700px){.flow-figure{height:calc(var(--vvh, 100dvh) * .32)}.flow-switch-figure{width:200px;height:150px}.flow-name{font-size:44px}.flow-side{font-size:30px}.flow-clock{font-size:110px}.flow-switch-title{font-size:72px}}.flow-sanskrit{font-size:clamp(.9rem,2.2vw,1.4rem);opacity:.55;letter-spacing:.02em;margin-top:.15em}.flow-settings{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;justify-content:center;margin:.75rem auto 0;padding:.6rem .9rem;border:1px solid rgb(255 255 255 / .12);border-radius:.6rem;max-width:44rem}.flow-setting-btn{min-height:56px;min-width:56px;padding:0 1.1rem}.flow-setting-btn[aria-pressed=false]{opacity:.6}:root{--bottom-bar-pad: 12px;--bottom-bar-h: calc(var(--tap) + 2 * var(--bottom-bar-pad) + var(--safe-bottom))}.bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:var(--gap);padding:var(--bottom-bar-pad) calc(var(--safe-right) + var(--gutter)) calc(var(--safe-bottom) + var(--bottom-bar-pad)) calc(var(--safe-left) + var(--gutter));background:#0a0a0aeb;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-bar-left{flex:1;display:flex;min-width:0}.bottom-bar-right{display:flex;gap:var(--gap);flex-shrink:0}.bottom-bar-start{min-height:var(--tap);width:100%;max-width:520px}.bottom-bar-btn{min-height:var(--tap);min-width:140px;padding:0 18px}.setup-scroll,.peek-body,.week-list,.week-detail,.flow-ready{padding-bottom:calc(var(--bottom-bar-h) + var(--gap))}.setup,.peek{padding-bottom:0}.peek{display:flex;flex-direction:column;gap:var(--gap);height:var(--vvh, 100dvh);padding:calc(var(--safe-top) + 16px) var(--gutter) calc(var(--safe-bottom) + var(--gutter));overflow:hidden}.peek-head{display:flex;align-items:center;gap:var(--gap);padding-right:280px;flex-shrink:0}.peek-title{min-height:var(--tap);display:flex;align-items:center}.peek-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.peek-stale{margin-bottom:var(--gap)}.plan-detail{display:flex;flex-direction:column;gap:10px;font-size:18px}.plan-detail-name{font-size:32px;font-weight:800}.plan-detail-body{display:flex;flex-direction:column;gap:8px}.plan-detail-body .list li{padding:4px 0}.plan-detail-logged{border-top:1px solid var(--line);padding-top:10px}.plan-detail-foot{margin-top:8px;font-style:italic}.plan-detail-adjusted{display:flex;flex-direction:column;gap:4px}.badge--adjusted{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:8px;background:#ffd1662e;color:var(--accent);font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}.peek-week{display:flex;flex-direction:column;gap:var(--gap);overflow:hidden}.week-nav{display:flex;align-items:center;gap:var(--gap);flex-shrink:0}.week-arrow{min-width:var(--tap);min-height:var(--tap);font-size:32px;font-weight:800}.week-title{flex:1;text-align:center}.week-title .h3{font-size:22px;font-weight:800}.week-grid{flex:1;min-height:0;display:grid;gap:var(--gutter);grid-template-columns:1fr;grid-template-rows:1fr}.week-list{list-style:none;display:flex;flex-direction:column;gap:6px;overflow-y:auto}.week-detail{min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.week-row{width:100%;min-height:var(--tap);display:grid;grid-template-columns:96px 1fr 72px 40px;align-items:center;gap:10px;padding:8px 14px;border-radius:12px;border:2px solid var(--line);background:#0000004d;text-align:left;font-size:18px}.week-row:disabled{opacity:.45}.week-row--today{border-color:var(--accent);background:#ffd1661a}.week-day{font-weight:700}.week-session{font-weight:600}.week-mins{color:var(--fg-dim);text-align:right}.week-status{font-size:24px;font-weight:900;text-align:center}.day-status{font-weight:700}.ds--done{color:var(--ok)}.ds--partial{color:var(--accent)}.ds--missed{color:var(--danger)}.ds--upcoming,.ds--today{color:var(--fg-dim)}.week-detail{display:none}@media(orientation:landscape){.week-grid{grid-template-columns:minmax(360px,44%) 1fr;grid-template-rows:1fr}.week-detail{display:block}}:root{--top-tabs-h: calc(var(--safe-top) + 10px + var(--tap) + 12px)}.status2{position:fixed;top:var(--top-tabs-h);left:0;right:0;bottom:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:8px calc(var(--safe-right) + var(--gutter)) calc(var(--bottom-bar-h) + var(--gutter)) calc(var(--safe-left) + var(--gutter))}.status-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gutter);align-items:start}.status-col{display:flex;flex-direction:column;gap:var(--gutter);min-width:0}@media(orientation:landscape){.status-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.status-stale,.status-error{margin-bottom:var(--gap)}.st-section{min-width:0;border:1px solid var(--line);border-radius:16px;background:#ffffff08}.st-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;padding:12px 16px 0}.st-title{font-size:20px;font-weight:800}.st-sub{font-size:14px;color:var(--fg-dim)}.st-body{padding:10px 16px 16px;display:flex;flex-direction:column;gap:10px;font-size:17px}.st-sub-title{margin-top:4px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-faint)}.st-label{display:inline-block;min-width:88px;color:var(--fg-dim);font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.st-label--pain{color:var(--danger)}.st-facts,.st-list{list-style:none;display:flex;flex-direction:column;gap:6px}.st-list li{padding:6px 0;border-bottom:1px solid var(--line)}.st-list li:last-child{border-bottom:0}.st-cell-note{font-size:13px;color:var(--fg-faint)}.st-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}.st-tile{min-height:96px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px;border-radius:12px;border:2px solid var(--line);background:#0000004d;text-align:left}.st-tile--today{border-color:var(--accent);background:#ffd1661a}.st-tile-day{font-size:14px;font-weight:700;color:var(--fg-dim)}.st-tile-name{font-size:15px;font-weight:700;line-height:1.2}.st-tile-icon{font-size:22px;font-weight:900}.st-tile .badge--adjusted{margin-left:0}.st-today-name{font-size:22px;font-weight:800}.st-progress{font-size:20px;font-weight:700}.st-adjust{display:flex;flex-direction:column;gap:4px;color:var(--fg-dim)}.table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.st-table{border-collapse:collapse;min-width:520px;width:100%;font-size:15px}.st-table th,.st-table td{padding:8px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);white-space:nowrap}.st-table thead th{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-faint)}.st-table tbody th{font-weight:700;white-space:normal;min-width:120px}.st-table th:last-child,.st-table td:last-child{white-space:normal}.st-topset{display:flex;flex-direction:column}.st-topset-load{font-weight:600}.st-topset-date{font-size:12px;color:var(--fg-faint)}.st-trend{font-size:22px;font-weight:900}.st-trend--up{color:var(--ok)}.st-trend--down{color:var(--danger)}.st-trend--flat{color:var(--fg-dim)}.st-sparks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.st-spark figcaption{font-size:14px;font-weight:700;margin-bottom:2px}.st-unit{color:var(--fg-faint);font-weight:400}.st-spark svg,.st-weight-chart{width:100%;height:auto;display:block}.st-plot{fill:#ffffff08;stroke:var(--line)}.st-axis{fill:var(--fg-faint);font-size:11px}.st-weight-chart .st-axis{font-size:13px}.st-line{fill:none;stroke:var(--accent);stroke-width:2}.st-dot{fill:var(--accent)}.st-strip{border-collapse:separate;border-spacing:3px;font-size:13px}.st-strip th{font-weight:600;color:var(--fg-dim);text-align:left;white-space:nowrap;padding:2px 6px}.st-strip thead th{text-align:center;font-size:11px}.st-kind{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.st-kind--sore{color:var(--accent)}.st-kind--pain{color:var(--danger)}.st-cell{min-width:34px;height:30px;text-align:center;border-radius:6px;font-weight:700;background:#ffffff0a}.st-cell--sore[data-level="1"]{background:#ffd1662e}.st-cell--sore[data-level="2"]{background:#ffd16657}.st-cell--sore[data-level="3"]{background:#ffd16685;color:var(--bg)}.st-cell--sore[data-level="4"]{background:#ffd166b8;color:var(--bg)}.st-cell--sore[data-level="5"]{background:#ffd166f2;color:var(--bg)}.st-cell--pain{box-shadow:inset 0 0 0 2px #f78b8b8c}.st-cell--pain[data-level="1"]{background:#f78b8b2e}.st-cell--pain[data-level="2"]{background:#f78b8b57}.st-cell--pain[data-level="3"]{background:#f78b8b85;color:var(--bg)}.st-cell--pain[data-level="4"]{background:#f78b8bb8;color:var(--bg)}.st-cell--pain[data-level="5"]{background:#f78b8bf2;color:var(--bg)}.st-flag--missed,.st-flag--pain{color:var(--danger)}.status-previous{min-height:var(--tap);align-self:flex-start;padding:0 18px}.st-previous-row{display:grid;grid-template-columns:96px 1fr 80px 32px;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--gap);margin-bottom:18px}.tile{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#f5f5f508;min-width:0}.tile--unreadable{border-style:dashed}.tile-title{margin:0 0 6px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-dim)}.tile-big{font-size:30px;line-height:1.1;font-weight:600}.tile-of{font-size:16px;font-weight:400;color:var(--fg-dim)}.tile-sub{font-size:12px;color:var(--fg-faint);margin-bottom:8px}.tile-facts{list-style:none;margin:8px 0 0;padding:0;font-size:14px}.tile-facts li{padding:2px 0;overflow-wrap:anywhere}.tile-facts .ok{color:var(--ok)}.tile-unreadable{font-size:14px;color:var(--fg-faint);font-style:italic;padding:6px 0 2px}.tile-bar{height:6px;border-radius:3px;background:#f5f5f51f;overflow:hidden;margin:6px 0 2px}.tile-bar>span{display:block;height:100%;background:var(--accent)}.st-collapse>summary{cursor:pointer;min-height:var(--tap);display:flex;align-items:center;font-size:15px;color:var(--fg-dim)}.st-table{min-width:0}.st-table th,.st-table td{white-space:normal;overflow-wrap:anywhere}.st-table th:first-child,.st-table td:first-child{min-width:9ch}.st-section>[data-testid$=-detail],.st-section>[data-testid=cardio-detail],.st-section>ul.st-facts,.st-section>div.muted{padding:0 14px 12px}.st-section>.st-collapse{padding:0 14px 6px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}@media(orientation:landscape){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}.st-rhr-line{display:inline}.chip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;padding:1px 5px;border-radius:5px;background:#f5f5f51f;white-space:nowrap}.music{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:0 var(--gutter) calc(var(--safe-bottom) + 6px);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line, #262626)}.music-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);min-height:var(--tap)}.music-toggle{flex:1 1 auto;min-height:var(--tap);text-align:left;background:none;border:0;color:var(--fg);font:inherit;font-size:.95rem;padding:0}.music-open{flex:0 0 auto;color:var(--fg-dim, #a3a3a3);font-size:.85rem;text-decoration:underline;min-height:var(--tap);display:inline-flex;align-items:center}.music-embed[hidden]{display:none}.music-embed{padding-bottom:8px}.music-note{font-size:.78rem;padding-top:4px}.flow-run,.flow-ready,.screen--workout{padding-bottom:calc(var(--tap) + var(--safe-bottom) + 16px)}.move-figure{width:100%;max-width:420px;height:auto;color:var(--fg)}.move-frame{opacity:0}.move-frame--0{animation:move-a var(--move-cycle, 2s) steps(1,end) infinite}.move-frame--1{animation:move-b var(--move-cycle, 2s) steps(1,end) infinite}@keyframes move-a{0%,49.9%{opacity:1}50%,to{opacity:0}}@keyframes move-b{0%,49.9%{opacity:0}50%,to{opacity:1}}@media(prefers-reduced-motion:reduce){.move-frame{animation:none!important}.move-frame--0{opacity:1}.move-frame--1{opacity:0}}.prep{height:var(--vvh, 100dvh);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 calc(var(--safe-right) + var(--gutter)) calc(var(--safe-bottom) + 96px) calc(var(--safe-left) + var(--gutter))}.prep-tabs{display:flex;gap:8px;padding:calc(var(--top-inset) + var(--nav-reserve)) 0 12px;position:sticky;top:0;background:var(--bg);z-index:5}.prep-tabs button{flex:1;padding:10px 12px;font-size:1rem;border-radius:10px;border:1px solid var(--line, #3a3a3a);background:transparent;color:inherit}.prep-tabs button.active{background:var(--accent-dim, rgba(255, 255, 255, .12));font-weight:600}.prep-head{padding:4px 0 12px}.prep-note{margin:4px 0 12px}.prep-store{margin:0 0 20px}.prep-store-name{font-size:1.05rem;margin:12px 0 4px;border-bottom:1px solid var(--line, #3a3a3a);padding-bottom:4px}.prep-aisle{margin:8px 0 12px}.prep-aisle-name{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;opacity:.7;margin-bottom:4px}.prep-lines{list-style:none;margin:0;padding:0}.prep-line{padding:8px 0;border-bottom:1px solid rgba(128,128,128,.18)}.prep-line-main{display:flex;align-items:baseline;gap:10px}.prep-qty{font-variant-numeric:tabular-nums;font-weight:700;min-width:4.5em}.prep-name{flex:1}.prep-line-sub{font-size:.85rem;margin-top:2px}.prep-flags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px}.chip{display:inline-flex;align-items:center;align-self:center;font-size:.75rem;line-height:1.5;padding:2px 10px;border-radius:999px;border:1px solid currentColor;opacity:.9;white-space:nowrap}.chip--no_store,.chip--over{color:#ff8b7b}.chip--top_up,.chip--under{color:#ffc46b}.chip--count_unknown,.chip--no_unit,.chip--no_package_size,.chip--no_servings{color:#9fd0ff}.chip--no_rank1,.chip--par_only,.chip--estimate{color:#b9b9b9}.prep-macros{margin:8px 0 16px}.prep-macro-day{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:3px 0}.prep-macro-date{font-size:.85rem;min-width:7em;opacity:.8}.prep-incomplete{border-left:3px solid #ff8b7b;padding:10px 12px;margin:8px 0 14px;background:#ff8b7b1a;font-size:.9rem;line-height:1.4}.prep-stale{border-left:3px solid #ffc46b;padding:8px 12px;margin:8px 0;font-size:.9rem}.prep-error{border-left:3px solid #ff8b7b;padding:8px 12px;margin:8px 0;font-size:.9rem}.prep-stepper{display:flex;align-items:center;gap:4px}.prep-stepper button{width:44px;height:44px;font-size:1.3rem;border-radius:10px;border:1px solid var(--line, #3a3a3a);background:transparent;color:inherit}.prep-stepper button:disabled{opacity:.4}.prep-count{min-width:3em;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}.prep-count.is-unset{font-weight:500;font-size:.85rem;opacity:.55}.prep-pantry-row .prep-line-main{align-items:center}@media(max-width:420px){.prep-qty{min-width:3.5em}.prep-macro-date{min-width:100%}}.prep-board{padding-bottom:24px}.prep-board-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:8px 0 12px}.prep-board-stats{display:flex;flex-wrap:wrap;gap:14px;font-size:.95rem}.prep-board-actions{display:flex;gap:8px;align-items:center}.prep-audio-hint{font-size:.8rem}.prep-start{font-weight:700}.prep-rail{display:flex;gap:8px;overflow-x:auto;padding:8px 0;position:sticky;top:calc(var(--top-inset) + var(--nav-reserve) + 64px);background:var(--bg);z-index:3;min-height:64px}.prep-rail--empty{align-items:center}.prep-timer{min-width:132px;min-height:56px;border-radius:12px;border:2px solid var(--line, #3a3a3a);background:transparent;color:inherit;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:6px 10px;gap:1px}.prep-timer-time{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.prep-timer-name{font-size:.8rem;text-align:left}.prep-timer-hint{font-size:.7rem;opacity:.6}.prep-timer--oven{border-color:#ff8b7b}.prep-timer--stove{border-color:#ffc46b}.prep-timer--air_fryer{border-color:#d9a0ff}.prep-timer--hands{border-color:#9fd0ff}.prep-timer--counter,.prep-timer--fridge{border-color:#8fd8c0}.prep-timer.is-expired{animation:prep-flash 1s steps(2,start) infinite;border-width:3px}@keyframes prep-flash{0%{background:#ff8b7b59}to{background:transparent}}@media(prefers-reduced-motion:reduce){.prep-timer.is-expired{animation:none;background:#ff8b7b59;outline:3px solid #ff8b7b}}.prep-shortcuts{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0 12px}.prep-shortcut{min-height:44px;padding:0 14px;border-radius:999px;background:transparent;color:inherit;display:inline-flex;align-items:center}.prep-shortcut.is-on{background:#8fd8c033;border-color:#8fd8c0;font-weight:600}.prep-lanes-wrap{overflow-x:auto;padding-bottom:8px}.prep-lanes{position:relative;padding-top:22px}.prep-ticks{position:relative;height:18px;margin-left:96px}.prep-tick{position:absolute;font-size:.7rem;opacity:.5;transform:translate(-50%)}.prep-now{position:absolute;top:20px;bottom:0;width:2px;margin-left:96px;background:#8fd8c0;z-index:3;pointer-events:none}.prep-lane{display:flex;align-items:stretch;min-height:108px}.prep-lane-label{width:96px;flex:0 0 96px;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;opacity:.95;position:sticky;left:0;background:var(--bg, #000);box-shadow:6px 0 6px -6px #000000e6;z-index:4;display:flex;align-items:center;padding-right:4px}.prep-lane-track{position:relative;flex:1;border-top:1px solid rgba(128,128,128,.18)}.prep-card{position:absolute;top:4px;height:88px;border-radius:8px;border:1px solid var(--line, #3a3a3a);padding:4px 6px;font-size:.8rem;overflow:hidden;background:#8080801f;display:flex;flex-direction:column;gap:1px}.prep-card--active{background:#9fd0ff2e}.prep-card--passive{background:#ffc46b2e}.prep-card--unattended{background:#8fd8c024}.prep-card.is-filler{border-style:dashed;background:transparent}.prep-card.is-done{opacity:.45}.prep-card.is-running{outline:2px solid #8fd8c0}.prep-card.is-skipped{opacity:.3;text-decoration:line-through}.prep-card-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;overflow:hidden;font-weight:600;line-height:1.25;overflow-wrap:anywhere}.prep-card-sub{display:block;font-size:.7rem;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prep-card-foot{display:flex;align-items:center;gap:4px;margin-top:auto;min-width:0}.prep-keep{font-size:.62rem;line-height:1.5;padding:0 5px;border-radius:999px;border:1px solid #ffc46b;color:#ffc46b;white-space:nowrap;flex:0 0 auto}.prep-card-actions{display:flex;gap:3px}.prep-card-actions button{min-width:32px;min-height:26px;font-size:.75rem;border-radius:6px;border:1px solid var(--line, #3a3a3a);background:transparent;color:inherit}.prep-card-actions button:disabled{opacity:.35}.prep-phone{padding:8px 0}.prep-next h3{font-size:.85rem;text-transform:uppercase;opacity:.7}.prep-next-card{border:2px solid #8fd8c0;border-radius:12px;padding:14px;margin-bottom:12px}.prep-next-name{font-size:1.35rem;font-weight:700}.prep-next-actions{display:flex;gap:8px;margin-top:10px}.prep-next-actions .btn{min-height:44px;flex:1}.prep-runorder{margin-top:18px}.prep-runorder h3{font-size:.85rem;text-transform:uppercase;opacity:.7}.prep-runorder ol{list-style:none;margin:0;padding:0}.prep-runorder li{display:flex;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid rgba(128,128,128,.14);font-size:.9rem}.prep-runorder li.is-done{opacity:.45}.prep-runorder li.is-running{font-weight:600}.prep-ro-time{min-width:5.5em;font-variant-numeric:tabular-nums;opacity:.8}.prep-ro-name{flex:1}.prep-disclose{background:transparent;border:0;color:inherit;font:inherit;padding:0 6px 0 0;min-height:44px}.prep-steps-edit{padding:4px 0 12px}.prep-step-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 0;border-bottom:1px solid rgba(128,128,128,.14)}.prep-step-row input,.prep-step-row select{min-height:40px;border-radius:8px;border:1px solid var(--line, #3a3a3a);background:transparent;color:inherit;padding:0 8px;font:inherit}.prep-step-row input[type=number]{width:5.5em}.prep-step-row>input:first-child{flex:1 1 14em}.prep-step-row label{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;opacity:.8}.prep-step-row>button{min-width:40px;min-height:40px;border-radius:8px;border:1px solid var(--line, #3a3a3a);background:transparent;color:inherit}.prep-steps-actions{display:flex;gap:8px;align-items:center;padding-top:10px}.rc-ready{padding-top:calc(var(--top-inset) + var(--nav-reserve));display:flex;flex-direction:column;gap:var(--gap)}.rc-rounds{max-width:420px}.rc-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--gap)}.rc-option{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:112px;padding:16px;text-align:left;border:2px solid var(--line)}.rc-option--on{border-color:var(--accent)}.rc-option-head{font-size:22px;font-weight:700;display:flex;gap:8px;align-items:center}.rc-option-body{font-size:18px;color:var(--fg-dim)}.rc-option-why{font-size:15px;color:var(--fg-faint)}.rc-default{font-size:13px;padding:2px 8px}.rc-repeat{min-height:var(--tap);border:2px solid var(--line);text-align:left}.rc-restmode{min-height:var(--tap);align-self:flex-start}.rc-plan{list-style:none;margin:0;padding:0;display:grid;gap:6px}.rc-plan li{display:grid;grid-template-columns:44px 160px 1fr;gap:8px;font-size:18px}.rc-start{min-height:var(--tap-primary);font-size:24px}.rc-run{position:relative;display:flex;flex-direction:column;height:var(--vvh, 100dvh);padding:calc(var(--safe-top) + 16px) var(--gutter) calc(var(--safe-bottom) + 16px);user-select:none;-webkit-user-select:none;background:linear-gradient(180deg,#0f2233,#0a0a0a 70%)}.rc-run--station,.rc-run--move{background:linear-gradient(180deg,#2a1f0c,#0a0a0a 70%)}.rc-run--record{background:var(--bg)}.rc-head{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);font-size:20px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.rc-head>span:first-child{color:var(--accent)}.rc-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}.rc-name{font-size:40px;font-weight:700}.rc-spm{font-size:160px;line-height:1;color:var(--accent)}.rc-spm-unit{font-size:32px;margin-left:8px;color:var(--fg-dim)}.rc-clock{font-size:110px;line-height:1}.rc-run--row .rc-clock{font-size:72px;color:var(--fg-dim)}.rc-cue{font-size:22px;color:var(--fg-dim);max-width:34ch}.rc-skip{margin-top:12px;min-height:var(--tap);min-width:120px}.rc-next{font-size:20px;color:var(--fg-dim);text-align:center;padding:8px 0}.rc-record{flex:1;display:flex;flex-direction:column;gap:var(--gap);overflow-y:auto;padding-top:8px}.rc-record-head{display:flex;justify-content:space-between;align-items:baseline}.rc-record-late{color:var(--accent)}.rc-record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--gap)}.rc-save{min-height:var(--tap-primary);font-size:24px;margin-top:auto}@media(max-width:600px){.rc-spm{font-size:112px}.rc-clock{font-size:80px}.rc-plan li{grid-template-columns:36px 1fr}.rc-plan li>:last-child{grid-column:2}}.rc-figure{max-width:300px;max-height:26vh}.rc-run--row .rc-figure,.rc-run--rest .rc-figure{max-width:220px;max-height:18vh}@media(max-width:600px){.rc-figure{max-height:20vh}}.rc-dnf{display:flex;flex-direction:column;gap:8px}.rc-dnf-btn{min-height:var(--tap);border:2px solid var(--line);font-size:20px}.rc-dnf-btn--on{border-color:var(--accent);color:var(--accent)}.rc-final-round{display:flex;flex-direction:column;gap:8px}.quick-start{display:flex;flex-direction:column;gap:var(--gap);margin-bottom:8px}.quick-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--gap)}.quick-btn{min-height:88px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:12px 16px;text-align:left;border:2px solid var(--line)}.quick-name{font-size:22px;font-weight:700}.quick-sub{font-size:15px;color:var(--fg-dim)}.quick-btn--rec{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.quick-rec-tag{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.quick-rec-reason{margin:0}.status-rec{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-height:var(--tap);padding:12px 16px;margin-bottom:var(--gap);text-align:left;border:2px solid var(--accent)}.status-rec-label{font-size:22px;font-weight:700}.status-rec-why{font-size:15px;color:var(--fg-dim)}
