/* Componentes de la app completa (se apoyan en las variables de cada tema). */
.sin-tabs .tabbar{display:none}.sin-tabs .screen{padding-bottom:24px}
.tabbar .tab{min-width:0}.tab span{font-size:9px}
.vacio{color:var(--mut);font-size:13px;text-align:center;padding:18px 8px;line-height:1.5}
.mut{color:var(--mut);font-weight:400}
.tit{margin:6px 0 10px;font-size:min(var(--h2,40px),44px)}
.atras{display:inline-flex;align-items:center;gap:6px;color:var(--mut);font-size:13px;padding:6px 0 12px}
.link-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;color:var(--mut);font-size:13px;padding:14px 0;text-align:center}.link-btn.peligro{color:var(--warn)}
.campo{display:block;margin-bottom:14px}.campo>span{display:block;font-size:12px;color:var(--mut);margin-bottom:7px;letter-spacing:.02em}.campo>span b{color:var(--fg);margin-left:6px}
.campo .inp{text-align:left}textarea.inp{resize:none;font-family:var(--fb);font-size:14px}
.nota-peq{display:block;margin-top:8px;color:var(--mut);font-size:11px;line-height:1.4;text-transform:none;letter-spacing:0}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tres{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.col{display:grid;gap:8px}
.opc{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 14px;border:var(--bw,1px) solid var(--line);border-radius:var(--rc2,12px);text-align:left;transition:.2s;background:var(--card)}
.opc b{font-size:15px}.opc small{text-transform:none;letter-spacing:0}
.opc.on{border-color:var(--acc);background:var(--acc);color:var(--onacc)}.opc.on small{color:inherit;opacity:.8}
.check{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:13px;color:var(--mut)}.check input{accent-color:var(--acc);width:18px;height:18px}
.buscar{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:var(--mut)}.buscar .inp{text-align:left}
.btn.ghost{background:transparent;color:var(--fg);border:var(--bw,1px) solid var(--line);box-shadow:none}
.btn[disabled]{opacity:.5;pointer-events:none}
.hacer-foto{cursor:pointer}
/* entrada */
.auth{position:relative;margin:-18px -16px -24px;min-height:calc(100% + 42px);display:flex;flex-direction:column;justify-content:flex-end;background:var(--img) center 20%/cover;background-color:#222;background-blend-mode:luminosity;color:#fff}
.auth:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,.25) 35%,rgba(0,0,0,.92) 70%)}
.auth>*{position:relative}
.auth-top{padding:0 22px 18px}.auth-top h1{font-family:var(--fh);font-weight:var(--h2w,400);font-size:78px;line-height:.9;text-transform:uppercase;color:var(--acc);letter-spacing:var(--ls,0)}
.auth-top p{margin-top:10px;font-size:15px;line-height:1.45;color:#e8e8e2;max-width:300px}.auth-top b{color:#fff}
.auth-card{margin:0 12px 14px;padding:16px;background:rgba(10,10,10,.78);backdrop-filter:blur(14px);border:var(--bw,1px) solid rgba(255,255,255,.12);border-radius:var(--r,16px);color:#f4f1e8}
.auth-card .campo>span,.auth-card .note{color:#b9b6ab}.auth-card .inp{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.18)}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:14px}.seg button{padding:10px;border:var(--bw,1px) solid rgba(255,255,255,.2);border-radius:var(--rc2,10px);font-size:13px;font-weight:700;color:#c9c6bb}.seg button.on{background:var(--acc);color:var(--onacc);border-color:var(--acc)}
.auth-links{display:flex;justify-content:space-between;gap:10px;margin:10px 0 2px;font-size:12px;color:#b9b6ab}.auth-links button{color:#d8d5c9;text-decoration:underline;text-underline-offset:3px}
.demo-link{display:block;margin:10px auto 0;font-size:11px;color:#8d8a80;text-decoration:underline;text-underline-offset:3px}
/* cuestionario */
.onb{padding-bottom:12px}.onb-top{margin-bottom:18px}.onb-top h2{margin-top:12px;font-size:36px}
.prog{height:4px;background:var(--line);margin-top:8px;border-radius:9px;overflow:hidden}.prog i{display:block;height:100%;background:var(--acc);transition:width .6s cubic-bezier(.16,1,.3,1)}
.onb-nav{display:flex;justify-content:space-between;gap:10px;margin-top:22px;position:sticky;bottom:0;padding:12px 0;background:linear-gradient(transparent,var(--bg) 35%)}
/* aviso */
.toast{position:absolute;left:12px;right:12px;top:12px;z-index:30;padding:12px 14px;background:var(--fg);color:var(--bg);border-radius:var(--rc2,12px);font-size:13px;font-weight:600;line-height:1.35;animation:up .4s both;transition:opacity .4s,transform .4s;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.toast.mal{background:var(--warn);color:#fff}.toast.fuera{opacity:0;transform:translateY(-12px)}
/* escala 1-10 */
.n10{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}.n10 button{aspect-ratio:1;border:var(--bw,1px) solid var(--line);border-radius:var(--rc2,8px);font-family:var(--fn);font-size:14px;color:var(--mut);transition:.2s}
.n10 button.on{background:var(--acc);color:var(--onacc);border-color:var(--acc);transform:scale(1.1)}
details.mas{margin-top:12px}details.mas summary,details.como summary,.acc>summary,.cvt>summary{cursor:pointer;list-style:none;font-size:13px;color:var(--mut);display:flex;align-items:center;gap:8px;padding:2px 0}
details summary::-webkit-details-marker{display:none}details.mas .chips{margin-top:10px}
details.acc>summary,details.cvt>summary{font-family:var(--fh);font-size:var(--h3,15px);color:var(--fg);text-transform:var(--tt,none);letter-spacing:var(--ls3,0);font-weight:var(--h3w,700);justify-content:flex-start}
details.acc>summary:after,details.cvt>summary:after{content:"";margin-left:auto;width:8px;height:8px;border:solid var(--mut);border-width:0 2px 2px 0;transform:rotate(45deg);transition:.25s}
details[open].acc>summary:after,details[open].cvt>summary:after{transform:rotate(-135deg)}
details.acc[open]>summary,details.cvt[open]>summary{margin-bottom:14px}
h4{font-family:var(--fh);font-size:13px;text-transform:var(--tt,none);letter-spacing:var(--ls3,0);margin:16px 0 8px;color:var(--mut);font-weight:var(--h3w,700)}
.mu{display:flex;gap:4px;margin-bottom:8px}.mu i{width:22px;height:22px;border-radius:50%;border:1px solid rgba(128,128,128,.4)}
/* pis */
.pisrow{display:grid;grid-template-columns:repeat(8,1fr);gap:5px}.pisrow button{aspect-ratio:1;background:var(--c);border-radius:var(--rc2,50%);display:grid;place-items:center;color:#3a2e0e;font-family:var(--fn);font-size:12px;transition:.2s;border:2px solid transparent}
.pisrow button.on{border-color:var(--fg);transform:scale(1.18)}
.mini-p{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.mini-p span{display:flex;flex-direction:column;align-items:center;background:var(--c);color:#3a2e0e;border-radius:10px;padding:5px 9px;font-family:var(--fn)}.mini-p small{color:#5c4a14;font-size:9px}
/* listas y ejercicios */
.lista{padding:4px 14px}
.ejrow{display:flex;align-items:center;gap:12px;width:100%;padding:10px 0;border-top:var(--bw,1px) solid var(--line);text-align:left}.ejrow:first-child{border-top:0}
.ejrow .en{flex:1;min-width:0}.ejrow b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ejrow small{display:block;margin-top:2px;text-transform:none;letter-spacing:0}
.ejrow .ic{color:var(--mut)}.ejrow .th{width:48px;height:48px}.ejrow.fijo{cursor:default}
.mov{display:flex;gap:6px}.mov button{width:34px;height:34px;display:grid;place-items:center;border:var(--bw,1px) solid var(--line);border-radius:var(--rc2,10px);color:var(--mut)}
.exh{width:100%;text-align:left;cursor:pointer}
.pts{display:flex;gap:4px}.pts i{width:9px;height:9px;border-radius:50%;border:var(--bw,1px) solid var(--mut)}.pts i.on{background:var(--acc);border-color:var(--acc)}
.card.ex.cerrado{padding:10px 14px}.card.ex.cerrado .exh{margin:0}
.plan-l{font-size:12px;color:var(--mut);margin:0 0 10px;line-height:1.4}.plan-l b{color:var(--acc);margin-right:4px}
details.como{margin-bottom:12px}
.fotos2{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0}.fotos2 img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--rth,10px);background:#222}
.claves{padding-left:18px;margin:8px 0 10px;font-size:13px;line-height:1.5;color:var(--fg)}.claves li{margin-bottom:4px}
.video{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--acc);text-decoration:underline;text-underline-offset:3px}
.devs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.dev{font-size:12px;line-height:1.3;padding:6px 10px;border-radius:99px;border:var(--bw,1px) solid var(--line)}.dev.warn{color:var(--warn);border-color:var(--warn)}.dev.ok{color:var(--ok);border-color:var(--ok)}
.sesion-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.sesion-top small{display:block}.sesion-top b{font-family:var(--fh);font-size:20px;text-transform:var(--tt,none)}
.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px;text-align:center;margin:14px 0 4px}.trio b{display:block;font-family:var(--fn);font-size:24px;color:var(--accb,var(--acc))}.trio small{text-transform:none;letter-spacing:0}
.resfila{padding:12px 0;border-top:var(--bw,1px) solid var(--line)}.resfila b{display:block;font-size:14px}.resfila small{text-transform:none;letter-spacing:0}
/* comida */
.fechanav{display:flex;align-items:center;justify-content:space-between;margin:-4px 0 12px}.fechanav b{font-family:var(--fh);text-transform:var(--tt,none);font-size:15px}.fechanav button{width:38px;height:38px;display:grid;place-items:center;border:var(--bw,1px) solid var(--line);border-radius:var(--rc2,10px)}.fechanav button[disabled]{opacity:.3}
.acciones3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.acciones3.dos-b{grid-template-columns:1fr 1fr}
.acciones3 button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 4px;background:var(--card);border:var(--bw,1px) solid var(--line);border-radius:var(--r,14px);font-size:12px;font-weight:700;color:var(--fg);transition:.2s}
.acciones3 button .ic{width:24px;height:24px;color:var(--acc)}.acciones3 button:active{transform:scale(.96)}
.meal .gr{display:flex;align-items:center;gap:4px}.meal .gr .inp{width:64px;padding:8px 4px}.meal .gr span{color:var(--mut);font-size:12px}
.meal .kc{min-width:38px;text-align:right}.meal .gtxt{font-family:var(--fn);color:var(--mut)}.meal.sin-x{padding-right:0}
.meal small{display:block;color:var(--mut);font-size:11px;margin-top:2px;letter-spacing:0;text-transform:none}
.fprev{width:100%;max-height:230px;object-fit:cover;border-radius:var(--rth,12px);margin-bottom:12px}
.analiza{position:relative;margin:8px 0}.analiza img{width:100%;border-radius:var(--rth,12px);max-height:380px;object-fit:cover;display:block}
.analiza p{text-align:center;margin-top:14px;color:var(--mut);font-size:14px}
.barra-sc{position:absolute;left:0;right:0;top:0;height:3px;background:var(--acc);box-shadow:0 0 18px var(--acc);animation:scan 1.8s ease-in-out infinite alternate}@keyframes scan{to{top:calc(100% - 44px)}}
/* progreso */
.seg4{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:-2px 0 14px;padding:4px;background:var(--card);border:var(--bw,1px) solid var(--line);border-radius:var(--rt,14px)}.seg4 button{padding:9px 2px;font-size:12px;font-weight:700;color:var(--mut);border-radius:var(--rt2,10px);font-family:var(--fh);text-transform:var(--tt,none);letter-spacing:var(--ls3,0)}.seg4 button.on{background:var(--acc);color:var(--onacc)}
.scroll-x{flex-wrap:nowrap;overflow-x:auto;margin-right:-16px;padding-right:16px;scrollbar-width:none}.scroll-x::-webkit-scrollbar{display:none}.scroll-x .chip{white-space:nowrap;flex:none}
.ejes{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:var(--mut);margin-top:6px}.ejes b{color:var(--acc);font-family:var(--fn);font-size:15px}
.bars .bar{fill:var(--acc);animation:crece .7s calc(var(--i)*18ms) cubic-bezier(.16,1,.3,1) both;transform-origin:bottom;transform-box:fill-box}.bars .bar.mal{fill:var(--acc3,var(--warn))}@keyframes crece{from{transform:scaleY(0)}}
.pesar{margin:14px 0 6px}.pesar .inp{max-width:100px}
.meta{padding:12px 0;border-top:var(--bw,1px) solid var(--line)}.meta:first-of-type{border-top:0;padding-top:0}.mh2{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.note.malo{color:var(--warn)}
.formmeta{margin-top:10px;padding-top:12px;border-top:var(--bw,1px) dashed var(--line)}
.vol{display:grid;grid-template-columns:78px 1fr 28px 66px;gap:8px;align-items:center;margin-bottom:9px;font-size:12px}.vol b{font-family:var(--fn);text-align:right}.vol small{text-align:right;text-transform:none;letter-spacing:0}
.vol .mb i.poco{background:var(--mut)}.vol .mb i.ideal{background:var(--ok)}.vol .mb i.alto{background:var(--acc)}.vol .mb i.pasado{background:var(--warn)}
.vol small.ideal{color:var(--ok)}.vol small.pasado{color:var(--warn)}
.mb i.p{background:var(--acc)}
.comp{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.comp figure{margin:0}.comp img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--rth,10px)}.comp figcaption{text-align:center;font-size:11px;color:var(--mut);margin-top:4px}
.foto .x{position:absolute;top:6px;right:6px;background:rgba(0,0,0,.6);color:#fff;border-color:transparent}
/* yo */
.temas{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tema{display:flex;flex-direction:column;align-items:flex-start;padding:12px;border:var(--bw,1px) solid var(--line);border-radius:var(--rc2,12px);text-align:left;transition:.2s}.tema b{font-size:15px}.tema small{text-transform:none;letter-spacing:0;line-height:1.3;margin-top:2px}.tema.on{border-color:var(--acc);box-shadow:0 0 0 2px var(--acc)}
.semfila{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:center;margin-bottom:6px;font-size:13px}.semfila .inp{text-align:left;padding:8px}
.gym{padding:12px;border:var(--bw,1px) solid var(--line);border-radius:var(--rc2,12px);margin-bottom:10px}.gym.on{border-color:var(--acc)}.gh{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.gh button:first-child{text-align:left}.gh small{display:block;text-transform:none;letter-spacing:0}
.tip{font-size:13px;line-height:1.5;margin-bottom:12px}.tip a{display:block;font-size:11px;color:var(--mut);margin-top:3px;text-decoration:underline;text-underline-offset:2px}

.ver{display:block;text-align:center;margin-top:6px;color:#6b6960;font-size:10px}

.pass{position:relative}.pass .inp{padding-right:52px}.ojo{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;color:#c9c6bb}.ojo .ic{width:22px;height:22px}.ojo:active{color:var(--acc)}
