@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Space+Mono:wght@400;700&family=Orbitron:wght@700&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

body{
  --bg:#0f0f10;--sf:#1a1a1d;--sf2:#222226;--bd:#2a2a2e;--bd2:#333338;
  --ac:#c6f135;--adim:rgba(198,241,53,.12);--abr:rgba(198,241,53,.3);
  --tx:#f0f0f0;--mu:#6b6b7a;--mu2:#4a4a56;
  --pro:#f97316;--car:#3b82f6;--fat:#facc15;--cal:#c6f135;
  --wat:#38bdf8;--wo:#a78bfa;--xp:#fbbf24;--grn:#22c55e;
  --fd:'Space Mono',monospace;--fb:'Space Grotesk',sans-serif;--r:13px;--sh:none;
}
body.sakura{
  --bg:#fdf6f8;--sf:#fff0f3;--sf2:#ffe4ea;--bd:#fbc9d4;--bd2:#f9b0c0;
  --ac:#e8356d;--adim:rgba(232,53,109,.1);--abr:rgba(232,53,109,.35);
  --tx:#2d1a22;--mu:#a07080;--mu2:#c090a0;
  --pro:#e8356d;--car:#8b5cf6;--fat:#f59e0b;--cal:#e8356d;
  --wat:#0ea5e9;--wo:#8b5cf6;--xp:#f59e0b;
  --fd:'Space Grotesk',sans-serif;--sh:0 2px 12px rgba(232,53,109,.08);
}
body.neon{
  --bg:#04040d;--sf:#080818;--sf2:#0c0c22;--bd:#1a1a40;--bd2:#252560;
  --ac:#00f5ff;--adim:rgba(0,245,255,.08);--abr:rgba(0,245,255,.35);
  --tx:#e0f0ff;--mu:#4060a0;--mu2:#304080;
  --pro:#ff6b6b;--car:#00f5ff;--fat:#bf00ff;--cal:#00f5ff;
  --wat:#00f5ff;--wo:#bf00ff;--xp:#ffdd00;
  --fd:'Orbitron',monospace;--sh:0 0 20px rgba(0,245,255,.06);
}
body.neon::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(0,245,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(0,245,255,.025) 1px,transparent 1px);background-size:40px 40px;}
body.neon>*{position:relative;z-index:1;}

body.crimson{
  --bg:#070707;--sf:#121014;--sf2:#1b1519;--bd:#302126;--bd2:#472a32;
  --ac:#ef4444;--adim:rgba(239,68,68,.10);--abr:rgba(239,68,68,.35);
  --tx:#f4eeee;--mu:#a98991;--mu2:#73565d;
  --pro:#fb7185;--car:#f97316;--fat:#facc15;--cal:#ef4444;
  --wat:#38bdf8;--wo:#ef4444;--xp:#f59e0b;--grn:#22c55e;
  --fd:'Space Grotesk',sans-serif;--sh:0 10px 28px rgba(239,68,68,.06);
}
body.void{
  --bg:#0b0713;--sf:#151024;--sf2:#1e1734;--bd:#312650;--bd2:#46356d;
  --ac:#a78bfa;--adim:rgba(167,139,250,.11);--abr:rgba(167,139,250,.36);
  --tx:#f1edff;--mu:#9b8ac5;--mu2:#665682;
  --pro:#c084fc;--car:#60a5fa;--fat:#facc15;--cal:#a78bfa;
  --wat:#38bdf8;--wo:#c084fc;--xp:#fbbf24;--grn:#22c55e;
  --fd:'Space Grotesk',sans-serif;--sh:0 10px 30px rgba(167,139,250,.08);
}
body.crimson .logo em, body.void .logo em{text-shadow:0 0 10px var(--abr)}
body.crimson .card, body.void .card{box-shadow:var(--sh)}

body{background:var(--bg);color:var(--tx);font-family:var(--fb);min-height:100dvh;max-width:430px;margin:0 auto;padding-bottom:calc(82px + env(safe-area-inset-bottom));-webkit-tap-highlight-color:transparent;}

/* NAV */
#nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;background:var(--sf);border-top:1px solid var(--bd);display:flex;z-index:50;padding-bottom:env(safe-area-inset-bottom);}
.nb{flex:1;padding:9px 2px 7px;background:none;border:none;color:var(--mu);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;font-family:var(--fb);font-size:9px;}
.nb.on{color:var(--ac);}
.ni{width:20px;height:20px;display:block;line-height:1;}
.ni svg{width:20px;height:20px;display:block;stroke:currentColor;fill:none;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;}
.nb.on .ni svg{filter:drop-shadow(0 0 5px var(--ac));}

/* PAGES */
.pg{display:none;}.pg.on{display:block;}

/* HEADER */
.hdr{padding:calc(16px + env(safe-area-inset-top)) 15px 11px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--bg);z-index:20;}
.logo{font-family:var(--fd);font-size:15px;font-weight:700;}
.logo em{font-style:normal;color:var(--ac);}
body.neon .logo{text-shadow:0 0 10px var(--ac);}
.hbadge{font-family:var(--fd);font-size:9px;color:var(--mu);background:var(--sf);padding:3px 9px;border-radius:20px;border:1px solid var(--bd);}

/* CARD */
.card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:13px;box-shadow:var(--sh);}

/* XP */
.xp-sec{padding:10px 14px 0;}
.xp-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.xp-char{display:flex;align-items:center;gap:9px;}
.xp-av{width:36px;height:36px;border-radius:50%;background:var(--adim);border:2px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:19px;cursor:pointer;transition:transform .15s,box-shadow .15s;}
.xp-av:active{transform:scale(.94);}
.xp-av.can-battle{box-shadow:0 0 0 3px var(--adim);}
.xp-lv{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;}
.xp-ti{font-family:var(--fd);font-size:13px;font-weight:700;color:var(--ac);}
body.neon .xp-ti{text-shadow:0 0 8px var(--ac);}
.xp-sk{font-size:11px;color:var(--xp);display:flex;align-items:center;gap:4px;}
.xp-sn{font-family:var(--fd);font-size:14px;font-weight:700;}
.xp-pr-row{display:flex;justify-content:space-between;font-size:9px;color:var(--mu);margin-bottom:3px;font-family:var(--fd);}
.xp-bg{height:5px;background:var(--bd);border-radius:3px;overflow:hidden;}
.xp-fill{height:100%;border-radius:3px;background:var(--ac);transition:width .5s;}
body.neon .xp-fill{box-shadow:0 0 6px var(--ac);}

/* QUESTS */
.qs-sec{padding:9px 14px 0;}
.qi{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid var(--bd);}
.qi:last-child{border-bottom:none;}
.qi-ico{font-size:17px;flex-shrink:0;}
.qi-inf{flex:1;min-width:0;}
.qi-nm{font-size:11px;font-weight:600;margin-bottom:3px;}
.qi-pbg{height:3px;background:var(--bd);border-radius:2px;overflow:hidden;}
.qi-pf{height:100%;border-radius:2px;background:var(--ac);transition:width .4s;}
.qi-xp{font-family:var(--fd);font-size:9px;color:var(--xp);flex-shrink:0;font-weight:700;}
.qi-dn{font-size:14px;flex-shrink:0;}

/* DONUTS */
.dn-sec{padding:9px 14px 0;}
.dn-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.dn-card{display:flex;flex-direction:column;align-items:center;padding:12px 6px;}
.dn-card.big{grid-column:1/-1;flex-direction:row;gap:16px;padding:13px;}
.dn-wrap{position:relative;flex-shrink:0;}
.dn-lbl{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.dn-v{font-family:var(--fd);font-weight:700;line-height:1;}
.dn-u{font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:.5px;}
.dn-name{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-top:5px;}
.cal-big{font-family:var(--fd);font-size:27px;font-weight:700;color:var(--cal);line-height:1;}
.cal-of{font-size:11px;color:var(--mu);margin-top:2px;}
body.neon .cal-big{text-shadow:0 0 10px var(--cal);}

/* WATER */
.wt-sec{padding:9px 14px 0;}
.wt-card{display:flex;align-items:center;gap:11px;}
.wt-ico{font-size:22px;}
.wt-inf{flex:1;}
.wt-lbl{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:3px;}
.wt-row{display:flex;align-items:baseline;gap:5px;margin-bottom:5px;}
.wt-n{font-family:var(--fd);font-size:20px;font-weight:700;color:var(--wat);}
.wt-g{font-size:11px;color:var(--mu);}
.wt-btns{display:flex;gap:5px;}
.wadd{padding:5px 10px;border-radius:20px;background:rgba(56,189,248,.1);border:1px solid rgba(56,189,248,.25);color:var(--wat);font-size:11px;font-weight:600;cursor:pointer;font-family:var(--fb);}
.wrst{background:none;border:none;color:var(--mu2);font-size:11px;cursor:pointer;padding:5px 7px;font-family:var(--fb);}

/* SECTION HEAD */
.sh{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 6px;}
.sh-t{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);}
.sh-a{font-size:11px;color:var(--mu);background:none;border:none;cursor:pointer;font-family:var(--fb);}

/* MEALS */
.meals{padding:0;}
.mg{margin-bottom:8px;}
.mgh{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;background:var(--sf2);border:1px solid var(--bd);border-radius:12px 12px 0 0;cursor:pointer;user-select:none;}
.mgh.col{border-radius:12px;}
.mgh-n{font-size:14px;font-weight:700;}
.mgh-m{font-size:12px;color:var(--mu);font-family:var(--fd);}
.mgh-t{color:var(--mu);font-size:13px;transition:transform .2s;}
.mgh-t.op{transform:rotate(180deg);}
.mi{border:1px solid var(--bd);border-top:none;border-radius:0 0 12px 12px;overflow:hidden;}
.li{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--bd);background:var(--sf);cursor:pointer;}
.ee-name-inp{width:100%;padding:9px 12px;background:var(--sf2);border:1px solid var(--bd2);border-radius:10px;color:var(--tx);font-size:13px;font-weight:600;font-family:var(--fd);outline:none;box-sizing:border-box;margin-bottom:12px;}
.ee-macros{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;}
.ee-macro{display:flex;flex-direction:column;gap:4px;}
.ee-macro-lbl{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:.5px;}
.ee-macro-inp{padding:8px 10px;background:var(--sf2);border:1px solid var(--bd2);border-radius:9px;color:var(--tx);font-size:14px;font-weight:700;font-family:var(--fd);outline:none;width:100%;box-sizing:border-box;text-align:center;}
.ee-del{color:#ef4444 !important;}
.li:last-child{border-bottom:none;}
.li-i{flex:1;min-width:0;}
.li-n{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px;}
.li-s{font-size:10px;color:var(--mu);}
.li-b{display:flex;gap:5px;flex-shrink:0;}
.bgt{font-family:var(--fd);font-size:10px;font-weight:700;padding:3px 6px;border-radius:5px;}
.bc{background:var(--adim);color:var(--cal);}
.bp{background:rgba(249,115,22,.12);color:var(--pro);}
.ldl{background:none;border:none;color:var(--mu2);font-size:16px;cursor:pointer;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;}
.ledit{background:none;border:none;color:var(--mu);font-size:11px;cursor:pointer;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;}
.atm{display:flex;align-items:center;gap:7px;padding:11px 14px;background:none;border:none;color:var(--mu);font-size:12px;cursor:pointer;font-family:var(--fb);width:100%;border-bottom:1px solid var(--bd);text-align:left;}
.atm:last-child{border-bottom:none;}
.atm-pl{color:var(--ac);font-size:16px;line-height:1;}
.empty{text-align:center;padding:22px 18px;color:var(--mu);font-size:12px;line-height:1.6;}

/* WEIGHT HISTORY */
.weight-history-card{padding-top:10px}
.weight-history-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.weight-sparkline{flex:1}
.weight-spark{width:100%;height:48px}
.weight-actions{display:flex;flex-direction:column;gap:6px}
.weight-actions .body-stat-save{padding:8px 10px;font-size:12px}
.weight-list{max-height:220px;overflow-y:auto;border-top:1px solid var(--bd);padding-top:8px}
.weight-entry-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--bd);cursor:pointer}
.weight-entry-row .weight-entry-date{font-size:12px;color:var(--mu)}
.weight-entry-row .weight-entry-val{font-weight:700}
.weight-entry-del{background:none;border:none;color:var(--mu2);font-size:14px;cursor:pointer;padding:6px;border-radius:6px}
.weight-entry-del:hover{color:var(--ac)}
.weight-log-note{font-size:11px;color:var(--mu);margin-top:8px}

/* OVERLAY */
.ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:100;align-items:flex-end;justify-content:center;}
.ov.on{display:flex;}
.sb{background:var(--sf);border-radius:20px 20px 0 0;width:100%;max-width:430px;border-top:1px solid var(--bd);max-height:92vh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);}
.sbh{width:32px;height:4px;background:var(--bd);border-radius:2px;margin:13px auto 0;flex-shrink:0;}
.sbhdr{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px;flex-shrink:0;}
.sbhdr-t{font-size:15px;font-weight:700;}
.sbx{width:28px;height:28px;border-radius:50%;background:var(--bd);border:none;color:var(--tx);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;}

/* FOOD SEARCH */
.srch-wrap{padding:0 16px 8px;flex-shrink:0;position:relative;}
.srch-inp{width:100%;padding:10px 13px 10px 34px;background:var(--sf2);border:1px solid var(--bd2);border-radius:10px;color:var(--tx);font-family:var(--fb);font-size:16px;outline:none;}
.srch-inp:focus{border-color:var(--ac);}
.srch-ico{position:absolute;left:30px;top:50%;transform:translateY(-50%);color:var(--mu);font-size:14px;pointer-events:none;}
.srch-clr{position:absolute;right:30px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--mu);font-size:15px;cursor:pointer;display:none;}
.srch-clr.on{display:block;}
.scan-row{display:flex;gap:6px;padding:0 16px 10px;flex-shrink:0;}
.scnbtn{flex:1;padding:9px 5px;background:var(--sf2);border:1px solid var(--bd2);border-radius:9px;color:var(--tx);font-family:var(--fb);font-size:11px;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;}
.scnbtn .si{font-size:16px;}
.res-list{flex:1;overflow-y:auto;padding:0 16px;}
.hint{text-align:center;padding:18px 0;color:var(--mu);font-size:12px;}
.ri{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--bd);cursor:pointer;}
.ri:last-child{border-bottom:none;}
.ri-i{flex:1;min-width:0;}
.ri-n{font-size:13px;font-weight:600;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ri-b{font-size:10px;color:var(--mu);}
.ri-m{text-align:right;flex-shrink:0;}
.ri-c{font-family:var(--fd);font-size:12px;font-weight:700;color:var(--cal);}
.ri-d{font-size:9px;color:var(--mu);}

/* CONFIRM */
.conf-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:200;align-items:flex-end;justify-content:center;}
.conf-ov.on{display:flex;}
.conf-box{background:var(--sf);border-radius:20px 20px 0 0;padding:18px 16px;width:100%;max-width:430px;border-top:1px solid var(--bd);padding-bottom:calc(22px + env(safe-area-inset-bottom));}
/* Log mode tabs (Servings / Grams) */
.log-mode-tabs{display:flex;gap:6px;margin-bottom:10px;background:var(--sf2);border-radius:10px;padding:3px;}
.log-mode-tab{flex:1;padding:7px;border:none;border-radius:8px;background:transparent;color:var(--mu);font-family:var(--fb);font-size:12px;font-weight:700;cursor:pointer;}
.log-mode-tab.on{background:var(--ac);color:var(--bg);}
.c-n{font-size:17px;font-weight:700;margin-bottom:2px;line-height:1.2;}
.c-b{font-size:11px;color:var(--mu);margin-bottom:13px;}
.c-ml{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;}
.c-mp{display:flex;gap:4px;margin-bottom:12px;flex-wrap:wrap;}
.cpill{padding:5px 11px;border-radius:20px;border:1px solid var(--bd2);background:var(--sf2);color:var(--mu);font-size:11px;font-weight:600;cursor:pointer;font-family:var(--fb);}
.cpill.on{background:var(--adim);border-color:var(--abr);color:var(--ac);}
.srv-r{display:flex;align-items:center;gap:9px;margin-bottom:12px;padding:9px 11px;background:var(--bg);border-radius:10px;border:1px solid var(--bd);}
.srv-l{font-size:12px;color:var(--mu);flex:1;}
.srv-c{display:flex;align-items:center;gap:8px;}
.srv-b{width:28px;height:28px;border-radius:50%;background:var(--bd2);border:none;color:var(--tx);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.srv-n{font-family:var(--fd);font-size:15px;font-weight:700;width:44px;text-align:center;border:none;background:transparent;color:var(--tx);outline:none;-moz-appearance:textfield;}
.srv-n::-webkit-inner-spin-button,.srv-n::-webkit-outer-spin-button{-webkit-appearance:none;}
.mp-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:13px;}
.mp2{background:var(--bg);border:1px solid var(--bd);border-radius:9px;padding:9px 4px;text-align:center;}
.mp2 .mv{font-family:var(--fd);font-size:12px;font-weight:700;line-height:1;margin-bottom:2px;}
.mp2 .ml{font-size:8px;text-transform:uppercase;letter-spacing:.5px;color:var(--mu);}
.mp2.mcal .mv{color:var(--cal);}.mp2.mpro .mv{color:var(--pro);}
.mp2.mca .mv{color:var(--car);}.mp2.mft .mv{color:var(--fat);}
.cadd{width:100%;padding:13px;background:var(--ac);color:var(--bg);border:none;border-radius:10px;font-family:var(--fb);font-size:14px;font-weight:700;cursor:pointer;margin-bottom:6px;}
.cfav{width:100%;padding:8px;background:transparent;color:var(--ac);border:none;font-family:var(--fb);font-size:11px;cursor:pointer;}
.ccan{width:100%;padding:8px;background:transparent;color:var(--mu);border:none;font-family:var(--fb);font-size:11px;cursor:pointer;}


/* LEVEL BATTLE */
.battle-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:520;align-items:center;justify-content:center;padding:16px;}
.battle-ov.on{display:flex;}
.battle-box{width:100%;max-width:402px;background:var(--sf);border:2px solid var(--bd2);border-radius:18px;padding:15px;box-shadow:0 14px 40px rgba(0,0,0,.45);position:relative;overflow:hidden;}
.battle-box.boss{border-color:var(--xp);box-shadow:0 0 28px rgba(251,191,36,.18);}
.battle-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.battle-title{font-family:var(--fd);font-size:14px;font-weight:700;color:var(--ac);}
.battle-tag{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--xp);border:1px solid rgba(251,191,36,.35);border-radius:20px;padding:3px 8px;background:rgba(251,191,36,.08);}
.battle-arena{background:var(--bg);border:1px solid var(--bd);border-radius:13px;min-height:192px;display:flex;align-items:flex-end;justify-content:space-between;padding:18px 22px 16px;position:relative;overflow:hidden;}
.battle-ground{position:absolute;left:0;right:0;bottom:0;height:38px;background:linear-gradient(180deg,transparent,var(--adim));border-top:1px dashed var(--bd2);}
.fighter{position:relative;z-index:2;text-align:center;transition:transform .22s ease, filter .22s ease;}
.fighter .sprite{font-size:52px;line-height:1;filter:drop-shadow(0 6px 0 rgba(0,0,0,.25));}
.fighter .name{font-size:10px;color:var(--mu);font-weight:700;margin-top:6px;}
.enemy .sprite{font-size:54px;}
.enemy.boss .sprite{font-size:67px;}
.hero.attack{animation:heroStrike .46s ease-in-out;}
.hero.jump{animation:heroJump .72s ease-in-out;}
.enemy.hit{animation:enemyHit .42s ease-in-out;}
.hero.hit{animation:heroHit .42s ease-in-out;}
.enemy.cast{animation:bossCast .7s ease-in-out;}
.battle-arena.warn{box-shadow:inset 0 0 0 2px rgba(251,191,36,.45);}
@keyframes heroStrike{0%,100%{transform:translateX(0)}40%{transform:translateX(155px) scale(1.12)}70%{transform:translateX(120px) scale(1.06)}}
@keyframes heroJump{0%,100%{transform:translateY(0)}42%{transform:translateY(-78px) scale(1.04)}70%{transform:translateY(-42px)}}
@keyframes enemyHit{0%{transform:translateX(0);filter:brightness(1)}30%{transform:translateX(14px) rotate(-5deg);filter:brightness(2.2) saturate(0)}55%{transform:translateX(-10px) rotate(4deg);filter:brightness(1.4)}100%{transform:translateX(0);filter:brightness(1)}}
@keyframes heroHit{0%,100%{transform:translateX(0)}42%{transform:translateX(-8px) rotate(-3deg);filter:brightness(1.5)}65%{transform:translateX(7px) rotate(3deg)}}
@keyframes bossCast{0%,100%{transform:translateX(0)}38%{transform:translateX(-12px) scale(1.08)}60%{transform:translateX(-8px)}}
@keyframes arenaShake{0%,100%{transform:translate(0,0)}15%{transform:translate(-6px,3px)}30%{transform:translate(6px,-3px)}45%{transform:translate(-4px,4px)}60%{transform:translate(4px,-2px)}75%{transform:translate(-3px,2px)}}
.battle-arena.shake{animation:arenaShake .45s ease-in-out;}
.hp-fill.hp-warning{background:#f59e0b!important;transition:background .5s,width .35s ease;}
.hp-fill.hp-critical{background:#ef4444!important;animation:hpPulse 1s ease-in-out infinite;}
@keyframes hpPulse{0%,100%{opacity:1}50%{opacity:.55}}
.hitfx{position:absolute;left:50%;top:42%;font-size:28px;opacity:0;z-index:3;pointer-events:none;}
.hitfx.on{animation:hitFlash .42s ease-in-out;}
@keyframes hitFlash{0%{opacity:0;transform:scale(.5)}45%{opacity:1;transform:scale(1.35)}100%{opacity:0;transform:scale(.8)}}
.fireball{position:absolute;right:90px;bottom:92px;font-size:25px;opacity:0;z-index:4;pointer-events:none;}
.fireball.on{animation:fireballFly .72s ease-in-out;}
@keyframes fireballFly{0%{opacity:0;transform:translateX(0) scale(.6)}15%{opacity:1}75%{opacity:1;transform:translateX(-190px) scale(1.15)}100%{opacity:0;transform:translateX(-212px) scale(.75)}}
.hp-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px;}
.hp-card{background:var(--bg);border:1px solid var(--bd);border-radius:10px;padding:8px;}
.hp-lbl{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:5px;display:flex;justify-content:space-between;gap:5px;}
.hp-bg{height:8px;background:var(--bd);border-radius:8px;overflow:hidden;}
.hp-fill{height:100%;background:var(--grn);border-radius:8px;transition:width .35s ease;}
.hp-fill.enemyhp{background:#ef4444;}
.battle-msg{text-align:center;font-size:12px;color:var(--tx);line-height:1.45;margin:12px 6px 10px;min-height:34px;}
.battle-reward{text-align:center;font-family:var(--fd);font-size:11px;color:var(--xp);margin-bottom:11px;}
.battle-actions{display:flex;gap:8px;flex-wrap:wrap;}
.battle-actions button{min-width:calc(50% - 4px);}
.battle-close,.battle-start,.battle-attack,.battle-block,.battle-jump{flex:1;padding:11px;background:var(--ac);color:var(--bg);border:none;border-radius:10px;font-family:var(--fb);font-weight:800;cursor:pointer;}
.battle-close{display:block;background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);} /* always available as Exit */
.battle-attack{display:none;background:var(--xp);}
.battle-block{display:none;background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);}
.battle-jump{display:none;background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);}
.battle-attack:disabled,.battle-block:disabled,.battle-jump:disabled{opacity:.5;cursor:not-allowed;}
.battle-start{display:block;}
.battle-actions.done .battle-close{display:block;}
.battle-actions.done .battle-start,.battle-actions.done .battle-attack,.battle-actions.done .battle-block,.battle-actions.done .battle-jump,.battle-actions.done .battle-study{display:none;}
.battle-actions.fighting .battle-start{display:none;}
.battle-actions.fighting .battle-attack,.battle-actions.fighting .battle-block,.battle-actions.fighting .battle-jump,.battle-actions.fighting .battle-close{display:block;}

/* LEVEL SELECT */
.level-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.86);z-index:515;align-items:flex-end;justify-content:center;}
.level-ov.on{display:flex;}
.level-box{background:var(--sf);border-radius:20px 20px 0 0;width:100%;max-width:430px;border-top:1px solid var(--bd);padding:14px 14px calc(18px + env(safe-area-inset-bottom));max-height:78vh;display:flex;flex-direction:column;}
.level-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.level-title{font-size:15px;font-weight:800;}
.level-sub{font-size:11px;color:var(--mu);line-height:1.35;margin-bottom:10px;}
.level-close{width:30px;height:30px;border-radius:50%;background:var(--bd);border:none;color:var(--tx);font-size:17px;cursor:pointer;}
.level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;overflow-y:auto;padding-right:2px;}
.level-card{background:var(--bg);border:1px solid var(--bd);border-radius:12px;padding:10px 6px;text-align:center;cursor:pointer;font-family:var(--fb);color:var(--tx);}
.level-card:active{transform:scale(.97);}
.level-card.boss{border-color:rgba(251,191,36,.45);background:rgba(251,191,36,.08);}
.level-card.locked{opacity:.35;filter:grayscale(1);cursor:not-allowed;}
.level-emoji{font-size:25px;line-height:1;margin-bottom:5px;}
.level-name{font-size:10px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.level-meta{font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;margin-top:2px;}

/* XP POPUP — drops from top; padding-top pushes content below Dynamic Island / notch */
.xpp{position:fixed;top:0;left:50%;transform:translateX(-50%) translateY(-110%);opacity:0;background:var(--sf);border:1.5px solid var(--xp);border-bottom-left-radius:16px;border-bottom-right-radius:16px;padding:calc(8px + env(safe-area-inset-top)) 20px 10px;text-align:center;z-index:600;pointer-events:none;transition:transform .28s cubic-bezier(.34,1.56,.64,1),opacity .2s;max-width:300px;width:calc(100% - 32px);display:flex;align-items:center;gap:8px;justify-content:center;}
.xpp.on{opacity:1;transform:translateX(-50%) translateY(0);}
.xpp-ic{font-size:20px;flex-shrink:0;}
.xpp-m{font-family:var(--fd);font-size:13px;font-weight:800;color:var(--xp);}
.xpp-s{font-size:10px;color:var(--mu);margin-left:2px;}

/* ACHIEVEMENTS */
.ach-row{display:flex;gap:7px;overflow-x:auto;padding:4px 0;}
.ach-row::-webkit-scrollbar{display:none;}
.ach-b{flex-shrink:0;width:50px;display:flex;flex-direction:column;align-items:center;gap:2px;}
.ach-ic{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:19px;border:2px solid var(--bd2);}
.ach-ic.ul{border-color:var(--xp);background:rgba(251,191,36,.1);}
.ach-ic.lk{filter:grayscale(1);opacity:.3;}
.ach-nm{font-size:8px;color:var(--mu);text-align:center;line-height:1.2;}

/* HISTORY */
.hist-pg{padding:0 14px;}
.chart-bars{display:flex;align-items:flex-end;gap:5px;height:68px;margin-bottom:4px;}
.cbw{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;height:100%;justify-content:flex-end;}
.cbb{width:100%;border-radius:3px 3px 0 0;background:var(--adim);border:1px solid var(--abr);min-height:3px;transition:height .5s;}
.cbb.td{background:rgba(198,241,53,.28);}
body.neon .cbb.td{box-shadow:0 0 5px var(--ac);}
.cbd{font-size:9px;color:var(--mu);font-family:var(--fd);}

/* FAVS */
.fav-list{padding:0 14px;}
.fav-i{display:flex;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid var(--bd);cursor:pointer;}
.fav-i:last-child{border-bottom:none;}
.fav-n{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fav-s{font-size:10px;color:var(--mu);}
.fav-c{font-family:var(--fd);font-size:11px;color:var(--cal);flex-shrink:0;}
.fav-d{background:none;border:none;color:var(--mu2);font-size:14px;cursor:pointer;padding:3px;}

/* SETTINGS */
.set-pg{padding:0 14px 14px;}
.s-lbl{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);padding:12px 0 6px;}
.s-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--sf);border:1px solid var(--bd);border-radius:10px;margin-bottom:5px;}
.s-k{font-size:13px;font-weight:500;}
.gi{background:var(--sf2);border:1px solid var(--bd2);border-radius:7px;padding:5px 8px;color:var(--tx);font-family:var(--fd);font-size:11px;outline:none;width:66px;text-align:right;}
.gi:focus{border-color:var(--ac);}
/* THEME SELECTOR — uniform 5-column grid, all cards identical height */
.theme-row{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;}
.tsw{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:12px 4px 10px;height:82px;border-radius:12px;border:1.5px solid var(--bd2);cursor:pointer;background:var(--sf);color:var(--mu);font-size:10px;font-weight:700;font-family:var(--fb);line-height:1.15;transition:border-color .18s,box-shadow .18s,transform .1s;-webkit-tap-highlight-color:transparent;}
.tsw:active{transform:scale(.94);}
.tsw span{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center;}
.tsw.on{border-color:var(--ac);color:var(--ac);box-shadow:0 0 0 1px var(--ac),0 0 16px var(--adim);}
.theme-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--sf2);border:1px solid var(--bd2);color:var(--ac);flex-shrink:0;}
.theme-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsw.on .theme-icon{background:var(--adim);border-color:var(--ac);}
.tsw-dot{display:none;}
.theme-segment{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--sf);border:1px solid var(--bd);border-radius:999px;padding:4px;margin-bottom:10px;overflow:hidden;}
.theme-segment .tsw{height:38px;min-width:0;border:0;border-radius:999px;background:transparent;box-shadow:none;color:var(--mu);font-size:13px;font-weight:900;padding:0;transition:background .2s ease,color .2s ease,transform .1s ease;}
.theme-segment .tsw.on{background:#C6F135;color:#0f0f10;box-shadow:0 8px 18px rgba(198,241,53,.14);}
.theme-segment .tsw:active{transform:scale(.98);}
.theme-segment .theme-icon{display:none;}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.stat-c{background:var(--sf);border:1px solid var(--bd);border-radius:10px;padding:10px;}
.stat-l{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;}
.stat-v{font-family:var(--fd);font-size:18px;font-weight:700;margin-bottom:6px;}
.stat-ir{display:flex;align-items:center;gap:5px;}
.stat-in{flex:1;background:var(--sf2);border:1px solid var(--bd2);border-radius:7px;padding:5px 7px;color:var(--tx);font-family:var(--fd);font-size:16px;outline:none;}
.stat-in:focus{border-color:var(--ac);}
.stat-sv{padding:5px 9px;background:var(--adim);border:1px solid var(--abr);border-radius:7px;color:var(--ac);font-size:10px;font-weight:600;cursor:pointer;font-family:var(--fb);}

/* WORKOUT */
.wo-pg{padding:0 14px 14px;}
.pl-card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:12px;margin-bottom:7px;}
.pl-n{font-size:14px;font-weight:700;margin-bottom:2px;}
.pl-m{font-size:10px;color:var(--mu);margin-bottom:9px;}
.pl-acts{display:flex;gap:6px;}
.pl-st{flex:1;padding:8px;background:var(--ac);color:var(--bg);border:none;border-radius:7px;font-family:var(--fb);font-size:11px;font-weight:700;cursor:pointer;}
.pl-ed{padding:8px 11px;background:var(--sf2);border:1px solid var(--bd2);border-radius:7px;font-family:var(--fb);font-size:11px;color:var(--mu);cursor:pointer;}
.pl-dl{padding:8px 9px;background:none;border:1px solid var(--bd2);border-radius:7px;font-size:11px;color:var(--mu2);cursor:pointer;}
.new-pl{width:100%;padding:11px;background:none;border:1px dashed var(--bd2);border-radius:var(--r);color:var(--mu);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--fb);margin-top:3px;}
.ai-pl{width:100%;padding:11px;background:var(--adim);border:1px solid var(--abr);border-radius:var(--r);color:var(--ac);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--fb);margin-top:7px;display:flex;align-items:center;justify-content:center;gap:7px;}
.wl-c{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:10px;margin-bottom:7px;}
.wl-n{font-size:12px;font-weight:700;margin-bottom:2px;}
.wl-m{font-size:10px;color:var(--mu);}
.wl-ex{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px;}
.wl-et{font-size:9px;color:var(--wo);background:rgba(167,139,250,.1);border:1px solid rgba(167,139,250,.2);border-radius:5px;padding:2px 6px;}

/* BUILDER */
.bld-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:150;align-items:flex-end;justify-content:center;}
.bld-ov.on{display:flex;}
.bld-box{background:var(--sf);border-radius:20px 20px 0 0;width:100%;max-width:430px;border-top:1px solid var(--bd);max-height:95vh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);}
.bld-sc{flex:1;overflow-y:auto;padding:0 14px 14px;}
.pl-ni{width:100%;padding:10px 11px;background:var(--sf2);border:1px solid var(--bd2);border-radius:9px;color:var(--tx);font-family:var(--fb);font-size:16px;font-weight:600;outline:none;margin-bottom:12px;}
.pl-ni:focus{border-color:var(--ac);}
.ex-si{width:100%;padding:7px 11px;background:var(--sf2);border:1px solid var(--bd2);border-radius:8px;color:var(--tx);font-family:var(--fb);font-size:16px;outline:none;margin-bottom:7px;}
.ex-si:focus{border-color:var(--ac);}
.mtabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:8px;}
.mtabs::-webkit-scrollbar{display:none;}
.mtab{padding:4px 9px;border-radius:20px;border:1px solid var(--bd2);background:none;color:var(--mu);font-size:9px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:var(--fb);}
.mtab.on{background:rgba(167,139,250,.12);border-color:rgba(167,139,250,.35);color:var(--wo);}
.ex-list{max-height:160px;overflow-y:auto;border:1px solid var(--bd);border-radius:9px;margin-bottom:12px;}
.eli{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--bd);font-size:11px;cursor:pointer;}
.eli:last-child{border-bottom:none;}
.eli:active{background:var(--sf2);}
.eli-create{border:1.5px dashed var(--ac)!important;background:var(--adim)!important;border-bottom:1.5px dashed var(--ac)!important;border-radius:8px;margin:4px 0;}
.eli-custom-badge{font-size:9px;color:var(--ac);border:1px solid var(--abr);border-radius:4px;padding:1px 4px;margin-left:5px;vertical-align:middle;font-weight:600;}
.el-mu{font-size:8px;color:var(--wo);background:rgba(167,139,250,.1);border:1px solid rgba(167,139,250,.2);border-radius:4px;padding:1px 5px;}
.el-pl{color:var(--ac);font-size:14px;}
.cho-lbl{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;}
.cho-ex{background:var(--sf2);border:1px solid var(--bd2);border-radius:9px;padding:8px 10px;margin-bottom:5px;}
.cho-ex-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.cho-ex-n{font-size:11px;font-weight:600;}
.cho-ex-d{background:none;border:none;color:var(--mu2);font-size:13px;cursor:pointer;}
.set-r{display:flex;gap:5px;align-items:center;margin-bottom:3px;}
.set-l{font-size:9px;color:var(--mu);width:26px;flex-shrink:0;}
.set-i{flex:1;background:var(--bg);border:1px solid var(--bd);border-radius:6px;padding:5px 7px;color:var(--tx);font-family:var(--fd);font-size:10px;outline:none;text-align:center;}
.set-i:focus{border-color:var(--ac);}
.set-il{font-size:8px;color:var(--mu);text-align:center;}
.add-set{font-size:10px;color:var(--ac);background:none;border:none;cursor:pointer;font-family:var(--fb);padding:3px 0;}
.sv-pl{width:100%;padding:11px;background:var(--ac);color:var(--bg);border:none;border-radius:10px;font-family:var(--fb);font-size:13px;font-weight:700;cursor:pointer;margin-top:3px;}

/* ACTIVE WORKOUT */
.aw-ov{display:none;position:fixed;inset:0;background:var(--bg);z-index:250;flex-direction:column;}
.aw-ov.on{display:flex;}
.aw-hdr{padding:calc(13px + env(safe-area-inset-top)) 15px 13px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.aw-ti{font-size:14px;font-weight:700;}
.aw-tm{font-family:var(--fd);font-size:12px;color:var(--ac);}
.aw-fn{padding:7px 13px;background:var(--ac);color:var(--bg);border:none;border-radius:7px;font-weight:700;font-size:11px;cursor:pointer;font-family:var(--fb);}
.aw-sc{flex:1;overflow-y:auto;padding:12px;}
.aw-ec{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:11px;margin-bottom:9px;}
.aw-en{font-size:13px;font-weight:700;color:var(--wo);margin-bottom:3px;}
.aw-note{font-size:10px;color:var(--mu);line-height:1.4;margin-bottom:7px;}
.aw-addset{width:100%;padding:7px;background:transparent;border:1px dashed var(--bd2);border-radius:8px;color:var(--mu);font-family:var(--fb);font-size:11px;cursor:pointer;margin-top:7px;}
.aw-sr{display:flex;align-items:center;gap:7px;padding:7px 0;border-bottom:1px solid var(--bd);}
.aw-sr:last-child{border-bottom:none;}
.aw-sn{font-family:var(--fd);font-size:10px;color:var(--mu);width:28px;flex-shrink:0;}
.aw-in{flex:1;background:var(--sf2);border:1px solid var(--bd2);border-radius:6px;padding:5px 6px;color:var(--tx);font-family:var(--fd);font-size:11px;outline:none;text-align:center;}
.aw-in:focus{border-color:var(--ac);}
.aw-il{font-size:8px;color:var(--mu);text-align:center;margin-top:1px;}
.aw-db{width:28px;height:28px;border-radius:50%;background:var(--bd2);border:none;color:var(--mu);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;}
.aw-db.dn{background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.4);color:var(--grn);}

/* REST */
.rst-ov{display:none;position:fixed;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:calc(100% - 24px);max-width:406px;background:var(--sf);border:1px solid var(--abr);box-shadow:0 10px 34px rgba(0,0,0,.45);z-index:1000;border-radius:16px;padding:10px 11px;align-items:center;justify-content:space-between;gap:8px;}
.rst-ov.on{display:flex;}
.rst-t{font-family:var(--fd);font-size:24px;font-weight:700;color:var(--wo);min-width:62px;text-align:center;}
body.neon .rst-t{text-shadow:0 0 12px var(--wo);}
.rst-l{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:.8px;white-space:nowrap;}
.rst-sk{padding:7px 10px;background:var(--ac);border:none;border-radius:9px;color:var(--bg);font-size:11px;font-weight:800;cursor:pointer;font-family:var(--fb);white-space:nowrap;}
.rst-adj{display:flex;gap:5px;}
.radj{padding:6px 8px;background:var(--sf2);border:1px solid var(--bd2);border-radius:8px;color:var(--mu);font-size:10px;cursor:pointer;font-family:var(--fb);white-space:nowrap;}

/* AI PLAN BUILDER */
.ai-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:160;align-items:flex-end;justify-content:center;}
.ai-ov.on{display:flex;}
.ai-box{background:var(--sf);border-radius:20px 20px 0 0;width:100%;max-width:430px;border-top:1px solid var(--bd);max-height:90vh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);}
.ai-sc{flex:1;overflow-y:auto;padding:0 16px 16px;}
.ai-q{margin-bottom:14px;}
.ai-ql{font-size:11px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;}
.ai-opts{display:flex;gap:6px;flex-wrap:wrap;}
.ai-opt{padding:6px 13px;border-radius:20px;border:1px solid var(--bd2);background:none;color:var(--mu);font-size:11px;font-weight:600;cursor:pointer;font-family:var(--fb);}
.ai-opt.on{background:var(--adim);border-color:var(--abr);color:var(--ac);}
.ai-gen{width:100%;padding:13px;background:var(--ac);color:var(--bg);border:none;border-radius:10px;font-family:var(--fb);font-size:14px;font-weight:700;cursor:pointer;margin-top:6px;}
.ai-result{background:var(--sf2);border:1px solid var(--bd2);border-radius:10px;padding:13px;margin-top:12px;font-size:12px;line-height:1.7;color:var(--tx);}
.ai-day-card{background:var(--sf);border:1px solid var(--bd);border-radius:11px;padding:11px;margin-top:10px;}
.ai-day-title{font-size:13px;font-weight:700;color:var(--ac);margin-bottom:7px;}
.ai-ex-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--bd);}
.ai-ex-row:last-child{border-bottom:none;}
.ai-ex-name{font-size:12px;font-weight:700;}
.ai-ex-meta{font-size:10px;color:var(--mu);margin-top:2px;}
.ai-pill{font-family:var(--fd);font-size:10px;color:var(--wo);background:rgba(167,139,250,.1);border:1px solid rgba(167,139,250,.25);border-radius:6px;padding:4px 6px;white-space:nowrap;}
.ai-save{width:100%;padding:11px;background:var(--adim);border:1px solid var(--abr);border-radius:10px;color:var(--ac);font-family:var(--fb);font-size:13px;font-weight:700;cursor:pointer;margin-top:8px;}
.ai-thinking{display:flex;align-items:center;gap:9px;padding:16px;color:var(--mu);font-size:12px;}
.ai-dot{width:7px;height:7px;border-radius:50%;background:var(--ac);animation:pulse 1.2s ease-in-out infinite;}
.ai-dot:nth-child(2){animation-delay:.2s;}
.ai-dot:nth-child(3){animation-delay:.4s;}
@keyframes pulse{0%,80%,100%{opacity:.2;transform:scale(.8);}40%{opacity:1;transform:scale(1);}}

/* iOS INSTALL PROMPT */
.install-prompt{display:none;position:fixed;bottom:90px;left:14px;right:14px;max-width:402px;margin:0 auto;background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:16px;z-index:600;box-shadow:0 8px 32px rgba(0,0,0,.4);}
.install-prompt.on{display:block;}
.ip-close{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--mu);font-size:18px;cursor:pointer;}
.ip-title{font-size:14px;font-weight:700;margin-bottom:4px;}
.ip-sub{font-size:12px;color:var(--mu);margin-bottom:12px;}
.ip-steps{display:flex;flex-direction:column;gap:8px;}
.ip-step{display:flex;align-items:center;gap:9px;font-size:12px;}
.ip-step-num{width:20px;height:20px;border-radius:50%;background:var(--adim);border:1px solid var(--abr);color:var(--ac);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}


/* LIVE BARCODE SCANNER + QUICK ADD */
.scan-video-ov{display:none;position:fixed;inset:0;background:#000;z-index:700;align-items:center;justify-content:center;margin:0 auto;padding:calc(54px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom));}
.scan-video-ov.on{display:flex;}
.scan-video-box{position:relative;width:100%;max-width:430px;height:100%;overflow:hidden;background:#000;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.scan-camera{position:relative;width:100%;height:min(58vh,420px);min-height:320px;max-height:420px;overflow:hidden;background:#050505;border:1px solid rgba(255,255,255,.12);border-radius:18px;box-shadow:0 18px 42px rgba(0,0,0,.45);}
#scan-video-native{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover!important;display:block;background:#000;z-index:1;}
.scan-frame{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:78%;max-width:330px;height:170px;border:2px solid var(--ac);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.34),0 0 24px var(--abr);pointer-events:none;z-index:4;}
.scan-line{position:absolute;left:10%;right:10%;top:50%;height:2px;background:var(--ac);box-shadow:0 0 16px var(--ac);animation:scanLine 1.35s ease-in-out infinite;}
@keyframes scanLine{0%,100%{transform:translateY(-54px)}50%{transform:translateY(54px)}}
.scan-top{position:absolute;left:14px;right:14px;top:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;z-index:6;}
.scan-title{background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.16);border-radius:999px;color:white;font-size:12px;font-weight:800;padding:8px 12px;}
.scan-close{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.55);color:white;font-size:22px;}
.scan-bottom{position:relative;left:auto;right:auto;bottom:auto;display:flex;flex:0 0 auto;flex-direction:column;gap:8px;align-items:center;padding-bottom:2px;}
.scan-help{color:rgba(255,255,255,.88);font-size:12px;text-align:center;line-height:1.35;padding:2px 8px;}
.scan-status{display:none;background:rgba(198,241,53,.12);border:1px solid rgba(198,241,53,.35);color:var(--ac);border-radius:12px;font-size:11px;font-weight:900;padding:8px 12px;text-align:center;}
.scan-status.on{display:block;}
.scan-actions{display:flex;gap:8px;align-items:center;justify-content:center;width:100%;}
.scan-retry,.scan-stop{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:white;border-radius:12px;font-family:var(--fb);font-size:12px;font-weight:700;padding:10px 18px;cursor:pointer;display:none;min-height:42px;align-items:center;justify-content:center;}
.scan-stop{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.35);}
.scan-manual-search{width:100%;min-height:42px;border:1px solid rgba(56,189,248,.38);background:rgba(56,189,248,.12);color:#bfdbfe;border-radius:12px;font-family:var(--fb);font-size:12px;font-weight:800;cursor:pointer;}
.scan-diag{display:none;width:100%;max-height:112px;overflow:auto;background:rgba(0,0,0,.72);border:1px solid rgba(255,255,255,.14);border-radius:10px;color:rgba(255,255,255,.7);font-size:9px;line-height:1.35;padding:8px;word-break:break-word;}
@media (max-width:430px){
  .scan-video-ov{padding-left:10px;padding-right:10px;}
  .scan-camera{height:min(52vh,390px);min-height:300px;max-height:390px;}
  .scan-frame{width:82%;height:150px;}
}

/* ApexQuest battle visual restoration */
.battle-box.apexquest-battle-polish{
  max-width:430px!important;
  padding:12px!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,rgba(15,23,42,.96),rgba(3,7,18,.98))!important;
}
.apexquest-battle-polish .combat-top{margin-bottom:8px}
.apexquest-battle-polish .combatant-grid{gap:8px;margin-bottom:8px}
.apexquest-battle-polish .combatant-card{border-radius:9px!important;padding:8px!important;overflow:hidden}
.apexquest-battle-polish .combatant-head{gap:7px;margin-bottom:6px}
.apexquest-battle-polish .combat-portrait{
  width:42px!important;height:42px!important;min-width:42px!important;
  border-radius:10px!important;overflow:hidden!important;font-size:0!important;
}
.apexquest-battle-polish .combatant-name,
.apexquest-battle-polish .combatant-class{
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%;
}
.apexquest-battle-polish .battle2d-arena{
  min-height:220px!important;
  padding:16px 22px 14px!important;
  background-image:
    radial-gradient(circle at 18% 34%,rgba(198,241,53,.12),transparent 24%),
    radial-gradient(circle at 76% 26%,rgba(56,189,248,.12),transparent 28%),
    linear-gradient(180deg,rgba(2,6,23,.08),rgba(2,6,23,.78)),
    var(--battle2d-bg)!important;
  background-size:cover!important;
  background-position:center!important;
}
.apexquest-battle-polish .fighter{width:42%;min-width:0}
.apexquest-battle-polish .fighter .sprite{
  width:clamp(92px,29vw,138px)!important;
  height:clamp(96px,30vw,145px)!important;
  font-size:0!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  overflow:hidden!important;
}
.apexquest-battle-polish .battle2d-img{
  width:100%!important;height:100%!important;
  max-width:100%!important;max-height:100%!important;
  object-fit:contain!important;display:block!important;
}
.apexquest-battle-polish .combat-portrait .battle2d-img{padding:3px!important}
.apexquest-battle-polish .battle2d-fallback{
  display:none;align-items:center;justify-content:center;
  width:24px;height:24px;max-width:24px;max-height:24px;font-size:13px!important;line-height:1;
  color:var(--ac);border:1px solid rgba(198,241,53,.22);border-radius:9px;
  background:rgba(2,6,23,.74);padding:0;text-align:center;
}
.apexquest-battle-polish .asset-missing .battle2d-fallback{display:flex!important}
.apexquest-battle-polish .fighter .name{max-width:120px!important;font-size:10px!important}
.apexquest-battle-polish .combat-log{
  height:58px!important;
  min-height:58px!important;
  padding:7px!important;
  overflow:hidden!important;
}
.apexquest-battle-polish .log-line{font-size:10px!important;line-height:1.25!important;padding:2px 0!important}
.battle-actions.apex-realtime{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  align-items:stretch!important;
}
.battle-actions.apex-realtime .ability-start{grid-column:1/-1!important;text-align:center!important}
.battle-actions.apex-realtime.fighting .ability-start{display:none!important}
.battle-actions.apex-realtime .ability-btn,
.battle-actions.apex-realtime .ability-run,
.battle-actions.apex-realtime .ability-exit,
.battle-actions.apex-realtime .ability-start{
  min-height:54px!important;
  height:54px!important;
  border-radius:10px!important;
  padding:8px 9px!important;
  text-align:left!important;
  overflow:hidden!important;
}
.battle-actions.apex-realtime .ability-run{
  display:none;
  border:1px solid var(--bd2);
  background:var(--sf2);
  color:var(--tx);
  font-family:var(--fb);
  font-weight:900;
}
.battle-actions.apex-realtime.fighting .ability-run{display:block!important}
.battle-actions.apex-realtime.fighting #btn-battle-attack{grid-column:1;grid-row:1}
.battle-actions.apex-realtime.fighting #btn-battle-block{grid-column:2;grid-row:1}
.battle-actions.apex-realtime.fighting #btn-battle-jump{grid-column:1;grid-row:2}
.battle-actions.apex-realtime.fighting #btn-battle-run{grid-column:2;grid-row:2}
.battle-actions.apex-realtime.fighting #btn-battle-close,
.battle-actions.apex-realtime.fighting #btn-battle-ultimate,
.battle-actions.apex-realtime #btn-battle-close,
.battle-actions.apex-realtime #btn-battle-ultimate{display:none!important}
.battle-actions.apex-realtime .ability-name{font-size:12px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.battle-actions.apex-realtime .ability-meta{font-size:9px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.battle-actions.apex-realtime button:disabled{opacity:.52!important;color:#94a3b8!important}
.battle-more-menu{
  display:none;
  grid-column:1/-1;
  grid-template-columns:1fr 1fr 1fr;
  gap:8px;
}
.battle-actions.apex-realtime.more-open .battle-more-menu{display:grid}
.battle-more-menu button{
  min-height:44px;border-radius:10px;border:1px solid var(--bd2);
  background:rgba(15,23,42,.92);color:var(--tx);font-family:var(--fb);font-weight:900;
}
.battle-actions.apex-realtime.done{
  grid-template-columns:1fr 1fr!important;
}
.battle-actions.apex-realtime.done .ability-start{grid-column:1/-1!important}
.battle-actions.apex-realtime.done .ability-btn{display:block!important;text-align:center!important}
.battle-actions.apex-realtime.done .ability-name{text-align:center!important}
.battle-actions.apex-realtime.done .ability-meta{text-align:center!important}
.apexquest-battle-polish .reward-screen{
  padding:8px!important;margin:6px 0!important;border-radius:10px!important;
}
@media (max-width:390px){
  .battle-box.apexquest-battle-polish{padding:10px!important}
  .apexquest-battle-polish .battle2d-arena{min-height:200px!important;padding-inline:16px!important}
  .battle-actions.apex-realtime{gap:7px!important}
  .battle-actions.apex-realtime .ability-btn,
  .battle-actions.apex-realtime .ability-run,
  .battle-actions.apex-realtime .ability-start{height:52px!important;min-height:52px!important}
  .battle-more-menu{grid-template-columns:1fr!important}
}

/* ApexQuest Option 3: world regions + zoomed timelines */
.aq3-wrap{display:flex;flex-direction:column;gap:12px;padding-bottom:18px}
.aq3-tabs{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;
  background:rgba(2,6,23,.62);border:1px solid rgba(148,163,184,.14);border-radius:12px;padding:6px;
  position:sticky;top:0;z-index:4;backdrop-filter:blur(10px);
}
.aq3-tabs button,.aq3-segment button{
  min-width:0;height:38px;border-radius:9px;border:1px solid transparent;background:transparent;color:#cbd5e1;
  font-family:var(--fb);font-size:10px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;
}
.aq3-tabs button.on,.aq3-segment button.on{
  color:var(--bg);background:var(--ac);border-color:var(--ac);box-shadow:0 8px 18px rgba(198,241,53,.12);
}
.aq3-hero,.aq3-screen-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:linear-gradient(180deg,rgba(15,23,42,.94),rgba(2,6,23,.94));
  border:1px solid rgba(148,163,184,.14);border-radius:14px;padding:14px;
}
.aq3-kicker{font-size:9px;color:var(--xp);text-transform:uppercase;letter-spacing:.9px;font-weight:900}
.aq3-title{font-size:21px;font-weight:950;line-height:1.05}
.aq3-sub{font-size:11px;color:var(--mu);line-height:1.35;margin-top:4px}
.aq3-level{width:72px;height:72px;border-radius:14px;border:1px solid var(--abr);background:var(--adim);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 auto}
.aq3-level b{font-family:var(--fd);font-size:24px;color:var(--ac);line-height:1}
.aq3-level span,.aq3-level small{font-size:9px;color:var(--mu)}
.aq3-region-list{display:flex;flex-direction:column;gap:10px}
.aq3-region-card{
  width:100%;min-height:142px;border:1px solid rgba(148,163,184,.16);border-radius:14px;
  padding:0;overflow:hidden;position:relative;text-align:left;color:var(--tx);background:#020617;
  font-family:var(--fb);cursor:pointer;
}
.aq3-region-card.locked{filter:grayscale(.82);opacity:.68}
.aq3-region-bg{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(2,6,23,.92),rgba(2,6,23,.34)),var(--aq3-bg);background-size:cover;background-position:center}
.aq3-region-main{position:relative;z-index:1;height:100%;min-height:142px;padding:14px;display:flex;flex-direction:column;justify-content:space-between}
.aq3-region-top,.aq3-region-foot,.aq3-node-row,.aq3-preview-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}
.aq3-region-name{font-size:19px;font-weight:950}
.aq3-region-meta,.aq3-region-foot{font-size:10px;color:#cbd5e1}
.aq3-region-state{font-size:10px;font-weight:900;color:var(--ac);border:1px solid var(--abr);background:rgba(198,241,53,.11);border-radius:999px;padding:6px 9px;white-space:nowrap}
.aq3-region-card.locked .aq3-region-state{color:#94a3b8;border-color:rgba(148,163,184,.2);background:rgba(15,23,42,.65)}
.aq3-region-progress{height:8px;background:rgba(15,23,42,.72);border:1px solid rgba(148,163,184,.14);border-radius:999px;overflow:hidden;margin:12px 0}
.aq3-region-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--ac),#22c55e);border-radius:999px}
.aq3-panel{padding:6px 2px 14px;display:flex;flex-direction:column;gap:12px}
.aq3-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.aq3-panel-title{font-size:20px;font-weight:950;line-height:1.08}
.aq3-card-list{display:flex;flex-direction:column;gap:8px}
.aq3-info-card{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;
  border:1px solid rgba(148,163,184,.14);border-radius:10px;background:rgba(15,23,42,.72);padding:10px;min-width:0;
}
.aq3-info-card b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aq3-info-card span{display:block;font-size:10px;color:var(--mu);line-height:1.35}
.aq3-reward{display:flex;align-items:center;gap:7px;justify-content:flex-end;flex-wrap:wrap}
.aq3-reward button{
  height:34px;border-radius:9px;border:1px solid var(--bd2);background:var(--sf2);color:var(--tx);
  font-family:var(--fb);font-size:10px;font-weight:900;padding:0 10px;white-space:nowrap;cursor:pointer;
}
.aq3-reward button:disabled{opacity:.55;cursor:not-allowed}
.aq3-segment{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:rgba(2,6,23,.58);border:1px solid rgba(148,163,184,.12);border-radius:12px;padding:5px}
.aq3-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.aq3-stat{border-bottom:1px solid rgba(148,163,184,.12);padding:8px 2px;min-width:0}
.aq3-stat span{display:block;font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px}
.aq3-stat b{display:block;margin-top:3px;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aq3-empty{font-size:10px;color:var(--mu);line-height:1.4;border:1px dashed rgba(148,163,184,.2);border-radius:10px;padding:10px;background:rgba(2,6,23,.36)}
.aq3-gear-panel{min-height:120px}
.aq3-sheet{display:flex;flex-direction:column;gap:14px}
.aq3-sheet-top{display:flex;align-items:center;gap:10px;padding:4px 2px 0}
.aq3-portrait{display:none}
.aq3-sheet-name{font-size:16px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aq3-sheet-sub{font-size:10px;color:var(--mu);margin-top:3px}
.aq3-paperdoll{display:grid;grid-template-columns:1fr minmax(116px,145px) 1fr;gap:9px;align-items:center}
.aq3-slot-col{display:flex;flex-direction:column;gap:7px;min-width:0}
.aq3-slot{height:39px;border-radius:8px;border:1px solid rgba(148,163,184,.16);background:transparent;color:var(--tx);font-family:var(--fb);text-align:left;padding:6px;min-width:0;cursor:pointer}
.aq3-slot.filled{border-color:rgba(198,241,53,.34);background:rgba(198,241,53,.05)}
.aq3-slot span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.7px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aq3-slot b{display:block;font-size:10px;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.aq3-model{border:0;border-radius:14px;background:radial-gradient(circle at 50% 42%,rgba(198,241,53,.16),rgba(2,6,23,.02) 64%);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:230px}
.aq3-model img{width:100%;height:190px;object-fit:contain;filter:drop-shadow(0 18px 18px rgba(0,0,0,.55)) drop-shadow(0 0 18px rgba(198,241,53,.16))}
.aq3-model i{display:none;width:58px;height:58px;border-radius:999px;border:1px solid var(--abr);align-items:center;justify-content:center;color:var(--ac);font-style:normal;font-weight:950}
.aq3-model.missing i{display:flex}
.aq3-model-core{display:none}
.aq3-model span{font-size:10px;color:var(--mu);font-weight:900;margin-top:8px;text-transform:uppercase;letter-spacing:.8px}
.aq3-rpg-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.aq3-clean-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;border-top:1px solid rgba(148,163,184,.13);padding-top:10px}
.aq3-clean-stats div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid rgba(148,163,184,.08)}
.aq3-clean-stats span{font-size:10px;color:var(--mu)}
.aq3-clean-stats b{font-size:12px;color:var(--tx);font-weight:900}
.aq3-divider{height:1px;background:rgba(148,163,184,.13)}
.aq3-back,.aq3-secondary,.aq3-fight{
  border-radius:10px;border:1px solid var(--bd2);padding:10px 12px;background:var(--sf2);color:var(--tx);
  font-family:var(--fb);font-weight:900;cursor:pointer;
}
.aq3-back{flex:0 0 auto}
.aq3-timeline{position:relative;display:flex;flex-direction:column;gap:11px;padding:4px 0 10px}
.aq3-node{
  width:100%;position:relative;display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:12px;
  border:1px solid rgba(148,163,184,.16);border-radius:14px;background:rgba(15,23,42,.86);
  color:var(--tx);padding:10px;text-align:left;font-family:var(--fb);overflow:hidden;cursor:pointer;
}
.aq3-node::before{content:"";position:absolute;left:40px;top:-14px;width:2px;height:14px;background:rgba(148,163,184,.24)}
.aq3-node:first-child::before{display:none}
.aq3-node.done{border-color:rgba(34,197,94,.4);box-shadow:0 0 18px rgba(34,197,94,.1)}
.aq3-node.current{border-color:rgba(198,241,53,.62);box-shadow:0 0 0 1px rgba(198,241,53,.18) inset,0 0 20px rgba(198,241,53,.12);animation:aq3Pulse 1.8s ease-in-out infinite}
.aq3-node.locked{opacity:.44;filter:grayscale(1);cursor:not-allowed}
.aq3-node.boss{grid-template-columns:82px 1fr auto;min-height:96px;border-color:rgba(251,191,36,.44);background:linear-gradient(135deg,rgba(251,191,36,.1),rgba(15,23,42,.9))}
.aq3-node-art,.aq3-preview-art{
  display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:12px;
  background:rgba(2,6,23,.66);border:1px solid rgba(148,163,184,.14);
}
.aq3-node-art{width:58px;height:58px}
.aq3-node.boss .aq3-node-art{width:76px;height:76px;border-color:rgba(251,191,36,.28)}
.aq3-node-art img,.aq3-preview-art img{width:100%;height:100%;object-fit:contain;display:block;padding:3px}
.aq3-node-art i,.aq3-preview-art i{display:none;color:var(--ac);font-style:normal;font-weight:950;font-size:13px}
.aq3-node-art.missing i,.aq3-preview-art.missing i{display:block}
.aq3-node-body{min-width:0}
.aq3-node-row b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aq3-node-row span{font-size:9px;color:var(--xp);border:1px solid rgba(251,191,36,.22);border-radius:999px;padding:4px 7px;white-space:nowrap}
.aq3-node-rewards{font-size:10px;color:var(--mu);margin-top:4px}
.aq3-node-mark{font-size:18px;color:var(--ac);font-weight:950;width:22px;text-align:center}
.aq3-preview{
  border:1px solid rgba(148,163,184,.16);border-radius:16px;overflow:hidden;background:#020617;position:relative;
}
.aq3-preview::before{content:"";position:absolute;inset:0;background-image:linear-gradient(180deg,rgba(2,6,23,.1),rgba(2,6,23,.92)),var(--aq3-bg);background-size:cover;background-position:center}
.aq3-preview>.aq3-back{position:relative;z-index:2;margin:12px}
.aq3-preview-scene{position:relative;z-index:1;min-height:210px;display:flex;align-items:center;justify-content:center}
.aq3-preview-art{width:190px;height:180px;border:0;background:transparent}
.aq3-preview-body{position:relative;z-index:2;padding:14px;background:linear-gradient(180deg,transparent,rgba(2,6,23,.96) 18%)}
.aq3-fight{background:var(--ac);color:var(--bg);border-color:var(--ac);flex:1;text-align:center}
.aq3-secondary{flex:1;text-align:center}
.aq3-fight:disabled{opacity:.45;filter:grayscale(1);cursor:not-allowed}
@keyframes aq3Pulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
@media (min-width:760px){
  .aq3-region-list{display:grid;grid-template-columns:1fr 1fr}
  .aq3-region-card:first-child{grid-column:1/-1}
}
@media (max-width:390px){
  .aq3-wrap{gap:10px}
  .aq3-tabs{gap:4px;padding:5px}
  .aq3-tabs button{height:34px;font-size:9px}
  .aq3-info-card{grid-template-columns:1fr;align-items:start}
  .aq3-reward{justify-content:space-between}
  .aq3-stat-grid{grid-template-columns:1fr 1fr}
  .aq3-paperdoll{grid-template-columns:1fr 104px 1fr;gap:6px}
  .aq3-model{min-height:190px}
  .aq3-model img{height:160px}
  .aq3-slot{height:38px;padding:5px}
  .aq3-rpg-stats{grid-template-columns:1fr 1fr}
  .aq3-region-card{min-height:126px}
  .aq3-region-main{min-height:126px;padding:12px}
  .aq3-title{font-size:18px}
  .aq3-node{grid-template-columns:56px 1fr auto;gap:9px;padding:9px}
  .aq3-node-art{width:50px;height:50px}
  .aq3-node.boss{grid-template-columns:68px 1fr auto}
  .aq3-node.boss .aq3-node-art{width:62px;height:62px}
  .aq3-preview-actions{flex-direction:column}
  .aq3-fight,.aq3-secondary{width:100%}
}
.qa-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.84);z-index:230;align-items:flex-end;justify-content:center;}
.qa-ov.on{display:flex;}
.qa-box{background:var(--sf);border-top:1px solid var(--bd);border-radius:20px 20px 0 0;width:100%;max-width:430px;padding:0 16px calc(18px + env(safe-area-inset-bottom));}
.qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 12px;}
.qa-lbl{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;}
.qa-inp{width:100%;padding:11px;background:var(--sf2);border:1px solid var(--bd2);border-radius:10px;color:var(--tx);font-family:var(--fb);font-size:16px;outline:none;}
.qa-inp:focus{border-color:var(--ac);}
.qa-add{width:100%;padding:13px;background:var(--ac);color:var(--bg);border:none;border-radius:12px;font-family:var(--fb);font-size:14px;font-weight:900;}
.qa-note{font-size:11px;color:var(--mu);line-height:1.45;margin-top:8px;text-align:center;}

/* LOADING / TOAST */
.ldo{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:400;flex-direction:column;align-items:center;justify-content:center;gap:11px;}
.ldo.on{display:flex;}
.spin{width:34px;height:34px;border:3px solid rgba(198,241,53,.15);border-top-color:var(--ac);border-radius:50%;animation:sp .8s linear infinite;}
@keyframes sp{to{transform:rotate(360deg)}}
.ld-t{font-size:12px;color:rgba(255,255,255,.6);}
/* Toast — sits above nav bar; adds home-indicator clearance via safe-area-inset-bottom */
.toast{position:fixed;bottom:calc(90px + env(safe-area-inset-bottom));left:14px;right:14px;max-width:402px;margin:0 auto;padding:11px 13px;border-radius:10px;font-size:12px;text-align:center;z-index:450;opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s;pointer-events:none;}
.toast.on{opacity:1;transform:translateY(0);}
.toast.err{background:#2d1a1a;border:1px solid rgba(239,68,68,.4);color:#fca5a5;}
.toast.ok{background:var(--adim);border:1px solid var(--abr);color:var(--ac);}
#cam-in{display:none;}

/* JEFIT-style workout logger additions */
.prog-card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:12px;margin-bottom:8px;}
.prog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px;}
.prog-title{font-size:14px;font-weight:800;}
.prog-sub{font-size:10px;color:var(--mu);margin-top:2px;}
.day-grid{display:flex;flex-direction:column;gap:6px;}
.day-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;background:var(--sf2);border:1px solid var(--bd2);border-radius:10px;color:var(--tx);font-family:var(--fb);text-align:left;cursor:pointer;}
.day-name{font-size:12px;font-weight:700;}
.day-meta{font-size:9px;color:var(--mu);margin-top:2px;}
.day-go{color:var(--ac);font-size:11px;font-weight:800;}
.pr-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px;}
.pr-card{background:var(--sf);border:1px solid var(--bd);border-radius:10px;padding:10px;}
.pr-ex{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pr-val{font-family:var(--fd);font-size:15px;color:var(--ac);margin-top:3px;}
.pr-sub{font-size:9px;color:var(--mu);margin-top:2px;}
.wl-detail{margin-top:7px;border-top:1px solid var(--bd);padding-top:7px;}
.wl-line{font-size:10px;color:var(--mu);line-height:1.6;}
.aw-ex-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.aw-info{background:var(--adim);border:1px solid var(--abr);color:var(--ac);border-radius:20px;padding:5px 9px;font-size:10px;font-weight:800;cursor:pointer;font-family:var(--fb);}
.aw-note{font-size:10px;color:var(--mu);line-height:1.4;margin-bottom:7px;}
.ex-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.86);z-index:420;align-items:flex-end;justify-content:center;}
.ex-ov.on{display:flex;}
.ex-box{background:var(--sf);border-radius:20px 20px 0 0;width:100%;max-width:430px;border-top:1px solid var(--bd);max-height:88vh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);}
.ex-sc{overflow-y:auto;padding:0 16px 16px;}
.ex-art{height:145px;border-radius:14px;background:linear-gradient(135deg,var(--sf2),var(--bg));border:1px solid var(--bd);display:flex;align-items:center;justify-content:center;margin-bottom:12px;overflow:hidden;}
.ex-art svg{width:100%;height:100%;}
.ex-chip-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.ex-chip{font-size:10px;background:var(--adim);border:1px solid var(--abr);color:var(--ac);border-radius:20px;padding:4px 9px;}
.ex-sec-title{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin:12px 0 6px;}
.ex-list2{font-size:12px;color:var(--tx);line-height:1.65;padding-left:18px;}
.ex-link{display:block;width:100%;text-align:center;margin-top:12px;padding:11px;background:var(--ac);color:var(--bg);border-radius:10px;text-decoration:none;font-size:12px;font-weight:800;}

/* JEFIT-style exercise subpage upgrade */
.aw-ov{background:#0b0b0d;}
.aw-hdr{background:#0b0b0d;position:sticky;top:0;z-index:5;}
.aw-back{background:transparent;border:none;color:var(--tx);font-size:22px;line-height:1;cursor:pointer;padding:6px 8px;margin-left:-6px;}
.aw-title-wrap{display:flex;align-items:center;gap:6px;min-width:0;}
.aw-list-head{padding:8px 2px 14px;}
.aw-list-title{font-size:20px;font-weight:900;margin-bottom:4px;}
.aw-list-sub{font-size:11px;color:var(--mu);line-height:1.45;}
.aw-ex-card{display:flex;align-items:center;gap:10px;background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:10px;margin-bottom:9px;cursor:pointer;}
.aw-ex-card.ex-complete{border-color:var(--abr);background:var(--adim);}
.aw-ex-card.ex-complete .aw-ex-go{color:var(--ac);font-size:16px;}
.aw-ex-card.ex-complete .aw-ex-name{opacity:.7;}
.aw-ex-thumb{width:64px;height:52px;border-radius:10px;background:var(--sf2);border:1px solid var(--bd2);display:flex;align-items:center;justify-content:center;color:var(--ac);overflow:hidden;flex-shrink:0;}
.aw-ex-thumb svg{width:100%;height:100%;}
.aw-ex-main{flex:1;min-width:0;}
.aw-ex-name{font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.aw-ex-meta{font-size:10px;color:var(--mu);margin-top:3px;line-height:1.35;}
.aw-ex-progress{height:4px;background:var(--bd);border-radius:99px;margin-top:7px;overflow:hidden;}
.aw-ex-fill{height:100%;background:var(--ac);border-radius:99px;}
.aw-ex-go{color:var(--ac);font-size:18px;}
.aw-detail-hero{height:190px;border-radius:0 0 18px 18px;margin:-12px -12px 0;background:linear-gradient(145deg,var(--sf2),#050506);border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:center;color:var(--ac);overflow:hidden;position:relative;}
.aw-detail-hero svg{width:100%;height:100%;opacity:.95;}
.aw-progress-strip{position:absolute;left:12px;right:12px;bottom:10px;display:flex;gap:6px;}
.aw-dot{height:5px;flex:1;border-radius:99px;background:rgba(255,255,255,.12);}
.aw-dot.on{background:#3b82f6;}
.aw-detail-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:14px 2px 8px;}
.aw-detail-title h2{font-size:19px;line-height:1.15;margin:0;}
.aw-1rm{text-align:right;font-size:11px;color:var(--mu);white-space:nowrap;}
.aw-1rm strong{font-family:var(--fd);font-size:18px;color:#3b82f6;}
.aw-timer-row{display:flex;gap:8px;margin:6px 0 14px;}
.aw-timer-pill{flex:1;background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:10px 12px;font-size:12px;color:var(--tx);display:flex;align-items:center;justify-content:center;gap:6px;}
.aw-rest-live{font-family:var(--fd);font-weight:900;color:#3b82f6;}
.aw-set-head,.aw-set-line{display:grid;grid-template-columns:44px 1fr 1fr 38px;gap:8px;align-items:center;}
.aw-set-head{font-size:12px;color:var(--mu);padding:7px 4px 9px;border-bottom:1px solid var(--bd);}
.aw-set-line{padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.06);}
.aw-set-line.done{opacity:.48;}
.aw-set-num{font-family:var(--fd);font-size:18px;font-weight:900;text-align:center;}
.aw-set-box input{width:100%;background:transparent;border:none;color:#3b82f6;font-family:var(--fd);font-size:26px;font-weight:900;outline:none;text-align:left;}
.aw-set-box input::placeholder{color:rgba(255,255,255,.18);}
.aw-target{font-size:10px;color:var(--mu);margin-top:2px;}
.aw-check{width:34px;height:34px;border-radius:50%;background:transparent;border:none;color:rgba(255,255,255,.18);font-size:23px;cursor:pointer;}
.aw-check.dn{color:var(--grn);}
.aw-detail-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(11,11,13,0),#0b0b0d 24%);padding:26px 0 calc(10px + env(safe-area-inset-bottom));display:flex;gap:8px;}
.aw-note-btn{width:58px;border:none;border-radius:14px;background:var(--sf);color:var(--mu);font-size:20px;}
.aw-primary{flex:1;border:none;border-radius:14px;background:#3b82f6;color:white;font-family:var(--fb);font-weight:900;font-size:14px;padding:14px;}
.aw-secondary{border:1px solid var(--bd);background:var(--sf);color:var(--tx);border-radius:14px;font-family:var(--fb);font-weight:800;padding:0 12px;}
.rst-ov{display:none!important;}.rst-ov.on{display:flex!important;}


/* V4 seamless workout cleanup */
.wo-pg{padding:0 16px 18px;background:var(--bg);}
#pg-workout .hdr{background:var(--bg);border-bottom:1px solid var(--bd);}
.prog-card,.pl-card,.wl-c{background:var(--sf);border:1px solid var(--bd);border-radius:18px;padding:14px;margin-bottom:12px;box-shadow:var(--sh);}
.prog-title,.pl-n{font-size:16px;font-weight:900;color:var(--tx);}
.prog-sub,.pl-m,.wl-m{color:var(--mu);font-size:11px;}
.day-grid{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
.day-btn{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;background:var(--sf2);border:1px solid var(--bd2);border-radius:14px;padding:13px 12px;color:var(--tx);font-family:var(--fb);cursor:pointer;}
.day-btn:active{transform:scale(.99);}
.day-name{font-size:14px;font-weight:850;}
.day-meta{font-size:10px;color:var(--mu);margin-top:3px;}
.day-go{font-size:11px;color:var(--ac);font-weight:900;}
.pr-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;}
.pr-card{background:var(--sf2);border:1px solid var(--bd2);border-radius:14px;padding:11px;}
.pr-ex{font-size:11px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pr-val{font-family:var(--fd);font-size:16px;font-weight:900;color:var(--ac);margin-top:3px;}
.pr-sub{font-size:9px;color:var(--mu2);margin-top:2px;}
.wl-et{background:var(--adim);border:1px solid var(--abr);color:var(--ac);}
.pl-st{background:var(--ac);color:var(--bg);border-radius:10px;}
.pl-ed,.pl-dl{background:var(--sf2);border:1px solid var(--bd2);border-radius:10px;color:var(--mu);}
.battle-block{flex:1;padding:11px;border-radius:10px;font-family:var(--fb);font-weight:800;cursor:pointer;}
.plan-ov{display:none;position:fixed;inset:0;background:var(--bg);z-index:245;flex-direction:column;max-width:430px;margin:0 auto;}
.plan-ov.on{display:flex;}
.plan-hdr{padding:calc(13px + env(safe-area-inset-top)) 15px 13px;border-bottom:1px solid var(--bd);display:flex;align-items:center;gap:10px;background:var(--bg);}
.plan-back{width:34px;height:34px;border-radius:11px;background:var(--sf);border:1px solid var(--bd);color:var(--tx);font-size:22px;line-height:1;}
.plan-title{font-size:16px;font-weight:900;line-height:1.1;}
.plan-sub{font-size:11px;color:var(--mu);margin-top:2px;}
.plan-sc{flex:1;overflow-y:auto;padding:14px 16px 92px;}
.plan-start{position:fixed;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:398px;margin:0 auto;padding:14px;border:none;border-radius:16px;background:var(--ac);color:var(--bg);font-family:var(--fb);font-weight:900;font-size:15px;}
.plan-ex-row{display:flex;gap:11px;align-items:center;background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px;margin-bottom:9px;}
.plan-ex-icon{width:42px;height:42px;border-radius:13px;background:var(--adim);display:flex;align-items:center;justify-content:center;color:var(--ac);}
.plan-ex-name{font-size:14px;font-weight:850;color:var(--tx);}
.plan-ex-meta{font-size:11px;color:var(--mu);margin-top:2px;}

.plan-ex-btns{display:flex;gap:5px;flex-shrink:0;flex-wrap:wrap;}
.plan-swap,.plan-how,.plan-hist,.plan-remove{padding:7px 9px;border-radius:10px;border:1px solid var(--bd2);background:var(--sf2);font-family:var(--fb);font-size:11px;font-weight:800;cursor:pointer;}
.plan-swap{color:var(--ac);}
.plan-how{color:var(--mu);}
.plan-hist{color:var(--mu);}
.plan-remove{color:#ef4444;border-color:rgba(239,68,68,.3);}
.plan-add-ex{width:100%;padding:12px;border-radius:14px;border:1.5px dashed var(--bd2);background:transparent;color:var(--mu);font-family:var(--fb);font-size:13px;font-weight:700;cursor:pointer;margin-top:4px;}
.complete-rewards{margin-bottom:12px;}
.reward-row{display:flex;gap:8px;flex-wrap:wrap;}
.reward-pill{display:inline-flex;align-items:center;gap:4px;background:var(--adim);border:1px solid var(--abr);color:var(--ac);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:900;font-family:var(--fd);}
.pr-pill{background:rgba(251,191,36,.12);border-color:rgba(251,191,36,.4);color:var(--xp);}
.swap-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:560;align-items:flex-end;justify-content:center;}
.swap-ov.on{display:flex;}
.swap-box{background:var(--sf);border-top:1px solid var(--bd);border-radius:22px 22px 0 0;width:100%;max-width:430px;max-height:78vh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);}
.swap-list{overflow:auto;padding:0 16px 16px;}
.swap-row{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--sf2);border:1px solid var(--bd2);border-radius:14px;padding:12px;margin-bottom:8px;color:var(--tx);font-family:var(--fb);text-align:left;}
.swap-row strong{font-size:13px;}
.swap-row span{font-size:10px;color:var(--mu);}




/* QUICK SETUP */
/* ═══ ONBOARDING v2 ═════════════════════════════════════════ */
.ob-ov{position:fixed;inset:0;z-index:2500;background:var(--bg);display:flex;overflow:hidden;}
.ob-ov.hidden{display:none;}
.ob-box{position:relative;width:100%;max-width:460px;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;}
/* screens */
.ob-screen{position:absolute;inset:0;padding:calc(env(safe-area-inset-top,20px) + 20px) 24px calc(96px + env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;transform:translateY(6px);}
.ob-screen.on{opacity:1;pointer-events:auto;transform:translateY(0);}
/* progress bar */
.ob-progress-wrap{position:absolute;top:0;left:0;right:0;height:3px;background:var(--sf);z-index:10;}
.ob-progress-wrap.hidden{display:none;}
.ob-progress-bar{height:100%;background:var(--ac);transition:width .4s ease;width:0%;}
/* skip */
.ob-skip{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);right:16px;z-index:20;background:none;border:none;color:var(--mu);font-size:13px;cursor:pointer;font-family:var(--fb);padding:6px 8px;min-height:44px;display:flex;align-items:center;}
/* intro slide */
.ob-slide-hero{font-size:76px;text-align:center;margin:28px 0 12px;line-height:1;}
.ob-slide-title{font-family:var(--fd);font-size:26px;font-weight:800;color:var(--tx);text-align:center;margin:0 0 16px;line-height:1.2;}
.ob-slide-body{font-family:var(--fb);font-size:14px;color:var(--mu);text-align:center;line-height:1.7;margin:0 0 14px;}
.ob-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;}
.ob-feat{background:var(--sf);border:1.5px solid var(--bd);border-radius:14px;padding:18px 12px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;}
.ob-feat-ico{font-size:30px;}
.ob-feat-lbl{font-size:12px;color:var(--mu);line-height:1.4;}
.ob-feat-lbl em{font-style:normal;color:var(--ac);font-weight:700;}
.ob-path-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:8px;}
.ob-path-list li{font-size:14px;color:var(--tx);background:var(--sf);border:1.5px solid var(--bd);border-radius:12px;padding:14px 18px;font-weight:500;}
.ob-slide-dots{display:flex;gap:7px;justify-content:center;margin:16px 0 10px;}
.ob-sdot{width:7px;height:7px;border-radius:50%;background:var(--bd);transition:background .3s;}
.ob-sdot.on{background:var(--ac);}
.ob-cta{width:100%;padding:16px;background:var(--ac);color:var(--bg);border:none;border-radius:14px;font-family:var(--fb);font-size:16px;font-weight:800;cursor:pointer;margin-top:auto;letter-spacing:.3px;flex-shrink:0;}
.ob-cta:active{opacity:.8;}
/* setup screen headers */
.ob-setup-hd{padding-top:12px;margin-bottom:20px;}
.ob-step-label{font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--ac);margin-bottom:7px;}
.ob-setup-title{font-family:var(--fd);font-size:22px;font-weight:800;color:var(--tx);margin:0;line-height:1.25;}
/* goal cards */
.ob-goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ob-goal-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:20px 12px;background:var(--sf);border:2px solid var(--bd);border-radius:16px;cursor:pointer;transition:border-color .2s,background .2s;}
.ob-goal-card.on{border-color:var(--ac);background:var(--adim);}
.ob-goal-ico{font-size:34px;}
.ob-goal-name{font-size:13px;font-weight:700;color:var(--tx);}
.ob-goal-sub{font-size:11px;color:var(--mu);line-height:1.3;}
/* body stats */
.ob-stats-form{display:flex;flex-direction:column;gap:14px;}
.ob-field{display:flex;flex-direction:column;gap:7px;}
.ob-field-lbl{font-size:11px;font-weight:700;color:var(--mu);letter-spacing:.5px;text-transform:uppercase;}
.ob-height-row{display:flex;gap:10px;}
.ob-num-wrap{display:flex;align-items:center;gap:8px;background:var(--sf);border:1.5px solid var(--bd);border-radius:10px;padding:0 12px;}
.ob-num-inp{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--tx);font-size:18px;font-weight:600;padding:10px 0;font-family:var(--fb);}
.ob-num-inp::placeholder{color:var(--bd);}
.ob-num-unit{font-size:12px;color:var(--mu);font-weight:600;white-space:nowrap;}
.ob-seg{display:flex;background:var(--sf);border:1.5px solid var(--bd);border-radius:10px;overflow:hidden;}
.ob-seg-btn{flex:1;padding:10px;background:transparent;border:none;color:var(--mu);font-size:13px;font-weight:700;cursor:pointer;transition:background .2s,color .2s;font-family:var(--fb);}
.ob-seg-btn.on{background:var(--ac);color:var(--bg);}
.ob-act-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.ob-act-btn{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 12px;background:var(--sf);border:1.5px solid var(--bd);border-radius:10px;cursor:pointer;font-size:12px;font-weight:700;color:var(--tx);text-align:left;transition:border-color .2s,background .2s;font-family:var(--fb);}
.ob-act-btn.on{border-color:var(--ac);background:var(--adim);}
.ob-act-btn span{font-size:10px;color:var(--mu);font-weight:400;}
/* macro results */
.ob-macro-card{background:var(--sf);border:1.5px solid var(--bd);border-radius:14px;padding:20px;margin-bottom:14px;}
.ob-macro-cal{text-align:center;margin-bottom:16px;}
.ob-macro-cal-num{font-family:var(--fd);font-size:52px;font-weight:800;color:var(--ac);line-height:1;}
.ob-macro-cal-lbl{font-size:13px;color:var(--mu);margin-top:4px;}
.ob-macro-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;text-align:center;}
.ob-macro-item-num{font-size:22px;font-weight:800;color:var(--tx);}
.ob-macro-item-lbl{font-size:11px;color:var(--mu);}
.ob-macro-edit-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.ob-macro-edit-lbl{font-size:13px;color:var(--mu);flex:1;}
.ob-macro-edit-btn{font-size:12px;color:var(--ac);background:none;border:none;cursor:pointer;font-weight:700;font-family:var(--fb);}
.ob-macro-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ob-macro-inputs.hidden{display:none;}
.ob-mi{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--mu);font-weight:700;}
.ob-mi input{background:var(--sf);border:1.5px solid var(--bd);border-radius:8px;color:var(--tx);font-size:16px;font-weight:600;padding:9px 10px;outline:none;font-family:var(--fb);width:100%;box-sizing:border-box;}
/* training days */
.ob-days-grid{display:flex;gap:10px;justify-content:center;margin:18px 0 20px;flex-wrap:wrap;}
.ob-day-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:66px;height:74px;background:var(--sf);border:2px solid var(--bd);border-radius:16px;font-family:var(--fd);font-size:28px;font-weight:800;color:var(--tx);cursor:pointer;transition:border-color .2s,background .2s,color .2s;gap:2px;}
.ob-day-btn span{font-size:10px;color:var(--mu);font-weight:600;font-family:var(--fb);}
.ob-day-btn.on{border-color:var(--ac);background:var(--adim);color:var(--ac);}
.ob-day-btn.on span{color:var(--ac);}
.ob-days-hint{font-size:13px;color:var(--mu);text-align:center;line-height:1.6;padding:0 8px;}
.ob-days-hint em{color:var(--ac);font-style:normal;font-weight:700;}
/* workout plan cards */
.ob-plan-grid{display:flex;flex-direction:column;gap:10px;}
.ob-plan-card{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;background:var(--sf);border:2px solid var(--bd);border-radius:16px;cursor:pointer;transition:border-color .2s,background .2s;text-align:left;position:relative;width:100%;font-family:var(--fb);}
.ob-plan-card.on{border-color:var(--ac);background:var(--adim);}
.ob-plan-ico{font-size:28px;flex-shrink:0;margin-top:2px;}
.ob-plan-info{flex:1;min-width:0;padding-right:56px;}
.ob-plan-name{font-size:14px;font-weight:700;color:var(--tx);margin-bottom:4px;}
.ob-plan-desc{font-size:12px;color:var(--mu);line-height:1.45;}
.ob-plan-badge{position:absolute;top:12px;right:14px;font-size:9px;font-weight:700;letter-spacing:.6px;color:var(--ac);text-transform:uppercase;background:var(--adim);border:1px solid var(--ac);border-radius:4px;padding:2px 5px;}
/* character class cards */
.ob-class-grid{display:flex;flex-direction:column;gap:12px;}
.ob-class-card{display:flex;align-items:center;gap:16px;padding:18px 20px;background:var(--sf);border:2px solid var(--bd);border-radius:16px;cursor:pointer;transition:border-color .2s,background .2s;text-align:left;width:100%;font-family:var(--fb);}
.ob-class-card.on{border-color:var(--ac);background:var(--adim);}
.ob-class-card.locked{opacity:.42;cursor:not-allowed;}
.ob-class-ico{font-size:44px;flex-shrink:0;}
.ob-class-info{flex:1;min-width:0;}
.ob-class-name{font-family:var(--fd);font-size:18px;font-weight:800;color:var(--tx);margin-bottom:3px;}
.ob-class-desc{font-size:13px;color:var(--mu);margin-bottom:5px;}
.ob-class-stats{font-size:11px;color:var(--ac);font-weight:600;}
.ob-class-lock{font-size:12px;color:var(--mu);}
/* name screen */
.ob-name-inp{width:100%;background:var(--sf);border:2px solid var(--bd);border-radius:14px;color:var(--tx);font-size:20px;font-weight:600;padding:15px 18px;outline:none;font-family:var(--fd);box-sizing:border-box;margin-bottom:12px;transition:border-color .2s;}
.ob-name-inp:focus{border-color:var(--ac);}
.ob-name-btns{display:flex;gap:8px;}
.ob-small-btn{flex:1;padding:11px 8px;background:var(--sf);border:1.5px solid var(--bd);border-radius:10px;color:var(--mu);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--fb);}
/* completion */
.ob-complete-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:20px;}
.ob-complete-hero{font-size:84px;margin-bottom:18px;}
.ob-complete-title{font-family:var(--fd);font-size:30px;font-weight:800;color:var(--tx);margin:0 0 8px;}
.ob-complete-sub{font-size:15px;color:var(--mu);margin-bottom:24px;}
.ob-summary-card{width:100%;background:var(--sf);border:1.5px solid var(--bd);border-radius:16px;padding:4px 16px;margin-bottom:22px;text-align:left;}
.ob-sum-row{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--bd);font-size:13px;}
.ob-sum-row:last-child{border-bottom:none;}
.ob-sum-ico{font-size:20px;width:26px;text-align:center;flex-shrink:0;}
.ob-sum-lbl{color:var(--mu);width:80px;flex-shrink:0;}
.ob-sum-val{color:var(--tx);font-weight:700;}
.ob-cta-complete{margin-bottom:10px;}
.ob-explore-btn{background:none;border:none;color:var(--mu);font-size:13px;cursor:pointer;font-family:var(--fb);padding:10px;min-height:44px;}
/* nav bar */
.ob-nav{position:absolute;bottom:0;left:0;right:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));display:flex;gap:10px;background:var(--bg);border-top:1px solid var(--bd);}
.ob-nav.hidden{display:none;}
.ob-nav-back{flex:0 0 auto;padding:14px 22px;background:var(--sf);border:1.5px solid var(--bd);border-radius:12px;color:var(--mu);font-size:14px;font-weight:700;cursor:pointer;font-family:var(--fb);}
.ob-nav-next{flex:1;padding:14px;background:var(--ac);color:var(--bg);border:none;border-radius:12px;font-size:15px;font-weight:800;cursor:pointer;font-family:var(--fb);}
/* ── PWA Install Onboarding Prompt ── */
.pwa-install-wrap{justify-content:center;align-items:center;}
.pwa-install-inner{width:100%;max-width:380px;padding:40px 28px calc(40px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;text-align:center;}
.pwa-install-ico{font-size:72px;margin-bottom:20px;line-height:1;}
.pwa-install-title{font-family:var(--fd);font-size:28px;font-weight:800;color:var(--tx);margin:0 0 8px;}
.pwa-install-sub{font-size:15px;color:var(--mu);margin:0 0 28px;line-height:1.5;}
.pwa-instr-block{width:100%;background:var(--sf);border:1.5px solid var(--bd);border-radius:14px;padding:4px 16px;margin-bottom:24px;}
.pwa-instr-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--bd);}
.pwa-instr-row:last-child{border-bottom:none;}
.pwa-step-num{width:26px;height:26px;border-radius:50%;background:var(--ac);color:var(--bg);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--fd);}
.pwa-step-txt{font-size:14px;color:var(--tx);text-align:left;line-height:1.5;}
.pwa-step-ico{font-size:16px;vertical-align:middle;}
.pwa-later-btn{background:none;border:none;color:var(--mu);font-size:14px;cursor:pointer;font-family:var(--fb);padding:14px 20px;margin-top:4px;}

/* ── Body Stats Redesign (ob-s4) ── */
.ob-setup-sub{font-size:13px;color:var(--mu);margin:4px 0 0;line-height:1.5;}
.ob-body-form{display:flex;flex-direction:column;gap:20px;}
.ob-body-group{display:flex;flex-direction:column;gap:8px;}
.ob-body-group-label{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--ac);padding:0 2px;}
.ob-body-group-card{background:var(--sf);border:1.5px solid var(--bd);border-radius:14px;overflow:hidden;}
.ob-body-row{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;gap:12px;}
.ob-body-row+.ob-body-row{border-top:1px solid var(--bd);}
.ob-body-row-lbl{font-size:14px;font-weight:600;color:var(--tx);flex-shrink:0;}
.ob-height-row-compact{gap:8px;}
.ob-height-row-compact .ob-num-wrap{padding:6px 10px;}
.ob-height-row-compact .ob-num-inp{width:38px;padding:4px 0;}
.ob-seg-sm{min-width:140px;}

/* ── Workout Plan Alt Options ── */
.ob-plan-alts{margin-top:16px;display:flex;flex-direction:column;gap:8px;}
.ob-plan-alts-or{display:flex;align-items:center;gap:10px;margin-bottom:2px;}
.ob-plan-alts-or::before,.ob-plan-alts-or::after{content:'';flex:1;height:1px;background:var(--bd);}
.ob-plan-alts-or span{font-size:11px;color:var(--mu);font-weight:600;text-transform:uppercase;letter-spacing:.5px;}
.ob-plan-alt-btn{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--sf);border:1.5px solid var(--bd);border-radius:14px;cursor:pointer;transition:border-color .2s,background .2s;text-align:left;width:100%;font-family:var(--fb);}
.ob-plan-alt-btn:active{background:var(--adim);border-color:var(--ac);}
.ob-plan-alt-btn.selected{border-color:var(--ac);background:var(--adim);}
.ob-plan-alt-skip .ob-plan-alt-name,.ob-plan-alt-skip .ob-plan-alt-ico{opacity:.7;}
.ob-plan-alt-ico{font-size:22px;flex-shrink:0;}
.ob-plan-alt-info{flex:1;min-width:0;}
.ob-plan-alt-name{font-size:14px;font-weight:700;color:var(--tx);margin-bottom:2px;}
.ob-plan-alt-sub{font-size:12px;color:var(--mu);line-height:1.4;}
/* ═════════════════════════════════════════════════════════════ */

.setup-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:900;align-items:flex-end;justify-content:center;}
.setup-ov.on{display:flex;}
.setup-box{background:var(--sf);border-top:1px solid var(--bd);border-radius:22px 22px 0 0;width:100%;max-width:430px;max-height:94vh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);}
.setup-sc{overflow-y:auto;padding:0 16px 16px;}
.setup-step{display:none;}
.setup-step.on{display:block;}
.setup-kicker{font-size:10px;color:var(--ac);text-transform:uppercase;letter-spacing:1.2px;font-weight:700;margin-bottom:6px;}
.setup-title{font-size:22px;font-weight:800;line-height:1.1;margin-bottom:6px;}
.setup-sub{font-size:12px;color:var(--mu);line-height:1.45;margin-bottom:14px;}
.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;}
.setup-card{background:var(--sf2);border:1px solid var(--bd2);border-radius:14px;padding:12px;text-align:left;color:var(--tx);font-family:var(--fb);cursor:pointer;}
.setup-card.on{border-color:var(--ac);background:var(--adim);}
.setup-ico{font-size:28px;margin-bottom:7px;}
.setup-card-title{font-size:13px;font-weight:800;margin-bottom:2px;}
.setup-card-sub{font-size:10px;color:var(--mu);line-height:1.35;}
.setup-inp{width:100%;padding:12px;background:var(--sf2);border:1px solid var(--bd2);border-radius:12px;color:var(--tx);font-family:var(--fb);font-size:16px;outline:none;margin-bottom:8px;}
.setup-inp:focus{border-color:var(--ac);}
.setup-row{display:flex;gap:8px;margin-bottom:12px;}
.setup-small{flex:1;padding:10px;background:var(--sf2);border:1px solid var(--bd2);border-radius:10px;color:var(--tx);font-family:var(--fb);font-weight:700;font-size:11px;cursor:pointer;}
.setup-primary{width:100%;padding:13px;background:var(--ac);border:none;border-radius:12px;color:var(--bg);font-family:var(--fb);font-weight:900;font-size:14px;cursor:pointer;}
.setup-secondary{width:100%;padding:11px;background:transparent;border:1px solid var(--bd2);border-radius:12px;color:var(--mu);font-family:var(--fb);font-weight:700;font-size:12px;cursor:pointer;margin-top:7px;}
.setup-nav{display:flex;gap:8px;padding:12px 16px 16px;border-top:1px solid var(--bd);}
.setup-back{width:86px;padding:12px;background:var(--sf2);border:1px solid var(--bd2);border-radius:12px;color:var(--tx);font-family:var(--fb);font-weight:800;cursor:pointer;}
.setup-next{flex:1;padding:12px;background:var(--ac);border:none;border-radius:12px;color:var(--bg);font-family:var(--fb);font-weight:900;cursor:pointer;}
.setup-dots{display:flex;gap:5px;justify-content:center;margin:4px 0 10px;}
.setup-dot{width:6px;height:6px;border-radius:50%;background:var(--bd2);}
.setup-dot.on{background:var(--ac);}
.setup-macro-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
.setup-macro{background:var(--sf2);border:1px solid var(--bd2);border-radius:12px;padding:10px;}
.setup-macro span{display:block;font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:5px;}
.setup-macro input{width:100%;background:transparent;border:none;color:var(--tx);font-family:var(--fd);font-size:18px;font-weight:800;outline:none;}


/* EXERCISE DATABASE / PREVIOUS SETS */
.aw-set-head,.aw-set-line{grid-template-columns:34px 1fr 1fr 1fr 38px;}
.aw-prev-cell{font-family:var(--fd);font-size:11px;color:var(--mu);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.aw-prev-label{font-size:8px;color:var(--mu2);text-transform:uppercase;letter-spacing:.5px;margin-top:1px;}
.ex-media{height:180px;border-radius:14px;background:linear-gradient(135deg,var(--sf2),var(--bg));border:1px solid var(--bd);display:flex;align-items:center;justify-content:center;margin-bottom:12px;overflow:hidden;color:var(--ac);}
.ex-media img{width:100%;height:100%;object-fit:cover;background:var(--bg);}
.ex-media-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
.ex-media-unavailable{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#666;font-size:14px;letter-spacing:.02em;}
.ex-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 12px;}
.ex-metric{background:var(--bg);border:1px solid var(--bd);border-radius:10px;padding:10px;}
.ex-metric-l{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;margin-bottom:4px;}
.ex-metric-v{font-family:var(--fd);font-size:14px;font-weight:700;color:var(--tx);}
.ex-mini-note{font-size:11px;color:var(--mu);line-height:1.55;margin:8px 0 12px;}
.ex-bad{margin-top:6px;padding:9px 10px;border-radius:10px;background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.18);font-size:11px;color:#fca5a5;line-height:1.45;}
.ex-source{font-size:10px;color:var(--mu2);line-height:1.4;margin-top:9px;}


/* V8 app-style navigation polish */
body.sub-open #nav{display:none!important;}
.plan-ov,.aw-ov,.level-ov,.battle-ov,.info-ov,.bld-ov,.ai-ov{animation:slideInV8 .22s ease-out;}
@keyframes slideInV8{from{opacity:.35;transform:translateX(22px)}to{opacity:1;transform:translateX(0)}}
.plan-ov{background:var(--bg);z-index:240;}
.plan-hdr,.aw-hdr{background:var(--bg);border-bottom:1px solid var(--bd);box-shadow:0 8px 20px rgba(0,0,0,.08)}
.plan-back{background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);border-radius:12px;width:38px;height:38px;font-size:26px;line-height:1}
.plan-start{position:sticky;bottom:0;margin:10px 14px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -8px 20px rgba(0,0,0,.15)}
#plans-el .prog-card,.pl-card{border-radius:18px;border:1px solid var(--bd);background:linear-gradient(180deg,var(--sf),var(--sf2));box-shadow:var(--sh);}
#plans-el .prog-card:active,.pl-card:active{transform:scale(.992)}
.battle-study{padding:10px 13px;border-radius:12px;border:1px solid var(--xp);background:rgba(251,191,36,.12);color:var(--xp);font-family:var(--fb);font-weight:900;cursor:pointer;}
.hint-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:var(--adim);border:1px solid var(--abr);color:var(--ac);font-size:10px;font-weight:900;margin-top:6px;}
.adv-mini-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0 12px}.adv-mini-tabs button{padding:9px 5px;border-radius:14px;border:1px solid var(--bd);background:var(--sf);color:var(--mu);font-size:10px;font-weight:800;font-family:var(--fb)}.adv-mini-tabs button.on{color:var(--ac);border-color:var(--abr);background:var(--adim)}

/* ===== extracted from index.html ===== */

/* V5 polish: minimalist workouts + adventure RPG layer */
body{--wk-card:color-mix(in srgb,var(--sf) 82%,var(--bg));--wk-line:color-mix(in srgb,var(--bd) 75%,transparent);--wk-soft:color-mix(in srgb,var(--ac) 10%,transparent)}
.wo-pg .sh{padding-left:2px!important;padding-right:2px!important}.prog-card,.pl-card,.wl-c{background:var(--wk-card)!important;border:1px solid var(--wk-line)!important;box-shadow:none!important}.prog-title,.pl-n,.wl-n{letter-spacing:-.2px}.day-grid{display:flex!important;flex-direction:column!important;gap:8px!important}.day-btn,.aw-ex-card{background:var(--bg)!important;border:1px solid var(--wk-line)!important;border-radius:16px!important;padding:14px!important;color:var(--tx)!important}.day-btn{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;text-align:left!important}.day-name{font-size:14px!important;font-weight:800!important}.day-meta{font-size:10px!important;color:var(--mu)!important;margin-top:3px!important}.day-go{font-size:12px!important;color:var(--ac)!important;background:var(--wk-soft)!important;border:1px solid var(--abr)!important;border-radius:999px!important;padding:6px 10px!important}.new-pl,.ai-pl{border-radius:16px!important}.aw-ov{background:var(--bg)!important}.aw-hdr{background:var(--bg)!important;border-bottom:1px solid var(--wk-line)!important}.aw-set-line,.aw-set-head{grid-template-columns:34px 72px 1fr 1fr 42px!important}.aw-set-line{background:var(--wk-card)!important;border:1px solid var(--wk-line)!important;border-radius:14px!important;margin-bottom:7px!important}.aw-set-box input{background:var(--bg)!important;border:1px solid var(--wk-line)!important;border-radius:10px!important}.aw-primary,.aw-fn{border-radius:999px!important}.pr-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 10px}.pr-card,.mini-card{background:var(--wk-card);border:1px solid var(--wk-line);border-radius:14px;padding:10px}.pr-ex,.mini-label{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px}.pr-val,.mini-value{font-family:var(--fd);font-weight:800;color:var(--ac);font-size:16px}.pr-sub{font-size:9px;color:var(--mu);margin-top:2px}.week-card{background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:13px;margin-bottom:9px}.week-title{font-size:12px;font-weight:800;margin-bottom:8px}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.week-day{text-align:center;border:1px solid var(--bd);border-radius:10px;padding:7px 2px;background:var(--bg)}.week-day.done{background:var(--adim);border-color:var(--abr)}.week-dow{font-size:8px;color:var(--mu);text-transform:uppercase}.week-mark{font-size:14px;margin-top:3px;color:var(--ac)}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.review-grade{font-size:30px;color:var(--ac);font-family:var(--fd);font-weight:900;line-height:1}.gear-row{display:flex;gap:7px;margin-top:7px;overflow-x:auto}.gear-pill{flex-shrink:0;background:var(--bg);border:1px solid var(--bd);border-radius:999px;padding:6px 9px;font-size:10px;color:var(--mu)}.gear-pill strong{color:var(--tx)}.adv-map{display:flex;flex-direction:column;gap:8px;margin-top:12px}.adv-node{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:var(--sf);border:1px solid var(--bd);border-radius:16px;color:var(--tx);padding:12px;position:relative}.adv-node:before{content:'';position:absolute;left:27px;top:-10px;width:2px;height:10px;background:var(--bd)}.adv-node:first-child:before{display:none}.adv-node.boss{border-color:rgba(251,191,36,.45);background:linear-gradient(135deg,rgba(251,191,36,.10),var(--sf))}.adv-node.locked{opacity:.48}.adv-emoji{width:34px;height:34px;border-radius:12px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:18px;border:1px solid var(--bd)}.adv-main{flex:1}.adv-name{font-size:13px;font-weight:800}.adv-meta{font-size:10px;color:var(--mu);margin-top:2px}.adv-status{font-size:10px;color:var(--ac);font-weight:700}.boss-req{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.25);border-radius:14px;padding:10px;margin-top:9px}.boss-req-title{font-size:11px;font-weight:800;color:var(--xp);margin-bottom:5px}.boss-req-line{font-size:10px;color:var(--mu);margin:3px 0}.boss-req-line.ok{color:var(--ac)}.quest-card{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--bd);padding:9px 0}.quest-card:last-child{border-bottom:none}.quest-check{width:22px;height:22px;border-radius:50%;border:1px solid var(--bd2);display:flex;align-items:center;justify-content:center;color:var(--mu)}.quest-card.done .quest-check{background:var(--adim);border-color:var(--abr);color:var(--ac)}.quest-main{flex:1}.quest-name{font-size:12px;font-weight:700}.quest-sub{font-size:9px;color:var(--mu);margin-top:2px}.quest-xp{font-family:var(--fd);font-size:10px;color:var(--xp)}.complete-ov{position:fixed;inset:0;background:rgba(0,0,0,.86);z-index:700;display:none;align-items:flex-end;justify-content:center}.complete-ov.on{display:flex}.complete-box{background:var(--sf);border:1px solid var(--bd);border-radius:24px 24px 0 0;width:100%;max-width:430px;padding:20px 16px calc(22px + env(safe-area-inset-bottom))}.complete-title{font-size:22px;font-weight:900;margin-bottom:4px}.complete-sub{font-size:12px;color:var(--mu);margin-bottom:14px}.complete-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.complete-btn{width:100%;padding:13px;border-radius:14px;border:none;background:var(--ac);color:var(--bg);font-weight:900;font-family:var(--fb)}

/* ===== extracted from index.html ===== */

/* V6: true tab + true subpage navigation */
body.sub-open #nav{display:none!important;}
#nav .nb{font-size:8px;}
#nav .ni svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;display:block;}
.adventure-pg{padding:0 16px 18px;}
.adv-hero-card{background:linear-gradient(145deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:22px;padding:16px;margin:12px 0;box-shadow:var(--sh);}
.adv-hero-row{display:flex;align-items:center;gap:13px;}
.adv-big-avatar{width:58px;height:58px;border-radius:20px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:31px;}
.adv-kicker{font-size:9px;text-transform:uppercase;letter-spacing:1.1px;color:var(--mu);font-weight:800;}
.adv-title-main{font-size:18px;font-weight:950;letter-spacing:-.4px;color:var(--tx);}
.adv-sub-main{font-size:11px;color:var(--mu);margin-top:2px;line-height:1.35;}
.adv-stat-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:14px;}
.adv-stat{background:var(--bg);border:1px solid var(--bd);border-radius:15px;padding:10px;text-align:center;}
.adv-stat-val{font-family:var(--fd);font-size:16px;font-weight:900;color:var(--ac);}
.adv-stat-lbl{font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:.8px;margin-top:2px;}
.adv-zone-title{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);padding:8px 2px 8px;}
.adv-map-list{display:flex;flex-direction:column;gap:10px;}
.adv-map-node{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:var(--sf);border:1px solid var(--bd);border-radius:18px;padding:13px;color:var(--tx);font-family:var(--fb);cursor:pointer;}
.adv-map-node:active{transform:scale(.99);}
.adv-map-node.boss{border-color:rgba(251,191,36,.48);background:color-mix(in srgb,var(--sf) 88%,#fbbf24 12%);}
.adv-map-node.locked{opacity:.45;filter:grayscale(1);cursor:not-allowed;}
.adv-map-emoji{width:42px;height:42px;border-radius:15px;background:var(--bg);border:1px solid var(--bd);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;}
.adv-map-info{flex:1;min-width:0;}
.adv-map-name{font-size:14px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.adv-map-meta{font-size:10px;color:var(--mu);margin-top:3px;}
.adv-map-status{font-size:11px;font-weight:900;color:var(--ac);background:var(--adim);border:1px solid var(--abr);border-radius:999px;padding:7px 10px;}
.adv-map-node.locked .adv-map-status{color:var(--mu);background:var(--sf2);border-color:var(--bd2);}
.pg-slide{animation:pgSlide .22s ease both;}
@keyframes pgSlide{from{opacity:.5;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
.plan-ov,.aw-ov,.level-ov,.battle-ov,.info-ov,.bld-ov,.ai-ov{max-width:430px!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;width:100%!important;}
.plan-ov,.aw-ov{z-index:2200!important;background:var(--bg)!important;box-shadow:0 0 0 9999px rgba(0,0,0,.55);}
.plan-ov.on,.aw-ov.on{animation:subSlide .22s ease both;}
@keyframes subSlide{from{opacity:.75;transform:translateX(calc(-50% + 28px))!important}to{opacity:1;transform:translateX(-50%)!important}}
.plan-hdr,.aw-hdr{min-height:60px;}
.plan-back,.aw-back{font-size:26px!important;font-weight:500!important;}
.plan-start{z-index:2300!important;}
.sub-hint{font-size:11px;color:var(--mu);line-height:1.4;background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:10px 12px;margin-bottom:10px;}
#pg-workout .prog-card{cursor:default;}
#pg-adventure .hdr{background:var(--bg);}

/* ===== extracted from index.html ===== */

.gold-pill{display:inline-flex;align-items:center;gap:5px;background:rgba(251,191,36,.10);border:1px solid rgba(251,191,36,.35);color:var(--xp);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;font-family:var(--fd)}
.rpg-section{margin-top:12px}.rpg-head{display:flex;align-items:center;justify-content:space-between;margin:12px 2px 8px}.rpg-title{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;font-weight:900}.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shop-card,.bounty-card{background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px}.shop-name{font-size:12px;font-weight:900}.shop-sub,.bounty-sub{font-size:10px;color:var(--mu);line-height:1.35;margin-top:3px}.shop-btn,.bounty-btn{margin-top:9px;width:100%;padding:9px;border-radius:12px;border:1px solid var(--abr);background:var(--adim);color:var(--ac);font-family:var(--fb);font-weight:900;font-size:11px}.shop-btn:disabled,.bounty-btn:disabled{opacity:.45;color:var(--mu);border-color:var(--bd2);background:var(--sf2)}.bounty-list{display:flex;flex-direction:column;gap:8px}.bounty-card{display:flex;align-items:center;gap:10px}.bounty-main{flex:1}.bounty-name{font-size:12px;font-weight:900}.bounty-reward{font-family:var(--fd);font-size:11px;color:var(--xp);font-weight:900}.battle-reward .gold-pill{justify-content:center}.setup-card .tsw-dot{display:none}

/* ===== extracted from index.html ===== */

.rpg-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rpg-stat{background:var(--sf2);border:1px solid var(--bd2);border-radius:12px;padding:10px}
.rpg-stat-label{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px}
.rpg-stat-value{font-family:var(--fd);font-size:18px;font-weight:900;color:var(--ac);margin-top:3px}
.rpg-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--bd)}
.rpg-row:last-child{border-bottom:none}
.rpg-main{flex:1;min-width:0}
.rpg-name{font-size:13px;font-weight:850}
.rpg-sub{font-size:10px;color:var(--mu);line-height:1.35;margin-top:2px}
.rpg-pill{font-family:var(--fd);font-size:10px;color:var(--ac);background:var(--adim);border:1px solid var(--abr);border-radius:999px;padding:4px 8px;white-space:nowrap}
.rpg-buy{padding:7px 9px;border-radius:9px;border:1px solid var(--abr);background:var(--adim);color:var(--ac);font-family:var(--fb);font-size:10px;font-weight:900;cursor:pointer}
.rpg-buy:disabled{opacity:.4;cursor:not-allowed}

/* ===== extracted from index.html ===== */

/* V10 Adventure cleanup: fixed top tabs + centered battle modal */
#pg-adventure .hdr{position:sticky;top:0;z-index:30;background:var(--bg);}
.adventure-pg{padding:0 14px 18px;}
.adv-tabs{position:sticky;top:46px;z-index:25;background:var(--bg);display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:10px 0 12px;border-bottom:1px solid var(--bd);}
.adv-tab{padding:10px 6px;border-radius:14px;border:1px solid var(--bd2);background:var(--sf);color:var(--mu);font-family:var(--fb);font-size:11px;font-weight:850;cursor:pointer;}
.adv-tab.on{border-color:var(--abr);background:var(--adim);color:var(--ac);}
.adv-panel{padding-top:10px;}
.adv-card{background:var(--sf);border:1px solid var(--bd);border-radius:18px;padding:14px;margin-bottom:10px;}
.adv-hero-row{display:flex;align-items:center;gap:12px;}
.adv-big-avatar{width:48px;height:48px;border-radius:16px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:26px;}
.adv-kicker{font-size:10px;color:var(--ac);text-transform:uppercase;letter-spacing:1px;font-weight:900;}
.adv-title-main{font-size:18px;font-weight:950;line-height:1.1;margin-top:2px;}
.adv-sub-main{font-size:11px;color:var(--mu);line-height:1.35;margin-top:3px;}
.adv-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;}
.adv-stat{background:var(--bg);border:1px solid var(--bd);border-radius:13px;padding:10px;text-align:center;}
.adv-stat-val{font-family:var(--fd);font-size:18px;font-weight:900;color:var(--ac);}
.adv-stat-lbl{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;margin-top:2px;}
.adv-zone-title{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;font-weight:900;margin:14px 2px 8px;}
.adv-map-list{display:flex;flex-direction:column;gap:8px;}
.adv-map-node{width:100%;display:flex;align-items:center;gap:11px;text-align:left;background:var(--sf);border:1px solid var(--bd);border-radius:16px;color:var(--tx);padding:12px;font-family:var(--fb);cursor:pointer;}
.adv-map-node.boss{border-color:rgba(251,191,36,.5);background:linear-gradient(135deg,rgba(251,191,36,.10),var(--sf));}
.adv-map-node.locked{opacity:.42;cursor:not-allowed;}
.adv-map-emoji{width:38px;height:38px;border-radius:13px;background:var(--bg);border:1px solid var(--bd);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.adv-map-info{flex:1;min-width:0;}
.adv-map-name{font-size:13px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.adv-map-meta{font-size:10px;color:var(--mu);margin-top:3px;}
.adv-map-status{font-size:10px;color:var(--ac);font-weight:900;border:1px solid var(--abr);background:var(--adim);border-radius:999px;padding:5px 8px;}
.adv-simple-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--bd);padding:10px 0;}
.adv-simple-row:last-child{border-bottom:none;}
.adv-simple-main{flex:1;min-width:0;}
.adv-simple-name{font-size:13px;font-weight:900;}
.adv-simple-sub{font-size:10px;color:var(--mu);line-height:1.35;margin-top:2px;}
.adv-pill{font-family:var(--fd);font-size:10px;color:var(--ac);background:var(--adim);border:1px solid var(--abr);border-radius:999px;padding:5px 8px;white-space:nowrap;}
.battle-ov{align-items:center!important;justify-content:center!important;padding:16px!important;max-width:none!important;width:100vw!important;left:0!important;right:0!important;transform:none!important;margin:0!important;}
.battle-ov.on{display:flex!important;}
.battle-box{max-width:402px!important;width:100%!important;margin:auto!important;}
.level-ov{align-items:center!important;justify-content:center!important;padding:16px!important;max-width:none!important;width:100vw!important;left:0!important;right:0!important;transform:none!important;margin:0!important;}
.level-box{border-radius:20px!important;max-height:88vh!important;}

/* ===== extracted from index.html ===== */

/* V11 Adventure map + battle button reliability */
.adv-world{position:relative;min-height:650px;padding:18px 4px 28px;margin-top:8px;background:radial-gradient(circle at 50% 0%,var(--adim),transparent 34%),linear-gradient(180deg,var(--sf),var(--bg));border:1px solid var(--bd);border-radius:24px;overflow:hidden;}
.adv-world:before{content:'';position:absolute;left:50%;top:70px;bottom:70px;width:4px;transform:translateX(-50%);background:linear-gradient(180deg,var(--abr),var(--bd2));border-radius:99px;opacity:.55;}
.map-node-card{position:relative;width:46%;min-height:92px;margin:0 0 22px;padding:12px;border-radius:18px;border:1px solid var(--bd);background:rgba(26,26,29,.92);color:var(--tx);font-family:var(--fb);display:flex;flex-direction:column;gap:6px;cursor:pointer;text-align:left;box-shadow:0 14px 28px rgba(0,0,0,.18);}
.map-node-card:nth-child(odd){margin-left:4%;}
.map-node-card:nth-child(even){margin-left:50%;}
.map-node-card:after{content:'';position:absolute;top:34px;width:26px;height:3px;background:var(--bd2);}
.map-node-card:nth-child(odd):after{right:-26px;}.map-node-card:nth-child(even):after{left:-26px;}
.map-node-card.boss{border-color:rgba(251,191,36,.55);background:linear-gradient(135deg,rgba(251,191,36,.13),rgba(26,26,29,.94));}
.map-node-card.locked{opacity:.34;filter:grayscale(1);cursor:not-allowed;}
.map-node-top{display:flex;align-items:center;gap:9px;}
.map-node-icon{width:40px;height:40px;border-radius:14px;background:var(--bg);border:1px solid var(--bd2);display:flex;align-items:center;justify-content:center;font-size:22px;}
.map-node-title{font-size:13px;font-weight:950;line-height:1.1;}
.map-node-sub{font-size:10px;color:var(--mu);line-height:1.25;}
.map-node-action{align-self:flex-start;font-size:10px;font-weight:900;color:var(--ac);border:1px solid var(--abr);background:var(--adim);border-radius:999px;padding:5px 8px;}
.adv-shop-grid{display:grid;grid-template-columns:1fr;gap:9px;}
.adv-shop-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px;}
.adv-shop-name{font-size:13px;font-weight:900;}.adv-shop-sub{font-size:10px;color:var(--mu);line-height:1.35;margin-top:2px;}
.adv-buy{border:1px solid var(--abr);background:var(--adim);color:var(--ac);border-radius:12px;padding:9px 10px;font-family:var(--fb);font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap;}.adv-buy:disabled{opacity:.45;cursor:not-allowed;}
.battle-actions button{pointer-events:auto!important;position:relative;z-index:10;}
.battle-ov{position:fixed!important;inset:0!important;top:0!important;bottom:0!important;}

/* ===== extracted from index.html ===== */

/* Move Start Workout to the top of the workout-day review page */
  #ov-plan-detail .plan-sc{padding-bottom:18px!important;}
  #ov-plan-detail .plan-start{
    position:static!important;
    left:auto!important;right:auto!important;bottom:auto!important;
    display:block!important;width:100%!important;max-width:none!important;
    margin:0 0 12px 0!important;padding:14px!important;
    border:none!important;border-radius:16px!important;background:var(--ac)!important;
    color:var(--bg)!important;font-family:var(--fb)!important;font-weight:950!important;font-size:15px!important;
    box-shadow:none!important;
  }
  #ov-plan-detail .sub-hint{display:none!important;}
  .how-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 10px;}
  .how-tab{padding:10px;border-radius:13px;border:1px solid var(--bd2);background:var(--sf2);color:var(--mu);font-family:var(--fb);font-size:12px;font-weight:900;cursor:pointer;}
  .how-tab.on{background:var(--adim);border-color:var(--abr);color:var(--ac);}
  .api-demo-card{background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:10px;margin-bottom:10px;}
  .api-demo-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
  .api-demo-title{font-size:12px;font-weight:900;color:var(--tx);}
  .api-demo-badge{font-size:9px;color:var(--ac);background:var(--adim);border:1px solid var(--abr);border-radius:999px;padding:4px 8px;font-weight:900;white-space:nowrap;}
  .api-demo-msg{font-size:11px;color:var(--mu);line-height:1.45;margin-top:8px;}
  .api-demo-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px;}
  .api-demo-actions a,.api-demo-actions button{display:block;text-align:center;text-decoration:none;padding:10px;border-radius:12px;border:1px solid var(--bd2);background:var(--sf2);color:var(--tx);font-family:var(--fb);font-size:11px;font-weight:900;cursor:pointer;}
  .api-demo-actions a.primary,.api-demo-actions button.primary{background:var(--adim);border-color:var(--abr);color:var(--ac);}
  .ex-media img{object-fit:contain!important;background:var(--bg);}

/* ===== extracted from index.html ===== */

#pg-rpg, .nb[data-page="rpg"]{display:none!important;}
  .battle-actions{position:relative;z-index:30;pointer-events:auto!important;}
  .battle-actions button{pointer-events:auto!important;touch-action:manipulation;position:relative;z-index:31;}
  .battle-actions.fighting .battle-attack,
  .battle-actions.fighting .battle-block,
  .battle-actions.fighting .battle-jump,
  .battle-actions.fighting .battle-close{display:block!important;}


/* ===== ApexHealth battle sprite + floating combat text update ===== */
.fighter .sprite{width:78px;height:78px;margin:0 auto;display:flex;align-items:center;justify-content:center;position:relative;font-size:0;}
.fighter .sprite img.battle-sprite-img{width:78px;height:78px;display:block;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 10px 10px rgba(0,0,0,.42));}
.enemy.boss .sprite{width:92px;height:92px;}
.enemy.boss .sprite img.battle-sprite-img{width:92px;height:92px;}
.battle-fallback-emoji{display:none;font-size:52px;line-height:1;}
.sprite.sprite-fallback img.battle-sprite-img{display:none;}
.sprite.sprite-fallback .battle-fallback-emoji{display:block;}
.floating-combat-text{position:absolute;left:50%;top:22%;transform:translate(-50%,-50%);font-family:var(--fd);font-size:18px;font-weight:900;letter-spacing:.3px;color:#ef4444;text-shadow:0 2px 0 #000,0 0 10px rgba(239,68,68,.45);pointer-events:none;z-index:8;animation:floatCombatText .92s ease-out forwards;white-space:nowrap;}
.floating-combat-text.good{color:#22c55e;text-shadow:0 2px 0 #000,0 0 10px rgba(34,197,94,.45);}
.floating-combat-text.block{color:#60a5fa;text-shadow:0 2px 0 #000,0 0 10px rgba(96,165,250,.45);}
.floating-combat-text.crit{color:#fbbf24;text-shadow:0 2px 0 #000,0 0 12px rgba(251,191,36,.55);font-size:20px;}
@keyframes floatCombatText{0%{opacity:0;transform:translate(-50%,-10%) scale(.78)}14%{opacity:1;transform:translate(-50%,-42%) scale(1.18)}100%{opacity:0;transform:translate(-50%,-132%) scale(1)}}
.battle-arena::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 100%,var(--adim),transparent 56%);pointer-events:none;}

/* V3 fantasy shop polish */
.adv-shop-item{position:relative;}
.adv-shop-icon{width:38px;height:38px;border-radius:12px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;box-shadow:0 0 18px rgba(0,0,0,.12)}
.adv-shop-main{flex:1;min-width:0;}
.adv-buy{white-space:nowrap;}

/* ===== ApexHealth v4: Stats + Leaderboard polish ===== */
#nav{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;justify-content:flex-start;}
#nav::-webkit-scrollbar{display:none;}
#nav .nb{min-width:52px;font-size:8px;padding-left:1px;padding-right:1px;}
#nav .ni{font-size:18px;display:flex;align-items:center;justify-content:center;}
.stats-pg,.leaderboard-pg{padding:0 14px 16px;}
.stats-hero,.leader-hero{background:linear-gradient(135deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:16px;padding:14px;margin:12px 0 10px;box-shadow:var(--sh);}
.stats-title,.leader-title{font-size:18px;font-weight:900;color:var(--tx);margin-bottom:4px;}
.stats-sub,.leader-sub{font-size:11px;color:var(--mu);line-height:1.45;}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
.stat-tile{background:var(--sf);border:1px solid var(--bd);border-radius:13px;padding:12px;min-height:78px;}
.stat-tile.big{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.stat-tile-label{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:5px;}
.stat-tile-value{font-family:var(--fd);font-size:22px;font-weight:900;color:var(--ac);line-height:1;}
.stat-tile-sub{font-size:10px;color:var(--mu);margin-top:5px;line-height:1.35;}
.body-stat-card{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:12px;margin-bottom:9px;}
.body-stat-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.body-stat-name{font-size:12px;font-weight:800;}
.body-stat-current{font-family:var(--fd);font-size:18px;color:var(--ac);font-weight:900;}
.body-stat-input-row{display:grid;grid-template-columns:1fr auto;gap:8px;}
.body-stat-input{background:var(--sf2);border:1px solid var(--bd2);border-radius:10px;color:var(--tx);font-family:var(--fd);font-size:12px;padding:10px;outline:none;min-width:0;}
.body-stat-input:focus{border-color:var(--ac);}
.body-stat-save{background:var(--adim);border:1px solid var(--abr);border-radius:10px;color:var(--ac);font-family:var(--fb);font-size:12px;font-weight:900;padding:0 13px;cursor:pointer;}
.stats-section-title{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);margin:14px 0 7px;}
.pr-list{display:flex;flex-direction:column;gap:7px;}
.pr-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:10px;}
.pr-row-main{min-width:0;}
.pr-row-name{font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pr-row-sub{font-size:10px;color:var(--mu);margin-top:2px;}
.pr-row-val{font-family:var(--fd);font-size:13px;color:var(--ac);font-weight:900;white-space:nowrap;}
.leader-tabs{display:flex;gap:7px;margin:10px 0;}
.leader-tab{flex:1;padding:9px;background:var(--sf);border:1px solid var(--bd);border-radius:11px;color:var(--mu);font-family:var(--fb);font-size:11px;font-weight:900;cursor:pointer;}
.leader-tab.on{background:var(--adim);border-color:var(--abr);color:var(--ac);}
.leader-list{display:flex;flex-direction:column;gap:7px;}
.leader-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;background:var(--sf);border:1px solid var(--bd);border-radius:13px;padding:10px;}
.leader-rank{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--sf2);border:1px solid var(--bd2);font-family:var(--fd);font-size:11px;font-weight:900;color:var(--mu);}
.leader-row.me{border-color:var(--abr);background:var(--adim);}
.leader-row:nth-child(1) .leader-rank{background:rgba(251,191,36,.16);border-color:rgba(251,191,36,.45);color:var(--xp);}
.leader-name{font-size:12px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.leader-meta{font-size:10px;color:var(--mu);margin-top:2px;}
.leader-score{font-family:var(--fd);font-size:14px;color:var(--ac);font-weight:900;text-align:right;}
.leader-sync{width:100%;padding:11px;background:var(--ac);border:none;color:var(--bg);border-radius:12px;font-family:var(--fb);font-size:12px;font-weight:900;cursor:pointer;margin:10px 0 8px;}
.leader-note{font-size:10px;color:var(--mu);text-align:center;line-height:1.4;margin-bottom:10px;}
#pg-settings .stat-grid{grid-template-columns:1fr;}
#pg-settings .stat-c{display:none;}
#pg-settings .s-lbl:nth-of-type(3){display:none;}

/* ApexHealth v5 fantasy icon polish */
#nav{padding-top:5px;}
.nb{font-size:8px;gap:3px;padding:7px 1px 6px;letter-spacing:.1px;}
.ni{width:19px;height:19px;display:flex;align-items:center;justify-content:center;color:currentColor;}
.ni svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.nb.on .ni{filter:drop-shadow(0 0 7px var(--ac));}
.nb.on .ni svg{filter:none;}
.setup-ico svg,.adv-shop-icon svg,.stats-rune svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.setup-ico svg{width:32px;height:32px;}
.fantasy-portrait{width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--adim);border:1px solid var(--abr);margin:0 auto 8px;overflow:hidden;}
.fantasy-portrait img{width:100%;height:100%;object-fit:contain;padding:5px;}
.xp-av img,.adv-big-avatar img,.level-avatar img{width:100%;height:100%;object-fit:contain;padding:4px;display:block;}
.xp-av,.adv-big-avatar,.level-avatar{overflow:hidden;}
.stat-tile-art{font-size:0;color:var(--ac);display:flex;align-items:center;justify-content:center;}
.stat-tile-art svg{width:36px;height:36px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.leader-name .mini-class-icon{display:inline-flex;width:16px;height:16px;vertical-align:-3px;margin-right:5px;color:var(--ac);}
.mini-class-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
@media(max-width:390px){.nb{font-size:7px}.ni,.ni svg{width:17px;height:17px}.theme-row{grid-template-columns:repeat(3,1fr)}.tsw{height:76px;}}

/* TRAINING AUTOPILOT V6 */
.autopilot-pg{padding-top:10px;}
.training-hero{background:linear-gradient(180deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:20px;padding:16px;margin-bottom:10px;box-shadow:var(--sh);position:relative;overflow:hidden;}
.training-hero:before{content:'';position:absolute;inset:auto -40px -60px auto;width:160px;height:160px;border-radius:50%;background:var(--adim);filter:blur(8px);opacity:.9;}
.training-kicker{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:5px;position:relative;}
.training-title{font-size:22px;font-weight:900;line-height:1.05;margin-bottom:6px;position:relative;}
.training-sub{font-size:12px;color:var(--mu);line-height:1.35;margin-bottom:14px;position:relative;}
.training-start{width:100%;padding:15px;border:none;border-radius:14px;background:var(--ac);color:var(--bg);font-family:var(--fb);font-size:14px;font-weight:900;cursor:pointer;position:relative;}
.training-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:10px;}
.training-stat{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:10px;text-align:center;}
.training-stat strong{display:block;font-family:var(--fd);font-size:16px;color:var(--ac);line-height:1.1;}
.training-stat span{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.8px;}
.training-next{background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px;margin-bottom:10px;}
.training-next-title{font-size:12px;font-weight:900;margin-bottom:8px;display:flex;justify-content:space-between;gap:8px;}
.training-next-title span{font-size:10px;color:var(--mu);font-weight:700;}
.training-ex-mini{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px solid var(--bd);}
.training-ex-mini:first-of-type{border-top:none;}
.training-ex-dot{width:28px;height:28px;border-radius:10px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;color:var(--ac);font-size:12px;}
.training-ex-name{font-size:12px;font-weight:800;}
.training-ex-meta{font-size:10px;color:var(--mu);margin-top:1px;}
.training-secondary{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:2px;}
.training-ghost{padding:10px;background:var(--sf);border:1px solid var(--bd);border-radius:12px;color:var(--mu);font-family:var(--fb);font-size:11px;font-weight:800;cursor:pointer;}
.empty-training{background:var(--sf);border:1px dashed var(--bd2);border-radius:18px;padding:18px;text-align:center;color:var(--mu);font-size:12px;line-height:1.45;}
.empty-training button{margin-top:12px;width:100%;padding:12px;background:var(--ac);color:var(--bg);border:none;border-radius:12px;font-weight:900;font-family:var(--fb);}
.autopilot-aw-hdr{gap:8px;}
.aw-mini{width:36px;height:36px;border-radius:12px;background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);font-size:25px;line-height:1;cursor:pointer;}
.aw-head-main{flex:1;min-width:0;text-align:center;}
.aw-progress-top{padding:12px;background:var(--sf);border:1px solid var(--bd);border-radius:16px;margin-bottom:12px;}
.aw-progress-label{display:flex;justify-content:space-between;color:var(--mu);font-size:10px;text-transform:uppercase;letter-spacing:.8px;margin-bottom:7px;}
.aw-progress-bg{height:7px;background:var(--bd);border-radius:999px;overflow:hidden;}
.aw-progress-fill{height:100%;background:var(--ac);border-radius:999px;transition:width .25s ease;}
.coach-card{background:linear-gradient(180deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:20px;padding:15px;margin-bottom:12px;}
.coach-exercise{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.coach-icon{width:54px;height:54px;border-radius:18px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;color:var(--ac);flex-shrink:0;}
.coach-icon svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.coach-name{font-size:20px;font-weight:950;line-height:1.05;}
.coach-note{font-size:11px;color:var(--mu);line-height:1.35;margin-top:4px;}
.coach-target{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;}
.coach-pill{background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:10px;}
.coach-pill span{display:block;font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;}
.coach-pill strong{font-family:var(--fd);font-size:16px;color:var(--ac);}
.set-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.autoset{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:9px;}
.autoset.done{border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.08);}
.autoset-num{width:30px;height:30px;border-radius:10px;background:var(--sf2);display:flex;align-items:center;justify-content:center;color:var(--mu);font-family:var(--fd);font-size:11px;font-weight:900;}
.autoset-main{font-family:var(--fd);font-size:15px;font-weight:900;}
.autoset-main small{display:block;font-family:var(--fb);font-size:9px;color:var(--mu);font-weight:600;margin-top:2px;}
.autoset-check{width:38px;height:38px;border-radius:12px;border:none;background:var(--ac);color:var(--bg);font-size:18px;font-weight:900;cursor:pointer;}
.autoset.done .autoset-check{background:var(--grn);color:#06130a;}
.adjust-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;}
.adjust-btn,.swap-btn,.next-btn{padding:12px;border-radius:13px;font-family:var(--fb);font-size:12px;font-weight:900;cursor:pointer;}
.adjust-btn{background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);}
.swap-btn{width:100%;background:transparent;border:1px solid var(--bd2);color:var(--mu);margin-bottom:8px;}
.next-btn{width:100%;background:var(--ac);border:none;color:var(--bg);}
.next-btn:disabled{opacity:.45;}
.swap-inline{display:grid;grid-template-columns:1fr;gap:7px;margin-top:10px;}
.swap-chip{padding:10px;background:var(--sf2);border:1px solid var(--bd2);border-radius:12px;color:var(--tx);text-align:left;font-family:var(--fb);font-size:12px;font-weight:800;}
.sum-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.86);z-index:800;align-items:center;justify-content:center;padding:18px;}
.sum-ov.on{display:flex;}
.sum-box{width:100%;max-width:390px;background:var(--sf);border:1px solid var(--bd);border-radius:22px;padding:18px;text-align:center;box-shadow:0 16px 50px rgba(0,0,0,.45);}
.sum-kicker{font-size:10px;color:var(--xp);text-transform:uppercase;letter-spacing:1.2px;font-weight:900;margin-bottom:4px;}
.sum-title{font-size:24px;font-weight:950;margin-bottom:12px;}
.sum-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:12px;}
.sum-stat{background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:10px 4px;}
.sum-stat strong{display:block;font-family:var(--fd);font-size:15px;color:var(--ac);}
.sum-stat span{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;}
.sum-wins{text-align:left;background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:10px;margin-bottom:12px;color:var(--tx);font-size:12px;line-height:1.55;}
.sum-leave{width:100%;padding:13px;background:var(--ac);color:var(--bg);border:none;border-radius:14px;font-family:var(--fb);font-weight:950;font-size:14px;}
.sum-cal-est{display:flex;align-items:center;gap:10px;background:rgba(249,115,22,.08);border:1px solid rgba(249,115,22,.2);border-radius:13px;padding:10px 12px;margin-bottom:12px;}
.sum-cal-icon{font-size:22px;flex-shrink:0;}
.sum-cal-num{font-family:var(--fd);font-size:17px;font-weight:800;color:#f97316;}
.sum-cal-note{font-size:10px;color:var(--mu);margin-top:2px;}

/* TRAINING SUBTABS — segmented control, matches Nutrition */
.training-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:4px;background:var(--sf);border:1px solid var(--bd);border-radius:14px;margin:12px 0;position:sticky;top:49px;z-index:19;}
.training-tab{padding:10px 4px;border-radius:11px;border:none;background:transparent;color:var(--mu);font-family:var(--fb);font-size:11px;font-weight:800;cursor:pointer;text-align:center;}
.training-tab.on{background:var(--adim);color:var(--ac);}
.training-panel{display:none;}
.training-panel.on{display:block;}
.training-section-title{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);padding:3px 2px 8px;}
.workout-choice{background:var(--sf);border:1px solid var(--bd);border-radius:18px;padding:13px;margin-bottom:9px;position:relative;overflow:hidden;}
.workout-choice.recommended{border-color:var(--abr);background:linear-gradient(180deg,var(--sf),var(--adim));}
.workout-choice-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px;}
.workout-choice-title{font-size:18px;font-weight:950;line-height:1.05;}
.workout-choice-sub{font-size:11px;color:var(--mu);line-height:1.35;margin-top:4px;}
.recommended-pill{font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:var(--ac);background:var(--adim);border:1px solid var(--abr);border-radius:999px;padding:5px 8px;font-weight:900;white-space:nowrap;}
.workout-choice-actions{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-top:11px;}
.workout-choice-start{padding:12px;border:none;border-radius:13px;background:var(--ac);color:var(--bg);font-family:var(--fb);font-size:12px;font-weight:950;cursor:pointer;}
.workout-choice-preview{padding:12px 13px;border-radius:13px;background:var(--sf2);border:1px solid var(--bd2);color:var(--mu);font-family:var(--fb);font-size:12px;font-weight:900;cursor:pointer;}
.training-current-plan{background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px;margin-bottom:10px;}
.training-current-plan strong{display:block;font-size:13px;margin-bottom:3px;}
.training-current-plan span{font-size:11px;color:var(--mu);}
.training-mini-exercises{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}
.training-mini-chip{font-size:9px;color:var(--wo);background:rgba(167,139,250,.1);border:1px solid rgba(167,139,250,.2);border-radius:999px;padding:3px 7px;}
.records-empty,.history-empty{background:var(--sf);border:1px dashed var(--bd2);border-radius:16px;padding:18px;text-align:center;color:var(--mu);font-size:12px;line-height:1.45;}
.record-card{background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px;margin-bottom:8px;cursor:pointer;transition:border-color .15s;}
.record-card:active{transform:scale(.99);}
.record-card-hint{font-size:10px;color:var(--mu);margin-top:4px;}
.ex-hist-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:600;align-items:flex-end;justify-content:center;}
.ex-hist-ov.on{display:flex;}
.ex-hist-box{width:100%;max-width:430px;background:var(--bg);border-radius:20px 20px 0 0;max-height:82vh;display:flex;flex-direction:column;}
.ex-hist-sc{overflow-y:auto;padding:0 16px calc(24px + env(safe-area-inset-bottom));flex:1;}
.ex-hist-graph{width:100%;overflow:visible;}
.ex-hist-graph-wrap{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:12px;margin-bottom:14px;}
.ex-hist-graph-label{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;}
.ex-hist-session{background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:10px 12px;margin-bottom:8px;}
.ex-hist-date{font-size:11px;color:var(--mu);margin-bottom:3px;}
.ex-hist-sets{font-size:13px;font-weight:700;color:var(--tx);line-height:1.6;}
.record-title{font-size:13px;font-weight:900;margin-bottom:3px;}
.record-value{font-family:var(--fd);font-size:20px;color:var(--ac);font-weight:900;}
.record-meta{font-size:10px;color:var(--mu);margin-top:2px;}

/* Training plan folders V8 */
.plan-folder{background:var(--sf);border:1px solid var(--bd);border-radius:18px;margin-bottom:10px;overflow:hidden;}
.plan-folder.active{border-color:var(--abr);background:linear-gradient(180deg,var(--sf),var(--adim));}
.plan-folder-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:transparent;border:none;color:var(--tx);font-family:var(--fb);text-align:left;cursor:pointer;}
.plan-folder-head span{color:var(--mu);font-size:17px;transition:transform .18s ease;}
.plan-folder.open .plan-folder-head span{transform:rotate(180deg);}
.plan-folder-title{font-size:16px;font-weight:950;line-height:1.05;}
.plan-folder-sub{font-size:11px;color:var(--mu);margin-top:4px;}
.plan-folder-body{display:none;border-top:1px solid var(--bd);padding:10px;}
.plan-folder.open .plan-folder-body{display:block;}
.plan-folder-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:9px;}
.plan-folder-actions button{padding:10px;border-radius:12px;background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);font-family:var(--fb);font-size:11px;font-weight:900;cursor:pointer;}
.plan-folder-actions button:first-child{background:var(--adim);border-color:var(--abr);color:var(--ac);}
.plan-day-detail{background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:11px;margin-bottom:8px;}
.plan-day-detail strong{display:block;font-size:13px;margin-bottom:3px;}
.plan-day-detail span{font-size:10px;color:var(--mu);}

/* AI plan preview + plan delete V9 */
.ai-box{max-height:92vh;}
.ai-sc{padding-bottom:18px;}
.ai-output-v9{padding-bottom:10px;}
.ai-plan-hero{position:sticky;top:0;z-index:3;background:linear-gradient(180deg,var(--sf),rgba(21,16,36,.96));border:1px solid var(--abr);border-radius:16px;padding:13px;margin:12px 0 10px;box-shadow:0 12px 28px rgba(0,0,0,.22);}
.ai-plan-hero-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px;}
.ai-plan-name{font-size:17px;font-weight:950;line-height:1.08;color:var(--tx);}
.ai-plan-meta{font-size:11px;color:var(--mu);line-height:1.35;margin-top:4px;}
.ai-plan-badge{font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:var(--ac);background:var(--adim);border:1px solid var(--abr);border-radius:999px;padding:5px 8px;font-weight:950;white-space:nowrap;}
.ai-plan-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:10px;}
.ai-plan-stat{background:var(--bg);border:1px solid var(--bd);border-radius:12px;padding:8px;text-align:center;}
.ai-plan-stat strong{display:block;font-family:var(--fd);font-size:13px;color:var(--ac);}
.ai-plan-stat span{display:block;font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;margin-top:2px;}
.ai-save-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;}
.ai-save-primary{padding:12px;border:none;border-radius:13px;background:var(--ac);color:var(--bg);font-family:var(--fb);font-size:13px;font-weight:950;cursor:pointer;}
.ai-save-secondary{padding:12px;border-radius:13px;background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);font-family:var(--fb);font-size:12px;font-weight:900;cursor:pointer;}
.ai-day-compact{background:var(--sf);border:1px solid var(--bd);border-radius:16px;margin-bottom:9px;overflow:hidden;}
.ai-day-compact.open{border-color:var(--abr);}
.ai-day-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:9px;background:transparent;border:none;color:var(--tx);padding:12px;font-family:var(--fb);text-align:left;cursor:pointer;}
.ai-day-head-main strong{display:block;font-size:14px;color:var(--ac);margin-bottom:3px;}
.ai-day-head-main span{font-size:10px;color:var(--mu);line-height:1.25;}
.ai-day-chevron{font-size:16px;color:var(--mu);transition:transform .18s ease;}
.ai-day-compact.open .ai-day-chevron{transform:rotate(180deg);}
.ai-day-body{display:none;border-top:1px solid var(--bd);padding:2px 12px 10px;}
.ai-day-compact.open .ai-day-body{display:block;}
.ai-ex-compact{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--bd);}
.ai-ex-compact:last-child{border-bottom:none;}
.ai-ex-compact-name{font-size:12px;font-weight:900;}
.ai-ex-compact-note{font-size:9px;color:var(--mu);line-height:1.25;margin-top:2px;}
.ai-bottom-save{margin-top:10px;}
.plan-folder-actions{grid-template-columns:1fr 1fr 1fr;}
.plan-folder-actions button.plan-delete{border-color:rgba(239,68,68,.42);background:rgba(239,68,68,.08);color:#ef4444;}
.plan-folder-actions button.plan-delete:first-child{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.42);color:#ef4444;}
@media(max-width:380px){.plan-folder-actions{grid-template-columns:1fr}.ai-save-row{grid-template-columns:1fr}.ai-save-secondary{display:none}}

/* AI plan preview V10 - polished coach card */
.ai-box{max-height:94vh;overflow:hidden;}
.ai-sc{padding-bottom:0;}
.ai-output-v10{padding:0 0 76px;}
.ai-coach-hero{background:linear-gradient(180deg,var(--sf2),var(--sf));border:1px solid var(--abr);border-radius:18px;padding:15px;margin:12px 0 12px;box-shadow:0 16px 34px rgba(0,0,0,.26);}
.ai-coach-kicker{font-size:9px;text-transform:uppercase;letter-spacing:1.15px;color:var(--ac);font-weight:950;margin-bottom:7px;}
.ai-coach-title{font-size:20px;font-weight:950;line-height:1.05;color:var(--tx);margin-bottom:7px;}
.ai-coach-desc{font-size:11px;color:var(--mu);line-height:1.45;margin-bottom:12px;}
.ai-coach-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;}
.ai-coach-stat{background:var(--bg);border:1px solid var(--bd);border-radius:13px;padding:9px 5px;text-align:center;}
.ai-coach-stat strong{display:block;font-family:var(--fd);font-size:14px;color:var(--ac);line-height:1;}
.ai-coach-stat span{display:block;font-size:7.5px;color:var(--mu);text-transform:uppercase;letter-spacing:.55px;margin-top:4px;white-space:nowrap;}
.ai-program-day{background:var(--sf);border:1px solid var(--bd);border-radius:18px;margin-bottom:10px;overflow:hidden;}
.ai-program-day.open{border-color:var(--abr);box-shadow:0 10px 28px rgba(0,0,0,.18);}
.ai-program-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:transparent;border:0;color:var(--tx);font-family:var(--fb);padding:13px;cursor:pointer;text-align:left;}
.ai-day-left{display:flex;align-items:center;gap:10px;min-width:0;}
.ai-day-num{width:43px;height:43px;border-radius:14px;background:var(--adim);border:1px solid var(--abr);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;}
.ai-day-num span{font-size:7px;color:var(--mu);font-weight:950;text-transform:uppercase;letter-spacing:.7px;line-height:1;}
.ai-day-num strong{font-family:var(--fd);font-size:15px;color:var(--ac);line-height:1.05;margin-top:2px;}
.ai-day-copy{min-width:0;}
.ai-day-name{font-size:15px;font-weight:950;line-height:1.1;margin-bottom:4px;}
.ai-day-summary{font-size:10px;color:var(--mu);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px;}
.ai-program-toggle{font-size:12px;color:var(--mu);font-weight:950;transition:transform .18s ease;}
.ai-program-day.open .ai-program-toggle{transform:rotate(180deg);}
.ai-program-body{display:none;border-top:1px solid var(--bd);padding:10px;}
.ai-program-day.open .ai-program-body{display:block;}
.ai-ex-card-v10{background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:10px;margin-bottom:8px;}
.ai-ex-card-v10:last-child{margin-bottom:0;}
.ai-ex-row-v10{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;}
.ai-ex-name-v10{font-size:13px;font-weight:950;line-height:1.15;}
.ai-ex-meta-v10{font-size:10px;color:var(--wo);margin-top:4px;font-weight:800;}
.ai-ex-note-v10{font-size:9.5px;color:var(--mu);line-height:1.35;margin-top:7px;}
.ai-ex-set-badge{background:var(--sf2);border:1px solid var(--bd2);border-radius:999px;color:var(--ac);font-family:var(--fd);font-size:10px;font-weight:900;padding:5px 8px;white-space:nowrap;}
.ai-sticky-actions{position:sticky;bottom:0;z-index:5;background:linear-gradient(180deg,rgba(21,16,36,.1),var(--sf) 32%);border-top:1px solid var(--bd);padding:12px 0 calc(12px + env(safe-area-inset-bottom));display:grid;grid-template-columns:auto 1fr;gap:8px;}
.ai-action-secondary{padding:12px 14px;border-radius:13px;background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);font-family:var(--fb);font-size:12px;font-weight:950;cursor:pointer;}
.ai-action-primary{padding:12px 14px;border-radius:13px;background:var(--ac);border:none;color:var(--bg);font-family:var(--fb);font-size:13px;font-weight:950;cursor:pointer;}
@media(max-width:380px){.ai-coach-stats{grid-template-columns:repeat(2,1fr)}.ai-day-summary{max-width:190px}.ai-sticky-actions{grid-template-columns:1fr}.ai-action-secondary{display:none}}

/* Training Plans V11 - single current plan layout */
.plans-section-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);margin:12px 0 7px;font-weight:800;}
.plans-section-label.saved{margin-top:16px;}
.plan-current-disabled{opacity:.8;cursor:default;background:var(--adim)!important;border-color:var(--abr)!important;color:var(--ac)!important;}
.plan-folder.active{border-color:var(--abr);box-shadow:0 0 0 1px var(--abr), var(--sh);}
.plan-folder.active .plan-folder-title{color:var(--ac);}

/* Training logger v7: real set logging + PR estimate polish */
.aw-pr-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 12px;}
.aw-pr-box{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:10px;min-width:0;}
.aw-pr-box span{display:block;font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.aw-pr-box strong{display:block;font-family:var(--fd);font-size:14px;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.aw-pr-box.live{background:var(--adim);border-color:var(--abr);}
.aw-pr-box.live strong{color:var(--ac);}
.aw-set-head,.aw-set-line{grid-template-columns:34px 74px minmax(0,1fr) minmax(0,1fr) 42px!important;}
.aw-set-head{padding-left:2px!important;padding-right:2px!important;}
.aw-set-line{padding:9px 8px!important;align-items:center!important;}
.aw-set-box input{width:100%!important;padding:10px 8px!important;text-align:center!important;font-size:18px!important;color:var(--tx)!important;background:var(--bg)!important;border:1px solid var(--bd2)!important;border-radius:12px!important;}
.aw-set-box input:focus{border-color:var(--ac)!important;box-shadow:0 0 0 2px var(--adim)!important;}
.aw-target{font-size:8px!important;text-align:center!important;text-transform:uppercase!important;letter-spacing:.6px!important;color:var(--mu)!important;margin-top:3px!important;}
.aw-prev-cell{font-family:var(--fd);font-size:11px;color:var(--mu);line-height:1.1;text-align:center;}
.aw-prev-label{font-family:var(--fb);font-size:8px;text-transform:uppercase;letter-spacing:.6px;color:var(--mu2);margin-top:3px;}
.aw-check{background:var(--sf2)!important;border:1px solid var(--bd2)!important;border-radius:14px!important;color:var(--mu)!important;font-weight:900!important;}
.aw-check.dn{background:var(--ac)!important;border-color:var(--ac)!important;color:var(--bg)!important;}
.aw-addset{border-radius:14px!important;background:var(--sf)!important;border:1px dashed var(--bd2)!important;color:var(--ac)!important;font-weight:800!important;}
.aw-detail-title{align-items:flex-start!important;}
.aw-detail-title h2{font-size:22px!important;}
.aw-timer-pill{font-weight:800!important;}

/* ApexHealth Training Live Logger V8 */
#ov-aw.aw-ov{position:fixed!important;inset:0!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;width:100%!important;max-width:430px!important;height:100dvh!important;display:none;flex-direction:column!important;z-index:5000!important;background:var(--bg)!important;box-shadow:0 0 0 9999px rgba(0,0,0,.72)!important;}
#ov-aw.aw-ov.on{display:flex!important;}
#aw-scroll.aw-sc{flex:1!important;overflow-y:auto!important;padding:12px 12px calc(22px + env(safe-area-inset-bottom))!important;}
.live-card{margin-bottom:0!important;}
.live-pr-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0;}
.live-pr-row>div{background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:10px 8px;min-width:0;}
.live-pr-row span,.last-line span{display:block;font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px;}
.live-pr-row strong{display:block;font-family:var(--fd);font-size:12px;color:var(--ac);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.last-line{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:10px;margin-bottom:12px;}
.last-line strong{font-size:11px;color:var(--tx);text-align:right;line-height:1.25;}
.set-input-head{display:grid;grid-template-columns:38px 1fr 1fr 44px 34px;gap:8px;color:var(--mu);font-size:9px;text-transform:uppercase;letter-spacing:.7px;padding:0 4px 7px;}
.live-set-row{display:grid;grid-template-columns:38px 1fr 1fr 44px 34px;gap:8px;align-items:center;background:var(--bg);border:1px solid var(--bd);border-radius:16px;padding:9px;margin-bottom:8px;}
.live-set-row.done{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.06);}
.live-set-num{width:28px;height:28px;border-radius:11px;background:var(--sf2);border:1px solid var(--bd2);display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:11px;font-weight:900;color:var(--mu);}
.live-set-row input{width:100%;min-width:0;background:var(--sf);border:1px solid var(--bd2);border-radius:12px;color:var(--tx);font-family:var(--fd);font-size:15px;font-weight:900;text-align:center;padding:11px 6px;outline:none;}
.live-set-row input:focus{border-color:var(--ac);box-shadow:0 0 0 3px var(--adim);}
.live-check{width:40px;height:40px;border-radius:14px;border:none;background:var(--ac);color:var(--bg);font-size:20px;font-weight:900;cursor:pointer;}
.live-check.dn{background:rgba(34,197,94,.18);border:1px solid rgba(34,197,94,.45);color:var(--grn);}
.live-add{padding:12px!important;margin:4px 0 11px!important;}
.live-nav-row{display:grid;grid-template-columns:1fr 1.35fr;gap:8px;margin-top:10px;}
.live-nav-row button{padding:13px;border-radius:14px;font-family:var(--fb);font-weight:900;cursor:pointer;}
.live-nav-row .aw-secondary{background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);}
.live-nav-row .aw-primary{background:var(--ac);border:none;color:var(--bg);}
.swap-inline{display:flex;flex-direction:column;gap:7px;margin:8px 0;}
.swap-chip{width:100%;text-align:left;background:var(--bg);border:1px solid var(--bd);border-radius:13px;color:var(--tx);padding:10px 12px;font-family:var(--fb);font-weight:800;}
.swap-chip span{color:var(--mu);font-weight:700;}
@media(max-width:380px){.live-pr-row{grid-template-columns:1fr}.set-input-head,.live-set-row{grid-template-columns:32px 1fr 1fr 40px 30px;gap:6px}.live-set-row input{font-size:13px;padding:10px 4px}}

/* Training V9 live workout polish */
.aw-jump-nav{display:flex;gap:8px;overflow-x:auto;padding:0 2px 12px;margin-top:-2px;scrollbar-width:none}.aw-jump-nav::-webkit-scrollbar{display:none}.aw-jump{flex:0 0 auto;display:flex;align-items:center;gap:7px;max-width:150px;padding:8px 11px;border:1px solid var(--bd2);border-radius:14px;background:var(--sf);color:var(--mu);font-family:var(--fb);cursor:pointer}.aw-jump span{width:22px;height:22px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--sf2);font-size:10px;font-weight:900;color:var(--mu)}.aw-jump strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aw-jump.on{border-color:var(--abr);background:var(--adim);color:var(--ac)}.aw-jump.on span{background:var(--ac);color:var(--bg)}.aw-jump.complete{border-color:rgba(34,197,94,.32)}.aw-jump.complete span{background:rgba(34,197,94,.18);color:var(--grn)}.training-tools-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:12px 0}.tool-btn{padding:12px 10px;border-radius:13px;border:1px solid var(--bd2);background:var(--sf2);color:var(--tx);font-family:var(--fb);font-size:12px;font-weight:900;cursor:pointer}.tool-btn.rest{background:var(--adim);border-color:var(--abr);color:var(--ac)}.ex-history-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.84);z-index:900;align-items:flex-end;justify-content:center}.ex-history-ov.on{display:flex}.ex-history-box{width:100%;max-width:430px;max-height:78vh;overflow-y:auto;background:var(--sf);border:1px solid var(--bd);border-radius:22px 22px 0 0;padding:16px 16px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -18px 50px rgba(0,0,0,.45)}.ex-history-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.ex-history-k{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);font-weight:800}.ex-history-title{font-size:20px;font-weight:900;color:var(--tx)}#hist-close-v9{width:34px;height:34px;border-radius:50%;border:1px solid var(--bd2);background:var(--sf2);color:var(--tx);font-size:20px;cursor:pointer}.hist-pr-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.hist-pr-grid div{border:1px solid var(--bd2);background:var(--bg);border-radius:13px;padding:12px}.hist-pr-grid span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);margin-bottom:5px}.hist-pr-grid strong{font-family:var(--fd);font-size:18px;color:var(--ac)}.hist-list{display:flex;flex-direction:column;gap:8px}.hist-item{border:1px solid var(--bd2);background:var(--bg);border-radius:13px;padding:11px}.hist-item div{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}.hist-item strong{font-size:12px;color:var(--tx)}.hist-item span{font-size:10px;color:var(--mu)}.hist-item p{font-size:12px;color:var(--ac);font-family:var(--fd);line-height:1.4}.hist-empty{border:1px dashed var(--bd2);border-radius:13px;padding:22px;text-align:center;color:var(--mu);font-size:12px;line-height:1.5}.swap-inline{display:grid;gap:8px;margin:8px 0 12px}.swap-chip{display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left;padding:11px 12px;border-radius:12px;border:1px solid var(--bd2);background:var(--bg);color:var(--tx);font-family:var(--fb);cursor:pointer}.swap-chip strong{font-size:12px}.swap-chip span{font-size:10px;color:var(--ac);font-weight:800}@media(max-width:380px){.training-tools-row{grid-template-columns:1fr}.tool-btn{padding:11px}}

/* V10 inline rest timer + cleaner workout tools */
.training-tools-row.v10{grid-template-columns:1fr 1fr;margin:12px 0 10px}.rest-inline{border:1px solid var(--bd2);background:var(--bg);border-radius:14px;padding:11px 12px;margin:12px 0}.rest-inline-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.rest-inline-label{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);font-weight:900}.rest-inline-time{font-family:var(--fd);font-size:14px;font-weight:900;color:var(--ac)}.rest-inline-bg{height:8px;background:var(--bd);border-radius:999px;overflow:hidden}.rest-inline-fill{height:100%;width:0%;background:var(--ac);border-radius:999px;transition:width .25s linear}.rest-inline.done .rest-inline-time{color:var(--grn)}.rest-inline.done .rest-inline-fill{background:var(--grn);width:100%}.rest-inline.idle .rest-inline-fill{width:0}.rest-inline-sub{font-size:10px;color:var(--mu);margin-top:7px;line-height:1.3}.how-video-card{border:1px solid var(--bd2);background:var(--bg);border-radius:14px;padding:14px;margin-bottom:12px}.how-video-title{font-size:16px;font-weight:900;margin-bottom:5px}.how-video-sub{font-size:11px;color:var(--mu);line-height:1.45;margin-bottom:12px}.how-video-btn{display:block;text-align:center;padding:12px;border-radius:12px;background:var(--ac);color:var(--bg);font-weight:900;text-decoration:none}.how-step-card{border:1px solid var(--bd2);background:var(--sf2);border-radius:12px;padding:11px;margin-bottom:8px;font-size:12px;line-height:1.35;color:var(--tx)}

/* Training V11 rest controls + working overlays */
.rest-inline-controls{display:grid;grid-template-columns:54px 1fr 54px;gap:8px;align-items:center}.rest-adjust{height:34px;border-radius:11px;border:1px solid var(--bd2);background:var(--sf2);color:var(--ac);font-family:var(--fd);font-size:11px;font-weight:900;cursor:pointer}.rest-adjust:active{transform:scale(.96)}.rest-inline.done .rest-adjust{color:var(--grn)}
.how-ov-v11{display:none;position:fixed;inset:0;background:rgba(0,0,0,.86);z-index:930;align-items:flex-end;justify-content:center}.how-ov-v11.on{display:flex}.how-box-v11{width:100%;max-width:430px;max-height:82vh;overflow-y:auto;background:var(--sf);border:1px solid var(--bd);border-radius:22px 22px 0 0;padding:16px 16px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -18px 50px rgba(0,0,0,.45)}.how-head-v11{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.how-k-v11{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);font-weight:900}.how-title-v11{font-size:21px;font-weight:900;color:var(--tx)}#how-close-v11{width:34px;height:34px;border-radius:50%;border:1px solid var(--bd2);background:var(--sf2);color:var(--tx);font-size:20px;cursor:pointer}.how-video-main-v11{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;background:var(--ac);color:var(--bg);border-radius:16px;padding:15px;margin-bottom:14px;font-weight:900}.how-video-main-v11 span{font-size:14px}.how-video-main-v11 strong{font-size:12px;white-space:nowrap}.how-section-v11{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);font-weight:900;margin:10px 0 8px}.how-tip-v11{display:flex;gap:10px;border:1px solid var(--bd2);background:var(--bg);border-radius:14px;padding:12px;margin-bottom:8px}.how-tip-v11 span{width:24px;height:24px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--adim);border:1px solid var(--abr);color:var(--ac);font-size:11px;font-weight:900;flex-shrink:0}.how-tip-v11 p{font-size:12px;color:var(--tx);line-height:1.38;margin:0}.ex-history-box.v11{max-height:84vh}.hist-list.v11{gap:10px}.hist-item.v11{padding:12px}.hist-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:9px}.hist-item-top div{display:flex;flex-direction:column;gap:2px;margin:0}.hist-item-top b{font-size:10px;color:var(--ac);background:var(--adim);border:1px solid var(--abr);border-radius:999px;padding:4px 7px;white-space:nowrap}.hist-set-row{display:grid;grid-template-columns:52px 1fr auto;gap:8px;align-items:center;padding:7px 0;border-top:1px solid var(--bd)}.hist-set-row span{font-size:10px;color:var(--mu);font-weight:900}.hist-set-row strong{font-family:var(--fd);font-size:12px;color:var(--tx)}.hist-set-row em{font-style:normal;font-size:9px;color:var(--mu);white-space:nowrap}


/* ApexHealth Training V12 fixes: nested screens sit above workout overlay */
.how-ov-v11,.ex-history-ov{z-index:7200!important;}
.how-box-v11,.ex-history-box{position:relative;z-index:7201!important;}
.swap-search-wrap{margin:8px 0 10px;}
.swap-search-input{width:100%;padding:12px 13px;border-radius:13px;border:1px solid var(--bd2);background:var(--bg);color:var(--tx);font-family:var(--fb);font-size:13px;outline:none;}
.swap-search-input:focus{border-color:var(--ac);box-shadow:0 0 0 3px var(--adim);}
.swap-empty{border:1px dashed var(--bd2);border-radius:12px;padding:16px;text-align:center;color:var(--mu);font-size:12px;}

/* v14 Training inline tools + themed set delete */
.live-del{
  width:36px;height:36px;border-radius:12px;background:var(--sf2);border:1px solid var(--bd2);color:var(--mu);font-size:20px;font-weight:900;cursor:pointer;font-family:var(--fb);display:flex;align-items:center;justify-content:center;line-height:1;transition:.15s;
}
.live-del:hover,.live-del:active{border-color:var(--abr);color:var(--ac);background:var(--adim);}
.live-set-row .live-del{opacity:.95;}
.live-tool-card{background:var(--sf);border:1px solid var(--bd2);border-radius:18px;padding:14px;margin-top:10px;box-shadow:var(--sh);}
.live-tool-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.live-tool-kicker{font-family:var(--fd);font-size:9px;color:var(--ac);letter-spacing:1.4px;text-transform:uppercase;margin-bottom:4px;}
.live-tool-title{font-size:20px;font-weight:900;line-height:1.05;}
.live-tool-back{padding:9px 12px;border-radius:12px;background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);font-family:var(--fb);font-size:12px;font-weight:800;cursor:pointer;}
.live-tool-back:active{transform:scale(.97);}
.how-video-main-v14{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--ac);color:var(--bg);border-radius:14px;padding:13px 14px;text-decoration:none;font-weight:900;font-size:13px;margin:10px 0 14px;}
.how-video-main-v14 span{opacity:.78;font-size:11px;font-weight:800;}
.how-grid-v14{display:grid;gap:8px;}
.how-tip-v14{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:start;background:var(--bg);border:1px solid var(--bd);border-radius:13px;padding:11px;}
.how-tip-v14 b{width:28px;height:28px;border-radius:10px;background:var(--adim);border:1px solid var(--abr);color:var(--ac);display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:12px;}
.how-tip-v14 p{font-size:12px;line-height:1.4;color:var(--tx);margin:0;}
.hist-list-v14{display:grid;gap:9px;margin-top:10px;}
.hist-item-v14{background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:11px;}
.hist-item-top-v14{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;}
.hist-item-top-v14 strong{font-size:13px;}
.hist-item-top-v14 span{display:block;font-size:10px;color:var(--mu);margin-top:2px;}
.hist-item-top-v14 b{font-family:var(--fd);font-size:10px;color:var(--ac);white-space:nowrap;}
.hist-set-row-v14{display:grid;grid-template-columns:52px 1fr auto;gap:8px;align-items:center;padding:7px 0;border-top:1px solid var(--bd);font-size:11px;}
.hist-set-row-v14 span{color:var(--mu);font-family:var(--fd);}
.hist-set-row-v14 strong{color:var(--tx);}
.hist-set-row-v14 em{font-style:normal;color:var(--mu);font-size:10px;}
.hist-empty-v14{background:var(--bg);border:1px dashed var(--bd2);border-radius:14px;padding:18px;text-align:center;color:var(--mu);font-size:12px;line-height:1.45;}
.swap-search-wrap-v14{margin:8px 0 10px;}
.swap-search-input{width:100%;background:var(--bg);border:1px solid var(--bd2);border-radius:13px;padding:12px 13px;color:var(--tx);font-family:var(--fb);font-size:13px;outline:none;}
.swap-search-input:focus{border-color:var(--abr);box-shadow:0 0 0 3px var(--adim);}
.swap-inline.v14{display:grid;gap:7px;max-height:360px;overflow-y:auto;padding-right:2px;}
.swap-chip.v14{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--bd);border-radius:13px;padding:11px 12px;color:var(--tx);font-family:var(--fb);cursor:pointer;text-align:left;}
.swap-chip.v14 strong{font-size:13px;}
.swap-chip.v14 span{font-size:10px;color:var(--ac);}
.swap-chip.v14:active{transform:scale(.99);border-color:var(--abr);background:var(--adim);}
.swap-empty{border:1px dashed var(--bd2);border-radius:13px;padding:18px;text-align:center;color:var(--mu);font-size:12px;}
.rest-inline-controls .rest-adjust{color:var(--ac);border-color:var(--abr);background:var(--adim);}
body.crimson .live-del, body.void .live-del, body.neon .live-del, body.sakura .live-del{background:var(--sf2);border-color:var(--bd2);color:var(--mu);}

/* ApexHealth Training V15 - matching set delete + in-app how-to demo */
.live-del{
  border-radius:12px!important;
  background:var(--sf2)!important;
  border:1px solid var(--bd2)!important;
  color:var(--ac)!important;
  box-shadow:inset 0 0 0 1px var(--adim);
}
.live-del:active{transform:scale(.96);background:var(--adim)!important;border-color:var(--abr)!important;}
.how-demo-v15{background:var(--bg);border:1px solid var(--bd);border-radius:16px;overflow:hidden;margin:10px 0 12px;}
.how-demo-frame{height:180px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--sf2),var(--bg));border-bottom:1px solid var(--bd);color:var(--ac);}
.how-demo-frame img{width:100%;height:100%;object-fit:contain;background:var(--bg);}
.how-demo-frame.no-img{font-size:44px;}
.how-demo-caption{padding:11px 12px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.how-demo-caption strong{font-size:12px;color:var(--tx);}
.how-demo-caption span{font-size:10px;color:var(--mu);line-height:1.35;text-align:right;max-width:210px;}

/* ApexHealth Training V16 - free ExerciseDB GIF loading */
.how-demo-frame.loading{flex-direction:column;gap:10px;color:var(--ac);}
.demo-loader{width:28px;height:28px;border-radius:50%;border:3px solid var(--adim);border-top-color:var(--ac);animation:demoSpin .8s linear infinite;}
.demo-loading-text{font-size:11px;font-weight:800;color:var(--mu);letter-spacing:.2px;}
@keyframes demoSpin{to{transform:rotate(360deg)}}
.how-demo-frame.no-img svg{width:100%;height:100%;max-height:180px;}

/* V17 local how-to demos + complete workout label polish */
.how-demo-v15.local-demo .how-demo-frame.local{height:180px;overflow:hidden;background:radial-gradient(circle at 50% 35%, var(--adim), var(--bg) 58%);}
.how-demo-v15.local-demo svg{width:100%;height:100%;display:block;}
.aw-fn{white-space:nowrap;min-width:118px;}

/* V18 ExerciseDB GIF loading state */
.how-demo-frame.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:190px;background:linear-gradient(135deg,var(--sf2),var(--bg));border:1px solid var(--bd);border-radius:14px;color:var(--mu)}
.how-loader{width:30px;height:30px;border:3px solid var(--bd2);border-top-color:var(--ac);border-radius:50%;animation:sp .8s linear infinite}
.how-loading-text{font-size:12px;color:var(--mu);font-weight:700}
.how-demo-frame img{width:100%;height:100%;max-height:250px;object-fit:contain;display:block;border-radius:13px;background:var(--bg)}
.gif-fail{min-height:180px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;color:var(--mu);padding:18px;background:linear-gradient(135deg,var(--sf2),var(--bg));border:1px solid var(--bd);border-radius:14px}
.gif-fail strong{color:var(--tx);font-size:14px}.gif-fail span{font-size:11px;line-height:1.4}

/* ApexHealth V19 - simplified 5-tab structure */
.home-pg,.nutrition-pg,.adventure-pg,.hof-pg{padding:0 14px 18px;}
.home-hero{margin:12px 0 10px;background:linear-gradient(135deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:18px;padding:15px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;box-shadow:var(--sh);}
.home-kicker{font-size:10px;color:var(--ac);text-transform:uppercase;letter-spacing:1.1px;font-weight:800;margin-bottom:4px;}
.home-title{font-size:21px;font-weight:900;line-height:1.05;margin-bottom:5px;}
.home-sub{font-size:11px;color:var(--mu);line-height:1.45;}
.home-settings{width:38px;height:38px;border-radius:13px;background:var(--adim);border:1px solid var(--abr);color:var(--ac);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.home-settings svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
.home-metric{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:12px;text-align:left;color:var(--tx);font-family:var(--fb);cursor:pointer;min-height:74px;}
.home-metric span,.home-stat-row span{display:block;color:var(--mu);font-size:9px;text-transform:uppercase;letter-spacing:.9px;margin-bottom:5px;}
.home-metric strong{display:block;font-family:var(--fd);font-size:14px;color:var(--ac);line-height:1.2;}
.home-section-title{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin:14px 0 7px;}
.home-stat-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.home-stat-row>div{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:11px;}
.home-stat-row strong{font-family:var(--fd);font-size:13px;color:var(--tx);}
.home-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.home-actions button{padding:11px 7px;border-radius:12px;border:1px solid var(--abr);background:var(--adim);color:var(--ac);font-family:var(--fb);font-size:11px;font-weight:800;cursor:pointer;}
.app-subtabs{display:flex;gap:7px;overflow-x:auto;padding:11px 0 10px;position:sticky;top:49px;background:var(--bg);z-index:19;}
.app-subtabs::-webkit-scrollbar{display:none;}
.app-subtab{flex:0 0 auto;padding:8px 13px;border-radius:999px;border:1px solid var(--bd2);background:var(--sf);color:var(--mu);font-family:var(--fb);font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap;}
.app-subtab.on{background:var(--adim);border-color:var(--abr);color:var(--ac);box-shadow:0 0 0 2px rgba(255,255,255,.02) inset;}
.app-panel{display:none;}
.app-panel.on{display:block;}
.nutrition-pg .dn-sec,.nutrition-pg .meals,.nutrition-pg .sh{padding-left:0;padding-right:0;}
.nutrition-pg .dn-sec{padding-top:0;}
.macro-trends-card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:12px;}
.adv-tabs,.hof-tabs{top:49px;}
.adv-hero-card{background:linear-gradient(135deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:18px;padding:14px;margin-bottom:12px;}
.adv-hero-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.adv-avatar-big{width:46px;height:46px;border-radius:16px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:24px;}
.adv-hero-name{font-size:17px;font-weight:900;}
.adv-hero-sub{font-size:11px;color:var(--mu);margin-top:2px;}
.adv-zone-title{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin:12px 0 7px;}
.adv-card{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:12px;margin-bottom:10px;}
.adv-simple-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--bd);}
.adv-simple-row:last-child{border-bottom:none;}
.adv-simple-name{font-size:13px;font-weight:800;}
.adv-simple-sub{font-size:10px;color:var(--mu);margin-top:2px;line-height:1.35;}
.adv-pill{font-family:var(--fd);font-size:11px;color:var(--ac);background:var(--adim);border:1px solid var(--abr);border-radius:999px;padding:5px 8px;white-space:nowrap;}
.adv-world{display:flex;flex-direction:column;gap:8px;}
.map-node-card{width:100%;background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:11px;color:var(--tx);font-family:var(--fb);display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer;}
.map-node-card.boss{border-color:rgba(251,191,36,.5);background:linear-gradient(135deg,var(--sf),rgba(251,191,36,.08));}
.map-node-card.locked{opacity:.45;filter:grayscale(.6);cursor:not-allowed;}
.map-node-top{display:flex;align-items:center;gap:10px;min-width:0;}
.map-node-icon{width:38px;height:38px;border-radius:13px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.map-node-title{font-size:13px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.map-node-sub{font-size:10px;color:var(--mu);margin-top:2px;}
.map-node-action{font-size:10px;color:var(--ac);font-weight:900;white-space:nowrap;}
.hof-pg .leader-hero{margin-top:2px;}
.ach-row.big{background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;overflow:visible;}
.ach-row.big .ach-b{width:auto;}
@media(max-width:390px){.nb{font-size:8px}.ni,.ni svg{width:19px;height:19px}.home-actions{grid-template-columns:1fr}.ach-row.big{grid-template-columns:repeat(3,1fr)}}

/* ApexHealth V20 structure polish */
.app-subtabs{display:flex;gap:8px;overflow-x:auto;padding:6px 0 12px;margin-bottom:8px;border-bottom:1px solid var(--bd);scrollbar-width:none;}
.app-subtabs::-webkit-scrollbar{display:none;}
.app-subtab{flex:0 0 auto;padding:9px 16px;border-radius:999px;background:var(--sf);border:1px solid var(--bd2);color:var(--mu);font-family:var(--fb);font-size:11px;font-weight:800;cursor:pointer;}
.app-subtab.on{background:var(--adim);border-color:var(--abr);color:var(--ac);box-shadow:0 0 14px var(--adim);}
.app-panel{display:none;}.app-panel.on{display:block;}
.quest-tabs{display:flex;gap:6px;margin:6px 0 12px;}
.quest-tab{flex:1;padding:9px 7px;border-radius:12px;background:var(--sf);border:1px solid var(--bd2);color:var(--mu);font-size:11px;font-weight:900;font-family:var(--fb);}
.quest-tab.on{background:var(--adim);border-color:var(--abr);color:var(--ac);}
.quest-list{display:flex;flex-direction:column;gap:8px;}
.quest-card-v20{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:11px;}
.quest-card-v20.done{border-color:rgba(34,197,94,.35);}
.quest-card-v20.claimed{opacity:.74;}
.quest-icon-v20{width:34px;height:34px;border-radius:12px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;color:var(--ac);font-size:16px;font-weight:900;}
.quest-name-v20{font-size:12px;font-weight:900;color:var(--tx);margin-bottom:2px;}
.quest-sub-v20{font-size:10px;color:var(--mu);line-height:1.3;}
.quest-progress-v20{height:5px;background:var(--bd);border-radius:999px;overflow:hidden;margin-top:7px;}
.quest-progress-v20 span{display:block;height:100%;background:var(--ac);border-radius:999px;}
.quest-reward-v20{text-align:right;min-width:78px;}
.quest-reward-v20 b{display:block;color:var(--xp);font-size:10px;font-family:var(--fd);}
.quest-reward-v20 span{display:block;color:var(--ac);font-size:10px;font-family:var(--fd);}
.quest-claim{margin-top:6px;padding:6px 8px;border-radius:9px;border:1px solid var(--abr);background:var(--adim);color:var(--ac);font-size:10px;font-weight:900;font-family:var(--fb);cursor:pointer;}
.quest-claim:disabled{opacity:.45;cursor:not-allowed;}
.map-path-v20{display:flex;flex-direction:column;gap:10px;position:relative;padding:4px 0 12px;}
.map-node-v20{width:100%;display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px;color:var(--tx);font-family:var(--fb);text-align:left;cursor:pointer;}
.map-node-v20.boss{border-color:rgba(251,191,36,.45);background:linear-gradient(135deg,rgba(251,191,36,.08),var(--sf));}
.map-node-v20.locked{opacity:.45;filter:grayscale(.5);cursor:not-allowed;}
.map-icon-v20{width:42px;height:42px;border-radius:14px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:22px;}
.map-title-v20{font-weight:900;font-size:13px;margin-bottom:2px;}
.map-sub-v20{font-size:10px;color:var(--mu);}
.map-action-v20{padding:7px 10px;border-radius:999px;background:var(--adim);border:1px solid var(--abr);color:var(--ac);font-size:10px;font-weight:900;}
.shop-grid-v20{display:flex;flex-direction:column;gap:9px;}
.shop-section-v20{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);margin:12px 0 5px;}
.shop-card-v20{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:12px;}
.shop-name-v20{font-size:13px;font-weight:900;margin-bottom:2px;}
.shop-sub-v20{font-size:10px;color:var(--mu);line-height:1.35;}
.shop-buy-v20{padding:8px 10px;border-radius:11px;border:1px solid var(--abr);background:var(--adim);color:var(--ac);font-family:var(--fb);font-size:10px;font-weight:900;cursor:pointer;}
.shop-buy-v20:disabled{opacity:.45;cursor:not-allowed;}
.goals-grid-v20{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.goal-card-v20{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:11px;}
.goal-card-v20 label{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);display:block;margin-bottom:6px;}
.goal-card-v20 input{width:100%;background:var(--bg);border:1px solid var(--bd2);border-radius:10px;color:var(--tx);font-family:var(--fd);font-size:16px;font-weight:900;padding:10px;outline:none;}
.goal-card-v20 input:focus{border-color:var(--ac);}
.goal-save-v20{width:100%;margin-top:10px;padding:13px;border-radius:14px;border:none;background:var(--ac);color:var(--bg);font-family:var(--fb);font-size:13px;font-weight:900;}
.home-actions-v20{display:flex;flex-direction:column;gap:8px;}
.home-action-v20{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:12px;border-radius:14px;background:var(--sf);border:1px solid var(--bd);color:var(--tx);font-family:var(--fb);font-weight:900;cursor:pointer;}
.home-action-v20 span{color:var(--mu);font-size:11px;font-weight:700;}
.home-action-v20.primary{border-color:var(--abr);background:var(--adim);color:var(--ac);}
.profile-pg{padding:0 14px 14px;}
.profile-settings-wrap .set-pg{padding:0;}
.app-subtabs.profile-tabs-v2{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:4px;background:var(--sf);border:1px solid var(--bd);border-radius:14px;overflow:hidden;margin:12px 0 0;border-bottom:none;}
.app-subtabs.profile-tabs-v2 .app-subtab{flex:none;width:100%;padding:11px 4px;border-radius:11px;border:none;background:transparent;color:var(--mu);font-size:13px;font-weight:700;text-align:center;white-space:normal;box-shadow:none;}
.app-subtabs.profile-tabs-v2 .app-subtab.on{background:var(--adim);border-color:transparent;color:var(--ac);box-shadow:none;}
.profile-hero-v2{background:linear-gradient(180deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:16px;padding:15px;margin:4px 0 12px;}
.profile-kicker-v2{font-size:10px;color:var(--ac);font-weight:900;text-transform:uppercase;letter-spacing:.9px;margin-bottom:5px;}
.profile-title-v2{font-size:24px;font-weight:950;line-height:1.05;color:var(--tx);}
.profile-sub-v2{font-size:12px;color:var(--mu);line-height:1.45;margin-top:6px;}
.profile-stat-grid-v2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.profile-stat-card-v2{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:12px;min-width:0;}
.profile-stat-card-v2 span{display:block;color:var(--mu);font-size:9px;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;}
.profile-stat-card-v2 strong{display:block;font-family:var(--fd);font-size:16px;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.profile-collection-card{margin-top:12px;background:var(--sf);border:1px dashed var(--bd2);border-radius:14px;padding:14px;}
.profile-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;}
.profile-card-kicker{font-size:9px;color:var(--mu);font-weight:900;text-transform:uppercase;letter-spacing:.9px;margin-bottom:3px;}
.profile-card-title{font-size:16px;font-weight:950;color:var(--tx);}
.profile-lock-badge{font-size:10px;font-weight:900;color:var(--ac);background:var(--adim);border:1px solid var(--abr);border-radius:999px;padding:5px 9px;white-space:nowrap;}
.profile-collection-empty{font-size:12px;color:var(--mu);line-height:1.45;}
.profile-settings-v2{padding-bottom:12px;}
.profile-settings-v2 .theme-segment{margin-bottom:12px;}
@media(max-width:360px){.profile-stat-grid-v2{grid-template-columns:1fr}.profile-title-v2{font-size:21px}}
.weight-log-note{font-size:10px;color:var(--mu);margin-top:6px;line-height:1.35;}

/* ApexHealth Adventure V21 - actual fantasy map + class shop */
.adventure-pg{padding:12px 14px 18px;}
.adv-hero-card.v21{margin-bottom:10px;background:linear-gradient(145deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:18px;padding:13px;box-shadow:var(--sh);}
.adv-hero-card.v21 .adv-hero-row{display:flex;align-items:center;gap:12px;}
.adv-big-avatar{width:48px;height:48px;border-radius:16px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:25px;}
.adv-kicker{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;}
.adv-title-main{font-size:17px;font-weight:900;color:var(--tx);line-height:1.1;}
.adv-sub-main{font-size:10px;color:var(--mu);line-height:1.35;margin-top:3px;}
.adv-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px;}
.adv-stat{background:rgba(0,0,0,.16);border:1px solid var(--bd);border-radius:12px;padding:8px;text-align:center;}
.adv-stat-val{font-family:var(--fd);font-size:15px;color:var(--ac);font-weight:900;}
.adv-stat-lbl{font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;margin-top:2px;}
.adv-tabs.v21{position:sticky;top:51px;z-index:12;background:var(--bg);padding-top:4px;margin-bottom:10px;}
.adv-xp-section{margin-top:12px;}
.adv-xp-labels{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin-bottom:5px;}
.adv-xp-earned{font-family:var(--fd);font-weight:700;color:var(--ac);}
.adv-xp-nxt{color:var(--mu);}
.adv-xp-bg{height:7px;background:rgba(0,0,0,.25);border-radius:999px;overflow:hidden;}
.adv-xp-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--ac),color-mix(in srgb,var(--ac) 70%,#fff));transition:width .6s ease;}
body.neon .adv-xp-fill{box-shadow:0 0 8px var(--ac);}
.adv-zone-title{font-size:11px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;font-weight:900;margin:12px 0 7px;}
.adv-zone-title.small{font-size:9px;margin:0 0 7px;}
.fantasy-map-card{height:540px;position:relative;overflow:hidden;border-radius:24px;border:2px solid rgba(129,88,45,.55);background:
  radial-gradient(circle at 20% 70%,rgba(48,124,71,.36),transparent 23%),
  radial-gradient(circle at 36% 34%,rgba(69,122,73,.28),transparent 24%),
  radial-gradient(circle at 76% 24%,rgba(120,117,109,.38),transparent 20%),
  radial-gradient(circle at 71% 60%,rgba(117,72,48,.34),transparent 22%),
  linear-gradient(135deg,#d7b676,#b88445 45%,#8d6538 100%);box-shadow:inset 0 0 0 3px rgba(255,239,188,.16), inset 0 0 55px rgba(55,32,10,.48),0 12px 30px rgba(0,0,0,.22);}
.fantasy-map-card:before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(73,44,18,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(73,44,18,.10) 1px,transparent 1px);background-size:24px 24px;opacity:.5;pointer-events:none;}
.fantasy-map-card:after{content:'';position:absolute;inset:8px;border:1px dashed rgba(68,42,20,.35);border-radius:19px;pointer-events:none;}
.map-routes{position:absolute;inset:0;width:100%;height:100%;z-index:2;filter:drop-shadow(0 1px 0 rgba(255,242,190,.28));}
.map-title-scroll{position:absolute;left:50%;top:12px;transform:translateX(-50%);font-family:var(--fd);font-size:13px;color:#442c16;background:rgba(255,239,188,.55);border:1px solid rgba(69,43,18,.25);border-radius:999px;padding:5px 14px;z-index:4;font-weight:900;box-shadow:0 2px 8px rgba(65,38,15,.18);}
.map-compass{position:absolute;right:16px;top:16px;width:34px;height:34px;border-radius:50%;background:rgba(255,239,188,.55);border:1px solid rgba(69,43,18,.28);color:#4e3015;display:flex;align-items:center;justify-content:center;font-size:22px;z-index:4;}
.map-region{position:absolute;font-size:10px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;color:rgba(61,37,16,.58);z-index:1;transform:rotate(-8deg);}
.map-region.forest{left:10%;top:40%;}.map-region.crypt{left:22%;top:17%;}.map-region.mountain{right:8%;top:12%;transform:rotate(8deg)}.map-region.castle{right:11%;top:62%;transform:rotate(5deg)}
.fantasy-node{position:absolute;z-index:5;transform:translate(-50%,-50%);border:0;background:transparent;color:#2f1d0d;font-family:var(--fb);cursor:pointer;min-width:46px;min-height:46px;}
.fantasy-node[disabled]{cursor:not-allowed;}
.fantasy-node .node-icon{width:42px;height:42px;border-radius:50%;background:#f3d98c;border:2px solid #6d421d;box-shadow:0 3px 0 rgba(73,43,16,.42),0 0 0 4px rgba(255,241,180,.25);display:flex;align-items:center;justify-content:center;font-size:22px;position:relative;z-index:2;}
.fantasy-node.boss .node-icon{width:50px;height:50px;font-size:25px;background:#f0bd5e;border-color:#5e2317;box-shadow:0 3px 0 rgba(73,24,16,.5),0 0 0 5px rgba(138,30,25,.16);}
.fantasy-node.locked{filter:grayscale(1);opacity:.44;}
.fantasy-node.current .node-icon{animation:mapPulse 1.5s infinite;border-color:var(--ac);box-shadow:0 3px 0 rgba(73,43,16,.45),0 0 0 6px rgba(198,241,53,.28),0 0 20px rgba(198,241,53,.38);}
.node-label{position:absolute;left:48px;top:4px;background:rgba(255,241,196,.88);border:1px solid rgba(70,43,18,.25);border-radius:10px;padding:5px 8px;text-align:left;white-space:nowrap;box-shadow:0 4px 10px rgba(48,28,10,.18);display:none;}
.fantasy-node:hover .node-label,.fantasy-node.current .node-label,.fantasy-node.boss .node-label{display:block;}
.node-label b{display:block;font-size:10px;color:#321c0b;line-height:1.1;}
.node-label small{display:block;font-size:8px;color:rgba(50,28,11,.68);margin-top:2px;}
.node-boss{position:absolute;right:-7px;top:-8px;z-index:3;background:#5e2317;color:#fff;border-radius:999px;font-size:14px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.35);}
.player-token{position:absolute;z-index:8;transform:translate(-50%,-92%);width:33px;height:33px;border-radius:50%;background:var(--bg);border:2px solid var(--ac);display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 0 18px var(--abr);animation:playerBob 1.8s ease-in-out infinite;}
.map-fog{position:absolute;z-index:3;border-radius:50%;background:rgba(44,34,24,.22);filter:blur(6px);pointer-events:none;}.fog-a{width:120px;height:90px;right:-18px;bottom:-10px}.fog-b{width:130px;height:80px;left:-35px;top:-15px}
.map-legend-v21{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--mu);margin:7px 2px 10px;}
.v21-list{padding:10px;margin-top:8px;}.map-list-row{width:100%;background:transparent;border:0;color:var(--tx);cursor:pointer;}.map-list-row:disabled{opacity:.45;cursor:not-allowed;}
@keyframes mapPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}@keyframes playerBob{0%,100%{margin-top:0}50%{margin-top:-5px}}
.quest-tabs.v21{display:flex;gap:6px;margin-bottom:9px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;}.quest-tabs.v21::-webkit-scrollbar{display:none;}.quest-tab{flex:0 0 auto;padding:9px 12px;border-radius:999px;background:var(--sf2);border:1px solid var(--bd2);color:var(--mu);font-family:var(--fb);font-weight:800;font-size:11px;white-space:nowrap}.quest-tab.on{background:var(--adim);border-color:var(--abr);color:var(--ac)}
.quest-card-v21{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:10px;margin-bottom:8px}.quest-card-v21.done{border-color:var(--abr);background:var(--adim)}.quest-card-v21.claimed{opacity:.65}.quest-icon-v21{font-size:23px}.quest-name-v21{font-size:12px;font-weight:900}.quest-sub-v21{font-size:10px;color:var(--mu);margin-top:2px}.quest-bar-v21{height:5px;border-radius:999px;background:var(--bd);overflow:hidden;margin-top:6px}.quest-bar-v21 span{height:100%;display:block;background:var(--ac);border-radius:999px}.quest-reward-v21{text-align:right;min-width:72px}.quest-reward-v21 b{font-size:10px;color:var(--xp);display:block}.quest-reward-v21 span{font-size:9px;color:var(--mu);display:block;margin:2px 0 5px}.quest-reward-v21 button{padding:5px 9px;border-radius:8px;border:1px solid var(--abr);background:var(--adim);color:var(--ac);font-family:var(--fb);font-size:10px;font-weight:900}.quest-reward-v21 button:disabled{opacity:.45;color:var(--mu);border-color:var(--bd2);background:var(--sf2)}
.shop-note-v21{font-size:11px;line-height:1.4;color:var(--mu);background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:10px;margin-bottom:9px}.shop-grid-v21{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shop-card-v21{position:relative;background:linear-gradient(145deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:15px;padding:12px;min-height:145px;display:flex;flex-direction:column}.shop-rank{align-self:flex-start;font-size:9px;color:var(--xp);border:1px solid rgba(251,191,36,.3);border-radius:999px;padding:3px 7px;margin-bottom:8px}.shop-name-v21{font-size:13px;font-weight:900;line-height:1.1}.shop-sub-v21{font-size:10px;color:var(--mu);line-height:1.35;margin-top:5px;flex:1}.shop-card-v21 button{margin-top:10px;padding:9px;border-radius:10px;border:0;background:var(--ac);color:var(--bg);font-family:var(--fb);font-size:12px;font-weight:900}.character-sheet-v21{display:flex;align-items:center;gap:12px;background:var(--sf);border:1px solid var(--bd);border-radius:15px;padding:12px;margin-bottom:9px}.char-class-icon{width:50px;height:50px;border-radius:16px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:26px}.char-name-v21{font-size:16px;font-weight:900}.char-sub-v21{font-size:11px;color:var(--mu);margin-top:2px}
@media(max-width:380px){.fantasy-map-card{height:500px}.node-label{display:none!important}.shop-grid-v21{grid-template-columns:1fr}.map-legend-v21{flex-direction:column}.quest-card-v21{grid-template-columns:auto 1fr}.quest-reward-v21{grid-column:1/-1;text-align:left;display:flex;align-items:center;gap:8px}.quest-reward-v21 span{margin:0}.quest-reward-v21 button{margin-left:auto}}

/* Smart Nutrition Goals V22 */
.smart-goals-v22{padding:2px 0 14px;}
.smart-hero{background:linear-gradient(135deg,var(--adim),rgba(255,255,255,.025));border:1px solid var(--abr);border-radius:18px;padding:15px;margin-bottom:10px;position:relative;overflow:hidden;}
.smart-hero::after{content:'⚖️';position:absolute;right:14px;top:10px;font-size:42px;opacity:.18;}
.smart-kicker{font-size:10px;color:var(--ac);text-transform:uppercase;letter-spacing:1.3px;font-weight:800;margin-bottom:3px;}
.smart-title{font-family:var(--fd);font-size:17px;font-weight:900;color:var(--tx);line-height:1.15;}
.smart-sub{font-size:11px;color:var(--mu);line-height:1.45;margin-top:5px;max-width:300px;}
.smart-card{background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px;margin-bottom:10px;}
.smart-row{display:grid;gap:8px;margin-bottom:8px;}
.smart-row:last-child{margin-bottom:0;}
.smart-row.one{grid-template-columns:1fr;}.smart-row.two{grid-template-columns:1fr 1fr;}.smart-row.three{grid-template-columns:repeat(3,1fr);}
.smart-row label{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.8px;font-weight:800;display:flex;flex-direction:column;gap:4px;}
.smart-row input,.smart-row select{width:100%;background:var(--sf2);border:1px solid var(--bd2);border-radius:10px;color:var(--tx);font-family:var(--fb);font-size:12px;padding:9px 8px;outline:none;min-width:0;}
.smart-row input:focus,.smart-row select:focus{border-color:var(--ac);box-shadow:0 0 0 2px var(--adim);}
.smart-preview{background:var(--bg);border:1px solid var(--bd);border-radius:16px;padding:12px;margin-bottom:10px;}
.smart-empty{font-size:12px;color:var(--mu);line-height:1.45;text-align:center;padding:10px;}
.smart-preview-top{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px;}
.smart-preview-top div,.smart-macro-row div{background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:10px;text-align:center;}
.smart-preview-top span,.smart-macro-row span{display:block;font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.8px;margin-bottom:3px;}
.smart-preview-top strong{font-family:var(--fd);font-size:18px;color:var(--ac);}
.smart-macro-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:9px;}
.smart-macro-row b{font-family:var(--fd);font-size:14px;color:var(--tx);display:block;}
.smart-note{font-size:11px;line-height:1.45;color:var(--mu);background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:10px;}
.smart-note b{color:var(--ac);}
.smart-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
.smart-actions button,.goal-save-v20{border:none;border-radius:12px;padding:12px 10px;font-family:var(--fb);font-size:12px;font-weight:900;cursor:pointer;}
#smart-preview-btn,#smart-keep-btn{background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);}
#smart-apply-btn,#smart-accept-btn,.goal-save-v20{background:var(--ac);color:var(--bg);}
.smart-status-card{background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px 14px;margin-bottom:10px;}
.smart-status-row{display:flex;align-items:center;justify-content:space-between;padding:3px 0;font-size:12px;color:var(--mu);}
.smart-status-row strong{font-family:var(--fd);font-size:15px;color:var(--tx);}
.smart-divider{border:none;border-top:1px solid var(--bd);margin:10px 0 8px;}
.smart-adjust-msg{font-size:12px;color:var(--tx);line-height:1.55;margin-bottom:10px;padding:10px 12px;background:var(--adim);border:1px solid var(--abr);border-radius:12px;}
.smart-on-track-msg{font-size:12px;color:var(--ac);line-height:1.55;margin-bottom:10px;padding:10px 12px;background:var(--adim);border:1px solid var(--abr);border-radius:12px;}
.smart-wt-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:4px;}
.smart-wt-row div{background:var(--bg);border:1px solid var(--bd);border-radius:10px;padding:8px 10px;}
.smart-wt-row span{display:block;font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;margin-bottom:2px;}
.smart-wt-row strong{font-family:var(--fd);font-size:15px;color:var(--tx);}
.smart-disclaimer{font-size:10px;color:var(--mu);line-height:1.55;text-align:center;padding:6px 4px 14px;}
.manual-goals-v22{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:10px;}
.manual-goals-v22 summary{font-size:11px;color:var(--mu);font-weight:800;cursor:pointer;}
.manual-goals-v22 .goals-grid-v20{margin-top:10px;}
@media(max-width:380px){.smart-row.two,.smart-row.three{grid-template-columns:1fr 1fr}.smart-macro-row{grid-template-columns:1fr 1fr}.smart-preview-top{grid-template-columns:1fr}.smart-actions{grid-template-columns:1fr}.smart-wt-row{grid-template-columns:1fr}}

/* Smart Goals Wizard (replaces V22 form layout) */
.sg-wiz{padding:2px 0 20px;}
.sg-kicker{font-size:10px;color:var(--ac);text-transform:uppercase;letter-spacing:1.3px;font-weight:800;margin-bottom:4px;}
.sg-step-title{font-family:var(--fd);font-size:20px;font-weight:900;color:var(--tx);margin-bottom:5px;line-height:1.15;}
.sg-step-sub{font-size:12px;color:var(--mu);line-height:1.45;}
.sg-progress{display:flex;gap:4px;margin-bottom:18px;}
.sg-dot{flex:1;height:3px;border-radius:99px;background:var(--bd);transition:background .2s;}
.sg-dot.on{background:var(--ac);}
/* Goal cards */
.sg-goal-grid{display:flex;flex-direction:column;gap:8px;margin:16px 0 20px;}
.sg-goal-card{display:flex;align-items:center;gap:12px;padding:15px;background:var(--sf);border:1.5px solid var(--bd);border-radius:16px;cursor:pointer;text-align:left;width:100%;transition:border-color .15s,background .15s;}
.sg-goal-card.sel{border-color:var(--ac);background:var(--adim);}
.sg-goal-icon{font-size:30px;min-width:38px;text-align:center;line-height:1;}
.sg-goal-body{flex:1;}
.sg-goal-name{font-size:14px;font-weight:800;color:var(--tx);}
.sg-goal-desc{font-size:11px;color:var(--mu);margin-top:2px;line-height:1.35;}
.sg-goal-check{font-size:16px;color:var(--ac);font-weight:900;}
.sg-goal-check.hide{visibility:hidden;}
/* Pace cards */
.sg-pace-grid{display:flex;flex-direction:column;gap:8px;margin:16px 0 20px;}
.sg-pace-card{display:flex;flex-direction:column;gap:3px;padding:14px;background:var(--sf);border:1.5px solid var(--bd);border-radius:14px;cursor:pointer;text-align:left;width:100%;transition:border-color .15s,background .15s;}
.sg-pace-card.sel{border-color:var(--ac);background:var(--adim);}
.sg-pace-top{display:flex;align-items:baseline;gap:9px;}
.sg-pace-name{font-size:14px;font-weight:800;color:var(--tx);}
.sg-pace-rate{font-size:12px;font-weight:700;color:var(--ac);}
.sg-pace-desc{font-size:11px;color:var(--mu);}
/* Activity cards */
.sg-act-grid{display:flex;flex-direction:column;gap:8px;margin:16px 0 20px;}
.sg-act-card{display:flex;align-items:center;gap:12px;padding:14px;background:var(--sf);border:1.5px solid var(--bd);border-radius:14px;cursor:pointer;text-align:left;width:100%;transition:border-color .15s,background .15s;}
.sg-act-card.sel{border-color:var(--ac);background:var(--adim);}
.sg-act-icon{font-size:26px;min-width:34px;text-align:center;line-height:1;}
.sg-act-body{flex:1;}
.sg-act-name{font-size:13px;font-weight:800;color:var(--tx);}
.sg-act-desc{font-size:11px;color:var(--mu);margin-top:2px;}
/* Stats step */
.sg-stats-form{display:flex;flex-direction:column;gap:9px;margin:16px 0 20px;}
.sg-stat-field{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:12px 14px;}
.sg-stat-field.hide{display:none;}
.sg-stat-row2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.sg-stat-lbl{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:.8px;font-weight:800;margin-bottom:8px;}
.sg-stat-input{width:100%;background:transparent;border:0;border-bottom:2px solid var(--bd2);color:var(--tx);font-family:var(--fd);font-size:26px;font-weight:900;padding:3px 0 6px;outline:none;box-sizing:border-box;}
.sg-stat-input:focus{border-bottom-color:var(--ac);}
.sg-sex-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.sg-sex-btn{padding:11px;border:1.5px solid var(--bd);border-radius:12px;background:var(--sf2);color:var(--mu);font-family:var(--fb);font-size:13px;font-weight:800;cursor:pointer;}
.sg-sex-btn.sel{border-color:var(--ac);background:var(--adim);color:var(--ac);}
/* Wizard nav */
.sg-nav{display:flex;gap:8px;margin-top:4px;}
.sg-nav-back{flex:0 0 auto;padding:13px 18px;background:var(--sf2);border:1px solid var(--bd2);border-radius:14px;color:var(--mu);font-family:var(--fb);font-size:13px;font-weight:800;cursor:pointer;}
.sg-nav-next{flex:1;padding:13px;background:var(--ac);border:0;border-radius:14px;color:var(--bg);font-family:var(--fb);font-size:14px;font-weight:900;cursor:pointer;}
/* Results screen */
.sg-results-hero{text-align:center;padding:22px 0 14px;}
.sg-results-cal{font-family:var(--fd);font-size:56px;font-weight:900;color:var(--ac);line-height:1;}
.sg-results-cal-lbl{font-size:13px;color:var(--mu);margin-top:4px;}
.sg-results-rate{font-size:12px;font-weight:700;color:var(--tx);margin-top:8px;padding:4px 14px;background:var(--sf);border:1px solid var(--bd);border-radius:99px;display:inline-block;}
.sg-results-explain{font-size:13px;color:var(--tx);line-height:1.55;margin-bottom:14px;padding:12px 14px;background:var(--adim);border:1px solid var(--abr);border-radius:14px;}
.sg-results-explain strong{color:var(--ac);font-family:var(--fd);}
.sg-macro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px;}
.sg-macro-card{background:var(--sf);border:1px solid var(--bd);border-radius:12px;padding:10px 8px;text-align:center;}
.sg-macro-val{font-family:var(--fd);font-size:16px;font-weight:900;color:var(--tx);}
.sg-macro-lbl{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.5px;margin-top:3px;}
.sg-results-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.sg-apply-btn{width:100%;padding:14px;background:var(--ac);border:0;border-radius:14px;color:var(--bg);font-family:var(--fb);font-size:14px;font-weight:900;cursor:pointer;}
.sg-adj-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.sg-adj-btn{padding:12px;background:var(--sf2);border:1px solid var(--bd2);border-radius:12px;color:var(--tx);font-family:var(--fb);font-size:12px;font-weight:800;cursor:pointer;}
/* Manual override */
.sg-manual-wrap{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:10px 12px;margin-bottom:12px;}
.sg-manual-wrap summary{font-size:11px;color:var(--mu);font-weight:800;cursor:pointer;padding:4px 0;}
.sg-manual-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0;}
.sg-manual-field label{display:block;font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;margin-bottom:4px;}
.sg-manual-field input{width:100%;padding:8px 10px;background:var(--sf2);border:1px solid var(--bd2);border-radius:10px;color:var(--tx);font-family:var(--fd);font-size:14px;font-weight:700;outline:none;box-sizing:border-box;}
.sg-manual-save{width:100%;padding:11px;background:var(--ac);border:0;border-radius:12px;color:var(--bg);font-family:var(--fb);font-size:13px;font-weight:900;cursor:pointer;}
/* Smart check-in card */
.sg-ci-card{background:var(--sf);border:1px solid var(--bd);border-radius:18px;padding:16px 16px 14px;margin-bottom:12px;}
.sg-ci-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.sg-ci-left{flex:1;}
.sg-ci-target{font-family:var(--fd);font-size:34px;font-weight:900;color:var(--tx);line-height:1.1;margin:4px 0 2px;}
.sg-ci-target span{font-size:13px;color:var(--mu);font-family:var(--fb);font-weight:600;}
.sg-ci-goal{font-size:11px;color:var(--mu);}
.sg-ci-edit-btn{padding:9px 13px;background:var(--sf2);border:1px solid var(--bd2);border-radius:10px;color:var(--tx);font-family:var(--fb);font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap;flex-shrink:0;}
.sg-ci-divider{border:none;border-top:1px solid var(--bd);margin:13px 0 11px;}
.sg-ci-msg{font-size:12px;color:var(--tx);line-height:1.55;margin-bottom:10px;padding:10px 12px;background:var(--adim);border:1px solid var(--abr);border-radius:12px;}
.sg-ci-msg.on-track{color:var(--ac);}
.sg-ci-wt-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
.sg-ci-wt-row div{background:var(--bg);border:1px solid var(--bd);border-radius:10px;padding:8px 10px;}
.sg-ci-wt-row span{display:block;font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;margin-bottom:2px;}
.sg-ci-wt-row strong{font-family:var(--fd);font-size:15px;color:var(--tx);}
.sg-ci-btns{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.sg-ci-keep{padding:11px;background:var(--sf2);border:1px solid var(--bd2);border-radius:11px;color:var(--tx);font-family:var(--fb);font-size:12px;font-weight:800;cursor:pointer;}
.sg-ci-accept{padding:11px;background:var(--ac);border:0;border-radius:11px;color:var(--bg);font-family:var(--fb);font-size:12px;font-weight:900;cursor:pointer;}
.sg-ci-need-title{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.8px;color:var(--mu);margin-bottom:8px;}
.sg-ci-need-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;font-size:11px;color:var(--mu);}
.sg-ci-bar-wrap{display:flex;align-items:center;gap:7px;flex:1;}
.sg-ci-bar{flex:1;height:5px;background:var(--bd);border-radius:99px;overflow:hidden;}
.sg-ci-fill{height:100%;background:var(--ac);border-radius:99px;}
.sg-ci-hint{font-size:11px;color:var(--mu);line-height:1.45;padding:3px 0;}
.sg-disclaimer{font-size:10px;color:var(--mu);line-height:1.55;text-align:center;padding:4px 4px 10px;}
@media(max-width:380px){.sg-macro-grid{grid-template-columns:1fr 1fr}.sg-manual-grid{grid-template-columns:1fr}}

/* V23 integrated daily weight check-in */
.weight-sheet-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:760;align-items:flex-end;justify-content:center;padding:0 0 env(safe-area-inset-bottom)}
.weight-sheet-ov.on{display:flex}
.weight-sheet{width:100%;max-width:430px;background:var(--sf);border:1px solid var(--bd);border-bottom:0;border-radius:22px 22px 0 0;box-shadow:0 -18px 50px rgba(0,0,0,.55);overflow:hidden}
.weight-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px 8px}
.weight-kicker{font-size:9px;text-transform:uppercase;letter-spacing:1.2px;color:var(--mu);font-weight:800}
.weight-title{font-size:18px;font-weight:900;color:var(--tx);line-height:1.15;margin-top:2px}
.weight-x{width:32px;height:32px;border-radius:50%;border:1px solid var(--bd2);background:var(--sf2);color:var(--tx);font-size:20px;line-height:1;cursor:pointer}
.weight-body{padding:0 16px 18px;display:flex;flex-direction:column;gap:10px}
.weight-current-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg);border:1px solid var(--bd);border-radius:16px;padding:13px}
.weight-current-card span,.weight-input-card span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);font-weight:800;margin-bottom:4px}
.weight-current-card strong{font-family:var(--fd);font-size:22px;color:var(--ac)}
.weight-token{width:42px;height:42px;border-radius:14px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:22px}
.weight-input-card{display:block;background:var(--sf2);border:1px solid var(--bd2);border-radius:16px;padding:13px}
.weight-input-card div{display:flex;align-items:center;gap:8px}
.weight-input-card input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--tx);font-family:var(--fd);font-size:32px;font-weight:900}
.weight-input-card b{font-family:var(--fd);font-size:13px;color:var(--mu)}
.weight-trend{background:var(--bg);border:1px solid var(--bd);border-radius:14px;padding:10px 12px}
.weight-trend-title{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--mu);font-weight:900;margin-bottom:6px}
.weight-trend-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;border-top:1px solid var(--bd)}
.weight-trend-row:first-of-type{border-top:0}
.weight-trend-row span{font-size:11px;color:var(--mu)}
.weight-trend-row b{font-family:var(--fd);font-size:12px;color:var(--tx)}
.weight-trend-note{font-size:11px;color:var(--mu);line-height:1.45}
.weight-save{width:100%;padding:13px;border:0;border-radius:14px;background:var(--ac);color:var(--bg);font-family:var(--fb);font-size:14px;font-weight:900;cursor:pointer}
.weight-secondary{width:100%;padding:11px;border:1px solid var(--bd2);border-radius:14px;background:transparent;color:var(--mu);font-family:var(--fb);font-size:12px;font-weight:800;cursor:pointer}
body.neon .weight-current-card strong{ text-shadow:0 0 10px var(--ac); }

.auth-gate{position:fixed;inset:0;z-index:2000;background:var(--bg);display:flex;align-items:flex-start;justify-content:center;padding:calc(22px + env(safe-area-inset-top)) 22px 22px;overflow-y:auto;}
.auth-gate.hidden{display:none;}
.auth-gate-card{width:100%;max-width:360px;background:var(--sf);border:1px solid var(--bd);border-radius:20px;padding:22px;box-shadow:0 18px 50px rgba(0,0,0,.35);margin:auto 0;}
.auth-gate-logo{font-family:var(--fd);font-size:18px;font-weight:800;margin-bottom:22px;}
.auth-gate-logo em{font-style:normal;color:var(--ac);}
.auth-gate-title{font-size:22px;font-weight:800;margin-bottom:6px;}
.auth-gate-sub{font-size:12px;line-height:1.5;color:var(--mu);margin-bottom:16px;}
.auth-pex-login{display:none;align-items:center;justify-content:center;flex-direction:column;gap:6px;margin:2px 0 14px;}
.auth-pex-login img{width:86px;height:86px;object-fit:contain;filter:drop-shadow(0 10px 20px rgba(0,0,0,.28));animation:authPexFloat 2.8s ease-in-out infinite;}
.auth-pex-login span{width:34px;height:4px;border-radius:999px;background:var(--bd2);position:relative;overflow:hidden;}
.auth-pex-login span:after{content:"";position:absolute;inset:0;width:45%;border-radius:999px;background:var(--ac);animation:authPexLoad 1.15s ease-in-out infinite;}
.auth-gate-card.login-loading .auth-pex-login{display:flex;}
.auth-gate-card.login-loading .auth-gate-primary{opacity:.78;cursor:wait;}
@keyframes authPexFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.015)}}
@keyframes authPexLoad{0%{transform:translateX(-115%)}55%,100%{transform:translateX(245%)}}
.auth-gate-input{width:100%;padding:12px 13px;margin-bottom:8px;background:var(--sf2);border:1px solid var(--bd2);border-radius:11px;color:var(--tx);font-family:var(--fb);font-size:16px;outline:none;}
.auth-gate-input:focus{border-color:var(--ac);}
.auth-gate-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;}
.auth-gate-primary,.auth-gate-secondary{padding:12px;border-radius:11px;font-family:var(--fb);font-size:13px;font-weight:800;cursor:pointer;}
.auth-gate-primary{background:var(--ac);color:var(--bg);border:none;}
.auth-gate-secondary{background:var(--sf2);color:var(--tx);border:1px solid var(--bd2);}
.auth-gate-status{font-size:10px;color:var(--mu);margin-top:10px;text-align:center;min-height:14px;}
.auth-gate-stage{font-size:11px;color:var(--mu);margin-top:8px;text-align:center;min-height:16px;font-family:var(--fb);font-weight:700;}
.auth-gate-stage.error{color:#ef4444;}
.auth-gate-forgot{background:none;border:none;color:var(--mu);font-size:11px;cursor:pointer;margin-top:6px;text-decoration:underline;font-family:var(--fb);width:100%;text-align:center;padding:4px 0;}
.auth-gate-forgot:hover{color:var(--ac);}
.auth-gate-forgot:disabled{opacity:.5;cursor:default;}
.auth-gate-full-btn{width:100%;margin-top:4px;}
.auth-gate-status.su-error{color:#ef4444;}
.auth-gate-status.su-ok{color:var(--ac);}
/* FatSecret attribution */
.fatsecret-attr{text-align:center;padding:8px 0 4px;}
.fatsecret-attr img{height:20px;opacity:.75;}
.fatsecret-disclaimer{font-size:9px;color:var(--mu);margin-top:5px;line-height:1.4;}
.fatsecret-disclaimer a{color:var(--mu);text-decoration:underline;}
/* Battle box scrollable on small phones */
.battle-box{max-height:calc(100dvh - 32px);overflow-y:auto;}
/* Locked ability slot */
.ability-btn.locked{opacity:.4;cursor:not-allowed;background:var(--sf);border-style:dashed;}
.ability-btn.locked .ability-name{color:var(--mu);}
/* 4th ultimate slot always shows but locked until lv 15 */
.battle-actions .ability-btn-ultimate{display:none!important;}
.battle-actions.fighting .ability-btn-ultimate{display:block!important;}
.battle-actions.done .ability-btn-ultimate{display:none!important;}
/* Run button — same size as Start Battle, side by side */
.ability-run{flex:1;padding:11px;background:none;border:1px solid var(--bd2);border-radius:10px;color:var(--mu);font-family:var(--fb);font-weight:700;cursor:pointer;font-size:13px;}
.ability-run:hover{color:var(--tx);border-color:var(--bd);}
.battle-actions.fighting .ability-run,.battle-actions.done .ability-run{display:none!important;}
body.auth-locked>.pg,body.auth-locked>#nav{filter:blur(1.2px) brightness(.42);pointer-events:none;user-select:none;}body.auth-locked>.ob-ov,body.auth-locked>.setup-ov,body.auth-locked>.ov,body.auth-locked>.conf-ov,body.auth-locked>.bld-ov,body.auth-locked>.ai-ov,body.auth-locked>.aw-ov,body.auth-locked>.level-ov,body.auth-locked>.battle-ov{display:none!important;}

.nb.locked,.training-tab.locked{opacity:.45;cursor:not-allowed;}
.auth-gate{background:rgba(15,15,16,.86);backdrop-filter:blur(8px);}

.water-custom-row{display:flex;gap:6px;align-items:center;justify-content:center;margin-top:7px}
.water-custom-input{width:74px;padding:7px 9px;background:var(--sf2);border:1px solid var(--bd2);border-radius:999px;color:var(--tx);font-family:var(--fd);font-size:16px;text-align:center;outline:none}
.water-custom-input:focus{border-color:var(--wat)}
.nutrition-dashboard-meals{margin-top:10px}
.profile-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.profile-tab{min-width:0}

.remember-row{display:flex;align-items:center;gap:8px;margin:4px 0 10px;color:var(--mu);font-size:11px;cursor:pointer}
.remember-row input{accent-color:var(--ac)}


/* REAL-TIME COOLDOWN COMBAT OVERHAUL */
.battle-box.combat-v3{max-width:414px;padding:13px;border-color:var(--abr);background:linear-gradient(180deg,var(--sf),var(--bg));}
.combat-top{align-items:flex-start}.combat-subtitle{font-size:10px;color:var(--mu);margin-top:2px}.combatant-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}.combatant-card{background:rgba(0,0,0,.18);border:1px solid var(--bd);border-radius:13px;padding:9px;min-width:0}.combatant-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.enemy-head{justify-content:flex-end}.combat-portrait{width:38px;height:38px;border-radius:12px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 auto}.enemy-portrait{background:rgba(239,68,68,.10);border-color:rgba(239,68,68,.28)}.combatant-meta{min-width:0}.combatant-meta.right{text-align:right}.combatant-name{font-size:12px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.combatant-class{font-size:9px;color:var(--mu);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.combat-bar-label{display:flex;justify-content:space-between;gap:5px;font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;margin:5px 0 3px}.combat-bar{height:8px}.mana-fill{height:100%;background:#38bdf8;border-radius:8px;transition:width .22s linear}.attack-fill{height:100%;background:var(--xp);border-radius:8px;transition:width .08s linear}.attack-timer{height:6px}.attack-label{margin-top:7px}.combat-mana-wrap{display:none}.combat-mana-wrap.on{display:block}.effect-row{display:flex;gap:4px;min-height:20px;margin-top:7px;flex-wrap:wrap}.effect-chip{font-size:10px;line-height:1;padding:4px 6px;border-radius:999px;background:var(--sf2);border:1px solid var(--bd2);color:var(--tx)}.effect-chip.burn{color:#fb7185;border-color:rgba(251,113,133,.35);background:rgba(251,113,133,.12)}.effect-chip.poison{color:#86efac;border-color:rgba(134,239,172,.35);background:rgba(134,239,172,.10)}.effect-chip.shield,.effect-chip.block{color:#93c5fd;border-color:rgba(147,197,253,.35);background:rgba(147,197,253,.10)}.effect-chip.evade,.effect-chip.dodge{color:#c4b5fd;border-color:rgba(196,181,253,.35);background:rgba(196,181,253,.10)}.live-arena{min-height:132px;padding:12px 34px 12px;margin-bottom:9px}.live-arena .fighter .sprite{font-size:43px}.live-arena .enemy .sprite{font-size:45px}.combat-log{height:84px;overflow-y:auto;background:rgba(0,0,0,.22);border:1px solid var(--bd);border-radius:12px;padding:8px;margin:8px 0;font-size:11px;line-height:1.35;color:var(--tx)}.log-line{padding:3px 0;border-bottom:1px solid rgba(255,255,255,.05)}.log-line:last-child{border-bottom:none}.log-line.good{color:var(--grn)}.log-line.bad{color:#fb7185}.log-line.reward{color:var(--xp);font-weight:800}.ability-bar{display:grid;grid-template-columns:1fr 1fr;gap:7px}.ability-btn,.ability-start,.ability-exit{position:relative;overflow:hidden;min-height:48px;border-radius:11px;border:1px solid var(--bd2);background:var(--sf2);color:var(--tx);font-family:var(--fb);font-weight:900;cursor:pointer;padding:8px 9px;text-align:left}.ability-start{grid-column:1/-1;text-align:center;background:var(--ac);color:var(--bg);border:none}.ability-exit{grid-column:1/-1;text-align:center;background:transparent;color:var(--mu)}.ability-btn .ability-name{display:block;font-size:12px;position:relative;z-index:2}.ability-btn .ability-meta{display:block;font-size:9px;color:var(--mu);margin-top:2px;position:relative;z-index:2}.ability-btn.ready{border-color:var(--abr);box-shadow:0 0 0 1px var(--adim) inset}.ability-btn:disabled{opacity:.55;cursor:not-allowed}.cd-overlay{position:absolute;left:0;right:0;bottom:0;height:0;background:rgba(0,0,0,.48);z-index:1;transition:height .08s linear}.cd-text{position:absolute;right:8px;top:8px;font-family:var(--fd);font-size:11px;color:var(--xp);z-index:3}.battle-actions .ability-btn,.battle-actions .ability-exit{display:none}.battle-actions.fighting .ability-btn,.battle-actions.fighting .ability-exit,.battle-actions.done .ability-exit{display:block}.battle-actions.fighting .ability-start,.battle-actions.done .ability-start,.battle-actions.done .ability-btn{display:none}.reward-screen{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.35);border-radius:12px;padding:9px;margin-top:8px}.reward-title{font-weight:900;color:var(--xp);font-size:13px}.reward-items{font-size:11px;color:var(--tx);margin-top:5px;line-height:1.5}


/* Combat view polish + anti-farm reward clarity */
.battle-box.combat-v3{
  background:
    radial-gradient(circle at 50% 0%, var(--adim), transparent 34%),
    linear-gradient(180deg,var(--sf),var(--bg));
}
.live-arena{
  min-height:205px;
  padding:20px 34px 18px;
  align-items:flex-end;
  border-color:var(--abr);
  background:
    radial-gradient(circle at 50% 38%, rgba(198,241,53,.15), transparent 18%),
    linear-gradient(180deg,#111827 0%,#11131d 42%,#16140f 100%);
  box-shadow:inset 0 0 34px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.025);
}
.live-arena::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:0;
  background:
    radial-gradient(circle at 18% 24%, rgba(255,255,255,.28) 0 1px, transparent 2px),
    radial-gradient(circle at 72% 18%, rgba(255,255,255,.20) 0 1px, transparent 2px),
    radial-gradient(circle at 86% 42%, rgba(255,255,255,.18) 0 1px, transparent 2px),
    linear-gradient(90deg, transparent 0 38%, rgba(255,255,255,.035) 39% 40%, transparent 41% 100%);
  opacity:.9;
  pointer-events:none;
}
.live-arena::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:28px;
  width:160px;
  height:72px;
  transform:translateX(-50%);
  z-index:1;
  background:radial-gradient(ellipse at center, var(--adim), transparent 68%);
  filter:blur(2px);
  pointer-events:none;
}
.arena-sky,.arena-moon,.arena-ruins{position:absolute;pointer-events:none;z-index:1;}
.arena-sky{inset:0;background:linear-gradient(180deg,rgba(96,165,250,.07),transparent 46%);}
.arena-moon{right:32px;top:18px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.14);box-shadow:0 0 22px rgba(255,255,255,.10);}
.arena-ruins{bottom:35px;width:58px;height:58px;border-bottom:2px solid rgba(255,255,255,.08);opacity:.55;}
.ruin-left{left:12px;background:linear-gradient(90deg,transparent 0 12px,rgba(255,255,255,.08) 13px 19px,transparent 20px 34px,rgba(255,255,255,.06) 35px 41px,transparent 42px);}
.ruin-right{right:12px;background:linear-gradient(90deg,rgba(255,255,255,.06) 0 7px,transparent 8px 24px,rgba(255,255,255,.08) 25px 34px,transparent 35px);}
.live-arena .battle-ground{z-index:2;height:48px;background:linear-gradient(180deg,transparent,rgba(198,241,53,.12));}
.live-arena .fighter{z-index:4;min-width:86px;}
.live-arena .fighter .sprite{font-size:56px;padding:8px 10px;border-radius:18px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.06);box-shadow:0 12px 20px rgba(0,0,0,.28);}
.live-arena .enemy .sprite{font-size:58px;}
.live-arena .fighter .name{background:rgba(0,0,0,.34);border:1px solid rgba(255,255,255,.06);border-radius:999px;padding:4px 8px;margin-top:8px;color:var(--tx);}
/* 3D mode — hide 2D sprites, keep fighter divs for class mutation observation */
.live-arena.b3d .fighter .sprite{visibility:hidden!important;opacity:0!important;}
.live-arena.b3d .fighter .name{visibility:hidden!important;opacity:0!important;}
.live-arena.b3d #hitfx,.live-arena.b3d #fireball{display:none!important;}
.live-arena.b3d .spell-fx{display:none!important;}
.combat-v3.zone-wolf .live-arena{background:radial-gradient(circle at 65% 35%,rgba(96,165,250,.16),transparent 22%),linear-gradient(180deg,#0b1220,#101923 48%,#10140f)}
.combat-v3.zone-skeleton .live-arena{background:radial-gradient(circle at 50% 38%,rgba(226,232,240,.15),transparent 20%),linear-gradient(180deg,#111827,#17131c 48%,#15120f)}
.combat-v3.zone-orc .live-arena,.combat-v3.zone-ogre .live-arena{background:radial-gradient(circle at 52% 38%,rgba(239,68,68,.14),transparent 22%),linear-gradient(180deg,#1f130f,#17110f 50%,#15100b)}
.combat-v3.zone-dragon .live-arena{background:radial-gradient(circle at 62% 35%,rgba(249,115,22,.18),transparent 24%),linear-gradient(180deg,#21100a,#180e10 48%,#120d09)}
.combat-v3.zone-void .live-arena{background:radial-gradient(circle at 52% 35%,rgba(167,139,250,.22),transparent 24%),linear-gradient(180deg,#10081f,#120b1d 48%,#0b0713)}
.reward-screen .reward-items{font-family:var(--fd);}


/* ApexHealth v22 complete shop + spell FX overhaul */
.shop-hero-v22{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;background:linear-gradient(135deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:18px;padding:14px;margin-bottom:12px;box-shadow:var(--sh);position:relative;overflow:hidden}
.shop-hero-v22:before{content:'';position:absolute;inset:auto -30px -45px auto;width:150px;height:150px;border-radius:999px;background:var(--adim);filter:blur(10px);opacity:.65}
.shop-hero-icon{width:52px;height:52px;border-radius:17px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:27px;box-shadow:0 0 22px var(--adim)}
.shop-hero-kicker{font-size:9px;color:var(--xp);text-transform:uppercase;letter-spacing:1px;font-weight:900}.shop-hero-title{font-size:17px;font-weight:950;line-height:1.05}.shop-hero-sub{font-size:10px;color:var(--mu);line-height:1.35;margin-top:4px}.shop-gold-v22{font-family:var(--fd);font-size:12px;color:var(--xp);font-weight:900;background:rgba(251,191,36,.10);border:1px solid rgba(251,191,36,.35);border-radius:999px;padding:7px 9px;z-index:1;white-space:nowrap}
.shop-section-title-v22{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;font-weight:900;margin:12px 2px 7px}.shop-grid-v22{display:grid;grid-template-columns:1fr 1fr;gap:9px}.shop-card-v22{background:linear-gradient(150deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:16px;padding:12px;min-height:166px;display:flex;flex-direction:column;box-shadow:var(--sh);position:relative;overflow:hidden}.shop-card-v22:after{content:'';position:absolute;right:-26px;top:-28px;width:74px;height:74px;border-radius:50%;background:var(--adim);opacity:.55}.shop-card-top{display:flex;gap:9px;align-items:center;margin-bottom:9px;position:relative;z-index:1}.shop-icon-v22{width:38px;height:38px;border-radius:13px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 auto}.shop-name-v22{font-size:12px;font-weight:950;line-height:1.08}.shop-rank-v22{font-size:9px;color:var(--xp);margin-top:2px;font-family:var(--fd)}.shop-desc-v22{font-size:10px;color:var(--tx);line-height:1.35;position:relative;z-index:1}.shop-next-v22{font-size:9px;color:var(--mu);line-height:1.3;margin-top:6px;flex:1;position:relative;z-index:1}.shop-buy-v22{width:100%;margin-top:10px;padding:9px 7px;border:0;border-radius:11px;background:var(--ac);color:var(--bg);font-family:var(--fb);font-size:11px;font-weight:950;position:relative;z-index:1;cursor:pointer}.shop-buy-v22:active{transform:scale(.98)}
.spell-fx{position:absolute;z-index:9;pointer-events:none;font-size:26px;filter:drop-shadow(0 0 10px currentColor)}
.fx-fireball{right:84px;bottom:64px;color:#fb7185;animation:spellFly 760ms ease-out forwards}.fx-arcane{right:88px;bottom:74px;color:#a78bfa;animation:spellFly 620ms ease-out forwards}.fx-poison{right:86px;bottom:68px;color:#86efac;animation:spellFly 700ms ease-out forwards}.fx-arrow{right:86px;bottom:72px;color:#fbbf24;animation:spellFly 560ms ease-out forwards}.fx-slash{left:78px;bottom:76px;color:#fbbf24;animation:slashFx 520ms ease-out forwards}.fx-shield{left:68px;bottom:76px;color:#93c5fd;animation:shieldPulse 720ms ease-out forwards}
@keyframes spellFly{0%{opacity:0;transform:translateX(0) scale(.55)}12%{opacity:1}78%{opacity:1;transform:translateX(-170px) translateY(-8px) scale(1.2)}100%{opacity:0;transform:translateX(-195px) translateY(-2px) scale(.8)}}
@keyframes slashFx{0%{opacity:0;transform:translateX(0) rotate(-30deg) scale(.7)}35%{opacity:1;transform:translateX(120px) rotate(16deg) scale(1.25)}100%{opacity:0;transform:translateX(156px) rotate(30deg) scale(.85)}}
@keyframes shieldPulse{0%{opacity:0;transform:scale(.55)}30%{opacity:1;transform:scale(1.45)}100%{opacity:0;transform:scale(2.2)}}
.ability-btn.ready .ability-name:after{content:' ready';font-size:8px;color:var(--grn);margin-left:4px;text-transform:uppercase;letter-spacing:.6px}
@media(max-width:380px){.shop-grid-v22{grid-template-columns:1fr}.shop-hero-v22{grid-template-columns:auto 1fr}.shop-gold-v22{grid-column:1/-1;justify-self:start}}

/* ApexHealth v23 shop cleanup + correct player-to-enemy spell travel */
.coin-icon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff7ad 0 12%,#fbbf24 28%,#b7791f 70%);color:#4a2b00;font-size:9px;font-weight:950;box-shadow:0 0 10px rgba(251,191,36,.22);vertical-align:-2px;margin:0 2px}.coin-icon.big{width:30px;height:30px;font-size:16px;margin-right:7px;vertical-align:middle}
.shop-shell-v23{display:flex;flex-direction:column;gap:11px}.shop-top-v23{display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(135deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:18px;padding:14px;box-shadow:var(--sh)}.shop-title-wrap{min-width:0}.shop-gold-v23{display:flex;align-items:center;justify-content:center;gap:2px;background:rgba(251,191,36,.10);border:1px solid rgba(251,191,36,.35);border-radius:999px;color:var(--xp);font-family:var(--fd);font-weight:950;padding:7px 11px;white-space:nowrap}
.shop-loadout-v23{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:9px;align-items:center;background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px}.paper-doll-v23{width:56px;height:56px;border-radius:17px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:31px;box-shadow:0 0 20px var(--adim)}.loadout-lines-v23{display:flex;flex-direction:column;gap:2px;min-width:0}.loadout-lines-v23 b{font-size:13px}.loadout-lines-v23 span{font-size:10px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loadout-stat-v23{min-width:56px;background:var(--bg);border:1px solid var(--bd);border-radius:12px;padding:8px 6px;text-align:center}.loadout-stat-v23 span{display:block;font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px}.loadout-stat-v23 b{font-family:var(--fd);font-size:14px;color:var(--ac)}
.shop-tabs-v23{display:flex;gap:6px;overflow-x:auto;padding-bottom:1px}.shop-tabs-v23::-webkit-scrollbar{display:none}.shop-tab-v23{border:1px solid var(--bd2);background:var(--sf);color:var(--mu);border-radius:999px;padding:8px 13px;font-family:var(--fb);font-weight:850;font-size:11px;white-space:nowrap;cursor:pointer}.shop-tab-v23.on{background:var(--adim);border-color:var(--abr);color:var(--ac);box-shadow:0 0 12px var(--adim)}.shop-grid-v23{display:grid;grid-template-columns:1fr;gap:9px}.shop-card-v23{background:linear-gradient(150deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:16px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;box-shadow:var(--sh);position:relative;overflow:hidden}.shop-card-v23:after{content:'';position:absolute;right:-28px;top:-34px;width:86px;height:86px;border-radius:50%;background:var(--adim);opacity:.42}.shop-card-v23 .shop-card-top,.shop-card-v23 .shop-desc-v22,.shop-card-v23 .shop-next-v22{grid-column:1/2;position:relative;z-index:1}.shop-card-v23 .shop-buy-v22{grid-column:2/3;grid-row:1/4;align-self:center;width:auto;min-width:96px;margin:0;padding:10px 12px}.shop-card-v23 .shop-next-v22{margin-top:2px;flex:auto}.shop-card-v23 .shop-desc-v22{font-size:11px}.shop-card-v23 .shop-card-top{margin-bottom:0}
.fx-fireball,.fx-arcane,.fx-poison,.fx-arrow{left:86px;right:auto;bottom:72px;animation:spellFlyPlayer 720ms ease-out forwards}.fx-fireball{color:#fb7185;font-size:30px}.fx-arcane{color:#a78bfa}.fx-poison{color:#86efac}.fx-arrow{color:#fbbf24}.hero.cast{animation:heroCast 500ms ease-out}.live-arena .hero.cast .sprite{box-shadow:0 0 18px var(--abr),0 12px 20px rgba(0,0,0,.28)}
@keyframes spellFlyPlayer{0%{opacity:0;transform:translateX(0) translateY(0) scale(.55)}12%{opacity:1}76%{opacity:1;transform:translateX(178px) translateY(-8px) scale(1.22)}100%{opacity:0;transform:translateX(205px) translateY(-2px) scale(.85)}}
@keyframes heroCast{0%,100%{transform:translateX(0) scale(1)}38%{transform:translateX(0) scale(1.06);filter:brightness(1.25)}}
@media(max-width:380px){.shop-top-v23{align-items:flex-start;flex-direction:column}.shop-loadout-v23{grid-template-columns:auto 1fr 1fr}.loadout-stat-v23{min-width:0}.shop-card-v23{grid-template-columns:1fr}.shop-card-v23 .shop-buy-v22{grid-column:1;grid-row:auto;width:100%;}}


/* ApexHealth V24 Armory + Character Sheet cleanup */
.gold-coin-v24{display:inline-flex;width:18px;height:18px;border-radius:999px;background:radial-gradient(circle at 34% 28%,#fff8b8 0 12%,#facc15 24%,#d49016 58%,#7c4a03 100%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.16),0 0 16px rgba(250,204,21,.22);vertical-align:-4px;margin:0 5px 0 0;position:relative;flex:0 0 auto}.gold-coin-v24:after{content:'';position:absolute;inset:5px;border-radius:999px;border:2px solid rgba(83,47,0,.55)}
.armory-v24,.wow-sheet-v24{display:flex;flex-direction:column;gap:11px}.armory-header-v24{display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(135deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:18px;padding:14px 15px;box-shadow:var(--sh)}.armory-kicker-v24{font-size:9px;color:var(--xp);text-transform:uppercase;letter-spacing:1px;font-weight:950}.armory-title-v24{font-size:19px;font-weight:950;line-height:1}.armory-sub-v24{font-size:11px;color:var(--mu);line-height:1.35;margin-top:5px}.gold-wallet-v24{display:flex;align-items:center;gap:3px;background:rgba(251,191,36,.10);border:1px solid rgba(251,191,36,.38);border-radius:999px;color:var(--xp);font-family:var(--fd);font-weight:950;padding:8px 12px;white-space:nowrap}.gold-wallet-v24 .gold-coin-v24{width:28px;height:28px;margin-right:4px}.gold-wallet-v24 .gold-coin-v24:after{inset:8px}
.mini-loadout-v24{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:9px;align-items:center;background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:12px}.mini-hero-v24{width:54px;height:54px;border-radius:17px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:0 0 18px var(--adim)}.mini-loadout-v24 div:not(.mini-hero-v24){min-width:0}.mini-loadout-v24 b{display:block;font-size:13px}.mini-loadout-v24 span{display:block;font-size:10px;color:var(--mu);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-loadout-v24 small{display:block;font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;text-align:center}.mini-loadout-v24 div:nth-last-child(-n+3){background:var(--bg);border:1px solid var(--bd);border-radius:12px;padding:8px 7px;text-align:center}.mini-loadout-v24 div:nth-last-child(-n+3) b{font-family:var(--fd);color:var(--ac)}
.armory-tabs-v24{display:flex;gap:7px;overflow-x:auto}.armory-tabs-v24::-webkit-scrollbar{display:none}.armory-tab-v24{border:1px solid var(--bd2);background:var(--sf);color:var(--mu);border-radius:999px;padding:8px 14px;font-family:var(--fb);font-weight:900;font-size:11px;white-space:nowrap;cursor:pointer}.armory-tab-v24.on{background:var(--adim);border-color:var(--abr);color:var(--ac);box-shadow:0 0 12px var(--adim)}.armory-list-v24{display:flex;flex-direction:column;gap:9px}.armory-item-v24{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;background:linear-gradient(150deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:17px;padding:12px;box-shadow:var(--sh);position:relative;overflow:hidden}.armory-item-v24:after{content:'';position:absolute;right:-30px;top:-35px;width:90px;height:90px;border-radius:999px;background:var(--adim);opacity:.35}.item-rune-v24{width:42px;height:42px;border-radius:14px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;color:var(--ac);font-size:20px;font-weight:950;position:relative;z-index:1}.item-copy-v24{position:relative;z-index:1;min-width:0}.item-name-v24{font-size:13px;font-weight:950}.item-rank-v24{font-size:9px;color:var(--xp);font-family:var(--fd);margin-top:1px}.item-desc-v24{font-size:11px;color:var(--tx);line-height:1.35;margin-top:7px}.item-next-v24{font-size:9px;color:var(--mu);line-height:1.3;margin-top:5px}.item-buy-v24{position:relative;z-index:1;border:0;background:var(--ac);color:var(--bg);font-family:var(--fb);font-weight:950;font-size:12px;border-radius:13px;padding:11px 13px;min-width:126px;cursor:pointer;white-space:nowrap}.item-buy-v24:active{transform:scale(.98)}
.sheet-top-v24{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;background:linear-gradient(135deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:18px;padding:14px}.portrait-v24{width:68px;height:68px;border-radius:20px;background:var(--adim);border:1px solid var(--abr);display:flex;align-items:center;justify-content:center;font-size:36px;box-shadow:0 0 22px var(--adim)}.sheet-name-v24{font-size:19px;font-weight:950;line-height:1}.sheet-sub-v24{font-size:12px;color:var(--mu);margin-top:4px}.sheet-passive-v24{font-size:10px;color:var(--ac);margin-top:7px;background:var(--adim);border:1px solid var(--abr);border-radius:999px;padding:5px 8px;display:inline-block}.sheet-gold-v24{display:flex;align-items:center;gap:4px;background:rgba(251,191,36,.10);border:1px solid rgba(251,191,36,.36);border-radius:999px;padding:8px 11px;color:var(--xp);font-family:var(--fd);font-weight:950;white-space:nowrap}.sheet-gold-v24 .gold-coin-v24{width:24px;height:24px;margin-right:3px}.sheet-gold-v24 .gold-coin-v24:after{inset:7px}
.paper-grid-v24{display:grid;grid-template-columns:1fr 115px 1fr;gap:10px;align-items:stretch}.gear-left-v24,.gear-right-v24{display:flex;flex-direction:column;gap:8px}.gear-slot-v24{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:10px;min-height:58px}.gear-slot-v24 span{display:block;font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}.gear-slot-v24 b{display:block;font-size:12px;line-height:1.18;color:var(--tx)}.gear-slot-v24.weapon{border-color:rgba(251,191,36,.25)}.gear-slot-v24.armor{border-color:var(--abr)}.paper-doll-big-v24{background:radial-gradient(circle at 50% 30%,var(--adim),transparent 60%),var(--sf);border:1px solid var(--bd);border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:190px;font-size:54px;text-align:center;box-shadow:var(--sh)}.paper-doll-big-v24 span{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-top:8px}.char-stats-grid-v24{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.char-stat-v24{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:11px;text-align:center}.char-stat-v24 span{display:block;font-size:8px;color:var(--mu);text-transform:uppercase;letter-spacing:.9px;margin-bottom:5px}.char-stat-v24 b{font-family:var(--fd);font-size:17px;color:var(--ac)}.sheet-note-v24{font-size:10px;color:var(--mu);line-height:1.45;background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:11px}
/* Force all spell projectiles to originate from the player side and travel toward the enemy. */
.fx-fireball,.fx-arcane,.fx-poison,.fx-arrow{left:74px!important;right:auto!important;bottom:74px!important;animation:spellFlyPlayerV24 760ms ease-out forwards!important}.fx-slash{left:76px!important;right:auto!important}.fx-shield{left:64px!important;right:auto!important}.hero.cast{animation:heroCast 500ms ease-out!important}.hero.attack{animation:heroStrike .46s ease-in-out!important}@keyframes spellFlyPlayerV24{0%{opacity:0;transform:translateX(0) translateY(0) scale(.55)}12%{opacity:1}74%{opacity:1;transform:translateX(205px) translateY(-8px) scale(1.25)}100%{opacity:0;transform:translateX(230px) translateY(-2px) scale(.85)}}
@media(max-width:390px){.mini-loadout-v24{grid-template-columns:auto 1fr 1fr}.mini-loadout-v24 div:nth-last-child(-n+3){padding:7px 5px}.armory-item-v24{grid-template-columns:auto 1fr}.item-buy-v24{grid-column:1/-1;width:100%}.paper-grid-v24{grid-template-columns:1fr}.paper-doll-big-v24{min-height:140px;order:-1}.char-stats-grid-v24{grid-template-columns:repeat(2,1fr)}.sheet-top-v24{grid-template-columns:auto 1fr}.sheet-gold-v24{grid-column:1/-1;justify-self:start}}

/* ═══════════════════════════════════════════════════════
   APEXHEALTH PRO — SUBSCRIPTION STYLES
════════════════════════════════════════════════════════ */
.pro-card{background:linear-gradient(145deg,var(--sf),var(--sf2));border:1px solid var(--bd);border-radius:14px;padding:15px;margin-bottom:10px;position:relative;overflow:hidden;}
.pro-card::before{content:'';position:absolute;right:-50px;top:-50px;width:160px;height:160px;border-radius:50%;background:var(--adim);pointer-events:none;}
.pro-card-header{display:flex;align-items:center;gap:11px;margin-bottom:13px;position:relative;}
.pro-card-crown{font-size:30px;line-height:1;flex-shrink:0;}
.pro-card-info{flex:1;}
.pro-card-name{font-size:16px;font-weight:900;color:var(--tx);letter-spacing:-.2px;}
.pro-card-price{font-size:11px;color:var(--mu);margin-top:2px;}
.pro-badge{display:none;align-items:center;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--ac);background:var(--adim);border:1px solid var(--abr);border-radius:999px;padding:5px 10px;font-weight:900;white-space:nowrap;margin-left:auto;}
.pro-features{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;}
.pro-feature-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--tx);}
.pro-feature-row::before{content:'✓';color:var(--ac);font-weight:900;font-size:13px;flex-shrink:0;}
.pro-upgrade-btn{width:100%;padding:14px;background:var(--ac);color:var(--bg);border:none;border-radius:12px;font-family:var(--fb);font-size:14px;font-weight:900;cursor:pointer;margin-bottom:5px;transition:opacity .15s;}
.pro-upgrade-btn:disabled{opacity:.55;cursor:not-allowed;}
.pro-upgrade-btn:active:not(:disabled){opacity:.88;}
.pro-active-msg{display:none;font-size:11px;color:var(--ac);text-align:center;line-height:1.4;padding:9px 12px;background:var(--adim);border:1px solid var(--abr);border-radius:10px;}

/* Pro Required Modal */
.pro-required-box{text-align:center;}
.pro-required-crown{font-size:38px;margin-bottom:8px;}
.pro-features-modal{text-align:left;margin-bottom:14px;}
.pro-price-line{font-size:11px;color:var(--mu);text-align:center;margin-bottom:14px;}

/* Pro nav badge on AI plan button */
.pro-lock-tag{display:inline-flex;align-items:center;gap:3px;font-size:9px;color:var(--xp);background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.3);border-radius:999px;padding:3px 7px;font-weight:900;vertical-align:middle;margin-left:6px;}

/* Auth gate hidden state */
#auth-gate.hidden{display:none;}
body.waitlist-mode{padding-bottom:0;}
body.waitlist-mode #nav{display:none;}
.beta-waitlist-page{min-height:100dvh;background:radial-gradient(circle at 50% 0%, rgba(198,241,53,.13), transparent 34%),linear-gradient(180deg,#101114 0%,var(--bg) 62%);}
.beta-waitlist-page.on{display:block;}
.waitlist-shell{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:calc(22px + env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom));}
.waitlist-card{width:100%;max-width:390px;background:rgba(26,26,29,.94);border:1px solid rgba(255,255,255,.08);border-radius:26px;padding:24px 18px 20px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.42);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}
.waitlist-brand{font-family:var(--fd);font-size:15px;font-weight:900;letter-spacing:.2px;color:var(--tx);margin-bottom:14px;}
.waitlist-brand em{font-style:normal;color:var(--ac);}
.waitlist-pex{width:116px;height:116px;margin:0 auto 12px;border-radius:32px;background:radial-gradient(circle at 50% 38%,var(--adim),rgba(255,255,255,.03) 62%);display:flex;align-items:center;justify-content:center;border:1px solid rgba(198,241,53,.18);overflow:hidden;}
.waitlist-pex img{width:118px;height:118px;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(0,0,0,.34));}
.waitlist-kicker{display:inline-flex;align-items:center;justify-content:center;height:26px;padding:0 12px;border-radius:999px;background:var(--adim);border:1px solid var(--abr);color:var(--ac);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:1.4px;margin-bottom:12px;}
.waitlist-card h1{font-size:28px;line-height:1.04;letter-spacing:0;color:var(--tx);margin:0 0 12px;font-weight:950;}
.waitlist-card p{font-size:13px;line-height:1.45;color:rgba(240,240,240,.72);margin:0 auto 7px;max-width:310px;}
.waitlist-form{display:grid;gap:9px;margin-top:18px;}
.waitlist-form .auth-gate-input{text-align:left;}
.waitlist-error{margin:14px 0 0;padding:10px 12px;border-radius:13px;background:rgba(239,68,68,.10);border:1px solid rgba(239,68,68,.26);color:#fecaca;font-size:12px;line-height:1.4;}
.waitlist-check{width:78px;height:78px;margin:8px auto 16px;border-radius:24px;background:var(--ac);color:var(--bg);display:grid;place-items:center;font-size:40px;font-weight:950;box-shadow:0 16px 34px rgba(198,241,53,.20);}
.waitlist-position{margin:14px auto 6px;padding:14px;border-radius:17px;background:var(--sf2);border:1px solid var(--bd2);color:var(--tx);font-size:17px;font-weight:900;}
.waitlist-success .auth-gate-secondary{margin-top:18px;}
.debug-analytics-page{min-height:100dvh;padding:16px;}
.debug-analytics-card{margin:18px auto;max-width:390px;padding:16px;}
.debug-analytics-title{font-size:20px;font-weight:950;margin-bottom:14px;color:var(--tx);}
.debug-analytics-row{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--bd);}
.debug-analytics-row span{color:var(--mu);font-size:12px;}
.debug-analytics-row b{color:var(--tx);font-size:12px;text-align:right;word-break:break-word;}
.debug-analytics-card button{margin-top:12px;}

/* ══════════════════════════════════════
   WORKOUT REWARD SCREEN
══════════════════════════════════════ */
.reward-ov{position:fixed;inset:0;z-index:9900;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.72);opacity:0;pointer-events:none;transition:opacity .3s;}
.reward-ov.on{opacity:1;pointer-events:all;}
.reward-box{width:100%;max-width:480px;background:var(--sf);border-radius:24px 24px 0 0;padding:28px 20px 40px;transform:translateY(100%);transition:transform .4s cubic-bezier(.22,1,.36,1);max-height:90vh;overflow-y:auto;}
.reward-ov.on .reward-box{transform:translateY(0);}
.reward-kicker{font-size:10px;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:var(--mu);text-align:center;margin-bottom:6px;}
.reward-title{font-size:22px;font-weight:900;color:var(--tx);text-align:center;margin-bottom:10px;font-family:var(--fd);}
.reward-xp-badge{display:block;font-size:20px;font-weight:900;color:var(--ac);background:var(--adim);border:1.5px solid var(--abr);border-radius:999px;padding:8px 20px;margin:0 auto 8px;text-align:center;width:fit-content;font-family:var(--fd);}
.reward-gold-badge{display:block;font-size:15px;font-weight:800;color:#fbbf24;background:rgba(251,191,36,.12);border:1.5px solid rgba(251,191,36,.4);border-radius:999px;padding:6px 16px;margin:0 auto 16px;text-align:center;width:fit-content;font-family:var(--fd);}
.reward-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px;}
.reward-stat{background:var(--sf2);border:1px solid var(--bd);border-radius:14px;padding:14px 8px;text-align:center;}
.reward-stat-v{font-size:22px;font-weight:900;color:var(--tx);font-family:var(--fd);}
.reward-stat-l{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:.8px;margin-top:3px;}
.reward-level-up{background:var(--adim);border:1.5px solid var(--abr);border-radius:12px;padding:12px 16px;text-align:center;color:var(--ac);font-weight:900;font-size:14px;margin-bottom:14px;animation:pulse-glow 1.5s ease-in-out infinite alternate;}
@keyframes pulse-glow{from{box-shadow:0 0 0 0 var(--abr);}to{box-shadow:0 0 18px 4px var(--abr);}}
.reward-quest-section{margin-bottom:16px;}
.reward-quest-label{display:flex;justify-content:space-between;font-size:11px;color:var(--mu);margin-bottom:6px;}
.reward-quest-label span:last-child{color:var(--ac);font-weight:700;}
.reward-quest-bg{height:6px;background:var(--bd);border-radius:999px;overflow:hidden;}
.reward-quest-fill{height:100%;background:var(--ac);border-radius:999px;transition:width .5s ease;}
.reward-pr-list{background:var(--sf2);border:1px solid var(--bd);border-radius:14px;padding:12px;margin-bottom:16px;display:flex;flex-direction:column;gap:6px;}
.rwd-pr-item{font-size:12px;color:var(--tx);line-height:1.4;}
.reward-btn-fight{width:100%;padding:15px;background:var(--adim);border:1.5px solid var(--abr);border-radius:14px;color:var(--ac);font-size:14px;font-weight:900;cursor:pointer;font-family:var(--fb);margin-bottom:8px;transition:opacity .15s;}
.reward-btn-fight:active{opacity:.8;}
.reward-btn-continue{width:100%;padding:14px;background:none;border:1px solid var(--bd2);border-radius:14px;color:var(--mu);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--fb);transition:opacity .15s;}
.reward-btn-continue:active{opacity:.7;}

/* ══════════════════════════════════════
   PR CELEBRATION OVERLAY
══════════════════════════════════════ */
.pr-cel-ov{position:fixed;inset:0;z-index:9950;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.9);opacity:0;pointer-events:none;transition:opacity .35s;}
.pr-cel-ov.on{opacity:1;pointer-events:all;}
.pr-cel-box{position:relative;width:min(92vw,380px);background:var(--sf);border-radius:22px;padding:32px 24px 28px;text-align:center;overflow:hidden;border:2px solid var(--pr-glow, var(--ac));box-shadow:0 0 40px 8px var(--pr-glow, var(--abr)),0 0 0 1px var(--bd) inset;animation:pr-border-pulse 2s ease-in-out infinite alternate;}
@keyframes pr-border-pulse{from{box-shadow:0 0 20px 4px var(--pr-glow, var(--abr));}to{box-shadow:0 0 50px 16px var(--pr-glow, var(--abr));}}
.pr-cel-header{font-size:11px;font-weight:900;letter-spacing:3px;text-transform:uppercase;color:var(--pr-glow,var(--ac));margin-bottom:18px;}
.pr-cel-body{margin-bottom:24px;}
.pr-cel-name{font-size:20px;font-weight:900;color:var(--tx);margin-bottom:10px;font-family:var(--fd);}
.pr-cel-result{font-size:28px;font-weight:900;color:var(--pr-glow,var(--ac));font-family:var(--fd);margin-bottom:8px;}
.pr-cel-improvement{font-size:16px;font-weight:700;color:var(--ac);margin-bottom:6px;}
.pr-cel-prev{font-size:11px;color:var(--mu);margin-bottom:4px;}
.pr-cel-counter{font-size:10px;color:var(--mu);letter-spacing:.5px;margin-top:8px;}
.pr-cel-btns{display:flex;gap:10px;justify-content:center;}
.pr-cel-next-btn{flex:1;padding:13px;background:var(--sf2);border:1px solid var(--bd2);border-radius:12px;color:var(--tx);font-size:13px;font-weight:700;cursor:pointer;font-family:var(--fb);}
.pr-cel-done-btn{flex:1;padding:13px;background:var(--adim);border:1.5px solid var(--abr);border-radius:12px;color:var(--ac);font-size:13px;font-weight:900;cursor:pointer;font-family:var(--fb);}
.pr-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden;}
.pr-particle{position:absolute;bottom:-20px;animation:particle-rise linear both;opacity:0;}
@keyframes particle-rise{0%{transform:translateY(0) scale(0);opacity:0;}20%{opacity:1;}80%{opacity:.8;}100%{transform:translateY(-110vh) scale(1.2) rotate(360deg);opacity:0;}}

/* ══════════════════════════════════════
   WORKOUT HISTORY IMPROVEMENTS
══════════════════════════════════════ */
.wl-c{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:12px;margin-bottom:8px;}
.wl-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.wl-n{font-size:13px;font-weight:700;color:var(--tx);}
.wl-hist-btn{font-size:10px;padding:4px 10px;background:var(--sf2);border:1px solid var(--bd2);border-radius:8px;color:var(--mu);cursor:pointer;font-family:var(--fb);}
.wl-m{font-size:11px;color:var(--mu);margin-bottom:6px;}
.wl-detail{margin-top:6px;border-top:1px solid var(--bd);padding-top:6px;}
.wl-line{font-size:11px;color:var(--mu);margin-bottom:2px;}
.wh-prs{margin-bottom:14px;}
.wh-pr-title{font-size:11px;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;}
.history-empty{text-align:center;padding:24px;color:var(--mu);font-size:13px;line-height:1.6;}

/* ══════════════════════════════════════
   SPELL PROGRESSION SYSTEM
══════════════════════════════════════ */
.spell-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0;}
.spell-slot{background:var(--sf2);border:1px solid var(--bd);border-radius:12px;padding:12px 8px;text-align:center;position:relative;}
.spell-slot.locked{opacity:.5;}
.spell-slot.unlocked{border-color:var(--abr);}
.spell-slot-num{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;}
.spell-slot-icon{font-size:22px;margin-bottom:4px;}
.spell-slot-name{font-size:10px;color:var(--tx);font-weight:700;}
.spell-slot-sub{font-size:9px;color:var(--mu);margin-top:2px;}
.spell-lock-badge{position:absolute;top:6px;right:6px;font-size:9px;background:var(--bd);color:var(--mu);border-radius:6px;padding:2px 5px;}
.spell-section-title{font-size:11px;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:1px;margin:16px 0 8px;}

/* ══════════════════════════════════════
   SETTINGS REDESIGN
══════════════════════════════════════ */
.set-card{background:var(--sf);border:1px solid var(--bd);border-radius:12px;margin-bottom:10px;overflow:hidden;}
.set-card-padded{padding:10px 14px;}
.set-row{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;width:100%;text-align:left;background:transparent;border:none;color:inherit;font-family:var(--fb);cursor:default;box-sizing:border-box;}
.set-row-btn{cursor:pointer;transition:background .12s;}
.set-row-btn:active{background:var(--sf2);}
.set-row-label{font-size:14px;color:var(--tx);font-weight:500;flex:1;}
.set-row-value{font-size:12px;color:var(--mu);text-align:right;max-width:55%;word-break:break-all;}
.set-row-right{display:flex;align-items:center;gap:7px;}
.set-chevron{font-size:20px;color:var(--mu);line-height:1;}
.set-divider{height:1px;background:var(--bd);margin:0 14px;}
.set-row-danger .set-row-label{color:#ef4444;}
.set-chevron-danger{color:rgba(239,68,68,.5);}
.coming-soon-badge{font-size:9px;font-weight:800;letter-spacing:.5px;padding:2px 7px;background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.35);border-radius:10px;color:#fbbf24;text-transform:uppercase;white-space:nowrap;}
.set-sync-status{font-size:10px;color:var(--mu);padding:4px 2px 8px;line-height:1.4;}
.set-btn-accent{padding:9px;background:var(--adim);border:1px solid var(--abr);border-radius:9px;color:var(--ac);font-size:11px;font-weight:700;cursor:pointer;font-family:var(--fb);}
.set-btn-muted{padding:9px;background:var(--sf2);border:1px solid var(--bd2);border-radius:9px;color:var(--tx);font-size:11px;font-weight:700;cursor:pointer;font-family:var(--fb);}

/* Membership Card */
.membership-card{background:linear-gradient(135deg,#12121f 0%,#1a1a2e 50%,#0f1f3d 100%);border:1px solid rgba(198,241,53,.18);border-radius:14px;padding:18px 16px 16px;margin-bottom:10px;position:relative;overflow:hidden;}
.membership-card::before{content:'';position:absolute;top:-40px;right:-30px;width:120px;height:120px;background:radial-gradient(circle,rgba(198,241,53,.12),transparent 70%);pointer-events:none;}
.membership-badge-row{margin-bottom:10px;}
.membership-badge{display:inline-flex;align-items:center;padding:3px 9px;background:rgba(198,241,53,.1);border:1px solid rgba(198,241,53,.35);border-radius:20px;color:var(--ac);font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;}
.membership-title{font-size:22px;font-weight:800;color:var(--tx);margin-bottom:5px;letter-spacing:-.3px;}
.membership-sub{font-size:12px;color:var(--mu);line-height:1.45;}

/* Danger Zone */
.danger-zone-lbl{color:#ef4444 !important;}
.danger-card{border-color:rgba(239,68,68,.22) !important;}
.danger-divider{background:rgba(239,68,68,.12);}

/* Version Footer */
.app-version-footer{text-align:center;padding:22px 10px 12px;color:var(--mu);font-size:11px;line-height:1.9;letter-spacing:.3px;}

/* Apex Modal System */
.apex-modal-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.87);z-index:350;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;}
.apex-modal-ov.on{display:flex;}
.apex-modal-box{background:var(--sf);border:1px solid var(--bd);border-radius:18px;padding:26px 20px 20px;width:100%;max-width:380px;text-align:center;box-sizing:border-box;}
.apex-modal-icon{font-size:34px;margin-bottom:12px;line-height:1;}
.apex-modal-title{font-size:19px;font-weight:800;color:var(--tx);margin-bottom:10px;letter-spacing:-.2px;}
.apex-modal-body{font-size:13px;color:var(--mu);line-height:1.65;margin-bottom:20px;text-align:left;}
.apex-modal-btn-primary{width:100%;padding:13px;background:var(--ac);color:var(--bg);border-radius:11px;font-weight:700;font-size:14px;cursor:pointer;border:none;font-family:var(--fb);margin-bottom:8px;}
.apex-modal-btn-danger{width:100%;padding:13px;background:#dc2626;color:#fff;border-radius:11px;font-weight:700;font-size:14px;cursor:pointer;border:none;font-family:var(--fb);margin-bottom:8px;transition:opacity .15s;}
.apex-modal-btn-danger:disabled{opacity:.35;cursor:not-allowed;}
.apex-modal-btn-cancel{width:100%;padding:11px;background:transparent;color:var(--mu);border-radius:11px;font-weight:600;font-size:13px;cursor:pointer;border:1px solid var(--bd);font-family:var(--fb);}
.apex-modal-hint{font-size:11px;color:var(--mu);margin-bottom:12px;}

/* ═══════════════════════════════════════
   HOME V21 REDESIGN
══════════════════════════════════════ */
.home-v21{padding:0 14px 88px;}

/* Greeting card */
.home-greeting-card{background:linear-gradient(135deg,var(--sf) 0%,var(--sf2) 100%);border:1px solid var(--bd);border-radius:18px;padding:15px;margin:10px 0 10px;box-shadow:var(--sh,none);}
.home-greeting-main{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px;}
.home-greeting-left{flex:1;min-width:0;}
.home-greeting-text{font-size:17px;font-weight:800;color:var(--tx);line-height:1.2;margin-bottom:3px;}
.home-greeting-name{color:var(--ac);}
.home-level-row{font-size:11px;color:var(--mu);font-weight:600;}
.home-level-title{color:var(--tx);font-weight:700;}
.home-greeting-side{display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex-shrink:0;}
.home-streak-badge{display:inline-flex;align-items:center;gap:3px;padding:5px 10px;background:rgba(249,115,22,.13);border:1px solid rgba(249,115,22,.3);border-radius:20px;color:#f97316;font-size:11px;font-weight:800;white-space:nowrap;}
.home-streak-zero{font-size:10px;color:var(--mu);}
.home-settings-btn{width:28px;height:28px;background:var(--sf2);border:1px solid var(--bd);border-radius:8px;color:var(--mu);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;}
.home-settings-btn svg{width:14px;height:14px;}
.home-xp-hint{font-size:11px;color:var(--mu);margin-bottom:7px;}
.home-xp-track{height:5px;background:var(--bd);border-radius:3px;overflow:hidden;}
.home-xp-fill{height:100%;background:var(--ac);border-radius:3px;transition:width .6s ease;}

/* Section wrapper */
.home-section-v21{margin-bottom:10px;}
.home-section-lbl{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1.2px;font-weight:800;margin:0 0 5px 2px;}

/* Base card */
.home-card{background:var(--sf);border:1px solid var(--bd);border-radius:14px;overflow:hidden;}

/* Quest card */
.home-quest-card{padding:0;}
.home-qi{display:flex;align-items:center;gap:10px;padding:11px 13px;border-bottom:1px solid var(--bd);}
.home-qi:last-of-type{border-bottom:none;}
.home-qi[id="home-weight-qi"]{cursor:pointer;}
.home-qi[id="home-weight-qi"]:active{background:var(--sf2);}
.home-qi.done{opacity:.6;}
.home-qi-check{font-size:17px;width:20px;text-align:center;flex-shrink:0;line-height:1;}
.home-qi.done .home-qi-check{color:var(--ac);}
.home-qi-body{flex:1;min-width:0;}
.home-qi-name{font-size:13px;font-weight:600;color:var(--tx);margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.home-qi.done .home-qi-name{color:var(--mu);text-decoration:line-through;}
.home-qi-bar{height:4px;background:var(--bd);border-radius:2px;overflow:hidden;}
.home-qi-fill{height:100%;background:var(--ac);border-radius:2px;transition:width .45s ease;}
.home-qi-xp{font-size:10px;font-weight:800;color:var(--ac);white-space:nowrap;flex-shrink:0;opacity:.75;}
.home-qi.done .home-qi-xp{color:var(--mu);}
.home-quest-foot{display:flex;align-items:center;gap:10px;padding:10px 13px;font-size:11px;color:var(--mu);font-weight:700;}
.home-qf-track{flex:1;height:4px;background:var(--bd);border-radius:2px;overflow:hidden;}
.home-qf-fill{height:100%;background:var(--ac);border-radius:2px;transition:width .45s ease;}
.home-quest-complete{display:flex;align-items:center;gap:12px;padding:14px 13px;background:var(--adim);}
.home-quest-complete>span{font-size:24px;flex-shrink:0;}
.home-qc-title{font-size:14px;font-weight:800;color:var(--ac);}
.home-qc-sub{font-size:11px;color:var(--mu);margin-top:2px;}

/* Progress bars card */
.home-prog-card{padding:0;}
.home-pr{display:block;width:100%;padding:11px 13px;border:none;border-bottom:1px solid var(--bd);background:transparent;color:inherit;font-family:var(--fb);cursor:pointer;text-align:left;box-sizing:border-box;}
.home-pr-last{cursor:default;border-bottom:none;}
.home-pr:not(.home-pr-last):active{background:var(--sf2);}
.home-pr-hdr{display:flex;justify-content:space-between;margin-bottom:5px;font-size:12px;}
.home-pr-hdr span:first-child{font-weight:700;color:var(--tx);}
.home-pr-hdr span:last-child{color:var(--mu);}
.home-pr-track{height:5px;background:var(--bd);border-radius:3px;overflow:hidden;}
.home-pr-fill{height:100%;background:var(--ac);border-radius:3px;transition:width .55s ease;}
.hpf-cal{background:var(--cal);}
.hpf-pro{background:var(--pro);}
.hpf-carb{background:var(--carb,#f59e0b);}
.hpf-fat{background:var(--fat,#a78bfa);}
.hpf-wat{background:var(--wat);}
.hpr-done{color:var(--grn,#22c55e);font-weight:700;}
.hpr-pend{color:var(--mu);}
.home-nutrition-empty{padding:16px 13px;text-align:left;}
.home-nutrition-empty strong{display:block;font-size:14px;color:var(--tx);margin-bottom:4px;}
.home-nutrition-empty span{display:block;font-size:12px;line-height:1.45;color:var(--mu);margin-bottom:12px;}
.home-nutrition-empty button{width:100%;border:0;border-radius:12px;background:var(--ac);color:var(--bg);font-family:var(--fb);font-weight:900;font-size:12px;padding:11px;cursor:pointer;}

/* Workout card */
.home-wo-card{padding:13px;}
.home-wo-done-row{display:flex;align-items:center;gap:11px;margin-bottom:10px;}
.home-wo-done-ico{font-size:26px;flex-shrink:0;}
.home-wo-name{font-size:16px;font-weight:800;color:var(--tx);margin-bottom:4px;}
.home-wo-meta{font-size:12px;color:var(--mu);line-height:1.45;}
.home-wo-last{font-size:11px;color:var(--mu);}
.home-cta-btn{display:block;width:100%;margin-top:12px;padding:12px;background:var(--ac);color:var(--bg);border:none;border-radius:11px;font-weight:800;font-size:14px;cursor:pointer;font-family:var(--fb);text-align:center;transition:opacity .12s;}
.home-cta-btn:active{opacity:.82;}
.home-wo-secondary{display:block;width:100%;margin-top:8px;padding:9px;background:transparent;color:var(--mu);border:1px solid var(--bd);border-radius:10px;font-weight:600;font-size:12px;cursor:pointer;font-family:var(--fb);text-align:center;}

/* Character card */
.home-char-card{padding:13px;}
.home-char-top{display:flex;align-items:center;gap:11px;margin-bottom:9px;}
.home-char-av{font-size:30px;width:40px;text-align:center;flex-shrink:0;line-height:1;}
.home-char-info{flex:1;}
.home-char-class{font-size:14px;font-weight:800;color:var(--tx);}
.home-char-lv{font-size:11px;color:var(--mu);margin-top:2px;}
.home-char-gold{font-size:13px;font-weight:800;color:var(--xp,#fbbf24);white-space:nowrap;}
.home-char-xp-row{display:flex;justify-content:space-between;font-size:11px;color:var(--mu);}
.home-char-btn{display:block;width:100%;margin-top:12px;padding:9px;background:transparent;color:var(--ac);border:1px solid var(--abr);border-radius:10px;font-weight:700;font-size:12px;cursor:pointer;font-family:var(--fb);text-align:center;}

/* Achievement card */
.home-ach-card{display:flex;align-items:center;gap:12px;padding:13px;}
.home-ach-ico{font-size:28px;width:38px;text-align:center;flex-shrink:0;line-height:1;}
.home-ach-name{font-size:14px;font-weight:800;color:var(--tx);margin-bottom:3px;}
.home-ach-sub{font-size:11px;color:var(--ac);font-weight:700;}

/* ── YOUR PLAN CARD ──────────────────────────────────────────── */
.yp-card{padding:0;overflow:hidden;}

/* Welcome state (plan incomplete) */
.yp-welcome{padding:22px 16px 20px;background:linear-gradient(160deg,rgba(198,241,53,.06) 0%,transparent 55%);}
.yp-eyebrow{font-size:10px;font-weight:800;color:var(--ac);text-transform:uppercase;letter-spacing:1.4px;margin-bottom:10px;}
.yp-title{font-size:22px;font-weight:900;color:var(--tx);letter-spacing:-.4px;line-height:1.1;margin-bottom:8px;}
.yp-sub{font-size:12px;color:var(--mu);line-height:1.55;margin-bottom:20px;}
.yp-progress-row{display:flex;align-items:center;gap:10px;margin-bottom:20px;}
.yp-dots{display:flex;gap:6px;}
.yp-dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.14);transition:background .3s;}
.yp-dots span.on{background:var(--ac);}
.yp-progress-label{font-size:11px;font-weight:700;color:var(--mu);}

/* Complete state (plan active) */
.yp-hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 12px;border-bottom:1px solid var(--bd);}
.yp-hdr-title{font-size:15px;font-weight:900;color:var(--tx);}
.yp-hdr-badge{font-size:10px;font-weight:800;color:var(--ac);background:var(--adim);border-radius:6px;padding:3px 8px;text-transform:uppercase;letter-spacing:.8px;}
.yp-summary{padding:2px 0;}
.yp-row{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--bd);}
.yp-row:last-child{border-bottom:none;}
.yp-row-key{font-size:12px;color:var(--mu);font-weight:600;}
.yp-row-val{font-size:13px;font-weight:800;color:var(--tx);}
.yp-footer{padding:12px 14px 14px;border-top:1px solid var(--bd);}
/* Pex home setup close button */
.pex-home-close{position:absolute;top:14px;left:14px;background:transparent;border:none;color:var(--mu);font-size:13px;font-weight:700;cursor:pointer;padding:4px 8px;border-radius:8px;font-family:var(--fb);}
.pex-home-close:active{background:var(--sf2);}
.pex-setup-box{position:relative;}

/* Adventure notification badge on nav button */
.nb{position:relative;}
.adv-notif-badge{position:absolute;top:4px;right:8px;min-width:16px;height:16px;padding:0 4px;background:#ef4444;color:#fff;border-radius:999px;font-size:9px;font-weight:900;font-family:var(--fd);line-height:16px;text-align:center;pointer-events:none;}

/* Home screen adventure notification card */
.home-adv-notif-card{padding:13px 14px;}
.home-adv-dot-row{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:var(--tx);margin-bottom:9px;}
.home-adv-dot{display:inline-block;width:8px;height:8px;background:#22c55e;border-radius:50%;flex-shrink:0;}
.adv-inbox-item-mini{font-size:12px;color:var(--mu);padding:4px 0;border-top:1px solid var(--bd);line-height:1.4;}
.home-adv-notif-btn{margin-top:10px;}

/* Adventure inbox in adventure page */
.adv-inbox-section{padding:16px 14px 20px;margin-top:8px;border-top:1px solid var(--bd);}
.adv-inbox-title{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--mu);margin-bottom:10px;}
.adv-inbox-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:9px 0;border-bottom:1px solid var(--bd);}
.adv-inbox-row:last-child{border-bottom:none;}
.adv-inbox-text{font-size:13px;font-weight:600;color:var(--tx);line-height:1.4;flex:1;}
.adv-inbox-time{font-size:10px;color:var(--mu);white-space:nowrap;flex-shrink:0;padding-top:2px;}

/* ═══════════════════════════════════════
   NUTRITION PREMIUM REDESIGN
══════════════════════════════════════ */

/* Segmented control — overrides generic .app-subtabs pill layout */
.app-subtabs.nutrition-tabs-v23{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;padding:4px;background:var(--sf);border:1px solid var(--bd);border-radius:14px;margin:12px 0 0;overflow:hidden;position:sticky;top:49px;z-index:19;scrollbar-width:none;}
.app-subtabs.nutrition-tabs-v23::-webkit-scrollbar{display:none;}
.app-subtabs.nutrition-tabs-v23 .app-subtab{width:100%;padding:11px 4px;border-radius:11px;border:none;background:transparent;color:var(--mu);font-size:13px;font-weight:700;text-align:center;box-shadow:none;letter-spacing:0;}
.app-subtabs.nutrition-tabs-v23 .app-subtab.on{background:var(--adim);color:var(--ac);box-shadow:none;}

/* Overview wrapper */
.nut-ov-v23{padding:14px 0 96px;}

/* Unified 2x2 macro grid */
.nut-macro-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;}
.nut-mc{background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:18px 12px 15px;display:flex;flex-direction:column;align-items:center;}
.nut-mc-ring{position:relative;flex-shrink:0;margin-bottom:10px;}
.nut-ring-svg{display:block;width:80px;height:80px;}
.nut-mc-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:13px;font-weight:700;}
.nut-mc-name{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;font-weight:800;margin-bottom:6px;}
.nut-mc-vals{display:flex;align-items:baseline;gap:2px;font-size:11px;margin-bottom:5px;}
.nut-mc-cur{font-family:var(--fd);font-size:22px;font-weight:700;color:var(--tx);}
.nut-mc-sep{color:var(--mu);font-size:11px;}
.nut-mc-gl{font-size:11px;color:var(--mu);}
.nut-mc-unit{font-size:11px;color:var(--mu);}
.nut-mc-rem{font-size:11px;color:var(--mu);text-align:center;line-height:1.3;}
/* Keep sm variant equal to main grid — no smaller cards */
.nut-macro-grid-sm .nut-mc{padding:18px 12px 15px;}
.nut-macro-grid-sm .nut-ring-svg{width:80px;height:80px;}
.nut-macro-grid-sm .nut-mc-pct{font-size:13px;}
.nut-macro-grid-sm .nut-mc-cur{font-size:22px;}

/* Premium water card */
.nut-water-card{background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:16px;margin-bottom:12px;}
.nut-water-card.nut-water-done{border-color:var(--wat);background:linear-gradient(135deg,var(--sf) 0%,rgba(56,189,248,.06) 100%);}
.nut-water-top{display:flex;align-items:center;gap:16px;margin-bottom:12px;}
.nut-water-ring{position:relative;flex-shrink:0;}
.nut-water-ring .nut-ring-svg{width:88px;height:88px;}
.nut-water-ring .nut-mc-pct{font-size:14px;}
.nut-water-info{flex:1;min-width:0;}
.nut-water-name{font-size:10px;font-weight:800;color:var(--wat);text-transform:uppercase;letter-spacing:1px;margin-bottom:5px;}
.nut-water-vals{font-family:var(--fd);font-size:24px;font-weight:700;color:var(--tx);margin-bottom:4px;}
.nut-water-sep{font-size:14px;color:var(--mu);font-weight:400;}
.nut-water-rem{font-size:12px;color:var(--mu);}
.nut-water-card.nut-water-done .nut-water-rem{color:var(--wat);font-weight:700;}
.nut-water-btns{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;}
.nut-water-btns::-webkit-scrollbar{display:none;}
.nut-wadd{padding:8px 14px;border-radius:22px;background:rgba(56,189,248,.1);border:1px solid rgba(56,189,248,.2);color:var(--wat);font-size:12px;font-weight:700;cursor:pointer;font-family:var(--fb);white-space:nowrap;flex-shrink:0;transition:opacity .1s;}
.nut-wadd:active{opacity:.7;}
.nut-wadd-cust{padding:8px 14px;border-radius:22px;background:var(--sf2);border:1px solid var(--bd);color:var(--mu);font-size:12px;font-weight:700;cursor:pointer;font-family:var(--fb);white-space:nowrap;flex-shrink:0;}
.nut-wrst{background:none;border:none;color:var(--mu2);font-size:15px;cursor:pointer;padding:8px 6px;font-family:var(--fb);margin-left:auto;flex-shrink:0;}
.nut-wcust-row{display:flex;gap:7px;margin-top:10px;align-items:center;}
.nut-wcust-row.hidden{display:none;}
.nut-wcust-inp{flex:1;background:var(--sf2);border:1px solid var(--bd);border-radius:10px;color:var(--tx);font-family:var(--fb);font-size:13px;padding:9px 11px;outline:none;}
.nut-wcust-inp::placeholder{color:var(--mu);}

/* Meals section header */
.nut-meals-hdr{display:flex;align-items:center;justify-content:space-between;padding:20px 0 10px;}
.nut-meals-title{font-size:16px;font-weight:800;color:var(--tx);letter-spacing:-.2px;}
.nut-meals-clear{font-size:12px;color:var(--mu);background:none;border:none;cursor:pointer;font-family:var(--fb);}

/* Nutrition task card */
.nut-task-card{background:var(--sf);border:1px solid var(--bd);border-radius:14px;overflow:hidden;margin-bottom:10px;}
.nut-task-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px;}
.nut-task-title{font-size:11px;font-weight:800;color:var(--tx);text-transform:uppercase;letter-spacing:.8px;}
.nut-task-count{font-size:11px;font-weight:800;color:var(--ac);}
.nut-task-bar{height:3px;background:var(--bd);margin:0 14px 8px;}
.nut-task-bar-fill{height:100%;background:var(--ac);border-radius:2px;transition:width .5s ease;}
.nut-task-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--bd);}
.nut-task-item.done{opacity:.6;}
.nut-task-check{font-size:16px;width:20px;text-align:center;flex-shrink:0;}
.nut-task-item.done .nut-task-check{color:var(--ac);}
.nut-task-nm{flex:1;font-size:13px;font-weight:600;color:var(--tx);}
.nut-task-item.done .nut-task-nm{color:var(--mu);text-decoration:line-through;}
.nut-task-xp{font-size:11px;font-weight:800;color:var(--ac);flex-shrink:0;}
.nut-task-item.done .nut-task-xp{color:var(--mu);}

/* Streak row */
.nut-streak-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px;}
.nut-streak-chip{padding:5px 10px;background:rgba(249,115,22,.1);border:1px solid rgba(249,115,22,.25);border-radius:20px;font-size:11px;font-weight:700;color:#f97316;white-space:nowrap;}

/* Weight tab */
.nut-weight-hdr{padding:4px 0 14px;}
.nut-weight-kicker{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1.5px;font-weight:800;margin-bottom:3px;}
.nut-weight-title{font-size:22px;font-weight:800;color:var(--tx);letter-spacing:-.3px;}
.nut-checkin-done{display:flex;align-items:center;gap:11px;background:var(--adim);border:1px solid var(--abr);border-radius:13px;padding:12px 13px;margin-bottom:10px;}
.nut-ci-check{font-size:24px;flex-shrink:0;}
.nut-ci-title{font-size:14px;font-weight:800;color:var(--ac);}
.nut-ci-sub{font-size:11px;color:var(--mu);margin-top:2px;}
.nut-weight-save-btn{white-space:nowrap;}
.nut-weight-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.nut-export-btn{padding:9px 14px;background:transparent;border:1px solid var(--bd);border-radius:9px;color:var(--mu);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--fb);}
.nut-weight-empty{font-size:12px;color:var(--mu);padding:16px 0;text-align:center;line-height:1.6;}

/* Weight progress card */
.nut-wp-card{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:14px 13px;margin-bottom:10px;}
.nut-wp-title{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:1px;font-weight:800;margin-bottom:12px;}
.nut-wp-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:12px;}
.nut-wp-stat{text-align:center;padding:8px 4px;background:var(--sf2);border-radius:10px;}
.nut-wp-stat.nut-wp-cur{background:var(--adim);border:1px solid var(--abr);}
.nut-wp-val{font-family:var(--fd);font-size:16px;font-weight:700;color:var(--tx);line-height:1;}
.nut-wp-val span{font-size:9px;color:var(--mu);margin-left:2px;font-weight:400;}
.nut-wp-stat.nut-wp-cur .nut-wp-val{color:var(--ac);}
.nut-wp-lbl{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.8px;margin-top:4px;}
.nut-wp-bar-wrap{height:6px;background:var(--bd);border-radius:4px;overflow:hidden;margin-bottom:7px;}
.nut-wp-bar-fill{height:100%;background:linear-gradient(90deg,var(--ac),var(--pro));border-radius:4px;transition:width .6s ease;}
.nut-wp-pct-row{display:flex;justify-content:space-between;font-size:11px;color:var(--mu);}
.nut-wp-goal-reached{font-size:15px;font-weight:800;color:var(--ac);text-align:center;padding:6px 0;}

/* Nutrition page bottom padding */
.nut-ov-v23{padding-bottom:96px;}
#nut-weight.app-panel.on,#nut-goals.app-panel.on{padding-bottom:96px;}

/* ── iOS Safari/Chrome auto-zoom fix ─────────────────────────────────────────
   Safari iOS zooms the viewport when a focused input has font-size < 16px.
   All inputs must be ≥ 16px. */
.set-i,
.body-stat-input,
.smart-row input,
.smart-row select,
.sg-manual-field input,
.ee-name-inp,
.ee-macro-inp,
.swap-search-input,
.live-set-row input,
.srv-n,
.gram-n,
.cex-name,
#cex-name,
#cex-notes,
.water-custom-input,
#water-custom-oz,
#ob-ht-ft,#ob-ht-in,#ob-age,#ob-cw,#ob-gw,#ob-cal-inp,#ob-pro-inp,#ob-carb-inp,#ob-fat-inp,
#g-cal,#g-pro,#g-carb,#g-fat,#g-water,#g-rest,
#ee-srv-n {
  font-size: 16px !important;
}

/* ── Plan-head alias for safe-area (custom exercise modal uses this class) */
.plan-head {
  padding: calc(13px + env(safe-area-inset-top)) 15px 13px;
  border-bottom: 1px solid var(--bd);
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--bg);
}

/* ── Workout complete overlay ── */
.complete-ov {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.88);
  z-index: 5000;
  align-items: flex-end;
  justify-content: center;
}
.complete-ov.on { display: flex; }
.complete-box {
  background: var(--sf);
  border-radius: 24px 24px 0 0;
  padding: 22px 18px calc(22px + env(safe-area-inset-bottom));
  width: 100%;
  max-width: 430px;
  border-top: 1px solid var(--bd);
}
.complete-title { font-family: var(--fd); font-size: 22px; font-weight: 900; margin-bottom: 4px; }
.complete-sub { font-size: 13px; color: var(--mu); margin-bottom: 14px; }
.complete-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-bottom: 14px; }
.mini-card { background: var(--bg); border: 1px solid var(--bd); border-radius: 12px; padding: 10px; text-align: center; }
.mini-label { font-size: 9px; color: var(--mu); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 4px; }
.mini-value { font-family: var(--fd); font-size: 18px; font-weight: 900; color: var(--ac); }
.complete-btn { width: 100%; padding: 14px; background: var(--ac); color: var(--bg); border: none; border-radius: 16px; font-family: var(--fb); font-weight: 900; font-size: 15px; cursor: pointer; margin-top: 10px; }

/* ── Calories burned estimate ── */
.cal-burn-est {
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(251,115,22,.08);
  border: 1px solid rgba(251,115,22,.25);
  border-radius: 12px;
  padding: 10px 13px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.cal-burn-ic { font-size: 18px; flex-shrink: 0; }
.cal-burn-val { font-family: var(--fd); font-size: 18px; font-weight: 900; color: var(--pro); }
.cal-burn-lbl { font-size: 13px; font-weight: 700; color: var(--tx); flex: 1; }
.cal-burn-note { font-size: 10px; color: var(--mu); width: 100%; margin-top: 2px; }

/* ── Exercise search: create-always chip ── */
.eli-create-always {
  background: var(--adim);
  border: 1.5px solid var(--abr);
  border-radius: 10px;
  margin-bottom: 6px;
  font-weight: 700;
  color: var(--ac);
}

/* ════════════════════════════════════════════════════════════
   APEXHEALTH V25 — Grand Polish Styles
   ════════════════════════════════════════════════════════════ */

/* ── HOME: Gold + class row beneath greeting ─────────────────── */
.v25-home-gold {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0 2px;
  border-top: 1px solid var(--bd);
  margin-top: 8px;
  flex-wrap: wrap;
}
.v25-home-gold-amt {
  font-size: 13px;
  font-weight: 800;
  color: var(--ac);
  font-family: var(--fd);
}
.v25-home-cls {
  font-size: 11px;
  color: var(--mu);
  flex: 1;
}
.v25-home-char-btn {
  background: none;
  border: none;
  color: var(--ac);
  font-weight: 700;
  font-size: 12px;
  cursor: pointer;
  font-family: var(--fb);
  padding: 0;
  margin-left: auto;
}

/* ── NUTRITION TASKS: Calorie removed + bonus indicator ────────── */
.v25-nut-bonus {
  font-size: 12px;
  color: var(--ac);
  font-weight: 700;
  padding: 8px 0 0;
  text-align: center;
  border-top: 1px solid var(--bd);
  margin-top: 8px;
}

/* ── WEIGHT BUTTON: Already earned state ───────────────────────── */
.v25-already-earned {
  background: var(--sf2) !important;
  color: var(--mu) !important;
  border: 1px solid var(--bd) !important;
}

/* ── CHARACTER SHEET V25 ───────────────────────────────────────── */
.v25-char-subtabs {
  display: flex;
  gap: 6px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--bd);
  padding-bottom: 10px;
}
.v25-subtab {
  padding: 6px 14px;
  border-radius: 20px;
  background: var(--sf2);
  border: 1px solid var(--bd);
  color: var(--mu);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--fb);
  transition: background .15s, color .15s;
}
.v25-subtab.on {
  background: var(--ac);
  color: var(--bg);
  border-color: var(--ac);
}
.v25-char-body {
  padding: 0;
}

/* Hero overview card */
.v25-char-hero {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--adim);
  border: 1px solid var(--abr);
  border-radius: 16px;
  padding: 14px;
  margin-bottom: 12px;
}
.v25-hero-av {
  font-size: 42px;
  line-height: 1;
  flex-shrink: 0;
}
.v25-hero-info { flex: 1; }
.v25-hero-name {
  font-family: var(--fd);
  font-size: 18px;
  font-weight: 900;
  color: var(--tx);
}
.v25-hero-cls {
  font-size: 12px;
  color: var(--ac);
  font-weight: 700;
  margin-top: 2px;
}
.v25-hero-lv {
  font-size: 11px;
  color: var(--mu);
  margin-top: 2px;
}
.v25-hero-gold {
  font-family: var(--fd);
  font-size: 16px;
  font-weight: 800;
  color: var(--ac);
  flex-shrink: 0;
}

/* XP card */
.v25-xp-card {
  background: var(--sf);
  border: 1px solid var(--bd);
  border-radius: 14px;
  padding: 12px 14px;
  margin-bottom: 12px;
}
.v25-xp-row {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: var(--mu);
  margin-bottom: 8px;
}
.v25-xp-bar {
  height: 7px;
  background: var(--bd);
  border-radius: 5px;
  overflow: hidden;
}
.v25-xp-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--ac), #86efac);
  border-radius: 5px;
  transition: width .6s ease;
}

/* Stats grid */
.v25-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.v25-sg-item {
  background: var(--sf);
  border: 1px solid var(--bd);
  border-radius: 12px;
  padding: 10px 6px;
  text-align: center;
}
.v25-sg-ico { font-size: 18px; margin-bottom: 4px; }
.v25-sg-val {
  font-family: var(--fd);
  font-size: 16px;
  font-weight: 900;
  color: var(--ac);
  line-height: 1;
}
.v25-sg-lbl {
  font-size: 9px;
  color: var(--mu);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  margin-top: 3px;
}

/* ── STAT ALLOCATION TAB ────────────────────────────────────────── */
.v25-stat-hdr {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.v25-pts-badge {
  background: var(--adim);
  border: 1px solid var(--abr);
  border-radius: 20px;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 800;
  color: var(--ac);
}
.v25-reset-btn {
  background: none;
  border: 1px solid var(--bd);
  border-radius: 20px;
  padding: 5px 12px;
  font-size: 11px;
  color: var(--mu);
  cursor: pointer;
  font-family: var(--fb);
  margin-left: auto;
}
.v25-stat-row {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--sf);
  border: 1px solid var(--bd);
  border-radius: 12px;
  padding: 11px 12px;
  margin-bottom: 8px;
}
.v25-stat-ico { font-size: 20px; flex-shrink: 0; }
.v25-stat-info { flex: 1; min-width: 0; }
.v25-stat-nm { font-size: 13px; font-weight: 700; color: var(--tx); }
.v25-stat-desc { font-size: 10px; color: var(--mu); margin-top: 1px; }
.v25-stat-cur {
  font-family: var(--fd);
  font-size: 15px;
  font-weight: 800;
  color: var(--ac);
  flex-shrink: 0;
  min-width: 40px;
  text-align: right;
}
.v25-alloc-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--ac);
  color: var(--bg);
  border: none;
  font-size: 18px;
  font-weight: 900;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--fb);
}
.v25-alloc-spent {
  font-size: 11px;
  color: var(--mu);
  flex-shrink: 0;
  min-width: 32px;
  text-align: center;
}

/* ── TALENT TREE TAB ────────────────────────────────────────────── */
.v25-talent-hdr {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.v25-tree {
  background: var(--sf);
  border: 1px solid var(--bd);
  border-radius: 14px;
  padding: 12px;
  margin-bottom: 12px;
}
.v25-tree-hdr {
  font-size: 14px;
  font-weight: 800;
  color: var(--ac);
  margin-bottom: 10px;
}
.v25-tree-nodes {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.v25-node {
  border-radius: 10px;
  padding: 10px 12px;
  border: 1px solid var(--bd);
  background: var(--sf2);
  opacity: 0.6;
}
.v25-node.v25-available {
  opacity: 1;
  border-color: var(--abr);
  background: var(--adim);
}
.v25-node.v25-unlocked {
  opacity: 1;
  border-color: var(--ac);
  background: rgba(var(--acr, 200, 241, 53), 0.07);
}
.v25-node-name {
  font-size: 13px;
  font-weight: 800;
  color: var(--tx);
  margin-bottom: 3px;
}
.v25-node-desc {
  font-size: 11px;
  color: var(--mu);
  margin-bottom: 6px;
  line-height: 1.4;
}
.v25-node-foot {
  font-size: 11px;
  color: var(--mu);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.v25-done {
  color: var(--ac);
  font-weight: 800;
  font-size: 12px;
}
.v25-lock { color: var(--mu2); font-size: 11px; }
.v25-unlock-btn {
  background: var(--ac);
  color: var(--bg);
  border: none;
  border-radius: 8px;
  padding: 3px 10px;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
  font-family: var(--fb);
}

/* ── LEGAL MODALS ────────────────────────────────────────────────── */
.v25-legal-panel {
  background: var(--sf);
  border-radius: 20px 20px 0 0;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 430px;
}
.v25-legal-body {
  flex: 1;
  overflow-y: auto;
  padding: 0 18px 16px;
  font-size: 13px;
  color: var(--mu);
  line-height: 1.6;
  -webkit-overflow-scrolling: touch;
}
.v25-legal-body p { margin: 0 0 10px; }
.v25-legal-body ul { margin: 0 0 10px; padding-left: 18px; }
.v25-legal-body li { margin-bottom: 4px; }
.v25-legal-body strong, .v25-legal-body b { color: var(--tx); }
.v25-legal-body a { color: var(--ac); text-decoration: none; }
.v25-legal-close {
  margin: 0 18px 18px;
  padding: 14px;
  background: var(--ac);
  color: var(--bg);
  border: none;
  border-radius: 14px;
  font-family: var(--fb);
  font-weight: 900;
  font-size: 15px;
  cursor: pointer;
  width: calc(100% - 36px);
}

/* ── ADMIN PANEL ────────────────────────────────────────────────── */
.v25-admin-panel {
  background: var(--sf);
  border-radius: 20px 20px 0 0;
  max-height: 80vh;
  overflow-y: auto;
  width: 100%;
  max-width: 430px;
  -webkit-overflow-scrolling: touch;
}
.v25-admin-stat {
  font-size: 11px;
  color: var(--ac);
  font-weight: 700;
  padding: 10px 18px 6px;
  background: var(--adim);
  border-bottom: 1px solid var(--bd);
  line-height: 1.5;
}
.v25-admin-sec {
  padding: 12px 18px 8px;
  border-bottom: 1px solid var(--bd);
}
.v25-admin-lbl {
  font-size: 10px;
  font-weight: 800;
  color: var(--mu);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 8px;
}
.v25-admin-row {
  display: flex;
  gap: 8px;
  margin-bottom: 7px;
  align-items: center;
}
.v25-admin-row input {
  flex: 1;
  background: var(--sf2);
  border: 1px solid var(--bd);
  border-radius: 8px;
  padding: 7px 10px;
  color: var(--tx);
  font-family: var(--fb);
  font-size: 13px;
  outline: none;
}
.v25-admin-row button {
  background: var(--ac);
  color: var(--bg);
  border: none;
  border-radius: 8px;
  padding: 7px 14px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  font-family: var(--fb);
  white-space: nowrap;
}
.v25-admin-row button:only-child { width: 100%; }
.v25-admin-row { display: flex; }
.v25-admin-row button:only-child {
  width: 100%;
  text-align: center;
}
.v25-admin-row > button:only-child {
  background: var(--sf2);
  color: var(--tx);
  border: 1px solid var(--bd);
}
.v25-admin-row > button:only-child:active { opacity: 0.7; }
.v25-admin-ico { font-size: 18px; margin-right: 2px; }
.v25-admin-row { display: flex; }
.set-row.v25-admin-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  background: none;
  border: none;
  border-top: 1px solid var(--bd);
  color: var(--tx);
  padding: 14px 0;
  font-size: 14px;
  cursor: pointer;
  font-family: var(--fb);
  text-align: left;
}

/* ── HERO JOURNEY SYSTEM ────────────────────────────────────────── */
.hj-section {
  margin-bottom: 18px;
}
.hj-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.hj-title {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: var(--mu);
}
.hj-card {
  background: var(--sf);
  border: 1px solid var(--bd);
  border-radius: 14px;
  padding: 13px 14px;
  margin-bottom: 8px;
  transition: border-color .2s;
}
.hj-card.hj-complete {
  border-color: var(--ac);
  background: var(--adim);
}
.hj-card.hj-pending-conf {
  border-color: rgba(251,191,36,.4);
  background: rgba(251,191,36,.05);
}
.hj-card-top {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 10px;
}
.hj-card-icon { font-size: 22px; flex-shrink: 0; }
.hj-card-info { flex: 1; min-width: 0; }
.hj-card-title { font-size: 13px; font-weight: 800; color: var(--tx); margin-bottom: 2px; }
.hj-card-desc { font-size: 11px; color: var(--mu); line-height: 1.4; }
.hj-card-chest {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
}
.hj-chest-common  { color: #9ca3af; }
.hj-chest-rare    { color: #60a5fa; }
.hj-chest-epic    { color: #a78bfa; }
.hj-chest-legendary { color: var(--ac); }
.hj-chest-mythic  { color: #f59e0b; }
.hj-progress-row {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--mu);
  margin-bottom: 5px;
}
.hj-progress-bar {
  height: 6px;
  background: var(--bd);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 8px;
}
.hj-progress-fill {
  height: 100%;
  border-radius: 4px;
  background: linear-gradient(90deg, var(--ac), #86efac);
  transition: width .6s ease;
}
.hj-progress-fill.hj-rare    { background: linear-gradient(90deg, #3b82f6, #60a5fa); }
.hj-progress-fill.hj-epic    { background: linear-gradient(90deg, #7c3aed, #a78bfa); }
.hj-progress-fill.hj-legendary { background: linear-gradient(90deg, var(--ac), #fde68a); }
.hj-progress-fill.hj-mythic  { background: linear-gradient(90deg, #f59e0b, #fde68a); }
.hj-card-foot {
  display: flex;
  align-items: center;
  gap: 8px;
}
.hj-claim-btn {
  padding: 8px 16px;
  background: var(--ac);
  color: var(--bg);
  border: none;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  font-family: var(--fb);
  margin-left: auto;
}
.hj-conf-note {
  font-size: 11px;
  color: #f59e0b;
  font-weight: 700;
  margin-left: auto;
}
.hj-claimed-note {
  font-size: 11px;
  color: var(--mu);
  margin-left: auto;
  opacity: 0.6;
}
.hj-empty {
  text-align: center;
  font-size: 13px;
  color: var(--mu);
  padding: 20px;
  background: var(--sf);
  border-radius: 14px;
  border: 1px dashed var(--bd);
}

/* Hero Journey goal picker modal */
.hj-pick-panel {
  background: var(--sf);
  border-radius: 20px 20px 0 0;
  width: 100%;
  max-width: 430px;
  max-height: 70vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.hj-pick-title {
  font-family: var(--fd);
  font-size: 20px;
  font-weight: 900;
  padding: 20px 18px 4px;
}
.hj-pick-sub {
  font-size: 12px;
  color: var(--mu);
  padding: 0 18px 14px;
  border-bottom: 1px solid var(--bd);
}
.hj-pick-option {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 18px;
  border-bottom: 1px solid var(--bd);
  background: none;
  border-left: none;
  border-right: none;
  border-top: none;
  color: var(--tx);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--fb);
  width: 100%;
  text-align: left;
}
.hj-pick-option:active { background: var(--sf2); }
.hj-pick-ico { font-size: 22px; }
.hj-pick-info { flex: 1; }
.hj-pick-nm { font-size: 13px; font-weight: 700; }
.hj-pick-desc { font-size: 11px; color: var(--mu); margin-top: 2px; }
.hj-pick-chest {
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
}
.hj-pick-skip {
  padding: 12px 18px;
  text-align: center;
  color: var(--mu);
  font-size: 13px;
  cursor: pointer;
  font-family: var(--fb);
  background: none;
  border: none;
  width: 100%;
}

/* Chest claim celebration */
.hj-chest-modal {
  background: var(--sf);
  border-radius: 20px 20px 0 0;
  width: 100%;
  max-width: 430px;
  padding: 24px 18px calc(24px + env(safe-area-inset-bottom));
  text-align: center;
}
.hj-chest-anim {
  font-size: 64px;
  margin-bottom: 12px;
  animation: hj-bounce .6s ease;
}
@keyframes hj-bounce {
  0%   { transform: scale(0.5); opacity: 0; }
  70%  { transform: scale(1.15); }
  100% { transform: scale(1); opacity: 1; }
}
.hj-chest-title {
  font-family: var(--fd);
  font-size: 22px;
  font-weight: 900;
  margin-bottom: 6px;
}
.hj-chest-rewards {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin: 14px 0;
}
.hj-reward-item {
  background: var(--adim);
  border: 1px solid var(--abr);
  border-radius: 12px;
  padding: 10px 14px;
  font-size: 15px;
  font-weight: 800;
  color: var(--ac);
  font-family: var(--fd);
}
.hj-chest-cta {
  width: 100%;
  padding: 14px;
  background: var(--ac);
  color: var(--bg);
  border: none;
  border-radius: 16px;
  font-family: var(--fb);
  font-weight: 900;
  font-size: 15px;
  cursor: pointer;
  margin-top: 8px;
}

/* ── MISC ────────────────────────────────────────────────────────── */
/* Ensure all new overlays follow the ov pattern */
#ov-privacy-v25.on,
#ov-terms-v25.on,
#ov-admin-v25.on,
#ov-hj-pick.on,
#ov-hj-chest.on {
  display: flex !important;
}


/* V26 map */
.fantasy-node.v26-coming-soon{pointer-events:none;opacity:.55;border-style:dashed;animation:none;}
/* WorkoutX exercise library */
.wx-badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 6px;border-radius:999px;border:1px solid var(--abr);background:var(--adim);color:var(--ac);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;vertical-align:middle;}
.wx-search-state{padding:12px;color:var(--mu);font-size:12px;line-height:1.35;text-align:center;}
.wx-ex-row strong,.wx-ex-row span{min-width:0;}
.wx-media{height:auto;min-height:190px;max-height:320px;background:var(--bg);}
.wx-media img,.wx-media video{width:100%;height:100%;max-height:320px;object-fit:contain;display:block;background:var(--bg);border:0;}
.wx-detail-grid{display:grid;grid-template-columns:1fr;gap:10px;margin:12px 0;}
.wx-add-current{width:100%;margin-top:12px;padding:13px;border:0;border-radius:14px;background:var(--ac);color:var(--bg);font-family:var(--fb);font-weight:900;cursor:pointer;}
@media (min-width:560px){
  .wx-detail-grid{grid-template-columns:1fr 1fr;}
  .wx-detail-grid>div:first-child{grid-column:1/-1;}
}

/* Battle2D visual layer */
.battle2d-box{
  background:linear-gradient(180deg,rgba(15,23,42,.96),rgba(6,10,18,.98));
  border-color:rgba(198,241,53,.22);
  box-shadow:0 22px 55px rgba(0,0,0,.48),0 0 0 1px rgba(56,189,248,.06) inset;
  padding-bottom:calc(14px + env(safe-area-inset-bottom));
}
.battle2d-box .combatant-card{
  background:rgba(2,6,23,.5);
  border-color:rgba(148,163,184,.16);
  border-radius:10px;
}
.battle2d-box .combat-portrait{
  background:rgba(6,10,18,.76);
  border-color:rgba(198,241,53,.22);
  overflow:hidden;
}
.battle2d-box .enemy-portrait{
  border-color:rgba(239,68,68,.28);
  background:rgba(45,10,15,.62);
}
.battle2d-box .combat-log{
  height:72px;
  background:rgba(2,6,23,.42);
  border-color:rgba(148,163,184,.14);
  border-radius:10px;
}
.battle2d-arena{
  --battle2d-bg:none;
  position:relative;
  min-height:238px;
  isolation:isolate;
  overflow:hidden;
  border-radius:14px;
  border:1px solid rgba(198,241,53,.18);
  background-image:
    radial-gradient(circle at 18% 34%,rgba(198,241,53,.14),transparent 24%),
    radial-gradient(circle at 76% 26%,rgba(56,189,248,.14),transparent 28%),
    linear-gradient(180deg,rgba(2,6,23,.2),rgba(2,6,23,.78)),
    var(--battle2d-bg);
  background-size:cover;
  background-position:center;
  box-shadow:0 16px 34px rgba(0,0,0,.42) inset,0 10px 24px rgba(0,0,0,.3);
}
.battle2d-arena::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:radial-gradient(ellipse at center,transparent 35%,rgba(0,0,0,.54) 100%);
}
.battle2d-arena::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:44%;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.44));
}
.battle2d-arena .arena-sky,
.battle2d-arena .arena-moon,
.battle2d-arena .arena-ruins{
  display:none;
}
.battle2d-arena .battle-ground{
  z-index:2;
  height:46px;
  background:radial-gradient(ellipse at center,rgba(198,241,53,.17),transparent 62%);
}
.battle2d-arena .fighter{
  z-index:4;
  width:42%;
  min-width:0;
  transform:translateY(4px);
}
.battle2d-arena .hero{
  align-items:flex-start;
}
.battle2d-arena .enemy{
  align-items:flex-end;
}
.battle2d-arena .fighter .sprite{
  position:relative;
  width:clamp(92px,29vw,145px);
  height:clamp(96px,31vw,150px);
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
  overflow:visible;
}
.battle2d-arena .hero .sprite{
  animation:battle2dHeroIdle 2.7s ease-in-out infinite;
  filter:drop-shadow(0 0 13px rgba(198,241,53,.38)) drop-shadow(0 0 20px rgba(56,189,248,.18));
}
.battle2d-arena .enemy .sprite{
  animation:battle2dEnemyIdle 3.1s ease-in-out infinite;
  filter:drop-shadow(0 12px 12px rgba(0,0,0,.52));
}
.battle2d-img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  image-rendering:auto;
  user-select:none;
  pointer-events:none;
}
.combat-portrait .battle2d-img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:2px;
}
.battle2d-enemy{
  transform:scaleX(-1);
}
.battle2d-fallback{
  display:none;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  min-height:44px;
  padding:8px;
  color:var(--ac);
  font-size:11px;
  font-weight:900;
  text-align:center;
  border:1px solid rgba(198,241,53,.22);
  border-radius:12px;
  background:rgba(2,6,23,.72);
}
.asset-missing .battle2d-fallback{
  display:flex;
}
.battle2d-arena .fighter .name{
  max-width:130px;
  margin-top:2px;
  background:rgba(2,6,23,.62);
  border-color:rgba(148,163,184,.18);
  font-size:11px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.battle2d-arena .hero.cast .sprite,
.battle2d-arena .hero.battle2d-cast-glow .sprite{
  animation:battle2dCast 520ms ease-out;
}
.battle2d-arena .fighter.hit .sprite,
.battle2d-arena .fighter.battle2d-hit-flash .sprite{
  animation:battle2dHit 360ms ease-out;
}
.battle2d-arena .fighter.hit .battle2d-img,
.battle2d-arena .fighter.battle2d-hit-flash .battle2d-img{
  filter:brightness(1.35) sepia(.75) saturate(2.4) hue-rotate(310deg);
}
.battle2d-arena .spell-fx.fx-arcane{
  display:none!important;
}
.battle2d-projectile{
  position:absolute;
  left:24%;
  bottom:35%;
  width:54px;
  height:54px;
  z-index:8;
  pointer-events:none;
}
.battle2d-projectile.arcane-bolt{
  animation:battle2dBoltFly 680ms cubic-bezier(.18,.74,.2,1) forwards;
}
.battle2d-projectile::before{
  content:"";
  position:absolute;
  inset:14px 34px 14px -36px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(56,189,248,.28),rgba(198,241,53,.44));
  filter:blur(6px);
}
.battle2d-projectile .battle2d-spell{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 0 10px rgba(198,241,53,.88)) drop-shadow(0 0 18px rgba(56,189,248,.62));
}
.battle2d-float,
.battle2d-critical{
  position:absolute;
  z-index:10;
  pointer-events:none;
  font-family:var(--fd);
  font-weight:900;
  text-shadow:0 2px 0 rgba(0,0,0,.8),0 0 12px rgba(0,0,0,.65);
}
.battle2d-float{
  right:18%;
  top:34%;
  color:#fef2f2;
  font-size:22px;
  animation:battle2dFloat 900ms ease-out forwards;
}
.battle2d-float.crit{
  color:#fbbf24;
  font-size:30px;
}
.battle2d-critical{
  right:14%;
  top:24%;
  color:#fbbf24;
  font-size:18px;
  letter-spacing:.8px;
  animation:battle2dCritical 950ms ease-out forwards;
}
.battle2d-box .ability-bar{
  gap:9px;
}
.battle2d-box .ability-btn,
.battle2d-box .ability-start,
.battle2d-box .ability-exit{
  min-height:58px;
  border-radius:10px;
  border-color:rgba(198,241,53,.18);
  background:
    linear-gradient(180deg,rgba(30,41,59,.94),rgba(8,13,24,.96)),
    radial-gradient(circle at top left,rgba(198,241,53,.13),transparent 42%);
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset,0 10px 20px rgba(0,0,0,.24);
}
.battle2d-box .ability-btn.ready{
  border-color:rgba(198,241,53,.58);
  box-shadow:0 0 0 1px rgba(198,241,53,.18) inset,0 0 18px rgba(198,241,53,.12);
}
.battle2d-box .ability-btn[data-ability="basic"].ready{
  border-color:rgba(56,189,248,.55);
}
.battle2d-box .ability-btn .ability-name{
  font-size:13px;
}
.battle2d-box .ability-btn .ability-meta{
  color:#93c5fd;
}
.battle2d-box .ability-start{
  color:#06100b;
  background:linear-gradient(180deg,#d9ff66,#a3e635);
}
.battle2d-box .ability-exit{
  color:#cbd5e1;
  background:rgba(2,6,23,.38);
}
.battle2d-box .reward-screen{
  background:rgba(251,191,36,.1);
  border-color:rgba(251,191,36,.38);
}
.battle2d-box .reward-title,
.battle2d-box #battle-reward{
  color:#fbbf24;
}
@keyframes battle2dHeroIdle{
  0%,100%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(0,-7px,0)}
}
@keyframes battle2dEnemyIdle{
  0%,100%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(0,-4px,0)}
}
@keyframes battle2dCast{
  0%{transform:translate3d(0,0,0) scale(1)}
  40%{transform:translate3d(12px,-7px,0) scale(1.06);filter:drop-shadow(0 0 18px rgba(198,241,53,.8)) drop-shadow(0 0 24px rgba(56,189,248,.54))}
  100%{transform:translate3d(0,0,0) scale(1)}
}
@keyframes battle2dHit{
  0%,100%{transform:translate3d(0,0,0)}
  18%{transform:translate3d(-8px,0,0)}
  38%{transform:translate3d(8px,0,0)}
  58%{transform:translate3d(-5px,0,0)}
  78%{transform:translate3d(4px,0,0)}
}
@keyframes battle2dBoltFly{
  0%{opacity:0;transform:translate3d(0,10px,0) scale(.72) rotate(-8deg)}
  12%{opacity:1}
  78%{opacity:1}
  100%{opacity:0;transform:translate3d(47vw,-24px,0) scale(1.05) rotate(10deg)}
}
@keyframes battle2dFloat{
  0%{opacity:0;transform:translate3d(0,12px,0) scale(.86)}
  18%{opacity:1}
  100%{opacity:0;transform:translate3d(0,-44px,0) scale(1.08)}
}
@keyframes battle2dCritical{
  0%{opacity:0;transform:translate3d(0,10px,0) scale(.72)}
  18%{opacity:1;transform:translate3d(0,-4px,0) scale(1.08)}
  100%{opacity:0;transform:translate3d(0,-38px,0) scale(1)}
}
@media (max-width:430px){
  .battle2d-box{
    width:min(100%,calc(100vw - 16px));
    padding-left:10px;
    padding-right:10px;
  }
  .battle2d-box .combatant-grid{
    gap:6px;
  }
  .battle2d-box .combatant-card{
    padding:7px;
  }
  .battle2d-arena{
    min-height:214px;
    padding-left:16px;
    padding-right:16px;
  }
  .battle2d-arena .fighter .sprite{
    width:clamp(82px,34vw,122px);
    height:clamp(90px,36vw,128px);
  }
  .battle2d-arena .fighter .name{
    max-width:106px;
    font-size:10px;
    padding:4px 7px;
  }
  .battle2d-projectile{
    left:22%;
    width:46px;
    height:46px;
  }
  .battle2d-float{
    right:13%;
    font-size:20px;
  }
  .battle2d-float.crit{
    font-size:26px;
  }
  .battle2d-box .ability-btn,
  .battle2d-box .ability-start,
  .battle2d-box .ability-exit{
    min-height:56px;
    padding:8px;
  }
}

/* ── COMPANION LIFE SIMULATOR — global overrides ──────────── */

/* Cozy onboarding — ob-s8 lifestyle + water goal wiring */
.ob-lifestyle-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:4px;}
.ob-lifestyle-card{display:flex;align-items:center;gap:12px;padding:13px 14px;background:var(--sf);border:2px solid var(--bd);border-radius:14px;cursor:pointer;transition:border-color .15s,background .15s;text-align:left;font-family:var(--fb);width:100%;}
.ob-lifestyle-card.on{border-color:var(--ac);background:var(--adim);}
.ob-lc-icon{font-size:24px;flex-shrink:0;}
.ob-lc-name{font-size:13px;font-weight:700;color:var(--tx);margin-bottom:2px;}
.ob-lc-desc{font-size:11px;color:var(--mu);line-height:1.35;}
.ob-daily-water-row{margin-top:4px;}
.ob-water-goal-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;}
.ob-wg-btn{display:flex;flex-direction:column;align-items:center;padding:10px 6px;background:var(--sf);border:2px solid var(--bd);border-radius:12px;cursor:pointer;transition:border-color .15s;font-family:var(--fb);}
.ob-wg-btn.on{border-color:var(--ac);background:var(--adim);}
.ob-wg-label{font-size:11px;font-weight:700;color:var(--tx);margin-bottom:2px;}
.ob-wg-sub{font-size:9px;color:var(--mu);}

/* Companion intro onboarding screens */
.ob-companion-intro{display:flex;flex-direction:column;align-items:center;padding:24px 10px 16px;gap:16px;}
.ob-companion-avatars{display:flex;gap:20px;justify-content:center;margin-bottom:4px;}
.ob-avatar-choice{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 18px;background:var(--sf);border:2px solid var(--bd);border-radius:20px;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s;font-family:var(--fb);}
.ob-avatar-choice:active{transform:scale(.95);}
.ob-avatar-choice.selected{border-color:var(--ac);box-shadow:0 0 0 3px var(--adim);transform:scale(1.03);}
.ob-av-preview{width:110px;height:135px;display:flex;align-items:center;justify-content:center;}
.ob-av-label{font-size:13px;font-weight:700;color:var(--tx);letter-spacing:.5px;}
.ob-companion-speak{display:flex;flex-direction:column;align-items:center;padding:12px 10px 16px;gap:14px;}
.ob-speak-avatar{width:130px;height:160px;display:flex;align-items:center;justify-content:center;}
.ob-speak-avatar.small{width:90px;height:110px;}
.ob-speech-bubble{background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:14px 16px;position:relative;max-width:320px;width:100%;}
.ob-speech-bubble p{font-size:13px;line-height:1.55;color:var(--tx);margin:0 0 6px;font-family:var(--fb);}
.ob-speech-bubble p:last-child{margin-bottom:0;}
.ob-complete-avatar{width:140px;height:172px;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;}
.ob-companion-pledge{background:var(--sf);border:1px solid var(--bd);border-radius:14px;padding:14px 16px;margin:12px 0;text-align:center;}
.ob-companion-pledge p{font-size:13px;color:var(--tx);line-height:1.6;margin:0;font-family:var(--fb);}

/* Quest header — replace sword emoji in daily quests */
.qs-sec .sh-t::before{content:'🎯 ';}
