  :root{
    --bg:#0d0f12; --surface:#16191f; --surface2:#1d2129; --border:#2a2f3a;
    --text:#e8eaee; --muted:#9aa3b2;
    --upper:#4ade80; --lower:#38bdf8; --rest:#fbbf24; --warn:#f87171; --ok:#4ade80;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.5;padding:20px 14px 64px}
  .wrap{max-width:1120px;margin:0 auto}
  h1{font-size:1.5rem;font-weight:800;letter-spacing:-.02em}
  .sub{color:var(--muted);font-size:.88rem;margin-top:3px}
  .tag{display:inline-block;font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}

  .tabs{display:flex;gap:6px;margin:18px 0 8px;border-bottom:1px solid var(--border)}
  .tab{padding:10px 16px;font-weight:700;font-size:.92rem;color:var(--muted);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent}
  .tab.active{color:var(--text);border-bottom-color:var(--upper)}
  .view{display:none} .view.active{display:block}

  .controls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-top:8px}
  .field{display:flex;flex-direction:column;gap:4px}
  .field label{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
  input,select{background:#0e1116;border:1px solid var(--border);color:var(--text);border-radius:9px;padding:9px 11px;font-size:.92rem;font-family:inherit}
  input:focus,select:focus{outline:none;border-color:var(--upper)}
  .today{font-weight:800;font-size:1rem;padding:7px 0}
  .btn{background:var(--upper);color:#072014;border:none;font-weight:800;padding:10px 18px;border-radius:10px;cursor:pointer;font-size:.92rem}
  .btn:active{transform:translateY(1px)}
  .syncpill{margin-left:auto;font-size:.78rem;font-weight:700;padding:5px 11px;border-radius:999px}
  .syncpill.on{background:rgba(74,222,128,.15);color:var(--ok)} .syncpill.off{background:rgba(248,113,113,.13);color:var(--warn)}

  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;margin-top:16px}
  .ex{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
  .media{aspect-ratio:16/11;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
  .media img,.media video{width:100%;height:100%;object-fit:contain;background:#fff}
  .ex .body{padding:12px 13px}
  .ex .ename{font-weight:700;font-size:.96rem}
  .ex .row{display:flex;align-items:center;justify-content:space-between;margin-top:6px;margin-bottom:6px}
  .chip{font-size:.66rem;font-weight:700;color:var(--muted);background:#0e1116;border:1px solid var(--border);padding:2px 8px;border-radius:999px}
  .target{font-size:.84rem;font-weight:700;color:var(--upper)}
  .hint{font-size:.74rem;color:var(--muted);margin-bottom:4px}
  .hint b{color:var(--lower)}

  .wline{display:flex;align-items:center;gap:7px;margin:4px 0 8px}
  .wline .wlbl{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
  .exw{padding:7px 10px;font-weight:700}
  .unit{font-size:.78rem;color:var(--muted)}

  .setblk{border-top:1px solid var(--border);padding:9px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .setblk .sn{font-size:.74rem;font-weight:700;color:var(--muted);min-width:42px}
  .reps-ctl{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
  .rlbl{font-size:.72rem;color:var(--muted);margin-right:1px}
  .repbtn{background:#0e1116;border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 0;width:36px;font-weight:700;font-size:.84rem;cursor:pointer}
  .repbtn.active{background:var(--upper);color:#072014;border-color:var(--upper)}
  .customrep{width:54px;text-align:center;padding:6px 4px}

  .block{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-top:16px}
  .block h3{font-size:1rem;margin-bottom:12px}
  table{width:100%;border-collapse:collapse;font-size:.88rem}
  th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--border)}
  th{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}
  .pr{color:var(--upper);font-weight:700}
  .bar{height:14px;border-radius:5px;background:var(--lower);min-width:2px}
  .barlbl{display:flex;justify-content:space-between;font-size:.82rem;margin:10px 0 4px}
  svg{display:block;width:100%;height:auto}
  .empty{color:var(--muted);font-size:.9rem;padding:18px 0;text-align:center}
  #view-stats{display:flex;flex-direction:column}
  #view-stats .block:has(#muscleMap){order:1}
  #view-stats .block:has(#volChart){order:2}
  #view-stats .block:has(#dailyLog){order:3}
  #view-stats .block:has(#progStatus){order:4}
  .bodymap{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:4px}
  .bodyfig{text-align:center}
  .bodysvg{width:190px;height:auto}
  .bodysvg .m{fill:#a8b0bd;stroke:#5b6470;stroke-width:1.2;transition:fill .35s}
  .bodysvg .base{fill:#a8b0bd;stroke:#5b6470;stroke-width:1.2}
  .bodyfig .cap{font-size:.74rem;color:var(--muted);font-weight:700;margin-top:4px;text-transform:uppercase;letter-spacing:.05em}
  .heatleg{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.76rem;color:var(--muted);margin-top:12px}
  .heatleg .sw{display:inline-block;width:18px;height:12px;border-radius:3px}
  .wcard{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;max-width:680px;margin:16px auto 0}
  .wnav{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border)}
  .navbtn{background:var(--surface2);border:1px solid var(--border);color:var(--text);font-size:1.4rem;font-weight:800;width:50px;height:50px;border-radius:12px;cursor:pointer;line-height:1}
  .navbtn:disabled{opacity:.3;cursor:default}
  .wpos{font-weight:700;color:var(--muted);font-size:.92rem}
  .wmedia{aspect-ratio:16/10;background:#fff;display:flex;align-items:center;justify-content:center}
  .wmedia img,.wmedia video{width:100%;height:100%;object-fit:contain;background:#fff}
  .wbody{padding:14px 16px}
  .wname{font-size:1.18rem;font-weight:800}
  .wmeta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
  .wlast{font-size:.84rem;color:var(--muted);margin:4px 0 2px}
  .wlast b{color:var(--lower)}
  .wlevel{font-size:.86rem;font-weight:700;margin:10px 0;padding:9px 12px;border-radius:10px;background:#0e1116;border:1px solid var(--border)}
  .wlevel.ready{color:#072014;background:var(--upper);border-color:var(--upper)}
  .wlevel.build{color:var(--lower)}
  .wset{border-top:1px solid var(--border);padding:12px 0}
  .wset .sn{font-size:.8rem;font-weight:700;color:var(--muted);display:block;margin-bottom:8px}
  .wreps{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
  .wbtn{background:#0e1116;border:1px solid var(--border);color:var(--text);border-radius:12px;height:56px;min-width:54px;flex:1;font-weight:800;font-size:1.15rem;cursor:pointer}
  .wbtn.active{background:var(--upper);color:#072014;border-color:var(--upper)}
  .wcustom{height:56px;width:72px;text-align:center;font-size:1.1rem;border-radius:12px}
  .daystrip{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:16px auto 0;max-width:680px}
  .dchip{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:10px;padding:9px 12px;font-weight:700;font-size:.84rem;cursor:pointer}
  .dchip.active{border-color:var(--lower);color:var(--text)}
  .dchip.done{border-color:var(--upper);color:var(--upper)}
  .volrow{padding:8px 0;border-bottom:1px solid var(--border)}
  .volrow:last-child{border-bottom:none}
  .volm{font-weight:700;font-size:.86rem;margin-bottom:4px}
  .vbar{display:flex;align-items:center;gap:8px;margin:3px 0}
  .vlab{font-size:.72rem;color:var(--muted);width:54px;flex-shrink:0}
  .vbwrap{flex:1;background:#0e1116;border-radius:5px;overflow:hidden}
  .vb{height:12px;border-radius:5px}
  .vb.you{background:var(--upper)} .vb.last{background:var(--lower)} .vb.avg{background:#6b7280}
  .vval{font-size:.74rem;color:var(--muted);width:54px;text-align:right;flex-shrink:0}
  .dlday{padding:10px 0;border-bottom:1px solid var(--border)}
  .dlday:last-child{border-bottom:none}
  .dlhdr{font-weight:700;font-size:.86rem;margin-bottom:6px}
  .dlex{display:flex;justify-content:space-between;gap:10px;font-size:.84rem;padding:2px 0}
  .dlname{color:var(--text)} .dlval{color:var(--upper);font-weight:700;white-space:nowrap}
  .dchip{display:flex;align-items:center;gap:8px}
  .dthumb{width:36px;height:27px;background:#fff;border-radius:6px;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}
  .dthumb img,.dthumb video{width:100%;height:100%;object-fit:contain}
  .dnum{white-space:nowrap}
  /* SESSION (focus) MODE */
  #exitSession{display:none}
  #workout, #dayStrip{display:none}
  .ex.done{border-color:var(--upper)}
  body.session #logGrid{display:none}
  body.session #dayStrip{display:flex}
  body.session{overflow:hidden}
  body.session .apphdr, body.session .tabs, body.session .controls, body.session #view-stats{display:none!important}
  body.session #view-log{position:fixed;inset:0;background:var(--bg);padding:14px;display:flex;flex-direction:column;z-index:50}
  body.session #exitSession{display:flex;align-items:center;justify-content:center;position:fixed;top:12px;right:14px;z-index:60;width:46px;height:46px;border-radius:12px;background:var(--surface2);border:1px solid var(--border);color:var(--text);font-size:1.2rem;font-weight:800;cursor:pointer}
  body.session #workout{flex:1;min-height:0;display:flex;margin-top:0}
  body.session .wcard{max-width:none;margin:0;width:100%;display:flex;flex-direction:column}
  body.session .wnav{padding-right:64px}
  body.session .wmain{flex:1;min-height:0;display:flex;gap:16px}
  body.session .wmedia{flex:1 1 50%;aspect-ratio:auto;height:auto;min-height:0;border-radius:10px}
  body.session .wbody{flex:1 1 50%;overflow:auto;padding:4px}
  body.session .daystrip{margin:10px auto 0;flex-wrap:nowrap;overflow-x:auto;max-width:none;justify-content:flex-start}
  @media (max-width:760px){ body.session .wmain{flex-direction:column;gap:8px} body.session .wmedia{flex:0 0 36%} }
  @media (max-width:560px){.controls{flex-direction:column;align-items:stretch}.syncpill{margin-left:0}}

  .tablink{color:var(--upper);text-decoration:none;font-weight:700;font-size:.9rem;padding:8px 14px;border:1px solid var(--border);border-radius:10px;display:inline-block}
  .tablink:hover{border-color:var(--upper)}
