:root{color-scheme:light dark;--font-display: "Barlow Condensed", "Arial Narrow", sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--radius: 6px;--radius-sm: 4px;--tap: 44px;--bg: #f4f4f4;--surface: #ffffff;--surface-2: #ececec;--border: #d6d6d6;--text: #0a0a0a;--text-dim: #5c5c5c;--text-faint: #8a8a8a;--accent: #0a9f00;--accent-strong: #39ff14;--accent-fill: #39ff14;--on-accent: #0a0a0a;--danger: #d0021b;--warning: #e07b00;--set-warmup: #d99a00;--set-working: var(--text);--set-drop: #7b3fe4;--set-failure: #d0021b;--body-base: #cfcfcf;--body-outline: #9a9a9a;--body-skin: #e6e6e6;--body-stroke: #f4f4f4;--muscle-selected: #39ff14;--muscle-primary: #39ff14;--muscle-secondary: rgba(57, 255, 20, .42);--rec-never: #bdbdbd;--rec-fresh: #1fbf3a;--rec-low: #b5e61d;--rec-mid: #ff8c1a;--rec-high: #ff2d2d;--body-muscle: #b4b4b4;--muscle-glow: rgba(57, 255, 20, .45);--muscle-active-edge: #0a9f00;--chart-grid: rgba(0, 0, 0, .08);--heat-0: #e3e3e3}@media(prefers-color-scheme:dark){:root{--bg: #0a0a0a;--surface: #151515;--surface-2: #1f1f1f;--border: #2a2a2a;--text: #f5f5f5;--text-dim: #a3a3a3;--text-faint: #6b6b6b;--accent: #39ff14;--accent-strong: #39ff14;--accent-fill: #39ff14;--on-accent: #0a0a0a;--danger: #ff3b3b;--warning: #ffa31a;--set-warmup: #ffc233;--set-working: var(--text);--set-drop: #a77bff;--set-failure: #ff4d4d;--body-base: #3a3a3a;--body-outline: #555555;--body-skin: #262626;--body-stroke: #0a0a0a;--muscle-selected: #39ff14;--muscle-primary: #39ff14;--muscle-secondary: rgba(57, 255, 20, .38);--rec-never: #4a4a4a;--rec-fresh: #22c43f;--rec-low: #c6f21f;--rec-mid: #ff9a2e;--rec-high: #ff3434;--body-muscle: #454545;--muscle-glow: rgba(57, 255, 20, .6);--muscle-active-edge: #39ff14;--chart-grid: rgba(255, 255, 255, .08);--heat-0: #1f1f1f}}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2) format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/barlow-condensed-vietnamese-800-normal-CpjukuLw.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-800-normal-BZxKbt5V.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/barlow-condensed-latin-ext-800-normal-DGNyg4u8.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-800-normal-gY_0Gifi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/barlow-condensed-latin-800-normal-BKzMuPgK.woff2) format("woff2"),url(/assets/barlow-condensed-latin-800-normal-e9GbPXiK.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}body{min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}a{color:var(--accent)}img{display:block;max-width:100%}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.display,h1,h2,h3{font-family:var(--font-display);letter-spacing:.01em;margin:0}h1{font-size:34px;font-weight:800;text-transform:uppercase;line-height:1}h2{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}h3{font-size:22px;font-weight:700;line-height:1.1}.big-num{font-family:var(--font-display);font-weight:800;font-size:40px;line-height:1;font-variant-numeric:tabular-nums}.mid-num{font-family:var(--font-display);font-weight:700;font-size:26px;line-height:1;font-variant-numeric:tabular-nums}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.small{font-size:13px}.tiny{font-size:11px}.accent{color:var(--accent)}.ex-name{display:flex;flex-direction:column;min-width:0}.ex-name .sr{font-weight:700;line-height:1.2}.ex-name .en{font-size:12px;color:var(--text-faint);line-height:1.25}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app{min-height:100dvh;display:flex;flex-direction:column}.page{flex:1;padding:calc(env(safe-area-inset-top) + 14px) 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 24px);max-width:720px;width:100%;margin:0 auto}.page.with-workout-bar{padding-bottom:calc(var(--tabbar-h) + 52px + env(safe-area-inset-bottom) + 24px)}:root{--tabbar-h: 58px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;min-height:44px}.page-header .back{margin-left:-10px}.section{margin-top:24px}.section>h2{margin-bottom:10px}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.col{display:flex;flex-direction:column;gap:8px}.grow{flex:1;min-width:0}.stack>*+*{margin-top:10px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.card.tight{padding:10px}.card+.card{margin-top:10px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{display:flex;flex-direction:column;gap:4px}.stat .label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:0 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);font-weight:700;font-size:15px;text-decoration:none;color:var(--text)}.btn:active{transform:translateY(1px);filter:brightness(.95)}.btn:disabled{opacity:.45;pointer-events:none}.btn.primary{background:var(--accent-fill);color:var(--on-accent);border-color:var(--accent-fill)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent);background:transparent}.btn.ghost{background:transparent;border-color:transparent}.btn.block{width:100%}.btn.hero{width:100%;min-height:72px;font-family:var(--font-display);font-size:28px;font-weight:800;text-transform:uppercase;letter-spacing:.02em;border-radius:var(--radius)}.btn.hero small{font-size:18px;font-weight:600;opacity:.75}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text);padding:0;flex:none}.icon-btn:active{background:var(--surface-2)}.icon{width:22px;height:22px;flex:none}.segmented{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px;gap:2px}.segmented.full{display:flex;width:100%}.segmented button{flex:1;min-height:36px;padding:0 12px;border:none;background:transparent;border-radius:3px;font-family:var(--font-display);font-weight:700;font-size:16px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.segmented button[aria-pressed=true]{background:var(--text);color:var(--bg)}.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;margin:0 -16px;padding-left:16px;padding-right:16px}.chips::-webkit-scrollbar{display:none}.chip{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:14px;font-weight:600;white-space:nowrap}.chip[aria-pressed=true]{background:var(--accent-fill);color:var(--on-accent);border-color:var(--accent-fill)}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--text-dim)}.tag.primary{background:var(--accent-fill);color:var(--on-accent)}.input,select.input{width:100%;min-height:var(--tap);padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);font-size:16px}.input:focus{outline:2px solid var(--accent);outline-offset:-1px}.search{position:relative}.search .icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}.search .input{padding-left:42px;padding-right:44px}.search .clear{position:absolute;right:0;top:0}label.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--text-dim)}.check-row{display:flex;align-items:center;gap:12px;min-height:var(--tap);font-size:16px}.check-row input{width:22px;height:22px;accent-color:var(--accent)}.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);text-decoration:none;color:inherit;min-height:60px;background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left}.list-item:active{background:var(--surface-2)}.thumb{width:52px;height:52px;border-radius:var(--radius-sm);object-fit:cover;background:#fff;flex:none}.thumb.sm{width:40px;height:40px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{flex:1;height:var(--tabbar-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-faint);text-decoration:none;font-size:10.5px;font-weight:600;letter-spacing:.02em}.tabbar a.active{color:var(--accent)}.tabbar a.active .icon{stroke-width:2.4}.workout-bar{position:fixed;left:8px;right:8px;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 6px);z-index:29;display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:0 16px;border-radius:var(--radius);background:var(--accent-fill);color:var(--on-accent);font-family:var(--font-display);font-weight:800;font-size:19px;text-transform:uppercase;text-decoration:none;letter-spacing:.02em;box-shadow:0 6px 20px #00000040}.backdrop{position:fixed;inset:0;z-index:60;background:#0000008c;display:flex;align-items:flex-end;justify-content:center;animation:fade .12s ease-out}.backdrop.center{align-items:center;padding:24px}.sheet{width:100%;max-width:720px;max-height:calc(100dvh - env(safe-area-inset-top) - 24px);overflow-y:auto;background:var(--surface);border-radius:14px 14px 0 0;padding:10px 16px calc(env(safe-area-inset-bottom) + 16px);border-top:2px solid var(--accent-fill)}.sheet.full{height:calc(100dvh - env(safe-area-inset-top) - 8px);max-height:none;display:flex;flex-direction:column;padding-bottom:0}.sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 10px}.sheet-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.sheet-title h3{font-size:24px;text-transform:uppercase}.dialog{width:100%;max-width:380px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:20px}.dialog h3{margin-bottom:8px;text-transform:uppercase}.dialog .actions{display:flex;flex-direction:column;gap:8px;margin-top:18px}.menu-list{display:flex;flex-direction:column}.menu-list button,.menu-list a{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 4px;border:none;border-bottom:1px solid var(--border);background:none;text-align:left;font-size:16px;font-weight:600;text-decoration:none;color:var(--text);width:100%}.menu-list button.danger{color:var(--danger)}.menu-list .value{margin-left:auto;color:var(--text-dim);font-weight:500}@keyframes fade{0%{opacity:0}}.toast-wrap{position:fixed;left:0;right:0;top:calc(env(safe-area-inset-top) + 10px);z-index:100;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.toast{background:var(--text);color:var(--bg);padding:10px 16px;border-radius:var(--radius-sm);font-weight:700;font-size:14px;box-shadow:0 8px 24px #0000004d;animation:fade .15s ease-out}.banner{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius);background:color-mix(in srgb,var(--warning) 16%,var(--surface));border:1px solid color-mix(in srgb,var(--warning) 50%,transparent);font-size:14px;font-weight:600}.banner.info{background:color-mix(in srgb,var(--accent-fill) 14%,var(--surface));border-color:color-mix(in srgb,var(--accent-fill) 60%,transparent)}.top-banner{position:fixed;left:8px;right:8px;top:calc(env(safe-area-inset-top) + 8px);z-index:90}.progress{height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}.progress>div{height:100%;background:var(--accent-fill);transition:width .2s}.workout-screen{min-height:100dvh;background:var(--bg);padding:0 0 calc(env(safe-area-inset-bottom) + 120px)}.workout-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top) + 6px) 12px 8px;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.workout-top .clock{font-family:var(--font-display);font-weight:800;font-size:30px;font-variant-numeric:tabular-nums;line-height:1}.workout-body{padding:12px;max-width:720px;margin:0 auto}.ex-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;position:relative;touch-action:pan-y}.ex-card.dragging{z-index:10;box-shadow:0 12px 30px #00000059;border-color:var(--accent-fill)}.superset-group{position:relative;margin-bottom:10px;padding-left:14px}.superset-group:before{content:"";position:absolute;left:3px;top:22px;bottom:8px;width:3px;border-radius:2px;background:var(--accent-fill)}.superset-label{font-family:var(--font-display);font-weight:800;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 6px;height:16px}.superset-group .ex-card{margin-bottom:6px}.ex-card-head{display:flex;align-items:center;gap:8px;padding:8px 4px 6px 8px}.drag-handle{touch-action:none;cursor:grab;color:var(--text-faint)}.sets-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.sets-head,.set-row{display:grid;grid-template-columns:34px 44px 1fr 1fr 42px;align-items:center;gap:4px;padding:0 6px}.sets-head.single,.set-row.single{grid-template-columns:34px 52px 1fr 42px}.sets-head{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);padding-bottom:2px}.sets-head>span{text-align:center}.set-row{min-height:50px;border-top:1px solid var(--border);transition:background .2s}.set-row.done{background:color-mix(in srgb,var(--accent-fill) 12%,transparent)}.set-row.done.flash{animation:rowflash .45s ease-out}@keyframes rowflash{0%{background:color-mix(in srgb,var(--accent-fill) 55%,transparent)}}.set-type{width:34px;height:38px;border:none;border-radius:var(--radius-sm);background:var(--surface-2);font-family:var(--font-display);font-weight:800;font-size:19px;color:var(--set-working);padding:0}.set-type.warmup{color:var(--set-warmup)}.set-type.drop{color:var(--set-drop)}.set-type.failure{color:var(--set-failure)}.prev{font-size:12px;color:var(--text-faint);text-align:center;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prev.tap{border:none;background:none;padding:0;height:38px}.stepper{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;height:40px;border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.stepper button{height:40px;border:none;background:transparent;padding:0;font-size:20px;font-weight:700;color:var(--text-dim)}.stepper button:active{background:var(--border)}.stepper input{width:100%;min-width:0;height:40px;border:none;background:transparent;text-align:center;font-family:var(--font-display);font-size:21px;font-weight:700;padding:0;font-variant-numeric:tabular-nums}.stepper input:focus{outline:2px solid var(--accent);outline-offset:-2px;border-radius:3px}.stepper input::placeholder{color:var(--text-faint);font-weight:500}.check-btn{width:40px;height:40px;border-radius:var(--radius-sm);border:2px solid var(--border);background:transparent;display:inline-flex;align-items:center;justify-content:center;padding:0;color:transparent}.check-btn.on{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}.check-btn.pop{animation:pop .35s cubic-bezier(.2,1.6,.4,1)}@keyframes pop{0%{transform:scale(.7)}60%{transform:scale(1.18)}to{transform:scale(1)}}.add-set{width:100%;min-height:44px;border:none;border-top:1px solid var(--border);background:transparent;color:var(--accent);font-weight:700;font-size:15px}.rest-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:2px solid var(--accent-fill);padding:10px 12px calc(env(safe-area-inset-bottom) + 10px);display:flex;align-items:center;gap:8px}.rest-bar .time{font-family:var(--font-display);font-weight:800;font-size:36px;font-variant-numeric:tabular-nums;line-height:1;min-width:86px}.rest-bar .track{position:absolute;left:0;top:-2px;height:2px;background:var(--text);transition:width .25s linear}.rest-bar.expired{animation:restflash .5s steps(1) infinite}@keyframes restflash{0%{background:var(--accent-fill);color:var(--on-accent)}50%{background:var(--surface);color:var(--text)}}.rest-bar .btn{min-height:44px;padding:0 10px}.rating{display:flex;justify-content:space-between;gap:6px}.rating button{flex:1;aspect-ratio:1;max-width:64px;border-radius:var(--radius);border:2px solid var(--border);background:var(--surface);font-family:var(--font-display);font-weight:800;font-size:30px;display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.rating button[aria-pressed=true]{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}.stars{color:var(--accent);letter-spacing:1px;font-size:13px}.pr-card{border:2px solid var(--accent-fill);border-radius:var(--radius);padding:14px;background:color-mix(in srgb,var(--accent-fill) 10%,var(--surface));animation:prpop .6s cubic-bezier(.2,1.5,.4,1) both}.pr-card+.pr-card{margin-top:8px}@keyframes prpop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.confetti{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}.confetti i{position:absolute;top:-12px;width:8px;height:14px;background:var(--accent-fill);animation:fall 1.8s ease-in forwards}@keyframes fall{to{transform:translateY(105vh) rotate(540deg);opacity:.4}}.ex-hero{position:relative;background:#fff;border-radius:var(--radius);overflow:hidden;aspect-ratio:4 / 3}.ex-hero img{width:100%;height:100%;object-fit:contain}.ex-hero .paused{position:absolute;right:8px;bottom:8px;background:#0009;color:#fff;font-size:12px;font-weight:700;padding:3px 8px;border-radius:3px}.instructions{padding-left:20px;margin:0;line-height:1.5;font-size:15px}.instructions li+li{margin-top:6px}.chart-box{position:relative;height:200px}.chart-box.tall{height:240px}.dist-row{display:grid;grid-template-columns:104px 1fr 54px;align-items:center;gap:8px;min-height:28px;font-size:13px}.dist-row .bar{height:14px;border-radius:2px;background:var(--accent-fill)}.dist-row.zero{color:var(--text-faint)}.dist-row.zero .bar{background:var(--border);width:4px!important}.dist-row .pct{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.heatmap{overflow-x:auto;direction:rtl}.heatmap svg{direction:ltr;display:block}.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--text-dim)}.legend span{display:inline-flex;align-items:center;gap:5px}.legend i{width:12px;height:12px;border-radius:2px;display:inline-block}.empty{text-align:center;padding:32px 12px;color:var(--text-dim)}.history-item .meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;color:var(--text-dim)}.history-item .muscles{font-size:12px;color:var(--text-faint)}.date-badge{flex:none;width:52px;text-align:center;font-family:var(--font-display);line-height:1}.date-badge .d{font-size:28px;font-weight:800}.date-badge .m{font-size:13px;font-weight:700;text-transform:uppercase;color:var(--text-dim)}hr.sep{border:none;border-top:1px solid var(--border);margin:16px 0}.page-wrap.has-bar .page{padding-bottom:calc(var(--tabbar-h) + 60px + env(safe-area-inset-bottom) + 24px)}.bodymap{display:flex;flex-direction:column;align-items:center;gap:10px;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.bm-toggle{display:inline-flex;gap:2px;padding:2px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.bm-toggle button{min-width:104px;min-height:var(--tap);padding:0 16px;border:0;border-radius:2px;background:transparent;color:var(--text-dim);font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;touch-action:manipulation}.bm-toggle button[aria-pressed=true]{background:var(--accent-fill);color:var(--on-accent)}.bm-toggle button:focus-visible{outline:2px solid var(--text);outline-offset:1px}.bodymap--small .bm-toggle button{min-width:84px;font-size:16px}.bm-svg{display:block;height:var(--bodymap-height, min(62vh, 500px));width:auto;max-width:100%;aspect-ratio:650 / 1275;overflow:visible;touch-action:manipulation}.bodymap--small .bm-svg{height:var(--bodymap-height, 230px)}.bm-silhouette{fill:var(--body-skin);stroke:var(--body-outline);stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}.bm-skin{fill:var(--body-skin);stroke:var(--body-outline);stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.bm-hair{fill:var(--body-outline);pointer-events:none}.bm-hits path{fill:none;stroke:transparent;stroke-linejoin:round;pointer-events:stroke;cursor:pointer}.bm-muscle{outline:none}.bodymap:not(.is-interactive) .bm-muscle{pointer-events:none}.bodymap.is-interactive .bm-muscle{cursor:pointer}.bm-shape{fill:var(--body-muscle, var(--body-base));stroke:transparent;stroke-width:0;transition:fill .12s ease-out}.bm-muscle[data-fill=selected] .bm-shape{fill:var(--muscle-selected);stroke:var(--muscle-active-edge);stroke-width:1.5;vector-effect:non-scaling-stroke}.bm-muscle[data-fill=primary] .bm-shape{fill:var(--muscle-primary);stroke:var(--muscle-active-edge);stroke-width:1.5;vector-effect:non-scaling-stroke}.bm-muscle[data-fill=secondary] .bm-shape{fill:var(--muscle-secondary)}.bm-muscle[data-fill=rec-never] .bm-shape{fill:var(--rec-never)}.bm-muscle[data-fill=rec-fresh] .bm-shape{fill:var(--rec-fresh)}.bm-muscle[data-fill=rec-low] .bm-shape{fill:var(--rec-low)}.bm-muscle[data-fill=rec-mid] .bm-shape{fill:var(--rec-mid)}.bm-muscle[data-fill=rec-high] .bm-shape{fill:var(--rec-high)}@media(hover:hover){.bodymap.is-interactive .bm-muscle:hover .bm-shape{fill-opacity:.8}}.bm-muscle:focus-visible .bm-shape{stroke:var(--text);stroke-width:2.5;vector-effect:non-scaling-stroke}.bm-gap{fill:var(--body-skin);stroke:var(--body-skin);stroke-width:7;stroke-linejoin:round}.bm-cuts path{fill:none;stroke:var(--body-skin);stroke-width:4;pointer-events:none}.bm-glow-color{flood-color:var(--muscle-glow)}
