:root{--bg:#12151a;--surface:#1b2029;--surface-2:#232a35;--border:#ffffff12;--text:#f1f3f6;--text-dim:#8d96a6;--text-faint:#5b6472;--amber:#ff8a3d;--amber-dim:#4a3420;--green:#34d399;--green-dim:#173c30;--blue:#5b9dff;--red:#f2545b;--red-dim:#3a1e22;--radius:18px;--radius-sm:12px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);overscroll-behavior:none;-webkit-user-select:none;user-select:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#root{min-height:100vh}.app{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;padding:16px 16px 32px;display:flex}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);font-size:11px;font-weight:700}h1{letter-spacing:-.01em;margin:2px 0 0;font-size:22px;font-weight:800}.num{font-variant-numeric:tabular-nums}button{cursor:pointer;border:none;font-family:inherit}.btn{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);border:1px solid var(--border);padding:14px 18px;font-size:16px;font-weight:700}.btn:active{transform:scale(.97)}.btn-primary{background:var(--amber);color:#1a0f04}.btn-ghost{color:var(--text-dim);border:1px solid var(--border);background:0 0}.btn-danger{background:var(--red-dim);color:var(--red)}.btn-block{width:100%;display:block}.btn:disabled{opacity:.4}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.home-header{margin:6px 0 22px}.home-last-session{color:var(--text-dim);margin-top:6px;font-size:14px}.workout-card{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.workout-card .info small{color:var(--text-dim);font-size:13px}.workout-card .badge{color:var(--text-faint);margin-top:4px;font-size:11px}.go{background:var(--amber);color:#1a0f04;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex}.topbar{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.back{color:var(--text-dim);padding:8px;font-size:14px}.progress-dots{gap:5px;display:flex}.dot{background:var(--border);border-radius:50%;width:7px;height:7px}.dot.done{background:var(--green)}.dot.current{background:var(--amber)}.dot.skipped{background:var(--text-faint)}.ex-name{letter-spacing:-.01em;margin:4px 0 2px;font-size:24px;font-weight:800}.ex-target{color:var(--text-dim);margin-bottom:18px;font-size:14px}.ex-note{background:var(--surface-2);border-left:3px solid var(--amber);color:var(--text-dim);border-radius:8px;margin-bottom:18px;padding:10px 12px;font-size:13px;line-height:1.4}.last-time{background:var(--surface-2);color:var(--text-dim);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:4px;margin-top:14px;padding:10px 12px;font-size:13px;line-height:1.4;display:flex}.lt-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;margin-right:4px;font-size:11px;font-weight:700}.lt-weight{color:var(--text-dim)}.lt-set.current{color:var(--amber);font-weight:700}.lt-unit{color:var(--text-faint);margin-left:4px}.set-track{gap:8px;margin-bottom:22px;display:flex}.set-pip{background:var(--surface-2);border-radius:4px;flex:1;height:6px}.set-pip.done{background:var(--green)}.set-pip.current{background:var(--amber)}.stepper-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:12px;font-weight:700}.stepper{justify-content:center;align-items:center;gap:18px;margin-bottom:24px;display:flex}.stepper button{background:var(--surface-2);width:52px;height:52px;color:var(--text);border-radius:50%;font-size:24px;font-weight:700}.stepper .value{text-align:center;min-width:110px;font-size:38px;font-weight:800}.stepper .value span{color:var(--text-dim);font-size:16px;font-weight:600}.reps-row{flex-wrap:wrap;gap:10px;margin-bottom:26px;display:flex}.reps-chip{text-align:center;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;flex:1;min-width:40px;padding:14px 0;font-size:16px;font-weight:700}.reps-chip.selected{background:var(--green-dim);border-color:var(--green);color:var(--green)}.reps-chip.muscle-chip{flex:0 auto;min-width:0;padding:9px 13px;font-size:13px;font-weight:600}.muscle-map{margin-bottom:16px}.muscle-map-panels{justify-content:center;gap:10px;display:flex}.muscle-map-panels svg{width:50%;max-width:150px;height:auto}.muscle-map-legend{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:8px;display:flex}.muscle-map-legend span{color:var(--text-dim);align-items:center;gap:5px;font-size:11px;display:flex}.dot-swatch{border-radius:50%;width:8px;height:8px;display:inline-block}.hold-display{text-align:center;margin:30px 0}.hold-time{font-variant-numeric:tabular-nums;font-size:52px;font-weight:800}.rest-wrap{flex-direction:column;align-items:center;padding:20px 0 8px;display:flex}.ring-wrap{width:220px;height:220px;margin:6px 0 20px;position:relative}.ring-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:var(--surface-2);stroke-width:10px}.ring-fg{fill:none;stroke:var(--amber);stroke-width:10px;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.ring-fg.ready{stroke:var(--green)}.ring-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ring-num{font-variant-numeric:tabular-nums;font-size:44px;font-weight:800}.ring-sub{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-top:2px;font-size:13px}.ready-pulse{animation:1s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.upcoming{margin-top:22px}.upcoming-title{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;font-size:12px;font-weight:700}.up-item{border-bottom:1px solid var(--border);justify-content:space-between;padding:10px 0;font-size:14px;display:flex}.up-item:last-child{border-bottom:none}.up-item .name{color:var(--text-dim)}.up-item.done .name{color:var(--text-faint);text-decoration:line-through}.up-item .w{color:var(--text-faint)}.toast{background:var(--green-dim);max-width:448px;color:var(--green);border:1px solid var(--green);border-radius:var(--radius-sm);text-align:center;z-index:50;margin:0 auto;padding:14px 16px;font-size:14px;font-weight:700;transition:transform .3s;position:fixed;bottom:24px;left:16px;right:16px;transform:translateY(120%)}.toast.show{transform:translateY(0)}.toast.error{background:var(--red-dim);color:var(--red);border-color:var(--red)}.complete-wrap{text-align:center;padding:40px 0}.complete-wrap .big{font-size:48px}.complete-wrap h2{margin:14px 0 6px}.complete-wrap p{color:var(--text-dim);margin-bottom:26px;font-size:14px}.neck-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:14px 0;display:flex}.neck-item:last-child{border-bottom:none}.neck-check{border:2px solid var(--border);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-top:2px;font-size:15px;font-weight:800;display:flex}.neck-check.on{background:var(--green);border-color:var(--green);color:#062018}.neck-text{cursor:pointer}.neck-text b{margin-bottom:2px;font-size:15px;display:block}.neck-text span{color:var(--text-dim);font-size:13px;line-height:1.4}.hidden{display:none!important}.footer-note{text-align:center;color:var(--text-faint);margin-top:26px;font-size:12px;line-height:1.5}.chart-line{fill:none;stroke:var(--blue);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:var(--blue)}.chart-dot.pr{fill:var(--amber)}.stat-row{gap:10px;display:flex}.stat-tile{flex:1;padding:14px}.stat-tile .value{font-size:26px;font-weight:800}.stat-tile .value.small{font-size:19px}.stat-tile .value.pr{color:var(--amber)}.login-wrap{flex-direction:column;justify-content:center;min-height:100vh;padding:16px;display:flex}.login-card{width:100%;max-width:360px;margin:0 auto}.login-title{text-align:center;margin:8px 0 22px;font-size:24px;font-weight:800}.field{margin-bottom:16px}.field label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.field input{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);padding:14px 16px;font-family:inherit;font-size:16px}.field input:focus{outline:2px solid var(--amber);outline-offset:-1px}.form-error{color:var(--red);margin:-6px 0 16px;font-size:13px}.update-banner{left:16px;right:16px;top:calc(env(safe-area-inset-top) + 12px);background:var(--surface);border:1px solid var(--amber);border-radius:var(--radius-sm);z-index:60;justify-content:space-between;align-items:center;gap:12px;max-width:448px;margin:0 auto;padding:12px 14px;font-size:13px;display:flex;position:fixed}.backup-actions{gap:10px;margin-top:10px;display:flex}.backup-actions .btn{flex:1}.import-textarea{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);width:100%;min-height:110px;color:var(--text);resize:vertical;margin-top:12px;padding:12px;font-family:ui-monospace,monospace;font-size:12px}.field textarea{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);resize:vertical;min-height:80px;padding:14px 16px;font-family:inherit;font-size:15px}.field textarea:focus{outline:2px solid var(--amber);outline-offset:-1px}.field select{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);padding:14px 16px;font-family:inherit;font-size:16px}.field select:focus{outline:2px solid var(--amber);outline-offset:-1px}.field-row{gap:10px;display:flex}.field-row .field{flex:1}.checkbox-row{align-items:center;gap:10px;margin-bottom:16px;display:flex}.checkbox-row input{width:20px;height:20px;accent-color:var(--amber)}.checkbox-row label{color:var(--text);font-size:14px}.offline-banner{background:var(--red-dim);color:var(--red);border:1px solid var(--red);border-radius:var(--radius-sm);text-align:center;margin-bottom:16px;padding:10px 12px;font-size:13px}
