:root{--bg:#0b0b0c;--card:#151517;--ink:#f1f1f2;--mute:#8e8e96;--line:#2a2a2f;--leaf:#ff4d1a;--soft:#2a1710;--sun:#ffb020;--p:#ff5468;--c:#4aa3ff;--f:#ffb020;--ok:#2ecc71;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 'Barlow',system-ui,sans-serif;padding-bottom:92px;-webkit-tap-highlight-color:transparent}
h2,.logo,.big,.stat b,.mid,.pill,.btn,.sec,.tbl th{font-family:'Barlow Condensed','Barlow',sans-serif}
.hide{display:none!important}
.top{background:#0b0b0c;border-bottom:3px solid var(--leaf);color:#fff;position:sticky;top:0;z-index:20;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.logo{font-weight:800;font-size:23px;letter-spacing:1.2px;font-style:italic;white-space:nowrap;display:inline-flex;align-items:center}.logo i{color:var(--leaf);margin-right:8px;font-style:normal}.logo b{color:var(--leaf);font-weight:800}
.pts{background:#1f1f23;padding:4px 10px;border-radius:8px;font-size:15px;font-weight:700}.pts i{color:var(--sun)}
.who{font-size:13px;color:var(--mute)}
.ghost{background:none;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:6px 10px;font:inherit;font-size:13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.ghost:hover{border-color:var(--leaf)}
main{max-width:1080px;margin:0 auto;padding:16px}
.g{display:grid;gap:16px}.g2{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:1fr}
@media(min-width:900px){.g2{grid-template-columns:5fr 7fr}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px}
.card h2{margin:0 0 12px;font-size:20px;font-weight:700;text-transform:uppercase;letter-spacing:.7px}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.mute{color:var(--mute)}.sm{font-size:13px}.big{font-size:34px;font-weight:800;line-height:1}
.stat{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--leaf);border-radius:10px;padding:12px 14px}.stat span{display:block;font-size:12px;color:var(--mute)}.stat b{font-size:26px;font-weight:700}
label{display:block;font-size:12px;font-weight:600;color:var(--mute);margin:0 0 4px}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#0e0e10;color:var(--ink)}
textarea{resize:vertical;min-height:68px}
select option,select optgroup{background:#151517;color:var(--ink)}
input:focus,select:focus,textarea:focus,button:focus-visible,summary:focus-visible{outline:2px solid var(--leaf);outline-offset:1px}
.f{display:grid;gap:10px}.f2{grid-template-columns:1fr 1fr}.f3{grid-template-columns:1fr 1fr 1fr}.f4{grid-template-columns:repeat(4,1fr)}
.btn{background:var(--leaf);color:#fff;border:0;border-radius:8px;padding:11px 16px;font-size:17px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;cursor:pointer;width:100%;text-align:center;text-decoration:none;display:inline-block}
.btn:hover{background:#e63d0c}.btn:disabled{opacity:.55;cursor:default}
.btn.alt{background:#232327;color:var(--ink)}.btn.alt:hover{background:#2d2d32}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);background:#0e0e10;color:var(--ink);border-radius:8px;padding:8px 12px;font:inherit;font-size:13px;font-weight:500;cursor:pointer}
.chip small{color:var(--mute);margin-left:2px}.chip.on{background:var(--leaf);border-color:var(--leaf);color:#fff}.chip.on small{color:#ffd5c7}
.pill{display:inline-block;background:var(--soft);color:#ff9a78;border-radius:6px;padding:1px 8px;font-size:14px;font-weight:700;margin:2px 4px 2px 0}.pill.s{background:#2b2210;color:#ffc659}.pill.ok{background:#112a1d;color:#58d68d}.pill.w{background:#3a1218;color:#ff9aa8}
.pr{background:var(--leaf);color:#fff;border-radius:5px;padding:1px 6px;font-size:11px;font-weight:700}
.ring{--p:0;width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--leaf) calc(var(--p)*1%),#2a2a2f 0);display:grid;place-items:center;flex:none}
.ring div{width:120px;height:120px;border-radius:50%;background:var(--card);display:grid;place-content:center;text-align:center}
.bar{height:8px;background:#2a2a2f;border-radius:4px;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;border-radius:4px;transition:width .35s}
.item{padding:7px 0;border-top:1px solid var(--line);font-size:14px}
.x{background:none;border:0;color:#ff6b7d;font-size:18px;cursor:pointer;padding:0 4px}
.day{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#101012}.day.ok{border-color:var(--leaf)}
.day.empty{background:transparent;color:var(--mute);padding:9px 14px}.cap{text-transform:capitalize}
.day summary{cursor:pointer;list-style:none;display:block}.day summary::-webkit-details-marker{display:none}
.det{margin-top:10px;padding-top:6px;border-top:1px dashed var(--line)}
.sec{font-size:13px;font-weight:700;text-transform:uppercase;color:var(--leaf);letter-spacing:1px;margin:12px 0 6px}
.nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.nav .mid{flex:1;text-align:center;font-weight:700;font-size:18px;min-width:120px}
.nav button{border:1px solid var(--line);background:#0e0e10;color:var(--ink);border-radius:8px;padding:8px 12px;font:inherit;cursor:pointer}
.nav .cur{background:var(--leaf);color:#fff;border-color:var(--leaf);font-weight:700}.nav .cur:disabled{background:transparent;color:var(--mute);border-color:var(--line);cursor:default}
.tw{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:14px;min-width:340px}
.tbl th{font-size:13px;font-weight:600;color:var(--mute);text-transform:uppercase;letter-spacing:.6px;text-align:left;padding:6px 8px;border-bottom:2px solid var(--line)}
.tbl td{padding:8px;border-bottom:1px solid #222226;vertical-align:middle}.tbl .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl tfoot td{font-weight:700;border-bottom:0;color:var(--leaf)}
.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{flex:1;background:#0e0e10;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px;font:inherit;font-weight:600;cursor:pointer}.seg button.on{background:var(--leaf);border-color:var(--leaf);color:#fff}
.optx{margin:10px 0 0;padding:10px 12px;background:var(--card);border-left:3px solid var(--leaf);border-radius:6px;font-size:14px}
.tabs{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(10px + env(safe-area-inset-bottom));width:min(680px,calc(100% - 20px));background:#151517;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 28px rgba(0,0,0,.6);display:flex;overflow-x:auto;scrollbar-width:none;padding:6px;z-index:30}
.tabs::-webkit-scrollbar{display:none}
.tabs button{flex:1 0 auto;min-width:56px;background:none;border:0;border-radius:10px;padding:8px 6px;font:inherit;font-size:11px;font-weight:600;color:var(--mute);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px}
.tabs button i{font-size:17px}.tabs button.on{background:var(--soft);color:var(--leaf)}
.overlay{position:fixed;inset:0;z-index:50;background:radial-gradient(circle at 20% 0%,#33160c,#0b0b0c 60%);display:grid;place-items:center;padding:24px 16px;overflow:auto}
.overlay .card{width:100%;max-width:440px;padding:26px}
.err{background:#3a1218;color:#ff9aa8;border-radius:8px;padding:9px 12px;font-size:13px}
#toast{position:fixed;top:76px;left:50%;transform:translateX(-50%);background:var(--leaf);color:#fff;padding:10px 16px;border-radius:10px;font-weight:700;z-index:120;max-width:90%;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.tab{display:none}.tab.on{display:block}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.ni{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.xb{background:none;border:0;color:#ff6b7d;font-size:15px;cursor:pointer;padding:0 6px}
.banner{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--soft);border:1px solid var(--leaf);border-radius:10px;padding:10px 14px;margin-bottom:14px;flex-wrap:wrap}
body.ro .rw{display:none!important}body.ro .x{display:none}body.ro .chip{pointer-events:none}body.ro .g2{grid-template-columns:1fr}
.sess{border-top:1px dashed var(--line);margin-top:10px;padding-top:8px}.sess summary{cursor:pointer;list-style:none}.sess summary::-webkit-details-marker{display:none}
.sess .sc{transition:transform .2s;color:var(--leaf);font-size:12px}.sess[open] .sc{transform:rotate(90deg)}
.sess .tw{margin-top:8px}
.prs3{margin-top:8px;gap:8px}.prs3 span{display:block;font-size:11px;color:var(--mute);text-transform:uppercase}.prs3 b{font-family:'Barlow Condensed',sans-serif;font-size:20px}
.brand-box{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#101012;border:1px solid var(--line);border-radius:10px}
.brand-box img{width:48px;height:48px;border-radius:10px;object-fit:cover;border:1px solid var(--line);background:#0b0b0c}
.plan-card{background:#101012;border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;justify-content:space-between;gap:12px;position:relative}
.plan-card.cur{border:2px solid var(--leaf);background:linear-gradient(180deg,#22130e 0%,#101012 100%)}
.plan-price{font-family:'Barlow Condensed',sans-serif;font-size:32px;font-weight:800;color:#fff;line-height:1}
.plan-price small{font-size:14px;color:var(--mute);font-weight:500}
.plan-feat{list-style:none;padding:0;margin:8px 0 0;font-size:13px;color:var(--ink)}
.plan-feat li{padding:3px 0;display:flex;align-items:center;gap:6px}
.plan-feat li i{color:var(--leaf);font-size:12px}
#printBrand{display:none}
@media print{.top,.tabs,.rw,.ghost,.btn,#vb{display:none!important}#printBrand{display:flex!important;margin-bottom:16px;border-color:#ccc;background:#fff;color:#000}body{background:#fff;color:#000}.card,.day,.stat{border-color:#ccc;background:#fff;color:#000}}
.btn,.chip.on,.pr,#toast,.nav .cur{color:var(--on,#fff)}
.top{background:var(--top,#0b0b0c)}.day{background:var(--day,#101012)}
.swatch{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);cursor:pointer;padding:0}
.swatch.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--ink)}
.card>summary::-webkit-details-marker{display:none}.chv{transition:transform .2s}details[open]>summary .chv{transform:rotate(180deg)}

/* ---------- portada / bienvenida ---------- */
.auth-wrap{width:100%;max-width:1040px;display:grid;gap:18px;align-items:center;margin:auto}
.auth-wrap>.card{justify-self:center}
.hero{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.hero>*:not(.hero-glow){position:relative;z-index:1}
.hero-glow{position:absolute;top:-40px;left:50%;width:320px;height:320px;margin-left:-160px;background:radial-gradient(circle,rgba(255,77,26,.30),transparent 65%);filter:blur(8px);animation:heroGlow 4s ease-in-out infinite;pointer-events:none;z-index:0}
.dumbbell{width:170px;height:auto;overflow:visible;animation:rise .7s both}
.db{animation:dbLift 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.db-sh{animation:dbShadow 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.db-bar{fill:#8e8e96}.db-col{fill:#3a3a40}.db-p1{fill:var(--leaf)}.db-p2{fill:#c93a10}.db-p3{fill:#2a2a2f;stroke:#3a3a40;stroke-width:1.5}.db-hi{fill:#fff;opacity:.2}
.eyebrow{display:inline-flex;align-items:center;gap:7px;margin-top:6px;padding:4px 12px;border:1px solid var(--line);border-radius:999px;background:rgba(21,21,23,.7);font:600 12px 'Barlow Condensed','Barlow',sans-serif;letter-spacing:2px;text-transform:uppercase;color:#ff9a78;animation:rise .7s .1s both}
.eyebrow i{color:var(--leaf)}
.hero h1{margin:10px 0 0;line-height:.9;font-family:'Barlow Condensed','Barlow',sans-serif;text-transform:uppercase;font-weight:800;font-style:italic}
.hero .welcome{display:block;font-size:clamp(16px,4.5vw,26px);letter-spacing:5px;color:var(--mute);font-weight:700;font-style:normal;margin-bottom:4px;animation:rise .7s .2s both}
.hero .name{display:block;font-size:clamp(52px,16vw,104px);letter-spacing:1px;color:#fff;text-shadow:0 6px 30px rgba(0,0,0,.55);animation:rise .8s .3s both}
.hero .name b{display:inline-block;padding-right:.16em;margin-right:-.16em;background:linear-gradient(100deg,var(--leaf) 38%,#ffb020 50%,var(--leaf) 62%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:heroShine 4.5s linear infinite}
.hero-line{height:4px;width:96px;background:var(--leaf);border-radius:2px;margin:14px 0 12px;transform-origin:left center;animation:heroGrow .9s .5s both}
.hero-p{max-width:520px;margin:0;color:#c9c9cc;font-size:15px;animation:rise .8s .55s both}
.hero-feat{list-style:none;margin:22px 0 0;padding:0;display:none;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:560px;text-align:left}
.hero-feat li{display:flex;gap:10px;align-items:flex-start;background:rgba(21,21,23,.72);border:1px solid var(--line);border-radius:10px;padding:10px 12px;animation:rise .7s both}
.hero-feat li:nth-child(1){animation-delay:.7s}.hero-feat li:nth-child(2){animation-delay:.8s}.hero-feat li:nth-child(3){animation-delay:.9s}.hero-feat li:nth-child(4){animation-delay:1s}
.hero-feat i{color:var(--leaf);margin-top:3px;width:18px;text-align:center}
.hero-feat b{display:block;font:700 16px 'Barlow Condensed','Barlow',sans-serif;letter-spacing:.5px;text-transform:uppercase}
.hero-feat span{font-size:12.5px;color:var(--mute);line-height:1.35}
@keyframes dbLift{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-16px) rotate(5deg)}}
@keyframes dbShadow{0%,100%{transform:scaleX(1);opacity:.4}50%{transform:scaleX(.7);opacity:.15}}
@keyframes heroGlow{0%,100%{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}
@keyframes heroShine{0%{background-position:220% 0}100%{background-position:-220% 0}}
@keyframes heroGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(min-width:900px){
  .auth-wrap{grid-template-columns:minmax(0,1fr) 440px;gap:56px}
  .auth-wrap>.card{justify-self:end}
  .hero{align-items:flex-start;text-align:left}
  .hero-glow{left:130px}
  .dumbbell{width:230px;margin-top:8px}
  .hero-feat{display:grid;margin-top:18px}
}
@media(min-width:900px) and (max-height:800px){.dumbbell{width:190px}.hero .name{font-size:clamp(52px,9vw,88px)}.hero-feat li{padding:8px 10px}}
@media(prefers-reduced-motion:reduce){.hero *,.hero-glow,.dumbbell{animation:none!important}}

/* ---------- entrenamiento guiado y pausas ---------- */
.live{position:fixed;inset:0;z-index:90;background:var(--bg);overflow:auto;padding:calc(14px + env(safe-area-inset-top)) 14px 170px}
.live .inner{max-width:720px;margin:0 auto;display:grid;gap:12px}
.lex{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:12px;display:grid;gap:8px}
.lex.done{border-color:var(--ok)}
.lset{display:grid;grid-template-columns:26px 1fr 1fr 46px;gap:8px;align-items:center}
.ck{width:46px;height:42px;border-radius:12px;border:2px solid var(--line);background:var(--bg);color:#555;font-size:18px;font-weight:800;cursor:pointer}
.ck.on{background:var(--ok);border-color:var(--ok);color:#fff}
.restbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(14px + env(safe-area-inset-bottom));width:min(600px,calc(100% - 20px));z-index:95;background:#151517;border:2px solid var(--leaf);border-radius:16px;padding:10px 12px;display:flex;align-items:center;gap:10px;box-shadow:0 10px 30px rgba(0,0,0,.65)}
.restbar b{font:800 34px 'Barlow Condensed','Barlow',sans-serif;min-width:64px;line-height:1}
.restbar .rp{flex:1;height:8px;background:var(--line);border-radius:4px;overflow:hidden}
.restbar .rp i{display:block;height:100%;background:var(--leaf);transition:width .25s linear}
.modal-bg{position:fixed;inset:0;z-index:110;background:rgba(0,0,0,.78);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;overflow:auto}
.modal-box{width:100%;max-width:740px;max-height:88vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 16px 48px rgba(0,0,0,.7)}
.legal-sec h3{font-family:'Barlow Condensed',sans-serif;font-size:18px;color:var(--leaf);margin:14px 0 6px;text-transform:uppercase;letter-spacing:.5px}
.legal-sec p,.legal-sec li{font-size:13.5px;color:#d5d5d8;line-height:1.55;margin:4px 0}
.legal-sec ul{padding-left:18px;margin:6px 0}
.med-warn{background:#191510;border:1px solid #4a3518;border-left:3px solid var(--sun);border-radius:8px;padding:9px 12px;font-size:12.5px;color:#e5d5b5;line-height:1.4}
.set-grid{display:grid;grid-template-columns:34px 1fr 1fr 38px 34px;gap:6px;align-items:center;margin-top:6px}
.set-grid input{padding:6px 8px;text-align:center;font-size:14px}
.rest-cfg{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:#101012;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.cardio-box{background:#10141a;border:1px solid #223248;border-radius:12px;padding:12px}

/* --- móvil: la página ya no se ensancha con tablas largas --- */
html,body{max-width:100%;overflow-x:clip}
main,.g>*,.card,.day,.det,details{min-width:0}
.tw{max-width:100%;-webkit-overflow-scrolling:touch}
.tbl td,.tbl th{overflow-wrap:anywhere}
.top{flex-wrap:wrap}
@media(max-width:600px){
  .tbl{min-width:0}
  .tbl.sess thead{display:none}
  .tbl.sess,.tbl.sess tbody{display:block}
  .tbl.sess tr{display:grid;grid-template-columns:auto auto 1fr auto;gap:2px 12px;align-items:center;padding:10px 0;border-bottom:1px solid #222226}
  .tbl.sess td{border:0;padding:0;white-space:normal}
  .tbl.sess td:first-child{grid-column:1/-1;margin-bottom:4px}
  .tbl.sess td.n{text-align:left;font-size:13px;color:var(--mute)}
  .tbl.sess td.n:nth-child(4){text-align:right;color:var(--ink);font-weight:700}
}
/* --- accesibilidad --- */
:focus-visible{outline:2px solid var(--leaf);outline-offset:2px}
@media(pointer:coarse){.x{padding:10px 14px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* --- puntos y logros --- */
.lvchip{background:var(--soft);color:#ff9a78;border:1px solid #4a2616;border-radius:8px;padding:4px 9px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.lvcard{border-color:#4a2616;background:linear-gradient(180deg,#1b1210,var(--card))}
.lvbig{font-family:'Barlow Condensed','Barlow',sans-serif;font-size:54px;font-weight:800;line-height:1;font-style:italic;color:var(--leaf)}
.lvbig span{font-size:24px;font-style:normal;color:var(--ink);margin-left:10px;letter-spacing:.5px}
.lvbar{height:12px;margin:12px 0 6px}
.bdg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}
.bdg{background:#101012;border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px;opacity:.62}
.bdg>i{font-size:24px;color:#5b5b63}
.bdg.on{opacity:1}
.bdg.t-bronce{border-color:#6e4a2d}.bdg.t-bronce>i{color:#d79a63}
.bdg.t-plata{border-color:#5f6a75}.bdg.t-plata>i{color:#c4ccd5}
.bdg.t-oro{border-color:#7a5a12}.bdg.t-oro>i{color:var(--sun)}
.bdg.t-platino{border-color:#2d6f80}.bdg.t-platino>i{color:#7fe3ff}
.rw-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.rwbtn{width:auto!important;padding:8px 14px!important;font-size:16px!important;white-space:nowrap}
.rwbtn:disabled{opacity:.4;cursor:not-allowed}
.lbrow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-top:1px solid var(--line);font-size:14px}
.lbrow.me{background:var(--soft);border-radius:8px;border-top-color:transparent}
.segc{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.segc button{background:none;border:0;color:var(--mute);padding:5px 12px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.segc button.on{background:var(--soft);color:var(--leaf)}
.onb-step{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#101012;border:1px solid var(--line);border-radius:10px;padding:11px 12px;color:var(--ink);font:inherit;cursor:pointer}
.onb-step.ok{color:var(--mute);cursor:default;text-decoration:line-through}
.onb-step i{color:var(--leaf)}.onb-step.ok i{color:var(--ok)}
.errbar{background:#2a1317;border-bottom:1px solid #5a2630;color:#ffb3bd;padding:8px 16px;display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px}
.cmpov{position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:100;display:flex;align-items:center;justify-content:center;padding:14px}
.cmpbox{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;width:min(760px,100%);max-height:92vh;overflow:auto;display:flex;flex-direction:column;gap:12px}
.cmpg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cmpg figure{margin:0}.cmpg img{width:100%;border-radius:8px;background:#101012;min-height:120px}
.cmpg figcaption{font-size:13px;color:var(--mute);margin-top:4px}

/* --- inicio, entreno, chat, programas --- */
.homehead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px}
.homeh{margin:0;font-family:'Barlow Condensed','Barlow',sans-serif;font-size:30px;line-height:1.05;font-weight:800;text-transform:capitalize}
.hgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:14px 0}
.hcard{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 14px;min-height:118px;color:var(--ink);font:inherit;cursor:pointer}
.hcard b{font-family:'Barlow Condensed','Barlow',sans-serif;font-size:20px;font-weight:700;line-height:1.1}
.hcard span:not(.dotb){font-size:13px;color:var(--mute)}
.hcard .bar{width:100%;margin-top:auto}
.hic{font-size:24px;color:var(--leaf);margin-bottom:4px}
.hcard:active{transform:scale(.98)}
.hprimary{grid-column:1/-1;background:linear-gradient(135deg,#ff4d1a,#d63a0c);border-color:#ff6a3a;color:#fff;min-height:104px}
.hprimary .hic,.hprimary b,.hprimary span{color:#fff!important}.hprimary b{font-size:26px}
.hubcard{background:linear-gradient(135deg,#ff4d1a,#d63a0c)!important;border-color:#ff6a3a!important;color:#fff}.hubcard h2{color:#fff}
.dotb,.nbadge{position:absolute;top:10px;right:10px;min-width:20px;height:20px;border-radius:10px;background:var(--p);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px}
.tabs button{position:relative}.nbadge{top:2px;right:6px;min-width:16px;height:16px;font-size:10px}
.wdots{display:flex;justify-content:space-between;gap:6px}
.wd{flex:1;text-align:center;padding:6px 0;border-radius:8px;background:#101012;color:var(--mute);font-size:12px;font-weight:700}
.wd.on{background:var(--ok);color:#06210f}.wd.today{outline:2px solid var(--leaf)}
.segbar{display:flex;gap:6px;background:#101012;border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:16px}
.segbar button{flex:1;background:none;border:0;border-radius:9px;padding:9px;font:inherit;font-weight:700;color:var(--mute);cursor:pointer}
.segbar button.on{background:var(--soft);color:var(--leaf)}
.lopt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#101012;border:1px solid var(--line);border-radius:12px;padding:12px;color:var(--ink);font:inherit;cursor:pointer}
.lopt i{font-size:18px;color:var(--leaf);width:22px;text-align:center}.lopt span{display:flex;flex-direction:column}.lopt small{color:var(--mute);font-size:12px}
.netbar{background:#2b2210;border-bottom:1px solid #5a4410;color:#ffd27a;padding:7px 16px;text-align:center;font-size:13px}
.chatlist{display:flex;flex-direction:column;gap:6px;max-height:340px;min-height:120px;overflow:auto;padding:4px 2px}
.cb{align-self:flex-start;max-width:82%;background:#1f1f23;border-radius:14px 14px 14px 4px;padding:8px 12px;font-size:14px;overflow-wrap:anywhere}
.cb.me{align-self:flex-end;background:var(--soft);border-radius:14px 14px 4px 14px}
.cb span{display:block;font-size:11px;color:var(--mute);margin-top:2px}
.progcard{border-left:3px solid var(--leaf)}.progcard.deload{border-left-color:var(--c)}
@media(max-width:760px){
  #t-today>.g.g2{display:flex;flex-direction:column;gap:16px}
  #t-today>.g.g2>.g{display:contents}
  #cardRing{order:1}#cardReg{order:2}#meals{order:3}#cardTrain{order:4}#waterCard{order:5}#cardCust{order:6}
}
@media(min-width:760px){.hgrid{grid-template-columns:repeat(3,1fr)}.hprimary{grid-column:span 2}}

/* ===== Panel de admin: pestañas, listas por rol y asistencia ===== */
.segbar.scroll{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.segbar.scroll::-webkit-scrollbar{display:none}
.segbar.scroll button{flex:none;white-space:nowrap;padding:9px 16px}
.segbar button i{margin-right:4px}
.gpair{display:grid;gap:16px;grid-template-columns:1fr;align-items:start}
@media(min-width:900px){.gpair{grid-template-columns:1fr 1fr}}
.ulist{display:grid}
.urow{display:grid;grid-template-columns:40px minmax(0,1.6fr) minmax(0,1.2fr) minmax(0,.8fr) auto;gap:10px 16px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.urow:first-child{border-top:0}
.urow.coach{grid-template-columns:40px minmax(0,1.5fr) minmax(0,1.5fr) minmax(0,.7fr) minmax(0,.8fr) auto}
.urow label{display:block;font-size:12px;margin-bottom:2px}
.av{width:40px;height:40px;border-radius:50%;background:var(--soft);color:var(--leaf);display:grid;place-items:center;font-family:'Barlow Condensed','Barlow',sans-serif;font-weight:800;font-size:20px}
.ui{min-width:0}
.ui b,.ui .sm{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ux b{font-family:'Barlow Condensed','Barlow',sans-serif;font-size:20px}
.ua{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.ua .rolesel{width:auto;padding:6px 8px;font-size:13px}
@media(max-width:820px){
  .urow,.urow.coach{grid-template-columns:40px minmax(0,1fr);gap:10px 12px}
  .urow>.uc,.urow>.ut,.urow>.ux,.urow>.ua{grid-column:1/-1}
  .ua{justify-content:flex-start;flex-wrap:wrap}
}
#coachAtt:not(:empty){margin-bottom:16px}
@media(prefers-reduced-motion:reduce){.segbar.scroll{scroll-behavior:auto}}