:root{--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", system-ui, sans-serif;--font-num: ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--bg: #f3f2ee;--surface: #ffffff;--surface-2: #f7f6f2;--raised: #ffffff;--fill: rgba(118, 112, 96, .12);--fill-strong: rgba(118, 112, 96, .2);--line: rgba(60, 54, 40, .13);--ink: #17150f;--ink-2: rgba(23, 21, 15, .64);--ink-3: rgba(23, 21, 15, .4);--past: #5f6670;--accent: #e5520f;--accent-ink: #ffffff;--accent-soft: rgba(229, 82, 15, .11);--accent-text: #c4440a;--up: #11804a;--up-soft: rgba(17, 128, 74, .11);--hold: #2b5fd9;--hold-soft: rgba(43, 95, 217, .1);--down: #c9343a;--down-soft: rgba(201, 52, 58, .1);--easy: #2f9e6a;--moderate: #c99a06;--hard: #e2701a;--extreme: #d23a3f;--bar-blur: rgba(243, 242, 238, .82);--sheet-bg: #f3f2ee;--shadow: 0 1px 2px rgba(30, 25, 10, .05), 0 8px 24px -12px rgba(30, 25, 10, .18);--shadow-lift: 0 12px 40px -10px rgba(30, 25, 10, .35);--r-sm: 10px;--r: 14px;--r-lg: 22px;--gutter: 16px;--tab-h: 54px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--spring: cubic-bezier(.32, .72, 0, 1);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #000000;--surface: #161617;--surface-2: #1f1f21;--raised: #232325;--fill: rgba(130, 128, 140, .2);--fill-strong: rgba(130, 128, 140, .32);--line: rgba(255, 255, 255, .1);--ink: #f6f4ee;--ink-2: rgba(246, 244, 238, .62);--ink-3: rgba(246, 244, 238, .36);--past: #9aa1ab;--accent: #ff6a24;--accent-ink: #160800;--accent-soft: rgba(255, 106, 36, .16);--accent-text: #ff8a50;--up: #45d68f;--up-soft: rgba(69, 214, 143, .14);--hold: #7ea4ff;--hold-soft: rgba(126, 164, 255, .14);--down: #ff6b70;--down-soft: rgba(255, 107, 112, .14);--easy: #45d68f;--moderate: #f2c94c;--hard: #ff9a4a;--extreme: #ff5e63;--bar-blur: rgba(10, 10, 11, .78);--sheet-bg: #0e0e0f;--shadow: none;--shadow-lift: 0 12px 40px -10px rgba(0, 0, 0, .8);color-scheme:dark}}:root[data-theme=dark]{--bg: #000000;--surface: #161617;--surface-2: #1f1f21;--raised: #232325;--fill: rgba(130, 128, 140, .2);--fill-strong: rgba(130, 128, 140, .32);--line: rgba(255, 255, 255, .1);--ink: #f6f4ee;--ink-2: rgba(246, 244, 238, .62);--ink-3: rgba(246, 244, 238, .36);--past: #9aa1ab;--accent: #ff6a24;--accent-ink: #160800;--accent-soft: rgba(255, 106, 36, .16);--accent-text: #ff8a50;--up: #45d68f;--up-soft: rgba(69, 214, 143, .14);--hold: #7ea4ff;--hold-soft: rgba(126, 164, 255, .14);--down: #ff6b70;--down-soft: rgba(255, 107, 112, .14);--easy: #45d68f;--moderate: #f2c94c;--hard: #ff9a4a;--extreme: #ff5e63;--bar-blur: rgba(10, 10, 11, .78);--sheet-bg: #0e0e0f;--shadow: none;--shadow-lift: 0 12px 40px -10px rgba(0, 0, 0, .8);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg)}html.locked,html.locked body{overflow:hidden}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--ink);font:17px/1.35 var(--font);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,input,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}button{background:none;border:0;padding:0;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}button:disabled{cursor:default}:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:6px}h1,h2,h3,p{margin:0}.tabular{font-family:var(--font-num);font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--ink-3)}.small{font-size:14px}.center{text-align:center}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{max-width:640px;margin:0 auto;padding-bottom:calc(var(--tab-h) + var(--safe-bottom) + 96px);animation:page-in .32s var(--spring)}.app.behind{visibility:hidden}@keyframes page-in{0%{transform:translate(14px)}}.launch{min-height:100dvh;display:grid;place-items:center}.launch-mark{width:44px;height:44px;border-radius:13px;background:var(--accent);animation:pulse 1s ease-in-out infinite alternate}@keyframes pulse{to{transform:scale(.85);opacity:.6}}.tabbar{position:fixed;inset:auto 0 0;z-index:40;display:flex;justify-content:center;padding:0 max(8px,env(safe-area-inset-left)) var(--safe-bottom);background:var(--bar-blur);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--line);transition:transform .35s var(--spring)}.tabbar.hidden{transform:translateY(110%)}.tabbar button{flex:1;max-width:120px;height:var(--tab-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink-3);font-size:10.5px;font-weight:600;letter-spacing:.01em}.tabbar button[aria-current=page]{color:var(--accent)}.tabbar button:active svg{transform:scale(.88)}.tabbar svg{transition:transform .15s}.saving{position:fixed;top:calc(var(--safe-top) + 6px);left:50%;z-index:90;transform:translate(-50%,-40px);padding:4px 10px;border-radius:99px;font-size:12px;font-weight:600;color:var(--ink-2);background:var(--raised);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s .25s,transform .2s .25s}.saving.on{opacity:1;transform:translate(-50%)}.toast{position:fixed;left:50%;bottom:calc(var(--tab-h) + var(--safe-bottom) + 18px);z-index:95;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:12px 18px 12px 14px;border-radius:99px;background:var(--ink);color:var(--bg);font-size:15px;font-weight:600;box-shadow:var(--shadow-lift);transform:translate(-50%,30px) scale(.96);opacity:0;pointer-events:none;transition:transform .35s var(--spring),opacity .2s}.toast.on{transform:translate(-50%);opacity:1}.toast svg{color:var(--accent)}.error-banner{position:fixed;top:calc(var(--safe-top) + 8px);left:var(--gutter);right:var(--gutter);z-index:100;max-width:600px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;padding:14px 14px 8px;border-radius:var(--r);background:var(--raised);color:var(--ink);box-shadow:var(--shadow-lift);border:1px solid var(--down);animation:drop .35s var(--spring)}.error-banner>svg{color:var(--down)}.error-banner p{font-size:15px}.error-banner div{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center}@keyframes drop{0%{transform:translateY(-20px);opacity:0}}.navbar{position:fixed;top:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:calc(48px + var(--safe-top));padding:var(--safe-top) 8px 0;border-bottom:.5px solid transparent;transition:background .2s,border-color .2s}.navbar.compact{background:var(--bar-blur);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom-color:var(--line)}.nav-title{font-weight:650;font-size:17px;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}.navbar.compact .nav-title{opacity:1;transform:none}.nav-side{display:flex;align-items:center;min-width:0}.nav-side.end{justify-content:flex-end;gap:2px}.nav-back{display:flex;align-items:center;gap:0;height:44px;padding-right:8px;color:var(--accent-text);font-size:17px;white-space:nowrap;overflow:hidden}.large-title{padding:calc(48px + var(--safe-top)) var(--gutter) 6px}.large-title h1{font:800 34px/1.1 var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere}.subtitle{margin-top:4px;color:var(--ink-2);font-size:15px;font-weight:500}.sentinel{height:1px}.page-accessory{padding:8px var(--gutter) 2px}.page-body{padding:8px 0 0}.section-note{margin:4px var(--gutter) 10px;font-size:14px;color:var(--ink-2)}.list-title{display:flex;align-items:center;gap:8px;margin:26px var(--gutter) 10px;font:750 22px/1.2 var(--font-display);letter-spacing:-.02em}.list-title .count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:99px;background:var(--fill);font-size:14px;font-weight:700}.fine-print{margin:10px var(--gutter);font-size:13px;line-height:1.4;color:var(--ink-3)}.sheet-body .fine-print,.workout-body .fine-print{margin-inline:4px}.big-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:calc(100% - var(--gutter) * 2);min-height:54px;margin:14px var(--gutter);padding:0 18px;border-radius:var(--r);font-size:17px;font-weight:700;transition:transform .12s,opacity .2s,background .2s}.sheet-body .big-btn,.hero .big-btn,.workout-body .big-btn{width:100%;margin-inline:0}.big-btn:active:not(:disabled){transform:scale(.97)}.big-btn.accent{background:var(--accent);color:var(--accent-ink);box-shadow:0 6px 20px -8px var(--accent)}.big-btn.secondary{background:var(--surface);color:var(--accent-text);box-shadow:var(--shadow)}.big-btn.plain{min-height:48px;background:transparent;color:var(--ink-2);font-weight:600}.big-btn.destructive{color:var(--down)}.big-btn.destructive.armed{background:var(--down-soft)}.big-btn:disabled{opacity:.4;box-shadow:none}.text-btn{display:inline-flex;align-items:center;gap:5px;min-height:44px;padding:0 8px;color:var(--accent-text);font-size:16px;font-weight:500}.text-btn.strong{font-weight:700}.text-btn:disabled{color:var(--ink-3)}.text-btn.center-block{display:flex;margin:0 auto}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--ink-2);flex:none}.icon-btn.accent-text{color:var(--accent-text)}.icon-btn.subtle{color:var(--ink-3)}.icon-btn.danger{width:26px;height:26px;margin-left:12px;background:var(--down);color:#fff}.icon-btn:disabled{opacity:.3}.icon-btn:active:not(:disabled){background:var(--fill)}.pill-btn{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border-radius:99px;background:var(--fill);color:var(--ink);font-size:15px;font-weight:650;white-space:nowrap}.pill-btn.accent{background:var(--accent);color:var(--accent-ink)}.pill-btn:active{opacity:.7}.group{margin:0 var(--gutter) 22px}.group-header{margin:0 4px 7px;font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-2)}.group-body{overflow:hidden;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}.group-footer{margin:7px 4px 0;font-size:13px;line-height:1.4;color:var(--ink-3)}.group-footer .text-btn{min-height:32px;padding:0;font-size:13px}.row{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:50px;padding:10px 16px;text-align:left;background:var(--surface)}.row+.row,.row+.entry-row,.entry-row+.row,.entry-row+.entry-row,.muscle+.muscle,.row+.muscle{box-shadow:inset 0 .5px 0 var(--line)}button.row:active:not(:disabled),label.row:active{background:var(--surface-2)}.row.destructive .row-title{color:var(--down)}.row.destructive .row-icon{background:var(--down-soft);color:var(--down)}.row-icon{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:8px;background:var(--fill);color:var(--ink-2)}.row-icon.tone-accent{background:var(--accent-soft);color:var(--accent-text)}.row-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.row-title{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:500}.row-detail{font-size:14px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis}.row-value{flex:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--past);font-size:15px}.chev{flex:none;color:var(--ink-3)}.row.field{justify-content:space-between;min-height:56px}.row.field>.row-title{flex:none}.row.stacked{flex-direction:column;align-items:stretch;gap:10px;padding:14px 16px}.row.add-row{gap:8px;color:var(--accent-text);font-weight:600}.file-row{cursor:pointer}.badge{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;background:var(--accent-soft);color:var(--accent-text);font-size:12px;font-weight:700;letter-spacing:.02em}.text-field{min-width:0;flex:1;height:40px;padding:0;border:0;background:transparent;font-size:17px;outline:none}.text-field.align-end{text-align:right;color:var(--ink-2)}.text-field::placeholder,.notes::placeholder{color:var(--ink-3)}.num-wrap{display:inline-flex;align-items:center;gap:4px}.num-suffix{color:var(--ink-3);font-size:15px}.num-field{border:0;outline:none;min-width:0}.field-input{width:84px;height:38px;border-radius:var(--r-sm);background:var(--fill);text-align:center;font-size:17px;font-weight:600}.field-input:focus{box-shadow:inset 0 0 0 2px var(--accent)}.notes{display:block;width:100%;min-height:44px;margin-top:10px;padding:11px 13px;border:0;border-radius:var(--r-sm);background:var(--fill);font-size:16px;line-height:1.4;resize:none;outline:none}.notes:focus{box-shadow:inset 0 0 0 2px var(--accent)}.stepper{display:inline-flex;align-items:center;flex:none;border-radius:12px;background:var(--fill)}.stepper button{display:grid;place-items:center;width:44px;height:38px;color:var(--ink)}.stepper button:active:not(:disabled){transform:scale(.85)}.stepper button:disabled{color:var(--ink-3)}.stepper output{min-width:34px;text-align:center;font:700 18px var(--font-num);font-variant-numeric:tabular-nums}.segmented{--pad: 2px;position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:var(--pad);border-radius:11px;background:var(--fill);min-width:0}.segmented button{position:relative;z-index:1;min-height:34px;padding:0 6px;border-radius:9px;font-size:14px;font-weight:600;color:var(--ink-2);white-space:nowrap;transition:color .2s}.segmented button[aria-checked=true]{color:var(--ink)}.seg-thumb{position:absolute;top:var(--pad);bottom:var(--pad);left:var(--pad);width:calc((100% - var(--pad) * 2) / var(--n));border-radius:9px;background:var(--raised);box-shadow:0 3px 8px #0000001f,0 0 0 .5px #0000000a;transform:translate(calc(100% * var(--i)));transition:transform .32s var(--spring),background .2s,opacity .2s}.segmented.unset .seg-thumb{opacity:0}.segmented.small button{min-height:30px;font-size:13px;padding:0 10px}.row.field .segmented{flex:0 1 auto}.segmented.tone-easy .seg-thumb{background:var(--easy)}.segmented.tone-moderate .seg-thumb{background:var(--moderate)}.segmented.tone-hard .seg-thumb{background:var(--hard)}.segmented.tone-extreme .seg-thumb{background:var(--extreme)}.segmented[class*=tone-] button[aria-checked=true]{color:#fff}.segmented.tone-moderate button[aria-checked=true]{color:#1d1600}.switch{position:relative;flex:none;width:51px;height:31px;border-radius:99px;background:var(--fill-strong);transition:background .25s}.switch span{position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 3px 8px #0000002e;transition:transform .3s var(--spring)}.switch[aria-checked=true]{background:var(--up)}.switch[aria-checked=true] span{transform:translate(20px)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 13px;border-radius:99px;background:var(--fill);font-size:15px;font-weight:600;color:var(--ink-2);transition:background .15s,color .15s}.chip.on,.chip.muscle.primary{background:var(--ink);color:var(--bg)}.chip.muscle.secondary{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink-2)}.chip small{font-size:11px;opacity:.7}.chip-input{width:64px;height:36px;border-radius:99px;background:var(--fill);text-align:center;font-size:15px;font-weight:600}.chip-input:focus{box-shadow:inset 0 0 0 2px var(--accent)}.check-line{display:flex;align-items:center;gap:10px;min-height:36px;font-size:15px;color:var(--ink-2)}.check-line input{width:20px;height:20px;accent-color:var(--accent)}.search-wrap{padding:4px var(--gutter) 14px}.search-wrap.in-sheet{padding:0 0 14px}.search{display:flex;align-items:center;gap:6px;height:38px;padding:0 8px 0 10px;border-radius:11px;background:var(--fill);color:var(--ink-3)}.search input{flex:1;min-width:0;height:100%;border:0;background:none;outline:none;font-size:17px;color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none}.search input::-webkit-search-cancel-button{display:none}.search button{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--ink-3);color:var(--bg)}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px var(--gutter) 24px;text-align:center}.empty-icon{display:grid;place-items:center;width:60px;height:60px;margin-bottom:4px;border-radius:18px;background:var(--fill);color:var(--ink-2)}.empty h3{font:700 20px var(--font-display)}.empty p{max-width:300px;color:var(--ink-2);font-size:15px}.empty .big-btn{max-width:320px}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border-radius:7px;background:var(--fill);color:var(--ink-2);font-size:13px;font-weight:600;white-space:nowrap}.tag.strong{background:var(--ink);color:var(--bg)}button.tag.target{background:var(--ink);color:var(--bg);font-family:var(--font-num);font-variant-numeric:tabular-nums}button.tag.target:active{opacity:.7}.eyebrow{font-size:12px;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2)}.sheet-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000061;opacity:0;transition:opacity .3s}.sheet-root.shown .sheet-backdrop{opacity:1}.sheet{position:absolute;left:0;right:0;bottom:0;max-width:640px;max-height:calc(100dvh - var(--safe-top) - 12px);margin:0 auto;display:flex;flex-direction:column;border-radius:14px 14px 0 0;background:var(--sheet-bg);box-shadow:0 -10px 40px #0003;transform:translateY(100%);transition:transform .42s var(--spring)}.sheet.full{height:calc(100dvh - var(--safe-top) - 12px)}.sheet-root.shown .sheet{transform:none}.sheet-head{flex:none;touch-action:none;cursor:grab}.grabber{width:36px;height:5px;margin:6px auto 0;border-radius:3px;background:var(--fill-strong)}.sheet-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:46px;padding:0 6px}.sheet-title{font-size:17px;font-weight:650;text-align:center;max-width:56vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-body{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:4px var(--gutter) calc(var(--safe-bottom) + 24px)}.sheet-body .group{margin-inline:0}.sheet-intro{margin:4px 4px 16px;color:var(--ink-2);font-size:15px;line-height:1.4}.sheet-intro strong{color:var(--ink)}.form-grid{display:grid;gap:1px;overflow:hidden;border-radius:var(--r);background:var(--line);box-shadow:var(--shadow)}.field-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:8px 16px;background:var(--surface)}.form-problem{margin:0 4px 14px;padding:10px 12px;border-radius:var(--r-sm);background:var(--down-soft);color:var(--down);font-size:15px;font-weight:600}.action-sheet{position:absolute;left:8px;right:8px;bottom:calc(var(--safe-bottom) + 8px);max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:8px;transform:translateY(120%);transition:transform .4s var(--spring)}.sheet-root.shown .action-sheet{transform:none}.action-group{overflow:hidden;border-radius:var(--r);background:var(--raised)}.action-head{padding:14px 16px 12px;text-align:center;font-size:13px;color:var(--ink-2);box-shadow:inset 0 -.5px 0 var(--line)}.action-head strong{display:block;font-size:14px;color:var(--ink-2)}.action-head p{margin-top:4px}.action-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;font-size:19px;color:var(--accent-text)}.action-btn+.action-btn{box-shadow:inset 0 .5px 0 var(--line)}.action-btn.destructive{color:var(--down)}.action-btn:disabled{color:var(--ink-3)}.action-btn:active:not(:disabled){background:var(--fill)}.action-btn.cancel{font-weight:650}.program-switch{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0 12px;border-radius:99px;background:var(--fill);font-size:14px;font-weight:650;color:var(--ink);max-width:100%}.hero{margin:10px var(--gutter) 18px;padding:18px 18px 16px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow)}.hero-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.hero .program-switch{background:transparent;padding-right:0;color:var(--ink-2);overflow:hidden;white-space:nowrap}.hero-title{margin-top:6px;font:850 40px/1.02 var(--font-display);letter-spacing:-.035em;overflow-wrap:anywhere}.hero-meta{margin-top:6px;font-size:15px;color:var(--ink-2)}.hero.live{background:radial-gradient(120% 100% at 100% 0%,var(--accent-soft),transparent 60%),var(--surface)}.live-dot{display:inline-flex;align-items:center;gap:7px;color:var(--accent-text)}.live-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);animation:blink 1.4s ease-in-out infinite}@keyframes blink{50%{opacity:.3}}.cycle{display:flex;gap:6px;margin:14px -18px 2px;padding:0 18px;overflow-x:auto;scrollbar-width:none}.cycle::-webkit-scrollbar{display:none}.cycle-step{flex:none;position:relative;height:32px;padding:0 12px;border-radius:99px;background:var(--fill);color:var(--ink-2);font-size:14px;font-weight:650;white-space:nowrap;transition:background .2s,color .2s}.cycle-step.next:after{content:"";position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.cycle-step.on{background:var(--ink);color:var(--bg)}.preview{margin:16px 0 4px;padding:0;list-style:none;counter-reset:ex}.preview li{counter-increment:ex}.preview li+li{box-shadow:inset 0 .5px 0 var(--line)}.preview button{display:grid;grid-template-columns:22px 1fr auto;grid-template-areas:"n name rx" "n last last";align-items:baseline;column-gap:8px;width:100%;padding:10px 0;text-align:left}.preview button:before{content:counter(ex);grid-area:n;font:700 13px var(--font-num);color:var(--ink-3)}.preview-name{grid-area:name;font-weight:600}.preview-rx{grid-area:rx;font-size:15px;font-weight:650;color:var(--ink-2)}.preview-last{grid-area:last;font-size:13.5px;color:var(--past)}.week{display:flex;align-items:center;gap:12px;margin:0 var(--gutter) 24px;padding:0 4px;color:var(--ink-2);font-size:15px}.week strong{color:var(--ink)}.week-dots{display:flex;gap:5px}.week-dots span{width:10px;height:10px;border-radius:50%;background:var(--fill-strong)}.week-dots span.on{background:var(--accent)}.mini-workout{position:fixed;left:8px;right:8px;bottom:calc(var(--tab-h) + var(--safe-bottom) + 8px);z-index:35;max-width:624px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:10px 10px 10px 12px;border-radius:18px;background:var(--raised);box-shadow:var(--shadow-lift);border:.5px solid var(--line);text-align:left;animation:drop-up .4s var(--spring)}@keyframes drop-up{0%{transform:translateY(30px);opacity:0}}.mini-ring{flex:none;width:34px;height:34px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--p) * 360deg),var(--fill-strong) 0);-webkit-mask:radial-gradient(circle,transparent 11px,#000 12px);mask:radial-gradient(circle,transparent 11px,#000 12px)}.mini-text{display:flex;flex-direction:column;flex:1;min-width:0}.mini-text strong{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-text span{font:500 13px var(--font-num);font-variant-numeric:tabular-nums;color:var(--ink-2)}.mini-resume{flex:none;padding:9px 14px;border-radius:99px;background:var(--accent);color:var(--accent-ink);font-size:14px;font-weight:700}.workout{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--bg);animation:rise .45s var(--spring)}@keyframes rise{0%{transform:translateY(40px);opacity:0}}.workout-bar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:4px;padding:calc(var(--safe-top) + 4px) 12px 8px 6px;background:var(--bar-blur);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.workout-title{display:flex;flex-direction:column;align-items:center;min-width:0}.workout-title strong{max-width:100%;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workout-title span{font-size:13px;font-weight:600;color:var(--accent-text)}.progress{grid-column:1 / -1;height:3px;margin:6px 6px 0 12px;border-radius:2px;background:var(--fill);overflow:hidden}.progress span{display:block;height:100%;background:var(--accent);transform-origin:left;transition:transform .5s var(--spring)}.workout-body{max-width:640px;margin:0 auto;padding:8px var(--gutter) calc(var(--safe-bottom) + 90px)}.log{margin:0 0 14px;padding:14px 14px 12px;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);transition:box-shadow .3s}.log.all-done{box-shadow:inset 0 0 0 1.5px var(--accent-soft),var(--shadow)}.log-head{display:flex;align-items:flex-start;gap:10px}.log-index{flex:none;display:grid;place-items:center;width:26px;height:26px;margin-top:2px;border-radius:8px;background:var(--fill);font-size:14px;font-weight:700;color:var(--ink-2)}.log.all-done .log-index{background:var(--accent);color:var(--accent-ink)}.log-name{flex:1;min-width:0}.log-title{display:block;max-width:100%;text-align:left;font:750 21px/1.15 var(--font-display);letter-spacing:-.02em;margin-bottom:7px}.log-head .icon-btn{margin:-8px -8px 0 0}.last{display:flex;gap:8px;margin-top:12px;color:var(--past)}.last svg{flex:none;margin-top:2px}.last p{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:1px;font-size:14.5px}.last-label{font-size:11.5px;font-weight:750;text-transform:uppercase;letter-spacing:.07em}.last-value{font-size:15.5px;font-weight:650;color:var(--ink-2)}.last-meta{font-size:13.5px}.last.secondary{margin-top:6px;opacity:.85}.advice{--tone: var(--ink-2);--tone-soft: var(--fill);display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 8px;margin-top:12px;padding:6px 6px 6px 10px;border-radius:14px;background:var(--tone-soft);border:1px dashed color-mix(in srgb,var(--tone) 45%,transparent)}.advice-increase{--tone: var(--up);--tone-soft: var(--up-soft)}.advice-repeat{--tone: var(--hold);--tone-soft: var(--hold-soft)}.advice-decrease{--tone: var(--down);--tone-soft: var(--down-soft)}.advice.quiet{background:transparent;border-color:var(--line)}.advice-main{display:flex;align-items:center;gap:10px;min-height:40px;text-align:left;min-width:0}.advice-icon{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--tone);color:var(--surface)}.advice.quiet .advice-icon{background:var(--fill);color:var(--ink-2)}.advice-text{display:flex;flex-direction:column;min-width:0}.advice-kicker{font-size:11px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--tone)}.advice-text strong{font-size:16px;font-weight:700;color:var(--tone);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.advice.quiet .advice-text strong{color:var(--ink-2);font-weight:600}.advice-why{flex:none;margin-left:auto;font-size:13px;font-weight:600;color:var(--ink-3)}.advice-apply{min-width:56px;height:36px;padding:0 14px;border-radius:10px;background:var(--tone);color:var(--surface);font-size:15px;font-weight:750;display:grid;place-items:center}.advice-apply.applied{background:transparent;color:var(--tone)}.advice-basis{grid-column:1 / -1;padding:0 4px 4px 36px;font-size:13px;color:var(--past)}.advice-reason{grid-column:1 / -1;padding:4px 4px 6px 36px;font-size:14px;line-height:1.4;color:var(--ink-2);animation:fade .25s}@keyframes fade{0%{opacity:0}}.sets{margin:12px -6px 0}.set-row{display:grid;grid-template-columns:30px minmax(64px,1fr) minmax(70px,1.15fr) minmax(56px,.9fr) 50px;align-items:center;gap:6px;min-height:52px;padding:0 6px;border-radius:12px;background:var(--surface);transition:background .25s}.set-row.head{min-height:26px;font-size:11.5px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.set-row.head span:nth-child(3),.set-row.head span:nth-child(4){text-align:center}.set-row.done{background:linear-gradient(var(--accent-soft),var(--accent-soft)),var(--surface)}.set-num{text-align:center;font-size:16px;font-weight:700;color:var(--ink-2)}.prev{display:block;width:100%;padding:8px 0;text-align:left;font-size:14.5px;font-weight:550;color:var(--past);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prev.none{color:var(--ink-3)}.cell-input{width:100%;height:42px;border-radius:10px;background:var(--fill);text-align:center;font-size:19px;font-weight:700;color:var(--ink);caret-color:var(--accent);transition:background .2s,box-shadow .2s}.cell-input:focus{background:var(--surface);box-shadow:inset 0 0 0 2px var(--accent)}.set-row.done .cell-input{background:transparent}.bw{display:block;text-align:center;font:700 15px var(--font-num);color:var(--ink-3)}.check{display:grid;place-items:center;width:44px;height:42px;margin-left:auto;border-radius:12px;background:var(--fill);color:var(--ink-3);transition:background .2s,color .2s,transform .15s}.check:active{transform:scale(.88)}.check.on{background:var(--accent);color:var(--accent-ink);animation:pop .4s var(--spring)}@keyframes pop{40%{transform:scale(1.14)}}.add-set{display:flex;align-items:center;justify-content:center;gap:6px;width:calc(100% - 12px);height:40px;margin:6px 6px 0;border-radius:10px;background:var(--fill);color:var(--ink-2);font-size:15px;font-weight:650}.add-set:active{background:var(--fill-strong)}.swipe{position:relative;overflow:hidden;border-radius:12px}.swipe+.swipe{margin-top:2px}.swipe-delete{position:absolute;top:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--down);color:#fff;font-size:12px;font-weight:700}.swipe-content{position:relative;transition:transform .3s var(--spring);touch-action:pan-y}.swipe-content.dragging{transition:none}.rate{margin-top:14px}.rate-label{display:block;margin:0 2px 7px;font-size:13px;font-weight:600;color:var(--ink-2)}.rate .segmented button{min-height:38px}.log-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.inline-switch{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14.5px;font-weight:550;color:var(--ink-2)}.inline-switch .switch{transform:scale(.85);transform-origin:left center;margin-right:-6px}.inline-switch .switch[aria-checked=true]{background:var(--accent)}.inline-switch span svg{vertical-align:-2px}.log-foot .text-btn{font-size:15px;color:var(--ink-2)}.rest-pill{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 18px);z-index:6;display:flex;align-items:center;gap:8px;padding:8px 8px 8px 16px;border-radius:99px;background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lift);transform:translate(-50%);font-size:15px;font-weight:600;animation:drop-up .35s var(--spring)}.rest-pill strong{min-width:42px;font-size:17px}.rest-pill button{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--bg) 18%,transparent)}.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.summary-stats div{display:flex;flex-direction:column;gap:2px;padding:14px 12px;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}.summary-stats strong{font-size:28px;font-weight:800;letter-spacing:-.02em}.summary-stats strong small{font-size:16px;color:var(--ink-3)}.summary-stats span{font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2)}.note-line{display:flex;gap:10px;margin:0 4px 10px;font-size:14px;line-height:1.4;color:var(--ink-2)}.note-line svg{flex:none;margin-top:1px}.templates{display:grid;gap:10px}.template{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;padding:16px;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow);text-align:left}.template strong{font-size:18px}.template span{grid-column:1;font-size:14px;color:var(--ink-2)}.template .chev{grid-row:1 / 3;grid-column:2}.template:active{transform:scale(.98)}.day-group .group-header{text-transform:none;letter-spacing:-.01em;margin-inline:0}.day-header{display:flex;align-items:center;gap:8px}.day-index{flex:none;height:22px;padding:0 8px;border-radius:6px;background:var(--fill);font-size:11.5px;font-weight:750;line-height:22px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.day-index.next{background:var(--accent);color:var(--accent-ink)}.day-name{flex:1;font:750 21px var(--font-display);letter-spacing:-.02em;color:var(--ink);border-radius:6px}.day-name:focus{background:var(--fill);padding:0 6px}.day-header .icon-btn{margin-right:-10px}.entry-row{display:flex;align-items:center;background:var(--surface)}.entry-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;padding:11px 8px 11px 16px;text-align:left}.entry-main:active:not(:disabled){background:var(--surface-2)}.entry-row .chev{margin-right:16px}.entry-name{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:550}.entry-detail{font-size:14px;color:var(--ink-2)}.entry-detail b{color:var(--ink);font-weight:700}.entry-shared{display:flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;color:var(--accent-text)}.entry-list+.row{box-shadow:inset 0 .5px 0 var(--line)}.entry-list .entry-row{position:relative;transition:transform .22s var(--spring),box-shadow .2s}.entry-list.settling .entry-row{transition:none}.entry-row.lifted{z-index:3;transition:box-shadow .2s;border-radius:12px;box-shadow:0 0 0 .5px var(--line),var(--shadow-lift);scale:1.02}.entry-list.dragging{-webkit-user-select:none;user-select:none}.entry-list.dragging .entry-row:not(.lifted){box-shadow:none}.drag-handle{flex:none;display:grid;place-items:center;align-self:stretch;width:52px;color:var(--ink-3);touch-action:none;cursor:grab}.drag-handle:active,.entry-row.lifted .drag-handle{color:var(--accent);cursor:grabbing}.entry-pos{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:6px;background:var(--fill);font-size:12px;font-weight:750;color:var(--ink-2)}.entry-editor .group{margin-bottom:20px}.entry-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:2px 4px 18px}.entry-hero h2{font:800 26px/1.1 var(--font-display);letter-spacing:-.03em}.entry-hero p{margin-top:4px;font-size:14px;color:var(--ink-2)}.method-hint{font-size:14px;line-height:1.4;color:var(--ink-2)}.pick{gap:12px}.pick-mark{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--ink-3);color:var(--accent-ink);transition:background .15s}.pick-mark.on{background:var(--accent);box-shadow:none;animation:pop .3s var(--spring)}.select-all{margin:-8px 0 6px;padding:0 4px}.used{color:var(--accent-text);font-weight:600}.xd-head{margin:0 4px 16px}.xd-head h2{margin:4px 0 10px;font:850 32px/1.05 var(--font-display);letter-spacing:-.035em}.stat-row{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px}.stat-row div{display:flex;flex-direction:column;gap:2px;min-width:0;padding:12px;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}.stat-row span{font-size:11.5px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.stat-row strong{font-size:18px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-row strong.last-performance{font-size:16px;line-height:1.35;overflow-wrap:anywhere}.stat-row strong small{font-size:13px;color:var(--ink-3)}.stat-row div>small{font-size:12.5px;color:var(--past)}.chart-card{margin-top:12px;padding:12px;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}.chart{margin:10px 0 0;color:var(--accent)}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart-grid{stroke:var(--line)}.chart-dot{fill:var(--surface);stroke:currentColor;stroke-width:2}.chart-dot.end{fill:currentColor}.chart-label{font:700 13px var(--font-num);fill:var(--ink)}.chart-axis{font:500 11px var(--font);fill:var(--ink-3)}.sheet-body .list-title{margin-inline:4px}.timeline{margin:0;padding:0;list-style:none}.timeline li{padding:12px 14px;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}.timeline li+li{margin-top:8px}.tl-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.tl-head strong{font-size:15.5px}.tl-head span{font-size:13.5px;color:var(--past)}.delta{margin-left:auto;padding:1px 7px;border-radius:6px;font:700 13px var(--font-num)}.delta.up{background:var(--up-soft);color:var(--up)!important}.delta.down{background:var(--down-soft);color:var(--down)!important}.tl-sets{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.tl-set{padding:4px 8px;border-radius:7px;background:var(--fill);font-size:14.5px;font-weight:650}.tl-set small{margin-left:1px;font-size:11px;color:var(--ink-3)}.tl-set.skipped{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-3);text-decoration:line-through}.tl-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:13px;color:var(--ink-2)}.tl-meta svg{vertical-align:-1px}.diff-dot{display:inline-flex;align-items:center;gap:5px;font-weight:650}.diff-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.diff-dot.tone-easy{color:var(--easy)}.diff-dot.tone-moderate{color:var(--moderate)}.diff-dot.tone-hard{color:var(--hard)}.diff-dot.tone-extreme{color:var(--extreme)}.tl-note{margin-top:8px;padding-left:10px;border-left:2px solid var(--line);font-size:14px;line-height:1.4;color:var(--ink-2)}.xd-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 4px 0}.xd-actions .destructive{color:var(--down)}.session-row{gap:14px}.date-badge{flex:none;display:flex;flex-direction:column;align-items:center;width:42px;padding:4px 0;border-radius:10px;background:var(--fill)}.date-badge small{font-size:10.5px;font-weight:750;text-transform:uppercase;color:var(--accent-text)}.date-badge strong{font:750 19px/1.1 var(--font-num)}.session-row .row-detail{white-space:nowrap}.sd-ex{padding:12px 14px 14px;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}.sd-ex+.sd-ex{margin-top:8px}.sd-ex.skipped{opacity:.6}.sd-title{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left}.sd-title strong{font-size:17px}.sd-title span{flex:1;font-size:13.5px;color:var(--past)}.sd-ex .muted{margin-top:4px}.pattern-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:0 var(--gutter)}.pattern-tile{position:relative;display:flex;flex-direction:column;padding:12px 12px 11px;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}.pattern-tile strong{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.1}.pattern-tile>span:not(.pattern-status){margin-top:2px;font-size:15px;font-weight:650}.pattern-tile small{font-size:12.5px;color:var(--ink-3)}.pattern-status{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--up-soft);color:var(--up)}.pattern-tile.missing{background:var(--down-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--down) 30%,transparent)}.pattern-tile.missing .pattern-status{background:var(--down);color:#fff}.pattern-tile.missing small{color:var(--down);font-weight:650}.pattern-tile.skipped{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}.pattern-tile.skipped .pattern-status{background:var(--fill);color:var(--ink-3)}.pattern-tile.extra .pattern-status{background:var(--fill);color:var(--ink-2)}.advisories{display:grid;gap:8px;margin:0 var(--gutter)}.advisory{display:flex;gap:12px;padding:14px;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}.advisory-icon{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:color-mix(in srgb,var(--hard) 16%,transparent);color:var(--hard)}.advisory h3{font-size:16.5px;font-weight:700}.advisory p{margin:4px 0 10px;font-size:14px;line-height:1.4;color:var(--ink-2)}.all-clear{display:flex;align-items:center;gap:8px;margin:0 var(--gutter);padding:14px;border-radius:var(--r);background:var(--up-soft);color:var(--up);font-weight:650}.legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:-2px var(--gutter) 10px;font-size:12.5px;color:var(--ink-2)}.legend span{display:inline-flex;align-items:center;gap:5px}.sw{display:inline-block;width:12px;height:8px;border-radius:2px}.sw.direct{background:var(--accent)}.sw.indirect{background:repeating-linear-gradient(135deg,var(--accent) 0 2px,transparent 2px 4px);box-shadow:inset 0 0 0 1px var(--accent)}.sw.goal{width:2px;height:12px;background:var(--ink)}.muscle{background:var(--surface)}.muscle-row{display:grid;grid-template-columns:112px 1fr 58px;align-items:center;gap:10px;width:100%;min-height:54px;padding:8px 14px 8px 16px;text-align:left}.muscle-name{display:flex;flex-direction:column;font-size:15.5px;font-weight:600;line-height:1.2}.goal-tag{font-size:11.5px;font-weight:650;color:var(--ink-3)}.goal-tag.goal-hypertrophy{color:var(--accent-text)}.goal-tag.goal-strength{color:var(--hold)}.bar{position:relative;display:flex;height:10px;border-radius:5px;background:var(--fill)}.bar-direct{height:100%;border-radius:5px 0 0 5px;background:var(--accent);transition:width .5s var(--spring)}.bar-indirect{height:100%;background:repeating-linear-gradient(135deg,var(--accent) 0 2px,transparent 2px 4px);opacity:.8;transition:width .5s var(--spring)}.bar-goal{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:1px;background:var(--ink)}.muscle-num{display:flex;flex-direction:column;align-items:flex-end;font-size:17px;font-weight:750;line-height:1.15}.muscle-num small{font-size:11.5px;font-weight:600;color:var(--ink-3)}.muscle-num.short{color:var(--down)}.muscle-more{padding:0 16px 14px;animation:fade .25s}.muscle-more p{margin-bottom:10px;font-size:14px;color:var(--ink-2)}.muscle-more .fine-print{margin:8px 0 0}.backup-status{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--up-soft);color:var(--up)}.backup-status.stale{background:color-mix(in srgb,var(--hard) 14%,var(--surface));color:var(--hard)}.backup-status div{display:flex;flex-direction:column}.backup-status strong{font-size:16px}.backup-status span{font-size:13.5px;color:var(--ink-2)}.backup-status+.row{box-shadow:none}.steps{margin:0;padding:6px 0;list-style:none}.steps li{display:flex;gap:12px;padding:10px 16px;font-size:15px;line-height:1.4;color:var(--ink-2)}.steps li svg{flex:none;margin-top:1px;color:var(--accent-text)}.steps strong{color:var(--ink)}@media(min-width:700px){.navbar{padding-inline:calc(50vw - 320px)}}
