/* Gimnasio · colores de grupo tomados de los discos olímpicos.
   Oscuro por defecto (se usa en el gimnasio); claro o según el sistema desde Ajustes (data-theme). */
:root{
  --bg:#121614; --surface:#1b211e; --sunk:#171c1a; --raised:#0d100f; --ink:#eef2ef; --muted:#9aa59f; --line:#2b3330; --eq:#3a4440; --eqd:#66726d;
  --accent:#ec5a42; --accent-ink:#160a07; --accent-soft:#2a1c1a; --accent-txt:#ff9a87; --ok:#4cbf78; --ok-ink:#0d1a12; --warn:#e0a83a;
  --gold:#f5d27a; --gold-bg:#2a2410; --gold-line:#5a4a14;
  --c-cua:#ec5a42; --c-glu:#e0609f; --c-gem:#c19066; --c-pec:#5d8ff0; --c-esp:#e0b23a; --c-hom:#4cbf78; --c-bic:#a387e8; --c-tri:#3fc2cc; --c-cor:#f28c40;
  --f-disp:'Big Shoulders Display','Arial Narrow',Impact,sans-serif;
  --f-body:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-num:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  --r:16px; --r-s:12px;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#e8ebe7; --surface:#f8f9f6; --sunk:#eef1ed; --raised:#ffffff; --ink:#1b211f; --muted:#56605c; --line:#cdd4cf; --eq:#b5beb8; --eqd:#7c8782;
  --accent:#c8321f; --accent-ink:#ffffff; --accent-soft:#f6e1dc; --accent-txt:#a3281a; --ok:#22804a; --ok-ink:#ffffff; --warn:#9a6513;
  --gold:#7a5c00; --gold-bg:#fbf3d9; --gold-line:#e6cf86;
  --c-cua:#c8321f; --c-glu:#b02a6f; --c-gem:#7a5230; --c-pec:#1f5bc4; --c-esp:#a87a07; --c-hom:#22804a; --c-bic:#6d47b8; --c-tri:#11808a; --c-cor:#cf5a0e;
  color-scheme:light}
@media (prefers-color-scheme: light){:root[data-theme="sistema"]{
  --bg:#e8ebe7; --surface:#f8f9f6; --sunk:#eef1ed; --raised:#ffffff; --ink:#1b211f; --muted:#56605c; --line:#cdd4cf; --eq:#b5beb8; --eqd:#7c8782;
  --accent:#c8321f; --accent-ink:#ffffff; --accent-soft:#f6e1dc; --accent-txt:#a3281a; --ok:#22804a; --ok-ink:#ffffff; --warn:#9a6513;
  --gold:#7a5c00; --gold-bg:#fbf3d9; --gold-line:#e6cf86;
  --c-cua:#c8321f; --c-glu:#b02a6f; --c-gem:#7a5230; --c-pec:#1f5bc4; --c-esp:#a87a07; --c-hom:#22804a; --c-bic:#6d47b8; --c-tri:#11808a; --c-cor:#cf5a0e;
  color-scheme:light}}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit;color:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}
.wrap{max-width:1200px;margin:0 auto;padding:16px max(16px,env(safe-area-inset-right)) calc(110px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.muted{color:var(--muted)}
h1,h2,h3{margin:0}
.h-disp{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;line-height:1}
.num{font-family:var(--f-num);font-weight:600;font-size:.8rem;color:var(--muted)}
.btn{appearance:none;border:none;background:var(--accent);color:var(--accent-ink);border-radius:var(--r-s);padding:10px 16px;min-height:44px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn.sm{padding:6px 12px;font-size:.84rem;min-height:38px}
.btn:disabled{opacity:.45;cursor:default}
.linkbtn{appearance:none;background:none;border:none;padding:0;color:var(--ink);font-weight:700;font-size:.88rem;text-decoration:underline;cursor:pointer}
.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;max-width:100%;scrollbar-width:thin}
.chip{flex:none;white-space:nowrap;appearance:none;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 14px;min-height:40px;font-weight:600;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.chip i{width:9px;height:9px;border-radius:50%;background:var(--gc,var(--muted))}
.chip[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--bg)}
.chip.add{border-style:dashed}
.note{background:var(--sunk);border:1px dashed var(--line);border-radius:10px;padding:10px 12px;font-size:.9rem;color:var(--muted)}
.note strong{color:var(--ink)}
.empty{background:var(--surface);border:1px dashed var(--line);border-radius:12px;padding:22px;color:var(--muted);text-align:center}
.bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:12px}
.grp{font:600 .68rem var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.grp::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gc)}
input.f,select.f,textarea.f{border:1.5px solid var(--line);background:var(--bg);border-radius:10px;padding:9px 11px;min-width:0;font-size:16px}
textarea.f{width:100%;min-height:70px}

/* ===== login ===== */
.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-box{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px;text-align:center}
.login h1{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;font-size:3rem;line-height:1}
.who{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.who-btn{appearance:none;border:2px solid var(--ink);background:var(--surface);border-radius:14px;padding:28px 10px;font:800 1.6rem var(--f-disp);text-transform:uppercase;cursor:pointer}
.who-btn:hover{background:var(--ink);color:var(--bg)}
#pinForm{display:flex;flex-direction:column;gap:10px;align-items:stretch}
#pinForm label{font-weight:700}
#pin{font:600 1.8rem var(--f-num);text-align:center;letter-spacing:.4em;padding:12px;border:2px solid var(--line);border-radius:12px;background:var(--surface)}
.err{color:var(--accent);font-weight:600;margin:0}

/* ===== cabecera y navegación ===== */
header.top{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top)}
.top-in{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:10px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left))}
.brand{font:800 1.5rem var(--f-disp);text-transform:uppercase}
.tabs{display:flex;gap:4px;flex:1}
.tabs button{appearance:none;border:1px solid transparent;background:none;border-radius:10px;padding:8px 14px;font-weight:600;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.tabs button svg{width:20px;height:20px;flex:none}
.tabs button[aria-current="page"]{background:var(--ink);color:var(--bg)}
.sync{appearance:none;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 10px;font-size:.78rem;display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;color:var(--muted)}
.sync i{width:8px;height:8px;border-radius:50%;background:var(--ok)}
.sync.pend i{background:var(--warn)}
.sync.off i{background:var(--muted)}
.me{font-weight:700;font-size:.9rem}
.subtabs{display:flex;gap:4px;padding:4px;background:var(--sunk);border:1px solid var(--line);border-radius:var(--r-s);margin:0 0 14px;max-width:420px}
.subtabs button{flex:1;appearance:none;border:0;background:none;border-radius:9px;min-height:40px;font-weight:700;color:var(--muted);cursor:pointer}
.subtabs button[aria-current="page"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 0 var(--line)}
@media (max-width:800px){
  .top-in{gap:8px}
  .brand{font-size:1.25rem;flex:1}
  .tabs{position:fixed;left:0;right:0;bottom:0;z-index:7;background:var(--raised);border-top:1px solid var(--line);padding:6px max(4px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px}
  .tabs button{flex-direction:column;gap:3px;padding:6px 0;font-size:.7rem;min-width:0;min-height:52px;border-radius:10px}
  .tabs button svg{width:24px;height:24px}
  .tabs button[aria-current="page"]{background:none;color:var(--accent);font-weight:800}
  #timer{bottom:calc(66px + env(safe-area-inset-bottom))!important}
}

/* ===== dibujos ===== */
.fig{background:var(--sunk);aspect-ratio:6/5;width:100%;max-width:100%;position:relative;overflow:hidden}
.fig svg{display:block;width:100%;height:100%;stroke-linecap:round;stroke-linejoin:round}
.fig img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}
.fig .view{position:absolute;right:6px;top:5px;font:600 .62rem var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
svg line{fill:none}
.fl{stroke:var(--line);stroke-width:1.6}
.pl{fill:var(--surface);stroke:var(--ink);stroke-width:2.2}
.hub,.db{fill:var(--ink)}
.eq{stroke:var(--eq)} .eqd{stroke:var(--eqd)} .eqf{fill:var(--eq)}
.cb{stroke:var(--muted);stroke-width:.9}
.pul{fill:var(--surface);stroke:var(--muted);stroke-width:1.2}
.thumb{width:56px;height:47px;flex:none;border-radius:6px;overflow:hidden;background:var(--sunk);padding:0;border:none;cursor:pointer}
.thumb-in{width:100%;height:100%}
.thumb svg,.thumb img{width:100%;height:100%;display:block;object-fit:cover}

/* ===== catálogo ===== */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:10px}
.ex{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}
.ex .open{appearance:none;border:none;background:none;padding:0;text-align:left;cursor:pointer;display:flex;flex-direction:column;flex:1}
.ex-b{padding:8px 10px 6px;display:flex;flex-direction:column;gap:3px;flex:1}
.ex h3{font-size:.93rem;line-height:1.2}
.meta{font-size:.76rem;color:var(--muted);margin:0}
.daybtns{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:6px 10px 10px}
.daybtns>span{font:600 .64rem var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.dt{appearance:none;min-width:30px;height:30px;border:1.5px solid var(--ink);background:transparent;border-radius:7px;font:700 .82rem var(--f-num);cursor:pointer;padding:0 6px}
.dt[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.ex[draggable="true"]{cursor:grab}
.filters{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.search{width:100%}

/* ===== diseñador de rutinas ===== */
.designer{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;align-items:start}
.cat-panel{position:sticky;top:70px;max-height:calc(100vh - 86px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px}
.cat-panel .grid{grid-template-columns:1fr}
.cat-row{display:flex;gap:10px;align-items:center;padding:6px;border-radius:8px;border:1px solid transparent;background:var(--bg)}
.cat-row+.cat-row{margin-top:6px}
.cat-row[draggable="true"]{cursor:grab}
.cat-row .nm{flex:1;min-width:0;font-weight:600;font-size:.86rem;line-height:1.2}
.cat-row .nm small{display:block;font-weight:400;color:var(--muted);font-size:.74rem}
.cat-row .dts{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:110px}
@media (max-width:900px){.designer{grid-template-columns:minmax(0,1fr)}.cat-panel{display:none}}
.rp{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.rp-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.rp-top input{flex:1 1 220px;font-weight:700;font-size:1.05rem}
.acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.days{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr));gap:12px}
.day{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.dh{display:flex;gap:8px;align-items:center}
.dh .dn{font:800 1.6rem var(--f-disp);width:22px;flex:none}
.dname{flex:1;min-width:0;font:800 1.15rem var(--f-disp);text-transform:uppercase;padding:4px 6px;border:1.5px solid transparent;border-radius:6px;background:transparent}
.dname:hover,.dname:focus{border-color:var(--line);background:var(--bg)}
.dh select{font-size:.8rem;max-width:42%}
.dlist{min-height:60px;border-radius:8px;display:flex;flex-direction:column}
.dlist.over{background:var(--sunk);outline:2px dashed var(--accent);outline-offset:2px}
.dz{margin:0;padding:16px 8px;text-align:center;font-size:.84rem;color:var(--muted);border:1.5px dashed var(--line);border-radius:8px}
.it{display:grid;grid-template-columns:22px 56px minmax(0,1fr);gap:4px 10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.it:first-child{border-top:none}
.it.dragging{opacity:.3}
.handle{color:var(--muted);font-size:1.2rem;cursor:grab;user-select:none;text-align:center}
.it .nm{font-weight:600;font-size:.88rem;line-height:1.2;min-width:0}
.it .nm small{display:block;font-weight:400;color:var(--muted);font-size:.74rem}
.pauta{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.8rem}
.pauta label{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}
.pauta input{width:58px;font:600 .9rem var(--f-num);padding:5px 6px;border:1.5px solid var(--line);border-radius:6px;background:var(--bg);text-align:center}
.pauta input.w{width:70px}
.pauta .mul{font-weight:700;color:var(--ink)}
.it .nota{grid-column:2/-1;width:100%;font-size:.82rem;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}
.it .rc{grid-column:2/-1;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ib{appearance:none;width:36px;height:36px;border:1px solid var(--line);background:var(--bg);border-radius:6px;font-weight:700;cursor:pointer}
.ib:disabled{opacity:.35}
.ib.del{color:var(--accent)}
.it .rc select{height:30px;font-size:.78rem;padding:2px 4px;flex:1 1 110px;min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--bg)}
.ph{height:4px;background:var(--accent);border-radius:2px;margin:4px 0}
.dfoot{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-top:6px}
.cf{display:inline-flex;gap:6px;align-items:center;font-weight:700;font-size:.85rem;flex-wrap:wrap}

/* ===== entrenar ===== */
.train{display:flex;flex-direction:column;gap:14px;max-width:680px;margin:0 auto}
.tc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.tc.done{border-color:var(--ok)}
.tc .fig{aspect-ratio:12/8}
.tc-b{padding:12px;display:flex;flex-direction:column;gap:10px}
.tc h3{font:800 1.45rem var(--f-disp);text-transform:uppercase;line-height:1.05}
.tc .pasos{margin:0;padding-left:20px;font-size:.92rem;display:flex;flex-direction:column;gap:3px}
.tc .nota-u{background:var(--sunk);border-radius:8px;padding:6px 10px;font-size:.88rem}
.sets{display:flex;flex-direction:column;gap:6px}
.sr{display:grid;grid-template-columns:30px minmax(0,1fr) minmax(0,1fr) 46px 30px;gap:6px;align-items:center}
.sr .k{font:600 .8rem var(--f-num);color:var(--muted);text-align:center}
.sr label{position:relative;display:block;min-width:0}
.sr label span{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.7rem;color:var(--muted);pointer-events:none}
.sr input{width:100%;font:600 1.1rem var(--f-num);padding:9px 34px 9px 10px;border:1.5px solid var(--line);border-radius:8px;background:var(--bg)}
.sr.h div,.sr.h .k{font:600 .64rem var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.ok{appearance:none;border:1.5px solid var(--ink);background:transparent;border-radius:8px;height:42px;font-weight:700;font-size:1.05rem;cursor:pointer}
.ok[aria-pressed="true"]{background:var(--ok);border-color:var(--ok);color:var(--surface)}
.rm{appearance:none;border:none;background:none;color:var(--muted);font-size:1rem;cursor:pointer;height:42px}
.last{font-size:.8rem;color:var(--muted)}
.links{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.progress{height:6px;background:var(--line);border-radius:3px;overflow:hidden;margin-top:6px}
.progress i{display:block;height:100%;background:var(--ok)}
.end{display:flex;flex-direction:column;gap:8px;max-width:680px;margin:14px auto 0}
#timer{position:fixed;left:0;right:0;bottom:0;z-index:8;background:var(--ink);color:var(--bg);padding:10px max(16px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:10px}
#timer .t{font:600 1.6rem var(--f-num);font-variant-numeric:tabular-nums}
#timer .t small{font:600 .72rem var(--f-body);text-transform:uppercase;letter-spacing:.08em;display:block;opacity:.7}
#timer .tbtns{display:flex;gap:8px}
#timer button{white-space:nowrap;appearance:none;border:1.5px solid var(--bg);background:transparent;color:var(--bg);border-radius:7px;padding:8px 10px;font-weight:700;cursor:pointer}
#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(130px + env(safe-area-inset-bottom));background:var(--accent);color:var(--accent-ink);padding:9px 14px;border-radius:8px;font-weight:700;z-index:30;max-width:90vw;text-align:center}

/* ===== modal / ficha ===== */
.modal{position:fixed;inset:0;z-index:20;background:color-mix(in srgb,#000 45%,transparent);display:flex;justify-content:center;align-items:flex-end}
.modal-card{background:var(--surface);width:100%;max-width:720px;max-height:92vh;overflow-y:auto;border-radius:16px 16px 0 0;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
@media (min-width:760px){.modal{align-items:center}.modal-card{border-radius:16px;max-height:88vh}}
.m-top{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--surface);padding:12px 16px 10px;border-bottom:1px solid var(--line)}
.m-top h2{font:800 1.4rem var(--f-disp);text-transform:uppercase;line-height:1.05}
.x{appearance:none;border:1.5px solid var(--line);background:var(--bg);border-radius:50%;width:34px;height:34px;flex:none;font-weight:700;cursor:pointer}
.m-b{padding:14px 16px 0;display:flex;flex-direction:column;gap:14px}
.m-b h4{font:700 .72rem var(--f-body);text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0 0 5px}
.m-b ol,.m-b ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.err-l li::marker{content:"✕  ";color:var(--accent);font-weight:700}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:0}
.facts div{background:var(--sunk);border-radius:8px;padding:7px 9px}
.facts dt{font:600 .66rem var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.facts dd{margin:1px 0 0;font-size:.87rem;font-weight:600}
.video-frame{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:10px;overflow:hidden}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vlist{display:flex;flex-direction:column;gap:8px}
.vrow{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;align-items:center;padding:6px;border:1.5px solid var(--line);border-radius:10px}
.vrow.sel{border-color:var(--ok)}
.vrow img{width:120px;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:var(--sunk)}
.vrow .vt{font-weight:600;font-size:.86rem;line-height:1.25}
.vrow .vb{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.vform{display:flex;gap:6px;flex-wrap:wrap}
.vform input{flex:1 1 200px}

/* ===== progreso / ajustes ===== */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px}
.stat b{display:block;font:600 1.5rem var(--f-num)}
.stat span{font-size:.78rem;color:var(--muted)}
.box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:14px}
.box h2{font:800 1.3rem var(--f-disp);text-transform:uppercase;margin-bottom:8px}
.chart{width:100%;height:auto;display:block;margin-top:10px}
.chart text{font:10px var(--f-num);fill:var(--muted)}
.hist{display:flex;flex-direction:column;gap:8px}
.hs{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.hs h4{margin:0 0 4px;font-size:.92rem}
.hs p{margin:0;font-size:.82rem;color:var(--muted)}
.req{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:.9rem}
.badge{font:600 .7rem var(--f-body);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:2px 8px;border:1px solid currentColor;white-space:nowrap;align-self:flex-start}
.badge.pendiente{color:var(--warn)} .badge.hecho{color:var(--ok)} .badge.descartado{color:var(--muted)}
.form{display:flex;flex-direction:column;gap:10px;max-width:480px}
.form label{font-weight:600;font-size:.88rem;display:flex;flex-direction:column;gap:4px}
@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* botón de dictado por voz */
.mic{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(84px + env(safe-area-inset-bottom));z-index:9;width:58px;height:58px;border-radius:50%;border:none;background:var(--ink);color:var(--bg);font-size:1.6rem;box-shadow:0 6px 18px rgb(0 0 0 / .25);cursor:pointer}
.mic.on{background:var(--accent);animation:latido 1s ease-in-out infinite}
@keyframes latido{50%{transform:scale(1.1)}}
@media (min-width:801px){.mic{bottom:calc(24px + env(safe-area-inset-bottom))}}
body:has(#timer:not([hidden])) .mic{bottom:calc(150px + env(safe-area-inset-bottom))}

/* Aviso de versión nueva */
#upd{position:fixed;left:12px;right:12px;margin:0 auto;max-width:460px;justify-content:space-between;top:calc(10px + env(safe-area-inset-top,0px));z-index:60;display:flex;align-items:center;gap:12px;
  background:var(--ink,var(--fg,#1b211f));color:var(--bg,#fff);padding:8px 8px 8px 16px;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.25);font-weight:600}
#upd .btn{white-space:nowrap}

/* Uno a uno / dos lados */
.pauta .lado{font:600 .72rem var(--f-body);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 10px;cursor:pointer;white-space:nowrap}
.pauta .lado[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pauta .lado.fijo{cursor:default;color:var(--muted)}
.lado-sw{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:8px 0 2px;max-width:100%}
.lado-sw button{font:600 .82rem var(--f-body);border:0;background:var(--surface);color:var(--ink);padding:9px 12px;cursor:pointer}
.lado-sw button+button{border-left:1px solid var(--line)}
.lado-sw button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}

/* Molestias */
.rb{display:inline-block;font:600 .7rem var(--f-body);border-radius:999px;padding:2px 8px;margin:4px 4px 0 0;text-transform:none;letter-spacing:0;vertical-align:middle}
.rb.cuidado{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
.rb.evitar{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}
.rb.ayuda{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}
.aviso{border-radius:10px;padding:9px 12px;margin:8px 0;font-size:.88rem;line-height:1.4;border-left:4px solid}
.aviso.cuidado{background:color-mix(in srgb,var(--warn) 12%,transparent);border-color:var(--warn)}
.aviso.evitar{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent)}
.aviso.ayuda{background:color-mix(in srgb,var(--ok) 12%,transparent);border-color:var(--ok)}
.aviso .linkbtn{font-size:inherit}
.mol{display:flex;flex-direction:column;gap:6px}
.mol-r{display:grid;grid-template-columns:minmax(90px,1fr) minmax(0,1.3fr);gap:6px 8px;align-items:center}
.mol-r [data-mt]{grid-column:1/-1}
#datForm .f{width:100%;min-width:0;box-sizing:border-box}
/* con el descanso en marcha, dejar sitio para que la barra no tape lo último de la página */
body:has(#timer:not([hidden])) .wrap{padding-bottom:calc(190px + env(safe-area-inset-bottom))}

/* Sustituciones y revisión de técnica */
.sust{font-size:.82rem;background:color-mix(in srgb,var(--accent) 12%,transparent);border-left:4px solid var(--accent);border-radius:8px;padding:6px 10px;margin:0 0 8px}
.sust-m{font-size:.78rem;color:var(--accent);font-weight:600}
.rev{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:0 0 8px}
.rev .linkbtn{margin-left:8px}
.rev-t{white-space:pre-wrap;margin:6px 0 0;line-height:1.45}
.rev-p{margin:6px 0 0;padding-left:18px;font-size:.9rem}
.rev-f{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px;margin-top:6px}
.rev-f:empty{display:none}
.rev-f figure{margin:0;position:relative}.rev-f img{width:100%;border-radius:6px;display:block}
.rev-f figcaption{position:absolute;left:4px;top:4px;background:var(--ink);color:var(--bg);font:600 .7rem var(--f-body);border-radius:4px;padding:1px 5px}

/* Plan de la semana */
.semana .chip.hecho{opacity:.75;text-decoration:none;background:color-mix(in srgb,var(--ok) 16%,transparent);border-color:var(--ok)}
.plan-sel{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding:8px;border:1px dashed var(--line);border-radius:10px;min-height:40px;align-items:center}
.plan-sel .pi{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:3px 4px 3px 10px;font-size:.86rem}
.plan-sel .pi b{font-family:var(--f-num);color:var(--accent)}
.semana .chips{flex-wrap:wrap;overflow:visible}
.plan-ver{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.9rem}.plan-ver .ok{color:var(--ok)}
.semana .chip.plan{border-color:var(--accent)}

/* Historial */
.semnav{display:flex;align-items:center;gap:8px}
.cal{display:grid;grid-template-columns:auto repeat(7,minmax(0,1fr));gap:4px}
.cal .ch{font:600 .7rem var(--f-body);color:var(--muted);text-align:center;text-transform:uppercase}
.cal .hw{appearance:none;border:1px solid var(--line);background:var(--sunk);border-radius:8px;font:600 .66rem var(--f-num);color:var(--muted);padding:0 4px;cursor:pointer;white-space:nowrap}
.cal .hw.sel,.hc.sel{outline:2px solid var(--accent);outline-offset:-1px}
.hc{appearance:none;border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:52px;padding:4px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;cursor:pointer;position:relative;color:var(--ink)}
.hc.fuera{opacity:.35}.hc.hoy{border-color:var(--ink)}
.hc.gym{background:color-mix(in srgb,var(--ok) 10%,var(--surface))}
.hc .hn{font:600 .8rem var(--f-num)}
.hc .hd{display:flex;gap:2px;flex-wrap:wrap}.hc .hd i{width:7px;height:7px;border-radius:50%;display:block}
.hc .hcar{position:absolute;right:4px;top:3px;font-size:.7rem;color:var(--accent)}
.hx{margin:6px 0}.hx .num{font-size:.85rem}
.hrow{appearance:none;display:grid;grid-template-columns:70px 1fr;gap:8px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:8px 2px;cursor:pointer;color:var(--ink);font:inherit}
.comp{font-size:.84rem;margin:8px 0 0;padding:6px 10px;border-radius:8px;background:var(--sunk);line-height:1.45}
.hc.reloj{background:color-mix(in srgb,var(--muted) 12%,var(--surface))}
.hc .hw-r{font-size:.62rem;line-height:1}
.hs.reloj{border-left:3px dashed var(--muted);padding-left:10px}

/* ===== Rediseño 2026-11 · Hoy ===== */
.hola{display:flex;flex-direction:column;gap:2px;margin:4px 0 14px}
.hola .meta{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.hola h1{font:800 2.6rem/1 var(--f-disp);text-transform:uppercase}
.sem-h{display:flex;align-items:center;gap:8px}
.sem-h h2{flex:1;margin:0!important;font-size:1.1rem!important}
.sem-h h2 .num{font-size:.75rem}
.wk{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:12px 0 4px}
.wk-d{display:flex;flex-direction:column;align-items:center;gap:4px}
.wk-d span{font-size:.7rem;color:var(--muted);font-weight:600}
.wk-d i{width:36px;height:36px;max-width:100%;aspect-ratio:1;border-radius:50%;background:var(--sunk);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--accent);font-style:normal;font-size:.9rem}
.wk-d.hoy span{color:var(--ink);font-weight:800}.wk-d.hoy i{outline:2px solid var(--ink);outline-offset:1px}
.sem-st{margin:6px 0 0!important}
.rec-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px}
.rec-h h2{margin:0!important;font:700 1rem var(--f-body)!important;text-transform:none!important}
.rec-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
.rec-i>div:first-child{display:flex;justify-content:space-between;font-size:.86rem;margin-bottom:4px}
.rec-i b{font-weight:700;font-size:.8rem}
.rec-b{height:6px;border-radius:3px;background:var(--line);overflow:hidden}.rec-b i{display:block;height:100%;border-radius:3px}
.listo{color:var(--ok)}.casi{color:var(--warn)}.cansado{color:var(--c-cor)}
.rec-b i.listo{background:var(--ok)}.rec-b i.casi{background:var(--warn)}.rec-b i.cansado{background:var(--c-cor)}
.hest .he-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.he-i{display:flex;flex-direction:column;gap:2px;min-width:0}.he-i>span{font-size:.78rem;color:var(--muted)}
.he-i b{font-size:1.35rem;line-height:1.1}.he-i b small{font-size:.75rem;color:var(--muted);font-weight:500}.he-i>small{font-size:.75rem;color:var(--muted)}
.he-f{display:flex;height:10px;border-radius:5px;overflow:hidden;margin-top:12px;gap:2px}.he-f i{display:block;min-width:3px}
.he-l{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:.75rem;color:var(--muted)}.he-l i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:middle}
.f-Deep{background:var(--c-pec)}.f-Core{background:var(--c-bic)}.f-REM{background:var(--c-tri)}.f-Awake{background:var(--warn)}
.zn{display:flex;flex-direction:column;gap:6px}.zn-i{display:grid;grid-template-columns:6px 28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.zn-i:last-child{border-bottom:0}
.zn-i>i{align-self:stretch;border-radius:3px}.zn-i>span{display:flex;flex-direction:column;min-width:0}.zn-i small{font-size:.75rem;color:var(--muted)}.zn-i>b.num{font-size:1.05rem}
.reco{display:flex;flex-direction:column;gap:10px}.reco-i{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start}
.reco-i b{font-size:.95rem}.reco-i p{margin:2px 0 0;font-size:.85rem;color:var(--muted)}
.reco-e{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;border:2px solid currentColor}
.bc{display:flex;flex-direction:column;gap:6px;margin-top:8px}.bc-i{display:grid;grid-template-columns:minmax(0,1fr) 64px 70px;gap:8px;align-items:end;padding:6px 0;border-bottom:1px solid var(--line)}
.bc-i>div{display:flex;flex-direction:column;min-width:0}.bc-i label{display:flex;flex-direction:column;gap:2px;font-size:.7rem;color:var(--muted)}.bc-i .f{min-height:38px;padding:6px 8px;text-align:center}
.bc-hab{display:flex;flex-direction:column;gap:6px;font-size:.9rem}.bc-hab-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.bc-hab-g label{display:flex;flex-direction:column;gap:2px;font-size:.75rem;color:var(--muted)}.bc-hab-g .f{text-align:center;min-height:40px}
.chk{display:flex!important;flex-direction:row!important;align-items:center;gap:8px}.chk input{width:20px;height:20px}
.prov-mas{border:1px solid var(--line);border-radius:12px;padding:8px 12px}.prov-mas summary{cursor:pointer;font-weight:600;color:var(--muted)}.prov-mas[open]{display:flex;flex-direction:column;gap:10px}
.prov-b{display:inline-block;margin-top:4px;font-size:.75rem;font-weight:600;color:var(--warn)}
.tst-c{font-size:3.2rem;text-align:center;font-weight:700;margin-top:6px}.tst-f{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.tst-f label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--muted)}
.sal-p{display:flex;gap:6px;flex-wrap:wrap;margin:-2px 0 6px}.sal-p .chip{min-height:34px;padding:6px 12px}
.sal-t{margin:12px 0 4px;font-size:.95rem}.chart rect.f-Deep{fill:var(--c-pec)}.chart rect.f-Core,.chart rect.f-Asleep{fill:var(--c-bic)}.chart rect.f-REM{fill:var(--c-tri)}
.f-Asleep{background:var(--c-bic)}
.he-c{margin:10px 0 0;font-size:.88rem}.he-c b{font-weight:700}
.sec-t{font:700 1rem var(--f-body);margin:0 0 8px}
.pick{display:flex;flex-direction:column;gap:8px;max-width:680px;margin-bottom:16px}
.pk{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;min-height:60px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer;font:inherit}
.pk>span:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.pk b{font-size:1.05rem}.pk small{font-size:.78rem;color:var(--muted)}
.pk.rec{border:2px solid var(--accent)}.pk.rec small{color:var(--accent-txt);font-weight:600}
.pk .dots{display:flex;gap:4px;flex:none}.pk .dots i{width:10px;height:10px;border-radius:50%}
.pk2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pk.libre{justify-content:center;border-style:dashed;font-weight:700}
.pk.car{justify-content:center;border:none;background:var(--accent-soft);color:var(--accent-txt);font-weight:800}
.pk:disabled{opacity:.5}
.cardio-on{border:2px solid var(--accent)}

/* ===== Rediseño · sesión ===== */
.sesbar{position:sticky;top:calc(58px + env(safe-area-inset-top));z-index:4;background:var(--bg);margin:-4px calc(-1*max(16px,env(safe-area-inset-left))) 14px;padding:8px max(16px,env(safe-area-inset-left)) 8px;border-bottom:1px solid var(--line)}
.sesbar-t{display:flex;align-items:center;gap:8px}
.sesbar-t>div{flex:1;min-width:0;display:flex;flex-direction:column}
.sesbar-t b{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sesbar .progress{margin-top:8px;height:4px}.sesbar .progress i{background:var(--accent)}
.tc-h{display:flex;gap:12px;align-items:flex-start}
.tc.cerrado{padding:0}.tc-cb{appearance:none;border:0;background:none;color:inherit;font:inherit;width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left;cursor:pointer}
.tc-ck{width:30px;height:30px;border-radius:50%;background:var(--ok);color:var(--ok-ink);display:flex;align-items:center;justify-content:center;font-weight:800;flex:none}
.tc-ct{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.tc-ct b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-cv{color:var(--muted);font-size:1.1rem}
.rep-av{border:1px solid var(--warn);border-radius:12px;padding:8px 12px;margin:8px 0;font-size:.85rem;display:flex;flex-direction:column;gap:6px}.rep-av p{margin:0}.rep-av b{color:var(--warn)}
.tc.plegado{padding:0}.tc-num{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--muted);flex:none}
.tc-pmm{width:46px;flex:none}.tc-pmm .mm{width:46px;height:auto;display:block}
.fin-ej{width:100%;margin-top:10px}.sr2 .ok{display:flex;align-items:center;justify-content:center;color:var(--ok);font-weight:800}
.tc-mm{appearance:none;border:0;background:none;padding:0;flex:none;width:72px;cursor:pointer}.tc-mm .mm{width:72px;height:auto;display:block}
.mm .mm-b{fill:color-mix(in srgb,var(--ink) 13%,var(--bg))}.mm .mm-z>*,.mm .mm-z g>*{stroke:var(--bg);stroke-width:.7}
.mm .mm-r{fill:color-mix(in srgb,var(--ink) 22%,var(--bg))}.mm .mm-p,.mm-dot.mm-p{fill:var(--accent);background:var(--accent)}.mm .mm-s,.mm-dot.mm-s{fill:color-mix(in srgb,var(--accent) 45%,var(--ink));background:color-mix(in srgb,var(--accent) 45%,var(--ink))}
.fi-mm{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.fi-mm .mm{width:min(200px,55%);height:auto}.fi-mm-t{display:flex;flex-direction:column;gap:6px;font-size:.9rem;min-width:0;flex:1}
.mm-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
.tc-fig{appearance:none;padding:0;border:1px solid var(--line);background:var(--sunk);border-radius:14px;width:76px;height:76px;flex:none;overflow:hidden;cursor:pointer}
.tc-fig-in,.tc-fig-in svg,.tc-fig-in img{width:100%;height:100%;display:block;object-fit:cover}
.tc-ht{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.tc-ht .grp{color:var(--gc)}
.tc-q{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px}
.tc-q .linkbtn{font-size:.85rem}
.ib.more{margin-left:auto;font-size:1.1rem;line-height:1}
.pr{display:flex;gap:10px;align-items:center;background:var(--gold-bg);border:1px solid var(--gold-line);color:var(--gold);border-radius:12px;padding:10px 12px}
.pr svg{flex:none}.pr span{display:flex;flex-direction:column}.pr b{font-size:.95rem}.pr small{font-size:.8rem;opacity:.9}
.sa{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--sunk);border:2px solid var(--accent);border-radius:14px}
.sa-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.9rem}
.sa-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.stp{display:flex;flex-direction:column;gap:4px;min-width:0}
.stp label{font:700 .68rem var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.stp>div{display:flex;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:12px;min-width:0}
.stp button{appearance:none;border:0;background:none;color:var(--ink);width:44px;height:52px;font-size:1.5rem;flex:none;cursor:pointer}
.stp input{width:100%;min-width:0;text-align:center;background:transparent;border:0;color:var(--ink);font:600 1.45rem var(--f-num);padding:0}
.esf{display:flex;gap:6px}
.esf button{flex:1;appearance:none;border:1px solid var(--line);background:transparent;color:var(--muted);height:40px;border-radius:10px;font-weight:600;font-size:.84rem;cursor:pointer}
.esf button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg);font-weight:700}
.btn.big{min-height:56px;font-size:1.05rem;font-weight:800;border-radius:14px}
.sr2{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:6px;align-items:center}
.sr2-b{appearance:none;display:grid;grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;border:1px dashed var(--line);background:none;color:var(--muted);border-radius:12px;min-height:44px;padding:6px 10px;font:600 1rem var(--f-num);cursor:pointer}
.sr2-b .k{font-size:.8rem;display:flex;flex-direction:column;line-height:1.05}.sr2-b .k small{font-size:.62rem;color:var(--muted);font-weight:600}
.sr2.hecha .sr2-b{border:1px solid transparent;background:color-mix(in srgb,var(--ok) 10%,var(--surface));color:var(--ink);cursor:default}
.sr2.cal .sr2-b{font-size:.9rem;opacity:.85}
.sr2 .ok{height:40px;width:40px;justify-self:center;border-radius:10px}
.ok[aria-pressed="true"]{background:var(--ok);border-color:var(--ok);color:var(--ok-ink)}
.acts2 .btn{flex:1 1 auto}
.mas{padding-bottom:6px}.mas .btn{justify-content:flex-start}
.res-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.res-g div{background:var(--sunk);border-radius:12px;padding:12px;display:flex;flex-direction:column}
.res-g b{font:600 1.5rem var(--f-num)}.res-g span{font-size:.78rem;color:var(--muted)}
.mic{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--ink);border:1px solid var(--line)}
/* barra de descanso */
#timer{background:var(--raised);color:var(--ink);border-top:1px solid var(--line)}
#timer .t{display:flex;flex-direction:column;font:600 1.9rem/1 var(--f-num)}
#timer .t small{opacity:1;color:var(--muted);margin-top:4px;max-width:46vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#timer button{border:1px solid var(--line);color:var(--ink);min-height:44px;min-width:48px;border-radius:10px;font-family:var(--f-num)}
#timer button.skip{background:var(--surface);font-family:var(--f-body)}
/* historial con el nuevo estilo */
.hc{border-radius:10px}.hc.gym{background:color-mix(in srgb,var(--ok) 14%,var(--surface))}
.hs{border-radius:var(--r-s)}
#toast{border-radius:12px;box-shadow:0 8px 24px rgb(0 0 0 / .3)}
/* superseries y récords */
.ssb{font-size:.82rem;color:var(--c-tri);font-weight:600;border-left:4px solid var(--c-tri);padding:2px 0 2px 8px}
.tc.ss1{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-color:var(--c-tri)}
.tc.ss2{border-top-left-radius:4px;border-top-right-radius:4px;border-color:var(--c-tri);margin-top:-10px}
.recr{border-top:1px solid var(--line);padding:10px 0}
.recr-h{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-bottom:6px}.recr-h b{font-size:.95rem}
.recr-h .grp{color:var(--gc)}
.nuevo{font:700 .7rem var(--f-body);text-transform:uppercase;letter-spacing:.06em;background:var(--gold-bg);color:var(--gold);border:1px solid var(--gold-line);border-radius:999px;padding:1px 8px}
.recr-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.recr-g div{background:var(--sunk);border-radius:10px;padding:8px;display:flex;flex-direction:column;min-width:0}
.recr-g b{font:600 1.05rem var(--f-num)}.recr-g span{font-size:.7rem;color:var(--muted)}
/* entrenos plegables */
.dtog{appearance:none;border:1px solid var(--line);background:var(--sunk);color:var(--ink);border-radius:10px;min-height:40px;padding:4px 10px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;flex:none}
.dtog .dots{display:flex;gap:3px}.dtog .dots i{width:8px;height:8px;border-radius:50%}
.dres{margin:2px 0 0;font-size:.84rem;color:var(--muted);cursor:pointer;line-height:1.4}
.day.plegado{gap:4px}
/* panel del dictado por voz */
#vozOv{position:fixed;left:12px;right:12px;bottom:calc(140px + env(safe-area-inset-bottom));z-index:25;max-width:520px;margin:0 auto;background:var(--raised);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:12px;display:flex;align-items:center;gap:12px;box-shadow:0 10px 30px rgb(0 0 0 / .35)}
#vozOv .vo-i{width:48px;height:48px;border-radius:50%;background:var(--sunk);display:flex;align-items:center;justify-content:center;flex:none;color:var(--muted)}
#vozOv .vo-i.on{background:var(--accent);color:var(--accent-ink);animation:latido 1s ease-in-out infinite}
#vozOv .vo-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}#vozOv .vo-t span{font-size:.92rem;color:var(--muted)}
.res-big{display:flex;flex-direction:column;align-items:center;padding:6px 0}.res-big b{font:600 2.8rem/1 var(--f-num)}.res-big span{color:var(--muted);font-size:.9rem;margin-top:4px}
.res-dest{margin:0;text-align:center;color:var(--gold);font-weight:600}

/* ===== Efectos 2026-11 ===== */
@media (prefers-reduced-motion: no-preference){
  /* entrada suave de tarjetas y listas */
  .entra .box,.entra .pk,.entra .tc,.entra .stat,.entra .hs,.entra .recr{animation:sube .45s cubic-bezier(.2,.8,.2,1) both}
  .entra .pick .pk:nth-child(2){animation-delay:.04s}.entra .pick .pk:nth-child(3){animation-delay:.08s}.entra .pick .pk:nth-child(4){animation-delay:.12s}.entra .pick .pk:nth-child(5){animation-delay:.16s}.entra .pick .pk:nth-child(6){animation-delay:.2s}
  @keyframes sube{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  /* barras de recuperación que se llenan */
  .entra .rec-b i{animation:llena 1s cubic-bezier(.2,.8,.2,1) both;transform-origin:left}
  @keyframes llena{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  /* entreno recomendado con un halo que respira */
  .pk.rec{position:relative;box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 40%,transparent);animation:halo 2.8s ease-in-out .6s infinite}
  .entra .pk.rec{animation:sube .45s both,halo 2.8s ease-in-out .6s infinite}
  @keyframes halo{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 0%,transparent),0 0 28px color-mix(in srgb,var(--accent) 22%,transparent)}}
  /* hoy en la semana */
  .wk-d.hoy i{animation:hoy 2.4s ease-in-out infinite}
  @keyframes hoy{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--ink) 12%,transparent)}}
  /* serie hecha: golpe */
  .pop{animation:pop .45s cubic-bezier(.3,1.6,.5,1)}
  @keyframes pop{0%{transform:scale(.94)}60%{transform:scale(1.03)}100%{transform:none}}
  .sr2.hecha .ok{animation:check .5s cubic-bezier(.3,1.6,.5,1)}
  @keyframes check{0%{transform:scale(.4) rotate(-20deg)}100%{transform:none}}
  /* récord: brillo que cruza */
  .pr{position:relative;overflow:hidden}
  .pr::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgb(255 255 255 / .28) 50%,transparent 70%);transform:translateX(-100%);animation:brillo 2.6s ease-in-out .3s infinite}
  @keyframes brillo{40%,100%{transform:translateX(100%)}}
  /* barra de progreso de la sesión con destello */
  .sesbar .progress i{background:linear-gradient(90deg,var(--accent),#ff9a5a,var(--accent));background-size:200% 100%;animation:fluye 2.5s linear infinite;transition:width .5s cubic-bezier(.2,.8,.2,1);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 60%,transparent)}
  @keyframes fluye{to{background-position:-200% 0}}
  /* botón principal: se hunde al tocar */
  .btn{transition:transform .12s ease,filter .2s}.btn:active{transform:scale(.97);filter:brightness(1.1)}
  .stp button:active,.esf button:active,.pk:active{transform:scale(.96)}
  .stp button,.esf button,.pk{transition:transform .12s ease}
  /* la ventana sube desde abajo */
  .modal{animation:fundido .2s ease both}.modal-card{animation:hoja .35s cubic-bezier(.2,.8,.2,1) both}
  @keyframes fundido{from{opacity:0}}@keyframes hoja{from{transform:translateY(40px);opacity:.4}}
  #toast{animation:toast .35s cubic-bezier(.3,1.5,.5,1) both}
  @keyframes toast{from{transform:translate(-50%,20px) scale(.9);opacity:0}}
  /* descanso: últimos segundos */
  #timer[data-fase="ya"] .t span{animation:latir .5s ease-in-out infinite;color:var(--accent)}
  @keyframes latir{50%{transform:scale(1.08)}}
}
/* barras de arriba y abajo translúcidas, con el contenido difuminado detrás */
/* (el filtro no se pone en la cabecera del móvil: la barra de pestañas va dentro y dejaría de quedarse abajo) */
.sesbar{background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px)}
@media (min-width:801px){header.top{background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px)}}
@media (max-width:800px){.tabs{background:color-mix(in srgb,var(--raised) 80%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px)}}
#timer{-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);background:color-mix(in srgb,var(--raised) 85%,transparent)}
/* pestaña activa con un punto de luz */
@media (max-width:800px){.tabs button[aria-current="page"] svg{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--accent) 70%,transparent))}}
/* tarjetas con un borde de luz muy sutil */
.box,.tc,.pk{background-image:linear-gradient(180deg,color-mix(in srgb,var(--ink) 3%,transparent),transparent 40%)}
/* fondo con un resplandor de color arriba */
body{background:radial-gradient(120% 60% at 50% -10%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 60%),var(--bg);background-attachment:fixed}
/* anillo del descanso */
#timer .ring{width:54px;height:54px;flex:none;transform:rotate(-90deg)}
#timer .ring circle{fill:none;stroke-width:4}
#timer .ring-b{stroke:var(--line)}
#timer .ring-f{stroke:var(--c-tri);stroke-linecap:round;stroke-dasharray:132;stroke-dashoffset:0;transition:stroke-dashoffset .25s linear,stroke .3s}
#timer[data-fase="casi"] .ring-f{stroke:var(--warn)}#timer[data-fase="ya"] .ring-f{stroke:var(--accent)}
#timer .t{flex:1}
/* confeti */
.confeti{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:40}
/* récord dorado con degradado */
.pr{background:linear-gradient(135deg,var(--gold-bg),color-mix(in srgb,var(--gold) 14%,var(--gold-bg)))}
.res-big b{background:linear-gradient(180deg,var(--ink),color-mix(in srgb,var(--ink) 60%,var(--accent)));-webkit-background-clip:text;background-clip:text;color:transparent}
#timer{gap:10px}
#timer .t{min-width:0}
#timer .t small{max-width:none}
#timer .tbtns{gap:6px;flex:none}
#timer button{min-width:44px;padding:8px}
.wk-d i{position:relative}
.wk-d i.rel{background:color-mix(in srgb,var(--muted) 30%,var(--sunk));border-color:color-mix(in srgb,var(--muted) 50%,transparent);color:var(--ink)}
.wk-d i.solo-car{color:var(--accent)}
.wk-h{position:absolute;right:-4px;bottom:-4px;width:18px;height:18px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:.62rem;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface)}

/* Composición corporal */
.stat b small{font-size:.8rem;font-weight:500;color:var(--muted)}
.stat .cp-d{display:block;margin-top:2px;font-size:.78rem}
.cp-l{margin:4px 0 10px;padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:.88rem;color:var(--muted)}.cp-l b{color:var(--ink)}
.cp-fi{margin-top:8px}.cp-fi summary{cursor:pointer;font-size:.88rem;color:var(--accent)}
.cp-f{grid-template-columns:repeat(2,minmax(0,1fr))}
.cp-t{display:flex;flex-direction:column}
.cp-r{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:2px;padding:8px 0;border-bottom:1px solid var(--line)}
.cp-r:last-child{border-bottom:0}
.cp-n{font-size:.88rem;min-width:0}.cp-r b{text-align:right;white-space:nowrap}.cp-r b small{font-size:.75rem;font-weight:500;color:var(--muted)}
.cp-v{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.cp-r>span:last-child{text-align:right;font-size:.78rem}
.cp-excelente,.cp-bueno,.cp-normal{color:var(--ok)}.cp-alto,.cp-mal,.cp-bajo{color:var(--warn)}
.he-trae{display:block;text-align:center;margin-top:10px;text-decoration:none}
.nch{display:flex;flex-direction:column}
.nch-r{display:grid;grid-template-columns:auto 1fr auto;gap:2px 10px;align-items:baseline;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:10px 0;color:inherit;font:inherit;cursor:pointer}
.nch-d{font-weight:600;text-transform:capitalize}.nch-h{color:var(--muted);font-size:.85rem}.nch-t{text-align:right}
.nch-b{grid-column:1/-1;display:flex;height:8px;border-radius:4px;overflow:hidden;margin-top:4px}.nch-b i{display:block;height:100%}
.nch-f{grid-column:1/-1;font-size:.75rem}
.nch-x{padding:6px 0 10px;border-bottom:1px solid var(--line)}.hip rect.f-Awake{fill:var(--warn)}.hip rect.f-Asleep{fill:var(--c-bic)}
.nch-t.listo{color:var(--ok)}.nch-t.cansado{color:var(--warn)}


/* ===== GYM GPT · rediseño paralelo ===== */
:root{
  --bg:#111916;--surface:#19221d;--sunk:#151d18;--raised:#202b24;--ink:#f1f5f0;--muted:#a2afa6;--line:#303c34;--eq:#445249;--eqd:#77847a;
  --accent:#ef6b52;--accent-ink:#1e0e09;--accent-soft:#35231f;--accent-txt:#ffab98;--ok:#69c58a;--ok-ink:#102016;--warn:#e6b75b;
  --gold:#f0ce79;--gold-bg:#302a17;--gold-line:#62531e;--r:20px;--r-s:14px;color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#f3f3ee;--surface:#ffffff;--sunk:#eaede7;--raised:#ffffff;--ink:#1e2a22;--muted:#647168;--line:#d8dfd8;--eq:#b9c5bb;--eqd:#7d8a80;
  --accent:#c94c36;--accent-ink:#ffffff;--accent-soft:#fae9e4;--accent-txt:#a33b2a;--ok:#28784a;--ok-ink:#ffffff;--warn:#a66d16;
  --gold:#795c12;--gold-bg:#faf3db;--gold-line:#e7d69a;color-scheme:light;
}
@media(prefers-color-scheme:light){:root[data-theme="sistema"]{
  --bg:#f3f3ee;--surface:#ffffff;--sunk:#eaede7;--raised:#ffffff;--ink:#1e2a22;--muted:#647168;--line:#d8dfd8;--accent:#c94c36;--accent-ink:#ffffff;--accent-soft:#fae9e4;--accent-txt:#a33b2a;--ok:#28784a;--ok-ink:#ffffff;--warn:#a66d16;--gold:#795c12;--gold-bg:#faf3db;--gold-line:#e7d69a;color-scheme:light;
}}
@media(prefers-color-scheme:dark){:root[data-theme="sistema"]{
  --bg:#111916;--surface:#19221d;--sunk:#151d18;--raised:#202b24;--ink:#f1f5f0;--muted:#a2afa6;--line:#303c34;--accent:#ef6b52;--accent-ink:#1e0e09;--accent-soft:#35231f;--accent-txt:#ffab98;--ok:#69c58a;--ok-ink:#102016;--warn:#e6b75b;color-scheme:dark;
}}
body{background:var(--bg);line-height:1.5}
.wrap{max-width:1480px;padding-top:26px}
.btn{border-radius:14px;min-height:46px;box-shadow:0 3px 12px color-mix(in srgb,var(--accent) 18%,transparent)}
.btn.ghost{box-shadow:none}
input.f,select.f,textarea.f{border-radius:12px;background:var(--surface)}
.box,.day,.rp,.ex,.tc,.stat,.hs,.hc{border-radius:20px}
.box{padding:18px;margin-bottom:14px;border-color:color-mix(in srgb,var(--line) 90%,transparent);box-shadow:0 5px 20px color-mix(in srgb,var(--ink) 4%,transparent)}
.hola{margin:8px 0 22px;gap:5px}
.hola h1{font-size:clamp(2.5rem,5vw,4rem);letter-spacing:-.025em}
.sem-h h2{font-size:1.2rem!important}
.wk{gap:8px;margin:16px 0 8px}
.wk-d i{width:42px;height:42px;font-weight:700}
.pk{min-height:76px;border-radius:18px;padding:14px 18px;box-shadow:0 4px 16px color-mix(in srgb,var(--ink) 5%,transparent)}
.pk.rec{border-width:2px}
.grid{gap:14px}
.ex{border-radius:18px}
.tc{padding:16px!important;border:1px solid var(--line);box-shadow:0 5px 20px color-mix(in srgb,var(--ink) 4%,transparent)}
.tc.plegado,.tc.cerrado{padding:0!important}
.sa{border-radius:18px}
.stp button{width:48px;height:56px}
.stp input{font-size:1.55rem}
.btn.big{min-height:60px;border-radius:16px}
.sr2-b{min-height:50px;border-radius:14px}
.subtabs{max-width:640px;border-radius:16px;padding:5px;margin-bottom:20px}
.subtabs button{border-radius:12px}
#timer{border-radius:22px 22px 0 0;box-shadow:0 -10px 35px rgb(0 0 0 / .15)}
#toast{border:1px solid var(--line);background:var(--raised)}
#tabs [data-v="salud"]{display:none}
@media(min-width:1000px){
  header.top{position:fixed;inset:0 auto 0 0;width:252px;height:100vh;border:0;border-right:1px solid var(--line);background:var(--surface);backdrop-filter:none;padding:0}
  .top-in{height:100%;max-width:none;margin:0;padding:28px 18px;display:flex;align-items:stretch;flex-direction:column;gap:18px}
  .brand{font-size:2rem;letter-spacing:.03em;padding:2px 10px 12px}
  .tabs{display:flex;flex:0;flex-direction:column;gap:6px;width:100%}
  .tabs button{width:100%;justify-content:flex-start;padding:12px 14px;min-height:50px;border-radius:14px;color:var(--muted)}
  .tabs button[aria-current="page"]{background:var(--accent-soft);color:var(--accent)}
  .tabs button[aria-current="page"] svg{filter:none}
  .sync{margin-top:auto;width:100%;min-height:48px;justify-content:flex-start;border-radius:14px;padding:10px 12px}
  .me{padding:5px 12px 8px}
  .wrap{margin-left:252px;max-width:1480px;padding:36px clamp(28px,4vw,64px) 80px}
  .sesbar{top:12px;margin-top:-10px;border-radius:16px;padding:12px 18px}
  #timer{right:24px;left:auto;bottom:20px;border:1px solid var(--line);border-radius:22px;max-width:560px}
  #vozOv{bottom:24px}
}
@media(min-width:801px) and (max-width:999px){
  .wrap{padding:24px 24px 80px}
  .top-in{max-width:none}
}
@media(max-width:800px){
  .top-in{padding-top:10px;padding-bottom:10px}
  .brand{font-size:1.45rem}
  .tabs{grid-template-columns:repeat(5,minmax(0,1fr));padding-top:8px}
  .tabs button{min-height:56px;font-size:.72rem}
  .tabs button svg{width:22px;height:22px}
  .wrap{padding:18px 14px calc(116px + env(safe-area-inset-bottom))}
  .hola{margin-top:3px}
  .sesbar{top:calc(54px + env(safe-area-inset-top));margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}
  #vozOv{bottom:calc(128px + env(safe-area-inset-bottom))}
}
@media(max-width:420px){
  body{font-size:14px}
  .wrap{padding-left:12px;padding-right:12px}
  .tabs button{font-size:.66rem}
  .tabs button svg{width:21px;height:21px}
  .box{padding:15px}
  .sa-g{gap:8px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
