@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");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}:root{color-scheme:dark;--bg: #08090b;--bg-elev: #0d0f12;--surface: #121418;--surface-2: #191c22;--surface-3: #23272e;--surface-4: #2f343c;--border: #262b32;--border-strong: #3a4048;--text: #f4f6f7;--text-dim: #cbd2d8;--muted: #8a939c;--accent: #d8ff3e;--accent-strong: #c4ef1f;--on-accent: #111500;--accent-ink: #111500;--accent-container: #2b3500;--on-accent-container: #e9ffa1;--sky: #6cc9ff;--amber: #ffc24b;--danger: #ff8c8c;--danger-strong: #ff4d4d;--on-danger: #2b0000;--danger-container: #3a0d0d;--on-danger-container: #ffd9d9;--chart-grid: #262b32;--radius-sm: 8px;--radius: 14px;--radius-lg: 22px;--radius-full: 999px;--shadow-sm: 0 1px 0 rgba(255, 255, 255, .03) inset;--shadow: 0 10px 30px rgba(0, 0, 0, .45);--shadow-lg: 0 30px 80px rgba(0, 0, 0, .6);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--ease: cubic-bezier(.22, 1, .36, 1);--nav-h: 72px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:15px;line-height:1.5;color:var(--text);background:radial-gradient(900px 500px at 88% -12%,rgba(216,255,62,.08),transparent 70%),radial-gradient(700px 460px at -12% 18%,rgba(108,201,255,.05),transparent 70%),var(--bg);background-attachment:fixed;min-height:100dvh;-webkit-font-smoothing:antialiased}h1,h2,h3{line-height:1.15;letter-spacing:-.02em;font-weight:700}h1{letter-spacing:-.03em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.btn.primary:focus-visible,.btn.secondary:focus-visible{outline:2px solid var(--sky);outline-offset:2px}::selection{background:#6ee7b74d}.topbar{display:flex;align-items:center;gap:var(--space-4);padding:.7rem clamp(.9rem,4vw,1.5rem);background:#08090bdb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.brand{font-size:1.05rem;color:var(--text);display:inline-flex;align-items:center}.brand:before{content:none}.brand:hover{text-decoration:none}.logo{display:inline-flex;align-items:center;gap:.55rem;color:var(--accent)}.logo-mark{width:2em;height:2em;display:block;flex:none;overflow:visible}.logo-word{color:var(--text);font-size:1.08em;font-weight:800;letter-spacing:.18em;text-transform:uppercase;line-height:1}.topnav{display:none;gap:.15rem;margin-left:var(--space-4)}.topnav a{color:var(--muted);font-weight:600;font-size:.72rem;padding:.55rem .8rem;border-radius:var(--radius-sm);letter-spacing:.1em;text-transform:uppercase;position:relative;transition:color .15s var(--ease),background .15s var(--ease)}.topnav a:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.topnav a.active{color:var(--accent);background:transparent}.topnav a.active:after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.15rem;height:2px;border-radius:2px;background:var(--accent)}.user-menu{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}.avatar{width:2.1rem;height:2.1rem;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.8rem;color:var(--on-accent);background:var(--accent);text-transform:uppercase}.user-name{font-weight:600;font-size:.85rem}@media(max-width:560px){.user-name{display:none}}.container{max-width:1040px;margin:0 auto;padding:clamp(1rem,4vw,2rem);padding-bottom:calc(var(--nav-h) + 1.5rem);animation:fade .3s var(--ease)}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.page-head{margin-bottom:var(--space-5)}.page-head h1{margin:0;font-size:clamp(1.7rem,5vw,2.4rem);font-weight:800}.page-head p{margin:.25rem 0 0}.eyebrow{display:inline-flex;align-items:center;gap:.45rem;margin:0 0 .35rem;color:var(--accent);font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.eyebrow:before{content:"";width:7px;height:7px;border-radius:2px;background:var(--accent);transform:rotate(45deg)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:#0a0b0df0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;color:var(--muted);font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding-top:.35rem}.bottom-nav a:hover{text-decoration:none}.bottom-nav a.active{color:var(--accent)}.bottom-nav svg{width:21px;height:21px}.bottom-nav a.nav-fab{position:relative}.bottom-nav a.nav-fab svg{width:46px;height:46px;padding:12px;margin-top:-20px;border-radius:50%;background:var(--accent);color:var(--on-accent);box-shadow:0 10px 26px #d8ff3e47;box-sizing:border-box}.bottom-nav a.nav-fab span{color:var(--accent)}@media(min-width:720px){.topnav{display:flex}.bottom-nav{display:none}.container{padding-bottom:2rem}}.card{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 140px),var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5);margin-bottom:var(--space-4);box-shadow:none}.card h1{margin:0 0 var(--space-3);font-size:1.6rem;font-weight:800}.card h2{margin:0 0 var(--space-3);font-size:.95rem;color:var(--text);font-weight:700}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.card-head>a{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.stat{display:flex;flex-direction:column;gap:.2rem;margin-bottom:0;position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.stat-value{font-size:1.7rem;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat-label{color:var(--muted);font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.grid-2{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media(min-width:700px){.grid-2{grid-template-columns:1fr 1fr}}.list{list-style:none;margin:0;padding:0}.list li{border-bottom:1px solid var(--border)}.list li:last-child{border-bottom:none}.list li a,.list li>span{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:.7rem 0;color:var(--text);font-weight:500}.list li a:hover{color:var(--accent);text-decoration:none}.history-item{display:flex;align-items:center;gap:var(--space-3)}.history-item>a,.history-item>.row-main{flex:1;display:flex;flex-direction:column;gap:.1rem;padding:.7rem 0;color:var(--text)}.history-item>a:hover{text-decoration:none;color:var(--accent)}.muted{color:var(--muted);font-size:.85rem}.notes{color:var(--text-dim);white-space:pre-wrap}label{display:block;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],input[type=search],select,textarea{width:100%;padding:.7rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:#0b0d10;color:var(--text);font-size:1rem;font-family:inherit;transition:border-color .15s var(--ease),box-shadow .15s var(--ease),background .15s var(--ease)}input::placeholder,textarea::placeholder{color:#666f78}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.field-row{margin-bottom:var(--space-4)}.field-row.split{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media(min-width:640px){.field-row.split{grid-template-columns:170px 1fr auto}}.add-row{display:flex;gap:var(--space-2)}.add-row>input,.add-row>select{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent;border-radius:10px;padding:.72rem 1.35rem;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-family:inherit;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),transform .12s var(--ease),opacity .15s var(--ease)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){background:var(--accent-strong)}.btn.secondary{background:var(--surface-2);border-color:var(--border);color:var(--text)}.btn.secondary:hover:not(:disabled){background:var(--surface-3);border-color:var(--border-strong)}.btn.ghost{background:transparent;color:var(--accent)}.btn.ghost:hover:not(:disabled){background:#d8ff3e14}.btn.icon-btn{width:2.25rem;height:2.25rem;padding:0;border-radius:50%}.btn.icon-btn svg{width:18px;height:18px}.btn.block{width:100%}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font-size:.88rem;font-weight:500;font-family:inherit}.link-btn:hover{text-decoration:underline}.icon-btn{background:transparent;border:none;color:var(--muted);width:2.75rem;height:2.75rem;min-width:2.75rem;border-radius:50%;cursor:pointer;display:grid;place-items:center;font-size:.95rem;transition:background .15s var(--ease),color .15s var(--ease)}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.icon-btn.danger{color:var(--danger)}.icon-btn.danger:hover{background:#fca5a51f;color:var(--danger)}.icon-btn svg{width:18px;height:18px}.exercise-block{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-3);background:var(--surface-2)}.exercise-block h3{margin:0 0 var(--space-3);font-size:1rem;display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.exercise-block h3 button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.85rem;font-weight:500}.exercise-block h3 button:hover{color:var(--danger)}.set-row{display:grid;grid-template-columns:1.6rem 1fr 1fr auto;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.set-index{color:var(--muted);font-size:.7rem;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.set-row input{padding:.55rem .6rem}.rest-timer{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border:none;background:var(--surface-2);border-radius:var(--radius)}.rest-timer .time{font-family:var(--mono);font-size:1.3rem;font-weight:500;margin-left:auto;font-variant-numeric:tabular-nums}.rest-timer .time.done{color:var(--accent)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.sets-table{width:100%;border-collapse:collapse;min-width:320px}.sets-table th,.sets-table td{text-align:left;padding:.7rem .6rem;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}.sets-table th{color:var(--muted);font-weight:500;font-size:.78rem;text-transform:none;letter-spacing:0}.sets-table td{font-size:.95rem}.sets-table tbody tr:last-child td{border-bottom:none}.chart-wrap{margin:var(--space-4) 0}.chart-wrap h2{font-size:.8rem;color:var(--muted);font-weight:500;letter-spacing:.02em;margin-bottom:var(--space-2)}.chart-wrap canvas{display:block;width:100%}.bw-submit{display:flex;align-items:flex-end}.auth-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:5rem var(--space-5) var(--space-5)}.auth-card{width:100%;max-width:400px;margin-bottom:0;padding:var(--space-6);background:var(--surface);box-shadow:var(--shadow-lg)}.auth-title{margin:0 0 .2rem;font-size:1.9rem;font-weight:800;letter-spacing:-.03em}.auth-card .tagline{text-align:left;margin:0 0 var(--space-5);font-size:.9rem}.pw-field{position:relative}.pw-field input{width:100%;padding-right:3rem;box-sizing:border-box}.pw-toggle{position:absolute;top:0;right:.3rem;bottom:0;margin:auto 0;height:2.4rem;width:2.4rem;display:grid;place-items:center;padding:0;border:none;background:transparent;color:var(--muted);cursor:pointer;border-radius:8px;transition:color .15s var(--ease),background .15s var(--ease)}.pw-toggle:hover{color:var(--accent);background:#6ee7b71f}.pw-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pw-toggle svg{width:19px;height:19px}.field-hint{display:block;margin-top:.4rem;color:var(--muted);font-size:.78rem}.auth-switch{margin:var(--space-5) 0 0;text-align:center;font-size:.88rem;color:var(--muted)}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-6) var(--space-4);color:var(--muted)}.empty-icon{width:3rem;height:3rem;display:grid;place-items:center;border-radius:50%;background:var(--surface-2);color:var(--text-dim)}.empty-icon svg{width:26px;height:26px}.empty p{margin:0}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skeleton-card{height:108px;margin-bottom:var(--space-3)}.skeleton-line{height:14px;margin-bottom:.6rem}.spinner{width:1.1rem;height:1.1rem;border:2px solid rgba(255,255,255,.25);border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{display:grid;place-items:center;min-height:60vh;color:var(--muted)}.toast{position:fixed;bottom:calc(var(--nav-h) + 1rem + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:80;display:flex;align-items:center;gap:.5rem;max-width:min(90vw,480px);padding:.85rem 1.25rem;border-radius:var(--radius-sm);background:var(--surface-4);color:var(--text);font-size:.9rem;font-weight:400;box-shadow:var(--shadow-lg);border:none;animation:toast-in .25s var(--ease)}.toast.error{background:var(--danger-container);color:var(--on-danger-container)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media(min-width:720px){.toast{bottom:1.5rem}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;padding:var(--space-4);background:#0009;animation:fade .2s var(--ease)}.modal{width:100%;max-width:380px;background:var(--surface-2);border:none;border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-lg)}.modal h2{margin:0 0 var(--space-2);font-size:1.35rem;font-weight:400;color:var(--text)}.modal p{margin:0 0 var(--space-5);color:var(--muted);font-size:.92rem}.modal-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.goals-form{margin-top:var(--space-2)}.ring-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5);margin-top:var(--space-2)}.ring{width:128px;height:128px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;transition:background .4s var(--ease)}.ring-inner{width:96px;height:96px;border-radius:50%;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem}.ring-inner strong{font-size:1.5rem;font-weight:500;font-variant-numeric:tabular-nums}.ring-inner span{font-size:.72rem}.macro-list{flex:1;min-width:200px;display:flex;flex-direction:column;gap:var(--space-3)}.macro-head{display:flex;justify-content:space-between;font-size:.82rem;font-weight:500;margin-bottom:.3rem}.macro-track{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.macro-fill{height:100%;border-radius:999px;transition:width .4s var(--ease)}.btn-row{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-2)}.bmi-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5);margin:var(--space-3) 0}.bmi-value{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-width:108px;padding:var(--space-4);border-radius:var(--radius);border:none;background:var(--surface-2)}.bmi-value strong{font-size:2rem;font-weight:500;font-variant-numeric:tabular-nums;line-height:1}.bmi-value span{font-size:.78rem;font-weight:500}.bmi-value.normal{background:var(--accent-container)}.bmi-value.normal strong,.bmi-value.normal span{color:var(--on-accent-container)}.bmi-value.under{background:#0b3a4a}.bmi-value.under strong,.bmi-value.under span{color:var(--sky)}.bmi-value.over{background:#4a3a12}.bmi-value.over strong,.bmi-value.over span{color:var(--amber)}.bmi-value.obese{background:var(--danger-container)}.bmi-value.obese strong,.bmi-value.obese span{color:var(--on-danger-container)}.bmi-stats{flex:1;min-width:200px;display:flex;flex-wrap:wrap;gap:var(--space-4)}.bmi-stats>div{display:flex;flex-direction:column;gap:.15rem}.bmi-stats .muted{font-size:.72rem}.bmi-stats strong{font-size:.95rem;font-weight:500;font-variant-numeric:tabular-nums}.bmi-bar{position:relative;margin:var(--space-2) 0 var(--space-3);padding-top:.5rem}.bmi-bar-track{display:flex;height:10px;border-radius:999px;overflow:hidden}.bmi-seg{height:100%}.bmi-seg.under{flex:4.5;background:var(--sky)}.bmi-seg.normal{flex:6.5;background:var(--accent)}.bmi-seg.over{flex:5;background:var(--amber)}.bmi-seg.obese{flex:10;background:var(--danger)}.bmi-marker{position:absolute;top:0;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--text);border:2px solid var(--bg)}.bmi-bar-legend{display:flex;justify-content:space-between;font-size:.68rem;margin-top:.3rem}.bmi-note{font-size:.84rem;margin-top:var(--space-2)}.suggest-card{border:none;border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-3);background:var(--surface-2)}.suggest-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-2)}.suggest-head strong{font-size:1rem;font-weight:500}.suggest-list{list-style:none;margin:0;padding:0}.suggest-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:.4rem 0;border-bottom:1px solid var(--border);font-size:.9rem}.suggest-list li:last-child{border-bottom:none}.log-group{margin-bottom:var(--space-4)}.log-group:last-child{margin-bottom:0}.log-group-head{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 .25rem;font-size:.9rem;color:var(--muted);font-weight:500}@media(max-width:480px){.ring{width:108px;height:108px}.ring-inner{width:82px;height:82px}.ring-inner strong{font-size:1.25rem}}.exercise-demo{position:relative;display:grid;place-items:center;overflow:hidden;border-radius:var(--radius);background:var(--surface-3)}.exercise-demo.thumb{width:54px;height:54px;flex:0 0 auto}.exercise-demo.hero{width:100%;aspect-ratio:4 / 3;border-radius:var(--radius-lg)}.exercise-demo img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .18s ease}.exercise-demo img.is-active{opacity:1}.demo-fallback{display:grid;place-items:center;width:100%;height:100%}.demo-fallback svg{width:42%;height:42%;color:var(--muted)}.demo-thumb-btn{flex:0 0 auto;padding:0;border:none;background:none;color:inherit;border-radius:var(--radius);cursor:pointer}.demo-thumb-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.exercise-block h3 .demo-thumb-btn{background:none;border:none;padding:0}.exercise-block h3 .demo-thumb-btn:hover{color:inherit}.block-title{display:flex;align-items:center;gap:var(--space-2);min-width:0}.block-title>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-preview{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2);border-radius:var(--radius);background:var(--surface-2)}.picker-preview-main{display:flex;flex-direction:column;min-width:0;flex:1}.picker-preview-main strong{font-size:.88rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-modal{max-width:560px;max-height:88vh;overflow-y:auto}.demo-modal h2{margin-top:var(--space-3)}.demo-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 var(--space-3)}.demo-meta span{background:var(--surface-3);border-radius:999px;padding:.1rem .55rem;font-size:.7rem;color:var(--muted);text-transform:capitalize}.demo-instructions{font-size:.88rem;line-height:1.5;margin-bottom:var(--space-4)}.demo-instructions p{margin:0 0 .45rem;color:var(--text);font-size:.88rem}.program-list{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.program-card{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius);background:var(--surface-2);color:var(--text);text-decoration:none;transition:border-color .15s var(--ease),transform .15s var(--ease)}.program-card:hover{border-color:var(--accent);background:var(--surface-2);text-decoration:none;transform:translateY(-1px)}.program-card-main{min-width:0}.program-card-main strong{font-size:1rem;font-weight:700}.program-card-main p{margin:.25rem 0 0;max-width:60ch}.program-days-badge{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:3.4rem;padding:.35rem .55rem;border-radius:10px;background:var(--surface-3);font-size:1.05rem;font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums}.program-days-badge span{font-size:.56rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.program-tag{margin-left:.5rem;padding:.05rem .45rem;border-radius:999px;background:#6ee7b71f;color:var(--accent);font-size:.65rem;font-weight:500;letter-spacing:.03em;text-transform:uppercase;vertical-align:middle}.program-days{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.program-day{background:var(--surface-2);border-radius:var(--radius);padding:var(--space-3) var(--space-4)}.program-day-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap}.program-day-head h2{margin:0}.program-day .list li{padding:.45rem 0}.program-ex-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);width:100%}.hero{position:relative;overflow:hidden;border:1px solid #303a0c;border-radius:var(--radius-lg);padding:clamp(1.25rem,4vw,2rem);margin-bottom:var(--space-4);background:radial-gradient(620px 300px at 92% -30%,rgba(216,255,62,.2),transparent 70%),linear-gradient(115deg,#14180c,#101216 55%,#0e1013)}.hero:after{content:"";position:absolute;right:-70px;top:-70px;width:260px;height:260px;border-radius:50%;border:1px solid rgba(216,255,62,.16);pointer-events:none}.hero h1{margin:.25rem 0 .5rem;font-size:clamp(1.8rem,6vw,2.9rem);font-weight:800;letter-spacing:-.04em}.hero-sub{margin:0;color:var(--muted);max-width:52ch}.hero-sub strong{color:var(--text-dim)}.hero-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.15rem}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:1.35rem}.week-day{text-align:center;padding:.5rem .1rem;border-radius:8px;background:#ffffff09;border:1px solid transparent;color:var(--muted);font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-family:inherit;cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease)}.week-day:hover{border-color:var(--border-strong)}.week-day strong{display:block;margin-top:.15rem;font-size:.68rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis}.week-day.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.week-day.active strong{color:var(--on-accent);font-weight:800}.week-day.rest{opacity:.45}.save-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-4);padding:.7rem .7rem .7rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.save-meta{display:flex;flex-direction:column;gap:.1rem;min-width:0}.save-meta strong{font-size:.85rem;font-weight:700}.save-meta span{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.save-bar .btn{flex:0 0 auto}.last-time{margin:-.25rem 0 .6rem;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.save-bar .btn-row{margin-top:0;flex-wrap:nowrap;gap:var(--space-2)}.save-bar .btn.ghost{color:var(--muted)}@media(max-width:719px){.save-bar{position:sticky;bottom:calc(var(--nav-h) + .6rem + env(safe-area-inset-bottom,0px));z-index:25;background:#0e1013f0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow)}}.library-toolbar{display:flex;flex-direction:column;gap:.7rem;margin-bottom:var(--space-3)}.filter-chips{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:none}.filter-chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:var(--radius-full);padding:.38rem .85rem;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;white-space:nowrap;font-family:inherit;transition:background .15s var(--ease),color .15s var(--ease),border-color .15s var(--ease)}.chip:hover{color:var(--text);border-color:var(--border-strong)}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.7rem}.library-card{display:flex;flex-direction:column;gap:.5rem;padding:.55rem;text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-family:inherit;cursor:pointer;transition:border-color .15s var(--ease),transform .15s var(--ease)}.library-card:hover{border-color:var(--accent);transform:translateY(-2px)}.library-card .exercise-demo{width:100%;aspect-ratio:4 / 3;border-radius:9px}.library-card strong{font-size:.8rem;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.library-card .library-meta{font-size:.66rem;color:var(--muted);text-transform:capitalize;letter-spacing:.03em}.library-count{font-size:.72rem;color:var(--muted)}.program-card{border:1px solid var(--border);background:var(--surface)}.program-card:hover{border-color:var(--accent);background:var(--surface)}.program-day{border:1px solid var(--border);scroll-margin-top:90px}.auth-shell{min-height:100dvh;display:grid;grid-template-columns:1fr;background:var(--bg);position:relative}.auth-brand{position:absolute;top:clamp(1.1rem,4vw,2rem);left:clamp(1rem,4vw,2.5rem);z-index:2;font-size:1.05rem}.auth-hero{display:none;position:relative;overflow:hidden;padding:clamp(6rem,12vh,7.5rem) clamp(2rem,5vw,4rem) clamp(2rem,5vw,4rem);background:radial-gradient(700px 500px at 80% 10%,rgba(216,255,62,.16),transparent 65%),linear-gradient(140deg,#151a0b,#0c0e11 65%);border-right:1px solid var(--border);flex-direction:column;justify-content:space-between}.auth-hero h2{font-size:clamp(2.2rem,4vw,3.4rem);font-weight:800;letter-spacing:-.045em;line-height:.98;margin:0;max-width:12ch}.auth-hero h2 em{font-style:normal;color:var(--accent)}.auth-hero p{color:var(--muted);max-width:34ch;margin:1rem 0 0}.auth-hero-stats{display:flex;gap:2rem;margin-top:2rem}.auth-hero-stats div{display:flex;flex-direction:column}.auth-hero-stats strong{font-size:1.4rem;font-weight:800;letter-spacing:-.03em}.auth-hero-stats span{font-size:.64rem;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:700}@media(min-width:860px){.auth-shell{grid-template-columns:1.05fr .95fr}.auth-hero{display:flex}.auth-wrap{min-height:auto;padding:var(--space-5)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.admin-link{position:relative}.admin-link.active{color:var(--accent)}.badge{position:absolute;top:-2px;right:-2px;min-width:1.05rem;height:1.05rem;padding:0 .25rem;border-radius:var(--radius-full);background:var(--accent);color:var(--accent-ink);font-size:.65rem;font-weight:800;line-height:1.05rem;text-align:center}.admin-banner{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.85rem 1rem;border:1px solid var(--accent-container);border-radius:var(--radius);background:var(--surface);color:var(--text-dim)}.admin-banner:hover{text-decoration:none;border-color:var(--accent)}.admin-banner svg{width:1.25rem;height:1.25rem;flex:0 0 auto;color:var(--accent)}.admin-banner strong{color:var(--text)}.admin-banner-cta{margin-left:auto;color:var(--accent);font-weight:700;white-space:nowrap}.admin-user{gap:.75rem}.admin-user strong{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem}.admin-user .program-tag{margin-left:0}.admin-actions{display:flex;gap:.5rem;flex:0 0 auto}.admin-user .btn{flex:0 0 auto}.status-pill{padding:.05rem .45rem;border-radius:var(--radius-full);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.status-pill.pending{background:#ffc24b24;color:var(--amber)}.status-pill.disabled{background:var(--danger-container);color:var(--danger)}.auth-notice{margin:0 0 1rem;padding:.7rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--accent-container);background:var(--surface-2);color:var(--text-dim);font-size:.85rem}@media(max-width:560px){.admin-user{flex-wrap:wrap}.admin-actions{width:100%}.admin-actions .btn{flex:1 1 0}}@property --ang{syntax: "<angle>"; initial-value: 0deg; inherits: false;}:root{--font: "Inter Variable", "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--glass: rgba(18, 20, 24, .72);--glass-solid: #121418;--glass-strong: rgba(25, 28, 34, .86);--field: rgba(9, 10, 12, .72);--stroke: rgba(255, 255, 255, .07);--stroke-hi: rgba(255, 255, 255, .13);--glow: rgba(216, 255, 62, .35);--spot: rgba(216, 255, 62, .5);--aurora-a: rgba(216, 255, 62, .16);--aurora-b: rgba(108, 201, 255, .13);--aurora-c: rgba(255, 194, 75, .08);--shadow-soft: 0 1px 2px rgba(0, 0, 0, .4), 0 14px 34px -16px rgba(0, 0, 0, .8);--shadow-pop: 0 2px 8px rgba(0, 0, 0, .45), 0 26px 50px -20px rgba(0, 0, 0, .9);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--dock-h: 64px;--dock-gap: 10px;--nav-h: calc(var(--dock-h) + var(--dock-gap) + 6px);--rail-w: 220px}body{font-family:var(--font);font-feature-settings:"cv11","ss01";letter-spacing:-.006em}strong,b{font-weight:650}body{background:var(--bg)}body:before{content:"";position:fixed;top:-25%;right:-25%;bottom:-25%;left:-25%;z-index:-2;pointer-events:none;background:radial-gradient(38% 32% at 82% 8%,var(--aurora-a),transparent 70%),radial-gradient(34% 30% at 10% 22%,var(--aurora-b),transparent 70%),radial-gradient(42% 36% at 70% 92%,var(--aurora-c),transparent 70%);filter:blur(40px);animation:aurora 28s ease-in-out infinite alternate}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:.55;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 70%);mask-image:linear-gradient(to bottom,#000,transparent 70%)}@keyframes aurora{0%{transform:translateZ(0) rotate(0) scale(1)}50%{transform:translate3d(4%,3%,0) rotate(8deg) scale(1.08)}to{transform:translate3d(-3%,5%,0) rotate(-6deg) scale(1.04)}}.card,.stat{position:relative;background:var(--glass);border:1px solid var(--stroke);border-radius:20px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3)}.card{padding:clamp(1rem,3.5vw,1.4rem)}.card:before,.stat:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;padding:1px;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(320px circle at var(--mx, 50%) var(--my, 50%),var(--spot),transparent 45%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.card:after,.stat:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%),rgba(216,255,62,.06),transparent 50%)}.card.lit:before,.stat.lit:before,.card.lit:after,.stat.lit:after{opacity:1}.card>:not(.save-bar),.stat>*{position:relative;z-index:1}.card>.save-bar{z-index:25}.cards{gap:12px}.stat{padding:14px 14px 12px;gap:6px;overflow:hidden;transform:perspective(800px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));transition:transform .4s var(--ease-spring),box-shadow .3s}.stat.lit{box-shadow:var(--shadow-pop);transition:transform .08s linear,box-shadow .3s}.stat-label{display:flex;align-items:center;gap:6px;order:-1}.stat-label:before{content:"";width:8px;height:8px;border-radius:50%;flex:none;background:var(--dot, var(--accent));box-shadow:0 0 10px var(--dot, var(--accent))}.cards .stat:nth-child(2){--dot: var(--sky)}.cards .stat:nth-child(3){--dot: var(--amber)}.cards .stat:nth-child(4){--dot: var(--text-dim)}.stat-value{font-size:1.55rem}.cards .stat:first-child .stat-value{background:linear-gradient(90deg,var(--text),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.exercise-block,.program-day,.program-card,.suggest-card,.picker-preview,.rest-timer,.library-card{background:#ffffff06;border:1px solid var(--stroke);border-radius:16px}.program-card,.library-card{transition:transform .25s var(--ease-spring),border-color .2s,box-shadow .25s}.program-card:hover,.library-card:hover{background:#ffffff0a;border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 14px 30px -18px var(--glow)}.program-card:active,.library-card:active{transform:scale(.98)}.hero{isolation:isolate;border-color:transparent;border-radius:24px;box-shadow:0 24px 48px -26px #d8ff3e59}.hero:before,.auth-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1.5px;pointer-events:none;z-index:2;background:conic-gradient(from var(--ang),transparent 0deg,var(--accent) 70deg,var(--sky) 130deg,transparent 220deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);animation:spin-ang 6s linear infinite;opacity:1}.hero>*{position:relative;z-index:1}@keyframes spin-ang{to{--ang: 360deg}}.btn,.chip,.iconbtn,.fab,.link-btn,.icon-btn,.dock a{-webkit-tap-highlight-color:transparent}.btn{position:relative;overflow:hidden;isolation:isolate;border-radius:12px;min-height:44px;transition:transform .2s var(--ease-spring),box-shadow .25s,background .2s,border-color .2s,opacity .2s}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;transform:translate(-120%);pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%)}.btn.primary:hover:not(:disabled):after,.btn.primary:focus-visible:after{animation:shimmer-btn .9s ease}@keyframes shimmer-btn{to{transform:translate(120%)}}.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-strong));box-shadow:0 10px 22px -12px var(--glow),inset 0 1px #ffffff59}.btn.primary:hover:not(:disabled){background:linear-gradient(135deg,var(--accent),var(--accent-strong));box-shadow:0 14px 28px -12px var(--glow),inset 0 1px #fff6;transform:translateY(-1px)}.btn:active:not(:disabled){transform:scale(.97)}.btn.secondary{background:#ffffff0a;border:1px solid var(--stroke-hi);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn.secondary:hover:not(:disabled){background:#ffffff12;border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:0 0 0 3px #d8ff3e1a}.btn.danger-solid{background:linear-gradient(135deg,var(--danger-strong),#c62828);color:#fff;box-shadow:0 10px 22px -12px #ff4d4d99}.btn.danger-solid:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{box-shadow:none}.btn svg{width:16px;height:16px;flex:none}.chip{transition:transform .2s var(--ease-spring),background .2s,color .2s,border-color .2s,box-shadow .2s;background:#ffffff08}.chip:active{transform:scale(.95)}.chip.active{box-shadow:0 8px 18px -10px var(--glow)}.iconbtn{width:42px;height:42px;flex:none;display:grid;place-items:center;padding:0;cursor:pointer;border-radius:50%;color:var(--text-dim);background:#ffffff0a;border:1px solid var(--stroke-hi);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .3s var(--ease-spring),border-color .2s,color .2s}.iconbtn svg{width:19px;height:19px}.iconbtn:hover{border-color:color-mix(in srgb,var(--accent) 60%,transparent);color:var(--accent);transform:rotate(-20deg)}.iconbtn:active{transform:scale(.92)}.iconbtn.spin svg{animation:spin .6s linear}input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],input[type=search],select,textarea{background:var(--field);border:1px solid var(--stroke-hi);border-radius:12px;min-height:44px;transition:border-color .2s,box-shadow .25s,background .2s}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--stroke-hi))}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px #d8ff3e24,0 8px 20px -14px var(--glow)}.set-row input{min-height:42px}.app{min-height:100dvh}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.75rem;padding:calc(.6rem + env(safe-area-inset-top,0px)) clamp(.9rem,4vw,1.5rem) .6rem;background:color-mix(in srgb,var(--bg) 70%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);border-bottom:1px solid var(--stroke)}.topbar h1{margin:0;flex:1;min-width:0;font-size:1.2rem;font-weight:750;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;flex:none;background:var(--accent-container);color:var(--accent);box-shadow:0 6px 16px -8px var(--glow),inset 0 0 0 1px #d8ff3e40}.topbar .mark .logo-mark{width:24px;height:24px}.topbar .mark:hover{text-decoration:none}.offline{margin:.75rem clamp(.9rem,4vw,1.5rem) 0;padding:.6rem .85rem;border-radius:12px;font-size:.85rem;background:#ffc24b1a;border:1px solid rgba(255,194,75,.35);color:var(--amber)}.container{max-width:1040px;padding-bottom:calc(var(--dock-h) + var(--dock-gap) + 96px + env(safe-area-inset-bottom,0px));animation:none}.container>*,.container>.stack>*,.cards>*{animation:rise .55s var(--ease-spring) both}.container>:nth-child(2),.container>.stack>:nth-child(2),.cards>:nth-child(2){animation-delay:.05s}.container>:nth-child(3),.container>.stack>:nth-child(3),.cards>:nth-child(3){animation-delay:.1s}.container>:nth-child(4),.container>.stack>:nth-child(4),.cards>:nth-child(4){animation-delay:.15s}.container>:nth-child(n+5),.container>.stack>:nth-child(n+5){animation-delay:.2s}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}.dock{position:fixed;z-index:40;left:12px;right:12px;bottom:calc(var(--dock-gap) + env(safe-area-inset-bottom,0px));max-width:560px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);height:var(--dock-h);padding:6px;border-radius:24px;background:var(--glass-strong);border:1px solid var(--stroke-hi);box-shadow:var(--shadow-pop);-webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6)}.dock:before{content:"";position:absolute;top:6px;bottom:6px;left:6px;width:calc((100% - 12px)/5);border-radius:18px;transform:translate(calc(100% * var(--i, 0)));transition:transform .5s var(--ease-spring),opacity .2s;background:#d8ff3e1f;box-shadow:inset 0 0 0 1px #d8ff3e4d}.dock[data-i="-1"]:before{opacity:0}.dock a{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:.66rem;font-weight:650;letter-spacing:.02em;border-radius:18px;transition:color .25s}.dock a:hover{text-decoration:none;color:var(--text)}.dock a.active{color:var(--accent)}.dock .ico{position:relative;display:grid;place-items:center;width:40px;height:26px}.dock .ico svg{width:22px;height:22px;transition:transform .4s var(--ease-spring)}.dock a.active .ico svg{transform:translateY(-1px) scale(1.12);filter:drop-shadow(0 4px 8px var(--glow))}.dock .badge{top:-4px;right:0;box-shadow:0 0 0 2px var(--glass-solid)}.fab{position:fixed;z-index:41;right:max(16px,calc(50% - 276px));bottom:calc(var(--dock-h) + var(--dock-gap) + 14px + env(safe-area-inset-bottom,0px));width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:var(--on-accent);box-shadow:0 14px 30px -10px var(--glow),inset 0 1px #fff6;transition:transform .3s var(--ease-spring),box-shadow .3s}.fab svg{width:28px;height:28px;stroke-width:2.4}.fab:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:50%;border:2px solid var(--accent);opacity:0;animation:ring 3.2s ease-out infinite}@keyframes ring{0%{opacity:.55;transform:scale(.9)}70%,to{opacity:0;transform:scale(1.35)}}.fab:hover{text-decoration:none;transform:rotate(90deg) scale(1.05)}.fab:active{transform:scale(.92)}.rail{display:none}@media(min-width:960px){.app{padding-left:calc(var(--rail-w) + 24px)}.dock{display:none}.topbar{border-bottom:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;padding-top:1.1rem}.topbar .mark{display:none}.topbar h1{font-size:1.45rem}.container{padding-bottom:6rem}.fab{right:28px;bottom:28px}.rail{position:fixed;z-index:40;left:12px;top:12px;bottom:12px;width:var(--rail-w);display:flex;flex-direction:column;gap:2px;padding:14px 10px 10px;border-radius:24px;background:var(--glass-strong);border:1px solid var(--stroke-hi);box-shadow:var(--shadow-pop);-webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6);overflow-y:auto}.rail-brand{padding:6px 10px 18px;font-size:1rem}.rail-brand:hover{text-decoration:none}.rail a:not(.rail-brand){position:relative;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;color:var(--muted);font-size:.9rem;font-weight:600;transition:background .2s,color .2s}.rail a:not(.rail-brand) svg{width:19px;height:19px;flex:none}.rail a:not(.rail-brand):hover{text-decoration:none;color:var(--text);background:#ffffff0d}.rail a.active:not(.rail-brand){color:var(--accent);background:#d8ff3e1a;box-shadow:inset 0 0 0 1px #d8ff3e47}.rail .count{margin-left:auto}.rail-spacer{flex:1}.rail-user{margin-top:6px;border-top:1px solid var(--stroke);border-radius:0 0 14px 14px!important;padding-top:14px!important}.rail-user .avatar{width:30px;height:30px;font-size:.75rem}.rail-user-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.rail-user svg:last-child{width:16px;height:16px}}@media(max-width:959px){.save-bar{position:sticky;z-index:25;bottom:calc(var(--dock-h) + var(--dock-gap) + 8px + env(safe-area-inset-bottom,0px));background:var(--glass-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-pop)}}.save-bar{border-radius:18px;border-color:var(--stroke-hi)}.modal-backdrop{z-index:70;align-items:end;place-items:end center;padding:0;background:#0203058c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in .2s ease}.modal{display:flex;flex-direction:column;gap:.25rem;width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;padding:1.1rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--surface-2) 94%,transparent);border:1px solid var(--stroke-hi);border-bottom:0;border-radius:26px 26px 0 0;box-shadow:var(--shadow-pop);animation:sheet-up .45s var(--ease-spring)}.modal:before{content:"";align-self:center;flex:none;width:40px;height:5px;border-radius:3px;background:var(--stroke-hi);margin:-.35rem 0 .6rem}.modal h2{font-size:1.2rem;font-weight:700;letter-spacing:-.02em}.modal-actions{margin-top:.5rem}.modal-actions .btn{flex:1 1 0}@media(min-width:640px){.modal-backdrop{place-items:center;padding:1rem}.modal{max-width:420px;border-radius:24px;border-bottom:1px solid var(--stroke-hi);padding-bottom:1.25rem;animation:pop-in .35s var(--ease-spring)}.modal.demo-modal{max-width:560px}.modal:before{display:none}.modal-actions .btn{flex:0 0 auto}}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(40%);opacity:0}}@keyframes pop-in{0%{transform:scale(.94);opacity:0}}.update-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;margin-bottom:.5rem;background:var(--accent-container);color:var(--accent);box-shadow:0 10px 24px -12px var(--glow)}.update-ico svg{width:22px;height:22px}.toasts{position:fixed;z-index:80;left:0;right:0;bottom:calc(var(--dock-h) + var(--dock-gap) + 84px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;padding:0 16px}@media(min-width:960px){.toasts{bottom:28px;padding-left:calc(var(--rail-w) + 24px)}}.toast{position:relative;left:auto;bottom:auto;transform:none;overflow:hidden;pointer-events:auto;cursor:pointer;max-width:min(100%,460px);padding:.8rem 1.1rem;border-radius:16px;background:#191c22eb;border:1px solid var(--stroke-hi);color:var(--text);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 18px 40px -16px #000000b3;animation:toast-pop .45s var(--ease-spring)}.toast.error{background:#3a0d0df0;border-color:#ff8c8c59;color:var(--on-danger-container)}.toast-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left;background:linear-gradient(90deg,var(--accent),var(--sky));animation:toast-timer linear forwards}.toast.error .toast-bar{background:var(--danger)}@keyframes toast-pop{0%{transform:translateY(16px) scale(.96);opacity:0}}@keyframes toast-timer{to{transform:scaleX(0)}}.skeleton{background:linear-gradient(100deg,var(--glass) 30%,rgba(216,255,62,.07) 50%,var(--glass) 70%);background-size:300% 100%;border:1px solid var(--stroke);animation:skel 1.4s ease-in-out infinite}.skeleton-card{border-radius:20px}@keyframes skel{0%{background-position:100% 0}to{background-position:0 0}}.stack{display:flex;flex-direction:column;gap:14px}.stack>.card,.card.stack>*{margin:0}.card.stack{display:flex;flex-direction:column;gap:.75rem}.card.stack .field-row{margin-bottom:0}.inline-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.error-text{color:var(--danger);font-size:.85rem}@media(min-width:640px){.field-row.split.two{grid-template-columns:1fr 1fr}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.badge{box-shadow:0 0 0 2px var(--glass-solid),0 4px 10px -2px var(--glow);animation:pop-in .4s var(--ease-spring)}.count{min-width:1.35rem;height:1.35rem;padding:0 .4rem;border-radius:999px;display:inline-grid;place-items:center;background:var(--accent);color:var(--on-accent);font-size:.7rem;font-weight:800}code{font-family:var(--mono);font-size:.85em;color:var(--text-dim)}::selection{background:#d8ff3e47}.avatar{box-shadow:inset 0 -2px #00000026,0 4px 12px -4px var(--glow)}.avatar.lg{width:52px;height:52px;font-size:1.2rem;flex:none}.profile-card{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.profile-main{display:flex;flex-direction:column;flex:1;min-width:0}.profile-main strong{font-size:1.05rem;overflow:hidden;text-overflow:ellipsis}.shortcuts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.shortcuts li+li{border-top:1px solid var(--stroke)}.shortcut{display:flex;align-items:center;gap:.85rem;padding:.75rem .15rem;color:var(--text);border-radius:12px}.shortcut:hover{text-decoration:none}.shortcut:hover .shortcut-chev{color:var(--accent);transform:translate(3px)}.shortcut-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;background:#d8ff3e14;color:var(--accent);box-shadow:inset 0 0 0 1px #d8ff3e2e}.shortcut-ico svg{width:20px;height:20px}.shortcut-main{display:flex;flex-direction:column;flex:1;min-width:0}.shortcut-main strong{font-size:.95rem}.shortcut-main .muted{font-size:.8rem}.shortcut-chev{width:18px;height:18px;color:var(--muted);transition:transform .25s var(--ease-spring),color .2s}.auth-card{position:relative;border-radius:26px;box-shadow:var(--shadow-pop)}.auth-card>*{position:relative;z-index:3}.auth-hero{background:radial-gradient(700px 500px at 80% 10%,rgba(216,255,62,.14),transparent 65%),#0d0f1299}.auth-shell{background:transparent}.admin-banner{border-radius:18px;background:var(--glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}@media(prefers-reduced-motion:reduce){body:before,.hero:before,.auth-card:before,.fab:before{animation:none!important}.stat{transform:none!important}}.program-split{margin:.3rem 0 .15rem;color:var(--accent);font-size:.78rem;font-weight:650;letter-spacing:.01em}.program-tag.following{background:var(--accent);color:var(--on-accent);font-weight:750}.follow-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:1rem 0 1.25rem}.following-pill{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:0 1rem;border-radius:12px;background:#d8ff3e1a;color:var(--accent);font-weight:700;font-size:.85rem;box-shadow:inset 0 0 0 1px #d8ff3e59}.following-pill svg{width:18px;height:18px}.start-day{display:flex;flex-direction:column;gap:.45rem;margin:-.25rem 0 1.25rem;padding:.9rem 1rem;border-radius:16px;border:1px solid var(--stroke);background:#d8ff3e0a}.start-day label{margin:0}.start-day-name{color:var(--accent);text-transform:none;letter-spacing:0}.start-day select{max-width:220px}.start-day .muted{font-size:.8rem}.schedule-label{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.segmented{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:4px;max-width:360px;border-radius:14px;background:#00000040;border:1px solid var(--stroke);box-shadow:inset 0 1px 3px #00000059;margin-bottom:.35rem}.segmented:before{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px) / var(--n, 2));border-radius:10px;transform:translate(calc(100% * var(--i, 0)));transition:transform .45s var(--ease-spring);background:linear-gradient(135deg,var(--accent),var(--accent-strong));box-shadow:0 8px 18px -10px var(--glow),inset 0 1px #ffffff59}.segmented button{position:relative;z-index:1;min-height:40px;border:0;background:none;border-radius:10px;cursor:pointer;color:var(--muted);font:inherit;font-size:.85rem;font-weight:650;transition:color .25s}.segmented button.on{color:var(--on-accent)}.segmented button:disabled{cursor:progress}.week-day.done{border-color:#d8ff3e59}.week-day.done strong{color:var(--accent)}.missed-card{display:flex;gap:.85rem;align-items:flex-start;margin-bottom:var(--space-4);border-color:#ffc24b59}.missed-ico{width:42px;height:42px;flex:none;border-radius:13px;display:grid;place-items:center;background:#ffc24b1f;color:var(--amber)}.missed-ico svg{width:21px;height:21px}.missed-main{display:flex;flex-direction:column;gap:.35rem;min-width:0}.missed-main strong{font-size:1rem}.missed-main .inline-row{margin-top:.4rem}.past-note{margin:-.5rem 0 1rem;padding:.6rem .85rem;border-radius:12px;font-size:.85rem;background:#6cc9ff14;border:1px solid rgba(108,201,255,.3);color:var(--text-dim)}.past-note strong{color:var(--sky)}.day-switch{display:flex;align-items:center;gap:.6rem;margin-bottom:var(--space-4);padding:.5rem;border-radius:18px;background:var(--glass);border:1px solid var(--stroke);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.day-switch .iconbtn:disabled{opacity:.35;cursor:default;transform:none}.day-switch-main{position:relative;flex:1;margin:0;display:grid;place-items:center;min-height:42px;text-transform:none;letter-spacing:0;cursor:pointer}.day-switch-label{font-size:1rem;font-weight:750;color:var(--text)}.day-switch-main input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;min-height:0}.day-switch .link-btn{padding:0 .5rem;font-weight:650}.save-bar{flex-wrap:nowrap}.save-meta{flex:1 1 auto;min-width:0}.save-meta strong,.save-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.save-bar .btn-row{flex:0 0 auto}@media(max-width:480px){.save-bar{padding:.55rem .55rem .55rem .85rem;gap:.5rem}.save-bar .btn{padding:.7rem .9rem;letter-spacing:.04em}.save-bar .btn.ghost{padding-inline:.55rem}}.save-bar .discard-btn svg{width:17px;height:17px}@media(max-width:480px){.hide-narrow{display:none}.save-bar .discard-btn{width:44px;padding:0}}.focus-note{margin:-.15rem 0 .45rem;font-size:.8rem;color:var(--muted)}.focus-note strong{color:var(--accent);font-weight:650}.focus-note .link-btn{font-size:.8rem;font-weight:650}.picker-trigger{width:100%;min-height:44px;display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem .55rem .85rem;text-align:left;cursor:pointer;font:inherit;font-size:1rem;color:var(--text);background:var(--field);border:1px solid var(--stroke-hi);border-radius:12px;transition:border-color .2s,box-shadow .25s}.picker-trigger:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 35%,var(--stroke-hi))}.picker-trigger:focus-visible,.picker-trigger[aria-expanded=true]{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px #d8ff3e24,0 8px 20px -14px var(--glow)}.picker-trigger:disabled{opacity:.5;cursor:not-allowed}.picker-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-value.placeholder{color:#666f78}.picker-chev{width:18px;height:18px;flex:none;color:var(--muted);transform:rotate(90deg);transition:transform .25s var(--ease-spring)}.picker-trigger[aria-expanded=true] .picker-chev{transform:rotate(-90deg);color:var(--accent)}.picker-trigger.compact{min-height:40px;font-size:.9rem}.modal.picker-sheet{max-width:560px;height:min(88dvh,720px);padding-bottom:0;gap:.6rem;overflow:hidden}@media(min-width:640px){.modal.picker-sheet{max-width:520px;height:min(80dvh,680px)}}.picker-head{display:flex;align-items:center;gap:.75rem}.picker-head h2{flex:1;margin:0}.picker-close{width:36px;height:36px;font-size:.85rem}.picker-close:hover{transform:none}.picker-search input{width:100%}.picker-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0 -1.25rem;padding:0 .75rem calc(1rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--stroke)}.picker-group{position:sticky;top:0;z-index:1;padding:.7rem .5rem .35rem;font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb,var(--surface-2) 96%,transparent)}.picker-option{width:100%;display:flex;align-items:center;gap:.75rem;min-height:48px;padding:.5rem .6rem;margin:1px 0;border:0;border-radius:12px;cursor:pointer;background:transparent;color:var(--text);font:inherit;text-align:left;transition:background .15s}.picker-option:hover,.picker-option:focus-visible{background:#ffffff0d;outline:none}.picker-option:focus-visible{box-shadow:inset 0 0 0 1px #d8ff3e73}.picker-option[aria-selected=true]{background:#d8ff3e1a;box-shadow:inset 0 0 0 1px #d8ff3e4d}.picker-option:active{transform:scale(.99)}.picker-option-main{flex:1;min-width:0;display:flex;flex-direction:column}.picker-option-label{font-size:.95rem;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-option[aria-selected=true] .picker-option-label{color:var(--accent);font-weight:650}.picker-option-hint{font-size:.78rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-check{width:18px;height:18px;flex:none;color:var(--accent)}.picker-thumb{flex:none;display:grid}.picker-thumb .exercise-demo.thumb{width:40px;height:40px;border-radius:10px}.picker-trigger .picker-thumb .exercise-demo.thumb{width:28px;height:28px;border-radius:7px}.picker-empty,.picker-more{margin:1rem .5rem;text-align:center;color:var(--muted);font-size:.85rem}.modal.picker-sheet .focus-note{margin:0}select option,select optgroup{background:var(--surface-2);color:var(--text)}.picker-inline{width:100%;max-width:260px}.modal.picker-sheet.compact{height:auto;max-height:80dvh}.modal.picker-sheet.compact .picker-list{flex:0 1 auto}.picker-radio{width:20px;height:20px;flex:none;border-radius:50%;border:2px solid var(--stroke-hi);background:transparent;transition:border-color .2s,box-shadow .2s}.picker-option[aria-selected=true] .picker-radio{border-color:var(--accent);box-shadow:inset 0 0 0 4px var(--surface-2),inset 0 0 0 10px var(--accent)}.picker-badge{flex:none;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-dim);background:#ffffff0f;border:1px solid var(--stroke)}.picker-chips{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;margin:0 -1.25rem;padding:0 1.25rem .15rem}.picker-chips::-webkit-scrollbar{display:none}.picker-chips .chip{flex:none}.picker-list.layout-grid,.picker-list.layout-cards{padding-left:1rem;padding-right:1rem}.picker-cards{display:grid;gap:10px;padding:2px 0 6px}.layout-cards .picker-cards{grid-template-columns:1fr 1fr}.layout-grid .picker-cards{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:520px){.layout-grid .picker-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}.picker-card{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:.3rem;min-width:0;padding:.75rem .8rem;text-align:left;cursor:pointer;font:inherit;color:var(--text);background:#ffffff08;border:1px solid var(--stroke);border-radius:16px;transition:transform .2s var(--ease-spring),border-color .2s,background .2s,box-shadow .2s}.picker-card:hover,.picker-card:focus-visible{outline:none;background:#ffffff0d;border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.picker-card:active{transform:scale(.97)}.picker-card[aria-selected=true]{background:#d8ff3e14;border-color:#d8ff3e8c;box-shadow:0 10px 24px -16px var(--glow)}.picker-card[aria-selected=true] .picker-option-label{color:var(--accent)}.picker-card .picker-option-label{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25}.picker-card .picker-option-hint{white-space:normal}.picker-card-top{display:flex;align-items:center;gap:.4rem}.picker-card-top .picker-option-label{flex:1;font-size:1rem;font-weight:700}.picker-card.flagged{border-color:#d8ff3e59}.picker-flag{flex:none;padding:.1rem .45rem;border-radius:999px;font-size:.62rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:var(--accent);color:var(--on-accent)}.picker-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.15rem}.picker-tags span{padding:.05rem .45rem;border-radius:999px;font-size:.68rem;font-weight:600;text-transform:capitalize;color:var(--sky);background:#6cc9ff1a}.picker-card-media{padding:0;overflow:hidden;gap:0}.picker-card-img{display:block}.picker-card-img .exercise-demo.thumb{width:100%;height:auto;aspect-ratio:4 / 3;border-radius:0}.picker-card-body{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .65rem .65rem}.picker-card-media .picker-option-label{font-size:.85rem;font-weight:650}.picker-card-media .picker-option-hint{font-size:.72rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.picker-card-check{position:absolute;top:8px;right:8px;width:24px;height:24px;padding:4px;border-radius:50%;background:var(--accent);color:var(--on-accent)}
