/* Bubylift design system v80 — iPhone-style: grouped surfaces, large titles, one accent.
   Sistema de diseño v80 — estilo iPhone: superficies agrupadas, títulos grandes, un solo acento.
   Loaded last: it overrides the older blocks in style.css / se carga al final y reemplaza bloques anteriores. */
:root{
  --bg:#000;--panel:#1C1C1E;--panel2:#2C2C2E;--line:rgba(255,255,255,.12);--txt:#fff;--dim:#98989F;--muted:#98989F;
  --accent:#FF6A2B;--on-accent:#fff;--accent2:#E8430C;--green:#32D74B;--red:#FF453A;--warn:#FFB340;
  --radius:20px;--tab-h:56px;--shadow:none;
}
:root[data-mode="light"]{
  --bg:#F2F2F7;--panel:#fff;--panel2:#EEEEF3;--line:rgba(60,60,67,.14);--txt:#000;--dim:#6C6C70;--muted:#6C6C70;
  --accent:#E6500F;--on-accent:#fff;--accent2:#C73D05;--green:#1F9D45;--red:#D70015;--warn:#B35C00;
  --shadow:0 1px 2px rgba(0,0,0,.05);
}
body{font-size:17px;letter-spacing:-.01em;background:var(--bg)}
h2{font-size:1.2rem}
#app{padding:0 16px calc(var(--tab-h) + 96px + env(safe-area-inset-bottom))}

/* header + large title */
#top{padding:calc(8px + env(safe-area-inset-top)) 0 4px;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px)}
.brand{font-size:1.05rem;font-weight:800;letter-spacing:-.01em}
.langsw{display:none}
.inst-btn{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:600;padding:6px 12px}
h1.lt{font-size:2.15rem;font-weight:800;letter-spacing:-.03em;line-height:1.1;margin:2px 0 16px}

/* tab bar */
#tabbar{background:color-mix(in srgb,var(--panel) 80%,transparent);-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);border-top:.5px solid var(--line)}
#tabbar button{font-size:.65rem;font-weight:600;gap:3px}
#tabbar svg{width:26px;height:26px;stroke-width:1.9}
#tabbar button.on svg{stroke-width:2.3}

/* surfaces */
.card{border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.card.tip,.card.warn{border:0;background:var(--panel)}
.card.warn{box-shadow:inset 0 0 0 1.5px var(--warn)}
main>*+*{margin-top:14px}
main>.sec{margin-top:28px;margin-bottom:-4px}
.sec h2{font-size:1.3rem;font-weight:800;letter-spacing:-.02em}

/* buttons */
.btn{border:0;background:color-mix(in srgb,var(--accent) 13%,var(--panel));color:var(--accent);font-weight:650;border-radius:14px;min-height:46px}
.btn.pri{background:var(--accent);color:var(--on-accent)}
.btn.danger{background:color-mix(in srgb,var(--red) 14%,var(--panel));color:var(--red);border:0}
.btn.big{min-height:56px;font-size:1.1rem;border-radius:16px}
.btn.sm{min-height:34px;border-radius:999px;padding:6px 14px;font-size:.9rem}
.emptyb{background:var(--panel);color:var(--txt);box-shadow:var(--shadow)}
.emptyb .ic{width:20px;height:20px;color:var(--accent)}
.in{border-radius:12px;background:var(--panel2);border:0}

/* hero: today's workout */
.card.plan,.card.hero{background:linear-gradient(150deg,var(--accent) 0%,var(--accent2) 100%);color:#fff;border:0;padding:20px;box-shadow:0 10px 28px -12px color-mix(in srgb,var(--accent) 70%,transparent)}
.card.plan h3,.card.hero h2{font-size:1.85rem;font-weight:800;letter-spacing:-.025em;line-height:1.1;margin:6px 0 8px}
.card.plan .muted,.card.plan .sm,.card.hero p,.card.plan p{color:rgba(255,255,255,.86)}
.card.plan .plh b,.hero-e{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.card.plan .btn,.card.hero .btn{background:rgba(255,255,255,.2);color:#fff}
.card.plan .btn.pri,.card.hero .btn.pri{background:#fff;color:var(--accent2);min-height:54px;font-size:1.08rem}
.card.plan .btn.sm{background:rgba(255,255,255,.16);font-weight:600}
.card.plan .swhint,.card.plan .testl{display:none}
.card.plan .row{margin-top:14px}
.card.plan .row .btn.pri{flex:1}
.card.hero p{margin:0 0 16px;font-size:1rem;line-height:1.4}
.card.plan .plex{border-bottom-color:rgba(255,255,255,.22);color:#fff}
.card.plan .pldue{background:rgba(255,255,255,.14);border-radius:12px;padding:10px}
.card.tip.away{background:var(--panel)}

/* week strip */
.wkstrip .ws-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.wkstrip .ws-top .ic{width:16px;height:16px;vertical-align:-3px;color:var(--accent)}
.ws-days{display:flex;justify-content:space-between}
.ws-d{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.72rem;font-weight:700;color:var(--dim)}
.ws-d i{width:34px;height:34px;border-radius:50%;background:var(--panel2);display:flex;align-items:center;justify-content:center;font-style:normal}
.ws-d.on i{background:var(--accent);color:#fff}
.ws-d i .ic{width:18px;height:18px;stroke-width:2.6}
.ws-d.td span{color:var(--accent)}
.ws-d.td i{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent)}

/* grouped list rows (iOS inset grouped) */
.lgrp{background:var(--panel);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.lrow{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:13px 16px}
.lrow+.lrow{border-top:.5px solid var(--line);margin-left:0}
.lrow:active{background:var(--panel2)}
.li{flex:none;width:40px;height:40px;border-radius:11px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);display:flex;align-items:center;justify-content:center}
.li .ic{width:23px;height:23px}
.lt2{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.lt2 b{font-size:1.02rem;font-weight:650}
.lt2 small{font-size:.82rem;color:var(--dim);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc{color:var(--dim);font-size:1.5rem;line-height:1;font-weight:300}

/* workout / routine cards read as list rows */
.card.rt{padding:12px 14px}
.wkc{padding:14px 16px}
.card.hero h2,.card.plan h3,.card.plan h2{color:#fff;text-transform:none;letter-spacing:-.025em}
.sec h2,main>h2,.pkh{text-transform:none;color:var(--txt);font-size:1.3rem;letter-spacing:-.02em}
.card.plan .plsec{margin-top:10px}.card.plan .plsec .btn:not(:last-child){display:none}.card.plan .plsec .btn:last-child{width:100%}

/* v81 history + progress */
.dchip{flex:none;width:46px;height:50px;border-radius:12px;background:var(--panel2);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}
.dchip b{font-size:1.25rem;font-weight:800}.dchip small{font-size:.68rem;font-weight:700;text-transform:uppercase;color:var(--accent);letter-spacing:.04em}
.wkrow .lt2 b{display:flex;align-items:center;gap:8px}
.wkrow .pr{font-size:.78rem;font-weight:700;color:var(--accent)}
.wkrow .pr .ic{width:14px;height:14px;vertical-align:-2px}
.stats.card{background:var(--panel);padding:16px 8px}
.stats b{font-size:1.6rem;font-weight:800;letter-spacing:-.02em}
.stats span{font-size:.78rem;font-weight:600}
.lrow .hv-th{flex:none;width:44px;height:44px;border-radius:11px}
.tl{padding:16px}.tl .tl-h b{font-size:1.05rem}
.rmc{padding:16px}
.rmc>b{font-size:1.1rem}
.chips .chip{border-radius:999px;background:var(--panel);border:0;font-weight:600;padding:8px 14px}
.chips .chip.on{background:var(--accent);color:#fff}

/* v82 body, stretch, more: iOS segmented controls, flat surfaces */
.seg{background:color-mix(in srgb,var(--txt) 9%,var(--panel));padding:2px;border-radius:10px;gap:0;margin:6px 0 10px}
.seg button{border-radius:8px;padding:8px 6px;font-weight:600;font-size:.9rem;color:var(--txt);background:none}
.seg button.on{background:var(--panel);color:var(--txt);box-shadow:0 1px 3px rgba(0,0,0,.22)}
:root[data-mode="light"] .seg button.on{background:#fff}
.lrow .seg{flex:0 1 200px}
.chips .chip,.chip{border-radius:999px;border:0;background:var(--panel);font-weight:600}
.chip.on{background:var(--accent);color:#fff}
.dtl summary,details>summary{list-style:none}
.dtl>summary{background:var(--panel);box-shadow:var(--shadow);border-radius:14px;padding:14px 16px;font-weight:650;color:var(--txt)}
.card.wt,.card.bigw,.bodyin{background:var(--panel)}
.mrow{border-radius:0}
.profcard,.card.creator{border-radius:var(--radius)}
.card .dz .btn,.dz .btn.danger{border-radius:14px}
.step-n{background:var(--accent)}
.card.bwhero{background:var(--panel)}
.bw-in{font-size:3rem;font-weight:800;letter-spacing:-.03em}
.bw-st{background:color-mix(in srgb,var(--accent) 13%,var(--panel2));color:var(--accent)}
.mlist{padding:0;overflow:hidden}
.card.grp{padding:6px 0}
.seg,.seg button{border:0!important;outline:0}.mlist .lrow+.lrow,.mrow+.mrow{border-top:.5px solid var(--line)}

/* v83 active workout */
.wk-head{background:var(--panel);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.wkname{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;background:none;border:0;color:var(--txt);width:100%;padding:0;outline:0}
#wkstats{font-variant-numeric:tabular-nums;margin:2px 0 12px}
.wk-act .btn{min-height:50px;font-size:1.05rem}
.exc{background:var(--panel);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.exh-t b{font-size:1.1rem;font-weight:750;letter-spacing:-.015em}
.srow .in{min-height:46px;font-size:1.15rem;font-weight:650;border-radius:12px}
.srow .sn{font-size:1.05rem}
.srow .chk{min-height:46px;border-radius:12px;background:var(--panel2)}
.srow.done .chk{background:var(--green);color:#fff}
.srow .in+button,.srow button.st{border-radius:12px}
.exc .btn.sm,.exc .btn.wide{background:color-mix(in srgb,var(--accent) 12%,var(--panel2))}
.note-in{background:var(--panel);border:0;border-radius:var(--radius);padding:14px;color:var(--txt);width:100%}
#restbar{background:color-mix(in srgb,var(--panel) 88%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:0;border-radius:18px;box-shadow:0 8px 30px rgba(0,0,0,.28)}
/* sheets */
#sheet{border-radius:24px 24px 0 0;background:var(--panel)}
.form h3{font-size:1.4rem;font-weight:800;letter-spacing:-.02em}
.cheer{font-size:1.05rem;font-weight:600;margin:6px 0 4px;line-height:1.35}
.hlp{margin:-4px 2px 8px}

/* v87 mobility gets its own tab, a card on Train and a hero */
.mobc{padding:14px 16px}
.mobc-b{display:flex;align-items:center;gap:14px;width:100%;text-align:left}
.mobc .row{margin-top:12px}.mobc .row .btn{flex:1}
.avbtn.gear{width:36px;height:36px;border-radius:50%;background:var(--panel);color:var(--txt);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}
.avbtn.gear .ic{width:20px;height:20px}.avbtn.gear.on{color:var(--accent)}
#tabbar button{min-width:0}

/* v88 cloud account */
.cloudc{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center}
.cloudc .row{grid-column:1/-1;margin-top:2px}.cloudc .row .btn{flex:1}
.cl-t p{margin-top:2px}
.clmsg{background:color-mix(in srgb,var(--red) 12%,var(--panel2));color:var(--red);border-radius:10px;padding:8px 12px;margin:8px 0;font-weight:600;font-size:.9rem}
.svrow{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;border-top:.5px solid var(--line);padding-top:12px;margin-top:4px}
.sv-t{display:flex;flex-direction:column}.sv-t small{color:var(--dim);font-size:.82rem}
.sv-pw{grid-column:1/-1;color:var(--dim);font-size:.72rem}
.svst{margin-top:8px}

/* cloud account sheets / hojas de la cuenta en la nube */
.clwarn{font-size:13px;line-height:1.4;color:var(--text);background:color-mix(in srgb,var(--warn) 14%,transparent);border-radius:12px;padding:10px 12px;margin:8px 0}
.clmsg{font-size:14px;color:var(--red);margin:6px 0}
.clrec{font:700 17px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em;text-align:center;background:var(--panel);border-radius:14px;padding:16px 10px;margin:12px 0;user-select:all;-webkit-user-select:all}
.clchk{display:flex;gap:10px;align-items:center;font-size:15px;margin:12px 0}
.clchk input{width:22px;height:22px;accent-color:var(--accent)}

/* emoji → line icons / emojis → iconos de línea */
.emo{display:inline-flex;align-items:center;vertical-align:-.2em;line-height:1}
.emo .ic.ei{width:1.15em;height:1.15em;stroke-width:1.9}
.av .emo .ic.ei{width:1em;height:1em;color:#fff;stroke-width:1.7}
.wel-e .emo .ic.ei,.sum-e .emo .ic.ei{width:1em;height:1em;color:var(--accent);stroke-width:1.4}

/* circular avatars + suggested photos / avatares circulares + fotos sugeridas */
.av{border-radius:50%}
.av.av-p{background:transparent}
.av-sug{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;max-height:236px;overflow-y:auto;padding:4px;margin:6px -4px 14px;-webkit-overflow-scrolling:touch}
.av-s{border:0;padding:0;background:none;border-radius:50%;aspect-ratio:1;position:relative}
.av-s img{width:100%;height:100%;border-radius:50%;display:block;object-fit:cover}
.av-s.on{outline:3px solid var(--accent);outline-offset:2px}

/* ---------- v93 smooth motion / movimiento suave ---------- */
:root{--ease:cubic-bezier(.22,1,.36,1)}
#sheetov:not([hidden]){animation:smov .22s ease-out}
#sheetov:not([hidden]) #sheet{animation:smup .34s var(--ease)}
#sheetov.gh{pointer-events:none;animation:smvo .2s ease-in forwards}
#sheetov.gh #sheet{animation:smdn .22s ease-in forwards}
#gate:not([hidden]){animation:smov .28s ease-out}
#gate.gh{pointer-events:none;animation:smvo .22s ease-in forwards}
main.pgin{animation:pgin .28s var(--ease)}
main.pgin>.card,main.pgin>.stats{animation:none}
@keyframes smov{from{opacity:0}to{opacity:1}}
@keyframes smvo{from{opacity:1}to{opacity:0}}
@keyframes smup{from{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}
@keyframes smdn{from{transform:none}to{transform:translateY(60px);opacity:.4}}
@keyframes pgin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
button,.btn,.chip,.card,.tile,.menu button{-webkit-tap-highlight-color:transparent}
button,.btn,.chip{transition:transform .16s var(--ease),opacity .16s,background-color .2s,color .2s,border-color .2s}
.btn:active,.chip:active,.menu button:active{transform:scale(.97)}
#tabbar button{transition:color .2s,background-color .2s}
#tabbar button svg{transition:transform .25s var(--ease)}
#tabbar button.on svg{transform:translateY(-1px) scale(1.08)}
#tabbar button:active svg{transform:scale(.88)}
body{transition:background-color .25s,color .25s}
.card,.panel,.chip,.wopt,.srow{transition:background-color .2s,border-color .2s,box-shadow .2s,transform .16s var(--ease)}
@media(prefers-reduced-motion:reduce){
  #sheetov:not([hidden]),#sheetov:not([hidden]) #sheet,#gate:not([hidden]),main.pgin{animation:none}
  button,.btn,.chip,.card,#tabbar button svg{transition:none}.btn:active,.chip:active{transform:none}
}

/* ---------- v94 sticky workout bar / barra fija del entrenamiento ---------- */
.wk-head{position:sticky;top:calc(env(safe-area-inset-top) + 6px);z-index:22;display:grid;grid-template-columns:1fr auto;grid-template-areas:"n b" "s b";align-items:center;column-gap:12px;row-gap:0;padding:10px 12px 10px 16px;box-shadow:0 6px 18px rgba(0,0,0,.28)}
.wk-head::before{content:"";position:absolute;left:-20px;right:-20px;bottom:100%;height:120px;background:var(--bg);pointer-events:none}
.wk-head .wkname{grid-area:n;font-size:1.15rem;min-width:0;text-overflow:ellipsis}
.wk-head #wkstats{grid-area:s;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wk-head .wk-act{grid-area:b;margin:0}
.wk-head .wk-act .btn{width:auto;min-height:44px;padding:10px 20px}

/* v95 share studio */
.cs-th{display:flex;gap:8px;margin:8px -4px 6px;padding:0 4px 4px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.cs-th .cs-t{flex:none;width:82px}
.cs-t{border-radius:12px;border:2px solid transparent;padding:3px;text-align:center;font-size:.7rem;font-weight:600;color:var(--dim);min-width:0}
.cs-t canvas{display:block;width:100%;height:auto;border-radius:12px;background:repeating-conic-gradient(#3a3a42 0 25%,#2b2b32 0 50%) 0 0/12px 12px;margin-bottom:4px}
.cs-t.on{border-color:var(--accent);color:var(--txt)}
.cs-l{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin:12px 0 2px}
.cs-row{margin:4px 0}
.cs-sw{display:flex;gap:12px;margin:6px 0 12px}
.cs-c{width:40px;height:40px;border-radius:50%;border:2px solid var(--line)}
.cs-c.on{outline:3px solid var(--accent);outline-offset:2px}

.leg-row{display:flex;flex-direction:column;gap:8px;margin:10px 0}.leg-n{display:flex;align-items:center;gap:12px;font-size:1.1rem}

/* v0.99.6 fast logging: tap feedback / registro rápido: respuesta al toque */
.srow.pop{animation:setPop .35s ease-out}
@keyframes setPop{0%{transform:scale(.985)}45%{transform:scale(1.015)}100%{transform:scale(1)}}
.chk,.stp{transition:transform .08s ease}
.chk:active,.stp:active{transform:scale(.88)}
@media (prefers-reduced-motion:reduce){.srow.pop{animation:none}}

/* v0.99.8 recovery plans / planes de recuperación */
.rhc{display:flex;align-items:center;gap:14px;width:100%;text-align:left;margin-bottom:10px}
.rhc-t{display:flex;flex-direction:column;gap:2px;flex:1}
.rhc-t small{color:var(--muted)}
.rhc-s{color:var(--accent)!important;font-weight:600}
.rhc-go{font-size:1.6rem;color:var(--muted)}
.rh-em{font-size:2rem;line-height:1}
.rh-hd{display:flex;gap:14px;align-items:center;margin:8px 0}
.rh-hd h2{margin:0}
.rh-ph summary{cursor:pointer;display:flex;flex-direction:column;gap:2px;list-style:none}
.rh-ph summary::-webkit-details-marker{display:none}
.rh-ph summary small{color:var(--muted)}
.rh-ph.cur{border-color:var(--accent)}
.rh-here{font-style:normal;font-size:.75rem;font-weight:700;color:var(--accent)}
.rh-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.rh-chips button{min-width:38px;height:38px;border-radius:10px;border:1px solid var(--line,#8884);background:none;color:inherit;font-weight:600}
.rh-chips button.on{background:var(--accent);color:var(--on-accent,#fff);border-color:var(--accent)}
.rh-wk{display:flex;gap:8px;margin:6px 0}
.rh-d{display:flex;flex-direction:column;align-items:center;min-width:30px}
.rh-d i{font-style:normal;font-weight:700}
.rh-d small{color:var(--muted)}
.rh-ul{padding-left:18px;margin:8px 0}
.rh-ul li{margin:4px 0;font-size:.9rem}
.rh-ul li.g::marker{color:#2e9e5b}.rh-ul li.y::marker{color:#d9a21b}.rh-ul li.r::marker{color:#d64545}
.rh-tbl{display:grid;gap:4px;margin:8px 0;font-size:.82rem}
.rh-r{display:grid;grid-template-columns:.9fr 1fr 1fr 1fr;gap:6px;align-items:center}
.rh-r.hd{color:var(--muted);font-weight:600}

/* v0.99.9 recovery zone filter */
.rh-zones{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.rh-zones .btn{flex:0 0 auto;min-height:40px;padding:0 14px}

/* v0.99.10 buttons must look like buttons / los botones deben verse como botones */
.btn:not(.pri):not(.danger){background:var(--panel);color:var(--txt);border:1.5px solid color-mix(in srgb,var(--accent) 55%,var(--line,#8886));box-shadow:0 1px 0 color-mix(in srgb,var(--txt) 14%,transparent)}
.btn.danger{border:1.5px solid color-mix(in srgb,var(--red) 60%,transparent)}
.btn.pri{box-shadow:0 2px 0 color-mix(in srgb,var(--accent) 60%,#000)}
.btn.sm{padding:6px 14px;min-height:38px;border-radius:12px}
.btn:active{transform:translateY(1px);box-shadow:none}
.lnk-d,.g-link{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:40px;padding:0 14px;border-radius:12px;border:1.5px solid color-mix(in srgb,var(--txt) 28%,transparent);background:var(--panel);color:var(--txt);font-weight:650;font-size:.95rem}
main>.lnk-d{display:flex;margin:14px auto 0;color:var(--txt)}
.g-link{font-size:.95rem}
.chip:not(.on){border:1.5px solid color-mix(in srgb,var(--txt) 28%,transparent);background:var(--panel);color:var(--txt)}
.inst-btn{background:var(--panel)!important;color:var(--txt)!important;border:1.5px solid color-mix(in srgb,var(--accent) 55%,transparent)!important;font-weight:650}

/* v0.99.11 welcome screen like a social app / pantalla de bienvenida estilo red social */
.wel-hero{background:linear-gradient(160deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#000));color:#fff;margin:calc(-14px - env(safe-area-inset-top,0px)) -20px 0;padding:calc(env(safe-area-inset-top,0px) + 80px) 24px 48px;border-radius:0 0 32px 32px;text-align:center}
.wel-logo{width:84px;height:84px;margin:0 auto 18px;border-radius:24px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center}
.wel-logo .ic{width:46px;height:46px;stroke:#fff}
.wel-hero h1{font-size:2.3rem;letter-spacing:-.02em;margin:0 0 8px}
.wel-hero p{opacity:.92;font-size:1.05rem;margin:0}
.wel-act{margin-top:28px}
.wel-guest{border-color:transparent!important;background:none!important;box-shadow:none!important;color:var(--dim)!important}

/* v0.99.12 Google button / botón de Google */
.oa-g{gap:10px}
.oa-or{display:flex;align-items:center;gap:12px;color:var(--dim);font-size:.9rem}
.oa-or:before,.oa-or:after{content:'';flex:1;border-top:1px solid var(--line,#8884)}

/* v0.99.13 first-run tour + guest bar / tour de primera vez y aviso de invitado */
#tour{position:fixed;inset:0;z-index:200;animation:tfade .25s ease-out}
@keyframes tfade{from{opacity:0}to{opacity:1}}
.tour-spot{position:fixed;box-shadow:0 0 0 9999px rgba(8,8,12,.74);transition:all .28s ease;pointer-events:none;outline:2px solid var(--accent)}
.tour-card{position:fixed;left:16px;right:16px;max-width:420px;margin:0 auto;background:var(--panel);color:var(--txt);border-radius:22px;padding:20px 18px 16px;box-shadow:0 12px 40px rgba(0,0,0,.45);text-align:center}
.tour-em{font-size:2.6rem;line-height:1;margin-bottom:6px;animation:tpop .35s ease-out}
@keyframes tpop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
.tour-card h3{margin:4px 0 6px;font-size:1.3rem}
.tour-card p{margin:0 0 14px;color:var(--dim);font-size:1rem}
.tour-dots{display:flex;justify-content:center;gap:6px;margin-bottom:14px}
.tour-dots i{width:7px;height:7px;border-radius:50%;background:color-mix(in srgb,var(--txt) 22%,transparent)}
.tour-dots i.on{background:var(--accent);width:20px;border-radius:4px}
.tour-btns{display:flex;gap:10px}
.tour-btns .btn{flex:1}
.tour-skip{margin-top:10px;width:100%;min-height:40px}
.guestbar{display:flex;flex-direction:column;gap:10px;padding:12px 14px;margin-bottom:12px;font-size:.95rem}
.guestbar .row{display:flex;gap:8px}
.guestbar .btn{flex:1}
@media (prefers-reduced-motion:reduce){#tour,.tour-em{animation:none}.tour-spot{transition:none}}

/* v0.99.14 suggested weight button + personal-record burst / botón de peso sugerido y destello de récord */
.sgbtn{margin:2px 0 8px}
.srow{position:relative}
.srow.prb{animation:prGold 1.3s ease-out}
@keyframes prGold{0%{background:color-mix(in srgb,#f5b301 55%,transparent)}100%{background:transparent}}
.srow.prb .pr{animation:pop .6s ease-out}
.prp{position:absolute;left:18px;top:50%;font-size:1rem;pointer-events:none;animation:prSpark 1s ease-out forwards}
@keyframes prSpark{0%{transform:translate(0,0) scale(.4);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(1.2);opacity:0}}
@media (prefers-reduced-motion:reduce){.srow.prb,.srow.prb .pr,.prp{animation:none}}

/* bigger, easier set rows: one pill per field with - [number] +, big green check / filas de series más grandes: una píldora por campo con - [número] + y check grande */
.srow{gap:8px;margin-bottom:10px}
.srow.hd{margin-bottom:4px;letter-spacing:.06em}
.srow .stc{background:var(--panel2);border-radius:14px;gap:0;padding:0;overflow:hidden;border:1px solid var(--line)}
.srow .stc:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
.srow .stc .in{min-height:54px;font-size:1.4rem;font-weight:700;background:transparent;border:0;border-radius:0;padding:0;box-shadow:none;text-align:center}
.srow .stc .stp{width:34px;height:54px;border-radius:0;background:transparent;color:var(--accent);font-size:1.5rem;font-weight:700}
.srow .stc .stp:active{background:color-mix(in srgb,var(--accent) 18%,transparent);transform:none}
.srow .in{min-height:54px;font-size:1.4rem;font-weight:700}
.srow .in.dn,.srow.done .stc{background:color-mix(in srgb,var(--green) 22%,var(--panel2))}
.srow.done .stc .in.dn{background:transparent}
.srow .chk{min-height:54px;border-radius:14px;font-size:1.5rem}
.srow .sn{min-height:54px;font-size:1.1rem}
@media(max-width:430px){.srow .stc .stp{width:28px}.srow .stc .in{font-size:1.3rem}}

/* rest bar you can actually notice / barra de descanso que sí se nota */
#restbar{padding:12px 16px 14px}
#restbar .rb-bar{height:8px;border-radius:4px}
#restbar #restT{font-size:2rem;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:.01em}
#restbar #restT.rdone{color:var(--green)}
#restbar .rb-l{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
#restbar .btn.sm{min-height:44px;min-width:56px;font-size:1rem}
.exsub{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}

/* exercise picker: multi-select, clearer rows / selector de ejercicios: selección múltiple y filas más claras */
.exrow.exth{padding:10px 6px;border-radius:12px;position:relative}
.exrow .exck{margin-left:auto;flex:none;width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:800;color:#fff;font-size:.9rem}
.exrow.sel{background:color-mix(in srgb,var(--accent) 14%,transparent)}
.exrow.sel .exck{background:var(--accent);border-color:var(--accent)}
.pick .lbl{position:sticky;top:0;background:var(--panel);z-index:1;padding:6px 4px}
.pickadd{position:sticky;bottom:0;margin:8px 0 6px;min-height:52px;font-size:1.05rem}
.pickadd:disabled{opacity:.45}
.chips.sc{flex-wrap:nowrap}.chips .chip.sm{padding:6px 11px;font-size:.82rem;font-weight:600}

/* stopwatch pause button / botón de pausa del cronómetro */
.clkb{margin-left:8px;min-width:40px;height:30px;border-radius:15px;background:var(--panel2);color:var(--accent);font-weight:800;font-size:.78rem;vertical-align:middle}
#elapsed.paused{opacity:.55}
@media(max-width:430px){#restbar{padding:10px 12px 12px}#restbar .rb-row{gap:6px}#restbar .rb-l{display:none}#restbar #restT{font-size:1.8rem}#restbar .btn.sm{min-width:44px;padding:0 10px;font-size:.95rem}}

/* exercise picker as a swipeable strip that stays above the keyboard / selector como tira deslizable que queda sobre el teclado */
#sheetov.pks{inset:0;height:auto;align-items:flex-end;justify-content:flex-end}
/* keyboard open: the sheet and its list keep going down behind the keyboard; only the search bar floats right above it / con el teclado abierto: la hoja y su lista siguen hacia abajo detrás del teclado; solo la barra de búsqueda queda flotando justo encima */
body.kbd #sheet.pks{position:relative;padding-bottom:0}
body.kbd #sheet.pks .pk-bot{position:absolute;left:16px;right:16px;bottom:var(--kbh,0px);padding:8px 0 10px;background:var(--panel);z-index:2}
body.kbd #sheet.pks .exlist.pk-list{padding-bottom:calc(var(--kbh,0px) + 76px)}
#sheet.pks{overflow:hidden;overflow:clip;overscroll-behavior:none;display:flex;flex-direction:column;max-height:calc(100% - 24px);height:calc(100% - 24px);overflow:hidden;padding-bottom:calc(10px + env(safe-area-inset-bottom))}

/* keyboard open in the picker: only the search stays in view; the keyboard may cover the tab bar and the add button / con el teclado abierto en el selector solo queda a la vista el buscador; el teclado puede tapar la barra inferior y el botón de agregar */
body.kbd #tabbar,body.kbd:has(#sheet.pks) #restbar,body.kbd:has(#sheet.pks) #skbar,body.kbd:has(#sheet.pks) #sheet.pks .pk-bot .pickadd{display:none}
#sheet.pks .pick{display:flex;flex-direction:column;flex:1;min-height:0}
#sheet.pks .pick>*{flex:none}#sheet.pks .pick>.pk-grid{flex:1 1 0}

/* picker v2: tabs, A-Z list, search pinned above the keyboard / selector v2 */
.pk-tabs{display:flex;background:var(--panel2);border-radius:12px;padding:3px;margin:8px 0 4px;gap:2px;flex:none}
.pk-tabs button{flex:1;min-height:38px;border-radius:10px;font-weight:600;font-size:.92rem;color:var(--dim)}
.pk-tabs button.on{background:var(--line);color:var(--text,#fff)}
#sheet.pks .exlist.pk-list{flex:1 1 0;min-height:0;margin:0 -8px;padding:0 8px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
#sheet.pks .exrow.exth{display:flex;align-items:center;gap:12px;padding:8px 4px;min-height:68px;border-bottom:.5px solid var(--line);border-radius:0}
#sheet.pks .exrow .ex-th{width:54px;height:54px;flex:none;border-radius:11px}
#sheet.pks .exrow .ex-tx{flex:1;min-width:0}
#sheet.pks .exrow .ex-tx b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:1rem;line-height:1.2}
#sheet.pks .exrow .ex-tx small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#sheet.pks .exrow.sel{background:color-mix(in srgb,var(--accent) 14%,transparent)}
#sheet.pks .exrow .exck{position:static;width:26px;height:26px;margin-left:auto;font-size:.9rem}
.pk-l{position:sticky;top:0;z-index:1;background:var(--panel);padding:14px 2px 6px;font-weight:800;color:var(--dim);font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}
.pk-m{display:flex;align-items:center;width:100%;min-height:58px;padding:0 4px;border-bottom:.5px solid var(--line);text-align:left;gap:10px}
.pk-m b{flex:1;font-size:1.02rem}.pk-m small{color:var(--dim)}.pk-m i{font-style:normal;color:var(--dim);font-size:1.4rem}
.pk-more{display:block;width:100%;padding:16px 4px;text-align:left;color:var(--accent);font-weight:600}
.pk-none{padding:18px 4px}
.pk-bot{flex:none;padding-top:8px;background:var(--panel)}
.pk-bot .pickadd{position:static;margin:0 0 8px}
.pk-q{border-radius:999px;padding-left:18px;min-height:48px}
/* recovery card / tarjeta de recuperación */
.rec-top{display:flex;gap:12px;margin:8px 0 12px}.rec-top span{flex:1;background:var(--panel2);border-radius:14px;padding:12px;text-align:center}
.rec-top b{display:block;font-size:1.7rem;font-weight:800}.rec-top small{color:var(--dim)}
.rec-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rec-t{background:var(--panel2);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.rec-t b{font-size:.95rem}.rec-t small{color:var(--dim);font-size:.78rem}
.rec-t i{display:block;height:6px;border-radius:3px;background:var(--line);overflow:hidden}.rec-t u{display:block;height:100%;border-radius:3px;background:#34c759}
.rec-t.mid u{background:#ffcc00}.rec-t.low u{background:#ff453a}

/* strength score + recovered-workout card / puntaje de fuerza y tarjeta de recuperados */
.str-top{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.str-top b{font-size:3rem;font-weight:800;line-height:1}.str-top span{color:var(--accent);font-weight:700}
.str-l{display:flex;flex-direction:column;gap:10px;margin:12px 0}.str-l>div{display:grid;grid-template-columns:110px 1fr 76px;align-items:center;gap:8px;font-size:.88rem}
.str-l i{display:block;height:8px;border-radius:4px;background:var(--line);overflow:hidden}.str-l u{display:block;height:100%;background:var(--accent);border-radius:4px}.str-l small{color:var(--dim);text-align:right}
.rec-cta{display:flex;align-items:center;justify-content:space-between;gap:12px}.rec-cta b{display:block}.rec-cta small{color:var(--dim)}
/* floating pill tab bar on phones / barra inferior flotante tipo píldora */
@media(max-width:1099px){
  #tabbar{left:12px;right:12px;bottom:calc(8px + env(safe-area-inset-bottom));height:64px;padding:5px;border:.5px solid var(--line);border-radius:32px;box-shadow:0 8px 28px rgba(0,0,0,.35);gap:2px}
  #tabbar button{border-radius:26px;height:100%}
  #tabbar button.on{background:color-mix(in srgb,var(--accent) 16%,var(--panel2))}
  :root{--tab-h:72px}
}

/* sets, Fitbod style: big boxes, no − / + , no check button, no previous column / series al estilo Fitbod */
.srow{grid-template-columns:46px 1fr 1fr!important;gap:10px}
.srow .in{min-height:60px;font-size:1.6rem;font-weight:700;text-align:center;background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:0 8px;color:var(--text,#fff)}
.srow .in::placeholder{color:var(--dim);opacity:.55}
.srow .in:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent);background:var(--bg,#000)}
.srow.done .in,.srow .in.dn{background:color-mix(in srgb,var(--green) 18%,var(--panel2));border-color:color-mix(in srgb,var(--green) 55%,transparent);color:var(--green)}
.srow .sn{min-height:60px}
.srow.done .sn{color:var(--green)}
.srow.hd span:nth-child(2){display:block!important}
.srow.hd span{text-align:center}

/* always-there Rest button / botón Descanso siempre visible */
#restfab{position:fixed;right:16px;bottom:calc(var(--tab-h) + 22px + env(safe-area-inset-bottom));z-index:26;display:flex;align-items:center;gap:8px;height:52px;padding:0 18px;border-radius:26px;background:var(--panel);border:1.5px solid var(--accent);color:var(--accent);font-weight:800;font-size:1.05rem;box-shadow:0 6px 22px rgba(0,0,0,.35);font-variant-numeric:tabular-nums}
#restfab svg{width:22px;height:22px}
#restfab[hidden]{display:none}
@media(min-width:1100px){#restfab{bottom:24px}}

/* rest adjust: ±30 s and ±1 min on their own row / ajuste del descanso: ±30 s y ±1 min en su propia fila */
#restbar .rb-adj{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
#restbar .rb-adj .btn{min-height:46px;font-size:1.05rem;font-weight:700;min-width:0;padding:0}

/* share studio v2: big live preview / vista previa grande */
.cs-pvw{display:flex;justify-content:center;margin:6px 0 4px}
.cs-pvw canvas{display:block;height:min(38vh,320px);width:auto;max-width:100%;border-radius:16px;background:repeating-conic-gradient(#3a3a42 0 25%,#2b2b32 0 50%) 0 0/16px 16px;box-shadow:0 10px 30px rgba(0,0,0,.4)}

/* transparent = a small sticker, so size and position do not apply / transparente = sticker pequeño: tamaño y posición no aplican */
.cs .row{gap:8px}.cs .row .btn{flex:1;min-width:0;padding:0 8px}

/* Red ✕ delete button / Botón rojo ✕ para eliminar */
.xdel{position:absolute;top:6px;right:6px;z-index:3;width:24px;height:24px;border-radius:50%;background:#e5484d;color:#fff;font-size:.78rem;font-weight:800;line-height:1;display:flex;align-items:center;justify-content:center;border:0;padding:0;box-shadow:0 1px 4px rgba(0,0,0,.4);cursor:pointer}
.xdel::after{content:'';position:absolute;inset:-9px}
.xdel:active{background:#c93a3f}
.xdel.inl{position:relative;flex:none;width:30px;height:30px;font-size:.95rem}
.wkw{position:relative}.wkw+.wkw{border-top:.5px solid var(--line)}.wkw .wkrow{padding-right:40px}
.card.rt .xdel{top:5px;right:5px}.card.rt .rt-b{margin-top:16px}
.bde{position:relative;padding-right:40px}
.card.plan{position:relative}.card.plan .xdel{top:8px;right:8px}.card.plan .plh{padding-right:34px}
.pick-h .xdel.inl{margin-left:auto;margin-right:8px}

/* ---------- My plan screen / pantalla Mi plan ---------- */
.pv .pv-hero{position:relative;overflow:hidden;border-radius:22px;padding:18px 18px 16px;color:#fff;background:linear-gradient(135deg,var(--accent),#b5390a);box-shadow:0 10px 26px color-mix(in srgb,var(--accent) 38%,transparent);margin:6px 0 12px}
.pv .pv-hero::after{content:'';position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.12)}
.pv-k{font-size:.74rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;opacity:.9;position:relative}
.pv-big{font-size:1.45rem;font-weight:800;line-height:1.15;margin:4px 0 12px;position:relative}
.pv-week{display:flex;gap:8px;position:relative}
.pv-dot{flex:1;max-width:44px;height:34px;border-radius:12px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem;animation:pvPop .4s both;animation-delay:calc(var(--i)*60ms)}
.pv-dot.on{background:#fff;color:var(--accent)}
.pv-dot.nx{outline:2.5px solid #fff;outline-offset:2px}
.pv-wl{font-size:.82rem;font-weight:600;opacity:.95;margin:8px 0 12px;position:relative}
.pv-go{position:relative;width:100%;border:0;border-radius:16px;padding:14px;background:#fff;color:var(--accent);font-weight:800;font-size:1.02rem;box-shadow:0 4px 0 rgba(0,0,0,.22);transition:transform .12s,box-shadow .12s}
.pv-go:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.22)}
.pv-ph{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;font-size:.8rem;font-weight:600;position:relative}
.pv-ph button{border:0;border-radius:999px;padding:6px 12px;background:rgba(255,255,255,.22);color:#fff;font-weight:700;font-size:.78rem;white-space:nowrap}
.pv-ph .ic{width:14px;height:14px}
.pv-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.pv-tags span{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:var(--panel);font-size:.76rem;font-weight:600;color:var(--txt);box-shadow:var(--shadow)}
.pv-tags span.w{background:color-mix(in srgb,#e5484d 14%,var(--panel));color:#e5484d}
.pv-tags .ic{width:13px;height:13px;color:var(--accent)}
.pv .pv-dt{margin-top:8px}.pv .pv-dt summary{padding:11px 14px;font-size:.95rem}.pv .pv-dt .card{margin:0;box-shadow:none;background:transparent;padding:4px 2px}
.pv-days{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;margin:14px -16px 6px;padding:4px 16px 8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.pv-days::-webkit-scrollbar{display:none}
.pv-day{flex:none;scroll-snap-align:center;width:132px;text-align:left;border-radius:18px;padding:11px 12px;background:var(--panel2);border:2px solid var(--line);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;transition:transform .15s,border-color .15s}
.pv-day:active{transform:scale(.96)}
.pv-day.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.pv-dk{display:flex;align-items:center;justify-content:space-between;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.pv-dk em{font-style:normal;background:var(--accent);color:#fff;border-radius:999px;padding:2px 8px;font-size:.64rem}.pv-dk em.ok{background:#2fb36b}
.pv-day b{font-size:.95rem;line-height:1.2;min-height:2.3em;color:var(--txt)}
.pv-mini{display:flex}.pv-mini i{width:26px;height:26px;border-radius:50%;background:var(--panel2) center/cover;border:2px solid var(--panel);margin-left:-8px}.pv-mini i:first-child{margin-left:0}
.pv-dh{display:flex;align-items:center;justify-content:space-between;margin:12px 0 8px}
.pv-dn{font-size:1.2rem;font-weight:800;display:flex;align-items:center;gap:6px}
.pv-sub{font-size:.8rem;color:var(--dim);margin-top:2px}
.pv-ex{display:flex;align-items:center;gap:12px;padding:10px;margin:8px 0;border-radius:18px;background:var(--panel2);box-shadow:var(--shadow);cursor:pointer;animation:pvUp .4s both;animation-delay:calc(var(--i)*45ms);transition:transform .12s}
.pv-ex:active{transform:scale(.98)}
.pv-th{flex:none;width:84px;height:84px;border-radius:14px;background:var(--panel2) center/cover no-repeat}
.pv-no{display:flex;align-items:center;justify-content:center;color:var(--dim)}.pv-no .ic{width:28px;height:28px}
.pv-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.pv-b>b{font-size:1rem;line-height:1.2}
.pv-pills{display:flex;flex-wrap:wrap;gap:5px}
.pv-p{background:var(--accent);color:#fff;border-radius:999px;padding:3px 10px;font-size:.78rem;font-weight:800}
.pv-p2{background:var(--panel2);color:var(--dim);border-radius:999px;padding:3px 9px;font-size:.72rem;font-weight:600}
.pv-b .rz{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.74rem;color:var(--dim);line-height:1.3}
.pv-b .warnt{font-size:.74rem;color:#e5484d}
.pv-play{flex:none;width:34px;height:34px;border-radius:50%;border:0;background:var(--panel2);color:var(--accent);display:flex;align-items:center;justify-content:center;padding:0}
.pv-play .ic{width:20px;height:20px}
.pv-act{margin-top:14px}
.pv-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 4px}
.pv-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:84px;padding:10px 6px;border-radius:16px;background:var(--panel2);border:0;box-shadow:var(--shadow);color:var(--txt);font-size:.74rem;font-weight:700;line-height:1.15;text-align:center;transition:transform .12s}
.pv-tile:active{transform:scale(.95)}
.pv-tile .ic{width:24px;height:24px;color:var(--accent)}
@keyframes pvUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pvPop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.pv-ex,.pv-dot{animation:none}}

/* ---- v1.1.15: Mobility + Recovery redesign / rediseño de Movilidad y Recuperación ---- */
.mb-hero{position:relative;overflow:hidden}
.mb-hero::after{content:"";position:absolute;right:-50px;top:-50px;width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.12);pointer-events:none}
.mb-hero h2{position:relative}
.mb-stats{display:flex;gap:8px;margin:2px 0 14px;position:relative}
.mb-stats span{flex:1;background:rgba(255,255,255,.18);border-radius:14px;padding:8px 6px;text-align:center;font-size:.72rem;font-weight:600;color:rgba(255,255,255,.9)}
.mb-stats b{display:block;font-size:1.25rem;font-weight:800;color:#fff}
.mb-mini{margin:0 0 16px;position:relative}.mb-mini i{width:38px;height:38px;border-color:var(--accent2);margin-left:-10px;animation:pvPop .4s both}.mb-mini i.more{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.28);color:#fff;font-style:normal;font-weight:800;font-size:.75rem}
.mb-hero .pv-go{display:flex;align-items:center;justify-content:center;gap:8px}.mb-hero .pv-go .ic{width:22px;height:22px}
.mb-tiles .pv-tile{border:2px solid transparent;min-height:92px}.mb-tiles .pv-tile small{color:var(--dim);font-weight:500;font-size:.68rem}
.mb-tiles .pv-tile.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel))}
.mb-times{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mb-time{display:flex;flex-direction:column;align-items:center;gap:0;padding:12px 6px;border-radius:16px;border:2px solid transparent;background:var(--panel2);box-shadow:var(--shadow);color:var(--txt);transition:transform .12s}
.mb-time:active{transform:scale(.95)}.mb-time b{font-size:1.6rem;font-weight:800;line-height:1.1}.mb-time span{font-weight:700;font-size:.8rem}.mb-time small{color:var(--dim);font-size:.68rem;margin-top:2px}
.mb-time.on{background:var(--accent);color:#fff}.mb-time.on small{color:rgba(255,255,255,.85)}
.mb-n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-style:normal;font-size:.72rem;font-weight:800;margin-right:7px;vertical-align:1px}
.mb-ex .pv-th{width:72px;height:72px}
/* recovery */
.rv{margin:8px 0}
.rv-hero{display:flex;align-items:center;gap:16px;padding:18px;border-radius:24px;color:#fff;background:linear-gradient(150deg,var(--accent) 0%,var(--accent2) 100%);box-shadow:0 10px 28px -12px color-mix(in srgb,var(--accent) 70%,transparent);animation:pvUp .4s both}
.rv-ring{flex:none;position:relative;width:92px;height:92px;border-radius:50%;background:conic-gradient(#fff calc(var(--p)*1%),rgba(255,255,255,.28) 0);display:flex;align-items:center;justify-content:center}
.rv-ring::before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--accent2)}
.rv-ring b{position:relative;font-size:1.7rem;font-weight:800}.rv-ring small{font-size:.8rem;font-weight:700}
.rv-ht h3{margin:4px 0 6px;font-size:1.4rem;font-weight:800;color:#fff;text-transform:none;letter-spacing:-.02em;line-height:1.1}
.rv-ht p{margin:0;font-size:.85rem;color:rgba(255,255,255,.9);line-height:1.35}
.rv-leg{display:flex;justify-content:center;gap:14px;margin:12px 0 4px;font-size:.74rem;font-weight:700;color:var(--dim)}
.rv-leg span::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;background:#34c759}
.rv-leg .mid::before{background:#ffcc00}.rv-leg .low::before{background:#ff453a}
.rv-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.rv-t{--c:#34c759;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px;border-radius:18px;border:0;background:var(--panel2);box-shadow:var(--shadow);color:var(--txt);text-align:left;animation:pvUp .4s both;animation-delay:calc(var(--i)*45ms);transition:transform .12s}
.rv-t:active{transform:scale(.96)}.rv-t.mid{--c:#ffcc00}.rv-t.low{--c:#ff453a}
.rv-r{width:46px;height:46px;border-radius:50%;margin-bottom:4px;background:conic-gradient(var(--c) calc(var(--p)*1%),var(--line) 0);display:flex;align-items:center;justify-content:center;position:relative}
.rv-r::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--panel2)}
.rv-r em{position:relative;font-style:normal;font-size:.8rem;font-weight:800}
.rv-t.ok .rv-r em{color:var(--c);font-size:1.05rem}
.rv-t b{font-size:1rem}.rv-t small{color:var(--dim);font-size:.78rem}
.rv-hint{text-align:center;margin-top:10px}
@media (prefers-reduced-motion:reduce){.rv-hero,.rv-t,.mb-mini i{animation:none}}

/* training load / carga */
.ldc{--c:#34c759;border-left:5px solid var(--c);animation:pvUp .4s both}.ldc.high{--c:#ffcc00}.ldc.over{--c:#ff453a}.ldc.low{--c:#0a84ff}
.ld-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0}.ld-top b{font-size:.85rem;color:var(--dim);font-weight:700}
.ld-chip{background:var(--c);color:#111;font-weight:800;border-radius:999px;padding:5px 14px;font-size:.95rem}
.ld-msg{margin:6px 0 12px;line-height:1.4}
.ld-bars{display:flex;gap:10px;align-items:flex-end;height:112px;margin:4px 0 10px}
.ld-bars div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px}
.ld-bars u{width:100%;border-radius:8px 8px 3px 3px;background:var(--line);display:block}.ld-bars .now u{background:var(--c)}
.ld-bars small{font-weight:800;font-size:.8rem}.ld-bars em{font-style:normal;font-size:.68rem;color:var(--dim)}
.ld-why{margin:0 0 8px;padding-left:18px;font-size:.85rem;color:var(--dim);line-height:1.45}

/* slim pinned copy of the orange card / copia delgada fija de la tarjeta naranja */
#skbar{position:fixed;left:0;right:0;top:calc(env(safe-area-inset-top,0px) + var(--skt,0px) + 8px);z-index:19;pointer-events:none;opacity:0;transform:translateY(-14px);transition:opacity .2s,transform .2s}
#skbar.on{opacity:1;transform:none}
#skbar .skin{max-width:640px;margin:0 auto;padding:0 16px;display:flex;align-items:center;gap:12px;pointer-events:none}
#skbar.on .skin{pointer-events:auto}
#skbar .skin{background:linear-gradient(150deg,var(--accent) 0%,var(--accent2) 100%);color:#fff;border-radius:18px;padding:9px 10px 9px 16px;box-shadow:0 8px 24px -8px rgba(0,0,0,.55);width:calc(100% - 32px);max-width:608px}
.sk-t{flex:1;min-width:0;display:flex;flex-direction:column}.sk-t small{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.85}.sk-t b{font-size:1.02rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#skbar .btn.pri{flex:none;background:#fff;color:var(--accent2);min-height:40px;padding:0 16px;font-weight:800;border-radius:12px;white-space:nowrap}
@media (min-width:700px){#skbar .skin{max-width:868px}}

/* logo / logotipo (v1.1.18) */
.brand .bl{display:block;height:20px;width:auto;color:var(--txt)}
.brand::first-letter{color:inherit}
.wel-logo.wl{background:none;box-shadow:none;width:auto;height:auto;border-radius:0;display:flex;justify-content:center;margin:0 auto 14px;color:#fff;--blb:#fff}
.wel-logo.wl .bl{height:44px;width:auto;max-width:86vw}

.barln{margin:2px 0 4px}.menu button.on{color:var(--accent);font-weight:800}

/* guided mobility session / sesión de movilidad guiada */
.gd{display:flex;flex-direction:column;align-items:center;gap:12px;padding:6px 0 24px;text-align:center}
.gd-top{display:flex;align-items:center;gap:12px;width:100%}
.gd-prog{flex:1;display:flex;gap:3px}.gd-prog i{flex:1;height:5px;border-radius:3px;background:var(--line)}.gd-prog i.ok{background:var(--accent)}.gd-prog i.cur{background:var(--txt);opacity:.7}
.gd-cnt{font-size:.85rem;color:var(--dim);font-weight:700;min-width:38px;text-align:right}
.gd-name{margin:2px 0 0;font-size:1.4rem;line-height:1.2}
.gd-img{width:100%;max-width:300px;max-height:26vh;border-radius:18px;overflow:hidden;background:var(--panel2)}.gd-img img{width:100%;height:100%;object-fit:cover;display:block}
.gd-lbl{font-size:1.05rem;font-weight:700;color:var(--accent);min-height:1.4em}
.gd-ring{position:relative;width:190px;height:190px}
.gd-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.gd-ring circle{fill:none;stroke-width:10}.gd-ring .bg{stroke:var(--line)}.gd-ring .fg{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:534;transition:stroke-dashoffset .25s linear}
.gd-hold .gd-ring .fg,.gd-prep .gd-ring .fg{stroke:var(--accent)}.gd-swap .gd-ring .fg{stroke:var(--accent2,#ffcc00)}.gd-done .gd-ring .fg{stroke:#34c759}
.gd-num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:4.6rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.gd-num small{font-size:1rem;color:var(--dim);font-weight:600;margin-top:4px}
.gd-ok{color:#34c759}.gd-ok .ic{width:84px;height:84px;stroke-width:2.4}
.gd-ctl{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;margin-top:4px}
.gd-main{flex:1;max-width:260px;min-height:64px;border-radius:32px;background:var(--accent);color:#fff;font-weight:800;font-size:1.05rem;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 20px}
.gd-main .ic{width:26px;height:26px;flex:none}.gd-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gd-s{width:52px;height:52px;border-radius:26px;background:var(--panel2);display:flex;align-items:center;justify-content:center}.gd-s:disabled{opacity:.3}
.gd-how{width:100%;text-align:left;background:var(--panel);border-radius:16px;padding:12px 16px;margin-top:6px}
.gd-back{margin-bottom:10px}
.gd-exit{display:inline-flex;align-items:center;gap:2px;min-height:40px;padding:0 14px 0 8px;border-radius:20px;background:var(--panel2);font-weight:700;font-size:.92rem}
.gd-exit .ic{width:20px;height:20px}
.gd-fm{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;max-width:300px;min-height:48px;border-radius:24px;border:1.5px solid var(--line);font-weight:700;color:var(--txt)}.gd-fm .ic{width:20px;height:20px}
.gd-acts{display:flex;gap:10px;width:100%;max-width:340px}.gd-acts button{flex:1;min-height:46px;border-radius:23px;background:var(--panel2);font-weight:700;font-size:.92rem}
.gd{gap:10px;padding-bottom:110px}
.gd-img{max-height:19vh}
.gd-ring{width:158px;height:158px}.gd-num{font-size:3.8rem}.gd-ok .ic{width:64px;height:64px}
.gd-main{min-height:60px}

/* smoother motion: guided screens, countdown, new set rows / movimiento más suave */
@keyframes gdF{from{opacity:0;transform:translateX(44px)}to{opacity:1;transform:none}}
@keyframes gdB{from{opacity:0;transform:translateX(-44px)}to{opacity:1;transform:none}}
@keyframes gdX{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes gdUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes gdLbl{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes gdTk{0%{transform:scale(1.14)}100%{transform:scale(1)}}
@keyframes gdTk3{0%{transform:scale(1.32);color:var(--accent)}100%{transform:scale(1)}}
@keyframes gdPop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.15);opacity:1}100%{transform:scale(1)}}
@keyframes gdRing{from{stroke-dashoffset:534}to{stroke-dashoffset:0}}
@keyframes rowIn{from{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}
.gd-e-f{animation:gdF .38s var(--ease) both}.gd-e-b{animation:gdB .38s var(--ease) both}.gd-e-x{animation:gdX .35s var(--ease) both}
.gd-e-f>*,.gd-e-b>*,.gd-e-x>*{animation:gdUp .42s var(--ease) both}
.gd-e-f>:nth-child(2),.gd-e-b>:nth-child(2),.gd-e-x>:nth-child(2){animation-delay:.04s}
.gd-e-f>:nth-child(3),.gd-e-b>:nth-child(3),.gd-e-x>:nth-child(3){animation-delay:.08s}
.gd-e-f>:nth-child(4),.gd-e-b>:nth-child(4),.gd-e-x>:nth-child(4){animation-delay:.12s}
.gd-e-f>:nth-child(5),.gd-e-b>:nth-child(5),.gd-e-x>:nth-child(5){animation-delay:.16s}
.gd-e-f>:nth-child(n+6),.gd-e-b>:nth-child(n+6),.gd-e-x>:nth-child(n+6){animation-delay:.2s}
.gd-lbl{animation:gdLbl .3s var(--ease) both}
.gd-num span{display:inline-block}.gd-num .tk{animation:gdTk .22s var(--ease)}.gd-num .tk3{animation:gdTk3 .4s var(--ease)}
.gd-ok .ic{animation:gdPop .5s var(--ease) both}
.gd-done .gd-ring .fg{animation:gdRing .6s var(--ease) both}
.gd-main{transition:transform .15s var(--ease),background-color .25s,box-shadow .25s}.gd-main:active{transform:scale(.96)}
.gd-s,.gd-fm,.gd-acts button,.gd-exit{transition:transform .15s var(--ease),background-color .25s,opacity .25s}.gd-s:active,.gd-fm:active,.gd-acts button:active,.gd-exit:active{transform:scale(.95)}
.gd-prog i{transition:background-color .35s}.gd-prog i.ok{animation:gdPop .4s var(--ease) both}
.srow.rin{animation:rowIn .34s var(--ease) both}
@media (prefers-reduced-motion:reduce){.gd-e-f,.gd-e-b,.gd-e-x,.gd-e-f>*,.gd-e-b>*,.gd-e-x>*,.gd-lbl,.gd-num .tk,.gd-num .tk3,.gd-ok .ic,.gd-done .gd-ring .fg,.gd-prog i.ok,.srow.rin{animation:none}.gd-main,.gd-s,.gd-fm,.gd-acts button,.gd-exit,.gd-ring .fg{transition:none}}

/* share studio v2: big grid + action bar like Strava / estudio de compartir v2: cuadrícula grande y barra de acciones */
.cs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0 8px}
.cs-g{position:relative;border:0;background:none;padding:0;text-align:center;font-size:.8rem;font-weight:700;color:var(--dim);min-width:0}
.cs-g canvas{display:block;width:100%;height:auto;border-radius:18px;background:repeating-conic-gradient(#3a3a42 0 25%,#2b2b32 0 50%) 0 0/16px 16px;border:3px solid transparent;box-sizing:border-box;transition:border-color .15s,transform .15s}
.cs-g.on canvas{border-color:#fff}.cs-g.on{color:var(--txt)}
.cs-g:active canvas{transform:scale(.98)}
.cs-ck{position:absolute;top:12px;right:12px;width:26px;height:26px;border-radius:50%;background:#fff;color:#111;display:none;align-items:center;justify-content:center}
.cs-ck svg{width:16px;height:16px;stroke-width:3}.cs-g.on .cs-ck{display:flex}
.cs-g span{display:block;margin-top:6px}
.cs-bar{position:sticky;bottom:calc(-1 * (18px + env(safe-area-inset-bottom)));margin:0 -16px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}
.cs-acts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.cs-a{display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;color:var(--txt);font-size:.78rem;font-weight:600;padding:0}
.cs-ai{width:50px;height:50px;border-radius:50%;background:var(--card,#2a2a30);display:flex;align-items:center;justify-content:center}
.cs-ai svg{width:24px;height:24px}
.cs-a.ig .cs-ai{background:linear-gradient(45deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5);color:#fff}
.cs-opt{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:10px;background:none;border:0;color:var(--dim);font-size:.82rem;font-weight:600}
.cs-opt svg{width:16px;height:16px}
.cs-adv{max-height:42vh;overflow-y:auto;margin-bottom:10px}
.cs-ori{margin:6px 0 4px}.cs-g[hidden]{display:none}
