:root{--cream: #fcfbf7;--cream-2: #f5f2eb;--paper: #ffffff;--mist: #edf2f8;--sand-panel: #f3ece4;--ink: #0c0c0c;--ink-muted: #5c5c56;--sun: #f9e79f;--sun-hover: #f3dc7a;--blue: #6ba3d6;--blue-soft: rgba(107, 163, 214, .18);--blue-mute: #8eb4d4;--border-ink: #647888;--shadow-soft: 0 2px 16px rgba(55, 78, 102, .06);--shadow-float: 0 10px 32px rgba(55, 78, 102, .09);--shadow-lift: 0 5px 22px rgba(55, 78, 102, .07);--bg-deep: var(--cream);--bg-panel: var(--paper);--bg-elevated: var(--cream-2);--border: none;--text: var(--ink);--text-muted: var(--ink-muted);--accent: var(--blue);--accent-soft: var(--blue-soft);--sun-accent: var(--sun);--warn-bg: #fff6d6;--warn-text: var(--ink);--radius: 20px;--radius-sm: 14px;--font-sans: "Nunito", system-ui, sans-serif;--font-display: "Quicksand", var(--font-sans);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--page-gutter: clamp(.85rem, 4vw, 1.25rem);--inset-inline-end: calc(var(--safe-right) + var(--page-gutter));--inset-inline-start: calc(var(--safe-left) + var(--page-gutter));--touch-min: 48px;--topbar-h: calc(4.75rem + var(--safe-top));--app-back-row-h: 3.85rem;--sidebar-top: var(--topbar-h);--bp-sm: 36rem;--bp-md: 55rem;--radius-pill: 999px;--draw-wobble: .3px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{margin:0;min-height:100%;min-height:100dvh;background:var(--cream);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}body{padding-bottom:var(--safe-bottom)}#app{min-height:100dvh;display:flex;flex-direction:column}#app:not(.app--home){--sidebar-top: calc(var(--topbar-h) + var(--app-back-row-h))}#app.app--home.app--browse-drawer{--sidebar-top: calc(var(--topbar-h) + var(--app-back-row-h))}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:.65rem;min-height:var(--topbar-h);padding:calc(.55rem + var(--safe-top)) var(--inset-inline-end) .55rem var(--inset-inline-start);background:var(--paper);box-shadow:0 4px 20px #374e660f;position:sticky;top:0;z-index:20}.topbar-leading{display:flex;align-items:center;justify-self:start;min-width:0}.topbar-home-logo{display:flex;align-items:center;justify-content:center;margin:0;padding:0;border:none;background:transparent;cursor:pointer;border-radius:var(--radius-sm);-webkit-tap-highlight-color:transparent}.topbar-home-logo:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.brand-mark{width:3.5rem;height:3.5rem;flex-shrink:0;display:block;border-radius:0;object-fit:contain;background:transparent;border:none;box-shadow:none}.profile-gate-logo{display:block;width:8rem;height:8rem;margin:0 auto .35rem;border-radius:0;object-fit:contain;background:transparent;box-shadow:none}.brand-title{font-family:var(--font-display);font-size:1.05rem;font-weight:700;margin:0;letter-spacing:.12em;text-transform:uppercase;line-height:1.15;color:var(--ink);justify-self:center;text-align:center;min-width:0}.topbar-home-title-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:.2rem .35rem;margin:0;cursor:pointer;font:inherit;font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.15;color:var(--ink);justify-self:center;text-align:center;min-width:0;border-radius:var(--radius-sm);-webkit-tap-highlight-color:transparent}.topbar-home-title-btn:hover{color:var(--ink-muted)}.topbar-home-title-btn:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.topbar-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:nowrap;flex-shrink:0;width:auto;justify-self:end;justify-content:flex-end}.app-back-row{display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;min-height:var(--app-back-row-h);padding:.4rem var(--inset-inline-end) .5rem var(--inset-inline-start);background:var(--cream);border-bottom:1px solid rgba(55,78,102,.06);position:sticky;top:var(--topbar-h);z-index:19;flex-shrink:0}.nav-back-btn{font-size:1.05rem;font-weight:800;padding:.78rem 1.35rem;min-height:3rem;min-width:fit-content;border-radius:var(--radius-sm)}#app.app--home .app-back-row{display:none!important}#app.app--home.app--browse-drawer .app-back-row{display:flex!important}.profile-bar{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0}.profile-avatar{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;font-size:.72rem;font-weight:800;letter-spacing:.02em;color:var(--ink);background:var(--blue-soft);border:none;box-shadow:none;-webkit-user-select:none;user-select:none;flex-shrink:0}.profile-avatar-dropdown{position:relative;flex-shrink:0}.profile-avatar-dropdown>summary{list-style:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.profile-avatar-dropdown>summary::-webkit-details-marker{display:none}.profile-avatar--summary{outline-offset:2px}.profile-avatar-panel{position:absolute;right:0;top:calc(100% + 6px);min-width:11rem;padding:.35rem;background:var(--paper);border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-float);z-index:30}.profile-avatar-option{display:block;width:100%;text-align:left;font:inherit;font-size:.88rem;font-weight:600;padding:.5rem .6rem;border:none;border-radius:10px;background:transparent;color:var(--ink);cursor:pointer}.profile-avatar-option:hover{background:var(--cream-2)}.profile-avatar-meta{padding:.35rem .55rem .45rem;font-size:.85rem;font-weight:700;color:var(--text-muted)}.profile-avatar-submenu-label{padding:.25rem .55rem;font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.profile-avatar-option--logout{margin-top:.25rem;padding-top:.55rem;border-top:1px solid rgba(55,78,102,.08);color:var(--text-muted)}.profile-avatar-option--logout:hover{color:var(--ink)}.layout{flex:1;display:block;width:100%;max-width:100%;margin:0;position:relative}.sidebar{position:fixed;inset:var(--sidebar-top) 0 0 0;z-index:15;max-height:none;background:var(--mist);border-right:none;box-shadow:6px 0 28px #374e661a;border:none;border-radius:0 var(--radius) 0 0;padding:.85rem var(--inset-inline-end) calc(1rem + var(--safe-bottom)) var(--inset-inline-start);overflow-y:auto;overflow-anchor:none;-webkit-overflow-scrolling:touch}.sidebar[hidden]{display:none!important}.sidebar:not([hidden])~.main,.layout:has(.sidebar:not([hidden])) .main{opacity:.25;pointer-events:none;filter:grayscale(.06)}.main{padding:1.15rem var(--inset-inline-end) calc(2.25rem + var(--safe-bottom)) var(--inset-inline-start);min-width:0;width:100%;max-width:42rem;margin:0 auto}.empty-state{color:var(--text-muted);padding:1.5rem 0;font-size:.95rem}.btn{font:inherit;font-size:.95rem;font-weight:700;border-radius:var(--radius-sm);padding:.65rem 1.1rem;min-height:var(--touch-min);cursor:pointer;border:none;box-shadow:0 2px 8px #374e660f;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;-webkit-tap-highlight-color:transparent;transition:background .15s ease,transform .1s ease,box-shadow .15s ease}.btn:active{transform:scale(.99)}.btn-primary{background:var(--sun);color:var(--ink);box-shadow:0 3px 10px #c8a53c2e}.btn-primary:hover{background:var(--sun-hover)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{background:var(--paper);color:var(--ink);box-shadow:0 2px 8px #374e660d}.btn-ghost:hover{background:var(--cream-2)}.btn:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.btn-tiny{font-size:.8rem;padding:.4rem .65rem;min-height:40px}.workout-header{margin-bottom:.5rem}.workout-header h2{font-family:var(--font-display);font-size:1.35rem;font-weight:700;margin:0 0 .35rem;letter-spacing:.06em;text-transform:uppercase;line-height:1.2;color:var(--ink)}.workout-continue-banner{margin:1rem 0 0;padding:1rem 1.1rem;border-radius:var(--radius-sm);background:linear-gradient(145deg,#6ba3d633,#f9e79f59);border:none;box-shadow:var(--shadow-soft)}.workout-continue-kicker{margin:0 0 .35rem;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}.workout-continue-lead{margin:0 0 .65rem;font-size:.95rem;line-height:1.45;color:var(--ink)}.workout-continue-session{margin:0 0 .85rem;font-size:.88rem;color:var(--text-muted)}.workout-continue-session-label{font-weight:700;margin-right:.35rem}.workout-continue-session-digits{font-variant-numeric:tabular-nums;font-weight:800;font-size:1.1rem;color:var(--blue)}.workout-continue-cta{width:100%}.home-paused-session{margin:0 0 1.25rem;padding:1.1rem 1rem;border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow-lift);border:none}.home-paused-kicker{margin:0 0 .35rem;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}.home-paused-title{font-family:var(--font-display);margin:0 0 .4rem;font-size:1.15rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.home-paused-lead{margin:0 0 .55rem;font-size:.92rem;line-height:1.45;color:var(--text-muted)}.home-paused-session-time{margin:0 0 .85rem;font-size:.88rem;color:var(--text-muted)}.home-paused-session-digits{font-variant-numeric:tabular-nums;font-weight:800;font-size:1.05rem;color:var(--blue);margin-left:.25rem}.home-paused-session .btn{width:100%}.workout-meta{display:flex;flex-wrap:wrap;gap:.4rem .75rem;color:var(--text-muted);font-size:.88rem}.workout-meta span{display:inline-flex;align-items:center;gap:.35rem}.badge{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;padding:.28rem .55rem;border-radius:var(--radius-pill);background:var(--cream-2);color:var(--ink-muted);border:none;box-shadow:0 1px 3px #374e660d}.badge-video{background:var(--blue-soft);border:none;color:var(--ink)}.badge-done{background:var(--sun);border:none;color:var(--ink)}.workout-actions{margin-top:.55rem;display:flex;flex-direction:column;gap:.45rem}.workout-actions .btn{width:100%}.notice{padding:.85rem 1rem;border-radius:var(--radius-sm);background:var(--warn-bg);border:none;box-shadow:var(--shadow-soft);color:var(--warn-text);font-size:.88rem;margin-bottom:1rem}.notice-dismiss{float:right;font:inherit;font-size:.8rem;min-height:44px;padding:0 .5rem;background:transparent;border:none;color:inherit;cursor:pointer;opacity:.9}.section-card{background:var(--paper);border:none;border-radius:var(--radius-sm);margin-bottom:.5rem;overflow:hidden;box-shadow:var(--shadow-soft)}.section-head{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.45rem .55rem .5rem;background:var(--sand-panel)}.section-head h3{margin:0;font-family:var(--font-display);font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.25;color:var(--ink)}.section-meta{font-size:.72rem;color:var(--text-muted)}.section-instruction{padding:0 .55rem;margin:.3rem 0 0;font-size:.78rem;line-height:1.35;color:var(--text-muted)}.section-num{color:var(--accent);font-weight:700;margin-right:.25rem}.home{padding-bottom:.75rem}.home-streak{margin:0 0 1.15rem}.home-streak-bar{display:block;width:100%;margin:0;padding:.3rem .1rem .35rem;border:none;border-radius:0;background:transparent;cursor:pointer;text-align:left;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}.home-streak-bar:focus{outline:none}.home-streak-bar:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.home-streak-scroll{display:flex;flex-direction:row;flex-wrap:nowrap;gap:.15rem;overflow-x:auto;overflow-y:hidden;padding:.35rem .2rem .45rem;margin:0 -.15rem;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;-ms-overflow-style:none}.home-streak-scroll::-webkit-scrollbar{display:none}.home-streak-cell{flex:0 0 auto;width:clamp(2.35rem,calc((100vw - 4.5rem) / 14),3.15rem);min-width:clamp(2.35rem,calc((100vw - 4.5rem) / 14),3.15rem);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.12rem;padding:.2rem .05rem .35rem;border-radius:12px;border:none;background:var(--cream);cursor:pointer;-webkit-tap-highlight-color:transparent}.home-streak-cell:focus{outline:none}.home-streak-cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.home-streak-wd{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.home-streak-dom{font-family:var(--font-display);font-size:.95rem;font-weight:800;line-height:1;color:var(--ink)}.home-streak-dot{display:block;width:9px;height:9px;border-radius:50%;margin-top:.1rem;background:#0c0c0c38}.home-streak-dot--sm{width:7px;height:7px;margin-top:.15rem}.home-streak-fire{display:block;font-size:1rem;line-height:1;margin-top:.02rem}.home-streak-fire--sm{font-size:.82rem}.home-streak-calendar{margin-top:.65rem;padding:.5rem 0 .65rem;border:none;border-radius:0;background:transparent}.home--streak-open .home-streak-bar{display:none}.home--streak-open .home-streak-calendar{margin-top:0}.home-streak-cal-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.55rem;border:none}.home-streak-cal-title{margin:0;font-family:var(--font-display);font-size:1rem;font-weight:800;letter-spacing:.04em;text-align:center;flex:1}.home-streak-cal-prev,.home-streak-cal-next{min-width:var(--touch-min);font-size:1.35rem;line-height:1;padding:.2rem .5rem;border:none!important;background:transparent!important;box-shadow:none!important;color:var(--ink);font-weight:800}.home-streak-cal-prev:hover:not(:disabled),.home-streak-cal-next:hover:not(:disabled){background:#0c0c0c0f!important}.home-streak-cal-prev:disabled,.home-streak-cal-next:disabled{opacity:.35;cursor:not-allowed}.home-streak-cal-prev:focus-visible,.home-streak-cal-next:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.home-streak-cal-body{font-size:.8rem}.home-streak-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.35rem}.home-streak-cal-dow{text-align:center;font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.home-streak-cal-cells{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem .25rem}.home-streak-cal-cell{min-height:2.85rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:.35rem .15rem .4rem;border-radius:0;border:none;background:transparent}.home-streak-cal-cell--pad{border:none;background:transparent;min-height:0;padding:0}.home-streak-cal-dom{font-family:var(--font-display);font-weight:800;font-size:.88rem;color:var(--ink);line-height:1.1}.home-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;margin-bottom:1.5rem;padding:.35rem 0 1.25rem}.home-hero-visual{position:relative;width:11.5rem;height:11.5rem;flex-shrink:0;padding:6px;border-radius:50%;border:none;box-shadow:none;background:transparent}.home-ring{width:100%;height:100%;filter:none}.home-ring-track{fill:none;stroke:#0c0c0c1f;stroke-width:9}.home-ring-fill{fill:none;stroke-width:9;stroke-linecap:round}.home-hero-center{position:absolute;top:6px;right:6px;bottom:6px;left:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.home-hero-pct{font-family:var(--font-display);font-size:1.85rem;font-weight:800;color:var(--ink);letter-spacing:.02em;line-height:1}.home-hero-sub{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-top:.4rem}.home-next{position:relative;background:var(--paper);border:none;border-radius:var(--radius);padding:1.3rem clamp(1rem,4vw,1.35rem) 1.4rem;margin-bottom:1.35rem;overflow:visible;box-shadow:var(--shadow-lift)}.home-next-glow{display:none}.home-next-kicker{position:relative;margin:0 0 .4rem;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.16em;color:var(--blue)}.home-next-title{position:relative;font-family:var(--font-display);font-size:1.35rem;font-weight:700;margin:0 0 .4rem;line-height:1.2;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}.home-next-loc{position:relative;margin:0 0 .75rem;font-size:.86rem;color:var(--text-muted);font-weight:600}.home-next-stats{position:relative;margin:0 0 .9rem;font-size:.9rem;color:var(--text-muted)}.workout-header .home-next-stats,.workout-header .home-details{margin-bottom:.45rem}.workout-header .home-details-sum{padding:.52rem .65rem;font-size:.74rem}.workout-header .home-details-body{padding:.45rem .5rem .55rem}.home-stat-strong{color:var(--blue);font-weight:800;font-size:1.05rem}.home-next-plain-lead{position:relative;margin:0 0 1rem;font-size:.9rem;color:var(--text-muted)}.home-details{position:relative;margin-bottom:1rem;border:none;border-radius:var(--radius-sm);background:var(--paper);box-shadow:var(--shadow-soft);overflow:hidden}.home-details-sum{font:inherit;font-weight:800;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;padding:.8rem 1rem .95rem;cursor:pointer;list-style:none;color:var(--ink);background:var(--sand-panel)}.home-details-sum::-webkit-details-marker{display:none}.home-details:not([open])>.home-details-sum{border-radius:var(--radius-sm)}.home-details[open]>.home-details-sum{border-radius:var(--radius-sm) var(--radius-sm) 0 0}.home-details-body{padding:.65rem .65rem .9rem;max-height:min(50dvh,22rem);overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--mist)}.home-sec-preview{margin-bottom:.85rem}.home-sec-preview:last-child{margin-bottom:0}.home-sec-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;margin-bottom:.45rem;font-size:.86rem}.home-sec-num{display:inline-flex;align-items:center;justify-content:center;min-width:1.55rem;height:1.55rem;border-radius:10px;background:var(--sun);border:none;box-shadow:0 2px 6px #c8a53c33;color:var(--ink);font-size:.72rem;font-weight:800}.home-sec-meta{font-size:.74rem;color:var(--text-muted);width:100%}.home-sec-rows{display:flex;flex-direction:column;gap:.35rem}.home-move-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.55rem;padding:.5rem .45rem;border-radius:var(--radius-sm);border:none;background:var(--paper);box-shadow:0 1px 6px #374e660f;-webkit-tap-highlight-color:transparent}.home-move-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem;line-height:1.35}.home-move-row--excluded .home-move-body{opacity:.58}.home-move-name{font-size:.86rem;font-weight:700;color:var(--ink)}.home-move-detail{font-size:.74rem;color:var(--text-muted)}.home-move-toggle{flex-shrink:0;width:2.35rem;height:2.35rem;margin-top:.05rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:10px;background:var(--cream);box-shadow:none;font:inherit;font-size:1.15rem;font-weight:800;line-height:1;color:var(--ink);cursor:pointer}.home-move-toggle:hover{background:var(--cream-2)}.home-move-toggle:focus{outline:none}.home-move-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.home-next-actions{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:.35rem}.home-next-actions .btn{width:100%}.home-next-actions #homeResetSkips,.home-next-actions #overviewResetSkips{align-self:center;width:auto;max-width:100%;min-height:0;padding:.22rem .5rem;font-size:.68rem;font-weight:600;line-height:1.25;box-shadow:none;margin-top:.1rem}.home-footer-actions{display:flex;flex-direction:column;align-items:center;gap:.4rem;margin-top:.35rem}.home-restart-program{font-size:.78rem;font-weight:500;opacity:.85}.home-restart-program:hover{opacity:1}.home-celebrate{text-align:center;padding:1.6rem 1.1rem;border:none;border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow-lift);margin-bottom:1.25rem}.home-celebrate-title{font-family:var(--font-display);font-size:1.25rem;font-weight:800;margin:0 0 .5rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}.home-celebrate-sub{margin:0;color:var(--text-muted);font-size:.92rem;line-height:1.55}.exercise-grid{display:grid;gap:0}.exercise-row{display:grid;grid-template-columns:3.25rem minmax(0,1fr);gap:.45rem .55rem;padding:.35rem .45rem;align-items:start;border-bottom:1px solid rgba(55,78,102,.08)}.exercise-row:last-child{border-bottom:none}.ex-thumb{display:block;box-sizing:border-box;width:3.25rem;height:3.25rem;margin:0;object-fit:cover;object-position:center;border-radius:6px;background:var(--cream-2);border:none;box-shadow:0 1px 4px #374e6612;filter:grayscale(40%) contrast(1.02)}div.ex-thumb{width:3.25rem;height:3.25rem;min-height:3.25rem;margin:0;flex-shrink:0}.ex-body{min-width:0;padding:.05rem 0 0}.ex-name{font-weight:600;margin:0 0 .12rem;font-size:.86rem;line-height:1.25}.ex-detail{font-size:.76rem;line-height:1.3;color:var(--text-muted)}.ex-body .muscle-tags{margin-top:.22rem;gap:.22rem}.ex-body .muscle-tag{font-size:.62rem;padding:.12rem .38rem}.muscle-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.muscle-tag{font-size:.7rem;font-weight:700;padding:.2rem .5rem;border-radius:var(--radius-pill);border:none;box-shadow:0 1px 3px #374e660f;line-height:1.25}.muscle-tag-primary{background:var(--blue-soft);color:var(--ink);font-weight:700}.muscle-tag-secondary{background:var(--cream);color:var(--text-muted);font-weight:600}.muscle-tags--rollup{margin-top:.35rem}.muscle-tag--rollup{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .55rem}.muscle-tag-text{font-weight:700}.muscle-tag-pct{font-weight:800;font-variant-numeric:tabular-nums;color:var(--blue);font-size:.72rem;letter-spacing:.02em}.workout-muscle-rollout{margin:1rem 0 0;padding:.85rem 1rem;border-radius:var(--radius-sm);border:none;background:var(--sand-panel);box-shadow:var(--shadow-soft)}.workout-header .workout-muscle-rollout{margin:.45rem 0 0;padding:.5rem .55rem}.workout-header .workout-rollout-inner{gap:.45rem .65rem}.workout-rollout-inner{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.workout-rollout-pie{flex-shrink:0;display:block;filter:drop-shadow(0 1px 2px rgba(55,78,102,.12))}.workout-rollout-inner .muscle-tags--rollup{flex:1 1 12rem;min-width:0;margin-top:0}.rollout-swatch{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px #0c0c0c1f}.profile-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:calc(1rem + var(--safe-top)) var(--inset-inline-end) calc(1rem + var(--safe-bottom)) var(--inset-inline-start);background:#fcfbf7eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.profile-gate[hidden]{display:none!important}.profile-gate-card{width:100%;max-width:22rem;background:var(--paper);border:none;border-radius:var(--radius);padding:1.35rem 1.15rem;box-shadow:var(--shadow-float)}.profile-gate-brand{font-family:var(--font-display);margin:0 0 .85rem;text-align:center;font-size:clamp(1.2rem,4.8vw,1.45rem);font-weight:800;letter-spacing:.06em;color:var(--ink)}.profile-gate-panel{margin:0}.profile-gate-panel[hidden]{display:none!important}.profile-login-form{margin-bottom:.05rem}.profile-gate-auth-switch{margin:.75rem 0 0;padding:0 .15rem;font-size:.84rem;line-height:1.45;color:var(--text-muted);text-align:center}.profile-gate-auth-switch--tight{margin-top:.35rem}.profile-gate-text-btn{display:inline;margin:0;padding:0;border:none;background:none;font:inherit;font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:.12em;cursor:pointer;-webkit-tap-highlight-color:transparent}.profile-gate-text-btn:hover{color:var(--ink-muted)}.profile-gate-text-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:2px}.profile-gate-panel--signup .profile-gate-new-label{margin:0 0 .15rem}.profile-gate-new-label{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);text-align:center}.profile-gate-new-label[hidden]{display:none!important}.profile-gate-error{margin:0;font-size:.82rem;line-height:1.38;color:#9b2f24;font-weight:600;text-align:center}.profile-gate-error:not([hidden]){padding:.15rem 0 0}.profile-gate-legacy-label{margin:.85rem 0 .4rem;font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);text-align:center}.profile-gate-title{font-family:var(--font-display);margin:0 0 .85rem;text-align:center;font-size:1rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}.profile-gate--has-resume .profile-form{margin-top:.05rem}.profile-gate-resume{display:flex;flex-direction:column;gap:.5rem}.profile-gate-resume[hidden]{display:none!important}.profile-gate-resume-btn{width:100%}.profile-form{display:flex;flex-direction:column;gap:.65rem}.profile-form .btn{width:100%}.profile-label{font-size:.8rem;font-weight:600;color:var(--text-muted)}.profile-input{font:inherit;font-size:1rem;padding:.65rem .85rem;min-height:var(--touch-min);border-radius:var(--radius-sm);border:none;background:var(--mist);color:var(--text);box-shadow:0 1px 4px #374e660d}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:max(1rem,var(--safe-top)) var(--inset-inline-end) max(1rem,var(--safe-bottom)) var(--inset-inline-start);box-sizing:border-box;background:#fcfbf7e0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal[hidden]{display:none!important}.modal-card{width:100%;max-width:100%;max-height:min(90dvh,100%);overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--paper);border:none;border-radius:var(--radius);padding:1.25rem 1rem 1.5rem;box-shadow:var(--shadow-float);margin:0 auto}.modal-title{font-family:var(--font-display);margin:0 0 .5rem;font-size:1.1rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.modal-body{margin:0 0 1rem;color:var(--text-muted);font-size:.92rem;line-height:1.55}.modal-body strong{color:var(--text)}.modal-loc{display:block;margin-top:.35rem;font-size:.82rem;color:var(--text-muted)}.modal-actions{display:flex;flex-direction:column;gap:.5rem}.modal-actions .btn{width:100%}.flow-complete-confirm-card,.flow-complete-modal-card{max-width:22rem;margin-inline:auto}.flow-complete-celebrate-card{position:relative;width:100%;max-width:min(94vw,34rem);padding:3rem clamp(1.35rem,5vw,2.25rem) clamp(2.1rem,6vw,3rem);box-sizing:border-box}.flow-complete-celebrate-card .modal-title{text-transform:none;letter-spacing:.015em;font-size:clamp(1.45rem,6vw,2.15rem);line-height:1.2;margin:0}.modal-dismiss{position:absolute;top:.55rem;right:.55rem;display:inline-flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;padding:0;border:none;border-radius:999px;font:inherit;font-size:1.45rem;font-weight:400;line-height:1;color:var(--text-muted);background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}.modal-dismiss:hover{color:var(--ink);background:var(--mist)}.modal-dismiss:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.nav-phase{margin-bottom:.4rem;border-radius:var(--radius-sm);border:none;background:var(--paper);box-shadow:0 1px 6px #374e660f}.nav-phase[open]{background:var(--mist);box-shadow:0 2px 12px #374e6614}.nav-phase-summary{font-family:var(--font-display);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--blue);padding:.55rem;min-height:var(--touch-min);display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;box-sizing:border-box;cursor:pointer;list-style:none}.nav-phase-summary:after{content:"";flex-shrink:0;width:.45rem;height:.45rem;margin-right:.1rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.88;transition:transform .22s ease}.nav-phase[open]>.nav-phase-summary:after{transform:rotate(-135deg)}.nav-phase-summary::-webkit-details-marker{display:none}.nav-phase-summary::marker{content:""}.nav-phase-body{padding:0 .25rem .5rem .5rem}.nav-intro-row{margin-bottom:.35rem}.nav-week{margin-bottom:.25rem;border-radius:8px}.nav-week[open]{background:var(--cream-2);border-radius:var(--radius-sm)}.nav-week-summary{font-size:.8rem;font-weight:600;color:var(--text-muted);padding:.5rem .45rem;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:.55rem;width:100%;box-sizing:border-box;cursor:pointer;list-style:none}.nav-week-summary:after{content:"";flex-shrink:0;width:.38rem;height:.38rem;margin-right:.08rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.65;transition:transform .22s ease}.nav-week[open]>.nav-week-summary:after{transform:rotate(-135deg)}.nav-week-summary::-webkit-details-marker{display:none}.nav-week-summary::marker{content:""}.nav-week-body{padding:0 .25rem .35rem .35rem}.workout-link{display:block;width:100%;text-align:left;font:inherit;font-size:.92rem;font-weight:600;padding:.65rem .6rem;min-height:var(--touch-min);margin-bottom:4px;border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);cursor:pointer;border:none;box-shadow:0 1px 5px #374e660f;-webkit-tap-highlight-color:transparent}.workout-link:active{background:var(--cream-2)}.workout-link.is-active{background:var(--sun);border:none;box-shadow:0 3px 12px #c8a53c38;color:var(--ink)}.workout-link small{display:block;font-size:.75rem;color:var(--text-muted);font-weight:400;margin-top:.15rem}.intro-chip{font-size:.8rem;padding:.45rem .6rem;margin-bottom:.5rem;border-radius:var(--radius-sm);background:var(--sand-panel);border:none;box-shadow:0 1px 5px #374e660d;color:var(--text-muted);font-weight:600}.intro-chip a{color:var(--blue);font-weight:700}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.flow-screen{width:100%;max-width:100%;margin:0}.flow-top{margin-bottom:.38rem}.flow-workout-head{display:grid;grid-template-columns:minmax(3.25rem,1fr) minmax(0,26rem) minmax(3.25rem,1fr);align-items:start;gap:.35rem .5rem;width:100%;margin:0 0 .22rem;box-sizing:border-box;min-width:0}.flow-workout-head .flow-workout-name{grid-column:2;margin:0;width:100%;min-width:0;max-width:none;justify-self:stretch}.flow-workout-name{font-family:var(--font-display);margin:0 0 .22rem;font-size:clamp(1.45rem,4.5vw,2.15rem);font-weight:800;line-height:1.12;letter-spacing:.02em;color:var(--ink)}.flow-workout-duration{margin:0 0 .38rem;font-size:.9rem;font-weight:700;color:var(--text-muted)}.flow-session-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.35rem .75rem;margin:0 0 .38rem;font-size:.85rem}.flow-session-row--done{margin-bottom:1rem}.flow-session-label{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.flow-session-elapsed{font-variant-numeric:tabular-nums;font-weight:800;font-size:1.22rem;color:var(--blue)}.flow-progress{margin:0 0 .45rem}.flow-progress-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.35rem .75rem;margin-bottom:.32rem;font-size:.92rem;color:var(--text-muted)}.flow-progress-pct{font-variant-numeric:tabular-nums;font-weight:800;color:var(--blue);font-size:1rem}.flow-progress-head #flowProgressLabel,.flow-progress-head #flowProgressLabelEnd{font-weight:700;color:var(--ink)}.flow-progress-track{height:.55rem;border-radius:999px;background:#374e661a;border:1px solid rgba(55,78,102,.09);overflow:hidden;box-shadow:inset 0 1px 2px #374e660f}.flow-progress-fill{height:100%;min-width:0;border-radius:999px;transition:width .35s cubic-bezier(.22,1,.36,1);background:linear-gradient(90deg,#4a87bd 0%,var(--blue) 55%,var(--blue-mute) 100%);box-shadow:inset 0 1px #ffffff59}.flow-progress-fill:not(.flow-progress-fill--full){min-width:3px}.flow-progress-fill.flow-progress-fill--full{border-radius:999px}.flow-context-block{background:linear-gradient(165deg,#edf2f8fa,#edf2f8e0);border:1px solid rgba(55,78,102,.1);border-radius:var(--radius-sm);padding:.68rem .75rem;margin-bottom:.38rem;box-shadow:0 2px 10px #374e6612}.flow-context-line{margin:0;font-size:clamp(.95rem,3.4vw,1.1rem);line-height:1.38;font-weight:700;color:var(--ink)}.flow-context-line--section strong{font-weight:800;color:var(--ink)}.flow-context-line--round{margin-top:.4rem;font-size:clamp(.85rem,2.9vw,1rem);font-weight:600;color:var(--text-muted)}.flow-context-label{display:inline-block;font-size:clamp(.7rem,2.2vw,.8rem);font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--blue);margin-right:.35rem}.flow-exercise-card{background:var(--paper);border:none;border-radius:var(--radius);padding:.38rem .5rem .48rem;margin-bottom:.42rem;box-shadow:var(--shadow-lift)}.flow-exercise-card-inner{display:flex;flex-direction:column;align-items:center;gap:.15rem}.flow-ex-media{display:flex;justify-content:center;width:100%;line-height:0}.flow-ex-body{width:100%;min-width:0;text-align:center}.flow-ex-img{display:block;box-sizing:border-box;width:auto;max-width:min(100%,9rem);max-height:7.5rem;height:auto;margin:0;border-radius:var(--radius-sm);aspect-ratio:4 / 3;object-fit:contain;object-position:center;background:transparent;border:none;box-shadow:none;filter:grayscale(40%) contrast(1.02)}.flow-ex-img-placeholder{width:auto;max-width:min(100%,9rem);max-height:7.5rem;margin:0;aspect-ratio:4 / 3;min-height:0;border-radius:var(--radius-sm);border:none;box-shadow:0 2px 12px #374e660f;background-color:var(--cream-2);background-image:radial-gradient(circle at 20% 30%,var(--sun) 0%,transparent 35%),radial-gradient(circle at 80% 70%,var(--blue-soft) 0%,transparent 40%),repeating-linear-gradient(-12deg,transparent,transparent 11px,rgba(12,12,12,.06) 11px,rgba(12,12,12,.06) 12px)}.flow-ex-name{font-family:var(--font-display);font-size:clamp(1.02rem,4.2vw,1.38rem);font-weight:800;margin:.1rem 0 .14rem;text-align:center;letter-spacing:.045em;text-transform:uppercase;line-height:1.15;color:var(--ink)}.flow-ex-rep{text-align:center;margin:0;font-size:clamp(.92rem,3.1vw,1.05rem);color:var(--blue);font-weight:800}.flow-ex-targets{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin-top:.4rem;width:100%;min-width:0}.flow-ex-targets-label{font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.flow-ex-targets .muscle-tags{justify-content:center;margin-top:0}.flow-timer{margin-top:.28rem;padding-top:.28rem;text-align:center;border-top:1px solid rgba(55,78,102,.08)}.flow-timer-display-wrap{width:100%;margin:0 auto .32rem;padding:.32rem .25rem .35rem;border-radius:.55rem;background:#374e660f}.flow-timer-display{font-family:var(--font-display);font-size:clamp(2.4rem,12.5vw,4.25rem);line-height:1;font-weight:800;letter-spacing:.03em;margin:0;color:var(--blue);font-variant-numeric:tabular-nums}.flow-timer-display--done{color:var(--text-muted)}.flow-timer-buttons{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:.65rem;max-width:22rem;margin:0 auto}.flow-timer-buttons .btn:not(.flow-timer-icon-btn){flex:1 1 auto;min-width:min(100%,6.5rem)}.flow-timer-buttons .flow-timer-start:not([hidden]){width:100%;flex:1 1 100%;max-width:none}.flow-timer-icon-btn{flex:0 0 auto!important;width:3.15rem!important;height:3.15rem!important;min-width:3.15rem!important;min-height:3.15rem!important;padding:0!important;border-radius:50%;font-size:1.2rem;line-height:1;box-shadow:0 2px 10px #374e661a}.flow-timer-reset.flow-timer-icon-btn{border:1px solid rgba(55,78,102,.12)}.flow-timer-icon{display:block;line-height:1;transform:translateY(.5px)}.flow-nav-main{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.48rem}.flow-nav-main .btn{width:100%}.flow-nav-main .btn:disabled{opacity:.35;cursor:not-allowed}.flow-complete-row{display:flex;flex-direction:column;align-items:stretch;width:100%;margin-top:1rem}.flow-complete-row .btn{width:100%;justify-content:center;padding:.72rem 1rem;min-height:var(--touch-min);font-size:.95rem}.flow-end .flow-top{text-align:center}.flow-end .flow-workout-head{grid-template-columns:minmax(2rem,1fr) minmax(0,22rem) minmax(2rem,1fr);max-width:28rem;margin-left:auto;margin-right:auto}.flow-end .flow-workout-duration,.flow-end .flow-session-row{max-width:22rem;margin-left:auto;margin-right:auto}.flow-end .flow-progress{max-width:28rem;margin-left:auto;margin-right:auto}.flow-end-title{font-family:var(--font-display);margin:1.15rem 0 .45rem;font-size:1.25rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.flow-end-sub{margin:0;color:var(--text-muted);font-size:.92rem}.flow-actions{justify-content:center;margin-bottom:.85rem}.flow-actions .btn{width:100%;max-width:22rem;margin:0 auto}.flow-nav-row{display:flex;flex-direction:column;gap:.5rem}.flow-nav-row .btn{width:100%}@media(max-width:35.99rem){.main:has(.flow-screen){padding-top:.65rem;padding-bottom:calc(1rem + var(--safe-bottom))}.flow-top{margin-bottom:.4rem}.flow-workout-name{font-size:clamp(1rem,4vw,1.35rem);margin-bottom:.1rem}.flow-workout-duration{margin-bottom:.3rem;font-size:.78rem}.flow-session-row{margin-bottom:.35rem;font-size:.76rem}.flow-session-elapsed{font-size:1.05rem}.flow-progress{margin-bottom:.45rem}.flow-progress-head{margin-bottom:.25rem;font-size:.8rem;gap:.2rem .45rem}.flow-progress-pct{font-size:.9rem}.flow-context-block{padding:.58rem .62rem;margin-bottom:.35rem}.flow-context-line{font-size:clamp(.82rem,3.6vw,.95rem)}.flow-context-line--round{margin-top:.32rem;font-size:clamp(.78rem,3.2vw,.9rem)}.flow-context-label{font-size:clamp(.62rem,2.4vw,.72rem)}.flow-exercise-card{padding:.42rem .48rem .52rem;margin-bottom:.42rem;border-radius:var(--radius-sm)}.flow-exercise-card-inner{gap:.1rem}.flow-ex-img,.flow-ex-img-placeholder{max-width:min(100%,8.5rem);max-height:6.75rem}.flow-ex-name{font-size:clamp(.88rem,3.5vw,1.02rem);margin:.06rem 0 .1rem;letter-spacing:.035em}.flow-ex-rep{font-size:.82rem}.flow-ex-targets{margin:.12rem 0 0}.flow-ex-targets .muscle-tag{font-size:.55rem;padding:.08rem .32rem}.flow-ex-targets .muscle-tags{gap:.22rem}.flow-timer{margin-top:.22rem;padding-top:.22rem}.flow-timer-display-wrap{padding:.28rem .2rem .3rem;margin-bottom:.28rem}.flow-timer-display{font-size:clamp(2.15rem,11vw,3.5rem)}.flow-timer-buttons{gap:.55rem;max-width:none}.flow-timer-buttons .btn:not(.flow-timer-icon-btn){min-width:0;flex:1 1 calc(50% - .15rem);min-height:44px;padding:.4rem .55rem;font-size:.8rem}.flow-timer-icon-btn{width:2.95rem!important;height:2.95rem!important;min-width:2.95rem!important;min-height:2.95rem!important;font-size:1.1rem}.flow-timer-buttons .flow-timer-start:not([hidden]){flex:1 1 100%}.flow-nav-main{gap:.3rem;margin-bottom:.3rem}.flow-nav-main .btn{min-height:44px;padding:.45rem .65rem;font-size:.84rem}.flow-complete-row{margin-top:1.15rem}.flow-complete-row .btn{min-height:44px;padding:.55rem .85rem;font-size:.84rem}}@media(min-width:36rem){.section-head{flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:space-between}.exercise-row{grid-template-columns:3.65rem minmax(0,1fr);gap:.5rem .65rem;padding:.4rem .55rem}.ex-thumb,div.ex-thumb{width:3.65rem;height:3.65rem;min-height:3.65rem}.ex-name{font-size:.9rem}.flow-timer-buttons{flex-direction:row;justify-content:center;max-width:none}.flow-timer-buttons .btn:not(.flow-timer-icon-btn){width:auto;min-width:8rem}.flow-exercise-card{padding:.45rem .55rem .55rem}.flow-exercise-card-inner{display:grid;grid-template-columns:minmax(5.5rem,8.5rem) minmax(0,1fr);gap:.45rem .65rem;align-items:start;width:100%}.flow-ex-media{justify-self:center;align-self:start}.flow-ex-body,.flow-ex-name,.flow-ex-rep{text-align:left}.flow-ex-targets{align-items:flex-start}.flow-ex-targets .muscle-tags{justify-content:flex-start}.flow-ex-img,.flow-ex-img-placeholder{width:100%;max-width:8.5rem;max-height:7.25rem;margin:0}.flow-context-block{padding:.78rem .88rem}.flow-ex-body .flow-timer{text-align:center}.flow-nav-main{flex-direction:column}.flow-nav-main .btn{width:100%;flex:none;min-height:var(--touch-min)}.flow-nav-row{flex-direction:row;flex-wrap:wrap;justify-content:center}.flow-nav-row .btn{width:auto;flex:1 1 auto;min-width:min(100%,10rem)}}@media(min-width:36rem){.modal-card{max-width:24rem;max-height:min(85dvh,100%)}}@media(min-width:55rem){.brand-mark{width:4rem;height:4rem}.brand-title{font-size:1.15rem}.layout{display:grid;grid-template-columns:minmax(260px,300px) 1fr;gap:1.25rem;max-width:1400px;margin:0 auto;width:100%;padding:0 var(--inset-inline-end) 0 var(--inset-inline-start);align-items:start}.sidebar{position:sticky;top:var(--sidebar-top);align-self:start;inset:auto;max-height:calc(100dvh - var(--sidebar-top));border:none;border-radius:0 var(--radius) var(--radius) 0;box-shadow:var(--shadow-soft);padding:1rem .75rem 2rem;background:var(--mist)}.sidebar:not([hidden])~.main,.layout:has(.sidebar:not([hidden])) .main{opacity:1;pointer-events:auto}.main{max-width:none;padding:1.25rem var(--inset-inline-end) 3rem var(--inset-inline-start)}.workout-actions{flex-direction:row;flex-wrap:wrap}.workout-actions .btn{width:auto}.modal-actions{flex-direction:row}.modal-actions .btn{width:auto}.flow-screen{max-width:36rem;margin:0 auto}}
