:root{
  --bg:#0A0A0B;
  --bg-elev:#161718;
  --bg-elev-2:#1E1F21;
  --bg-elev-3:#28292B;
  --line:#2A2B2D;
  --line-soft:rgba(255,255,255,.06);
  --text:#F5F5F5;
  --text-dim:#8A8D91;
  --text-faint:#55585C;
  --accent:#FF4433;
  --accent-2:#FF6B52;
  --accent-dim:rgba(255,68,51,.14);
  --on-accent:#FFFFFF;
  --push:#FF6A4D;
  --pull:#3AA0FF;
  --lower:#3FDE8A;
  --upper:#C58BFF;
  --gold:#F5C34D;
  --good:#3FDE8A;
  --shadow:0 10px 30px -12px rgba(0,0,0,.55);
  --safe-t:env(safe-area-inset-top);
  --safe-b:env(safe-area-inset-bottom);
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);
  font-family:'Heebo',sans-serif; height:100%; overflow-x:hidden;}
h1,h2,h3,.disp{font-family:'Rubik',sans-serif;}
button{font-family:inherit; cursor:pointer;}
button:disabled{cursor:default;}
input,textarea{font-family:inherit;}
#app{max-width:520px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;
  padding-bottom:calc(76px + min(var(--safe-b), 16px));}
::-webkit-scrollbar{display:none;}
.disp-num{font-variant-numeric:tabular-nums;}

/* view transition */
.view-enter{animation:viewIn .28s cubic-bezier(.22,.8,.3,1) both;}
@keyframes viewIn{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}
@media (prefers-reduced-motion: reduce){ .view-enter{animation:none;} }

/* press feedback */
.press{transition:transform .12s ease, opacity .12s ease;}
.press:active{transform:scale(.96); opacity:.88;}

/* ---------- TOPBAR ---------- */
.topbar{position:sticky;top:0;z-index:20;background:rgba(10,10,11,.86);backdrop-filter:blur(16px) saturate(160%);
  padding:calc(14px + var(--safe-t)) 18px 12px;display:flex;align-items:center;gap:10px;
  border-bottom:1px solid var(--line-soft);}
.topbar .back{width:36px;height:36px;border-radius:50%;background:var(--bg-elev);border:1px solid var(--line);color:var(--text);
  display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.topbar h1{font-size:19px;margin:0;font-weight:700;flex:1;}
.topbar .sub{font-size:12px;color:var(--text-dim);margin-top:2px;}
.topbar .side{width:36px;flex-shrink:0;}
.sharebtn{width:36px;height:36px;border-radius:50%;background:var(--bg-elev);border:1px solid var(--line);
  color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;}
.sharebtn svg{width:17px;height:17px;}
.sharebtn:active{transform:scale(.92);}

.content{padding:16px 18px 24px;flex:1;}

/* ---------- HOME ---------- */
.homehead{padding:calc(34px + var(--safe-t)) 18px 0;}
.hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.hero .eyebrow{color:var(--text-dim);font-size:13px;}
.hero h1{font-size:26px;margin:4px 0 0;font-weight:800;letter-spacing:-.3px;}
.streakpill{display:flex;align-items:center;gap:5px;background:var(--bg-elev);border:1px solid var(--line);
  border-radius:20px;padding:7px 12px 7px 10px;font-size:13px;font-weight:700;color:var(--gold);flex-shrink:0;margin-top:2px;}
.streakpill svg{width:15px;height:15px;}

.weekstrip{margin-top:16px;}
.wg-head,.wg-row{display:grid;grid-template-columns:24px repeat(7,1fr);gap:5px;align-items:center;}
.wg-row+.wg-row{margin-top:5px;}
.wg-head{margin-bottom:6px;}
.wg-head span{font-size:10px;color:var(--text-faint);text-align:center;}
.wg-lbl{font-size:9px;color:var(--text-faint);text-align:center;}
.wg-cell{height:20px;border-radius:5px;background:var(--bg-elev);border:1px solid var(--line);}
.wg-cell.done{border-color:transparent;}
.wg-cell.today{box-shadow:0 0 0 1.5px var(--text) inset;}
.wg-cell.future{opacity:.45;}

.statline{display:flex;align-items:stretch;margin-top:16px;background:var(--bg-elev);border:1px solid var(--line);
  border-radius:16px;padding:13px 4px;}
.statline .si{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;}
.statline .si .ic{width:16px;height:16px;color:var(--accent);opacity:.85;}
.statline .si .ic svg{width:100%;height:100%;}
.statline .si .v{font-size:17px;font-weight:800;font-family:'Rubik',sans-serif;}
.statline .si .l{font-size:9.5px;color:var(--text-dim);}
.statline .sep{width:1px;align-self:center;height:30px;background:var(--line);}

.sectlbl{font-size:13px;color:var(--text-dim);margin:22px 2px 10px;font-weight:600;}

.herostart{position:relative;overflow:hidden;border-radius:10px;padding:18px 18px 18px 22px;margin-top:18px;
  background:var(--bg-elev);border:1px solid var(--line);}
.herostart::after{content:'';position:absolute;top:0;bottom:0;left:0;width:4px;background:var(--hs-color, var(--accent));}
.herostart .hs-top{position:relative;display:flex;align-items:center;justify-content:space-between;}
.herostart .hs-badge{font-size:10.5px;font-weight:800;padding:4px 9px;border-radius:8px;letter-spacing:.2px;}
.herostart .hs-meta{font-size:11px;color:var(--text-faint);}
.herostart .hs-name{position:relative;font-size:27px;font-weight:800;letter-spacing:-.3px;}
.herostart .hs-tag{position:relative;font-size:12.5px;color:var(--text-dim);margin-top:4px;}
.herostart .hs-go{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  padding:14px;border-radius:14px;border:none;background:linear-gradient(135deg, var(--accent), var(--accent-2));
  color:var(--on-accent);font-size:15px;font-weight:800;margin-top:16px;}

.dayrow{display:flex;flex-direction:column;gap:8px;}
.daymini{display:flex;align-items:center;gap:12px;background:var(--bg-elev);border:1px solid var(--line);
  border-radius:14px;padding:11px 14px;}
.daymini .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.daymini .info{flex:1;min-width:0;}
.daymini .name{font-size:13.5px;font-weight:700;}
.daymini .tag{font-size:11px;color:var(--text-dim);margin-top:2px;}
.daymini .meta{font-size:10.5px;color:var(--text-faint);flex-shrink:0;}
.daymini .chev{color:var(--text-faint);font-size:13px;flex-shrink:0;}

.lastcard{margin-top:8px;background:var(--bg-elev);border:1px solid var(--line);border-radius:18px;padding:16px;}
.lastcard .lbl{font-size:12px;color:var(--text-dim);display:flex;justify-content:space-between;}
.lastcard .row{display:flex;justify-content:space-between;align-items:center;margin-top:8px;}
.lastcard .row b{font-size:16px;}
.lastcard .delta{font-size:11.5px;font-weight:700;padding:2px 7px;border-radius:8px;}
.lastcard .delta.up{color:var(--good);background:rgba(63,222,138,.12);}
.lastcard .delta.down{color:var(--text-faint);background:rgba(255,255,255,.05);}

/* ---------- DAY VIEW ---------- */
.startbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;
  border-radius:16px;border:none;background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--on-accent);font-size:16px;font-weight:800;
  margin:4px 0 20px; box-shadow:0 8px 24px -8px rgba(255,68,51,.4);}
.exlist{display:flex;flex-direction:column;gap:10px;}
.exrow{display:flex;align-items:center;gap:12px;background:var(--bg-elev);border:1px solid var(--line);
  border-radius:16px;padding:9px 12px;}
.exrow .num{width:20px;color:var(--text-faint);font-size:12.5px;font-weight:700;flex-shrink:0;text-align:center;}
.exthumb{width:60px;height:60px;flex-shrink:0;background:var(--bg-elev-3);border-radius:15px;display:flex;
  align-items:center;justify-content:center;overflow:hidden;}
.exthumb img{width:84%;height:84%;object-fit:contain;}
.exrow .info{flex:1;min-width:0;}
.exrow .name{font-size:14.5px;font-weight:600;line-height:1.3;}
.exrow .spec{font-size:11.5px;color:var(--text-dim);margin-top:3px;}
.exrow .chev{color:var(--text-faint);font-size:14px;}

/* ---------- EXERCISE DETAIL ---------- */
.detail-hero{background:var(--bg-elev);border-radius:14px;padding:22px;
  text-align:center;border:1px solid var(--line);}
.illus-frame{width:148px;height:148px;margin:0 auto 12px;border-radius:28px;background:var(--bg-elev-3);
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.illus-frame img{width:80%;height:80%;object-fit:contain;position:absolute;opacity:0;transition:opacity .35s ease;}
.illus-frame img.show{opacity:1;}
.detail-hero h2{font-size:19px;margin:2px 0 4px;}
.detail-hero .muscle{font-size:12.5px;color:var(--text-dim);}
.statrow{display:flex;gap:10px;margin-top:16px;}
.stat{flex:1;background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;padding:11px 8px;text-align:center;}
.stat .v{font-size:16px;font-weight:700;font-family:'Rubik',sans-serif;}
.stat .l{font-size:10.5px;color:var(--text-dim);margin-top:2px;}
.block{margin-top:20px;}
.block h3{font-size:13px;color:var(--text-dim);margin:0 0 9px;font-weight:600;}
.cuelist{display:flex;flex-direction:column;gap:8px;}
.cue{display:flex;gap:10px;font-size:13.5px;line-height:1.5;background:var(--bg-elev);border-radius:13px;
  padding:11px 12px;border:1px solid var(--line);}
.cue .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:7px;flex-shrink:0;}

.sparkwrap{background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;padding:14px;}
.sparkwrap svg{width:100%;display:block;}
.sparkwrap .sl{display:flex;justify-content:space-between;font-size:11px;color:var(--text-faint);margin-top:6px;}

.histtable{border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.htr{display:grid;grid-template-columns:2.1fr .7fr 1.3fr 1.3fr;align-items:center;
  padding:10px 12px;font-size:12.5px;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--line);}
.htr:last-child{border-bottom:none;}
.htr-head{background:var(--bg-elev);color:var(--text-faint);font-size:10.5px;font-weight:600;padding:8px 12px;}
.htr.pr{background:rgba(255,68,51,.05);}
.htd{color:var(--text-dim);}
.hts{color:var(--text-faint);}
.htw{font-weight:700;}

/* ---------- DAY ICONS ---------- */
/* Real anatomical muscle-group illustration per day (front/back torso or
   legs, cropped from a full body figure), colored via the day's own
   --push/--pull/--lower/--upper accent (set as `color` on a wrapping
   element) so the highlighted muscles read as an extension of the
   existing per-day color language. Path data adapted from the MIT-licensed
   react-native-body-highlighter project (github.com/HichamELBSI/react-native-body-highlighter). */
.dayicon{overflow:hidden;display:block;}
.dayicon .do{fill:none;stroke:#2c2f38;stroke-width:5;}
.dayicon .dm{fill:#4a4e58;stroke:none;}
.dayicon .dh{fill:currentColor;stroke:none;}
.hs-heading{position:relative;display:flex;align-items:center;gap:12px;margin-top:12px;}
.hs-icon{flex-shrink:0;background:color-mix(in srgb, var(--hs-color, var(--accent)) 14%, transparent);
  border-radius:12px;padding:4px 8px;}
.daymini-icon{flex-shrink:0;}
.dh-icon{margin:0 auto 8px;}

/* ---------- SESSION DETAIL ---------- */
.exblock{margin-top:16px;border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.exblock-head{display:flex;align-items:center;gap:12px;padding:14px;background:var(--bg-elev);}
.exblock-thumb{width:44px;height:44px;border-radius:11px;background:var(--bg-elev-3);flex-shrink:0;overflow:hidden;}
.exblock-thumb .illus-frame{width:44px;height:44px;margin:0;border-radius:11px;}
.exblock-name{font-weight:700;font-size:14.5px;}
.exblock-muscle{font-size:11.5px;color:var(--text-dim);margin-top:1px;}
.exblock .htr-head,.exblock .htr{grid-template-columns:.8fr 1.6fr 1.6fr;}
.htp{display:flex;align-items:center;gap:5px;}
.pr-chip{background:var(--gold);color:#332600;font-size:9px;font-weight:800;padding:1px 5px;border-radius:4px;}
.empty{color:var(--text-faint);font-size:13px;text-align:center;padding:26px 14px;line-height:1.6;}

/* ---------- WORKOUT MODE ---------- */
.progresswrap{padding:10px 18px 0;}
.progressbar{height:6px;background:var(--bg-elev-2);border-radius:4px;overflow:hidden;}
.progressbar i{display:block;height:100%;background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:4px;transition:width .35s ease;}
.progresslbl{display:flex;flex-direction:column;gap:3px;width:100%;background:var(--bg-elev);
  border:1px solid var(--line);border-radius:14px;padding:10px 14px;margin-top:10px;text-align:inherit;}
.progresslbl .plmeta{font-size:11.5px;color:var(--text-dim);}
.progresslbl .plname{display:flex;align-items:center;justify-content:space-between;gap:8px;
  font-size:15.5px;font-weight:700;color:var(--text);}
.progresslbl .plname span:last-child{color:var(--text-dim);font-weight:400;flex-shrink:0;}

.wk-hero{background:var(--bg-elev);border-radius:20px;padding:16px;border:1px solid var(--line);
  display:flex;align-items:center;gap:14px;touch-action:pan-y;}
.wk-hero .illus-frame{width:92px;height:92px;border-radius:18px;margin:0;flex-shrink:0;}
.wk-hero .illus-frame img{width:86%;height:86%;}
.wk-hero h2{font-size:16.5px;margin:0 0 4px;line-height:1.3;}
.wk-hero .spec{font-size:12px;color:var(--text-dim);}
.tempopill{display:inline-block;margin-top:8px;font-size:11px;color:var(--text);background:var(--bg-elev-2);
  padding:4px 9px;border-radius:20px;}
.tempopill.prog{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent);margin-left:6px;}
.swipehint{text-align:center;font-size:10.5px;color:var(--text-faint);margin-top:8px;}

.setstable{margin-top:18px;display:flex;flex-direction:column;gap:8px;}
.sethead{display:grid;grid-template-columns:26px 1fr 1fr 38px;gap:8px;font-size:11px;color:var(--text-faint);
  padding:0 4px;}
.setrow{display:grid;grid-template-columns:26px 1fr 1fr 38px;gap:8px;align-items:center;background:var(--bg-elev);
  border:1px solid var(--line);border-radius:14px;padding:8px;transition:border-color .2s, background .2s;}
.setrow.done{border-color:var(--accent);background:linear-gradient(180deg, rgba(255,68,51,.14), rgba(255,68,51,.03));}
.setrow .setn{text-align:center;font-weight:800;color:var(--text-dim);font-size:13px;}
.stepper{display:flex;align-items:center;background:var(--bg-elev-2);border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.stepper button{background:none;border:none;color:var(--text-dim);width:26px;height:34px;font-size:15px;font-weight:700;flex-shrink:0;}
.stepper button:active{color:var(--accent);}
.stepper input{width:100%;min-width:0;background:none;border:none;color:var(--text);
  font-size:14.5px;text-align:center;padding:6px 0;font-family:inherit;font-weight:700;font-variant-numeric:tabular-nums;}
.stepper input:focus{outline:none;}
.checkbtn{width:36px;height:36px;border-radius:11px;border:1.5px solid var(--line);background:none;color:var(--text-faint);
  display:flex;align-items:center;justify-content:center;font-size:17px;margin:0 auto;transition:all .15s;}
.checkbtn.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent);transform:scale(1.03);}

.rest{margin-top:14px;display:flex;align-items:center;justify-content:space-between;background:var(--bg-elev);
  border:1px solid var(--line);border-radius:16px;padding:10px 14px;}
.rest .ringwrap{position:relative;width:52px;height:52px;flex-shrink:0;}
.rest .ringwrap svg{width:100%;height:100%;transform:rotate(-90deg);}
.rest .ringwrap .bg{stroke:var(--bg-elev-2);}
.rest .ringwrap .fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset 1s linear;}
.rest .ringwrap .time{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums;}
.rest .mid{flex:1;padding:0 12px;}
.rest .lab{font-size:12px;color:var(--text-dim);}
.rest .adj{display:flex;gap:6px;margin-top:6px;}
.rest .adj button{background:var(--bg-elev-2);border:1px solid var(--line);color:var(--text);font-size:11px;
  padding:5px 9px;border-radius:8px;font-weight:600;}
.rest .skip{background:var(--bg-elev-2);border:none;color:var(--text);font-size:12px;padding:9px 13px;
  border-radius:10px;font-weight:600;flex-shrink:0;}

.navrow{display:flex;gap:10px;margin-top:20px;}
.navrow button{flex:1;padding:15px;border-radius:15px;border:none;font-size:15px;font-weight:700;}
.btn-ghost{background:var(--bg-elev);color:var(--text);border:1px solid var(--line) !important;}
.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--on-accent);font-weight:800;}
.btn-danger{background:#3A1414;color:#FF6B6B;}

.notes-area{width:100%;margin-top:8px;background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;
  color:var(--text);font-family:inherit;font-size:13.5px;padding:12px 12px;resize:none;}
.notes-area:focus{outline:none;border-color:var(--accent);}

/* ---------- SUMMARY ---------- */
.sum-hero{text-align:center;padding:26px 10px 6px;position:relative;}
.sum-hero .big{font-size:15px;color:var(--text-dim);}
.sum-hero h1{font-size:24px;margin:6px 0 0;}
.sumstats{display:flex;gap:10px;margin-top:22px;}
.prlist{margin-top:18px;display:flex;flex-direction:column;gap:8px;}
.pritem{display:flex;align-items:center;gap:10px;background:linear-gradient(90deg, rgba(245,195,77,.1), transparent);
  border:1px solid #4a3b1d;border-radius:13px;padding:11px 12px;font-size:13.5px;}
.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;}
.confetti i{position:absolute;top:-10px;width:7px;height:7px;border-radius:2px;animation:fall 1.8s ease-in forwards;}
@keyframes fall{to{transform:translateY(160px) rotate(300deg); opacity:0;}}

/* ---------- HISTORY TAB ---------- */
.filterrow{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;margin-bottom:16px;}
.filterrow::-webkit-scrollbar{display:none;}
.chip{flex-shrink:0;background:var(--bg-elev);border:1px solid var(--line);color:var(--text-dim);font-size:12.5px;
  font-weight:600;padding:8px 14px;border-radius:20px;}
.chip.active{background:transparent;color:var(--accent);border-color:var(--accent);}
#sesslist{border-top:1px solid var(--line);}
.sessitem-wrap{position:relative;overflow:hidden;border-bottom:1px solid var(--line);}
.sessitem{display:flex;align-items:center;gap:12px;padding:13px 2px;background:var(--bg);
  touch-action:pan-y;will-change:transform;position:relative;z-index:1;}
.sessitem .dayflag{width:3px;align-self:stretch;flex-shrink:0;}
.sessitem .main{flex:1;}
.sessitem .day{font-weight:700;font-size:14.5px;}
.sessitem .date{font-size:12px;color:var(--text-dim);margin-top:2px;}
.sessitem .vol{font-size:12.5px;color:var(--text-dim);text-align:right;}
.sessitem .voln{font-size:14px;font-weight:700;color:var(--text);}
.sessitem-delbg{position:absolute;top:0;right:0;bottom:0;width:84px;border:none;
  background:#ff4d4d;color:#fff;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:2px;font-size:11px;font-weight:700;}
.sessitem-delbg svg{width:18px;height:18px;}

/* ---------- SETTINGS TAB ---------- */
.setgroup{background:var(--bg-elev);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:18px;}
.setrow2{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;gap:10px;}
.setrow2+.setrow2{border-top:1px solid var(--line-soft);}
.setrow2 .lab{font-size:14px;font-weight:600;}
.setrow2 .desc{font-size:11.5px;color:var(--text-dim);margin-top:2px;}
.segctl{display:flex;background:var(--bg-elev-2);border-radius:10px;padding:3px;}
.segctl button{border:none;background:none;color:var(--text-dim);font-size:12.5px;font-weight:700;padding:6px 12px;border-radius:8px;}
.segctl button.active{background:var(--accent);color:var(--on-accent);}
.setbtn{background:var(--bg-elev-2);border:1px solid var(--line);color:var(--text);font-size:12.5px;font-weight:600;
  padding:8px 14px;border-radius:10px;}
.setbtn.danger{color:#ff6b6b;border-color:#4a2020;}

/* ---------- TABBAR ---------- */
/* Some devices report an inflated safe-area-inset-bottom in standalone PWA mode,
   leaving a huge dead gap below the bar — cap it so the bar always sits close to the edge. */
.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:30;background:rgba(10,10,11,.9);backdrop-filter:blur(16px) saturate(160%);
  border-top:1px solid var(--line-soft);display:flex;padding-bottom:min(var(--safe-b), 16px);}
.tabbar .tw{max-width:520px;margin:0 auto;display:flex;width:100%;}
.tabbtn{flex:1;background:none;border:none;color:var(--text-faint);padding:9px 0 6px;display:flex;
  flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:500;}
.tabbtn.active{color:var(--accent);}
.tabbtn svg{width:20px;height:20px;}

/* ---------- SHEET (bottom sheet, replaces confirm()) ---------- */
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:60;opacity:0;transition:opacity .2s;}
.sheet-bg.show{opacity:1;}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;background:var(--bg-elev-2);border-radius:22px 22px 0 0;
  padding:22px 20px calc(22px + min(var(--safe-b), 16px));transform:translateY(100%);transition:transform .28s cubic-bezier(.22,.8,.3,1);
  max-width:520px;margin:0 auto;border:1px solid var(--line);border-bottom:none;
  max-height:80vh;overflow-y:auto;}
.sheet.show{transform:translateY(0);}
.sheet h3{margin:0 0 6px;font-size:16.5px;}
.sheet p{margin:0 0 18px;color:var(--text-dim);font-size:13.5px;line-height:1.6;}
.sheet .row{display:flex;gap:10px;}
.sheet .row button{flex:1;padding:14px;border-radius:14px;border:none;font-size:14.5px;font-weight:700;}

.jumplist{display:flex;flex-direction:column;gap:8px;}
.jumprow{display:flex;align-items:center;gap:10px;width:100%;background:var(--bg-elev);border:1px solid var(--line);
  border-radius:14px;padding:8px 10px;text-align:inherit;}
.jumprow.current{border-color:var(--accent);background:linear-gradient(180deg, rgba(255,68,51,.12), rgba(255,68,51,.02));}
.jumprow.done{opacity:.6;}
.jumprow .jn{width:18px;color:var(--text-faint);font-size:12px;font-weight:700;text-align:center;flex-shrink:0;}
.jumprow .exthumb{width:40px;height:40px;}
.jumprow .ji{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.jumprow .jname{font-size:13.5px;font-weight:600;line-height:1.3;}
.jumprow .jsub{font-size:11px;color:var(--text-dim);}
.jumprow .jcheck{width:22px;height:22px;border-radius:7px;background:var(--accent);color:var(--on-accent);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0;}

/* ---------- TOAST ---------- */
.toast{position:fixed;bottom:96px;left:50%;transform:translateX(-50%);background:var(--bg-elev-3);
  color:var(--text);padding:11px 20px;border-radius:24px;font-size:13px;border:1px solid var(--line);
  z-index:50;opacity:0;transition:opacity .25s, transform .25s; box-shadow:var(--shadow);pointer-events:none;
  display:flex;align-items:center;gap:8px;max-width:88%;text-align:center;}
.toast.show{opacity:1;}
