:root{--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-title:1.5rem;--line-title:2rem;--font-section:1.25rem;--line-section:1.75rem;--font-body:1rem;--line-body:1.5rem;--font-support:.875rem;--line-support:1.25rem;--font-caption:.75rem;--line-caption:1rem;--font-timer:3rem;--line-timer:3.5rem;--weight-regular:400;--weight-semibold:600;--color-brand:#19543d;--color-brand-hover:#123f2e;--color-brand-soft:#edf4ef;--color-on-brand:#fff;--color-text:#222;--color-text-muted:#626762;--color-surface:#fff;--color-surface-subtle:#f7f8f7;--color-border:#ddd;--color-border-strong:#8b928c;--color-danger:#b42318;--color-danger-soft:#fff2f0;--color-warning:#805300;--color-warning-soft:#fff7e6;--color-overlay:#18221b66;--color-focus:#19543d;--shadow-overlay:0 8px 32px #18221b24;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-control:12px;--radius-card:16px;--radius-sheet:24px;--radius-round:999px;--touch-target:44px;--control-height:52px;--control-task:64px;--app-width:430px;--tab-height:72px;--page-gutter:var(--space-5);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--viewport-height:100dvh;--viewport-top:0px;--duration-fast:.18s;--layer-tabs:12;--layer-resume:14;--layer-push:20;--layer-workout:100;--layer-feedback:200;font-family:var(--font-family);color:var(--color-text);background:var(--color-surface-subtle);font-synthesis:none;font-weight:var(--weight-regular);line-height:var(--line-body)}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#root{min-height:100%;margin:0}body{background:var(--color-surface-subtle)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}button:disabled{opacity:.45;cursor:default}button,a,label{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}h1,h2,h3,p{margin:0 0 var(--space-4)}h1{font-size:var(--font-title);line-height:var(--line-title)}h2{font-size:var(--font-section);line-height:var(--line-section)}h3{font-size:var(--font-body);line-height:var(--line-body)}h1,h2,h3,strong,b{font-weight:var(--weight-semibold)}p{color:var(--color-text-muted)}small{font-size:var(--font-support);line-height:var(--line-support)}svg{stroke-width:1.8px;flex-shrink:0;width:24px;height:24px}a{color:var(--color-brand);text-underline-offset:3px}.app-shell{width:100%;max-width:var(--app-width);background:var(--color-surface);min-height:100dvh;margin:0 auto;position:relative}.root-scroll{overscroll-behavior:contain;height:100dvh;overflow:auto}.root-page{min-height:100%;padding:calc(var(--space-4) + var(--safe-top)) var(--page-gutter) calc(var(--tab-height) + var(--space-8) + var(--safe-bottom))}.app-shell:has(.global-resume) .root-page{padding-bottom:calc(var(--tab-height) + 100px + var(--safe-bottom))}.root-heading,.center-heading{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:56px;margin-bottom:var(--space-6);display:flex}.root-heading h1,.center-heading h1{margin:0}.root-heading p{margin:var(--space-1) 0 0;font-size:var(--font-support);line-height:var(--line-support)}.center-heading{grid-template-columns:var(--touch-target) minmax(0, 1fr) var(--touch-target);text-align:center;display:grid}.center-heading>button{min-height:var(--touch-target);min-width:var(--touch-target)}.center-heading>svg{color:var(--color-text-muted);justify-self:center}.calendar-button{width:var(--touch-target);height:var(--touch-target);cursor:pointer;place-items:center;margin:0;display:grid;position:relative;overflow:hidden}.calendar-button input{opacity:0;cursor:pointer;margin:0;padding:0;position:absolute;inset:0}.icon-button{min-width:var(--touch-target);min-height:var(--touch-target);border-radius:var(--radius-round);flex-shrink:0;place-items:center;display:inline-grid}.icon-button:active{background:var(--color-brand-soft)}.primary-button,.secondary-button,.workout-primary,.text-button,.plain-danger,.sheet-action,.alert-actions button{font-family:var(--font-family);font-size:var(--font-body);line-height:var(--line-body);font-weight:var(--weight-semibold)}.primary-button,.secondary-button,.workout-primary{min-height:var(--control-height);min-width:var(--touch-target);border-radius:var(--radius-control);justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);text-align:center;display:inline-flex}.primary-button,.workout-primary{color:var(--color-on-brand);background:var(--color-brand)}.primary-button:active,.workout-primary:active{background:var(--color-brand-hover)}.secondary-button{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong)}.text-button,.plain-danger{min-height:var(--touch-target);min-width:var(--touch-target);padding:var(--space-2);text-align:center;display:block}.text-button{color:var(--color-text-muted);margin:0 auto}.plain-danger,.danger-text,.remove-button{color:var(--color-danger)}.full-width{width:100%;margin-top:var(--space-4)}.stage-banner{width:100%;min-height:var(--control-height);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-control);background:var(--color-surface-subtle);text-align:left;display:flex}.stage-banner svg:first-child{color:var(--color-brand)}.stage-banner span{font-size:var(--font-support);line-height:var(--line-support);font-weight:var(--weight-semibold);flex:1}.today-plan{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-card)}.plan-title{width:100%;min-height:var(--control-height);gap:var(--space-2);text-align:left;align-items:center;display:flex}.plan-title span{flex:1;min-width:0}.plan-title small,.plan-title strong{display:block}.plan-title small{color:var(--color-text-muted);margin-bottom:var(--space-1)}.plan-title strong{font-size:var(--font-section);line-height:var(--line-section);overflow-wrap:anywhere}.plan-progress{margin-top:var(--space-4)}.plan-progress b{color:var(--color-brand)}.plan-progress>span{height:4px;margin-top:var(--space-3);border-radius:var(--radius-round);background:var(--color-brand-soft);display:block;overflow:hidden}.plan-progress i{background:var(--color-brand);border-radius:var(--radius-round);height:100%;display:block}.today-plan>.primary-button{width:100%;margin-top:var(--space-4)}.section-title{justify-content:space-between;align-items:center;gap:var(--space-3);margin:var(--space-6) 0 var(--space-3);display:flex}.section-title h2{margin:0}.section-title p{margin:var(--space-1) 0 0;font-size:var(--font-support);line-height:var(--line-support)}.section-title>button{min-height:var(--touch-target);align-items:center;gap:var(--space-1);color:var(--color-brand);font-weight:var(--weight-semibold);flex-shrink:0;display:flex}.native-list,.record-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);overflow:hidden}.exercise-rows>button,.record-set{align-items:center;gap:var(--space-3);width:100%;min-height:76px;padding:var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);display:flex}.exercise-rows>button:last-child,.record-set:last-child{border-bottom:0}.exercise-rows>button.active-row{background:var(--color-brand-soft);box-shadow:inset 3px 0 var(--color-brand)}.number-badge,.check-badge{border-radius:var(--radius-round);background:var(--color-brand-soft);width:32px;height:32px;color:var(--color-brand);font-weight:var(--weight-semibold);flex:0 0 32px;place-items:center;display:grid}.check-badge svg{width:20px}.row-copy{flex:1;min-width:0}.row-copy strong,.row-copy small{display:block}.row-copy strong{margin-bottom:var(--space-1);overflow-wrap:anywhere}.row-copy small{color:var(--color-text-muted)}.row-copy em{color:var(--color-warning);font-style:normal}.done-mark{border-radius:var(--radius-round);width:32px;height:32px;color:var(--color-brand);background:var(--color-brand-soft);flex-shrink:0;place-items:center;display:grid}.feedback-card{align-items:center;gap:var(--space-3);text-align:left;width:100%;min-height:76px;margin-top:var(--space-6);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card);display:flex}.feedback-card span{flex:1;min-width:0}.feedback-card strong,.feedback-card small{display:block}.feedback-card small{margin-top:var(--space-1);color:var(--color-text-muted)}.resume-strip{align-items:center;gap:var(--space-2);width:100%;min-height:64px;padding:var(--space-3);color:var(--color-brand);background:var(--color-brand-soft);border:1px solid var(--color-border);border-radius:var(--radius-control);text-align:left;display:flex}.full-resume{margin-top:var(--space-4);color:var(--color-on-brand);background:var(--color-brand);border:0}.resume-play{border-radius:var(--radius-round);place-items:center;width:32px;height:32px;display:grid}.resume-play svg{width:20px}.resume-strip>span:nth-child(2){flex:1;min-width:0}.resume-strip small,.resume-strip strong{display:block}.resume-strip strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.resume-strip em{font-size:var(--font-caption);line-height:var(--line-caption);font-style:normal}.global-resume{z-index:var(--layer-resume);width:min(100% - 24px,406px);left:50%;bottom:calc(var(--tab-height) + var(--space-2) + var(--safe-bottom));position:fixed;transform:translate(-50%)}.tab-bar{z-index:var(--layer-tabs);width:min(100%, var(--app-width));height:calc(var(--tab-height) + var(--safe-bottom));padding:var(--space-2) var(--space-3) var(--safe-bottom);border-top:1px solid var(--color-border);background:var(--color-surface);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab-bar button{min-height:var(--touch-target);justify-content:center;align-items:center;gap:var(--space-1);color:var(--color-text-muted);font-size:var(--font-caption);line-height:var(--line-caption);flex-direction:column;display:flex}.tab-bar button.selected{color:var(--color-brand);font-weight:var(--weight-semibold)}.search-box{min-height:var(--control-height);align-items:center;gap:var(--space-3);padding:0 var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);margin:0;display:flex}.search-box input{min-width:0;padding:var(--space-3) 0;background:0 0;border:0;flex:1;margin:0}.filter-scroller{align-items:center;gap:var(--space-2);padding:var(--space-4) 0;display:flex;overflow-x:auto}.filter-scroller button,.filter-scroller label{min-height:var(--touch-target);white-space:nowrap;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-round);align-items:center;margin:0;display:inline-flex}.filter-scroller button.selected{color:var(--color-brand);background:var(--color-brand-soft);border-color:var(--color-brand)}.filter-scroller label{padding:0 var(--space-2)}.filter-scroller select{background:0 0;border:0;width:auto;margin:0}.selection-hint{padding:var(--space-3);margin:0 0 var(--space-2);border-radius:var(--radius-control);background:var(--color-brand-soft);font-size:var(--font-support);line-height:var(--line-support)}.library-list article{align-items:center;gap:var(--space-2);min-height:112px;padding:var(--space-4) 0;border-bottom:1px solid var(--color-border);display:flex}.library-main{gap:var(--space-3);text-align:left;flex:1;align-items:center;min-width:0;display:flex}.library-main>span{min-width:0}.library-main strong,.library-main small,.library-main em{display:block}.library-main strong{margin-bottom:var(--space-1)}.library-main small{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.library-main em{margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--font-caption);line-height:var(--line-caption);flex-wrap:wrap;align-items:center;font-style:normal;display:flex}.library-main em svg{width:16px;height:16px;margin-right:var(--space-1)}.library-list article>.icon-button{flex:0 0 var(--touch-target);border:1px solid var(--color-border-strong);color:var(--color-brand)}.library-sources{margin-top:var(--space-6)}.library-sources summary{min-height:var(--touch-target);padding:var(--space-2) 0;font-size:var(--font-section);line-height:var(--line-section);font-weight:var(--weight-semibold);cursor:pointer}.library-sources a{align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);text-decoration:none;display:flex}.library-sources a span{flex:1;min-width:0}.library-sources a small{margin-top:var(--space-1);color:var(--color-text-muted);display:block}.exercise-visual{border-radius:var(--radius-card);background:var(--color-surface-subtle);height:200px;color:var(--color-brand);place-items:center;display:grid;position:relative;overflow:hidden}.exercise-visual>svg{stroke-width:1.5px;width:80px;height:80px}.exercise-visual>span{bottom:var(--space-4);left:var(--space-4);font-size:var(--font-support);line-height:var(--line-support);position:absolute}.exercise-visual.compact{border-radius:var(--radius-control);flex:0 0 80px;width:80px;height:80px}.exercise-visual.compact>svg{width:40px;height:40px}.week-strip{margin:0 0 var(--space-5);grid-template-columns:repeat(7,minmax(0,1fr));gap:0;display:grid}.week-strip button{min-height:80px;min-width:var(--touch-target);justify-content:center;align-items:center;gap:var(--space-1);border-radius:var(--radius-control);flex-direction:column;display:flex}.week-strip small{color:var(--color-text-muted);font-size:var(--font-caption);line-height:var(--line-caption)}.week-strip strong{font-size:var(--font-section);line-height:var(--line-section);border-radius:var(--radius-round);place-items:center;width:32px;height:32px;display:grid}.week-strip i{border-radius:var(--radius-round);background:var(--color-border);width:4px;height:4px}.week-strip i.filled{background:var(--color-brand)}.week-strip .selected{background:var(--color-brand-soft)}.week-strip .selected strong{color:var(--color-on-brand);background:var(--color-brand)}.record-summary{padding:var(--space-4) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-card);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.record-summary>div{align-items:center;gap:var(--space-2);padding:0 var(--space-1);border-right:1px solid var(--color-border);text-align:center;flex-direction:column;display:flex}.record-summary>div:last-child{border:0}.record-summary>div>svg{width:20px;height:20px;color:var(--color-text-muted)}.record-summary span>*{display:block}.record-summary span small{font-size:var(--font-caption);line-height:var(--line-caption);color:var(--color-text-muted)}.record-summary span strong{font-size:var(--font-title);line-height:var(--line-title);margin:var(--space-1) 0}.record-summary span em{font-size:var(--font-caption);line-height:var(--line-caption);font-style:normal;font-weight:var(--weight-regular)}.record-set{flex-wrap:wrap}.record-set .number-badge{display:none}.mood-pill{padding:var(--space-1) var(--space-2);border-radius:var(--radius-round);background:var(--color-brand-soft);color:var(--color-brand);font-size:var(--font-caption);line-height:var(--line-caption);font-style:normal}.record-feedback{align-items:center;gap:var(--space-3);width:100%;min-height:76px;padding:var(--space-4);text-align:left;border-top:1px solid var(--color-border);display:flex}.record-feedback span{flex:1;min-width:0}.record-feedback strong,.record-feedback small{display:block}.record-feedback small{margin-top:var(--space-1);color:var(--color-text-muted);overflow-wrap:anywhere}.profile-hero{align-items:center;gap:var(--space-4);padding:var(--space-2) 0 var(--space-6);display:flex}.profile-hero>span{border-radius:var(--radius-round);background:var(--color-surface-subtle);flex-shrink:0;place-items:center;width:64px;height:64px;display:grid}.profile-hero>span svg{width:32px;height:32px}.profile-hero h2{margin:0 0 var(--space-1)}.profile-hero p{font-size:var(--font-support);line-height:var(--line-support);margin:0}.settings-group{margin-bottom:var(--space-4);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.settings-row{align-items:center;gap:var(--space-3);width:100%;min-height:64px;padding:var(--space-3) 0;text-align:left;border-bottom:1px solid var(--color-border);display:flex;position:relative}.settings-row:last-child{border:0}.settings-icon{color:var(--color-text-muted);flex-shrink:0;place-items:center;display:grid}.settings-row strong{flex:1;min-width:0}.settings-value{white-space:nowrap;text-overflow:ellipsis;max-width:38%;color:var(--color-text-muted);font-size:var(--font-support);line-height:var(--line-support);overflow:hidden}.push-page{top:var(--viewport-top);height:var(--viewport-height);z-index:var(--layer-push);max-width:var(--app-width);overscroll-behavior:contain;padding-bottom:calc(var(--sticky-actions-height,108px) + var(--space-4) + var(--safe-bottom));background:var(--color-surface);margin:0 auto;position:fixed;left:0;right:0;overflow:auto}.push-header{min-height:calc(64px + var(--safe-top));padding:var(--safe-top) var(--space-3) 0;grid-template-columns:var(--touch-target) minmax(0, 1fr) var(--touch-target);gap:var(--space-2);z-index:3;background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;display:grid;position:sticky;top:0}.push-header h1{text-align:center;font-size:var(--font-section);line-height:var(--line-section);overflow-wrap:anywhere;margin:0}.push-action{min-width:var(--touch-target);justify-content:flex-end;display:flex}.detail-page>.exercise-visual{margin:var(--space-4) var(--page-gutter) 0}.detail-content{padding:var(--space-5) var(--page-gutter)}.detail-content h2{font-size:var(--font-title);line-height:var(--line-title);margin-bottom:var(--space-2)}.detail-meta{color:var(--color-text-muted);font-size:var(--font-support);line-height:var(--line-support);align-items:center;display:flex}.detail-meta svg{width:20px;margin-right:var(--space-2)}.detail-meta{margin-bottom:var(--space-6)}.instruction-list{padding:0;list-style:none}.instruction-list li{gap:var(--space-3);margin:var(--space-4) 0;display:flex}.instruction-list b{width:24px;height:24px;color:var(--color-brand);background:var(--color-brand-soft);border-radius:var(--radius-round);font-size:var(--font-support);flex:0 0 24px;place-items:center;display:grid}.cue-cards{gap:var(--space-3);margin:var(--space-5) 0;grid-template-columns:1fr 1fr;display:grid}.cue-cards>div{padding:var(--space-4);background:var(--color-surface-subtle);border-radius:var(--radius-control)}.cue-cards p{margin:var(--space-2) 0 0;font-size:var(--font-support);line-height:var(--line-support)}.caution{gap:var(--space-3);padding:var(--space-4);margin:var(--space-5) 0;color:var(--color-warning);background:var(--color-warning-soft);border-radius:var(--radius-control);display:flex}.source-section a{min-height:var(--touch-target);align-items:center;gap:var(--space-2);font-size:var(--font-support);line-height:var(--line-support);padding:var(--space-2) 0;display:flex}.sticky-actions{z-index:4;left:0;right:0;bottom:calc(100dvh - var(--viewport-top) - var(--viewport-height));width:min(100%, var(--app-width));gap:var(--space-3);padding:var(--space-3) var(--page-gutter) calc(var(--space-3) + var(--safe-bottom));border-top:1px solid var(--color-border);background:var(--color-surface);grid-template-columns:1fr 1.5fr;margin:0 auto;display:grid;position:fixed}.sticky-actions.one{grid-template-columns:1fr}.current-plan-card{width:calc(100% - 2 * var(--page-gutter));gap:var(--space-3);min-height:76px;margin:var(--space-4) var(--page-gutter);padding:var(--space-4);border-radius:var(--radius-card);background:var(--color-brand-soft);text-align:left;align-items:center;display:flex}.current-plan-card:disabled{opacity:1}.current-plan-card>svg:first-child{color:var(--color-brand)}.current-plan-card span{flex:1;min-width:0}.current-plan-card strong,.current-plan-card small{display:block}.current-plan-card strong{margin-bottom:var(--space-1)}.current-plan-card small{color:var(--color-text-muted)}.plan-section-title{flex-wrap:wrap}.plan-section-title h2{font-size:var(--font-body);line-height:var(--line-body)}.plan-section-title>button{font-size:var(--font-support);line-height:var(--line-support)}.plan-tools{padding:0 var(--page-gutter) var(--space-3)}.plan-tools p{font-size:var(--font-support);line-height:var(--line-support);margin-bottom:var(--space-1)}.plan-tools .text-button{align-items:center;gap:var(--space-2);color:var(--color-brand);margin:0;display:flex}.plans-page>.section-title,.plan-list{padding:0 var(--page-gutter)}.plan-list article{grid-template-columns:var(--touch-target) 32px minmax(0, 1fr) var(--touch-target);align-items:center;gap:var(--space-2);padding:var(--space-3);margin-bottom:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);display:grid}.plan-list article>svg{width:20px;color:var(--color-text-muted);justify-self:center}.plan-exercise{min-height:var(--touch-target);text-align:left;grid-column:3/5;min-width:0}.plan-exercise strong,.plan-exercise small{display:block}.plan-exercise strong{overflow-wrap:anywhere}.plan-exercise small{margin-top:var(--space-1);color:var(--color-text-muted)}.reorder-buttons{gap:var(--space-2);grid-column:2/4;display:flex}.reorder-buttons button{min-width:var(--touch-target);min-height:var(--touch-target);border:1px solid var(--color-border);border-radius:var(--radius-control)}.plan-list article>.icon-button:not(.remove-button){grid-area:2/1}.plan-list article>.remove-button{grid-area:2/4}.plans-page>.plain-danger{margin:var(--space-6) auto}.page-empty{margin-top:var(--space-8)}.form-page,.data-page{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}.form-page .push-header,.data-page .push-header{margin-left:calc(-1 * var(--page-gutter));margin-right:calc(-1 * var(--page-gutter))}.form-card{margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card)}label{margin-bottom:var(--space-4);color:var(--color-text-muted);font-size:var(--font-support);line-height:var(--line-support);display:block}input,textarea,select{width:100%;min-width:0;min-height:var(--control-height);margin-top:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font-size:var(--font-body);line-height:var(--line-body);display:block}textarea{resize:vertical;min-height:96px}.field-button{text-align:left;border-bottom:1px solid var(--color-border);width:100%;min-height:64px;margin-bottom:var(--space-4);align-items:center;display:flex}.field-button span{color:var(--color-text-muted);flex:1}.field-button strong{color:var(--color-text);margin-top:var(--space-1);display:block}.privacy-note{gap:var(--space-2);margin:var(--space-4) 0;font-size:var(--font-support);line-height:var(--line-support);display:flex}.privacy-hero{text-align:center;padding:var(--space-6) 0}.privacy-hero>svg{width:48px;height:48px;color:var(--color-brand)}.privacy-hero h2{margin:var(--space-3) 0 var(--space-2)}.file-row{cursor:pointer;margin:0}.file-row input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.catalog-status{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-card);align-items:flex-start;display:flex}.catalog-status div{flex:1;min-width:0}.catalog-status p{margin:var(--space-1) 0;font-size:var(--font-support);line-height:var(--line-support)}.catalog-status small{color:var(--color-text-muted)}.catalog-status button{min-height:var(--touch-target);min-width:var(--touch-target);color:var(--color-brand);font-weight:var(--weight-semibold)}.privacy-copy{padding:var(--space-6) 0}dialog{color:var(--color-text)}dialog::backdrop{background:var(--color-overlay)}.sheet,.action-sheet{inset:auto 0 calc(100dvh - var(--viewport-top) - var(--viewport-height));width:min(100%, var(--app-width));max-width:none;max-height:min(calc(var(--viewport-height) - var(--safe-top) - 80px), 720px);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;background:var(--color-surface);box-shadow:var(--shadow-overlay);border:0;margin:0 auto;padding:0;position:fixed}.sheet[open]{flex-direction:column;display:flex;overflow:hidden}.sheet[open],.action-sheet[open]{animation:surface-in var(--duration-fast) ease-out}@keyframes surface-in{0%{opacity:.5}}.sheet-grabber{width:40px;height:4px;margin:var(--space-3) auto var(--space-1);border-radius:var(--radius-round);background:var(--color-border-strong);flex:none}.sheet>header{grid-template-columns:var(--touch-target) minmax(0, 1fr) var(--touch-target);align-items:center;gap:var(--space-2);min-height:64px;padding:var(--space-2) var(--space-4);flex:none;display:grid}.sheet>header h2{text-align:center;overflow-wrap:anywhere;grid-column:2;margin:0}.sheet>header .icon-button{grid-column:3}.sheet-body{min-height:0;padding:var(--space-2) var(--page-gutter) var(--space-5);overscroll-behavior:contain;flex:1;overflow:auto}.sheet-footer{padding:var(--space-3) var(--page-gutter) calc(var(--space-3) + var(--safe-bottom));border-top:1px solid var(--color-border);background:var(--color-surface);flex:none}.sheet-footer>button{width:100%;margin-top:0}.sheet-intro{font-size:var(--font-support);line-height:var(--line-support)}.safety-box,.personal-limit{padding:var(--space-3);background:var(--color-surface-subtle);border-radius:var(--radius-control)}.personal-limit strong{margin-bottom:var(--space-1);display:block}.dose-editor{gap:0 var(--space-3);margin-top:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));display:grid}.stepper{min-height:var(--control-height);margin-top:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.stepper strong{font-size:var(--font-section);line-height:var(--line-section);text-align:center}.stepper small{font-size:var(--font-support);line-height:var(--line-support);font-weight:var(--weight-regular)}.sheet-list button,.template-list button{align-items:center;gap:var(--space-3);width:100%;min-height:64px;padding:var(--space-3) 0;text-align:left;border-bottom:1px solid var(--color-border);display:flex}.sheet-list button.selected{color:var(--color-brand)}.sheet-list span,.template-list span{flex:1;min-width:0}.sheet-list strong,.sheet-list small,.template-list strong,.template-list small{display:block}.sheet-list small,.template-list small{color:var(--color-text-muted);margin-top:var(--space-1)}.action-sheet{padding:var(--space-5) var(--space-4) calc(var(--space-3) + var(--safe-bottom));overflow:auto}.action-sheet h2{margin:0 0 var(--space-3);text-align:center}.sheet-action{justify-content:center;align-items:center;gap:var(--space-2);width:100%;min-height:56px;padding:var(--space-3);border-bottom:1px solid var(--color-border);display:flex}.sheet-action.cancel{margin-top:var(--space-3);border-radius:var(--radius-control);background:var(--color-surface-subtle);border:0}.alert-dialog{width:min(100% - 32px,352px);max-height:calc(var(--viewport-height) - 96px);top:var(--viewport-top);bottom:calc(100dvh - var(--viewport-top) - var(--viewport-height));padding:var(--space-6);border-radius:var(--radius-card);text-align:center;background:var(--color-surface);border:0;margin:auto;position:fixed;overflow:auto}.alert-dialog>svg{width:32px;height:32px;color:var(--color-warning)}.alert-dialog h2{margin:var(--space-3) 0 var(--space-2)}.alert-message{color:var(--color-text-muted)}.alert-message p{margin:var(--space-2) 0}.alert-actions{gap:var(--space-2);margin-top:var(--space-5);grid-template-columns:1fr 1fr;display:grid}.alert-actions button{min-height:var(--control-height);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-control)}.alert-actions button:last-child{color:var(--color-brand);border-color:currentColor}.alert-actions button.danger-text{color:var(--color-danger)}.two-columns{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));display:grid}.inline-error{color:var(--color-danger);font-size:var(--font-support);line-height:var(--line-support)}.workout-page{top:var(--viewport-top);height:var(--viewport-height);z-index:var(--layer-workout);width:100%;max-width:var(--app-width);padding:calc(var(--space-3) + var(--safe-top)) var(--page-gutter) 0;background:var(--color-surface);flex-direction:column;margin:0 auto;display:flex;position:fixed;left:0;right:0;overflow:hidden}.workout-page>header{grid-template-columns:var(--touch-target) 1fr var(--touch-target);text-align:center;flex:none;align-items:center;display:grid}.workout-body{overscroll-behavior:contain;min-height:0;padding-bottom:var(--space-4);flex:1;overflow:auto}.workout-copy{margin-top:var(--space-3);text-align:center}.workout-copy h1{margin-bottom:var(--space-1)}.workout-copy p{font-size:var(--font-support);line-height:var(--line-support);margin-bottom:var(--space-2)}.workout-page .exercise-visual{width:80px;height:64px;margin:var(--space-2) auto;background:var(--color-surface-subtle)}.workout-page .exercise-visual svg{width:40px;height:40px}.workout-set{text-align:center}.workout-set b{color:var(--color-brand)}.workout-setup{margin-top:var(--space-4)}.step-label{margin:0 0 var(--space-2);color:var(--color-text-muted);font-size:var(--font-support);line-height:var(--line-support);font-weight:var(--weight-semibold)}.setup-controls{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));display:grid}.setup-controls>div{padding:var(--space-3) var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-control);text-align:center;min-width:0}.setup-controls>div>span{color:var(--color-text-muted);font-size:var(--font-support);line-height:var(--line-support)}.mini-stepper{margin-top:var(--space-1);justify-content:space-between;align-items:center;display:flex}.mini-stepper .icon-button{color:var(--color-brand)}.mini-stepper strong{font-size:var(--font-section);line-height:var(--line-section)}.mini-stepper small{font-size:var(--font-support);line-height:var(--line-support);font-weight:var(--weight-regular)}.duration-preview{margin:var(--space-3) 0 0;padding:var(--space-3);border-radius:var(--radius-control);background:var(--color-surface-subtle);text-align:center;font-size:var(--font-support);line-height:var(--line-support)}.duration-preview strong{color:var(--color-text)}.duration-preview small{margin-top:var(--space-1);color:var(--color-text-muted);display:block}.countdown-display{margin:var(--space-4) 0;text-align:center}.countdown-display small{color:var(--color-text-muted);display:block}.countdown-display strong{margin-top:var(--space-1);font-size:var(--font-timer);line-height:var(--line-timer);font-variant-numeric:tabular-nums;display:block}.feeling{margin-top:var(--space-4)}.feeling h2{font-size:var(--font-body);line-height:var(--line-body);margin-bottom:var(--space-2)}.response-options{gap:var(--space-2);margin-bottom:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.response-options button{min-height:var(--control-height);padding:var(--space-2);font-size:var(--font-body);line-height:var(--line-body);border:1px solid var(--color-border-strong);border-radius:var(--radius-control)}.response-options button.selected{border-color:var(--color-brand);color:var(--color-brand);background:var(--color-brand-soft)}.feedback-help,.feedback-warning{font-size:var(--font-support);line-height:var(--line-support);margin:var(--space-2) 0}.feedback-warning{color:var(--color-warning)}.workout-page>footer{gap:var(--space-1);margin:0 calc(-1 * var(--page-gutter));padding:var(--space-3) var(--page-gutter) calc(var(--space-3) + var(--safe-bottom));border-top:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;flex:none;display:flex}.workout-primary,.workout-page>footer .primary-button{width:100%;min-height:var(--control-task)}.workout-secondary{gap:var(--space-2);display:flex}.workout-secondary .text-button{flex:1}.empty-state{width:100%;padding:var(--space-8) var(--space-5);text-align:center;color:var(--color-text-muted);flex-direction:column;align-items:center;display:flex}.empty-state>svg{width:32px;height:32px;margin-bottom:var(--space-3)}.empty-state strong{color:var(--color-text)}.empty-state p{margin:var(--space-2) 0 var(--space-4)}.empty-state>button:not(.primary-button){color:var(--color-brand);min-height:var(--touch-target);font-weight:var(--weight-semibold)}.notification-region{z-index:var(--layer-feedback);top:calc(var(--viewport-top) + var(--safe-top) + var(--space-2));pointer-events:none;width:min(100% - 32px,398px);position:fixed;left:50%;translate:-50%}.toast,.persistent-error{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);box-shadow:var(--shadow-overlay);font-size:var(--font-support);line-height:var(--line-support);overflow-wrap:anywhere;display:flex}.toast{color:var(--color-on-brand);background:var(--color-text)}.toast>svg{width:20px;height:20px}.persistent-error{pointer-events:auto;background:var(--color-danger-soft);color:var(--color-danger);border:1px solid var(--color-danger);flex-wrap:wrap}.persistent-error>span{flex:1;min-width:120px}.persistent-error>button:not(.icon-button){min-height:var(--touch-target);font-size:var(--font-body);line-height:var(--line-body);font-weight:var(--weight-semibold);text-decoration:underline}.loading-screen{background:var(--color-surface);place-content:center;justify-items:center;min-height:100dvh;display:grid}.loading-logo{border-radius:var(--radius-card);width:56px;height:56px;color:var(--color-on-brand);background:var(--color-brand);font-size:var(--font-title);line-height:var(--line-title);place-items:center;display:grid}.loading-screen h1{margin-top:var(--space-4);font-size:var(--font-body);line-height:var(--line-body)}@media (width>=600px){.app-shell{outline:1px solid var(--color-border)}}@media (width<=370px){:root{--page-gutter:var(--space-3)}.library-main{gap:var(--space-2)}.library-list .exercise-visual.compact{flex-basis:64px;width:64px;height:64px}.dose-editor,.two-columns{grid-template-columns:minmax(0,1fr)}.week-strip{margin-left:calc(-1 * var(--page-gutter));margin-right:calc(-1 * var(--page-gutter))}.record-summary>div>svg{display:none}.record-set{gap:var(--space-2)}.settings-group{padding:0 var(--space-3)}.settings-row,.setup-controls{gap:var(--space-2)}.mini-stepper small{display:block}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
