@font-face{font-family:TT Hoves;src:url(/assets/TT_Hoves_Pro_Regular-7d2BoZlQ.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:TT Hoves;src:url(/assets/TT_Hoves_Pro_Medium-CBuIrT5H.woff)format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:TT Hoves;src:url(/assets/TT_Hoves_Pro_DemiBold-6VxHwzJS.woff)format("woff");font-weight:600 700;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/assets/SpaceGrotesk-Regular-D96nn-Fd.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/assets/SpaceGrotesk-Medium-CQiCHMQy.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/assets/SpaceGrotesk-SemiBold-BTfAzs1I.ttf)format("truetype");font-weight:600 700;font-style:normal;font-display:swap}:root.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--grey-040:#f5f6f7;--grey-400:#90959d;--grey-800:#282a30;--grey-840:#23252a;--grey-860:#1a1c20;--grey-900:#15171a;--grey-950:#0c0c0e;--green-300:#58eec1;--green-400:#21dea5;--green-950:#04352c;--orange-400:#ff9e2e;--red-300:#ff858a;--red-400:#f65459;--bg:var(--grey-950);--surface:var(--grey-900);--surface-2:var(--grey-860);--text:var(--grey-040);--muted:var(--grey-400);--primary:var(--green-400);--primary-strong:var(--green-300);--primary-ink:#fff;--warning:var(--orange-400);--danger:var(--red-400);--danger-strong:var(--red-300);--line:#ffffff14;--line-strong:#ffffff1f;--glass:#0c0c0ed6;--glass-line:#ffffff14;--glass-fill:#ffffff1a;--blur:blur(14px);--blur-chrome:blur(4px);--radius:8px;--radius-sheet:24px;--radius-pill:999px;--pad:16px;--dock-bottom:0px;--dock-clearance:calc(72px + env(safe-area-inset-bottom));--font:"TT Hoves", system-ui, sans-serif;--font-title:"Space Grotesk", system-ui, sans-serif;font-family:var(--font);font-feature-settings:"ss01" on, "cv11" on;background:var(--bg);color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;line-height:1.35}*{box-sizing:border-box}html,body{height:100%;min-height:100dvh;overscroll-behavior:none;background-color:var(--bg);-webkit-tap-highlight-color:transparent;min-height:-webkit-fill-available;overflow:hidden}#root{overscroll-behavior:none;flex-direction:column;width:100%;display:flex;position:fixed;inset:0}html.standalone,html.standalone body{height:-webkit-fill-available;height:100vh;min-height:-webkit-fill-available;min-height:100vh;position:relative}html.standalone #root{width:100%;height:-webkit-fill-available;height:100vh;min-height:-webkit-fill-available;min-height:100vh;position:relative;inset:auto}html.standalone .frost-dock,html.standalone .sheet-backdrop,html.standalone .lightbox{position:absolute}body{background:var(--bg);margin:0}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-touch-callout:none;background:0 0;border:0;padding:0}a{color:inherit;touch-action:manipulation;-webkit-touch-callout:none;text-decoration:none}a.card-copy,a.program-pick,a.editor-open,a.heat-cell,.tab-nav>a.tab{font:inherit}img{-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none}input,textarea,select,[contenteditable]:not([contenteditable=false]){-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;font-size:16px}h1,h2,p{margin:0}.kicker{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:14px}h1,.stat b,.best-volume b,.card-title,.card-title strong,.program-pick strong,.program-pick-row strong,.program-pick-custom strong,.tab-nav>.tab,.topbar-identity strong{font-family:var(--font-title)}.shell{flex-direction:column;flex:1;min-width:0;height:100%;min-height:0;display:flex}.app{flex-direction:column;flex:1;width:min(440px,100%);height:100%;min-height:0;margin:0 auto;display:flex;position:relative}.swipe-pane{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.app-body{overscroll-behavior:contain;min-height:0;padding:calc(24px + env(safe-area-inset-top)) var(--pad) var(--dock-clearance);scroll-padding-bottom:var(--dock-clearance);flex-direction:column;flex:1;gap:16px;display:flex;overflow:auto}.app.session .app-body,.app.detail .app-body{padding-top:0}.hero{flex-direction:column;gap:8px;display:flex}.app .hero{margin-bottom:16px}.place{color:var(--muted);font-size:14px;text-decoration:none}.hero h1{letter-spacing:-.04em;font-size:32px;line-height:.95}.stat-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.stat b{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:32px;display:block}.stat span{color:var(--muted);font-size:14px}.best-volume{padding:16px}.best-volume b{color:var(--primary);font-size:48px;line-height:.95}.best-volume span{letter-spacing:.04em;text-transform:uppercase}.primary,.phantom{border-radius:var(--radius-pill);justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 24px;font-size:16px;font-weight:650;display:inline-flex}.primary{background:var(--primary);color:var(--grey-950)}.phantom{border:1px solid var(--line-strong);background:#ffffff14}.stack{flex-direction:column;gap:8px;display:flex}.section-title{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:14px}.card,.exercise{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:left;padding:16px}.card{justify-content:space-between;align-items:center;gap:8px;display:flex;position:relative}.card-copy{text-align:left;flex-direction:column;flex:1;justify-content:center;min-width:0;min-height:48px;display:flex;overflow:hidden}.card>.card-copy{margin-block:-16px;margin-inline-start:-16px;padding-block:16px;padding-inline-start:16px}.card>.thumb,.card>.overflow{z-index:1;position:relative}.card-title,.hero-title{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.hero-title{gap:8px}.hero-title:has(>.catalog-search){flex-wrap:nowrap}.hero-title:has(>.catalog-search)>h1{flex:1;min-width:0}.hero-title:has(>.hero-add)>h1{flex:none}.hero-add{flex:none}.hero-title:has(>.hero-dismiss){flex-wrap:nowrap}.hero-title:has(>.hero-dismiss)>h1{flex:1;min-width:0}.hero-dismiss{margin-inline-start:auto}.catalog-search.is-inline{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:auto;background:0 0;border-bottom:0;flex:none;width:224px;margin:0;margin-inline:auto 0;padding:0;position:static}.thumb{border-radius:var(--radius);background:var(--surface-2);flex:none;width:40px;height:40px;overflow:hidden}.thumb>img{object-fit:cover;width:100%;height:100%;display:block}button.thumb{cursor:zoom-in}.thumb.large{width:56px;height:56px}.thumb.featured{aspect-ratio:3/2;width:100%;height:auto;max-height:280px}.thumb.featured>img{object-fit:contain}.card strong,.exercise strong{font-size:16px;display:block}.card small,.exercise small,.meta{color:var(--muted);font-size:14px}.card-copy>small,.exercise small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.meta:has(.pt-chip){flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;max-width:100%;display:flex;overflow:hidden}.meta:has(.pt-chip)>.pt-chip{flex:none}.meta:has(.pt-chip)>:not(.pt-chip){text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.topbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.topbar>.icon-btn{flex:none}.topbar-identity{opacity:0;pointer-events:none;flex:1;min-width:0;transition:opacity .16s,transform .16s;transform:translateY(4px)}.topbar-identity.is-stuck{opacity:1;transform:none}.topbar-identity strong,.topbar-identity small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.topbar-identity strong{letter-spacing:-.03em;font-size:16px;font-weight:650;line-height:1.15}.topbar-identity small{color:var(--muted);font-size:13px;line-height:1.25}.topbar-end{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.progress{color:var(--muted);font-variant-numeric:tabular-nums;font-size:14px}.entity-chrome{z-index:20;margin-inline:calc(-1 * var(--pad));padding:calc(8px + env(safe-area-inset-top)) var(--pad) 8px;background:var(--glass);-webkit-backdrop-filter:var(--blur-chrome);backdrop-filter:var(--blur-chrome);border-bottom:1px solid #0000;position:sticky;top:0}.entity-chrome.is-stuck{border-bottom-color:var(--glass-line)}.entity-chrome.is-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;border-bottom:0;height:0;padding:0;position:relative;top:auto;overflow:visible}.entity-chrome.is-overlay .topbar,.entity-chrome.is-overlay .topbar *{pointer-events:none}.entity-chrome.is-overlay .topbar{inset-inline:0;padding:calc(8px + env(safe-area-inset-top)) var(--pad) 8px;background:var(--glass);-webkit-backdrop-filter:var(--blur-chrome);backdrop-filter:var(--blur-chrome);border-bottom:1px solid var(--glass-line);opacity:0;transition:opacity .16s,transform .16s;position:absolute;top:0;transform:translateY(-4px)}.entity-chrome.is-overlay.is-stuck .topbar,.entity-chrome.is-overlay.is-stuck .topbar *{pointer-events:auto}.entity-chrome.is-overlay.is-stuck .topbar,.entity-chrome.is-overlay .topbar-identity{opacity:1;transform:none}.app-body:has(.entity-chrome.is-overlay){gap:0;padding-top:0}:is(.app-body:has(.entity-chrome.is-overlay) .programs-home,.app-body:has(.entity-chrome.is-overlay) .catalog){padding-top:calc(24px + env(safe-area-inset-top))}.exercise{flex-direction:column;gap:8px;width:100%;display:flex}.app.session .exercise{scroll-margin-top:calc(88px + env(safe-area-inset-top));scroll-margin-bottom:var(--dock-clearance)}.exercise.collapsed{gap:0;padding:8px}.exercise.open:not(.done):not(.skipped){border-color:var(--primary)}.exercise-head{align-items:center;gap:8px;display:flex;position:relative}.exercise-main{flex:1;grid-template-columns:auto 1fr;align-self:start;align-items:start;gap:8px;min-width:0;display:grid}.exercise.collapsed .exercise-select{margin:-8px -8px -8px 0;padding:8px}.exercise-select{text-align:left;min-width:0}.exercise-head>.overflow,.exercise-main>.thumb-frame{z-index:1;position:relative}.page-enter{flex-direction:column;gap:16px;display:flex}.page-column{display:contents}.sessions-home{flex-direction:column;gap:24px;display:flex}.sessions-home .hero{margin-bottom:0}.sessions-home .hero-title{flex-wrap:nowrap;justify-content:space-between}.sessions-home .hero-title h1{flex:1;min-width:0}.sessions-stats{flex-direction:column;gap:16px;display:flex}.fade-in{width:100%}.exercise-detail{flex-direction:column;gap:8px;display:flex}.exercise .cue{color:var(--muted);font-size:14px;line-height:1.4}.thumb-frame{border-radius:var(--radius);flex:none;width:40px;height:40px;display:block;position:relative;overflow:hidden}.thumb-frame .thumb{width:100%;height:100%}.thumb-frame.large{width:56px;height:56px}.thumb-done{color:var(--primary);pointer-events:none;background:#00000080;place-items:center;display:grid;position:absolute;inset:0}.exercise.skipped{opacity:.72}.empty{color:var(--muted);font-size:15px}.section-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.phantom.sm{min-height:40px;padding:0 16px;font-size:14px}.phantom:disabled{opacity:.35}.phantom.danger{color:var(--danger-strong)}.editor{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:8px;padding:16px;display:flex}.editor label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;flex-direction:column;gap:8px;font-size:13px;display:flex}.editor input,.editor textarea{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);text-transform:none;letter-spacing:0;resize:vertical;width:100%;padding:16px;font-size:16px}.editor input:focus,.editor textarea:focus{outline:1px solid var(--primary);outline-offset:1px}.editor-actions{flex-wrap:wrap;gap:8px;display:flex}.exercise.open .editor-actions .primary,.exercise.open .editor-actions .phantom{flex:1;min-height:48px}.program-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:8px;padding:16px;display:flex}.program-card-head{flex:1;align-items:center;gap:8px;min-height:0;display:flex;position:relative}.program-card-head .program-pick{flex:1;min-width:0;margin:-16px 0 -16px -16px;padding:16px}.program-card-head>.overflow{z-index:1;position:relative}.program-pick{text-align:left}.program-pick small{color:var(--muted);font-size:14px}.program-pick strong{margin-top:0;font-size:18px;display:block}.field{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;flex-direction:column;gap:8px;font-size:13px;display:flex}.field input,.field textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-transform:none;letter-spacing:0;padding:16px;font-size:16px}.field textarea{resize:vertical;min-height:120px}.text-retry{color:var(--primary);font:inherit;background:0 0;border:0;padding:0}.sheet-footer-stack{flex-direction:column;gap:8px;display:flex}.ai-overview{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ai-overview li{grid-template-columns:auto 1fr;align-items:center;gap:8px;display:grid}.ai-overview strong{display:block}.ai-overview small{color:var(--muted);font-size:14px}.ai-overview+.field textarea{min-height:72px}.catalog{flex-direction:column;gap:16px;display:flex}.catalog .hero{margin-bottom:0}.catalog-search{z-index:10;margin-inline:calc(-1 * var(--pad));padding:0 var(--pad) 8px;background:var(--glass);-webkit-backdrop-filter:var(--blur-chrome);backdrop-filter:var(--blur-chrome);border-bottom:1px solid var(--glass-line);flex-shrink:0;margin-top:-2px}.catalog-search.is-reveal{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;border-bottom:0;grid-template-rows:0fr;margin-top:0;margin-bottom:-16px;padding-top:0;padding-bottom:0;transition:grid-template-rows .22s cubic-bezier(.22,1,.36,1),margin-bottom .22s cubic-bezier(.22,1,.36,1),padding-bottom .22s cubic-bezier(.22,1,.36,1);display:grid}.catalog-search.is-reveal>.catalog-search-clip{min-height:0;overflow:hidden}.catalog-search.is-reveal.is-open{background:var(--glass);-webkit-backdrop-filter:var(--blur-chrome);backdrop-filter:var(--blur-chrome);border-bottom:1px solid var(--glass-line);pointer-events:auto;grid-template-rows:1fr;margin-bottom:0;padding-bottom:8px}@media (prefers-reduced-motion:reduce){.catalog-search.is-reveal{transition:none}}.catalog-results{flex-direction:column;gap:16px;display:flex}.search-field{display:block}.search-input{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-height:48px;color:var(--muted);align-items:center;gap:8px;padding:0 16px;font-size:16px;display:flex}.search-input:focus-within{border-color:var(--primary)}.search-field input{min-width:0;min-height:48px;font:inherit;color:var(--text);appearance:none;background:0 0;border:0;border-radius:0;flex:1;padding:0;font-size:16px}.search-field input::placeholder{color:var(--muted);font-size:inherit}.search-field input:focus{outline:none}.frost-dock{z-index:25;left:max(0px,50vw - 220px);right:max(0px,50vw - 220px);bottom:var(--dock-bottom);background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:0;border-top:1px solid var(--glass-line);border-radius:0;position:fixed;box-shadow:0 -8px 24px #00000059}.rest-bar{z-index:25;padding:8px max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));align-items:center;gap:8px;display:flex}.rest-bar.on{background:#0c0c0ee6}.rest-progress{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.rest-progress span{color:var(--muted);font-variant-numeric:tabular-nums;min-width:4ch;font-size:14px;font-weight:650}.rest-progress-track{border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--line);flex:1;min-width:0;height:8px;overflow:hidden}.rest-progress-fill{border-radius:inherit;background:var(--primary);height:100%;transition:width .16s}.rest-count{letter-spacing:-.04em;font-variant-numeric:tabular-nums;flex:none;font-size:22px;font-weight:650}.auth-splash{flex:1;place-items:center;width:100%;min-height:0;display:grid}.auth-splash img{width:80px;height:80px}.auth-screen{width:min(440px,100%);min-height:0;padding:calc(24px + env(safe-area-inset-top)) var(--pad) calc(32px + env(safe-area-inset-bottom));flex-direction:column;flex:1;justify-content:space-between;align-items:center;gap:24px;margin:0 auto;display:flex}.auth-hero{text-align:center;width:100%}.auth-panel{flex-direction:column;align-items:center;gap:16px;width:100%;max-width:360px;display:flex}.auth-copy,.auth-error,.auth-panel>.empty{text-align:center;color:var(--muted)}.auth-error{color:var(--danger-strong)}.auth-panel>.primary{width:100%}.account-btn{border-radius:var(--radius-pill);border:1px solid var(--glass-line);background:var(--glass);width:40px;height:40px;color:var(--text);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);flex:none;place-items:center;display:grid}.account-sheet{flex-direction:column;gap:8px;display:flex}.account-sheet .overflow-menu button{justify-content:center;align-items:center;gap:8px;display:flex}.offline-banner{z-index:35;left:0;right:0;bottom:var(--dock-clearance);padding:8px max(16px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left));background:var(--grey-840);border-top:1px solid var(--line-strong);color:var(--warning);pointer-events:none;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:650;display:flex;position:fixed}.tab-nav{z-index:30;padding:8px max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.tab-nav>.tab{border-radius:var(--radius-pill);min-height:56px;color:var(--muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:0;font-size:11px;font-weight:650;line-height:1.1;display:flex}.tab-nav>.tab.on{background:var(--glass-fill);color:var(--primary)}.heat-month{touch-action:pan-y;-webkit-user-select:none;user-select:none}.heat-month-head{justify-content:space-between;align-items:center;display:flex}.heat-month-controls{display:none}.heat{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.heat-label{color:var(--muted);text-align:center;letter-spacing:.04em;font-size:13px}.heat-cell{aspect-ratio:1;background:var(--surface-2);border:1px solid var(--line);border-radius:8px}.heat-cell.empty{background:0 0;border-color:#0000}.heat-cell.on{background:var(--primary);border-color:var(--primary);color:var(--green-950);place-items:center;display:grid}.heat-cell.on svg{width:52%;height:52%}.heat-cell.today{box-shadow:inset 0 0 0 2px var(--text)}.heat-cell.on.today{box-shadow:inset 0 0 0 2px var(--green-950)}.cal-day-num{width:100%;height:100%;color:var(--muted);font-variant-numeric:tabular-nums;place-items:center;font-size:12px;line-height:1;display:grid}.set-list{flex-direction:column;gap:8px;display:flex}.set-row{grid-template-columns:2rem 1fr;align-items:center;gap:8px;display:grid}.set-row.live>small{min-width:0}.set-row.live .set-controls{grid-column:2}.set-index{color:var(--muted);font-variant-numeric:tabular-nums;font-size:14px;font-weight:650;line-height:1.35}.set-arrow,.set-result.expected{color:var(--muted)}.set-result.match,.set-result.better,.actual-match .stepper b,.actual-better .stepper b{color:var(--green-400)}.set-result.worse,.actual-worse .stepper b{color:var(--danger)}.set-result.different,.actual-different .stepper b{color:var(--warning)}.set-controls{flex-direction:column;gap:8px;display:flex}.stepper{align-items:center;gap:8px;display:flex}.stepper-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;min-width:3.2rem;font-size:13px}.stepper button{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line);touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;place-items:center;width:40px;height:40px;display:grid}.stepper b{text-align:center;font-variant-numeric:tabular-nums;min-width:4.5ch;color:var(--text)}html.scroll-lock,html.scroll-lock body{overscroll-behavior:none;overflow:hidden}.sheet-backdrop{z-index:40;touch-action:none;padding:0 16px max(16px, env(safe-area-inset-bottom));background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-backdrop.is-keyboard{padding-bottom:16px}.sheet{width:min(440px,100%);max-height:82%;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-line);border-radius:var(--radius-sheet);padding:16px var(--pad);background:#15171aeb;flex-direction:column;gap:16px;display:flex;overflow:hidden;box-shadow:0 8px 24px #00000059}.sheet.has-search{height:82%}.sheet-head,.sheet-search,.sheet-footer{flex-shrink:0}.sheet-footer{border-top:1px solid var(--line);padding-top:8px}.sheet-head{margin:-16px calc(-1 * var(--pad)) 0;padding:8px var(--pad) 8px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:8px}.sheet-handle{border-radius:var(--radius-pill);background:var(--muted);opacity:.55;flex:none;align-self:center;width:40px;height:4px}.sheet-title{font-family:var(--font-title);letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:20px;font-weight:650;line-height:1.2;overflow:hidden}.icon-btn{width:40px;height:40px;color:var(--text);flex:none;place-items:center;display:grid}.sheet-body{overscroll-behavior:contain;touch-action:pan-y;flex-direction:column;flex:1;gap:16px;min-height:0;display:flex;overflow:auto}.program-pick-row,.catalog-row{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:8px;width:100%;min-height:48px;padding:16px;display:flex}.catalog-row{touch-action:manipulation;align-items:flex-start;position:relative}.catalog-row>.thumb{z-index:1;position:relative}.catalog-row>.card-copy{margin:-16px -16px -16px -8px;padding:16px 16px 16px 8px}.program-pick-row{flex-direction:column;align-items:flex-start;gap:0}.program-pick-row.selected{border-color:var(--primary)}.program-pick-row:disabled{opacity:.4}.catalog-row strong,.program-pick-row strong{display:block}.catalog-row small,.program-pick-row small{color:var(--muted);font-size:14px}.program-pick-custom{text-align:left;border:1px dashed var(--line-strong);border-radius:var(--radius);background:0 0;align-items:center;gap:8px;width:100%;min-height:48px;padding:16px;display:flex}.program-pick-custom-mark{border-radius:var(--radius);border:1px dashed var(--line-strong);width:40px;height:40px;color:var(--primary);flex:none;place-items:center;display:grid}.program-pick-custom strong{display:block}.program-pick-custom small{color:var(--muted);font-size:14px}.editor-head{align-items:flex-start;gap:8px;display:flex;position:relative}.editor-head .editor-open{text-align:left;flex:1;min-width:0;margin-block:-16px;padding-block:16px}.editor-head>.thumb,.editor-head>.overflow{z-index:1;position:relative}.editor-head strong{display:block}.overflow{flex:none;align-self:center;align-items:center;display:flex;position:relative}.overflow-btn{border-radius:var(--radius);width:40px;height:40px;color:var(--text);flex:none;place-items:center;display:grid}.overflow-btn svg{display:block}.overflow.open .overflow-btn{background:var(--surface-2)}.overflow-menu{flex-direction:column;gap:8px;display:flex}.overflow-menu button{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);width:100%;min-height:48px;font-size:17px;font-weight:650}.overflow-menu button.danger{color:var(--danger-strong)}.overflow-menu button:disabled{opacity:.35}.program-ex{align-items:flex-start;width:100%}.program-ex.selected,.editor.selected{border-color:var(--primary)}.program-split,.program-split-pane{display:contents}.spark-wrap{color:var(--primary);touch-action:pan-y;-webkit-user-select:none;user-select:none;position:relative;overflow:visible}.spark{width:100%;height:72px;display:block;overflow:visible}.spark-guide{opacity:.35;pointer-events:none;background:currentColor;width:1px;position:absolute;top:0;bottom:0;transform:translate(-50%)}.spark-dot{pointer-events:none;background:currentColor;border-radius:50%;width:8px;height:8px;position:absolute;transform:translate(-50%,-50%)}.spark-tip{z-index:1;background:var(--bg);pointer-events:none;white-space:nowrap;border-radius:8px;flex-direction:column;gap:0;padding:8px;display:flex;position:absolute}.spark-tip b{font-family:var(--font-title);color:var(--text);font-size:15px;font-weight:650;line-height:1.1}.spark-tip span{color:var(--muted);font-size:13px}.primary:disabled{opacity:.4}.lightbox{z-index:80;padding:calc(72px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));background:var(--grey-950);touch-action:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.lightbox-image{object-fit:contain;transform-origin:50%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;touch-action:none;width:auto;max-width:100%;height:auto;max-height:100%}.lightbox-close{z-index:1;top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));background:var(--glass);width:56px;height:56px;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-line);color:var(--text);border-radius:50%;place-items:center;display:grid;position:absolute}.card.live{border-color:var(--primary)}.live-chip{border-radius:var(--radius-pill);background:var(--primary);min-height:24px;color:var(--primary-ink);letter-spacing:.06em;text-transform:uppercase;flex:none;align-items:center;gap:8px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.live-chip svg{flex:none;animation:1.4s ease-in-out infinite live-pulse}.pt-chip{border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface-2);min-height:24px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;flex:none;align-items:center;gap:8px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.pt-chip.on{color:var(--text);border-color:var(--line-strong)}.pt-chip svg{flex:none}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.72)}}.shell.session .tab-nav{display:none}.exercise-page,.exercise-lists,.programs-home,.program-page{flex-direction:column;gap:16px;display:flex}.sessions-lead,.exercise-lead{flex-direction:column;display:flex}.sessions-lead{gap:24px}.exercise-lead{gap:16px}@media (hover:hover) and (pointer:fine){.card:hover,.catalog-row:hover,.program-pick-row:hover,.program-card:hover,.program-pick-custom:hover,.exercise:hover,.editor:hover{border-color:var(--line-strong);background:var(--grey-840)}.card.live:hover,.program-pick-row.selected:hover,.program-ex.selected:hover,.editor.selected:hover,.exercise.open:not(.done):not(.skipped):hover,.heat-cell:not(.empty):hover{border-color:var(--primary)}.heat-cell.on:hover{filter:brightness(1.08)}.phantom:hover:not(:disabled){background:#ffffff1f}.icon-btn:hover,.overflow-btn:hover{background:var(--surface-2);border-radius:var(--radius)}.account-btn:hover{background:var(--surface-2)}.tab-nav>.tab:hover:not(.on){color:var(--text);background:var(--glass-fill)}.overflow-menu button:hover:not(:disabled){background:var(--surface-2)}.stepper button:hover:not(:disabled){border-color:var(--line-strong);background:var(--grey-840)}.primary:hover:not(:disabled){background:var(--primary-strong)}}@media (hover:none){html,body,#root,.hero,.card,.card-copy,.stat,.tab-nav,.pt-chip,.live-chip,.frost-dock,.entity-chrome,.topbar,.program-card,.catalog-row,.program-pick-row,.program-pick-custom{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,a{cursor:default}button:active:not(:disabled),a:active{opacity:.88}}@media (width>=800px) and (hover:hover) and (pointer:fine){:root.dark{--pad:24px}html{overscroll-behavior:auto;height:auto;min-height:100vh;overflow:hidden auto}body{overscroll-behavior:auto;height:auto;min-height:100vh;overflow:visible}html.standalone,html.standalone body{width:auto;height:auto;min-height:100vh;position:static;overflow:visible;transform:none}#root,html.standalone #root{overscroll-behavior:auto;height:auto;min-height:100vh;display:block;position:static;inset:auto;overflow:visible}html.standalone .frost-dock.tab-nav{position:sticky}html.standalone .sheet-backdrop,html.standalone .lightbox,html.standalone .frost-dock.rest-bar{position:fixed}.shell{flex-direction:row;flex:none;align-items:flex-start;width:100%;height:auto;min-height:100vh;display:flex;overflow:visible}.auth-screen,.auth-splash{flex:none;height:auto;min-height:100vh;overflow:visible}.shell.session .tab-nav{display:flex}.tab-nav{z-index:2;border:0;border-right:1px solid var(--line);background:var(--grey-900);width:192px;height:100vh;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;flex-direction:column;flex:none;align-self:flex-start;align-items:stretch;gap:8px;padding:8px;display:flex;position:sticky;inset:0 auto auto}.tab-nav>.tab{border-radius:var(--radius);flex-direction:row;justify-content:flex-start;gap:8px;min-height:0;padding:8px;font-size:14px}.tab-nav-fill{flex:auto;min-height:0}.offline-banner{padding-bottom:max(8px, env(safe-area-inset-bottom));bottom:0;left:192px}.offline-banner.above-dock{padding-bottom:8px;bottom:64px}.app{flex:auto;width:auto;min-width:0;max-width:none;height:auto;min-height:100vh;margin:0;overflow:visible}.swipe-pane,.app-body{overscroll-behavior:auto;flex:none;width:100%;max-width:none;height:auto;min-height:auto;margin:0;overflow:visible}.app-body{padding:48px var(--pad) 32px;gap:8px}.app.session .page-enter{grid-template-columns:minmax(0,1fr) minmax(0,1200px) minmax(0,1fr);display:grid}.app.session .page-enter>.hero{grid-column:1/-1}.app.session .page-enter>:not(.hero){grid-column:2;min-width:0}.app-body>.sessions-home{width:100%;max-width:1200px;margin-inline:auto}.page-column{gap:inherit;flex-direction:column;width:100%;min-width:0;max-width:1200px;margin-inline:auto;display:flex}.page-column:has(>.entity-chrome.is-overlay){gap:0}.page-column .entity-chrome{margin-inline:0;padding-inline:0}.page-column .entity-chrome.is-overlay .topbar{padding-inline:0}.app.session .app-body,.app.detail .app-body{padding-top:0}.app.session .app-body{padding-bottom:72px}.entity-chrome{padding:8px var(--pad)}.entity-chrome.is-overlay{padding:0}.entity-chrome.is-overlay .topbar{padding:8px var(--pad)}.app-body:has(.entity-chrome.is-overlay){gap:0;padding-top:48px}:is(.app-body:has(.entity-chrome.is-overlay) .programs-home,.app-body:has(.entity-chrome.is-overlay) .catalog){padding-top:0}.hero{gap:8px}.app .hero{margin-bottom:8px}.hero h1{letter-spacing:-.03em;font-size:28px;line-height:1.15}.heat-month-controls{gap:8px;display:flex}.heat-month-controls button{border-radius:var(--radius);width:40px;height:40px;color:var(--muted);border:1px solid #0000;place-items:center;display:grid}.heat-month-controls button:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.heat-month-controls button:focus-visible{outline:2px solid var(--primary);outline-offset:2px;color:var(--text)}.heat-month-controls button:disabled{cursor:default;opacity:.3}.primary,.phantom{min-height:48px}.hero-add.phantom{gap:8px;min-height:32px;padding:0 8px;font-size:14px}.sessions-lead>.primary,.program-page>.primary{align-self:start;min-width:224px}.catalog-search{position:sticky;top:0}.catalog-search.is-inline{position:static;top:auto}.search-input{gap:8px;height:40px;min-height:40px;padding:0 8px}.search-field input{height:40px;min-height:40px}.catalog-search.is-reveal{margin-bottom:-8px}.catalog-search.is-reveal.is-open{margin-bottom:0}.catalog-results{gap:8px}.catalog,.sessions-home,.sessions-history,.exercise-page,.exercise-lists,.exercise-sessions,.exercise-programs,.programs-home,.program-page,.program-exercises,.program-sessions,.program-split,.program-split-pane,.page-column{flex:none;height:auto;min-height:auto;overflow:visible}.frost-dock.rest-bar{z-index:15;width:auto;padding:8px var(--pad);border-bottom:0;border-left:0;border-right:0;border-radius:0;flex:none;position:fixed;bottom:0;left:192px;right:0;box-shadow:0 -8px 24px #00000040}.sheet-backdrop,.sheet-backdrop.is-keyboard{align-items:center;padding:24px}.sheet{border-radius:16px;gap:8px;width:min(520px,100%);max-height:min(720px,80vh);padding:16px}.sheet.has-search{height:min(720px,80vh)}.sheet-head{flex-direction:row;justify-content:space-between;align-items:center;gap:8px;margin:-16px -16px 0;padding:8px 8px 8px 16px}.sheet-handle{display:none}.sheet-dismiss{margin-inline-start:auto}.sheet-title{font-size:18px}.sheet-body{gap:8px}.card,.exercise,.editor,.program-card,.program-pick-row,.catalog-row,.program-pick-custom{padding:16px}.exercise,.editor,.program-card,.page-enter,.exercise-page,.programs-home,.program-page,.catalog,.sessions-stats,.exercise-lead{gap:8px}.sessions-home,.sessions-lead{gap:24px}.app.session .exercise{scroll-margin-bottom:24px}.program-split.is-split{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:8px 24px;width:100%;display:grid;overflow:visible}.program-split.is-split>.program-split-pane{flex-direction:column;gap:8px;min-width:0;height:auto;min-height:auto;display:flex;overflow:visible}.program-split.is-split>.program-split-pane:first-child .entity-chrome{margin-left:calc(-1 * var(--pad))}.program-split.is-split>.program-split-pane:last-child .entity-chrome{margin-right:calc(-1 * var(--pad))}.program-exercises{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(256px,50% - 8px)),1fr));align-items:stretch;gap:8px;display:grid}.programs-grid>.fade-in,.program-exercises>.fade-in,.catalog-results>.stack>.fade-in{flex-direction:column;min-width:0;display:flex}.programs-grid>.fade-in>.program-card,.program-exercises>.fade-in>.program-ex,.program-exercises>.fade-in>.editor,.catalog-results>.stack>.fade-in>.catalog-row,.catalog-results>.stack>.catalog-row{flex:1;width:100%}.catalog-results>.stack{grid-template-columns:repeat(auto-fill,minmax(min(100%,max(256px,33.3333% - 8px)),1fr));align-items:stretch;gap:8px;display:grid}.catalog-results>.stack>.section-title{grid-column:1/-1}}@media (width>=1080px){.hero h1{font-size:28px}.thumb.featured{max-height:320px}.sessions-home,.exercise-page{grid-template-columns:minmax(280px,.9fr) minmax(336px,1.1fr);align-items:start;gap:24px 32px;display:grid}.sessions-lead{position:sticky;top:8px}.programs-grid{grid-template-columns:1fr 1fr;align-items:start;gap:8px;display:grid}.catalog-results{flex-direction:column;gap:16px;display:flex}.programs-grid>.empty{grid-column:1/-1}.program-split.is-split{grid-template-columns:minmax(256px,.9fr) minmax(0,1.1fr);gap:24px 32px}.program-split.is-split .exercise-page{flex-direction:column;display:flex}}.loading{display:contents}.skeleton{background-color:var(--grey-800);pointer-events:none;-webkit-user-select:none;user-select:none;cursor:default;animation:1.6s ease-in-out infinite alternate skeleton-pulse;color:#0000!important;border-color:var(--grey-800)!important;box-shadow:none!important;background-image:none!important}span.skeleton,strong.skeleton,small.skeleton,b.skeleton,h1.skeleton,h2.skeleton,p.skeleton{vertical-align:middle;border-radius:8px;display:inline-block}.skeleton:before,.skeleton:after,.skeleton *{visibility:hidden!important}.spark.skeleton{border-radius:var(--radius);width:100%;height:72px;display:block}.stepper-skel{border-radius:var(--radius);flex:none;width:40px;height:40px}@keyframes skeleton-pulse{0%{background-color:var(--grey-800);border-color:var(--grey-800)}to{background-color:var(--grey-860);border-color:var(--grey-860)}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.search-match{text-decoration-line:underline;-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);text-underline-offset:.18em;-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto;text-decoration-thickness:2px}.catalog-cue{color:var(--muted);font-size:14px;line-height:1.35;display:block}html{overscroll-behavior-x:none}.sheet-head{touch-action:none}.swipe-pane{touch-action:pan-y}.app.is-swiping{background:var(--surface);overflow:hidden}.app.is-swiping:before{content:"";background:var(--surface-2);pointer-events:none;border-radius:8px;position:absolute;inset:8px 16px 8px 0;transform:translate(-8px)scale(.96)}.app.is-swiping .swipe-pane{z-index:1;background:var(--bg)}
