:root{color-scheme:dark;--bg:#0d0d0f;--gold:#e2bb55;--gold-hi:#f1d886;--silver:#c4c7cb;--paper:#ececec;--muted:#e9eaec;--line:#ffffff22}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 90% 0%,#202224 0%,transparent 36%),var(--bg);color:var(--paper);font:15px/1.55 system-ui,-apple-system,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.head{padding:15px clamp(14px,4vw,48px);display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:#0d0d0fe8;position:sticky;top:0;z-index:9;backdrop-filter:blur(16px)}.brand b{font-size:27px;letter-spacing:.26em}.brand span{display:block;color:var(--gold);font-size:10px;letter-spacing:.19em}nav{display:flex;flex-wrap:wrap;gap:7px}nav button,.btn{border:1px solid #6a7079;background:var(--gold);color:#111;border-radius:12px;padding:11px 18px;font-weight:700}nav button{background:transparent;color:var(--paper);border-color:var(--line);font-size:13px}nav button.active{background:#e2bb5525;border-color:var(--gold);color:var(--gold)}main{max-width:1150px;margin:36px auto;padding:0 16px 70px}h1{font-size:clamp(27px,4vw,42px);line-height:1.2;margin:0 0 9px}h2{font-size:20px;margin:0 0 14px}h3{margin:0 0 12px}.sub{color:var(--muted);margin:0 0 20px}.card{background:linear-gradient(140deg,#ffffff12,#ffffff04);border:1px solid #ffffff26;box-shadow:0 10px 35px #0005;backdrop-filter:blur(20px);border-radius:22px;padding:22px;margin-bottom:18px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px}.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field>span{font-size:13px;color:#e9eaec}.field input,.field select,.field textarea{width:100%;border:1px solid #ffffff30;background:#252427d9;color:#fff;border-radius:12px;padding:12px;outline-offset:2px}.field textarea{min-height:90px}.muted{color:var(--muted)}.hint{font-size:12px;color:var(--muted)}.steps{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}.steps button,.tab{background:#27262a;color:#eee;border:1px solid #ffffff26;border-radius:12px;padding:11px}.steps .active{border-color:var(--gold);color:var(--gold)}.step{display:none}.step.active{display:block}.pair{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.stat strong{display:block;font-size:31px;color:var(--gold)}.stat small{color:var(--muted)}.detail{padding:12px 0;border-bottom:1px solid var(--line)}.detail:last-child{border:0}.status{display:inline-flex;padding:5px 12px;border-radius:99px;border:1px solid #e2bb5577;color:#e9eaec;background:#e2bb5518;font-size:13px}.alert{padding:16px;border-radius:15px;border:1px solid #b7bbc088;background:#6a707920;margin:12px 0}.routine{overflow:hidden}.ex{border:1px solid #ffffff25;border-radius:15px;padding:16px;margin:13px 0;background:#101013bb}.ex h3{margin-bottom:3px}.ex p{margin:4px 0 13px}.ex img{width:84px;height:84px;object-fit:contain;float:right;border-radius:12px}.exgrid{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.exgrid .field{flex:1;min-width:95px}.exgrid input{min-width:0}.clock{font-variant-numeric:tabular-nums;color:var(--gold);font-size:28px;font-weight:800;letter-spacing:.06em}.timerBtns{display:flex;gap:8px;flex-wrap:wrap}.timerBtns button{background:#2b2a2f;color:#fff;border:1px solid #ffffff33;padding:10px 14px;border-radius:12px}.checkgroup{display:grid;gap:9px}.checkgroup label{padding:12px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:10px}.checkgroup input{width:19px;height:19px;accent-color:var(--gold)}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:11px 20px;background:#343030;color:#fff;border:1px solid #bbbfc4;border-radius:14px;display:none;z-index:11;max-width:90vw}#toast.show{display:block}.hidden{display:none!important}a{color:var(--gold)}.line{height:2px;background:linear-gradient(90deg,var(--gold),transparent);margin:18px 0}.wide{grid-column:1/-1}.smallBtn{background:transparent;color:var(--gold);border:1px solid #e2bb5566;border-radius:10px;padding:8px 12px}.chartrow{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:7px 0;border-bottom:1px solid var(--line);padding:7px 0}@media(max-width:650px){.head{flex-direction:column;align-items:stretch}main{margin-top:20px}.card{padding:16px}nav{overflow-x:auto;flex-wrap:nowrap}nav button{white-space:nowrap}.ex img{width:70px;height:70px}}

[hidden]{display:none!important}

/* Formulario de ingreso: ayudas, validación y respuestas explícitas. Mantiene la paleta original. */
.req{color:var(--gold);font-weight:800}.required-note{margin:0 0 14px}.registro-error{position:sticky;top:12px;z-index:5;background:#39231c;color:#ecedee;border:1px solid #c9ccd0;border-radius:12px;padding:13px 16px;margin:12px 0;font-weight:600}.parq-question{border:1px solid #ffffff25;border-radius:12px;padding:14px;min-width:0;margin:0}.parq-question legend{padding:0 5px;line-height:1.5;color:#eee}.parq-choices{display:flex;gap:14px;flex-wrap:wrap}.parq-choices label{display:flex;align-items:center;gap:8px;padding:9px 17px;border:1px solid #ffffff30;border-radius:11px}.parq-choices input{accent-color:var(--gold)}.field input.invalid,.field select.invalid,input.invalid{border-color:#e9eaec;outline:2px solid #e9eaec66}#enviar:disabled{opacity:.65;cursor:wait}
/* ASCEN V3 · Liquid Glass: cronómetro global y herramientas locales por ejercicio */
.training-time{border:1px solid #ffffff30;border-radius:16px;background:linear-gradient(130deg,#ffffff17,#ffffff06);backdrop-filter:blur(24px);padding:12px 18px;display:flex;flex-direction:column;align-items:flex-end}.training-time small{color:#e9eaec}.training-time .clock{font-size:32px}.training-ex{padding:20px;background:linear-gradient(135deg,#ffffff11,#ffffff05);backdrop-filter:blur(18px)}.ex-head{display:flex;gap:14px;align-items:center;margin-bottom:12px}.ex-head img{position:static;float:none;width:86px;height:86px;object-fit:contain;flex-shrink:0}.ex-head h3{margin:3px 0}.training-chips{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 21px}.training-chips>span{border:1px solid #ffffff30;border-radius:12px;background:#ffffff0b;padding:9px 12px;min-width:88px}.training-chips b{display:block;font-size:11px;font-weight:500;color:#e9eaec}.set-head,.set-row{display:grid;grid-template-columns:64px minmax(95px,1.3fr) minmax(68px,1fr) minmax(68px,1fr) 54px;gap:9px;align-items:center}.set-head{font-size:11px;text-transform:uppercase;color:#e9eaec;margin:22px 0 8px}.set-row{border-top:1px solid #ffffff16;padding:10px 0}.set-row input{width:100%;min-width:0;border:1px solid #ffffff3d;border-radius:12px;background:#29292ccc;color:#fff;padding:12px 8px;font-size:15px;text-align:center}.set-row input:disabled{opacity:.45}.series-num{text-align:center;background:#ffffff12;border-radius:12px;padding:12px 4px;font-weight:700}.prev-load{color:#a7a6ab;font-size:13px;overflow-wrap:anywhere}.series-check{height:45px;border:1px solid #ffffff35;border-radius:12px;background:#ffffff12;color:#e9eaec;font-size:22px}.set-row.done .series-check{color:#171717;background:var(--gold);border-color:var(--gold)}.exercise-clock-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}.glass-timer{padding:16px;border:1px solid #ffffff2b;border-radius:17px;background:linear-gradient(125deg,#ffffff19,#ffffff06);backdrop-filter:blur(22px);display:flex;flex-direction:column;gap:11px}.glass-timer label{font-size:13px;color:#e9eaec}.glass-timer select,.glass-timer input{background:#ffffff17;color:#fff;border:1px solid #ffffff36;padding:9px;border-radius:11px;backdrop-filter:blur(22px);max-width:100%}.glass-timer option{background:#242426;color:#fff}.glass-timer .clock{font-size:25px}.glass-timer .timerBtns button{font-size:12px;padding:7px 10px}.session-footer{border-top:1px solid #ffffff22;padding-top:19px}.session-footer>span{color:#e9eaec}.rmForm{display:flex;align-items:flex-end;gap:10px;margin:12px 0}.rmForm input{max-width:150px}@media(max-width:700px){.set-head,.set-row{grid-template-columns:39px minmax(76px,1.1fr) minmax(60px,1fr) minmax(60px,1fr) 38px;gap:5px}.set-row input{padding:10px 4px}.set-head{font-size:9px}.series-num{padding:10px 2px}.prev-load{font-size:11px}.series-check{height:40px}.exercise-clock-grid{grid-template-columns:1fr}.training-ex{padding:12px}}

/* ASCEN V5: marcadores compactos y descanso por ejercicio */
.exercise-clock-grid{grid-template-columns:1fr}.series-check{width:42px;height:42px;border-radius:50%;font-size:18px;background:transparent;border:1.5px solid #8f949a;color:#e9eaec;transition:background .18s,border-color .18s,transform .18s;cursor:pointer}.series-check:hover{border-color:#e2bb55;transform:scale(1.04)}.set-row.done .series-check{background:#e2bb55;border-color:#e2bb55;color:#181818;box-shadow:0 0 0 3px #e2bb5525}.substitute-wrap{margin:10px 0}.substitute-options{padding:12px;background:#ffffff0a;border:1px solid #ffffff29;border-radius:14px;margin-top:10px}.substitute-options label{display:block;font-size:13px;color:#ccc}.substitute-select{display:block;width:100%;margin:9px 0;padding:12px;border-radius:10px;background:#252427;color:#fff;border:1px solid #ffffff35}.substitute-current{color:#e9eaec;margin-top:8px}

/* ASCEN V6 · mobile-first: interface compacte sans déplacement horizontal */
html,body{max-width:100%;overflow-x:clip}#app,.routine,.training-ex,.glass-timer,.set-row,.set-head{min-width:0;max-width:100%}.routine{overflow:visible}.set-row input{box-sizing:border-box}.pair>*{min-width:0}
@media(max-width:700px){
  body{font-size:13px;line-height:1.4}
  .head{position:static;padding:10px 12px;gap:8px;flex-direction:column;align-items:stretch}
  .brand{display:flex;align-items:baseline;gap:8px}.brand b{font-size:21px;letter-spacing:.21em}.brand span{font-size:10px;letter-spacing:.10em}
  nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;overflow:visible;flex-wrap:nowrap;width:100%}
  nav button{padding:9px 3px;font-size:11px;line-height:1.15;white-space:normal;min-height:42px;border-radius:10px}
  main{margin:12px auto 0;padding:0 9px 35px;max-width:100%}
  h1{font-size:22px;margin-bottom:5px}h2{font-size:17px;margin-bottom:5px}h3{font-size:15px;margin-bottom:4px}.sub{font-size:12px;margin:0 0 10px}
  .card{border-radius:15px;padding:11px;margin-bottom:10px;box-shadow:0 3px 12px #0004}
  .routine>.pair:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
  .routine>.pair:nth-child(2){gap:8px;margin:6px 0 7px}
  .btn{padding:9px 10px;font-size:12px;border-radius:10px}.hint{font-size:10px}
  .training-time{padding:7px 9px;border-radius:12px;min-width:91px}.training-time small{font-size:9px;line-height:1.2;max-width:82px;text-align:right}.training-time .clock{font-size:21px}
  .ex{margin:8px 0;border-radius:12px}.training-ex{padding:9px}
  .ex-head{gap:8px;margin-bottom:6px}.ex-head img{width:54px;height:54px;border-radius:9px}.ex-head h3{font-size:14px;line-height:1.2}.ex-head .hint{font-size:10px}
  .substitute-wrap{margin:5px 0}.smallBtn{padding:7px 9px;font-size:11px;border-radius:9px}
  .training-chips{gap:4px;margin:8px 0 11px}.training-chips>span{flex:1 1 auto;min-width:0;padding:5px 7px;border-radius:8px;font-size:11px}.training-chips b{font-size:9px}
  .set-head,.set-row{grid-template-columns:33px minmax(58px,1.1fr) minmax(47px,.88fr) minmax(47px,.88fr) 33px;gap:4px}
  .set-head{font-size:9px;margin:10px 0 4px}.set-row{padding:6px 0}.set-row input{border-radius:8px;padding:8px 2px;font-size:12px;height:35px}
  .series-num{padding:9px 1px;border-radius:8px;font-size:12px}.prev-load{font-size:10px;overflow-wrap:anywhere}.series-check{width:33px;height:33px;min-width:33px;font-size:16px}
  .exercise-clock-grid{margin:10px 0}.glass-timer{padding:10px;border-radius:12px;gap:6px}.glass-timer label{font-size:11px}.glass-timer select,.glass-timer input{padding:8px;font-size:12px}.glass-timer .clock{font-size:22px}
  .rmForm{margin:9px 0;gap:7px}.rmForm .field{gap:3px}.rmForm .field input{padding:8px;width:94px}.rmForm .smallBtn{white-space:nowrap}
  .field{gap:3px}.field>span{font-size:11px}.field input{padding:9px}.session-footer{padding-top:10px;gap:7px}.session-footer .btn{max-width:100%;line-height:1.2}.session-footer>span{font-size:11px}
}
@media(max-width:370px){.set-head,.set-row{grid-template-columns:28px minmax(53px,1fr) minmax(43px,.88fr) minmax(43px,.88fr) 31px;gap:3px}.set-head{font-size:8px}.prev-load{font-size:9px}.series-check{height:31px;width:31px;min-width:31px}}

/* ASCEN V7 · tarjetas, rutina plegable, miniaturas estáticas y detalle */
.routine-content{margin-top:9px}.exercise-detail-toggle{background:none;border:0;padding:1px 0;text-align:left;color:#ecedee;font-weight:750;font-size:15px;line-height:1.3;cursor:pointer}.exercise-detail-toggle span{color:var(--gold)}
.exercise-detail{border:1px solid #e2bb5555;background:#151515;border-radius:14px;padding:13px;margin:10px 0}.exercise-detail-media img{width:100%;height:auto;max-height:260px;object-fit:contain;background:#fff;border-radius:10px}.exercise-history{max-height:200px;overflow-y:auto}.history-line{padding:7px 2px;border-bottom:1px solid #ffffff18;font-size:12px}
.substitute-options{max-height:430px;overflow-y:auto}.substitute-options input,.substitute-options select{box-sizing:border-box;width:100%;padding:9px;margin:5px 0 9px;border-radius:10px;background:#212124;border:1px solid #ffffff38;color:#fff;font:inherit}.substitute-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.substitute-card{display:flex;align-items:center;gap:8px;text-align:left;background:#1d1c20;border:1px solid #ffffff25;border-radius:12px;padding:6px;color:#fff;font-size:11px;min-width:0;cursor:pointer}.substitute-card img{width:52px;height:52px;object-fit:contain;border-radius:8px;background:#fff;flex-shrink:0}.substitute-card span{overflow-wrap:anywhere}.substitute-card:hover{border-color:#e2bb55}
.hint-help{border:1px solid #b2b7bd;border-radius:50%;width:15px;height:15px;padding:0;background:transparent;color:#e2bb55;font-size:10px;cursor:help}.routine textarea{background:#222225;color:white;border:1px solid #ffffff35;border-radius:10px;padding:9px;box-sizing:border-box;width:100%;font:inherit;resize:vertical}
@media(max-width:400px){.substitute-cards{grid-template-columns:1fr}}

/* ASCEN V9 · diario muscular del cliente */
.daily-muscle-list{display:grid;gap:12px}.daily-muscle-item{border:1px solid #ffffff1f;border-radius:16px;background:#0f0f13}.daily-muscle-item summary{list-style:none;cursor:pointer;padding:14px 16px;display:flex;justify-content:space-between;gap:10px;align-items:center}.daily-muscle-item summary::-webkit-details-marker{display:none}.daily-muscle-item summary span{display:flex;flex-direction:column;gap:3px}.daily-muscle-item summary b{font-size:16px}.daily-muscle-item summary small{color:var(--muted)}.daily-muscle-body{padding:0 16px 16px;display:grid;grid-template-columns:minmax(240px,340px) minmax(0,1fr);gap:16px;align-items:start}.ascen-muscle-map{background:#121217;border:1px solid #ffffff18;border-radius:18px;padding:14px}.ascen-muscle-map svg{width:100%;height:auto;display:block}.muscle-legend{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:8px;color:#d0d3d6;font-size:12px}.muscle-legend span{display:inline-flex;align-items:center;gap:6px}.muscle-legend i{display:inline-block;width:11px;height:11px;border-radius:50%}.muscle-legend .primary{background:#df4f4a}.muscle-legend .secondary{background:#e2bb55}.muscle-legend .neutral{background:#55555d}.daily-muscle-copy h3{margin:2px 0 10px}.muscle-chip-group{display:flex;flex-wrap:wrap;gap:8px}.muscle-chip{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:12px;border:1px solid #ffffff1f;background:#1d1d21}.muscle-chip.primary{border-color:#df4f4a66;background:#df4f4a15;color:#ffd6d2}.muscle-chip.secondary{border-color:#e2bb5566;background:#e2bb5518;color:#e9eaec}@media(max-width:760px){.daily-muscle-body{grid-template-columns:1fr}.daily-muscle-item summary{padding:12px}.ascen-muscle-map{padding:10px}}

/* ASCEN V10 — mapa muscular premium: anatomía vectorial, iluminación dinámica y transiciones */
.am-stage{overflow:hidden;position:relative;background:radial-gradient(ellipse at 50% 22%,#202224 0,#151519 49%,#0e0e12 100%);border:1px solid rgba(226,187,85,.25);border-radius:18px;padding:14px 12px 15px;isolation:isolate}
.am-stage:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.035) 48%,transparent 76%);pointer-events:none}
.am-stage-top{display:flex;align-items:center;justify-content:space-between;gap:8px;position:relative;z-index:1}
.am-kicker{font-size:9px;letter-spacing:.16em;color:#e9eaec;font-weight:700}.am-live{font-size:8px;letter-spacing:.12em;color:#e9eaec;white-space:nowrap;display:flex;align-items:center;gap:5px}.am-live>span{width:5px;height:5px;border-radius:50%;background:#e2bb55;box-shadow:0 0 9px #e2bb55;animation:am-pulse 3.1s infinite}
.am-figures{display:grid;grid-template-columns:1fr 1fr;gap:3px;max-width:420px;margin:5px auto 0;align-items:start}.am-figure{min-width:0;position:relative;filter:drop-shadow(0 12px 20px #0009)}.am-side{display:block;text-align:center;color:#e9eaec;font-size:9px;letter-spacing:.14em;margin:3px 0 -3px}.am-figure svg{width:100%;max-height:290px;display:block;overflow:visible;margin:0 auto}
.am-outline{stroke:#7f7b78;stroke-width:1.2}.am-muscle{stroke:#15151b;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:fill .35s ease,filter .4s ease,opacity .4s ease}.am-muscle.am-inactive{fill:#33343c;opacity:.68;stroke:#54545c}.am-muscle.am-primary{fill:#e4514b;opacity:1;filter:drop-shadow(0 0 5px #e4514b66);animation:am-light-red 3.8s ease-in-out infinite}.am-muscle.am-secondary{fill:#d2d4d7;opacity:1;filter:drop-shadow(0 0 5px #d2d4d766);animation:am-light-silver 4.4s ease-in-out infinite}.am-detail{fill:none;stroke:#07080b;stroke-width:1.1;opacity:.52;pointer-events:none}.am-spine{fill:none;stroke:#999;stroke-width:1;opacity:.6}.am-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;border-top:1px solid #ffffff17;padding-top:11px}.am-legend span{font-size:8px;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;gap:5px;color:#cdcfd2}.am-key{width:7px;height:7px;border-radius:50%;flex:none}.am-key-primary{background:#e4514b;box-shadow:0 0 8px #e4514b88}.am-key-secondary{background:#d2d4d7;box-shadow:0 0 8px #d2d4d766}.am-key-inactive{background:#52545c}
@keyframes am-light-red{0%,100%{filter:drop-shadow(0 0 3px #e4514b50)}50%{filter:drop-shadow(0 0 8px #e4514baa)}}@keyframes am-light-silver{0%,100%{filter:drop-shadow(0 0 3px #d2d4d755)}50%{filter:drop-shadow(0 0 8px #d2d4d7aa)}}@keyframes am-pulse{0%,100%{opacity:.45}50%{opacity:1}}
.daily-muscle-item[open] .am-stage{animation:am-rise .35s ease both}@keyframes am-rise{from{opacity:.45;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.am-stage{padding:10px 8px}.am-figure svg{max-height:258px}.am-legend span{font-size:8px}}
@media(prefers-reduced-motion:reduce){.am-live>span,.am-muscle,.daily-muscle-item[open] .am-stage{animation:none!important;transition:none!important}}

/* V11: el color muscular queda recortado por el cuerpo anatómico real, sin salientes. */
.am-figure svg{overflow:hidden;max-width:100%;height:auto}.am-figure{overflow:hidden}.am-outline{stroke-linejoin:round;stroke-linecap:round}.am-muscle{stroke-width:1.2;stroke-linejoin:round;stroke-linecap:round}.am-muscle.am-primary,.am-muscle.am-secondary{filter:none}.am-regions{isolation:isolate}
/* V12 · Anatomía 3D de la referencia aprobada y ayudas táctiles accesibles */
.am12-stage{background:radial-gradient(ellipse at 50% 27%,#1f2022,#111114 70%);border:1px solid #969ba3;border-radius:17px;padding:12px 10px 15px;overflow:hidden}.am12-top{display:flex;justify-content:space-between;gap:7px;align-items:center;color:#e7e8ea;font-size:10px;letter-spacing:.09em}.am12-top span{font-size:8px;color:#e4e5e7;white-space:nowrap}.am12-figures{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:12px auto 4px;max-width:590px}.am12-person{min-width:0}.am12-person span{display:block;text-align:center;color:#e9eaec;font-size:10px;letter-spacing:.16em;margin-bottom:4px}.am12-person svg{display:block;width:100%;height:auto;max-height:355px;overflow:hidden}.am12-highlight{animation:am12-light 3s ease-in-out infinite;transition:opacity .3s}@keyframes am12-light{0%,100%{opacity:.64}50%{opacity:1}}.am12-legend{display:flex;justify-content:space-around;gap:6px;flex-wrap:wrap;border-top:1px solid #ffffff22;padding-top:10px;font-size:9px;color:#e9eaec}.am12-legend span{display:inline-flex;gap:5px;align-items:center}.am12-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.ascen-help-dialog{background:#18181c;border:1px solid #e2bb55;border-radius:18px;color:#efeff0;padding:22px;max-width:min(90vw,400px);box-shadow:0 30px 90px #000a}.ascen-help-dialog::backdrop{background:#000a;backdrop-filter:blur(4px)}.ascen-help-dialog h3{color:#e9eaec;font-size:19px;margin:0 0 10px}.ascen-help-dialog p{font-size:15px;line-height:1.6}.ascen-help-dialog .btn{margin-top:12px}.hint-help{width:21px;height:21px;cursor:pointer;font-size:12px;touch-action:manipulation}@media(prefers-reduced-motion:reduce){.am12-highlight{animation:none}}
/* ASCEN · mapa anatómico de referencia aprobado */
.ascen-anatomy-stage{width:100%;min-width:0;max-width:100%;border:1px solid #a4a9af;border-radius:18px;background:radial-gradient(ellipse at 50% 42%,#242628 0%,#111114 55%,#101011 100%);padding:12px 10px 10px;overflow:hidden}
.ascen-anatomy-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:5px;color:#e2bb55;letter-spacing:.1em;font-size:11px}.ascen-anatomy-header small{color:#e9eaec;font-size:9px}.ascen-anatomy-labels{display:grid;grid-template-columns:1fr 1fr;margin-top:10px;letter-spacing:.21em;font-size:11px;color:#ddd;text-align:center}
.ascen-anatomy-svg{display:block;width:100%;height:auto;max-height:650px}.ascen-muscle-highlight{stroke:#181818;stroke-width:1.2;stroke-linejoin:round;mix-blend-mode:screen;opacity:.72;animation:ascen-zone-enter .65s ease-out both}.ascen-muscle-highlight.primary{fill:#ef4d4e;filter:drop-shadow(0 0 3px #ef4d4e55)}.ascen-muscle-highlight.secondary{fill:#d2d4d7;filter:drop-shadow(0 0 3px #d2d4d744)}.ascen-anatomy-legend{display:flex;justify-content:space-around;gap:6px;flex-wrap:wrap;border-top:1px solid #ffffff25;padding-top:10px;font-size:10px;color:#e6e6e6}.ascen-anatomy-legend span{display:flex;align-items:center;gap:5px}.ascen-anatomy-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.ascen-anatomy-legend .red{background:#ef4d4e}.ascen-anatomy-legend .silver{background:#d2d4d7}.ascen-anatomy-legend .gray{background:#4e4e54}@keyframes ascen-zone-enter{from{opacity:0}to{opacity:.72}}@media(prefers-reduced-motion:reduce){.ascen-muscle-highlight{animation:none}}
/* ASCEN: acciones de la rutina en una sola zona superior */
.routine-finish-top{background:transparent;color:#e2bb55;border-color:#9197a0;white-space:nowrap}
.routine-finish-top:disabled{opacity:.6}
.routine>[class="pair"]:nth-child(2){justify-content:flex-start;align-items:center}
@media(max-width:700px){.routine-finish-top{padding:9px 10px}.routine>.pair:nth-child(2){display:flex;gap:7px;flex-wrap:wrap}}

/* ASCEN dashboard aprobado: únicamente Mi progreso */
.ascen-dashboard-lead{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:15px;border-color:#e2bb5540}
.ascen-weight-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.ascen-weight-metrics>div{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.ascen-weight-metrics>div+div{border-left:1px solid #ffffff1b;padding-left:17px}
.ascen-weight-metrics small,.ascen-dashboard-small small{color:#e9eaec;font-size:13px}
.ascen-weight-metrics strong{display:block;color:var(--gold);font-size:clamp(24px,4vw,35px);line-height:1.15;white-space:nowrap}
.ascen-weight-metrics .ascen-weight-target{color:#e9e9e9;font-size:clamp(18px,3vw,29px)}
.ascen-weight-metrics .ascen-goal-toggle{margin-top:3px}
.ascen-goal-form{margin-top:6px;display:flex;flex-wrap:wrap;gap:7px;align-items:flex-end}
.ascen-goal-form[hidden]{display:none}.ascen-goal-form .field{flex:1 1 100%}
.ascen-ring{--value:0%;width:124px;height:124px;max-width:100%;aspect-ratio:1;border-radius:50%;background:conic-gradient(#e2bb55 var(--value),#353538 0);padding:11px;display:grid;place-items:center;justify-self:center}
.ascen-ring-inner{background:#17171a;border-radius:50%;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:0}
.ascen-ring strong{font-size:24px;color:#e5e6e8;line-height:1.3}.ascen-ring small{font-size:10px;line-height:1.2;color:#e9eaec;padding:0 4px}
.ascen-dashboard-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ascen-dashboard-small{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;padding:14px}
.ascen-dashboard-small strong{font-size:25px;line-height:1.25;color:var(--gold);overflow-wrap:anywhere}
.ascen-dashboard-small .hint{font-size:11px}
.ascen-dashboard-adherence{display:grid;grid-template-columns:minmax(0,1fr) 140px;align-items:center;gap:12px}
.ascen-dashboard-adherence h2{margin:0 0 5px}.ascen-dashboard-adherence .sub{margin-bottom:6px}.ascen-dashboard-adherence strong{font-size:24px;color:var(--gold)}
.ascen-weight-chart{display:block;width:100%;max-width:620px;height:auto;margin:0 auto}
@media(max-width:600px){.ascen-dashboard-lead{grid-template-columns:minmax(0,1fr) 92px;gap:7px;padding:13px}.ascen-weight-metrics{gap:6px}.ascen-weight-metrics>div+div{padding-left:9px}.ascen-weight-metrics small{font-size:10px}.ascen-weight-metrics strong{font-size:24px}.ascen-weight-metrics .ascen-weight-target{font-size:17px;white-space:normal}.ascen-weight-metrics .hint{font-size:9px}.ascen-ring{width:86px;height:86px;padding:7px}.ascen-ring strong{font-size:19px}.ascen-ring small{font-size:8px}.ascen-dashboard-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ascen-dashboard-small{padding:11px}.ascen-dashboard-small:last-child{grid-column:1/-1}.ascen-dashboard-small strong{font-size:22px}.ascen-dashboard-adherence{grid-template-columns:minmax(0,1fr) 92px}}
/* Mantener visibles las divisiones anatómicas originales bajo las zonas coloreadas */
.ascen-muscle-highlight{opacity:.55;mix-blend-mode:multiply;stroke-width:.7;filter:none!important}
@keyframes ascen-zone-enter{from{opacity:0}to{opacity:.55}}

/* ASCEN V14: stable native-style mobile navigation; no horizontal movement */
.ascen-mobile-nav{display:none} .ascen-home-hero{border-color:#868c9570;background:linear-gradient(130deg,#e2bb5516,#181719 70%)}.ascen-home-eyebrow{color:var(--gold);font-size:11px;letter-spacing:.15em;font-weight:750}.ascen-home-hero h2{font-size:24px}.ascen-home-hero .btn{width:100%}.ascen-home-quick{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}.ascen-home-quick button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;border:1px solid #ffffff28;border-radius:15px;padding:14px;background:#1d1d20;color:#ddd;text-align:left}.ascen-home-quick strong{font-size:23px;color:var(--gold)}.ascen-home-quick span{font-size:11px}
@media(max-width:700px){
 #nav{display:none!important}
 #mobileNav:not([hidden]){display:grid!important}
 .ascen-mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;background:#111114ed;border-top:1px solid #ffffff22;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));box-shadow:0 -12px 35px #0007}
 .ascen-mobile-nav button{appearance:none;border:0;background:transparent;color:#959398;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:49px;padding:3px 0}
 .ascen-mobile-nav button.active{color:#e2bb55}.ascen-mobile-nav button span{font-size:25px;line-height:25px;font-weight:700}.ascen-mobile-nav button small{font-size:10px;font-weight:700}
 .head{position:relative;z-index:2;min-height:51px}
 .brand{justify-content:space-between}
 .head:after{content:'ASCEN';position:absolute;right:12px;top:13px;color:#9197a066;font-size:9px;letter-spacing:.08em;display:none}
 main{padding-bottom:calc(95px + env(safe-area-inset-bottom))}
 #toast{bottom:calc(88px + env(safe-area-inset-bottom))}
}

/* ASCEN V15 · barra móvil aprobada: cinco accesos, iconos lineales y salida visible */
.ascen-logout-mobile{display:none;border:1px solid #e2bb5580;background:#19181b;color:#e9eaec;border-radius:11px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer}
.ascen-food-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ascen-food-metrics>div{padding:12px;background:#ffffff0a;border:1px solid #ffffff25;border-radius:12px}.ascen-food-metrics small{display:block;color:#aaa}.ascen-food-metrics strong{color:#e2bb55;font-size:19px}.ascen-meal{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid #ffffff1c}.ascen-meal p{width:100%;margin:0}
@media(max-width:700px){
 .head{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:5px;min-height:56px}
 .head .brand{display:flex;flex-direction:column;gap:0;align-items:flex-start}
 .ascen-logout-mobile:not([hidden]){display:block;flex-shrink:0}
 .ascen-mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid #ffffff27}
 .ascen-mobile-nav button{gap:4px;min-height:56px}
 .ascen-mobile-nav button svg{display:block;width:22px;height:22px;stroke-width:1.8}
 .ascen-mobile-nav button small{font-size:10px;font-weight:600;white-space:nowrap}
 .ascen-mobile-nav button.active{color:#e2bb55}
}


/* ASCEN V16 · nutrición interactiva */
.ascen-food-summary .status{white-space:nowrap}
.ascen-food-metrics-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ascen-food-stack{display:flex;flex-direction:column;gap:14px}
.ascen-food-meal{border:1px solid #ffffff1f;border-radius:18px;background:#141417;padding:16px}
.ascen-food-meal.is-done{border-color:#e2bb5566;box-shadow:0 0 0 1px #e2bb5518 inset}
.ascen-food-meal-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:12px}
.ascen-food-meal-head h3{margin:2px 0 0}
.ascen-food-mark{min-width:98px;padding-inline:14px}
.ascen-food-items{display:flex;flex-direction:column;gap:10px}
.ascen-food-item{border-top:1px solid #ffffff14;padding-top:10px}
.ascen-food-item:first-child{border-top:0;padding-top:0}
.ascen-food-item-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.ascen-food-item-head strong{display:block}
.ascen-food-item-head small{display:block;color:#e9eaec;font-size:11px;margin-top:2px}
.ascen-food-item-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;color:#e9eaec;font-size:12px;text-align:right}
.ascen-food-item.is-swapped strong{color:#e9eaec}
.ascen-food-equivalents{margin-top:10px;padding:10px 12px;border:1px solid #ffffff1c;border-radius:14px;background:#ffffff06}
.ascen-food-chip-group{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}
.ascen-food-chip{border:1px solid #e2bb5555;background:#17191a;color:#e9eaec;border-radius:999px;padding:8px 11px;font-size:12px;cursor:pointer}
.ascen-food-chip.reset{border-color:#ffffff2d;background:#1b1c20;color:#dedede}
.ascen-anatomy-svg .zone.inactive{opacity:.55}
.ascen-anatomy-svg .zone.primary,.ascen-anatomy-svg .zone.secondary{opacity:.9}
@media(max-width:700px){
 .ascen-food-metrics-4{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ascen-food-meal-head,.ascen-food-item-head{flex-direction:column;align-items:flex-start}
 .ascen-food-item-actions{justify-content:flex-start;text-align:left}
 .ascen-food-mark{width:100%}
}

/* ASCEN V17: trazos que corresponden a las superficies reales de la ilustración */
.ascen-anatomy-stage{overflow:hidden;max-width:100%;box-sizing:border-box}
.ascen-anatomy-svg{width:100%;height:auto;display:block;max-width:100%;max-height:none;overflow:hidden}
.ascen-muscle-overlay .ascen-muscle-highlight{mix-blend-mode:normal;stroke:none!important;filter:none!important;opacity:.68;animation:ascen-zone-enter .45s ease-out both}
.ascen-muscle-overlay .ascen-muscle-highlight.primary{fill:#ef555a}
.ascen-muscle-overlay .ascen-muscle-highlight.secondary{fill:#dfe1e4}
@keyframes ascen-zone-enter{from{opacity:0}to{opacity:.68}}
.daily-muscle-item,.daily-muscle-body,.daily-muscle-list{min-width:0;max-width:100%;overflow-wrap:anywhere}
.daily-muscle-item summary{min-width:0;gap:8px;flex-wrap:wrap}
@media(max-width:700px){.ascen-anatomy-stage{padding:9px 7px}.ascen-anatomy-header{font-size:10px;letter-spacing:.04em}.ascen-anatomy-labels{font-size:10px}}

/* ASCEN V18 · historial de sesiones del alumno */
.ascen-history-session{border:1px solid #ffffff20;border-radius:15px;background:#111114;margin:10px 0;overflow:hidden}
.ascen-history-session>summary{cursor:pointer;padding:13px;display:flex;gap:12px;align-items:center;justify-content:space-between;list-style:none}
.ascen-history-session>summary::-webkit-details-marker{display:none}
.ascen-history-session summary strong,.ascen-history-session summary small{display:block}
.ascen-history-session summary small{font-size:11px;color:#e9eaec;margin-top:2px}
.ascen-history-meta{font-size:11px;color:#e2bb55;text-align:right;flex-shrink:0}
.ascen-history-body{padding:0 13px 12px}
.ascen-history-ex{border-top:1px solid #ffffff19;padding:12px 0}
.ascen-history-ex-head{display:flex;gap:11px;align-items:center;margin-bottom:7px}
.ascen-history-ex-head img{width:48px;height:48px;object-fit:contain;background:white;border-radius:9px}
.ascen-history-ex-head strong,.ascen-history-ex-head small{display:block}
.ascen-history-ex-head small{font-size:11px;color:#e9eaec}
.ascen-history-sets>div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:12px;border-bottom:1px solid #ffffff0e}
.ascen-history-sets b{font-variant-numeric:tabular-nums}
@media(max-width:550px){.ascen-history-session>summary{align-items:flex-start}.ascen-history-meta{max-width:40%}}

/* ASCEN V20 · nutrición semanal y anillos de cumplimiento (sin alterar diseño principal) */
.ascen-food-weeks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:8px 0 17px}
.ascen-food-weeks button{border:1px solid #ffffff30;background:#202024;color:#d0cdd0;padding:10px 3px;border-radius:10px;font-size:12px;font-weight:650}
.ascen-food-weeks button.active{background:#e2bb551d;color:#e9eaec;border-color:#e2bb55}
.ascen-nutri-rings{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:16px 0 10px}
.ascen-nutri-ring{min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.ascen-nutri-circle{width:72px;aspect-ratio:1;border-radius:50%;padding:7px;background:conic-gradient(#e2bb55 var(--nutri),#39383d 0)}
.ascen-nutri-circle>div{display:grid;place-items:center;border-radius:50%;height:100%;background:#17171a}
.ascen-nutri-circle strong{font-size:16px;color:#e9eaec}
.ascen-nutri-ring b{font-size:12px}.ascen-nutri-ring small{font-size:9px;color:#b5b1b1}
@media(max-width:650px){.ascen-nutri-rings{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:14px}.ascen-nutri-circle{width:66px}.ascen-food-weeks button{font-size:11px}}


/* ASCEN V21 · nutrición visual refinada */
.ascen-food-meal{position:relative;overflow:hidden;background:linear-gradient(180deg,#121216,#0f1014)}
.ascen-food-meal:before{content:'';position:absolute;inset:auto -18% -45% auto;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,#e2bb5518 0%,rgba(226,187,85,0) 68%);pointer-events:none}
.ascen-food-meal-head{display:flex;flex-direction:column;gap:10px;align-items:stretch;margin-bottom:12px}
.ascen-food-titlebar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-radius:18px;border:1px solid #e2bb555d;background:linear-gradient(90deg,#e2bb552f 0%,#676d7617 45%,rgba(255,255,255,.03) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.ascen-food-titlecopy{min-width:0}
.ascen-food-titlecopy small{display:block;color:#cdcfd2;font-size:12px;letter-spacing:.04em;margin-bottom:3px}
.ascen-food-titlecopy h3{margin:0;font-size:25px;line-height:1.05}
.ascen-food-vector{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;border-radius:16px;background:#0d0d0eb5;border:1px solid #e2bb5535}
.ascen-food-vector svg{width:34px;height:34px;fill:none;stroke:#e9eaec;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.92}
.ascen-food-meal-subrow{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ascen-food-meal-subrow .hint{font-size:13px;color:#e9eaec}
.ascen-food-meal.is-breakfast .ascen-food-titlebar{background:linear-gradient(90deg,#e2bb5533 0%,#44474c17 48%,rgba(255,255,255,.03) 100%)}
.ascen-food-meal.is-snack .ascen-food-titlebar{background:linear-gradient(90deg,#e2bb5528 0%,#44474c17 45%,rgba(255,255,255,.03) 100%)}
.ascen-food-meal.is-main .ascen-food-titlebar,.ascen-food-meal.is-dinner .ascen-food-titlebar{background:linear-gradient(90deg,#e2bb552f 0%,#575c6419 42%,rgba(255,255,255,.03) 100%)}
.ascen-food-mark{border-radius:999px;min-width:112px}
.ascen-nutri-circle{width:72px;height:72px;flex:0 0 72px;aspect-ratio:auto;border-radius:50%;padding:7px;background:conic-gradient(#e2bb55 var(--nutri),#39383d 0)}
.ascen-nutri-circle>div{width:100%;height:100%;border-radius:50%}
@media(max-width:700px){
  .ascen-food-titlebar{padding:13px 14px;border-radius:16px}
  .ascen-food-titlecopy h3{font-size:21px}
  .ascen-food-vector{width:46px;height:46px;flex-basis:46px;border-radius:14px}
  .ascen-food-vector svg{width:28px;height:28px}
  .ascen-food-meal-subrow{align-items:stretch}
  .ascen-food-mark{width:100%}
  .ascen-nutri-circle{width:66px;height:66px;flex-basis:66px}
}


/* ASCEN V22 · nutrición premium */
.ascen-food-meal{border:1px solid rgba(226,187,85,.20);box-shadow:0 12px 26px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.02)}
.ascen-food-meal:after{content:'';position:absolute;left:16px;right:16px;top:16px;height:1px;background:linear-gradient(90deg,rgba(226,187,85,.65),rgba(226,187,85,.14),rgba(226,187,85,0));pointer-events:none}
.ascen-food-titlebar{position:relative;padding:16px 18px 16px 18px;border-radius:20px;background:linear-gradient(135deg,rgba(226,187,85,.30) 0%,rgba(226,187,85,.14) 26%,rgba(255,255,255,.03) 58%,rgba(255,255,255,.02) 100%);border:1px solid rgba(226,187,85,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 8px 20px rgba(0,0,0,.16)}
.ascen-food-titlebar:before{content:'';position:absolute;left:0;top:0;bottom:0;width:7px;border-radius:20px 0 0 20px;background:linear-gradient(180deg,#e9eaec 0%,#e2bb55 65%,#616770 100%)}
.ascen-food-titlecopy{padding-left:8px;display:flex;flex-direction:column;gap:4px}
.ascen-food-titlecopy small{font-size:12px;color:#d0d2d5;letter-spacing:.07em;text-transform:uppercase}
.ascen-food-titlecopy h3{font-size:28px;font-weight:800;letter-spacing:-.02em}
.ascen-food-badge{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:6px 11px;border-radius:999px;background:rgba(15,16,20,.46);border:1px solid rgba(226,187,85,.24);font-size:11px;font-weight:700;color:#e9eaec;letter-spacing:.05em;text-transform:uppercase}
.ascen-food-vector{position:relative;width:60px;height:60px;flex:0 0 60px;border-radius:18px;background:radial-gradient(circle at 35% 35%,rgba(226,187,85,.22),rgba(13,13,14,.85) 62%);border:1px solid rgba(226,187,85,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.ascen-food-vector:before{content:'';position:absolute;inset:6px;border-radius:14px;border:1px solid rgba(226,187,85,.14)}
.ascen-food-vector svg{width:36px;height:36px;fill:none;stroke:#e9eaec;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 0 rgba(0,0,0,.25))}
.ascen-food-meal-subrow{padding:0 2px 2px}
.ascen-food-meal-subrow .hint{color:#e9eaec;font-size:13px;letter-spacing:.02em}
.ascen-food-meal.is-breakfast .ascen-food-titlebar{background:linear-gradient(135deg,rgba(226,187,85,.34) 0%,rgba(112,119,129,.18) 30%,rgba(255,255,255,.03) 62%,rgba(255,255,255,.02) 100%)}
.ascen-food-meal.is-lunch .ascen-food-titlebar,.ascen-food-meal.is-main .ascen-food-titlebar{background:linear-gradient(135deg,rgba(226,187,85,.28) 0%,rgba(86,91,99,.18) 28%,rgba(255,255,255,.03) 64%,rgba(255,255,255,.02) 100%)}
.ascen-food-meal.is-snack .ascen-food-titlebar{background:linear-gradient(135deg,rgba(226,187,85,.26) 0%,rgba(69,73,78,.18) 28%,rgba(255,255,255,.03) 64%,rgba(255,255,255,.02) 100%)}
.ascen-food-meal.is-dinner .ascen-food-titlebar{background:linear-gradient(135deg,rgba(226,187,85,.24) 0%,rgba(59,62,67,.20) 28%,rgba(255,255,255,.03) 64%,rgba(255,255,255,.02) 100%)}
.ascen-food-mark{min-width:124px;padding-inline:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.ascen-food-item{position:relative;padding-left:18px}
.ascen-food-item:before{content:'';position:absolute;left:0;top:.8em;width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#e9eaec,#e2bb55);box-shadow:0 0 0 3px rgba(226,187,85,.10)}
.ascen-nutri-circle{box-shadow:0 6px 18px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.04)}
.ascen-nutri-circle>div{background:radial-gradient(circle at 30% 30%,#1b1b21,#15151a 68%)}
@media(max-width:700px){
  .ascen-food-titlebar{padding:14px 15px 14px 15px;border-radius:18px}
  .ascen-food-titlebar:before{width:6px;border-radius:18px 0 0 18px}
  .ascen-food-titlecopy h3{font-size:24px}
  .ascen-food-badge{font-size:10px;padding:5px 10px}
  .ascen-food-vector{width:52px;height:52px;flex-basis:52px;border-radius:16px}
  .ascen-food-vector svg{width:31px;height:31px}
}

/* ASCEN V23 · acompañamiento nutricional */
.ascen-recipe-unavailable{color:#e9eaec;font-size:12px;padding:10px 4px;margin:8px 0 0}
.ascen-recipe-fold{background:linear-gradient(135deg,#e2bb5514,#151518);border:1px solid #e2bb5552;border-radius:14px;margin-top:14px;overflow:hidden}
.ascen-recipe-fold summary{cursor:pointer;padding:14px;color:#e9eaec;font-weight:700;display:flex;justify-content:space-between;gap:9px;align-items:center;list-style:none}
.ascen-recipe-fold summary::-webkit-details-marker{display:none}
.ascen-recipe-fold summary span{border-radius:999px;border:1px solid #e2bb5555;padding:2px 9px}
.ascen-recipe-entry{padding:12px 15px;border-top:1px solid #ffffff20}
.ascen-recipe-entry h4{margin:0 0 8px;color:#ced0d3;font-size:15px}
.ascen-recipe-entry ul,.ascen-recipe-entry ol{padding-left:20px;margin:7px 0 10px}
.ascen-recipe-entry li{margin:5px 0;font-size:13px}
.ascen-food-guidance details{border-top:1px solid #ffffff24;padding:12px 4px}
.ascen-food-guidance details:first-of-type{margin-top:15px}
.ascen-food-guidance summary{cursor:pointer;color:#e9eaec;font-weight:650;padding:3px 0}
.ascen-food-guidance details p{color:#e9eaec;font-size:13px;line-height:1.65}


/* ASCEN V23.1 · tarjetas de recetas y orientación legibles en iPhone */
.ascen-recipe-panel{min-width:0;margin:14px 0 20px;border-radius:18px;border:1px solid #e2bb5560;background:linear-gradient(145deg,#1b1c1e,#17171b 66%);padding:15px;box-shadow:0 9px 22px #0004}
.ascen-recipe-header{display:flex;align-items:center;gap:12px;min-width:0}
.ascen-recipe-header>div{min-width:0}.ascen-recipe-header strong{display:block;color:#d5d7da;font-size:15px;line-height:1.35}.ascen-recipe-header small{display:block;color:#e9eaec;font-size:11px;margin-top:3px}
.ascen-recipe-emblem{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;background:#e2bb5523;border:1px solid #e2bb554a;border-radius:13px;color:#e9eaec}.ascen-recipe-emblem svg{width:25px;height:25px}
.ascen-recipe-disclosure{margin-top:12px;border-top:1px solid #e2bb5538}.ascen-recipe-disclosure summary{display:flex;justify-content:space-between;align-items:center;padding:13px 2px 1px;cursor:pointer;color:#e9eaec;font-weight:700;list-style:none;font-size:13px}.ascen-recipe-disclosure summary::-webkit-details-marker{display:none}
.ascen-recipe-entry{padding:14px 0 5px;border-top:1px solid #ffffff22;margin-top:12px}.ascen-recipe-entry h4{font-size:16px}.ascen-recipe-partlabel{font-size:11px;letter-spacing:.08em;font-weight:800;color:#e2bb55;text-transform:uppercase;margin:12px 0 4px}
.ascen-recipe-entry ul{padding:0;list-style:none}.ascen-recipe-entry ul li{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #ffffff13;padding:7px 0}.ascen-recipe-entry ol{padding-left:20px}
.ascen-recipe-pending{padding-top:11px;color:#e9eaec;font-size:12px;line-height:1.55;margin:0}.ascen-recipe-pending b{color:#e9eaec}.ascen-recipe-pending p{margin:4px 0}.ascen-recipe-pending small{color:#e9eaec;font-size:11px}
.ascen-guides{margin:20px 0 22px;display:grid;gap:10px}.ascen-guides-heading{padding:4px 1px 8px}.ascen-guides-heading small{color:#e2bb55;font-size:10px;letter-spacing:.18em;font-weight:800}.ascen-guides-heading h2{font-size:22px;margin:4px 0 6px}.ascen-guides-heading p{font-size:12px;color:#e9eaec;margin:0}
.ascen-guide-card{background:linear-gradient(135deg,#1c1b1e,#131316);border:1px solid #ffffff22;border-radius:17px;overflow:hidden;min-width:0}.ascen-guide-card[open]{border-color:#e2bb5560}.ascen-guide-card summary{display:flex;align-items:center;gap:12px;cursor:pointer;padding:15px;list-style:none}.ascen-guide-card summary::-webkit-details-marker{display:none}.ascen-guide-symbol{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border:1px solid #e2bb5554;border-radius:12px;background:#e2bb5515;color:#e9eaec;font-size:12px;font-weight:800}.ascen-guide-title{min-width:0;flex:1}.ascen-guide-title b{display:block;font-size:14px;color:#dbdde0}.ascen-guide-title small{display:block;font-size:11px;color:#e9eaec;margin-top:2px}.ascen-guide-chevron{color:#e2bb55;font-size:18px;line-height:1}.ascen-guide-card[open] .ascen-guide-chevron{transform:rotate(180deg)}.ascen-guide-content{padding:0 17px 16px 17px;border-top:1px solid #ffffff12;font-size:12px;line-height:1.65;color:#e9eaec}.ascen-guide-content ul{padding-left:18px}.ascen-guide-content li{margin:9px 0}.ascen-guide-content p{margin:11px 0}.ascen-guide-content b{color:#e9eaec}.ascen-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:14px}.ascen-guide-grid>div{border:1px solid #ffffff19;border-radius:12px;padding:10px;background:#ffffff05}.ascen-guide-grid p{margin:3px 0 0}.ascen-guide-note{border-left:2px solid #e2bb55;padding-left:10px;color:#e9eaec}
@media(max-width:420px){.ascen-guide-grid{grid-template-columns:1fr}.ascen-recipe-panel{padding:12px}.ascen-guide-card summary{padding:13px}.ascen-guides-heading h2{font-size:19px}}

/* ASCEN V24 · receta contextual específica */
.ascen-recipe-entry .ascen-recipe-meta{margin:4px 0 10px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;font-weight:750;color:#e9eaec}
.ascen-recipe-entry h4{line-height:1.35;overflow-wrap:anywhere}

/* V25: tarjeta nutricional con acento dorado contenido y sin desbordamiento */
#app .ascen-food-stack,#app .ascen-food-meal,#app .ascen-food-titlebar,#app .ascen-recipe-panel{min-width:0;max-width:100%;box-sizing:border-box}
#app .ascen-food-meal{overflow:hidden;isolation:isolate;padding:14px;border:1px solid rgba(226,187,85,.35);border-radius:20px}
#app .ascen-food-meal:after{display:none!important}
#app .ascen-food-titlebar{position:relative;overflow:hidden;width:100%;border-radius:15px;padding:13px 14px;box-shadow:inset 5px 0 #e2bb55;background:linear-gradient(110deg,#e2bb5528,#e2bb5510 55%,#ffffff04);border:1px solid #e2bb555a}
#app .ascen-food-titlebar:before{display:none!important}
#app .ascen-food-titlecopy{min-width:0;flex:1;padding-left:4px;overflow-wrap:anywhere}
#app .ascen-food-titlecopy h3{font-size:clamp(18px,5.2vw,24px);line-height:1.18}
#app .ascen-food-vector{flex:0 0 44px;width:44px;height:44px;border-radius:13px}
#app .ascen-food-vector svg{width:27px;height:27px}
#app .ascen-recipe-panel{overflow:hidden;margin:14px 0 18px;padding:14px;border-radius:16px;border:1px solid #e2bb555a;background:linear-gradient(135deg,#e2bb5519,#17171b 66%)}
#app .ascen-recipe-entry,#app .ascen-food-item,#app .ascen-recipe-entry li{min-width:0;overflow-wrap:anywhere}
#app .ascen-recipe-entry li b{white-space:nowrap;flex-shrink:0}
#app .ascen-recipe-seasoning{margin:12px 0;padding:12px;border-radius:12px;background:#e2bb5510;border:1px solid #e2bb5536}
#app .ascen-recipe-seasoning strong{color:#e9eaec;font-size:13px}
#app .ascen-recipe-seasoning p{margin:5px 0 0;color:#e9eaec;font-size:12px;line-height:1.55}
@media(max-width:700px){#app .ascen-food-meal{padding:11px}#app .ascen-food-titlebar{padding:12px 10px 12px 13px}#app .ascen-food-vector{flex-basis:40px;width:40px;height:40px}#app .ascen-recipe-panel{padding:12px}}

/* V25 mapa muscular: capas ajustadas a la silueta, sin animaciones ni cambios de tamaño. */
.ascen-anatomy-svg .ascen-muscle-raster{pointer-events:none;mix-blend-mode:normal}


/* ASCEN V26: vector anatomical contour precision and mobile overflow prevention */
.ascen-muscle-overlay .ascen-muscle-cell-group{fill:#ef555a;stroke:none;fill-opacity:.74;pointer-events:none}
.ascen-muscle-overlay .ascen-muscle-cell-group.secondary{fill:#dfe1e4;fill-opacity:.75}
.ascen-muscle-overlay .ascen-muscle-cell-group.primary{fill:#ef555a;fill-opacity:.74}
.ascen-anatomy-svg{max-width:100%;height:auto;display:block;overflow:hidden}
.ascen-anatomy-stage{overflow:hidden;min-width:0;max-width:100%;box-sizing:border-box}
.daily-muscle-list,.daily-muscle-item,.daily-muscle-body,.daily-muscle-copy{min-width:0;max-width:100%;box-sizing:border-box}
.daily-muscle-item summary{min-width:0;max-width:100%;flex-wrap:wrap;box-sizing:border-box}
.daily-muscle-item summary>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
.daily-muscle-body{grid-template-columns:minmax(0,340px) minmax(0,1fr)}
#app{min-width:0;max-width:100%;box-sizing:border-box}
@media(max-width:760px){
 .daily-muscle-body{grid-template-columns:minmax(0,1fr);padding:0 10px 12px}
 .daily-muscle-item{overflow:hidden}
 .ascen-anatomy-stage{padding:10px 8px 8px}
 .ascen-anatomy-header{font-size:10px;letter-spacing:.035em;display:flex;align-items:center;justify-content:space-between;gap:5px}
 .ascen-anatomy-header small{font-size:9px;white-space:normal;text-align:right}
 .ascen-anatomy-legend{gap:7px;font-size:9px;justify-content:space-between}
 .ascen-anatomy-legend i{width:8px;height:8px;flex:0 0 8px}
 .ascen-anatomy-labels{font-size:10px}
 #mobileNav{left:0;right:0;width:100%;max-width:100vw;box-sizing:border-box}
}


/* ASCEN V27 — legibilidad, series flexibles y detalle de ejercicio en pestañas */
html,body,#app{max-width:100%;}
#app .card,#app .routine,#app .training-ex{min-width:0;overflow-wrap:anywhere}
.training-ex .ex-head{display:flex;align-items:center;gap:11px}
.training-ex .ex-head>div{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.training-ex .ex-head img{float:none;position:static;flex:0 0 64px;width:64px;height:64px;object-fit:contain}
.training-ex .exercise-detail-toggle{font-size:clamp(15px,3.7vw,18px);line-height:1.35;white-space:normal;overflow-wrap:anywhere}
.training-ex .ex-head small.hint{display:block;font-size:12px;letter-spacing:.025em}
.training-ex .ex-head span.hint{display:block;font-size:12px}
.exercise-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:9px;margin:11px 0 14px}
.exercise-action-row .substitute-wrap{min-width:0;margin:0}
.exercise-action-row .substitute-toggle{white-space:normal;max-width:100%;text-align:left;line-height:1.35;min-height:43px}
.rest-mini{min-width:108px;max-width:145px;display:flex;flex-direction:column;align-items:stretch;gap:5px;border:1px solid #e2bb5545;background:#e2bb550b;border-radius:12px;padding:8px}
.rest-mini label{display:block;color:#e9eaec;font-weight:550;font-size:11px;line-height:1.3}
.rest-mini select,.rest-mini input{width:100%;min-width:0;margin-top:5px;padding:7px 4px;background:#28272b;color:#fff;border:1px solid #ffffff40;border-radius:8px;font-size:13px}
.rest-mini .rest-status{display:block;text-align:center;color:#e2bb55;font-size:13px;font-weight:750;letter-spacing:.05em;font-variant-numeric:tabular-nums}
.rest-mini .rest-status.running{color:#e9eaec}
.training-chips b{font-size:12px}
.training-chips>span{font-size:14px}
.set-head,.set-row{grid-template-columns:48px minmax(75px,1.12fr) minmax(64px,.92fr) minmax(64px,.92fr) 45px;gap:7px;align-items:center}
.set-head{margin:16px 0 6px;color:#d0d3d6;font-size:12px;font-weight:650;letter-spacing:.025em}
.set-head span{text-align:center;min-width:0}
.set-row{padding:9px 0}
.set-row input{min-width:0;width:100%;height:44px;font-size:16px;padding:8px 5px;text-align:center;border-radius:10px}
.set-row .prev-load{font-size:12px;text-align:center;line-height:1.3;overflow-wrap:anywhere}
.set-row .series-num{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:3px 0;border-radius:10px;min-height:51px}
.set-row .series-num b{font-size:15px}
.set-remove{min-width:24px;min-height:23px;padding:0 3px;border:0;border-radius:6px;background:none;color:#e9eaec;font-size:20px;line-height:1;cursor:pointer}
.set-remove:focus-visible{outline:2px solid var(--gold)}
.set-row .series-check{display:grid;place-items:center;margin-inline:auto;width:42px;min-width:42px;height:42px;font-size:20px}
.ascen-set-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:9px 0 17px}
.ascen-set-actions p{margin:0;max-width:450px;flex:1 1 180px}
.ascen-set-actions button{min-height:40px;font-weight:650}
.ascen-set-actions button:disabled{opacity:.48;cursor:not-allowed}
.training-ex .rmForm{margin:12px 0 18px}
.training-ex .rmForm .field>span{font-size:13px}
.exercise-detail{padding:15px;margin:12px 0;border-radius:16px;min-width:0}
.ascen-exdetail-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ascen-exdetail-top h3{font-size:18px;margin:0;min-width:0}
.ascen-detail-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid #ffffff24;margin:12px 0 13px}
.ascen-detail-tabs button{flex:1 0 auto;border:0;border-bottom:3px solid transparent;background:transparent;color:#aba9ac;padding:10px 7px;font-size:14px;font-weight:600;white-space:nowrap}
.ascen-detail-tabs button.active{color:var(--gold);border-bottom-color:var(--gold)}
.ascen-detail-pane{min-width:0}
.ascen-detail-pane .exercise-detail-media{max-width:210px;margin:0 auto 12px}
.ascen-detail-pane .exercise-detail-media img{width:100%;height:auto;max-height:200px;object-fit:contain;float:none;background:#fff;border-radius:10px}
.ascen-detail-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(98px,1fr));gap:8px;margin:11px 0}
.ascen-detail-facts>span{padding:9px 10px;border:1px solid #ffffff24;border-radius:12px;background:#ffffff06;min-width:0}
.ascen-detail-facts small{font-size:12px;display:block;color:#e9eaec}
.ascen-detail-facts b{font-size:15px;display:block;overflow-wrap:anywhere}
.ascen-detail-pane h4{margin:8px 0;font-size:16px}
.ascen-coach-instructions{border-left:3px solid var(--gold);background:#e2bb550c;border-radius:8px;padding:12px 13px;font-size:14px;line-height:1.55;white-space:pre-wrap}
.exercise-history{max-height:340px;overflow-y:auto;overscroll-behavior:contain}
.ascen-history-date{border:1px solid #ffffff2c;background:#ffffff06;border-radius:12px;margin:0 0 9px;overflow:hidden}
.ascen-history-date>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 13px;cursor:pointer}
.ascen-history-date>summary::-webkit-details-marker{display:none}
.ascen-history-date>summary span:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.ascen-history-date>summary b{font-size:15px}
.ascen-history-date>summary small{font-size:12px;color:#e9eaec;overflow-wrap:anywhere}
.ascen-history-set-count{white-space:nowrap;color:#e9eaec;font-size:12px}
.ascen-history-date-body{padding:0 12px 12px}
.ascen-history-date .history-line{display:flex;justify-content:space-between;gap:9px;font-size:13px}
.ascen-history-date .history-line b{font-size:13px;text-align:right}
/* Legible typography without enlarging fixed-width or icon elements */
#app .hint{font-size:13px;line-height:1.5}
#app .sub{font-size:14px;line-height:1.55}
#app .field>span{font-size:13px}
#app .smallBtn{font-size:13px;line-height:1.4}
#app .status{font-size:13px}
#app input,#app select,#app textarea{font-size:16px;max-width:100%}
@media(max-width:700px){
 body{font-size:15px;line-height:1.5}
 main{padding-inline:12px}
 .card{padding:14px}
 .training-ex{padding:12px}
 .training-ex .ex-head img{width:62px;height:62px;flex-basis:62px}
 .training-chips>span{padding:8px 9px;min-width:0;font-size:13px}
 .training-chips b{font-size:12px}
 .set-head,.set-row{grid-template-columns:40px minmax(59px,1.08fr) minmax(58px,.9fr) minmax(58px,.9fr) 42px;gap:5px}
 .set-head{font-size:11px}
 .set-row input{height:43px;font-size:16px;padding:7px 3px}
 .set-row .series-num{min-height:49px}
 .set-row .series-num b{font-size:14px}
 .set-row .prev-load{font-size:12px}
 .set-row .series-check{width:39px;min-width:39px;height:39px}
 .rest-mini{min-width:105px;max-width:126px}
 #app .hint{font-size:12.5px}
 #app .sub{font-size:13.5px}
 #app .smallBtn{font-size:13px;padding:9px 10px}
 #app .training-chips b{font-size:12px}
 .exercise-detail{padding:11px}
}
@media(max-width:370px){
 main{padding-inline:8px}
 .card{padding:10px}
 .training-ex{padding:9px}
 .set-head,.set-row{grid-template-columns:34px minmax(50px,1fr) minmax(50px,.94fr) minmax(50px,.94fr) 36px;gap:3px}
 .set-head{font-size:10px}
 .set-row .prev-load{font-size:11px}
 .set-row input{font-size:16px;padding:6px 2px}
 .set-row .series-check{width:35px;min-width:35px;height:35px}
 .rest-mini{min-width:95px;max-width:110px}
}

/* ASCEN V28 — historial deslizante y pulido final de legibilidad */
.training-ex .exercise-detail-toggle{font-weight:700}
.training-ex .smallBtn,.training-ex .btn{font-size:14px}
.training-ex .pair .btn,.training-ex .pair .smallBtn{min-height:42px}
.exercise-action-row{grid-template-columns:minmax(0,1fr) minmax(116px,148px)}
.rest-mini{justify-self:end;align-self:start;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.rest-mini label{font-size:11.5px;font-weight:700;letter-spacing:.02em}
.rest-mini select,.rest-mini input{height:38px}
.rest-mini .rest-status{padding-top:1px}
.set-head span,.set-row .prev-load,.set-row input,.set-row .series-num{justify-self:stretch}
.set-head span{text-align:center}
.set-row .prev-load{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 6px;border-radius:10px;background:#ffffff08;border:1px solid #ffffff14}
.ascen-set-actions .smallBtn{padding-inline:14px}
.exercise-history{max-height:none;overflow:visible}
.ascen-history-shell{display:grid;gap:12px}
.ascen-history-slider{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.ascen-history-slider::-webkit-scrollbar{display:none}
.ascen-history-chip{min-width:152px;max-width:220px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 13px;border-radius:14px;border:1px solid #ffffff22;background:#ffffff05;color:#d2d4d7;text-align:left}
.ascen-history-chip span{font-size:12px;color:#e9eaec;font-weight:700;letter-spacing:.03em}
.ascen-history-chip b{font-size:14px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
.ascen-history-chip small{font-size:12px;color:#e9eaec}
.ascen-history-chip.active{border-color:#e2bb55;background:linear-gradient(135deg,#e2bb551e,#ffffff06);box-shadow:0 0 0 1px rgba(226,187,85,.22) inset}
.ascen-history-stage{border:1px solid #ffffff20;border-radius:16px;background:#ffffff06;padding:14px}
.ascen-history-session{display:grid;gap:12px}
.ascen-history-session-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.ascen-history-session-head small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#e9eaec;font-weight:700}
.ascen-history-session-head h4{margin:4px 0 2px;font-size:18px;line-height:1.25}
.ascen-history-session-head p{margin:0;font-size:13px;color:#e9eaec}
.ascen-history-badge{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid #e2bb554f;background:#e2bb5512;color:#e9eaec;font-size:13px;font-weight:700}
.ascen-history-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ascen-history-summary-grid>div{padding:10px 11px;border-radius:12px;border:1px solid #ffffff18;background:#0f1013a6}
.ascen-history-summary-grid small{display:block;font-size:12px;color:#e9eaec}
.ascen-history-summary-grid b{display:block;margin-top:4px;font-size:14px;overflow-wrap:anywhere}
.ascen-history-lines{display:grid;gap:8px}
.ascen-history-lines .history-line{padding:10px 11px;border-radius:12px;background:#0f1013b3;border:1px solid #ffffff16}
.ascen-history-lines .history-line span{font-size:13px;color:#e9eaec}
.ascen-history-lines .history-line b{font-size:14px}
.ascen-history-notes{padding:12px;border-radius:12px;background:#e2bb550b;border:1px solid #e2bb552f}
.ascen-history-notes h5{margin:0 0 8px;font-size:14px;color:#e9eaec}
.ascen-history-notes .hint{margin:5px 0}
#app h2{font-size:22px}
#app h3{font-size:18px}
#app .card{padding:20px}
#app .sub{font-size:14.5px}
#app .hint{font-size:13.5px}
#app .smallBtn{font-size:13.5px}
#app .field>span{font-size:13.5px}
@media(max-width:700px){
  .exercise-action-row{grid-template-columns:minmax(0,1fr) 118px;align-items:start}
  .ascen-history-chip{min-width:136px;max-width:180px;padding:11px 12px}
  .ascen-history-stage{padding:12px}
  .ascen-history-session-head h4{font-size:17px}
  .ascen-history-summary-grid{grid-template-columns:1fr 1fr}
  #app .card{padding:15px}
  #app h2{font-size:20px}
}
@media(max-width:430px){
  .exercise-action-row{grid-template-columns:1fr}
  .rest-mini{justify-self:stretch;max-width:none;min-width:0}
  .ascen-history-summary-grid{grid-template-columns:1fr}
}

/* ASCEN V29 — correcciones finales de entrenamiento e historial */
.exercise-action-row{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:12px 0 14px}
.exercise-top-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(124px,148px);gap:10px;align-items:stretch}
.substitute-wrap{display:grid;gap:7px;align-content:start}
.substitute-wrap .substitute-toggle{width:100%;min-height:44px;padding:10px 12px}
.substitute-current{margin:0}
.substitute-options{width:100%;padding:13px;border-radius:14px;background:#ffffff08;border:1px solid #ffffff22;box-sizing:border-box}
.substitute-options label{display:block;font-size:13px;color:#cbcdd0}
.substitute-options input,.substitute-options select{width:100%;box-sizing:border-box}
.substitute-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.substitute-card{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:10px;min-height:76px;padding:8px 9px;border-radius:12px}
.substitute-card span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;line-height:1.32;word-break:break-word;font-size:12px}
.rest-mini{min-width:0;max-width:none;min-height:44px;padding:10px 12px;gap:6px;border-radius:14px}
.rest-mini label{display:grid;gap:6px;align-content:start}
.rest-mini label>span{display:block;font-size:11px;line-height:1.25;color:#e9eaec;font-weight:700;letter-spacing:.02em}
.rest-mini select,.rest-mini input{height:40px;margin-top:0;padding:8px 8px;font-size:14px}
.rest-mini .rest-status{min-height:15px;font-size:12px;letter-spacing:.02em}
.ascen-instruction-list{margin:10px 0 0;padding-left:18px;display:grid;gap:8px}
.ascen-instruction-list li{line-height:1.5;color:#e3e5e7}
.set-head,.set-row{grid-template-columns:48px minmax(72px,1.08fr) minmax(66px,.94fr) minmax(66px,.94fr) 54px}
.set-head-done{white-space:nowrap;word-break:normal;overflow-wrap:normal}
.ascen-history-session>summary{gap:10px;flex-wrap:wrap}
.ascen-history-session>summary>span:first-child{min-width:0;flex:1 1 170px}
.ascen-history-meta{order:2}
.ascen-history-toggle{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;border:1px solid #ffffff24;background:#ffffff08;color:#e9eaec;font-size:12px;font-weight:700;white-space:nowrap}
.ascen-history-session[open] .ascen-history-toggle{border-color:#e2bb5555;background:#e2bb5514}
@media(max-width:700px){
  .exercise-top-controls{grid-template-columns:minmax(0,1fr) 132px}
  .substitute-card{grid-template-columns:48px minmax(0,1fr);min-height:72px}
  .set-head,.set-row{grid-template-columns:40px minmax(58px,1fr) minmax(58px,.92fr) minmax(58px,.92fr) 48px}
  .set-head{font-size:10.5px;letter-spacing:.015em}
}
@media(max-width:520px){
  .exercise-top-controls{grid-template-columns:1fr 1fr}
}
@media(max-width:430px){
  .exercise-top-controls{grid-template-columns:1fr}
  .substitute-cards{grid-template-columns:1fr}
  .set-head,.set-row{grid-template-columns:36px minmax(52px,1fr) minmax(52px,.92fr) minmax(52px,.92fr) 42px}
  .set-head{font-size:10px}
  .set-head-done{font-size:9.5px}
}

/* ASCEN V30: compact balanced controls; drop-down uses entire card width */
.exercise-action-row,.exercise-top-controls,.substitute-options,.training-ex,.ascen-history-session{min-width:0;max-width:100%;box-sizing:border-box}
.exercise-action-row{grid-template-columns:minmax(0,1fr);gap:8px;margin:10px 0 12px}
.exercise-top-controls{grid-template-columns:minmax(0,1fr) 126px;align-items:center;gap:9px}
.exercise-top-controls .substitute-toggle{display:flex;align-items:center;justify-content:center;min-height:48px;width:100%;padding:9px 10px;font-size:12.5px;text-align:center;line-height:1.25}
.rest-mini{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:48px;max-width:none;padding:6px 9px;border-radius:11px;background:#e2bb550a;box-shadow:none}
.rest-mini label{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:6px;width:100%;min-width:0}
.rest-mini label>span{font-size:11px;line-height:1.15;max-width:50px;letter-spacing:0;color:#e9eaec;font-weight:600}
.rest-mini select{margin:0;width:auto;min-width:61px;height:34px;padding:3px 2px;font-size:13px;border-radius:7px;flex:0 0 auto}
.rest-mini [data-custom-rest]:not([hidden]){max-width:80px;margin:0}
.rest-mini .rest-status{display:none}
.rest-mini .rest-status.running{display:block;white-space:nowrap;font-size:11px}
.substitute-options{max-height:min(470px,65vh);overflow-y:auto;overflow-x:hidden;padding:12px;margin:0;border-radius:14px}
.substitute-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.substitute-card{min-width:0;max-width:100%;overflow:hidden;grid-template-columns:54px minmax(0,1fr);align-items:center;padding:8px;min-height:75px}
.substitute-card span{display:block;overflow:hidden;word-break:normal;overflow-wrap:anywhere;font-size:12.5px;line-height:1.35;max-height:3.98em}
.substitute-card img{width:52px;height:52px;flex:none;object-fit:contain}
.set-head-done{word-break:normal!important;overflow-wrap:normal!important;white-space:nowrap!important;font-size:10px!important;letter-spacing:0!important}
.ascen-history-session>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center}
.ascen-history-meta{order:1;font-variant-numeric:tabular-nums}
.ascen-history-toggle{order:2;grid-column:2;justify-self:end;padding:5px 9px}
.ascen-history-session>summary>span:first-child{grid-row:1/span 2;min-width:0}
.ascen-instruction-list li{font-size:14px;line-height:1.52}
@media(max-width:700px){
  .exercise-top-controls{grid-template-columns:minmax(0,1fr) 116px;gap:8px}
  .substitute-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .substitute-card{grid-template-columns:42px minmax(0,1fr);min-height:64px;gap:7px;padding:7px}
  .substitute-card img{width:42px;height:42px}
  .set-head-done{font-size:9.5px!important}
}
@media(max-width:430px){
  .exercise-top-controls{grid-template-columns:minmax(0,1fr) 111px;align-items:center}
  .substitute-cards{grid-template-columns:1fr}
  .substitute-card{grid-template-columns:54px minmax(0,1fr)}
  .substitute-card img{width:52px;height:52px}
  .rest-mini{min-height:48px}
  .rest-mini label{flex-direction:column;gap:2px}
  .rest-mini label>span{max-width:none}
  .rest-mini select{height:28px;font-size:12px}
}
@media(max-width:360px){
  .set-head,.set-row{grid-template-columns:34px minmax(49px,1fr) minmax(49px,.92fr) minmax(49px,.92fr) 39px;gap:3px}
  .set-head-done{font-size:9px!important}
  .exercise-top-controls{grid-template-columns:minmax(0,1fr) 105px}
}

/* V30: metadata of each session must remain legible on a narrow display. */
.ascen-history-session>summary{grid-template-columns:minmax(0,1fr) auto;column-gap:9px;row-gap:4px}
.ascen-history-session>summary>span:first-child{grid-column:1;grid-row:1;min-width:0}
.ascen-history-meta{grid-column:1;grid-row:2;order:unset!important;max-width:none!important;text-align:left!important;white-space:nowrap;font-size:12px;min-width:0}
.ascen-history-toggle{grid-column:2;grid-row:1/span 2;order:unset!important;align-self:center;justify-self:end}


/* V30.1: move rest control into metrics row next to Tempo */
.exercise-top-controls{grid-template-columns:minmax(0,1fr)!important;}
.training-chip-rest{display:flex;flex-direction:column;gap:8px;min-width:132px;flex:1 1 150px;}
.training-chip-rest-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;}
.training-chip-rest select,.training-chip-rest input{border:1px solid #ffffff40;border-radius:10px;background:#28272bcc;color:#fff;padding:8px 10px;font-size:14px;min-width:0;}
.training-chip-rest select{min-width:86px;max-width:100%;flex:0 0 auto;}
.training-chip-rest [data-custom-rest]:not([hidden]){width:88px;flex:0 0 88px;}
.training-chip-rest .rest-status{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 8px;border-radius:10px;background:#e2bb5514;color:#e2bb55;font-size:12px;font-weight:700;white-space:nowrap;}
.training-chip-rest .rest-status.running{color:#e9eaec;}
@media(max-width:700px){.training-chip-rest{min-width:0;flex:1 1 100%;}.training-chip-rest-controls select{flex:1 1 90px;}.training-chip-rest .rest-status{min-width:56px;}}
@media(max-width:430px){.training-chip-rest{width:100%;}.training-chip-rest-controls{gap:5px;}.training-chip-rest select,.training-chip-rest input{font-size:13px;height:38px;padding:7px 8px;}.training-chip-rest .rest-status{min-height:38px;}}

/* V31 · visor de movimiento ASCEN */
.ascen-model-view{margin:0 auto 12px;max-width:520px}
.ascen-model-stage{background:#101115;border:1px solid #e2bb5555;border-radius:14px;overflow:hidden;aspect-ratio:13/8;display:grid;place-items:center}
.ascen-model-stage img{width:100%;height:100%;object-fit:contain;display:block}
.ascen-model-view>.hint{font-size:11px;line-height:1.4;margin:8px 0 12px;color:#a9a8ad}
.ascen-motion-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 12px}
.ascen-motion-toggle{min-height:42px;border-color:#e2bb5577!important;color:#e9eaec!important}
.ascen-motion-label{font-size:12px}
@media(prefers-reduced-motion:reduce){.ascen-model-stage *{animation:none!important}}

/* ASCEN original 2D model — preserve its full frame and ratio */
.ascen-model-stage{aspect-ratio:14/9;max-width:560px;background:#0c0d11}.ascen-model-stage img{width:100%;height:100%;object-fit:contain}
