@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800;900&family=DM+Sans:wght@400;500;600&display=swap');
:root{
  --bg:#080808;--surface:#111;--card:#161616;--card-hi:#1c1c1c;--border:#242424;--border-hi:#303030;
  --accent:#E8621A;--accent2:#b84c12;--accent3:#ff7c38;
  --accentg:rgba(232,98,26,.12);--accentg2:rgba(232,98,26,.06);
  --text:#f0f0f0;--text2:#b0b0b0;--muted:#555;--muted2:#888;
  --danger:#ff4444;--success:#4caf50;
  --shadow-xs:0 1px 3px rgba(0,0,0,.55);
  --shadow-sm:0 2px 8px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.3);
  --shadow-md:0 4px 16px rgba(0,0,0,.55),0 2px 4px rgba(0,0,0,.3);
  --shadow-lg:0 8px 32px rgba(0,0,0,.65),0 4px 8px rgba(0,0,0,.4);
  --shadow-accent:0 0 24px rgba(232,98,26,.28),0 4px 12px rgba(232,98,26,.15);
  --shadow-accent-lg:0 0 48px rgba(232,98,26,.4),0 8px 24px rgba(232,98,26,.2);
  --r:12px;--r-sm:8px;--r-lg:16px;
  --fh:'Barlow Condensed',sans-serif;--fb:'DM Sans',sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{background:var(--bg);color:var(--text);font-family:var(--fb);min-height:100dvh;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse 70% 40% at 85% -5%,rgba(232,98,26,.09) 0%,transparent 55%),radial-gradient(ellipse 50% 30% at 15% 100%,rgba(232,98,26,.05) 0%,transparent 55%);pointer-events:none;z-index:0}
.screen{display:none;min-height:100dvh;flex-direction:column;position:relative;z-index:1}
.screen.active{display:flex;animation:screenIn .22s cubic-bezier(.4,0,.2,1) both}
.nav-bar{flex-shrink:0;display:flex;align-items:center;background:rgba(8,8,8,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.06);padding:max(env(safe-area-inset-top),14px) 16px 12px;gap:12px;position:sticky;top:0;z-index:10;box-shadow:0 1px 0 rgba(232,98,26,.07),var(--shadow-sm)}
.nav-title{font-family:var(--fh);font-size:1.1rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;flex:1;text-align:center}
.nav-btn{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--r-sm);color:var(--muted2);font-family:var(--fh);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:7px 13px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s;white-space:nowrap;text-decoration:none;display:flex;align-items:center;justify-content:center}
.nav-btn:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:var(--text)}
.nav-btn.accent{background:linear-gradient(135deg,var(--accent3),var(--accent));border-color:transparent;color:#fff;box-shadow:0 2px 12px rgba(232,98,26,.35)}
.nav-btn.accent:hover{box-shadow:var(--shadow-accent);transform:translateY(-1px)}
.nav-spacer{width:72px}
.scroll-body{flex:1;overflow-y:auto;padding-bottom:max(env(safe-area-inset-bottom),28px);scrollbar-width:none}
.scroll-body::-webkit-scrollbar{display:none}
.slabel{font-family:var(--fh);font-size:.58rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.slabel::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent)}
.pill-row{display:flex;gap:8px;flex-wrap:wrap}
.pill{position:relative;flex:1;padding:13px 6px;border:1.5px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--muted);font-family:var(--fh);font-size:1rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:all .18s cubic-bezier(.4,0,.2,1);text-align:center;-webkit-tap-highlight-color:transparent;user-select:none}
.rotation-badge{position:absolute;top:-7px;right:-4px;background:var(--accent);color:#fff;font-size:.55rem;font-weight:800;letter-spacing:.06em;padding:2px 6px;border-radius:20px;text-transform:uppercase;pointer-events:none;white-space:nowrap}
.pill.active{background:linear-gradient(145deg,var(--accent3) 0%,var(--accent) 60%,var(--accent2) 100%);border-color:transparent;color:#fff;box-shadow:0 2px 16px rgba(232,98,26,.35),0 1px 0 rgba(255,255,255,.12) inset}
.pill:not(.active):hover{border-color:var(--border-hi);color:var(--text2);background:rgba(255,255,255,.04)}
.pill:active{transform:scale(.97)}
.btn-cta{width:100%;padding:17px;background:linear-gradient(160deg,var(--accent3) 0%,var(--accent) 50%,var(--accent2) 100%);color:#fff;border:none;border-radius:var(--r);font-family:var(--fh);font-size:1.3rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;box-shadow:0 4px 20px rgba(232,98,26,.35),0 1px 0 rgba(255,255,255,.12) inset}
.btn-cta::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.13) 0%,transparent 50%);pointer-events:none}
.btn-cta:active{transform:scale(.96);box-shadow:0 2px 10px rgba(232,98,26,.25)}
.btn-cta:hover{transform:translateY(-2px);box-shadow:var(--shadow-accent-lg)}
.btn-cta:disabled{background:var(--border);color:var(--muted);cursor:not-allowed;box-shadow:none;transform:none}
.btn-secondary{padding:13px;background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:var(--r);color:var(--muted2);font-family:var(--fh);font-size:.95rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}
.btn-secondary:hover{border-color:var(--border-hi);color:var(--text);background:rgba(255,255,255,.06)}
.btn-secondary:active{transform:scale(.97)}
.errmsg{background:rgba(255,68,68,.07);border:1px solid rgba(255,68,68,.2);border-radius:var(--r);padding:12px 14px;color:var(--danger);font-size:.78rem;font-weight:500;line-height:1.5;display:none}
.errmsg.on{display:block;animation:fadeUp .2s ease}
.empty-state{padding:40px 20px;text-align:center;color:var(--muted);font-size:.82rem;line-height:1.7}
.empty-state strong{display:block;font-family:var(--fh);font-size:1.1rem;font-weight:800;text-transform:uppercase;color:var(--text);margin-bottom:6px}
/* HOME */
.home-hero{padding:52px 20px 28px;position:relative;overflow:hidden}
.home-hero::before{content:'';position:absolute;top:-80px;right:-60px;width:380px;height:380px;background:radial-gradient(circle,rgba(232,98,26,.2) 0%,rgba(232,98,26,.06) 40%,transparent 70%);pointer-events:none}
.home-hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(232,98,26,.18) 50%,transparent 100%);pointer-events:none}
.home-music{position:absolute;top:max(env(safe-area-inset-top),16px);right:20px;width:44px;height:44px;border:1px solid rgba(255,255,255,.08);border-radius:var(--r);display:flex;align-items:center;justify-content:center;color:var(--muted);text-decoration:none;transition:all .15s;-webkit-tap-highlight-color:transparent;background:rgba(255,255,255,.04)}
.home-music:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 0 16px rgba(232,98,26,.2)}
.home-music svg{width:22px;height:22px;fill:currentColor}
.home-eyebrow{font-size:.6rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.home-title{font-family:var(--fh);font-size:clamp(3.5rem,15vw,5rem);font-weight:900;letter-spacing:-.02em;line-height:.85;text-transform:uppercase}
.home-title em{color:var(--accent);font-style:normal;text-shadow:0 0 40px rgba(232,98,26,.55)}
.home-tagline{margin-top:12px;font-size:.78rem;color:var(--muted2);letter-spacing:.04em;line-height:1.5}
.no-bands-card{margin:0 16px 20px;background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.07);border-radius:var(--r-lg);padding:20px;text-align:center;box-shadow:var(--shadow-md)}
.no-bands-card p{font-size:.82rem;color:var(--muted2);line-height:1.7;margin-bottom:16px}
.welcome-banner{margin:0 16px 16px;background:var(--card-hi);border:1px solid rgba(232,98,26,.2);border-radius:var(--r-lg);padding:12px 40px 12px 14px;font-size:.8rem;color:var(--muted2);line-height:1.5;position:relative}
.welcome-banner strong{color:var(--text)}
.welcome-banner button{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--muted);font-size:.85rem;cursor:pointer;padding:2px 6px;line-height:1}
.build-plan-nudge{margin:0 16px 16px;background:var(--card-hi);border:1px solid rgba(232,98,26,.25);border-radius:var(--r-lg);padding:14px 16px 14px 14px;position:relative}
.nudge-text{font-size:.8rem;color:var(--muted2);line-height:1.6;margin-bottom:10px}
.nudge-text strong{color:var(--text)}
.nudge-cta{font-size:.82rem;padding:8px 14px}
.nudge-dismiss{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--muted);font-size:.85rem;cursor:pointer;padding:2px 6px;line-height:1}
.gen-hint{font-size:.75rem;color:var(--muted2);padding-top:4px}
.gen-hint a{color:var(--accent);text-decoration:none}
.pill[data-locked]{opacity:.38;cursor:default}
.wk-empty-hint{font-size:.8rem;color:var(--muted2);line-height:1.6;padding:4px 16px 10px;margin-bottom:0}
.wk-empty-hint strong{color:var(--text)}
.stats-bar{display:flex;gap:8px;margin:0 16px 20px}
.stat-cell{flex:1;background:linear-gradient(160deg,var(--card-hi) 0%,var(--card) 100%);border:1px solid rgba(255,255,255,.06);border-radius:var(--r);padding:14px 8px;text-align:center;box-shadow:var(--shadow-sm)}
.stat-val{font-family:var(--fh);font-size:1.6rem;font-weight:900;color:var(--accent);line-height:1;text-shadow:0 0 20px rgba(232,98,26,.4)}
.stat-lbl{font-size:.52rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.home-section{padding:0 16px 20px}
.home-last{background:linear-gradient(145deg,var(--card-hi) 0%,var(--card) 100%);border:1px solid rgba(255,255,255,.07);border-radius:var(--r-lg);padding:16px;box-shadow:var(--shadow-md)}
.home-last-title{font-family:var(--fh);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.home-last-ex{font-family:var(--fh);font-size:1.1rem;font-weight:800;text-transform:uppercase;color:var(--text);margin-bottom:3px;line-height:1.1}
.home-last-meta{font-size:.7rem;color:var(--muted2);margin-bottom:14px;line-height:1.4}
.btn-continue{width:100%;padding:13px;background:var(--accentg);border:1.5px solid rgba(232,98,26,.35);border-radius:var(--r);color:var(--accent);font-family:var(--fh);font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:all .18s;-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}
.btn-continue::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(232,98,26,.07) 0%,transparent 60%);pointer-events:none}
.btn-continue:hover{background:rgba(232,98,26,.2);border-color:var(--accent);box-shadow:0 0 20px rgba(232,98,26,.15)}
.btn-continue:active{transform:scale(.97)}
.home-actions{padding:0 16px;display:flex;flex-direction:column;gap:10px;margin-bottom:8px}
.home-sub-actions{display:flex;gap:8px}
.home-sub-actions .btn-secondary{flex:1;font-size:.82rem;padding:11px 8px}
/* BANDS */
.band-list{display:flex;flex-direction:column;gap:8px;padding:14px 16px 0}
.band-set-header{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted2);padding:12px 0 4px;border-top:1px solid rgba(255,255,255,.05);margin-top:4px}
.band-set-header:first-child{border-top:none;margin-top:0;padding-top:4px}
.band-set-divider{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted2);padding:8px 0 2px}
.band-card{background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r);padding:13px;display:flex;align-items:center;gap:12px;transition:all .2s;touch-action:none;box-shadow:var(--shadow-sm)}
.band-card:hover{border-color:rgba(255,255,255,.1);box-shadow:var(--shadow-md)}
.band-card.dragging{opacity:.5;border-color:var(--accent);box-shadow:var(--shadow-accent);transform:scale(1.02)}
.band-drag{color:var(--muted);cursor:grab;padding:2px 4px;flex-shrink:0;line-height:0;transition:color .15s}
.band-drag:hover{color:var(--muted2)}
.band-drag svg{width:16px;height:16px;fill:currentColor}
.band-swatch{width:12px;height:44px;border-radius:4px;flex-shrink:0;box-shadow:0 0 8px rgba(0,0,0,.4)}
.band-info{flex:1;min-width:0}
.band-name{font-family:var(--fh);font-size:1.1rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;line-height:1}
.band-range{font-size:.7rem;color:var(--text2);margin-top:2px}
.band-mid{font-size:.62rem;color:var(--muted);margin-top:1px}
.band-edit{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;-webkit-tap-highlight-color:transparent;transition:color .15s;flex-shrink:0;line-height:0}
.band-edit:hover{color:var(--accent)}
.band-edit svg{width:15px;height:15px;fill:currentColor}
.band-del{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;-webkit-tap-highlight-color:transparent;transition:color .15s;flex-shrink:0;line-height:0}
.band-del:hover{color:var(--danger)}
.band-del svg{width:16px;height:16px;fill:currentColor}
.unit-section{margin:12px 16px 4px;background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.07);border-radius:var(--r-lg);padding:14px 18px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-md)}
.unit-section-lbl{font-family:var(--fh);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.add-band-form{margin:14px 16px;background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.07);border-radius:var(--r-lg);padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-md)}
.add-band-form h3{font-family:var(--fh);font-size:1rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.form-field{display:flex;flex-direction:column;gap:5px;flex:1}
.form-field label{font-size:.58rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.form-field input{background:rgba(255,255,255,.04);border:1.5px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:var(--fb);font-size:1rem;padding:10px 13px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%;-webkit-appearance:none}
.form-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(232,98,26,.12),0 0 12px rgba(232,98,26,.1)}
.form-field input::placeholder{color:var(--muted)}
.form-row{display:flex;gap:8px}
.color-swatches{display:flex;gap:8px;flex-wrap:wrap}
.cswatch{width:32px;height:32px;border-radius:50%;cursor:pointer;border:2.5px solid transparent;transition:all .18s cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent;flex-shrink:0}
.cswatch:hover{transform:scale(1.12)}
.cswatch.selected{border-color:#fff;transform:scale(1.22);box-shadow:0 0 12px rgba(255,255,255,.3)}
.unit-toggle{display:flex;border:1.5px solid var(--border);border-radius:var(--r-sm);overflow:hidden}
.unit-opt{flex:1;padding:9px 12px;text-align:center;font-family:var(--fh);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:all .15s;background:rgba(255,255,255,.03);color:var(--muted);border:none;-webkit-tap-highlight-color:transparent}
.unit-opt.active{background:var(--accent);color:#fff}
.bands-actions{padding:14px 16px;display:flex;gap:8px}
.danger-zone{margin:0 16px 16px;border:1px solid rgba(255,68,68,.18);border-radius:var(--r);overflow:hidden}
.danger-zone-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none}
.danger-zone-lbl{font-family:var(--fh);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--danger);opacity:.7}
.danger-zone-arrow{font-size:.7rem;color:var(--danger);opacity:.5;transition:transform .2s}
.danger-zone-body{display:none;padding:0 14px 14px;display:flex;flex-direction:column;gap:8px}
.btn-danger{width:100%;padding:11px;background:rgba(255,68,68,.07);border:1px solid rgba(255,68,68,.2);border-radius:var(--r-sm);color:var(--danger);font-family:var(--fh);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent;opacity:.8}
.btn-danger:hover{opacity:1;background:rgba(255,68,68,.12)}
.bands-actions .btn-secondary{flex:1;font-size:.85rem;padding:11px}
.order-hint{margin:10px 16px 0;font-size:.67rem;color:var(--muted);text-align:center;line-height:1.5}
/* equip checks */
.equip-item{display:flex;align-items:center;gap:10px;padding:13px 15px;border:1.5px solid var(--border);border-radius:var(--r);background:var(--surface);cursor:pointer;transition:all .18s;-webkit-tap-highlight-color:transparent;user-select:none}
.equip-item.on{border-color:rgba(232,98,26,.5);background:rgba(232,98,26,.07)}
.equip-item.on .equip-box{background:var(--accent);border-color:var(--accent)}
.equip-box{width:18px;height:18px;border:2px solid var(--border);border-radius:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}
.equip-label{font-family:var(--fh);font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text)}
/* PREVIEW */
.preview-meta-bar{padding:12px 16px;display:flex;gap:6px;flex-wrap:wrap}
.meta-chip{font-family:var(--fh);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);background:var(--accentg);border-radius:20px;padding:4px 11px;border:1px solid rgba(232,98,26,.18)}
.preview-list{display:flex;flex-direction:column;gap:10px;padding:0 16px 16px}
.ex-card{background:linear-gradient(160deg,var(--card-hi) 0%,var(--card) 100%);border:1px solid rgba(255,255,255,.06);border-radius:var(--r);overflow:hidden;position:relative;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s}
.ex-card-bar{position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,var(--accent3),var(--accent))}
.ex-inner{padding:14px 14px 14px 18px}
.ex-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:5px}
.ex-tags{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.tag{font-size:.52rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;border-radius:4px;padding:3px 7px}
.tag-muscle{color:var(--accent);background:var(--accentg);border:1px solid rgba(232,98,26,.18)}
.tag-equip{color:var(--muted2);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.06)}
.tag-prog{color:var(--success);background:rgba(76,175,80,.1);border:1px solid rgba(76,175,80,.22)}
.btn-swap{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:6px;color:var(--muted2);font-family:var(--fh);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:5px 10px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .15s;-webkit-tap-highlight-color:transparent}
.btn-swap:hover{border-color:var(--accent);color:var(--accent);background:var(--accentg)}
.ex-name{font-family:var(--fh);font-size:1.25rem;font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:1.05;margin-bottom:3px}
.ex-cue{font-size:.72rem;color:var(--muted2);line-height:1.45;margin-bottom:10px}
.ex-bottom{display:flex;align-items:center;justify-content:space-between}
.ex-presc{font-family:var(--fh);font-size:1rem;font-weight:800}
.ex-presc em{color:var(--accent);font-style:normal}
.muscle-map{width:28px;height:48px;flex-shrink:0}
/* SWAP */
.swap-panel{display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);flex-direction:column}
.swap-panel.open{display:flex;animation:slideUp .25s cubic-bezier(.32,.72,0,1) both}
.swap-header{padding:max(env(safe-area-inset-top),20px) 16px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.06)}
.swap-title{font-family:var(--fh);font-size:1.2rem;font-weight:900;text-transform:uppercase}
.swap-sub{padding:10px 16px;font-size:.7rem;color:var(--muted2);line-height:1.5}
.swap-list{flex:1;overflow-y:auto;padding:0 16px 16px;display:flex;flex-direction:column;gap:8px;scrollbar-width:none}
.swap-list::-webkit-scrollbar{display:none}
.swap-item{background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r);padding:13px;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent;box-shadow:var(--shadow-xs)}
.swap-item:hover{border-color:rgba(232,98,26,.4);background:rgba(232,98,26,.06);box-shadow:0 0 16px rgba(232,98,26,.1)}
.swap-item:active{transform:scale(.98)}
.swap-item-name{font-family:var(--fh);font-size:1.05rem;font-weight:800;text-transform:uppercase;margin-bottom:3px}
.swap-item-desc{font-size:.7rem;color:var(--muted2);line-height:1.4}
.swap-item-equip{font-size:.58rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-top:5px}
.swap-item.cur{border-color:rgba(232,98,26,.3);opacity:.45;pointer-events:none}
/* WORKOUT */
#screen-workout{background:var(--bg);overflow:hidden;height:100dvh}
.wk-header{flex-shrink:0;padding:max(env(safe-area-inset-top),12px) 16px 10px;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.05);background:rgba(8,8,8,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.wk-prog-wrap{flex:1}
.wk-prog-lbl{font-size:.5rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;text-align:right}
.wk-prog-bar{height:4px;background:rgba(255,255,255,.07);border-radius:2px;overflow:hidden}
.wk-prog-fill{height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent),var(--accent3));border-radius:2px;transition:width .6s cubic-bezier(.4,0,.2,1);box-shadow:0 0 8px rgba(232,98,26,.6);position:relative}
.wk-prog-fill::after{content:'';position:absolute;right:-1px;top:-1px;width:3px;height:6px;background:var(--accent3);border-radius:2px;box-shadow:0 0 5px var(--accent3)}
.wk-music{width:36px;height:36px;border:1px solid rgba(255,255,255,.08);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--muted);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:all .15s;flex-shrink:0;background:rgba(255,255,255,.03)}
.wk-music:hover{border-color:var(--accent);color:var(--accent)}
.wk-music svg{width:18px;height:18px;fill:currentColor}
.stage-name{font-family:var(--fh);font-size:clamp(1.5rem,6.5vw,2.1rem);font-weight:900;text-transform:uppercase;letter-spacing:-.01em;line-height:.92;margin-bottom:11px;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;-webkit-tap-highlight-color:rgba(232,98,26,.08);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:10px 12px;margin-left:-12px;margin-right:-12px;transition:background .15s}
.stage-name:hover{background:rgba(232,98,26,.06)}
.stage-name:active{background:rgba(232,98,26,.12);opacity:.9}
.guide-badge{font-family:var(--fh);font-size:.5rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:var(--accentg);border:1px solid rgba(232,98,26,.22);border-radius:10px;padding:3px 8px;margin-top:9px;flex-shrink:0;white-space:nowrap}
/* Form Guide overlay */
.fg-overlay{display:none;position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);flex-direction:column;overflow-y:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.fg-overlay::-webkit-scrollbar{display:none}
.fg-overlay.open{display:flex;animation:screenIn .25s ease}
.fg-ov-bar{display:flex;justify-content:space-between;align-items:center;padding:max(env(safe-area-inset-top),16px) 20px 0}
.fg-ov-close{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:var(--text);width:38px;height:38px;border-radius:50%;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;-webkit-tap-highlight-color:transparent;font-family:system-ui;line-height:1}
.fg-ov-close:active{transform:scale(.9);background:rgba(255,255,255,.12)}
.fg-ov-badge{font-family:var(--fh);font-size:.58rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);background:var(--accentg);border:1px solid rgba(232,98,26,.2);border-radius:20px;padding:4px 12px}
.fg-ov-title{font-family:var(--fh);font-size:clamp(2rem,9vw,3rem);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.88;padding:16px 20px 0}
.fg-ov-icon-row{padding:20px 20px 0;display:flex;align-items:center;gap:14px}
.fg-ov-icon{width:68px;height:68px;border-radius:20px;background:var(--accentg);border:2px solid rgba(232,98,26,.25);box-shadow:0 8px 32px rgba(232,98,26,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fg-ov-icon svg{width:34px;height:34px;stroke:var(--accent);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fg-ov-move-type{font-family:var(--fh);font-size:.65rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);opacity:.6;margin-bottom:5px}
.fg-ov-chips{display:flex;flex-wrap:wrap;gap:5px}
.fg-chip{font-family:var(--fh);font-size:.53rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;border-radius:20px;padding:2px 8px}
.fg-chip.pri{color:var(--accent);background:rgba(232,98,26,.1);border:1px solid rgba(232,98,26,.2)}
.fg-chip.sec{color:var(--muted2);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07)}
.fg-ov-cues{padding:24px 20px 0;display:flex;flex-direction:column;gap:18px}
.fg-ov-cue{display:flex;gap:14px;align-items:flex-start}
.fg-ov-cue-n{font-family:var(--fh);font-size:2.6rem;font-weight:900;color:var(--accent);opacity:.14;line-height:.85;min-width:48px;flex-shrink:0;text-align:right}
.fg-ov-cue-t{font-size:.97rem;color:var(--text);line-height:1.55;margin-top:4px}
.fg-ov-img{margin:20px 20px 44px;border-radius:var(--r);overflow:hidden;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}
.fg-ov-video-credit{font-size:.72rem;color:var(--muted2);text-align:center;padding:8px 0 4px;opacity:.7}
.sess-detail-date{font-family:var(--fh);font-size:clamp(1.6rem,7vw,2.4rem);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.9;padding:16px 20px 0}
.sess-detail-meta{font-size:.82rem;color:var(--muted2);padding:8px 20px 0}
#sess-detail-replay{padding:0 16px 48px}
.ex-info{flex:1;overflow-y:auto;padding:15px 16px 0;border-top:1px solid rgba(255,255,255,.04);scrollbar-width:none}
.ex-info::-webkit-scrollbar{display:none}
.prog-hint{background:linear-gradient(135deg,rgba(232,98,26,.1) 0%,rgba(232,98,26,.05) 100%);border:1px solid rgba(232,98,26,.25);border-radius:var(--r-sm);padding:11px 13px;margin-bottom:10px;box-shadow:0 0 16px rgba(232,98,26,.06) inset}
.prog-hint-lbl{font-size:.54rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);opacity:.8;margin-bottom:4px}
.prog-hint-val{font-family:var(--fh);font-size:1rem;font-weight:800;text-transform:uppercase;color:var(--text);line-height:1.15;display:flex;align-items:center;gap:7px}
.prog-hint-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}
.last-note{font-size:.67rem;color:var(--muted2);margin-bottom:10px;line-height:1.6;padding:10px 12px;background:rgba(255,255,255,.03);border-radius:var(--r-sm);border-left:2px solid rgba(255,255,255,.08)}
.baseline-card{margin-bottom:10px;padding:11px 13px;background:linear-gradient(135deg,rgba(232,98,26,.07) 0%,rgba(232,98,26,.03) 100%);border:1px solid rgba(232,98,26,.18);border-radius:var(--r-sm);box-shadow:0 0 14px rgba(232,98,26,.05) inset}
.baseline-card-lbl{font-size:.54rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);opacity:.8;margin-bottom:3px}
.baseline-card-text{font-size:.78rem;color:var(--muted2);line-height:1.5}
.inline-cues{padding:8px 0 4px;display:flex;flex-direction:column;gap:7px}
.inline-cue{display:flex;gap:9px;align-items:baseline}
.inline-cue-n{font-family:var(--fh);font-size:.6rem;font-weight:900;color:var(--accent);opacity:.5;min-width:14px;flex-shrink:0}
.inline-cue-t{font-size:.78rem;color:var(--muted2);line-height:1.45}
.last-note-title{font-size:.54rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.last-note-row{display:flex;gap:6px;align-items:baseline}
.last-note-set{font-size:.6rem;color:var(--muted);min-width:34px}
.last-note-val{font-size:.72rem;color:var(--text2)}
.hold-section{margin-bottom:10px}
.hold-target{font-size:.67rem;color:var(--muted2);margin-bottom:8px}
.hold-target strong{color:var(--text);font-size:.8rem}
.hold-result-overlay{position:fixed;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(6px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:900;padding:32px;opacity:0;pointer-events:none;transition:opacity .22s}
.hold-result-overlay.open{opacity:1;pointer-events:all}
.hold-result-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:28px 24px;width:100%;max-width:340px;text-align:center}
.hold-result-q{font-family:var(--fh);font-size:1rem;font-weight:800;color:var(--text);margin-bottom:6px}
.hold-result-target{font-size:.8rem;color:var(--muted2);margin-bottom:24px}
.hold-result-target strong{color:var(--accent)}
.hold-result-btns{display:flex;gap:10px}
.hold-result-btns button{flex:1;padding:13px 10px;border-radius:var(--r-sm);font-family:var(--fh);font-size:.85rem;font-weight:800;letter-spacing:.05em;cursor:pointer;-webkit-tap-highlight-color:transparent;border:1.5px solid}
.btn-hold-hit{background:var(--accentg);border-color:var(--accent)!important;color:var(--accent)}
.btn-hold-miss{background:rgba(255,255,255,.04);border-color:var(--border)!important;color:var(--muted2)}
.btn-hold{width:100%;padding:14px;background:var(--accentg);border:1.5px solid rgba(232,98,26,.3);border-radius:var(--r);color:var(--accent);font-family:var(--fh);font-size:1.1rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .18s}
.btn-hold:hover{background:rgba(232,98,26,.2);border-color:var(--accent)}
.btn-hold:active{transform:scale(.97)}
.btn-hold:disabled{border-color:var(--border);color:var(--muted);cursor:not-allowed;background:none}
.log-section{margin-bottom:10px}
.log-section-lbl{font-size:.54rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.log-reps-input{background:rgba(255,255,255,.04);border:1.5px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:var(--fh);font-size:1.6rem;font-weight:800;padding:10px 14px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%;text-align:center;-webkit-appearance:none}
.log-reps-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(232,98,26,.12),0 0 16px rgba(232,98,26,.1)}
.log-reps-input::placeholder{color:var(--border)}
/* Band rack selector */
.band-rack{padding:6px 0 4px;display:flex;flex-direction:column;gap:5px}
.band-rack-lbl{font-family:var(--fh);font-size:.55rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--muted2);padding:0 0 6px;opacity:.65}
.band-strip{position:relative;display:flex;align-items:center;height:48px;border-radius:8px 0 0 8px;margin-left:auto;padding:0 10px 0 14px;width:62%;cursor:pointer;transition:width .32s cubic-bezier(.34,1.56,.64,1),height .22s ease,box-shadow .22s ease;overflow:hidden;-webkit-tap-highlight-color:transparent;user-select:none}
.band-strip::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.22) 0%,transparent 42%,rgba(0,0,0,.18) 100%);pointer-events:none;z-index:1}
.band-strip::after{content:'';position:absolute;right:0;inset-block:0;width:8px;background:rgba(0,0,0,.32);z-index:2}
.band-strip.selected{width:88%;height:54px}
.band-strip-info{flex:1;min-width:0;position:relative;z-index:3}
.band-strip-name{font-family:var(--fh);font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:rgba(255,255,255,.95);line-height:1;text-shadow:0 1px 4px rgba(0,0,0,.35)}
.band-strip-res{font-size:.62rem;color:rgba(255,255,255,.62);margin-top:2px;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.band-strip-check{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.4);flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative;z-index:3;transition:all .2s;margin-right:4px}
.band-strip.selected .band-strip-check{background:rgba(255,255,255,.95);border-color:transparent}
.band-strip-check-mark{display:none;color:#000;font-size:.6rem;font-weight:900;line-height:1;font-family:system-ui}
.band-strip.selected .band-strip-check-mark{display:block}
.ex-meta-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid rgba(255,255,255,.05);margin-bottom:8px}
.stage-presc{font-family:var(--fh);font-size:1.4rem;font-weight:900;letter-spacing:.02em;line-height:1;display:flex;align-items:center;gap:8px}
.stage-presc em{color:var(--accent);font-style:normal;text-shadow:0 0 12px rgba(232,98,26,.4)}
.stage-presc-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.stage-presc-sub{font-size:.54rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:3px}
.set-dots{display:flex;gap:7px;align-items:center}
.sdot{width:10px;height:10px;border-radius:50%;border:1.5px solid rgba(255,255,255,.12);transition:all .3s cubic-bezier(.34,1.56,.64,1);flex-shrink:0}
.sdot.done{background:var(--accent);border-color:var(--accent);box-shadow:0 0 6px rgba(232,98,26,.5)}
.sdot.curr{border-color:var(--accent);background:rgba(232,98,26,.2);transform:scale(1.3);box-shadow:0 0 8px rgba(232,98,26,.5);animation:pulseDot 1.8s ease-in-out infinite}
.wk-footer{flex-shrink:0;padding-top:8px;border-top:1px solid rgba(255,255,255,.05);background:rgba(8,8,8,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn-undo-set{display:block;margin:0 16px 6px;width:calc(100% - 32px);padding:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:var(--r-sm);color:var(--muted2);font-family:var(--fh);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}
.btn-undo-set:hover:not(:disabled){border-color:rgba(255,255,255,.14);color:var(--text)}
.btn-undo-set:active:not(:disabled){transform:scale(.97)}
.btn-undo-set:disabled{opacity:.28;cursor:not-allowed}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
.shake{animation:shake .32s ease}
.set-validation{font-family:var(--fh);font-size:.68rem;font-weight:700;letter-spacing:.06em;color:#ff6b6b;text-align:center;padding:0 16px 6px;min-height:22px;transition:opacity .2s}
/* Workout History */
.hist-card{background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r);padding:13px 14px;box-shadow:var(--shadow-xs);transition:border-color .15s,background .15s}
.hist-card:active{border-color:rgba(232,98,26,.3);background:linear-gradient(145deg,rgba(232,98,26,.06),rgba(232,98,26,.03))}
.hist-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:7px}
.hist-date{font-family:var(--fh);font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em}
.hist-meta{font-size:.63rem;color:var(--muted2);margin-top:2px}
.hist-vol{font-family:var(--fh);font-size:1.1rem;font-weight:900;color:var(--accent);text-align:right;line-height:1}
.hist-vol-unit{font-size:.58rem;color:var(--muted2);font-weight:700;display:block;margin-top:1px}
.hist-exercises{font-size:.63rem;color:var(--muted2);line-height:1.55;border-top:1px solid rgba(255,255,255,.05);padding-top:7px}
.btn-set-done{flex-shrink:0;display:block;padding:17px;background:linear-gradient(160deg,var(--accent3) 0%,var(--accent) 55%,var(--accent2) 100%);color:#fff;border:none;border-radius:var(--r);font-family:var(--fh);font-size:1.1rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s;-webkit-tap-highlight-color:transparent;margin:0 16px;margin-bottom:max(env(safe-area-inset-bottom),16px);width:calc(100% - 32px);box-shadow:0 4px 20px rgba(232,98,26,.35),0 1px 0 rgba(255,255,255,.1) inset;position:relative;overflow:hidden}
.btn-set-done::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 50%);pointer-events:none}
.btn-set-done:active{transform:scale(.96);box-shadow:0 2px 10px rgba(232,98,26,.25)}
.btn-set-done:hover{transform:translateY(-2px);box-shadow:var(--shadow-accent-lg)}
.btn-set-done:disabled{background:var(--border);color:var(--muted);cursor:not-allowed;box-shadow:none;transform:none}
/* TIMER */
#timer-overlay{display:none;position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.93);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);flex-direction:column;align-items:center;justify-content:center;padding:40px 24px}
#timer-overlay.open{display:flex;animation:fadeIn .2s ease}
.t-label{font-family:var(--fh);font-size:.58rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;text-align:center}
.t-ex{font-family:var(--fh);font-size:1.3rem;font-weight:800;text-transform:uppercase;text-align:center;margin-bottom:4px;line-height:1.1;max-width:300px}
.t-sub{font-size:.7rem;color:var(--muted2);text-align:center;margin-bottom:24px}
.t-dur-row{display:flex;gap:8px;margin-bottom:28px;width:100%;max-width:320px}
.t-dur{flex:1;padding:10px 4px;border:1px solid rgba(255,255,255,.08);border-radius:var(--r-sm);background:rgba(255,255,255,.04);color:var(--muted2);font-family:var(--fh);font-size:.88rem;font-weight:700;text-transform:uppercase;cursor:pointer;text-align:center;transition:all .15s;-webkit-tap-highlight-color:transparent}
.t-dur.active{border-color:var(--accent);color:var(--accent);background:var(--accentg);box-shadow:0 0 10px rgba(232,98,26,.15)}
.t-ring-wrap{position:relative;width:220px;height:220px;margin-bottom:32px}
.t-ring-wrap::before{content:'';position:absolute;inset:-20px;background:radial-gradient(circle,rgba(232,98,26,.13) 0%,transparent 70%);border-radius:50%;pointer-events:none;animation:ringPulse 2.5s ease-in-out infinite}
.t-ring-bg{position:absolute;inset:0;border-radius:50%;border:4px solid rgba(255,255,255,.06)}
.t-svg{position:absolute;top:0;left:0;transform:rotate(-90deg);width:220px;height:220px}
.t-svg circle{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-dasharray:659.73;stroke-dashoffset:0;transition:stroke-dashoffset 1s linear,stroke .3s;filter:drop-shadow(0 0 5px rgba(232,98,26,.6))}
.t-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.t-time{font-family:var(--fh);font-size:4rem;font-weight:900;line-height:1;letter-spacing:-.02em}
.t-unit{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.t-btns{display:flex;gap:10px;width:100%;max-width:320px}
.t-btn{padding:16px;border-radius:var(--r);border:none;font-family:var(--fh);font-size:1rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:all .18s;-webkit-tap-highlight-color:transparent}
.t-btn-main{background:linear-gradient(135deg,var(--accent3),var(--accent));color:#fff;flex:1;box-shadow:0 4px 16px rgba(232,98,26,.3)}
.t-btn-main:active{transform:scale(.97)}
.t-btn-skip{background:rgba(255,255,255,.05);color:var(--muted2);border:1px solid rgba(255,255,255,.08);padding:16px 18px}
.t-btn-skip:hover{color:var(--text);border-color:rgba(255,255,255,.15)}
.t-btn-skip:active{transform:scale(.97)}
/* COMPLETE */
#screen-complete{background:var(--bg);align-items:center;justify-content:flex-start;text-align:center;overflow-y:auto;padding:40px 24px max(env(safe-area-inset-bottom),40px);position:relative;scrollbar-width:none}
#screen-complete::-webkit-scrollbar{display:none}
.c-glow{position:fixed;top:0;left:50%;transform:translateX(-50%);width:500px;height:400px;background:radial-gradient(circle,rgba(232,98,26,.2) 0%,rgba(232,98,26,.07) 40%,transparent 70%);pointer-events:none;animation:glowPulse 3s ease-in-out infinite;z-index:0}
.c-icon{font-size:4rem;margin-bottom:14px;animation:popIn .6s cubic-bezier(.34,1.56,.64,1) both;position:relative;z-index:1}
.c-eyebrow{font-size:.58rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;animation:fadeUp .4s .2s ease both;opacity:0;position:relative;z-index:1}
.c-title{font-family:var(--fh);font-size:clamp(3rem,14vw,5rem);font-weight:900;text-transform:uppercase;line-height:.9;animation:fadeUp .4s .3s ease both;opacity:0;position:relative;z-index:1}
.c-title em{color:var(--accent);font-style:normal;text-shadow:0 0 40px rgba(232,98,26,.6)}
.c-stats{display:flex;gap:8px;margin:22px 0 16px;justify-content:center;animation:fadeUp .4s .4s ease both;opacity:0;position:relative;z-index:1;flex-wrap:wrap}
.stat-box{background:linear-gradient(160deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.07);border-radius:var(--r);padding:13px 16px;min-width:70px;box-shadow:var(--shadow-md)}
.stat-box-val{font-family:var(--fh);font-size:1.8rem;font-weight:900;color:var(--accent);line-height:1;text-shadow:0 0 20px rgba(232,98,26,.5)}
.stat-box-lbl{font-size:.52rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.progress-notes{width:100%;max-width:360px;margin:0 auto 20px;animation:fadeUp .4s .5s ease both;opacity:0;position:relative;z-index:1}
.progress-notes-title{font-family:var(--fh);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;text-align:left}
.pni{background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r-sm);padding:11px 13px;margin-bottom:7px;text-align:left;box-shadow:var(--shadow-xs)}
.pni-ex{font-family:var(--fh);font-size:.88rem;font-weight:800;text-transform:uppercase;margin-bottom:3px;color:var(--text)}
.pni-note{font-size:.7rem;color:var(--muted2);line-height:1.55}
.pni-note strong{color:var(--accent)}
.c-actions{display:flex;gap:10px;width:100%;max-width:320px;animation:fadeUp .4s .6s ease both;opacity:0;position:relative;z-index:1}
.btn-again{flex:1;padding:15px;background:linear-gradient(160deg,var(--accent3),var(--accent),var(--accent2));color:#fff;border:none;border-radius:var(--r);font-family:var(--fh);font-size:1.1rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 4px 20px rgba(232,98,26,.35);transition:all .18s cubic-bezier(.34,1.56,.64,1)}
.btn-again:active{transform:scale(.96)}
.btn-again:hover{transform:translateY(-2px);box-shadow:var(--shadow-accent-lg)}
.btn-export-sess{padding:15px 16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--r);color:var(--muted2);font-family:var(--fh);font-size:.88rem;font-weight:700;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}
.btn-export-sess:hover{border-color:rgba(255,255,255,.16);color:var(--text)}
/* KEYFRAMES */
@keyframes screenIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
@keyframes pulseDot{0%,100%{box-shadow:0 0 6px rgba(232,98,26,.5)}50%{box-shadow:0 0 14px rgba(232,98,26,.9)}}
@keyframes glowPulse{0%,100%{opacity:.7;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.08)}}
@keyframes ringPulse{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:.9;transform:scale(1.04)}}
#confetti-canvas{position:fixed;inset:0;pointer-events:none;z-index:999}
/* HOME KIT */
.home-kit{padding:0 16px 20px}
.app-footer{padding:24px 16px 40px;text-align:center}
.footer-contact{color:var(--muted2);font-size:.75rem;text-decoration:none;letter-spacing:.04em;transition:color .15s}
.footer-contact:hover{color:var(--accent)}
.donate-card{display:flex;align-items:center;gap:14px;margin:8px 16px 20px;padding:16px;background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid var(--border-hi);border-radius:var(--r);box-shadow:var(--shadow-sm)}
.donate-icon{font-size:1.6rem;flex-shrink:0;line-height:1}
.donate-text{flex:1;min-width:0}
.donate-title{font-family:var(--fh);font-size:1rem;font-weight:700;color:var(--text);letter-spacing:.03em;text-transform:uppercase}
.donate-sub{font-size:.75rem;color:var(--muted2);margin-top:2px;line-height:1.4}
.donate-btn{flex-shrink:0;padding:9px 18px;background:linear-gradient(160deg,var(--accent3),var(--accent) 60%,var(--accent2));color:#fff;border:none;border-radius:var(--r-sm);font-family:var(--fh);font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;cursor:pointer;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s;box-shadow:0 3px 14px rgba(232,98,26,.35);-webkit-tap-highlight-color:transparent}
.donate-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-accent-lg)}
.donate-btn:active{transform:scale(.96)}
.kit-bands{display:flex;flex-direction:column;gap:8px}
.kit-band{display:flex;align-items:center;gap:10px;background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r);padding:10px 13px;box-shadow:var(--shadow-xs)}
.kit-band-swatch{width:10px;height:36px;border-radius:3px;flex-shrink:0}
.kit-band-info{flex:1}
.kit-band-name{font-family:var(--fh);font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1}
.kit-band-range{font-size:.65rem;color:var(--muted2);margin-top:2px}
/* CELEBRATION FADE-OUT */
.set-celebrate.out{pointer-events:none;animation:celebFadeOut .22s ease forwards}
@keyframes celebFadeOut{to{opacity:0;transform:scale(1.04)}}
/* PR DOT IN PROGRESS */
.pr-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:middle;flex-shrink:0}
/* TIMER UP-NEXT SPACING */
.t-next{margin-top:16px;margin-bottom:20px;width:100%;max-width:320px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--r);padding:12px 16px;text-align:left}
/* TAB BAR */
.tab-bar{position:fixed;bottom:0;left:0;right:0;background:rgba(8,8,8,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.07);display:flex;z-index:50;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -1px 0 rgba(232,98,26,.07),0 -4px 20px rgba(0,0,0,.4)}
.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:10px 0 8px;background:none;border:none;color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .2s;font-family:var(--fh);font-size:.52rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.tab-btn.active{color:var(--accent)}
.tab-btn svg{transition:filter .2s,transform .2s}
.tab-btn.active svg{filter:drop-shadow(0 0 4px rgba(232,98,26,.7));transform:translateY(-1px)}
.tab-btn:active{transform:scale(.93)}
/* screens that show tab bar need bottom padding */
.screen--tabbed .scroll-body{padding-bottom:calc(env(safe-area-inset-bottom) + 72px)}
/* PROGRESS SCREEN */
.prog-screen{padding:0}
.prog-hero{padding:40px 20px 24px;position:relative;overflow:hidden}
.prog-hero::before{content:'';position:absolute;top:-60px;right:-40px;width:300px;height:300px;background:radial-gradient(circle,rgba(232,98,26,.14) 0%,transparent 70%);pointer-events:none}
.prog-hero-eyebrow{font-size:.6rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.prog-hero-title{font-family:var(--fh);font-size:clamp(2.8rem,12vw,4rem);font-weight:900;letter-spacing:-.02em;line-height:.85;text-transform:uppercase}
.prog-hero-sub{font-size:.78rem;color:var(--muted2);margin-top:10px;line-height:1.5}
.prog-section{padding:0 16px 20px}
.prog-empty{padding:60px 20px;text-align:center;color:var(--muted);font-size:.85rem;line-height:1.7}
.prog-empty strong{display:block;font-family:var(--fh);font-size:1.3rem;font-weight:800;text-transform:uppercase;color:var(--text2);margin-bottom:8px}
/* volume chart */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px}
.cal-dow{font-size:.55rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted2);text-align:center;padding-bottom:2px}
.cal-day{aspect-ratio:1;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;color:var(--muted2);background:rgba(255,255,255,.03);position:relative}
.cal-day.trained{background:var(--accentg);border:1px solid rgba(232,98,26,.35);color:var(--accent)}
.cal-day.today{box-shadow:0 0 0 1.5px var(--muted2)}
.cal-day.trained.today{box-shadow:0 0 0 1.5px var(--accent)}
.cal-day.empty{background:none}
.cal-month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.cal-month-lbl{font-family:var(--fh);font-size:.85rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--text2)}
.cal-nav-btn{background:none;border:none;color:var(--muted2);cursor:pointer;font-size:1rem;padding:2px 8px;-webkit-tap-highlight-color:transparent;transition:color .15s}
.cal-nav-btn:hover{color:var(--text)}
.vol-chart{background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r-lg);padding:18px;box-shadow:var(--shadow-md)}
.vol-chart-bars{display:flex;align-items:flex-end;gap:6px;height:100px;margin-bottom:8px}
.vol-bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}
.vol-bar{width:100%;border-radius:4px 4px 0 0;min-height:3px;background:linear-gradient(180deg,var(--accent3),var(--accent));box-shadow:0 0 8px rgba(232,98,26,.3);transition:height .6s cubic-bezier(.4,0,.2,1)}
.vol-bar.empty{background:rgba(255,255,255,.07);box-shadow:none}
.vol-bar-lbl{font-size:.5rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
/* PR cards */
.pr-grid{display:flex;flex-direction:column;gap:8px}
.pr-card{background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-xs)}
.pr-card-left{}
.pr-card-name{font-family:var(--fh);font-size:1rem;font-weight:800;text-transform:uppercase;line-height:1;margin-bottom:2px}
.pr-card-meta{font-size:.65rem;color:var(--muted2)}
.pr-card-right{display:flex;align-items:baseline;gap:3px}
.pr-card-val{font-family:var(--fh);font-size:1.8rem;font-weight:900;color:var(--accent);line-height:1;text-shadow:0 0 16px rgba(232,98,26,.4)}
.pr-card-unit{font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
/* exercise progression cards */
.ex-prog-card{background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r);padding:13px;box-shadow:var(--shadow-xs);margin-bottom:8px}
.ex-prog-name{font-family:var(--fh);font-size:1rem;font-weight:800;text-transform:uppercase;margin-bottom:8px;line-height:1}
.ex-prog-history{display:flex;gap:8px}
.ex-prog-sess{flex:1;background:rgba(255,255,255,.04);border-radius:8px;padding:8px;text-align:center;border:1px solid rgba(255,255,255,.05)}
.ex-prog-sess.latest{border-color:rgba(232,98,26,.3);background:rgba(232,98,26,.07)}
.ex-prog-sess-date{font-size:.52rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px}
.ex-prog-sess-reps{font-family:var(--fh);font-size:1.3rem;font-weight:900;color:var(--text);line-height:1}
.ex-prog-sess.latest .ex-prog-sess-reps{color:var(--accent)}
.ex-prog-sess-band{font-size:.58rem;color:var(--muted2);margin-top:2px;line-height:1.3}
/* SET CELEBRATION OVERLAY */
.set-celebrate{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.75);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);align-items:center;justify-content:center;flex-direction:column}
.set-celebrate.pop{display:flex;animation:celebFade .15s ease both}
.set-celebrate-inner{text-align:center;animation:celebPop .45s cubic-bezier(.34,1.56,.64,1) both}
.set-celebrate-num{font-family:var(--fh);font-size:clamp(7rem,28vw,10rem);font-weight:900;color:var(--accent);line-height:1;text-shadow:0 0 80px rgba(232,98,26,.7),0 0 30px rgba(232,98,26,.5)}
.set-celebrate-label{font-family:var(--fh);font-size:1rem;font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:var(--muted2);margin-top:4px}
.set-celebrate-pr{font-family:var(--fh);font-size:1.2rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--accent3);margin-top:14px;padding:6px 16px;border:1.5px solid rgba(255,124,56,.4);border-radius:20px;background:rgba(255,124,56,.1);animation:pulseDot 1s ease-in-out infinite}
@keyframes celebFade{from{opacity:0}to{opacity:1}}
@keyframes celebPop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
/* TIMER NEXT EXERCISE */
.t-next{margin-top:16px;width:100%;max-width:320px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--r);padding:12px 16px;text-align:left}
.t-next-lbl{font-size:.52rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.t-next-name{font-family:var(--fh);font-size:1.1rem;font-weight:800;text-transform:uppercase;color:var(--text);line-height:1.1;margin-bottom:2px}
.t-next-detail{font-size:.68rem;color:var(--muted2);line-height:1.4}
/* COMPLETE SCREEN REPLAY */
.c-replay{width:100%;max-width:360px;margin:0 auto 20px;animation:fadeUp .4s .55s ease both;opacity:0;position:relative;z-index:1;text-align:left}
.c-replay-title{font-family:var(--fh);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.replay-card{background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r);padding:12px 14px;margin-bottom:7px;box-shadow:var(--shadow-xs)}
.replay-ex-name{font-family:var(--fh);font-size:.95rem;font-weight:800;text-transform:uppercase;margin-bottom:6px;line-height:1}
.replay-sets{display:flex;flex-direction:column;gap:3px}
.replay-set-row{display:flex;justify-content:space-between;align-items:center;font-size:.68rem;color:var(--muted2)}
.replay-set-num{color:var(--muted);min-width:36px}
.replay-set-val{color:var(--text2);font-weight:500}
.replay-set-band{font-size:.62rem;color:var(--muted)}
/* HOME TAGLINE DYNAMIC */
.home-ready{color:var(--accent3)}
/* ── SYNC SETUP SCREEN ── */
#screen-auth{background:var(--bg);align-items:stretch;justify-content:stretch}
.sync-setup-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:max(env(safe-area-inset-top),40px) 32px max(env(safe-area-inset-bottom),40px);text-align:center;gap:14px}
.sync-setup-logo{font-family:var(--fh);font-size:clamp(2.8rem,12vw,4rem);font-weight:900;letter-spacing:-.02em;line-height:1;text-transform:uppercase;margin-bottom:8px}
.sync-setup-logo em{color:var(--accent);font-style:normal;text-shadow:0 0 40px rgba(232,98,26,.55)}
.sync-setup-icon{font-size:3rem;line-height:1;margin-bottom:4px}
.sync-setup-title{font-family:var(--fh);font-size:1.9rem;font-weight:900;text-transform:uppercase;letter-spacing:-.01em}
.sync-setup-body{font-size:.88rem;color:var(--text2);line-height:1.55;max-width:300px;margin-bottom:6px}
.sync-btn-primary{width:100%;max-width:320px;padding:15px;background:linear-gradient(135deg,var(--accent3),var(--accent));color:#fff;border:none;border-radius:var(--r);font-family:var(--fh);font-size:1rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 4px 20px rgba(232,98,26,.3)}
.sync-btn-secondary{width:100%;max-width:320px;padding:14px;background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.1);border-radius:var(--r);color:var(--text2);font-family:var(--fh);font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;-webkit-tap-highlight-color:transparent}
.sync-btn-link{background:none;border:none;color:var(--muted2);font-size:.8rem;padding:8px;cursor:pointer;-webkit-tap-highlight-color:transparent;margin-top:4px}
.sync-or{font-size:.7rem;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:6px 0}
.sync-code-warning{width:100%;max-width:320px;background:rgba(232,98,26,.08);border:1px solid rgba(232,98,26,.25);border-radius:var(--r-sm);padding:11px 14px;font-size:.78rem;color:var(--muted2);line-height:1.5;text-align:left}
.sync-code-warning strong{color:var(--text)}
.sync-restore-err{font-size:.78rem;color:var(--danger);min-height:18px;margin-top:-4px}
.sync-spinner{display:inline-block;width:18px;height:18px;border:2.5px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:8px}
@keyframes spin{to{transform:rotate(360deg)}}
/* Sync indicator pill */
.sync-indicator{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 76px);right:14px;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:5px 11px;font-size:.63rem;font-weight:700;letter-spacing:.08em;color:var(--muted2);opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s;pointer-events:none;z-index:300}
.sync-indicator.show{opacity:1;transform:translateY(0)}
/* Sync section in bands screen */
.sync-section{margin:0 0 16px;background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.07);border-radius:var(--r);padding:16px;position:relative}
.sync-section-title{font-family:var(--fh);font-size:.58rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.sync-code-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.sync-code-chip{font-family:var(--fh);font-size:.95rem;font-weight:800;letter-spacing:.14em;color:var(--accent);background:rgba(232,98,26,.08);border:1px solid rgba(232,98,26,.18);border-radius:8px;padding:7px 12px;flex:1;text-align:center}
.sync-copy-btn{padding:7px 13px;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text2);font-family:var(--fh);font-size:.7rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;transition:border-color .15s,color .15s}
.sync-copy-btn.copied{border-color:rgba(76,175,80,.4);color:#4caf50}
.sync-last-synced{font-size:.63rem;color:var(--muted);margin-bottom:10px}
.sync-no-code{font-size:.82rem;color:var(--muted2);margin-bottom:10px}
.btn-setup-sync{padding:10px;width:100%;background:var(--accentg);border:1.5px solid rgba(232,98,26,.3);border-radius:var(--r-sm);color:var(--accent);font-family:var(--fh);font-size:.82rem;font-weight:800;cursor:pointer;-webkit-tap-highlight-color:transparent}
/* ── AUTH SCREEN ── */
#auth-welcome,#auth-signup,#auth-login,#auth-check-email,#auth-reset-password{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}
.auth-input{width:100%;max-width:320px;background:rgba(255,255,255,.05);border:1.5px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:.95rem;padding:13px 16px;outline:none;-webkit-appearance:none;transition:border-color .15s}
.auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(232,98,26,.12)}
.auth-err{font-size:.78rem;color:var(--danger);min-height:18px;text-align:center;max-width:320px}
.auth-note{font-size:.78rem;color:var(--muted2);text-align:center;max-width:300px;line-height:1.5}
.auth-email-sent{font-size:2.5rem;margin-bottom:4px}
/* ── ACCOUNT SECTION IN BANDS ── */
.account-email{font-size:.85rem;color:var(--text);font-weight:600;margin-bottom:4px;word-break:break-all}
.account-status{font-size:.63rem;color:var(--success);letter-spacing:.06em;font-weight:700;text-transform:uppercase;margin-bottom:10px}
.account-status.guest{color:var(--muted2)}
.btn-signout{padding:10px;width:100%;background:rgba(255,255,255,.04);border:1.5px solid var(--border);border-radius:var(--r-sm);color:var(--text2);font-family:var(--fh);font-size:.82rem;font-weight:800;cursor:pointer;-webkit-tap-highlight-color:transparent}
/* ── MIGRATION MODAL ── */
.migration-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px)}
.migration-card{background:var(--card);border:1px solid var(--border-hi);border-radius:var(--r-lg);padding:28px 24px;max-width:320px;width:100%;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:var(--shadow-lg)}
.migration-icon{font-size:2.2rem}
.migration-title{font-family:var(--fh);font-size:1.5rem;font-weight:900;text-transform:uppercase;letter-spacing:-.01em}
.migration-body{font-size:.85rem;color:var(--text2);line-height:1.55}
/* ── WORKOUTS SCREEN ── */
.wk-section-hdr{font-family:var(--fh);font-size:.58rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:20px 16px 8px;display:flex;align-items:center;gap:8px}
.wk-section-hdr::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--border),transparent)}
.ex-card-custom{background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r);padding:13px;display:flex;align-items:center;gap:12px;margin:0 16px 8px}
.ex-card-custom .ex-name{font-weight:700;font-size:.95rem;color:var(--text)}
.ex-card-custom .ex-meta{font-size:.72rem;color:var(--muted2);margin-top:2px}
.wkt-card{background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r);margin:0 16px 8px;overflow:hidden;transition:border-color .2s}
.wkt-card.in-plan{border-color:rgba(232,98,26,.3)}
.wkt-card-hdr{padding:13px;display:flex;align-items:center;gap:10px;cursor:pointer}
.wkt-card-drag{color:var(--muted);cursor:grab;flex-shrink:0;line-height:0}
.wkt-card-drag svg{width:16px;height:16px;fill:currentColor}
.wkt-card-name{font-weight:700;font-size:.95rem;color:var(--text);flex:1}
.wkt-card-count{font-size:.72rem;color:var(--muted2);flex-shrink:0}
.wkt-card-chevron{color:var(--muted);flex-shrink:0;transition:transform .2s}
.wkt-card-body{padding:0 13px 13px;display:none}
.wkt-card-body.open{display:block}
.wkt-ex-row{font-size:.82rem;color:var(--text2);padding:4px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.wkt-ex-row:last-child{border-bottom:none}
.wkt-card-actions{display:flex;gap:8px;margin-top:10px}
.plan-order-chip{display:inline-flex;align-items:center;gap:4px;font-family:var(--fh);font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:rgba(232,98,26,.1);border:1px solid rgba(232,98,26,.2);border-radius:6px;padding:2px 7px;margin-right:6px}
/* Add form (collapsible) */
.add-ex-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px;margin:8px 16px 0;display:none;flex-direction:column;gap:14px}
.add-ex-form.open{display:flex}
.add-ex-form select{background:rgba(255,255,255,.04);border:1.5px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:var(--fb);font-size:1rem;padding:10px 13px;outline:none;transition:border-color .15s;width:100%;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23888' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.add-ex-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(232,98,26,.12)}
.add-ex-form select option{background:var(--bg);color:var(--text)}
/* Workout builder screen */
.builder-ex-row{background:linear-gradient(145deg,var(--card-hi),var(--card));border:1px solid rgba(255,255,255,.06);border-radius:var(--r);padding:12px 13px;display:flex;align-items:center;gap:10px;margin-bottom:8px}
.builder-ex-name{font-weight:700;font-size:.9rem;color:var(--text);flex:1}
.builder-ex-slot{font-size:.72rem;color:var(--muted2)}
/* Exercise picker modal */
.ex-picker-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:300;display:flex;align-items:flex-end}
.ex-picker-sheet{background:var(--bg);border-radius:var(--r) var(--r) 0 0;width:100%;max-height:80vh;display:flex;flex-direction:column}
.ex-picker-hdr{padding:16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}
.ex-picker-search{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 12px;color:var(--text);font-size:.9rem}
.ex-picker-list{overflow-y:auto;flex:1;padding:8px 0}
.ex-picker-group{padding:8px 16px 4px;font-family:var(--fh);font-size:.55rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ex-picker-item{padding:11px 16px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .1s}
.ex-picker-item:hover,.ex-picker-item:active{background:rgba(255,255,255,.04)}
.ex-picker-item-name{font-size:.9rem;color:var(--text);flex:1}
.ex-picker-item-equip{font-size:.72rem;color:var(--muted2)}
/* ── INSTALL PROMPT ── */
.install-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:500;display:flex;align-items:flex-end;animation:fadeIn .2s ease}
.install-sheet{background:var(--card);border-radius:20px 20px 0 0;width:100%;padding:24px 20px 36px;display:flex;flex-direction:column;gap:16px;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}
.install-icon{width:64px;height:64px;border-radius:16px;align-self:center;box-shadow:0 4px 20px rgba(232,98,26,.35)}
.install-title{font-family:var(--fh);font-size:1.3rem;font-weight:900;letter-spacing:.04em;text-align:center;color:var(--text)}
.install-sub{font-size:.85rem;color:var(--muted2);text-align:center;line-height:1.5}
.install-steps{display:flex;flex-direction:column;gap:10px}
.install-step{display:flex;align-items:flex-start;gap:12px;background:var(--surface);border-radius:var(--r-sm);padding:12px}
.install-step-num{font-family:var(--fh);font-size:.75rem;font-weight:800;color:var(--accent);background:rgba(232,98,26,.12);border:1px solid rgba(232,98,26,.2);border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.install-step-text{font-size:.85rem;color:var(--text2);line-height:1.45}
.install-step-text strong{color:var(--text);font-weight:600}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
/* ── DESKTOP LAYOUT ── */
@media (min-width:560px){
  html,body{display:flex;justify-content:center;background:#000;min-height:100dvh}
  body::before{display:none}
  #app{
    max-width:430px;width:100%;position:relative;overflow:hidden;
    box-shadow:0 0 0 1px rgba(255,255,255,.05),0 32px 80px rgba(0,0,0,.9);
    background:var(--bg);
    min-height:100dvh;
  }
  #app::before{
    content:'';position:fixed;left:50%;transform:translateX(-50%);
    width:430px;inset-block:0;
    background:radial-gradient(ellipse 70% 40% at 85% -5%,rgba(232,98,26,.09) 0%,transparent 55%),radial-gradient(ellipse 50% 30% at 15% 100%,rgba(232,98,26,.05) 0%,transparent 55%);
    pointer-events:none;z-index:0;
  }
  .tab-bar,#tab-bar{position:fixed;left:50%;transform:translateX(-50%);width:430px}
  .fg-overlay,.ex-picker-overlay,.install-overlay{left:50%;transform:translateX(-50%);width:430px}
  .achievement-toast{left:50%;transform:translateX(-50%);max-width:398px;}
}

/* ── ACHIEVEMENT DETAIL MODAL ── */
.ach-detail-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:800;
  display:none;align-items:center;justify-content:center;padding:24px;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.ach-detail-overlay.open{display:flex;animation:fadeIn .2s ease;}
.ach-detail-card{
  background:#161616;border-radius:22px;padding:40px 28px 28px;
  text-align:center;border:1px solid rgba(232,98,26,.28);
  box-shadow:0 20px 70px rgba(0,0,0,.85);width:100%;max-width:320px;
}
.ach-detail-icon{font-size:68px;line-height:1;margin-bottom:20px;display:block;}
.ach-detail-name{font-family:'Barlow Condensed',sans-serif;font-size:34px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#fff;margin-bottom:10px;line-height:1.1;}
.ach-detail-desc{font-family:'DM Sans',sans-serif;font-size:15px;color:#888;margin-bottom:16px;line-height:1.5;}
.ach-detail-date{font-family:'DM Sans',sans-serif;font-size:13px;color:var(--accent);font-weight:600;margin-bottom:28px;letter-spacing:.02em;}
.ach-detail-close{
  width:100%;padding:14px;border-radius:12px;border:none;cursor:pointer;
  background:var(--accent);color:#fff;font-family:'Barlow Condensed',sans-serif;
  font-size:18px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
}

/* ── ACHIEVEMENTS ── */
.achievement-toast{
  position:fixed;top:-90px;left:50%;transform:translateX(-50%);
  background:#1c1c1c;border:1px solid rgba(232,98,26,.35);
  border-radius:16px;padding:13px 18px;display:flex;align-items:center;gap:13px;
  z-index:9999;transition:top .38s cubic-bezier(.34,1.56,.64,1);
  box-shadow:0 8px 40px rgba(0,0,0,.7);min-width:260px;max-width:340px;
  pointer-events:none;
}
.achievement-toast.show{top:max(16px,env(safe-area-inset-top,16px));}
.ach-toast-icon{font-size:30px;line-height:1;flex-shrink:0;}
.ach-toast-body{display:flex;flex-direction:column;gap:2px;}
.ach-toast-label{font-family:'DM Sans',sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--accent);font-weight:700;}
.ach-toast-name{font-family:'Barlow Condensed',sans-serif;font-size:21px;font-weight:700;color:#fff;letter-spacing:.02em;line-height:1.1;}

.ach-section .slabel{display:flex;align-items:center;gap:10px;}
.ach-count{font-size:12px;font-weight:500;font-family:'DM Sans',sans-serif;background:rgba(232,98,26,.15);color:var(--accent);padding:2px 9px;border-radius:20px;letter-spacing:0;}
.ach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;}
.ach-badge{
  background:#161616;border-radius:13px;padding:14px 10px 12px;text-align:center;
  border:1px solid rgba(255,255,255,.06);position:relative;
}
.ach-badge.unlocked{border-color:rgba(232,98,26,.3);box-shadow:0 0 18px rgba(232,98,26,.1);cursor:pointer;}
.ach-badge.unlocked:active{opacity:.75;transform:scale(.96);transition:transform .1s,opacity .1s;}
.ach-badge.locked{opacity:.4;}
.ach-badge-icon{font-size:26px;margin-bottom:7px;line-height:1;display:block;}
.ach-badge-name{font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;margin-bottom:4px;line-height:1.2;}
.ach-badge-desc{font-family:'DM Sans',sans-serif;font-size:10px;color:#555;line-height:1.35;}
.ach-badge.unlocked .ach-badge-desc{color:var(--accent);}
.ach-badge-lock{position:absolute;top:7px;right:9px;font-size:10px;opacity:.35;}
