:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.2;--lh-normal: 1.5;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--sp-8: 4rem;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-full: 999px;--header-h: 56px;--nav-h: 60px;--sidebar-w: 240px;--content-max: 880px;--ease: cubic-bezier(.2, 0, 0, 1);--dur: .16s}:root,:root[data-theme=light]{color-scheme:light;--bg: #f5f6f8;--surface: #ffffff;--surface-2: #f0f1f4;--surface-hover: #eef0f3;--text: #16181d;--text-muted: #5a616e;--text-subtle: #868d99;--border: #e2e5ea;--border-strong: #c9ced7;--primary: #3d5afe;--primary-hover: #2f49d6;--primary-contrast: #ffffff;--primary-soft: #e8ecff;--focus-ring: #3d5afe;--shadow-1: 0 1px 2px rgba(16, 18, 23, .06), 0 1px 3px rgba(16, 18, 23, .08);--shadow-2: 0 4px 12px rgba(16, 18, 23, .1);--state-growing: #1f9d57;--state-growing-soft: #e3f5ea;--state-maintaining: #1198a6;--state-maintaining-soft: #ddf2f4;--state-resting: #8a93a3;--state-resting-soft: #eceef2;--state-losing: #d3372b;--state-losing-soft: #fbe5e3}:root[data-theme=dark]{color-scheme:dark;--bg: #0e0f13;--surface: #181a20;--surface-2: #21242c;--surface-hover: #262a33;--text: #eef0f4;--text-muted: #a4abb8;--text-subtle: #767d8b;--border: #2a2e38;--border-strong: #3a3f4b;--primary: #6c83ff;--primary-hover: #8497ff;--primary-contrast: #0e0f13;--primary-soft: #20264a;--focus-ring: #8497ff;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 6px 18px rgba(0, 0, 0, .5);--state-growing: #34c97e;--state-growing-soft: #16291f;--state-maintaining: #2fc3d2;--state-maintaining-soft: #11272a;--state-resting: #8a93a3;--state-resting-soft: #20242c;--state-losing: #f06a5d;--state-losing-soft: #2e1715}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg: #0e0f13;--surface: #181a20;--surface-2: #21242c;--surface-hover: #262a33;--text: #eef0f4;--text-muted: #a4abb8;--text-subtle: #767d8b;--border: #2a2e38;--border-strong: #3a3f4b;--primary: #6c83ff;--primary-hover: #8497ff;--primary-contrast: #0e0f13;--primary-soft: #20264a;--focus-ring: #8497ff;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 6px 18px rgba(0, 0, 0, .5);--state-growing: #34c97e;--state-growing-soft: #16291f;--state-maintaining: #2fc3d2;--state-maintaining-soft: #11272a;--state-resting: #8a93a3;--state-resting-soft: #20242c;--state-losing: #f06a5d;--state-losing-soft: #2e1715}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,p,ul{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--r-sm)}.app{min-height:100dvh;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:20;height:var(--header-h);display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);padding-top:env(safe-area-inset-top);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:var(--fw-bold);letter-spacing:-.01em}.brand-mark{width:26px;height:26px;flex:none}.app-header .spacer{flex:1}.context-pill{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-full);padding:var(--sp-1) var(--sp-3)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.icon-btn:hover{background:var(--surface-hover);border-color:var(--border-strong)}.icon-btn svg{width:18px;height:18px}.icon-btn .moon{display:none}:root[data-theme=dark] .icon-btn .sun{display:none}:root[data-theme=dark] .icon-btn .moon{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme]) .icon-btn .sun{display:none}:root:not([data-theme]) .icon-btn .moon{display:block}}.app-main{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--sp-5) var(--sp-4);padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--sp-5))}.app-main:focus{outline:none}.app-nav{position:fixed;z-index:20;bottom:0;left:0;right:0;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:flex;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(1.4) blur(8px);border-top:1px solid var(--border)}.app-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-subtle);transition:color var(--dur) var(--ease)}.app-nav a svg{width:22px;height:22px}.app-nav a.is-active{color:var(--primary)}.app-nav a:hover{color:var(--text)}@media(min-width:768px){.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--header-h) 1fr;grid-template-areas:"sidebar header" "sidebar main"}.app-header{grid-area:header}.app-nav{grid-area:sidebar;position:sticky;top:0;height:100dvh;flex-direction:column;justify-content:flex-start;gap:var(--sp-1);padding:var(--sp-4) var(--sp-3);border-top:none;border-right:1px solid var(--border);backdrop-filter:none;background:var(--surface)}.app-nav a{flex:none;flex-direction:row;justify-content:flex-start;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-sm)}.app-nav a.is-active{background:var(--primary-soft)}.app-nav a:hover:not(.is-active){background:var(--surface-hover);color:var(--text)}.app-main{grid-area:main;padding:var(--sp-6) var(--sp-6);padding-bottom:var(--sp-7)}}.view-head{margin-bottom:var(--sp-5)}.kicker{text-transform:uppercase;letter-spacing:.08em;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--primary);margin-bottom:var(--sp-2)}.view-title{font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:-.02em}.view-lead{margin-top:var(--sp-2);color:var(--text-muted);max-width:56ch}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-1)}.stub-flag{display:inline-block;font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);background:var(--surface-2);border-radius:var(--r-full);padding:var(--sp-1) var(--sp-3);margin-bottom:var(--sp-4)}.stub-list{list-style:none;padding:0;display:grid;gap:var(--sp-3)}.stub-list li{position:relative;padding-left:var(--sp-5);color:var(--text-muted)}.stub-list li:before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:var(--r-full);background:var(--primary);opacity:.6}.view-actions{margin-top:var(--sp-5);display:flex;flex-wrap:wrap;gap:var(--sp-3)}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:var(--fw-semibold);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;transition:background var(--dur) var(--ease),transform var(--dur) var(--ease)}.btn:hover{background:var(--surface-hover)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--surface-hover)}.btn-sm{font-size:var(--fs-xs);padding:var(--sp-2) var(--sp-3)}.control-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-4)}.labeled-control{display:flex;flex-direction:column;gap:var(--sp-2)}.control-label,.strip-label,.field-label,.card-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle)}.control-switch{margin-left:auto}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md)}.segmented.is-disabled{opacity:.6}.seg-btn{border:none;background:transparent;color:var(--text-muted);font-weight:var(--fw-semibold);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-4);border-radius:calc(var(--r-md) - 3px);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.seg-btn:hover:not(.is-selected):not(:disabled){color:var(--text)}.seg-btn.is-selected{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}.seg-btn:disabled{cursor:default}.day-nudge{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);color:var(--text-muted);background:var(--primary-soft);border-radius:var(--r-md)}.day-nudge svg{flex:none;color:var(--primary)}.bout-cards{display:grid;gap:var(--sp-4);grid-template-columns:1fr}@media(min-width:600px){.bout-cards{grid-template-columns:repeat(3,1fr)}}.bout-card{display:flex;flex-direction:column;gap:var(--sp-3);text-align:left;cursor:pointer;border-color:var(--border);transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.bout-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2)}.bout-card:active{transform:translateY(1px)}.bout-card.is-done{border-color:color-mix(in srgb,var(--state-growing) 40%,var(--border))}.bout-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.bout-name{font-weight:var(--fw-bold);font-size:var(--fs-lg);letter-spacing:-.01em}.status-pill{font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:2px var(--sp-2);border-radius:var(--r-full);background:var(--surface-2);color:var(--text-subtle);white-space:nowrap}.status-pill.is-active{background:var(--primary-soft);color:var(--primary)}.status-pill.is-done{background:var(--state-growing-soft);color:var(--state-growing)}.bout-ex-list{list-style:none;padding:0;display:grid;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-muted);flex:1}.bout-ex-list li.is-optional{color:var(--text-subtle)}.opt-tag{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-subtle);margin-left:var(--sp-2)}.bout-card-foot{display:flex;align-items:center;justify-content:space-between;padding-top:var(--sp-3);border-top:1px solid var(--border)}.foot-meta{font-size:var(--fs-xs);color:var(--text-subtle)}.go-arrow{color:var(--primary);display:inline-flex}.strip-block{margin-top:var(--sp-6);display:grid;gap:var(--sp-3)}.mstrip{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.mstrip-chip{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}.mstrip-dot{width:8px;height:8px;border-radius:var(--r-full);background:var(--state-resting);flex:none}.state-growing .mstrip-dot,.state-growing.mstrip-chip .mstrip-dot{background:var(--state-growing)}.state-maintaining .mstrip-dot{background:var(--state-maintaining)}.state-resting .mstrip-dot{background:var(--state-resting)}.state-losing .mstrip-dot{background:var(--state-losing)}.mstrip-chip.state-growing{background:var(--state-growing-soft);border-color:transparent;color:var(--state-growing)}.mstrip-chip.state-maintaining{background:var(--state-maintaining-soft);border-color:transparent;color:var(--state-maintaining)}.mstrip-chip.state-losing{background:var(--state-losing-soft);border-color:transparent;color:var(--state-losing)}.bout-switch{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-5);overflow-x:auto}.bout-tab{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;cursor:pointer}.bout-tab.is-current{border-color:var(--primary);color:var(--text);background:var(--primary-soft)}.bout-tab .tab-dot{width:8px;height:8px;border-radius:var(--r-full);background:var(--text-subtle);flex:none}.bout-tab.state-active .tab-dot{background:var(--primary)}.bout-tab.state-done .tab-dot{background:var(--state-growing)}.card-label{margin-bottom:var(--sp-3)}.warmup-card{margin-bottom:var(--sp-4)}.warmup-list{list-style:none;padding:0;display:grid;gap:var(--sp-2)}.check-line{display:flex;align-items:flex-start;gap:var(--sp-3);cursor:pointer;color:var(--text);font-size:var(--fs-sm)}.check-line input{width:20px;height:20px;margin-top:1px;accent-color:var(--primary);flex:none}.check-line.is-checked span{color:var(--text-subtle);text-decoration:line-through}.exercise-list{display:grid;gap:var(--sp-4)}.exercise-card{padding:var(--sp-4)}.exercise-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.exercise-id{display:grid;gap:2px}.exercise-name{font-weight:var(--fw-bold);font-size:var(--fs-lg);letter-spacing:-.01em}.exercise-target{font-size:var(--fs-xs);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em}.swap-btn{flex:none}.ex-nudge{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);background:var(--surface-2);border-radius:var(--r-sm)}.ex-nudge svg{flex:none;color:var(--primary)}.nudge-dismiss{margin-left:auto;border:none;background:transparent;color:var(--text-subtle);font-size:var(--fs-lg);line-height:1;cursor:pointer;padding:0 var(--sp-1)}.set-rows{display:grid;gap:var(--sp-2)}.set-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2);border-radius:var(--r-md);background:var(--surface-2)}.set-row.is-done{background:var(--state-growing-soft)}.set-num{width:22px;flex:none;text-align:center;font-weight:var(--fw-bold);color:var(--text-subtle)}.set-main{flex:1;display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.set-fields{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.set-field{display:grid;gap:3px}.set-ref{display:flex;align-items:center;gap:var(--sp-2);min-height:16px}.ref-muted{font-size:var(--fs-xs);color:var(--text-subtle)}.up-badge{display:inline-flex;align-items:center;gap:2px;font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--state-growing);background:var(--state-growing-soft);padding:1px var(--sp-2);border-radius:var(--r-full)}.stepper{display:inline-flex;align-items:center;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.stepper-btn{width:36px;height:38px;border:none;background:var(--surface);color:var(--text);font-size:var(--fs-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur) var(--ease)}.stepper-btn:hover{background:var(--surface-hover)}.stepper-input{width:3.5ch;border:none;background:transparent;color:var(--text);font:inherit;font-weight:var(--fw-semibold);text-align:center;padding:0;-moz-appearance:textfield}.stepper-input:focus{outline:none}.set-check{flex:none;width:40px;height:40px;border-radius:var(--r-md);border:1.5px solid var(--border-strong);background:var(--surface);color:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.set-check:hover{border-color:var(--primary)}.set-check.is-checked{background:var(--state-growing);border-color:var(--state-growing);color:#fff}.set-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.swap-panel{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border)}.swap-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle);margin-bottom:var(--sp-2)}.swap-options{list-style:none;padding:0;display:grid;gap:var(--sp-1)}.swap-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;text-align:left;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.swap-option:hover{background:var(--surface-hover);border-color:var(--border-strong)}.swap-opt-name{font-weight:var(--fw-medium);font-size:var(--fs-sm)}.swap-opt-meta{font-size:var(--fs-xs);color:var(--text-subtle);white-space:nowrap}.bout-footer{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-6)}.bout-footer .btn-primary{flex:1;justify-content:center}.setting-card{margin-bottom:var(--sp-4)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.setting-name{font-weight:var(--fw-semibold)}.setting-hint{font-size:var(--fs-sm);color:var(--text-muted)}.status-pill.state-growing{background:var(--state-growing-soft);color:var(--state-growing)}.status-pill.state-maintaining{background:var(--state-maintaining-soft);color:var(--state-maintaining)}.status-pill.state-resting{background:var(--state-resting-soft);color:var(--state-resting)}.status-pill.state-losing{background:var(--state-losing-soft);color:var(--state-losing)}.mleg{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-4);margin:var(--sp-3) 0 var(--sp-1)}.mleg-item{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-muted)}.mleg-dot{width:10px;height:10px;border-radius:50%;background:var(--state-resting)}.mleg-item.state-growing .mleg-dot{background:var(--state-growing)}.mleg-item.state-maintaining .mleg-dot{background:var(--state-maintaining)}.mleg-item.state-resting .mleg-dot{background:var(--state-resting)}.mleg-item.state-losing .mleg-dot{background:var(--state-losing)}.mleg-count{font-weight:var(--fw-semibold);color:var(--text)}.bodymap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-items:center;gap:var(--sp-4);max-width:460px;margin:var(--sp-4) auto var(--sp-5)}.bm-figure{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:100%;max-width:200px}.bm-figure figcaption{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle)}.bm-svg{width:100%;height:auto}.bm-silhouette{fill:var(--surface-2);stroke:var(--border);stroke-width:1}.bm-zone{stroke:var(--surface);stroke-width:.6}.bm-muscle{cursor:pointer;transition:fill-opacity var(--dur) var(--ease);outline:none}.bm-muscle .bm-zone{fill:var(--state-resting);fill-opacity:.55}.bm-muscle.state-growing .bm-zone{fill:var(--state-growing);fill-opacity:.9}.bm-muscle.state-maintaining .bm-zone{fill:var(--state-maintaining);fill-opacity:.9}.bm-muscle.state-resting .bm-zone{fill:var(--state-resting);fill-opacity:.5}.bm-muscle.state-losing .bm-zone{fill:var(--state-losing);fill-opacity:.92}.bm-muscle:hover .bm-zone,.bm-muscle:focus-visible .bm-zone{fill-opacity:1}.bm-muscle.is-selected .bm-zone{fill-opacity:1;stroke:var(--text);stroke-width:1.5}.landmark-bar{display:flex;flex-direction:column;gap:5px}.lb-track{position:relative;height:10px;border-radius:var(--r-full);background:var(--surface-2);overflow:hidden}.lb-zone{position:absolute;top:0;bottom:0}.lb-zone.zone-under{background:var(--surface-hover)}.lb-zone.zone-maintain{background:var(--state-maintaining-soft)}.lb-zone.zone-grow{background:var(--state-growing-soft)}.lb-zone.zone-over{background:var(--state-losing-soft)}.lb-tick{position:absolute;top:0;bottom:0;width:1px;background:var(--border-strong);opacity:.55}.lb-tick.is-strong{opacity:.85;background:var(--text-subtle)}.lb-marker{position:absolute;top:-1px;bottom:-1px;width:3px;border-radius:2px;background:var(--text);transform:translate(-50%);box-shadow:0 0 0 1.5px var(--surface)}.lb-scale{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-subtle)}.lb-now{font-weight:var(--fw-semibold);color:var(--text-muted)}.muscle-detail{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);margin:0 0 var(--sp-5);box-shadow:var(--shadow-1)}.muscle-detail.state-growing{border-left:3px solid var(--state-growing)}.muscle-detail.state-maintaining{border-left:3px solid var(--state-maintaining)}.muscle-detail.state-resting{border-left:3px solid var(--state-resting)}.muscle-detail.state-losing{border-left:3px solid var(--state-losing)}.muscle-detail.is-empty{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface-2);border:1px dashed var(--border-strong);box-shadow:none;color:var(--text-muted);font-size:var(--fs-sm)}.muscle-detail.is-empty p{margin:0}.muscle-detail.is-empty svg{flex:none;color:var(--text-subtle)}.md-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-3)}.md-name{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.md-status{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px;line-height:var(--lh-normal)}.md-fix{margin-top:var(--sp-4)}.md-fix-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--fw-semibold);color:var(--text-subtle);margin-bottom:var(--sp-2)}.fix-options{list-style:none;display:flex;flex-direction:column;gap:var(--sp-1)}.fix-option{display:flex;justify-content:space-between;gap:var(--sp-3);align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--surface-2);border-radius:var(--r-sm);font-size:var(--fs-sm)}.fix-name{font-weight:var(--fw-medium)}.fix-meta{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:var(--fs-xs);color:var(--text-subtle)}.fix-used{color:var(--state-maintaining)}.muscle-group{margin-top:var(--sp-4)}.mgroup-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--fw-semibold);color:var(--text-subtle);margin-bottom:var(--sp-2)}.mrow-list{display:flex;flex-direction:column;gap:var(--sp-2)}.mrow{display:grid;grid-template-columns:auto 1fr 92px auto;align-items:center;gap:var(--sp-3);width:100%;text-align:left;padding:var(--sp-2) var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer}.mrow:hover{border-color:var(--border-strong);background:var(--surface-hover)}.mrow.is-selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.mrow-dot{width:10px;height:10px;border-radius:50%;background:var(--state-resting)}.mrow.state-growing .mrow-dot{background:var(--state-growing)}.mrow.state-maintaining .mrow-dot{background:var(--state-maintaining)}.mrow.state-resting .mrow-dot{background:var(--state-resting)}.mrow.state-losing .mrow-dot{background:var(--state-losing)}.mrow-name{font-size:var(--fs-sm);font-weight:var(--fw-medium)}.mrow-bar{width:92px}.mrow-bar .lb-track{height:8px}.mrow-sets{font-variant-numeric:tabular-nums;font-weight:var(--fw-semibold);color:var(--text-muted);min-width:22px;text-align:right}.history-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);text-align:center;padding:var(--sp-6) var(--sp-4);color:var(--text-muted)}.history-empty svg{color:var(--text-subtle)}.history-block{margin-top:var(--sp-6)}.block-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}.block-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.trend-picker{font:inherit;font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);max-width:60%}.trend-host{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:var(--shadow-1)}.spark-wrap{width:100%}.spark{width:100%;height:auto;display:block}.spark-line{fill:none;stroke:var(--primary);stroke-width:2;vector-effect:non-scaling-stroke}.spark-fill{fill:var(--primary-soft);opacity:.5;stroke:none}.spark-dot{fill:var(--primary)}.spark-dot.is-last{stroke:var(--surface);stroke-width:2}.trend-stat{display:flex;justify-content:space-between;align-items:baseline;margin-top:var(--sp-2)}.trend-best{font-weight:var(--fw-semibold)}.trend-list{list-style:none;margin-top:var(--sp-3);display:flex;flex-direction:column}.trend-item{display:grid;grid-template-columns:86px 1fr auto;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);padding:var(--sp-2) 0;border-top:1px solid var(--border)}.trend-date{color:var(--text-muted);font-size:var(--fs-xs)}.trend-sets{color:var(--text);font-variant-numeric:tabular-nums}.session-list{display:flex;flex-direction:column;gap:var(--sp-2)}.session-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.session-head{display:flex;align-items:center;gap:var(--sp-3);width:100%;text-align:left;padding:var(--sp-3) var(--sp-4);background:none;cursor:pointer}.session-head:hover{background:var(--surface-hover)}.session-when{display:flex;align-items:center;gap:var(--sp-2)}.session-date{font-weight:var(--fw-semibold);font-size:var(--fs-sm);white-space:nowrap}.workout-pill{font-size:var(--fs-xs);font-weight:var(--fw-bold);background:var(--primary-soft);color:var(--primary);padding:1px 7px;border-radius:var(--r-full)}.session-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto;color:var(--text-muted);font-size:var(--fs-sm)}.dot-sep{color:var(--text-subtle)}.session-chev{color:var(--text-subtle);display:inline-flex;transition:transform var(--dur) var(--ease)}.session-item.is-open .session-chev{transform:rotate(180deg)}.session-detail{padding:var(--sp-1) var(--sp-4) var(--sp-3);border-top:1px solid var(--border)}.log-bout{margin-top:var(--sp-3)}.log-bout-name{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--fw-semibold);color:var(--text-subtle);margin-bottom:4px}.log-row{display:grid;grid-template-columns:1fr auto;gap:var(--sp-3);padding:3px 0;font-size:var(--fs-sm)}.log-ex{font-weight:var(--fw-medium)}.log-sets{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:right}@media(max-width:380px){.mrow{grid-template-columns:auto 1fr auto}.mrow-bar{display:none}}.card-label.spaced{margin-top:var(--sp-4)}.setting-card .card-label{margin-bottom:var(--sp-3)}.setting-card .setting-row+.setting-row{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border)}.editor-nav{padding-bottom:var(--sp-2)}.nav-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) var(--sp-2);margin:0 calc(-1 * var(--sp-2));border-radius:var(--r-md);color:inherit;text-decoration:none;transition:background var(--dur) var(--ease)}.nav-row:hover{background:var(--surface-hover)}.nav-row+.nav-row{border-top:1px solid var(--border)}.nav-row svg{color:var(--text-subtle);flex:none}.editor-back{display:inline-flex;align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-4);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-muted);text-decoration:none;background:none;border:none;cursor:pointer;padding:0}.editor-back:hover{color:var(--text)}.editor-back.as-btn{margin-bottom:var(--sp-4)}.editor-body{display:grid;gap:var(--sp-4)}.switch{position:relative;display:inline-flex;flex:none;cursor:pointer}.switch-input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch-track{width:42px;height:24px;border-radius:var(--r-full);background:var(--border-strong);transition:background var(--dur) var(--ease);display:inline-flex;align-items:center;padding:2px}.switch-thumb{width:20px;height:20px;border-radius:var(--r-full);background:#fff;box-shadow:var(--shadow-1);transition:transform var(--dur) var(--ease)}.switch-input:checked+.switch-track{background:var(--primary)}.switch-input:checked+.switch-track .switch-thumb{transform:translate(18px)}.switch-input:focus-visible+.switch-track{outline:2px solid var(--focus-ring);outline-offset:2px}.inp{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);width:100%;transition:border-color var(--dur) var(--ease)}.inp:focus-visible{outline:none;border-color:var(--primary)}.inp-inline{font-weight:var(--fw-semibold)}.inp-title{font-size:var(--fs-lg);font-weight:var(--fw-bold)}.inp-sm{font-size:var(--fs-sm);padding:var(--sp-1) var(--sp-2);width:auto}.inp-num{width:4.5rem;text-align:center;font-variant-numeric:tabular-nums}.inp-area{resize:vertical;line-height:var(--lh-normal)}.inp.grow,.grow{flex:1 1 auto;min-width:0}select.inp{cursor:pointer}.edit-list{display:grid;gap:var(--sp-2)}.edit-row{display:flex;align-items:center;gap:var(--sp-3)}.edit-row .inp-inline,.edit-row .inp-title{flex:1 1 auto;min-width:0}.edit-row-end{display:inline-flex;align-items:center;gap:var(--sp-2);margin-left:auto;flex:none}.add-row{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.add-row .inp{flex:1 1 auto}.add-row .btn,.add-row .seg-btn{flex:none}.inline-flag{display:inline-flex;align-items:center;gap:var(--sp-2)}.inline-flag .setting-hint{font-size:var(--fs-xs)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border-radius:var(--r-md);border:1px solid transparent;background:transparent;color:var(--text-subtle);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.icon-btn:hover{background:var(--surface-hover);color:var(--state-losing)}.tag-muted,.tag-edit{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;padding:1px var(--sp-2);border-radius:var(--r-full);margin-left:var(--sp-2)}.tag-muted{color:var(--text-subtle);background:var(--surface-2)}.tag-edit{color:var(--primary);background:var(--primary-soft)}.equip-grid{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}.equip-pick{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);transition:all var(--dur) var(--ease)}.equip-pick.is-on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);font-weight:var(--fw-semibold)}.muscle-edit-head,.muscle-edit-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) 5.5rem 8rem 34px;gap:var(--sp-2);align-items:center}.muscle-edit-head{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle);padding:0 0 var(--sp-1)}.muscle-edit-row .inp{width:100%}.landmark-edit-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.landmark-name{font-weight:var(--fw-semibold);font-family:var(--font-mono);font-size:var(--fs-sm)}.lm-nums{display:flex;gap:var(--sp-2);flex-wrap:wrap}.lm-num{display:inline-flex;flex-direction:column;gap:2px;align-items:center}.lm-num-label{font-size:var(--fs-xs);color:var(--text-subtle);font-weight:var(--fw-semibold)}.lm-num .inp-num{width:3.5rem}.list-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%;text-align:left;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:inherit;cursor:pointer;font:inherit;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.list-row:hover{background:var(--surface-hover);border-color:var(--border-strong)}.list-row svg{color:var(--text-subtle);flex:none}.list-row.grow{flex:1 1 auto}.plan-row{display:flex;align-items:center;gap:var(--sp-2)}.field-grid{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-top:var(--sp-4);align-items:flex-end}.field{display:flex;flex-direction:column;gap:var(--sp-2)}.field.wide{flex:1 1 16rem}.field.inline-flag{flex-direction:row;align-items:center;gap:var(--sp-3)}.inline-id{flex-direction:row;align-items:center;gap:var(--sp-2)}.inline-id .inp-sm{width:4rem}.contrib-row{display:flex;align-items:center;gap:var(--sp-3)}.contrib-name{flex:1 1 auto;font-weight:var(--fw-medium)}.workout-card{border-left:3px solid var(--primary)}.bout-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);margin-top:var(--sp-3);display:grid;gap:var(--sp-3)}.slot-head,.slot-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,2fr) auto 34px;gap:var(--sp-2);align-items:center}.slot-head{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle)}.slot-row .inp{width:100%}.import-status{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted)}.import-status.is-error{color:var(--state-losing)}.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + var(--sp-4));transform:translate(-50%,8px);background:var(--text);color:var(--bg);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-full);font-size:var(--fs-sm);font-weight:var(--fw-semibold);box-shadow:var(--shadow-2);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);z-index:50}.toast.is-shown{opacity:1;transform:translate(-50%)}.toast-error{background:var(--state-losing);color:#fff}.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}body.signed-out .app-nav,body.signed-out .context-pill{display:none}.auth-view{min-height:calc(100vh - var(--header-h) - var(--sp-7));display:flex;align-items:flex-start;justify-content:center;padding:var(--sp-6) var(--sp-4)}.auth-card{width:100%;max-width:25rem;margin-top:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3)}.auth-brand{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:var(--fw-bold);color:var(--text)}.auth-mark svg{width:26px;height:26px;display:block;color:var(--primary)}.auth-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin:var(--sp-2) 0 0}.auth-lead{color:var(--text-muted);font-size:var(--fs-sm);margin:0}.auth-form{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-2)}.auth-field{display:flex;flex-direction:column;gap:var(--sp-2)}.auth-hint{font-size:var(--fs-xs);color:var(--text-subtle);margin:0}.auth-submit{justify-content:center;width:100%;margin-top:var(--sp-1)}.auth-row-end{display:flex;justify-content:flex-end}.auth-link{background:none;border:none;padding:0;cursor:pointer;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--primary)}.auth-link:hover{text-decoration:underline}.auth-msg{font-size:var(--fs-sm);margin:0;padding:var(--sp-3);border-radius:var(--r-md)}.auth-msg--error{color:var(--state-losing);background:var(--state-losing-soft)}.auth-msg--info{color:var(--text);background:var(--primary-soft)}.auth-divider{display:flex;align-items:center;gap:var(--sp-3);color:var(--text-subtle);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;margin:var(--sp-4) 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-social{width:100%;justify-content:center;gap:var(--sp-3)}.auth-social+.auth-social{margin-top:var(--sp-2)}.auth-social-icon{display:inline-flex}.auth-footer{font-size:var(--fs-sm);color:var(--text-muted);text-align:center;margin:var(--sp-4) 0 0}@media(max-width:600px){.muscle-edit-head,.muscle-edit-row{grid-template-columns:1fr 1fr;grid-auto-rows:auto}.muscle-edit-head,.slot-head{display:none}.slot-row{grid-template-columns:1fr 1fr}}.offline-banner{position:fixed;left:50%;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--sp-3));z-index:40;max-width:min(92vw,30rem);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-full);box-shadow:var(--shadow-2);text-align:center;pointer-events:none;opacity:0;transform:translate(-50%,calc(100% + var(--sp-5)));transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease)}body.is-offline .offline-banner{opacity:1;transform:translate(-50%)}@media(min-width:768px){.offline-banner{bottom:calc(env(safe-area-inset-bottom) + var(--sp-4))}}.empty-state{max-width:28rem;margin:var(--sp-6) auto;padding:var(--sp-6) var(--sp-4);text-align:center}.empty-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:0 0 var(--sp-2)}.empty-lead{color:var(--text-muted);margin:0 0 var(--sp-4)}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/*# sourceMappingURL=main.css.map */
