*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-tap-highlight-color:transparent}
.num,.timer__digits,.stat b,.sxr{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
header.hd{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;padding:10px 14px;background:color-mix(in oklab,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.hd img{width:34px;height:34px;border-radius:8px}.hd h1{font:700 1.15rem var(--font-display);margin:0;flex:1}
.pill{border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text);border-radius:999px;padding:6px 12px;font-weight:600;min-height:36px;cursor:pointer}
.pill[aria-pressed=true]{background:var(--primary-500);border-color:var(--primary-500);color:var(--on-primary)}
main{max-width:640px;margin:0 auto;padding:14px 14px 100px}
h2{font:700 1.35rem var(--font-display);margin:6px 0 10px}h3{font:600 1.05rem var(--font-display);margin:14px 0 8px}
.muted{color:var(--text-muted);font-size:.9rem}
.avatar-box{position:relative;border-radius:18px;overflow:hidden;background:#05070c;aspect-ratio:3/2}
.avatar-box img{width:100%;height:100%;object-fit:contain;transition:opacity .25s}
.avatar-box .lbl{position:absolute;left:12px;bottom:10px;background:rgba(0,0,0,.6);color:#fff;padding:6px 12px;border-radius:999px;font-weight:700}
.hot{position:absolute;border-radius:50%;border:2px solid transparent;background:transparent;cursor:pointer}
.hot:focus-visible,.hot:hover{border-color:rgba(255,255,255,.5)}
.chips{display:flex;gap:8px;overflow-x:auto;padding:10px 0;scrollbar-width:none}
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 4px}
.mcard{border:2px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface-1);color:var(--text);padding:0;cursor:pointer;text-align:center;font-weight:600;font-size:.8rem}
.mcard img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}.mcard span{display:block;padding:6px 2px}
.mcard[aria-pressed=true]{border-color:var(--primary-500);box-shadow:0 0 0 3px rgba(var(--primary-rgb)/.35)}
.list{display:flex;flex-direction:column;gap:8px}
.ex{display:flex;align-items:center;gap:12px;background:var(--surface-1);border:1px solid var(--border);border-radius:14px;padding:10px;color:var(--text);text-align:left;width:100%;cursor:pointer;font:inherit}
.ex img{width:72px;height:48px;object-fit:cover;border-radius:8px;flex:none;background:#000}.ex b{display:block}.ex small{color:var(--text-muted)}
.sxr{display:inline-block;background:var(--surface-2);border-radius:8px;padding:2px 8px;font-weight:700;color:var(--accent-400);font-size:.95rem}
.sheet{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.6);display:flex;align-items:flex-end;justify-content:center}
.sheet>div{background:var(--surface-1);width:100%;max-width:640px;max-height:92vh;overflow:auto;border-radius:20px 20px 0 0;padding:14px 16px 28px}
.vid{aspect-ratio:16/9;width:100%;border:0;border-radius:12px;background:#000}
ol.steps{padding-left:1.3em;line-height:1.55}ol.steps li{margin:4px 0}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.grow{flex:1}
.card{padding:14px!important}
.wcard{background:linear-gradient(160deg,var(--surface-1),var(--surface-2));border:1px solid var(--border);border-radius:16px;padding:14px;margin-bottom:10px}
.wline{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-bottom:1px dashed var(--border)}.wline:last-child{border:0}
.wline b{font-weight:600}.wline .rest{color:var(--text-muted);font-size:.8rem}
.wline.cur{background:rgba(var(--primary-rgb)/.12);border-radius:10px;padding:9px 8px}.wline.done{opacity:.5}
.timer{display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 0}
.ring{position:relative;width:min(72vw,280px);aspect-ratio:1}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:10}.ring .bg{stroke:var(--surface-3)}.ring .fg{stroke:var(--primary-500);stroke-linecap:round;transition:stroke-dashoffset .25s linear}
.ring.rest .fg{stroke:var(--accent-500)}
.timer__digits{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:clamp(3.2rem,16vw,4.8rem);font-weight:700}
.timer__digits small{font:600 .85rem var(--font-body);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:10px;text-align:center}.stat b{display:block;font-size:1.5rem}.stat span{font-size:.75rem;color:var(--text-muted)}
.chart{width:100%;height:180px;background:var(--surface-1);border:1px solid var(--border);border-radius:12px}
.chart text{fill:var(--text-muted);font:11px var(--font-display)}
nav.tabsbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface-1);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom)}
nav.tabsbar button{min-width:0;background:none;border:0;color:var(--text-muted);padding:6px 2px 8px;font:600 11px/1.2 var(--font-body);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;cursor:pointer}nav.tabsbar button span{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
nav.tabsbar button svg{width:24px;height:24px;flex:none}nav.tabsbar button[aria-current=page]{color:var(--primary-400)}
.toastx{position:fixed;left:50%;bottom:80px;transform:translateX(-50%);background:var(--surface-3);color:var(--text);padding:10px 16px;border-radius:12px;z-index:60;font-weight:600}
input.input,select.input,textarea.input{width:100%;min-height:44px;font-size:16px}
.brow{display:grid;grid-template-columns:1fr 52px 64px 64px 32px;gap:6px;margin-bottom:6px}.brow input,.brow select{padding:8px 6px!important;min-height:42px}
table.t{width:100%;border-collapse:collapse;font-size:.9rem}table.t td,table.t th{padding:6px;border-bottom:1px solid var(--border);text-align:left}

.bodybox{margin:10px 0;background:#05070c;border-radius:18px;padding:8px}.bodymap{width:100%;height:auto;display:block;max-height:340px}.bodymap .sil{fill:#3a414d}.bodymap .mz{fill:#5b6575;stroke:#05070c;stroke-width:.6;cursor:pointer;transition:fill .2s}.bodymap .mz:hover{fill:#7d8899}.bodymap .mz[data-on]{fill:#2f8cff;filter:drop-shadow(0 0 3px #2f8cff)}.bodymap text{fill:#8a93a3;font-size:6px;text-anchor:middle;letter-spacing:1px}
.bodymap .sil,.bodymap text{pointer-events:none}

.bmap{position:relative;width:min(70vw,280px);margin:0 auto;border-radius:16px;overflow:hidden;aspect-ratio:300/480;background:#0b1020}.bmap img{position:absolute;top:0;left:-69%;width:240%;height:100%;max-width:none;display:block}.bhot{position:absolute;border:0;border-radius:40%;background:rgba(255,255,255,.04);cursor:pointer;padding:0;min-width:18px;min-height:18px}.bhot:hover,.bhot:focus-visible{background:rgba(47,140,255,.25);outline:2px solid #2f8cff}.bhot[aria-pressed=true]{background:rgba(47,140,255,.45);outline:2px solid #2f8cff;box-shadow:0 0 12px rgba(47,140,255,.7)}.bhot:focus:not(:focus-visible){outline:none}.bhot[aria-pressed=true]:focus{outline:2px solid #2f8cff}
.tabsbar button{font-size:.64rem;padding-left:0;padding-right:0}
.plsub{margin:6px 0 10px}.plph{background:#f59e0b22;border:1px solid #f59e0b;border-radius:10px;padding:8px;margin:6px 0;font-size:.85rem}
.plcardio,.plkcal{margin-top:8px;font-size:.88rem;color:var(--text-muted)}.plkcal b,.plweek b{color:var(--primary-400)}
.pllink{cursor:pointer;text-decoration:underline dotted}.plnote{display:block;margin-top:6px;font-size:.85rem}
.plsteps{padding-left:20px;margin:6px 0}.plsteps li{margin:4px 0}.plex{background:var(--surface-2);border-radius:10px;padding:8px;margin-top:6px}
.pltot .big{font-size:1.9rem;font-weight:800;color:var(--primary-400)}.plbar{height:10px;border-radius:6px;background:var(--surface-2);margin:10px 0 4px;overflow:hidden}.plbar i{display:block;height:100%;background:var(--primary-500)}
#licgate{position:fixed;inset:0;z-index:100;background:var(--bg,#0b0d12);display:flex;align-items:center;justify-content:center;padding:16px}.licbox{max-width:360px;width:100%;text-align:center}.licerr{color:#f87171;min-height:1.2em}
/* powerlifting (added 2026-10-23) */
.pwgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px}.pwgrid label{display:flex;flex-direction:column;font-size:.8rem;color:var(--text-muted);gap:3px}
.pwcard{display:block;width:100%;text-align:left;color:var(--text);cursor:pointer}.pwsm{font-size:.85rem;margin:6px 0}
.pwrow{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:10px;margin-top:8px;cursor:pointer;min-height:44px}
.pwdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--primary-500);vertical-align:middle}
.pwph{flex-wrap:wrap;gap:6px;margin:8px 0}.pwnew{font-size:.65rem;background:var(--primary-500);color:var(--on-primary);border-radius:6px;padding:1px 5px}
.pwvidbox{display:flex;justify-content:center;margin:8px 0}.pwvid{border:0;border-radius:14px;background:#000;aspect-ratio:9/16;width:100%;max-height:70vh;height:auto;max-width:calc(70vh*9/16)}

.moresheet{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.morebtn{display:flex;align-items:center;gap:10px;min-height:56px;padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--surface-2,var(--surface-1));color:inherit;font:600 .95rem var(--font-body);cursor:pointer}.morebtn svg{width:24px;height:24px;flex:none}.morebtn[aria-current=page]{color:var(--primary-400);border-color:var(--primary-400)}

/* ux-entrada 2026-10-25 (Forge): letra 17px, tarjetas grandes, Build cómodo, botón atrás. Solo estilos añadidos; nada eliminado. */
html{font-size:106.25%}
main{padding:16px 14px calc(110px + env(safe-area-inset-bottom))}
h2{font-size:1.45rem}h3{font-size:1.12rem}.muted{font-size:.95rem}
header.hd{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top));padding-left:calc(12px + env(safe-area-inset-left))}
.backbtn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;flex:none;border-radius:14px;border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text);cursor:pointer;margin-right:2px}
.backbtn[hidden]{display:none}.backbtn:active{transform:scale(.96)}.backbtn:focus-visible{outline:3px solid var(--primary-400);outline-offset:2px}
.pill{min-height:48px;padding:10px 16px;font-size:.95rem}
.hd .pill{min-width:48px}
.xbtn{min-width:48px;font-size:1.1rem}
.welcome{background:linear-gradient(150deg,rgba(var(--primary-rgb)/.22),var(--surface-1) 70%);border:1px solid var(--border);border-radius:22px;padding:20px 16px 16px;margin:4px 0 18px}
.welcome__hi{font-size:1.75rem;margin:0 0 4px}.welcome__sub{margin:0 0 14px;color:var(--text);opacity:.9;font-size:1.02rem;line-height:1.45}
.qgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.qcard{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-height:92px;padding:14px;border-radius:16px;border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text);font:700 1.02rem var(--font-display);cursor:pointer;text-align:left}
.qcard svg{width:30px;height:30px;color:var(--primary-400)}.qcard:active{transform:scale(.98)}
.avatar-box{border-radius:20px}
.mgrid{grid-template-columns:repeat(2,1fr);gap:10px}
.mcard{font-size:.95rem;border-radius:16px}.mcard span{padding:10px 6px;min-height:44px;display:flex;align-items:center;justify-content:center}
.ex{padding:12px;gap:14px;min-height:76px;border-radius:16px}.ex img{width:96px;height:64px;border-radius:10px}.ex b{font-size:1.02rem;margin-bottom:4px}
.wcard{padding:18px 16px;border-radius:20px;margin-bottom:14px}
.wline{padding:12px 0;min-height:48px}.wline .rest{font-size:.88rem}
.stat b{font-size:1.65rem}.stat span{font-size:.85rem}
.morebtn{font-size:1.02rem;min-height:64px}
input.input,select.input,textarea.input{min-height:50px;font-size:17px}
/* Build */
.brow{grid-template-columns:repeat(3,1fr) 48px;gap:8px;margin-bottom:8px}
.brow>:first-child{grid-column:1/-1}
.brow input,.brow select{min-height:52px;padding:10px 12px!important;font-size:17px}
.brow [data-rmrow]{min-height:52px;padding:0;width:48px}
.brow.muted{font-size:.85rem!important;margin-bottom:2px}
.bpick{margin:0 0 16px!important;padding-bottom:14px;border-bottom:1px dashed var(--border)}
.bpick select{min-height:52px!important;font-size:1rem!important;padding:10px!important}
#bname{font-size:1.1rem;font-weight:600}
#addrow,#bsave{min-height:56px;font-size:1.05rem}
.toastx{bottom:calc(90px + env(safe-area-inset-bottom))}
nav.tabsbar button{min-height:60px}
.pwrow{min-height:52px;padding:12px}.pwgrid label{font-size:.9rem}.pwsm{font-size:.92rem}
@media (max-width:370px){.pill{padding:10px 12px}.qcard{min-height:84px}}
.hd h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-size:1.12rem}
.bhead{display:none!important}.blab{font-size:.85rem;color:var(--text-muted);margin:2px 0 -4px}
/* ux-v2 2026-10-25 (Forge): datos arriba, acordeones calentar/estirar, contraste .sxr en claro */
.profile{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:20px;padding:16px;margin:4px 0 14px}
.profile__t{margin:0 0 8px;font-size:1.3rem}.profile__l{display:block;margin:8px 0 6px;font-weight:600;color:var(--text)}
.profile .seg .pill{flex:1 1 0;justify-content:center}
.acc{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.accx{--cat:oklch(0.72 0.16 55);border:1px solid color-mix(in oklab,var(--cat) 45%,var(--border));border-left:6px solid var(--cat);border-radius:18px;background:color-mix(in oklab,var(--cat) 8%,var(--surface-1));overflow:hidden}
.accx--cd{--cat:oklch(0.7 0.12 190)}
.accx summary{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 14px;cursor:pointer;list-style:none;font:700 1.05rem var(--font-display);color:var(--text)}
.accx summary::-webkit-details-marker{display:none}.accx summary:focus-visible{outline:3px solid var(--primary-400);outline-offset:-3px}
.accx__ic{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:12px;background:color-mix(in oklab,var(--cat) 22%,transparent);font-size:1.15rem}
.accx__t{flex:1;min-width:0}
.accx__n{flex:none;min-width:30px;text-align:center;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--text);font-size:.9rem}
.accx__ch{flex:none;font-size:1.5rem;line-height:1;transition:transform .2s;color:var(--text-muted)}
.accx[open] .accx__ch{transform:rotate(90deg)}
.accx>.wcard{margin:0 10px 10px;background:var(--surface-1)}
[data-theme="light"] .sxr{color:oklch(0.48 0.13 55)}
[data-theme="light"] .plweek b,[data-theme="light"] .plkcal b{color:var(--primary-600,oklch(0.45 0.18 25))}
.profile .stat b{font-size:1.3rem;white-space:nowrap}.profile .stat{padding:10px 4px}
/* ux-v3 2026-10-25 (Forge): bloque Workouts, letra 18px, ancho/alto completo */
html{font-size:112.5%}
body{min-height:100dvh;display:flex;flex-direction:column}
main{width:100%;max-width:720px;flex:1;padding:12px max(12px,env(safe-area-inset-right)) calc(110px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
h2{font-size:1.4rem}h3{font-size:1.1rem}
input.input,select.input,textarea.input{font-size:18px}
.brow input,.brow select{font-size:18px}
.profile,.welcome,.wkblock{margin-left:0;margin-right:0}
.wkblock{margin:0 0 14px}.wkblock__t{margin:2px 0 10px}
.wbig{display:flex;align-items:center;gap:14px;width:100%;min-height:72px;padding:14px 16px;border-radius:18px;border:1px solid var(--border-strong);background:var(--surface-1);color:var(--text);text-align:left;cursor:pointer;font:inherit}
.wbig svg{width:30px;height:30px;flex:none;color:var(--primary-400)}.wbig>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.wbig b{font:700 1.05rem var(--font-display);overflow-wrap:anywhere}.wbig small{color:var(--text-muted);font-size:.88rem}.wbig i{font-style:normal;font-size:1.6rem;color:var(--text-muted)}
.wbig--ready{min-height:96px;background:linear-gradient(140deg,rgba(var(--primary-rgb)/.25),var(--surface-1) 75%);border-color:color-mix(in oklab,var(--primary-500) 50%,var(--border))}
.wbig--sm{min-height:60px;margin-bottom:12px}
.wkblock__row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.wkblock__row .wbig{flex-direction:column;align-items:flex-start;min-height:92px;font-size:1.4rem}
img,video,iframe,svg{max-width:100%}
.chips{max-width:100%}
@media (max-width:380px){.brow input,.brow select{padding:10px 6px!important;font-size:17px}}

/* addfix: My workout badge + sheet */
.mwfab{position:fixed;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:40;display:inline-flex;align-items:center;gap:6px;max-width:calc(100vw - 24px);padding:10px 14px;border-radius:999px;border:0;background:var(--primary,#6D5BFF);color:#fff;font-weight:700;font-size:.95rem;box-shadow:0 6px 18px rgba(0,0,0,.3);cursor:pointer}
.mwfab[hidden]{display:none}
.mwfab .mwn{background:#fff;color:#111;border-radius:999px;min-width:24px;padding:1px 7px;text-align:center}
.mwlist{list-style:none;margin:10px 0 0;padding:0}
.mwlist li{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid rgba(127,127,127,.25);font-size:1.05rem;overflow-wrap:anywhere}

/* addfix2: Build card a little wider using left space (phones) */
@media (max-width:480px){.bcard{margin-left:-6px;padding-left:10px}}
/* addfix2: Charcoal theme (solid, no translucency) */
[data-theme="charcoal"]{color-scheme:dark;--bg:#2B2D31;--surface-1:#35373C;--surface-2:#3E4046;--surface-3:#484B51;--border:#4E5157;--border-strong:#5F636A;--text:#F2F3F5;--text-muted:#C4C7CC;--text-subtle:#A9ADB3}
#theme{background:conic-gradient(#0E1015 0 33%,#F7F8FA 0 66%,#2B2D31 0);color:transparent;border:2px solid var(--border-strong)}
/* addfix2: no glass / blur / translucency */
header.hd{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none}
dialog.modal::backdrop{backdrop-filter:none}
.avatar-box .lbl{background:#111}
/* 2026-11-06: botón de cerrar siempre alcanzable en hojas/modales (no queda bajo la barra de scroll). */
.sheet>div{scrollbar-gutter:stable;overscroll-behavior:contain}
.sheet>div>.row:first-child{position:sticky;top:-14px;z-index:6;margin:-14px -16px 8px;padding:12px 16px 8px;background:var(--surface-1);border-radius:20px 20px 0 0}
html[data-theme="dark"] .sheet>div>.row:first-child{background:rgb(16,18,24)}
.sheet>div>.row:first-child>[data-x]{position:relative;z-index:7;margin-right:10px;flex:0 0 auto;min-width:48px;min-height:44px}
/* Técnicas */
.btech{grid-column:1/-1;display:flex;gap:6px;align-items:center}.btech select{flex:1;min-width:0}
.btech .tinfo{flex:0 0 auto;min-width:44px;min-height:44px;padding:0;display:inline-grid;place-items:center}
.tbadge{display:inline-block;margin-left:4px;padding:1px 8px;border-radius:999px;border:1px solid var(--primary-500);background:transparent;color:inherit;font-size:.78rem;line-height:1.5;cursor:pointer;min-height:0}
.tgrp{border:1px solid var(--border);border-radius:12px;padding:8px 12px;margin:0 0 8px}.tgrp summary{cursor:pointer;min-height:36px;display:flex;align-items:center;gap:6px}
.tdef{padding:8px 0;border-top:1px solid var(--border)}.tdef p{margin:2px 0}.tdef.on{background:color-mix(in oklab,var(--primary-500) 14%,transparent);border-radius:8px;padding:8px}
/* Coach de preview */
.coach-notice{margin:0 0 12px;padding:10px 12px;border:1px solid var(--border-strong,var(--border));border-radius:12px;background:var(--surface-2);color:var(--text);font-size:.92rem;line-height:1.4}
.coachlog{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}
.coachmsg__t{white-space:pre-wrap;margin:6px 0 0;overflow-wrap:anywhere}
.coachex{display:inline;padding:0;margin:0;border:0;background:none;font:inherit;font-weight:600;color:var(--link);text-decoration:underline;text-underline-offset:2px;cursor:pointer;text-align:left}
textarea.coach-input{width:100%;min-height:96px;resize:vertical}
