/* ═══════════════════════════════════════════════════════════════════════
   OneProtocol — 19-cliente
   Rediseño de las pestañas del cliente: Inicio, Plan, Progreso y Reporte,
   más la barra inferior. Se carga la última y solo toca esas pantallas.

   Tipografía: una sola familia (Inter) y una sola escala (tokens --cx-fs-*).
   Rótulo 10.5 · nota 12.5 · texto 13.5 · título 17 · pantalla 26 ·
   cifras 30/44. Antes convivían doce tamaños (7.5 a 42 px), Barlow,
   Barlow Condensed y Arial en los botones (los <button> no heredan fuente).

   Superficies: obsidiana con borde de luz y sombra profunda (--cx-surface,
   --cx-edge, --cx-shadow). Sin desenfoques en tarjetas: en iPhone son lo más
   caro de componer. Nada se anima fuera de la pantalla.

   Muchas reglas llevan !important porque el texto de estas pantallas trae
   estilos en línea desde el JS; aquí se fija el diseño sin tocar esa lógica.
═══════════════════════════════════════════════════════════════════════ */

/* ── 0. Base: una sola fuente, también en botones y campos ─────────────── */
.cx-screen, #scr-plan, #bnav{font-family:var(--font)}
.cx-screen :is(button,input,textarea,select),
#scr-plan :is(button,input,textarea,select),
#bnav :is(button,input,textarea,select){font-family:var(--font)}
.cx-screen [style*="Barlow"], #scr-plan [style*="Barlow"]{font-family:var(--font)!important}
.cx-screen, #scr-plan{font-variant-numeric:tabular-nums}

/* ── 1. Piso y encabezados ─────────────────────────────────────────────── */
.cx-screen, #scr-plan{
  background:
    radial-gradient(120% 46% at 50% -8%,rgba(var(--accent-rgb),.13),transparent 62%),
    radial-gradient(90% 40% at 100% 0%,rgba(var(--purple-rgb),.06),transparent 60%),
    var(--bg);
}
/* Un solo patrón: título grande a la izquierda, apoyo debajo, acciones a la derecha */
.cx-screen>.topbar, #scr-plan .plan-tb{
  min-height:calc(64px + var(--safe-t));
  padding:calc(var(--safe-t) + 12px) var(--gutter) 12px!important;
  gap:12px;align-items:center;
  background:linear-gradient(180deg,rgba(18,19,23,.96),rgba(18,19,23,.86))!important;
  border-bottom:1px solid rgba(255,255,255,.06)!important;
  box-shadow:0 10px 24px -18px rgba(0,0,0,.9)!important;
}
.cx-screen>.topbar::after, #scr-plan .plan-tb::after{display:none!important}
.cx-screen>.topbar .tb-wm,
#scr-plan .plan-tb>div:first-child>div:first-child{
  font-family:var(--font)!important;font-size:var(--cx-fs-screen)!important;font-weight:800!important;
  letter-spacing:-.6px!important;line-height:1.05!important;text-transform:none!important;
  color:var(--txt)!important;text-shadow:none!important;filter:none!important;
  background:none!important;-webkit-text-fill-color:currentColor!important;
}
.cx-screen>.topbar .tb-sub, .cx-screen>.topbar .rpx-tb-meta, #scr-plan #plan-ver-lbl{
  margin-top:4px!important;font-family:var(--font)!important;font-size:var(--cx-fs-note)!important;
  font-weight:500!important;letter-spacing:0!important;text-transform:none!important;color:var(--cx-sub)!important;
  display:flex;align-items:center;gap:6px;
}
.cx-screen>.topbar .rpx-tb-meta .iq-ic{width:13px;height:13px;color:var(--accent-text)}

/* Inicio: la marca del coach manda en el encabezado */
#scr-home>.topbar .tb-logo{
  width:40px!important;height:40px!important;border-radius:12px!important;padding:0;
  background:#0d0f13;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 6px 16px -6px rgba(0,0,0,.8);
  filter:none!important;object-fit:contain;
}
#scr-home>.topbar .tb-wm{font-size:var(--cx-fs-title)!important;letter-spacing:-.25px!important;line-height:1.2!important}
#scr-home>.topbar .tb-sub{margin-top:2px!important}
.cx-screen>.topbar .tb-r{gap:6px;flex:none}
#scr-home>.topbar>div:nth-child(2){min-width:0;flex:1}
.cx-screen>.topbar .ibtn{
  width:38px;height:38px;border-radius:12px;flex:none;
  background:var(--cx-inset)!important;border:0!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),inset 0 1px 0 rgba(255,255,255,.06)!important;
  color:#dfe7f2;
}
.cx-screen>.topbar .ibtn .iq-ic{width:18px;height:18px}
.cx-screen>.topbar .ibtn:active{background:var(--surface-press)!important}
.cx-screen>.topbar .dot-badge{top:6px!important;right:6px!important;width:9px!important;height:9px!important;min-width:0!important;padding:0!important;border:0!important;border-radius:50%!important;font-size:0!important;background:var(--accent)!important;box-shadow:0 0 0 2.5px #17191d,0 0 10px rgba(var(--accent-rgb),.8)!important}

/* ── 2. Rótulos de sección ─────────────────────────────────────────────── */
.cx-screen .sl, #scr-plan .sl{
  margin:26px 2px 12px!important;gap:8px;
  font-family:var(--font)!important;font-size:var(--cx-fs-label)!important;font-weight:700!important;
  letter-spacing:1.3px!important;text-transform:uppercase;color:var(--cx-label)!important;
}
.cx-screen .sl .iq-ic{width:14px;height:14px;color:var(--accent-text)}
.cx-screen .sl::after{background:linear-gradient(90deg,rgba(255,255,255,.1),transparent)!important;height:1px}

/* ── 3. Tarjetas ───────────────────────────────────────────────────────── */
.cx-screen .card, .cx-screen .sc, .cx-screen .hero, .cx-screen .pay-c, .cx-screen .bc-card,
.cx-screen .week-sum, .cx-screen .home-nav-card, .cx-screen .adh-overview, .cx-screen .prog-motiv,
.cx-screen .rpx-empty, .cx-screen .streak-badge{
  background:var(--cx-surface)!important;
  border:0!important;border-radius:var(--cx-radius)!important;
  box-shadow:var(--cx-edge),var(--cx-shadow)!important;
}
.cx-screen .card-bd{padding:16px!important}

/* Cifras: un peso, un espaciado, números tabulares */
.cx-screen :is(.sv,.dias-strip-num,.pay-count-num,.bc-val,.wsg-val,.hnc-live-val,.adh-ring-value,.adh-stat strong){
  font-family:var(--font)!important;font-weight:800!important;letter-spacing:var(--cx-track-num)!important;
  font-variant-numeric:tabular-nums;line-height:1!important;
}
/* Rótulos dentro de tarjetas */
.cx-screen :is(.su,.dias-strip-lbl,.pay-count-unit,.wsg-lbl,.hnc-live-lbl,.adh-stat span,.foto-carril-lbl,.bc-label,.adh-coverage-head span){
  font-family:var(--font)!important;font-size:var(--cx-fs-label)!important;font-weight:700!important;
  letter-spacing:1px!important;text-transform:uppercase!important;color:var(--cx-label)!important;
}

/* ── 4. Inicio: hero ───────────────────────────────────────────────────── */
#scr-home .scroll{padding-top:16px}
#scr-home .hero{
  position:relative;overflow:hidden;padding:20px 18px 18px!important;margin-bottom:12px!important;
  background:
    radial-gradient(90% 80% at 100% 0%,rgba(var(--accent-rgb),.22),transparent 58%),
    radial-gradient(70% 60% at 0% 100%,rgba(var(--purple-rgb),.1),transparent 60%),
    var(--cx-surface-hi)!important;
  border-radius:28px!important;
}
#scr-home .hero::before{display:none!important}
#scr-home .hero::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent)!important;opacity:.6}
#scr-home .hero-main{gap:16px;align-items:center}
#scr-home .av.av-xl{
  width:76px!important;height:76px!important;font-size:28px!important;font-weight:800!important;letter-spacing:-.5px;
  color:#fff!important;
  background:linear-gradient(150deg,rgba(var(--accent-rgb),.55),rgba(var(--purple-rgb),.35))!important;
  border:0!important;
  box-shadow:0 0 0 3px #1b1e24,0 0 0 4.5px rgba(var(--accent-rgb),.55),0 14px 30px -10px rgba(var(--accent-rgb),.55)!important;
}
#scr-home .op-avatar-camera{width:26px;height:26px;right:-2px;bottom:-2px;border:3px solid #1b1e24;background:var(--accent)}
#scr-home .hero-name{font-size:26px!important;font-weight:800!important;letter-spacing:-.6px!important;line-height:1.08!important}
#scr-home .hero-name>span:first-child{
  font-family:var(--font)!important;font-size:var(--cx-fs-note)!important;font-weight:600!important;
  letter-spacing:0!important;text-transform:none!important;color:var(--cx-sub)!important;margin-bottom:3px!important;
}
#scr-home .hero-goal{
  display:inline-flex!important;align-items:center;gap:6px;margin-top:9px!important;padding:5px 10px 5px 9px;
  border-radius:var(--radius-pill);background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent-brd);
  font-size:11.5px!important;font-weight:700!important;letter-spacing:.1px!important;text-transform:none!important;
  color:var(--accent-text)!important;
}
#scr-home .hero-goal::before{width:6px;height:6px;border-radius:50%;background:var(--accent-text)!important;box-shadow:0 0 8px rgba(var(--accent-rgb),.8)!important}
#scr-home .hero-meta{margin-top:8px!important;font-size:var(--cx-fs-note)!important;font-weight:500;color:var(--cx-sub)!important}
#scr-home .dias-strip{
  margin-top:18px!important;border-radius:18px!important;background:rgba(0,0,0,.26)!important;
  border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)!important;
}
#scr-home .dias-strip-left{padding:15px 10px!important;border-right:1px solid rgba(255,255,255,.06)!important;gap:7px!important}
#scr-home .dias-strip-num{
  font-size:38px!important;color:transparent!important;text-shadow:none!important;
  background:linear-gradient(180deg,#fff 10%,rgba(var(--accent-rgb),.95));-webkit-background-clip:text;background-clip:text;
}
#scr-home .dias-strip-lbl{white-space:nowrap}
#scr-home .dias-strip-right{padding:14px 16px!important;gap:5px}
#scr-home .dias-week-row strong{font-size:var(--cx-fs-title)!important;font-weight:800!important;letter-spacing:-.3px;color:#fff!important}
#scr-home .dias-week-row span{font-size:var(--cx-fs-text)!important;font-weight:500!important;color:var(--cx-sub)!important}
#scr-home .dias-start{margin-top:4px!important;font-size:var(--cx-fs-note)!important;font-weight:500!important;color:var(--cx-label)!important}

/* ── 5. Inicio: membresía ──────────────────────────────────────────────── */
#scr-home #pay-bar{margin-bottom:12px}
#scr-home .pay-c{padding:16px!important;overflow:hidden;position:relative}
#scr-home .pay-c.on{background:radial-gradient(80% 90% at 0% 0%,rgba(46,171,101,.16),transparent 60%),var(--cx-surface)!important}
#scr-home .pay-inner{gap:12px!important;align-items:center}
#scr-home .pay-dot-wrap{
  width:42px!important;height:42px!important;border-radius:14px!important;flex:none;
  background:rgba(46,171,101,.14)!important;border:0!important;box-shadow:inset 0 0 0 1px rgba(79,203,133,.3)!important;color:var(--green-text)!important;
}
#scr-home .pay-title{font-family:var(--font)!important;font-size:var(--cx-fs-title)!important;font-weight:800!important;letter-spacing:-.2px!important;text-transform:none!important;color:#fff!important}
#scr-home .pay-sub{font-size:var(--cx-fs-note)!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;color:var(--cx-sub)!important;margin-top:2px}
#scr-home .pay-badge{
  text-transform:none!important;padding:6px 11px!important;border-radius:var(--radius-pill)!important;border:0!important;
  font-size:12px!important;font-weight:800!important;letter-spacing:.2px!important;
  background:rgba(46,171,101,.14)!important;box-shadow:inset 0 0 0 1px rgba(79,203,133,.32);color:var(--green-text)!important;
}
#scr-home .pay-countdown{
  margin-top:14px!important;padding:14px 16px!important;border-radius:16px!important;
  background:rgba(0,0,0,.24)!important;border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)!important;
  align-items:center!important;gap:10px!important;
}
#scr-home .pay-count-num{font-size:var(--cx-fs-hero)!important;color:var(--green-text)!important;text-shadow:none!important}
#scr-home .pay-count-unit{max-width:70px;line-height:1.25!important}
#scr-home .pay-count-date span{font-size:var(--cx-fs-label)!important;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--cx-label)!important}
#scr-home .pay-count-date b{font-size:var(--cx-fs-title)!important;font-weight:800!important;letter-spacing:-.2px;color:#fff!important}
#scr-home .pay-exp-bar{height:5px!important;margin-top:14px!important;border-radius:99px!important;background:rgba(255,255,255,.07)!important}
#scr-home .pay-exp-fill{border-radius:99px!important;background:linear-gradient(90deg,#2eab65,#5fe0a0)!important;box-shadow:0 0 12px rgba(79,203,133,.45)}

/* ── 6. Inicio: estado del plan ────────────────────────────────────────── */
#scr-home .sg.c2{gap:12px!important;margin-bottom:12px!important}
#scr-home .sc{
  display:flex!important;flex-wrap:wrap;align-items:baseline;align-content:flex-start;
  padding:16px 16px 15px!important;min-height:118px;text-align:left!important;
}
#scr-home .sc>*{flex-basis:100%}
#scr-home .sc>.sv{flex-basis:auto;font-size:var(--cx-fs-num)!important;color:#fff!important;margin-top:10px}
#scr-home .sc>.sv+.su{flex-basis:auto;margin:0 0 0 5px!important;text-transform:none!important;letter-spacing:0!important;font-size:var(--cx-fs-text)!important;font-weight:600!important}
#scr-home .sc>.su:first-child{margin:0!important}
#scr-home .sc.g{background:radial-gradient(100% 90% at 100% 0%,rgba(var(--accent-rgb),.2),transparent 62%),var(--cx-surface-hi)!important}
#scr-home .sc.g>.sv{font-size:36px!important}
#scr-home #st-peso-delta, #scr-home #st-peso-delta span{font-size:var(--cx-fs-note)!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important}
#scr-home #st-peso-delta{margin-top:8px!important}
#scr-home #st-racha{margin-top:10px!important}
#scr-home #st-racha>span{
  padding:5px 10px!important;border-radius:var(--radius-pill)!important;
  font-size:11px!important;font-weight:700!important;letter-spacing:.2px!important;text-transform:none!important;
}
#scr-home #st-meta-delta, #scr-home #st-meta-delta span{margin-top:8px!important;font-size:var(--cx-fs-note)!important;font-weight:600!important;letter-spacing:0!important;color:var(--cx-sub)!important}
#scr-home #st-sem, #scr-home #st-cp{font-size:var(--cx-fs-num)!important}
#scr-home #st-cp{color:var(--accent-text)!important}
#scr-home .sc>.su:last-child{margin-top:6px!important}
#scr-home .sg.c2:has(#st-sem) .sc{min-height:0;padding-bottom:18px!important}
#scr-home .st-adh-card{display:block!important;min-height:0}
#scr-home .st-adh-row{margin-top:10px;gap:14px;align-items:center}
#scr-home #st-adh{font-size:var(--cx-fs-num)!important;color:#fff!important}
#scr-home .st-adh-dots{gap:6px!important;flex:1}
#scr-home .st-adh-dot{flex:1;height:30px!important;width:auto!important;border-radius:9px!important;background:rgba(255,255,255,.05)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
#scr-home .st-adh-dot::before,#scr-home .st-adh-dot::after{display:none!important}
#scr-home .st-adh-dot.done{background:linear-gradient(180deg,#45d68c,#2eab65)!important;box-shadow:0 6px 14px -6px rgba(46,171,101,.7)}
#scr-home .st-adh-dot.part{background:linear-gradient(180deg,#f5b041,#d9870a)!important;box-shadow:0 6px 14px -6px rgba(232,150,12,.6)}
#scr-home .st-adh-dot.miss{background:rgba(221,68,68,.22)!important;box-shadow:inset 0 0 0 1px rgba(255,122,122,.35)}

/* ── 7. Inicio: adherencia de la semana ───────────────────────────────── */
#scr-home .adh-g{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:6px!important}
#scr-home .adh-d{
  min-width:0!important;width:auto!important;border-radius:14px!important;padding:9px 0 8px!important;border:0!important;
  background:rgba(255,255,255,.035)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)!important;
  font-size:var(--cx-fs-label)!important;font-weight:700;color:var(--cx-label)!important;gap:3px;
}
#scr-home .adh-d .adh-n{font-size:16px!important;font-weight:800!important;letter-spacing:-.3px;color:#fff}
#scr-home .adh-d.done{background:linear-gradient(180deg,rgba(69,214,140,.3),rgba(46,171,101,.14))!important;box-shadow:inset 0 0 0 1px rgba(79,203,133,.45)!important;color:var(--green-text)!important}
#scr-home .adh-d.part{background:linear-gradient(180deg,rgba(245,176,65,.28),rgba(232,150,12,.12))!important;box-shadow:inset 0 0 0 1px rgba(245,176,65,.42)!important;color:var(--amber-text)!important}
#scr-home .adh-d.miss{background:rgba(221,68,68,.12)!important;box-shadow:inset 0 0 0 1px rgba(255,122,122,.3)!important;color:var(--red-text)!important}
#scr-home .adh-d.future{opacity:.45}
#scr-home .adh-d.future .adh-n{color:var(--cx-label)}
#scr-home .rowb.mt6 .fxs{font-size:11.5px!important;font-weight:600!important}
#scr-home #adh-pct{font-size:var(--cx-fs-text)!important;font-weight:800!important;letter-spacing:-.1px}
#scr-home #adh-30-btn{
  min-height:40px;border-radius:12px!important;border:0!important;
  background:var(--cx-inset)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)!important;
  font-size:var(--cx-fs-note)!important;font-weight:700!important;letter-spacing:0!important;text-transform:none!important;color:#dfe7f2!important;
}
#scr-home .streak-badge{margin-top:12px;padding:12px 14px!important;background:rgba(0,0,0,.2)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)!important}

/* ── 8. Inicio: resumen semanal ───────────────────────────────────────── */
#scr-home .week-sum{padding:18px!important}
#scr-home .week-sum-title{font-size:var(--cx-fs-title)!important;font-weight:800!important;letter-spacing:-.2px!important;text-transform:none!important;color:#fff!important}
#scr-home .week-sum-badge{padding:5px 10px!important;border-radius:var(--radius-pill)!important;font-size:11px!important;font-weight:700!important;letter-spacing:.1px!important;text-transform:none!important;background:var(--accent-bg)!important;color:var(--accent-text)!important;border:0!important}
#scr-home .week-sum-grid{gap:8px!important;margin-top:14px!important}
#scr-home .wsg-item{padding:14px 8px!important;border-radius:16px!important;background:rgba(0,0,0,.22)!important;border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)!important}
#scr-home .wsg-val{font-size:22px!important}
#scr-home .wsg-lbl{margin-top:6px!important}
#scr-home .week-sum-msg{margin-top:12px!important;padding:12px 14px!important;border-radius:16px!important;background:rgba(var(--accent-rgb),.08)!important;border:0!important;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.18)}
#scr-home .week-sum-txt{font-size:var(--cx-fs-text)!important;line-height:1.5!important;color:var(--cx-sub)!important}

/* ── 9. Inicio: accesos ───────────────────────────────────────────────── */
#scr-home .home-nav-card{padding:14px 14px!important;margin-bottom:10px!important;gap:14px!important;align-items:center}
#scr-home .home-nav-card::before, #scr-home .home-nav-card::after{display:none!important}
#scr-home .hnc-icon{
  width:46px!important;height:46px!important;border-radius:15px!important;border:0!important;
  background:linear-gradient(150deg,rgba(var(--accent-rgb),.26),rgba(var(--purple-rgb),.14))!important;
  box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.32)!important;color:var(--accent-text)!important;
}
#scr-home .hnc-icon .iq-ic{width:21px;height:21px;color:var(--accent-text)!important;filter:none!important}
#scr-home .hnc-title{font-size:15.5px!important;font-weight:800!important;letter-spacing:-.2px!important;text-transform:none!important;color:#fff!important}
#scr-home .hnc-body{min-width:0;flex:1}
#scr-home .hnc-sub{margin-top:3px!important;font-size:var(--cx-fs-note)!important;color:var(--cx-label)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#scr-home .hnc-live{text-align:right}
#scr-home .hnc-live{flex:none}
#scr-home .hnc-live-val{font-size:19px!important;color:#fff!important;white-space:nowrap}
#scr-home .hnc-live-lbl{margin-top:4px!important;font-size:10px!important}
#scr-home .hnc-arr{
  width:28px;height:28px;display:grid;place-items:center;flex:none;border-radius:50%;
  font-family:var(--font)!important;font-size:18px!important;font-weight:500!important;line-height:1!important;color:#cfd8e4!important;
  background:rgba(255,255,255,.05);
}

/* ── 10. Inicio: logros y checkpoint (estilos en línea del JS) ─────────── */
#scr-home #logros-home-wrap>div.fu:not(.sl){
  background:var(--cx-surface)!important;border:0!important;border-radius:var(--cx-radius)!important;
  box-shadow:var(--cx-edge),var(--cx-shadow)!important;
}
#scr-home #logros-home-wrap>button{
  min-height:40px;border-radius:12px!important;font-family:var(--font)!important;
  font-size:var(--cx-fs-note)!important;font-weight:700!important;letter-spacing:0!important;text-transform:none!important;
}
#scr-home .scroll>div.fu:has(#cp-name){
  background:radial-gradient(90% 100% at 100% 0%,rgba(var(--accent-rgb),.16),transparent 60%),var(--cx-surface)!important;
  border:0!important;border-radius:var(--cx-radius)!important;box-shadow:var(--cx-edge),var(--cx-shadow)!important;padding:18px!important;
}
#scr-home .scroll>div.fu:has(#cp-name)>div:first-child{display:none}
#scr-home #cp-name{font-size:var(--cx-fs-title)!important;font-weight:800!important;letter-spacing:-.2px!important;text-transform:none!important}
#scr-home #cp-desc{font-size:var(--cx-fs-note)!important;color:var(--cx-sub)!important;margin-top:4px!important}
#scr-home .scroll>div.fu:has(#cp-name) .badge{padding:5px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;letter-spacing:.1px;text-transform:none;background:var(--accent-bg);color:var(--accent-text);border:0}
#scr-home .scroll>div.fu:has(#cp-name) .pgl{font-size:var(--cx-fs-note)!important;font-weight:600}
#scr-home .scroll>div.fu:has(#cp-name) .pgl span{color:var(--accent-text)!important}
#scr-home .scroll>div.fu:has(#cp-name) .pgt{height:6px!important;border-radius:99px;background:rgba(255,255,255,.07)}
#scr-home .scroll>div.fu:has(#cp-name) .pgf{background:var(--grad-brand)!important;border-radius:99px;box-shadow:0 0 12px rgba(var(--accent-rgb),.5)}

/* Nutrición (08f-macros.js) */
#scr-home .macros-card{
  background:radial-gradient(90% 70% at 100% 0%,rgba(var(--accent-rgb),.16),transparent 60%),var(--cx-surface)!important;
  border:0!important;border-radius:var(--cx-radius)!important;box-shadow:var(--cx-edge),var(--cx-shadow)!important;
}
#scr-home .macros-card :is(.mcrd-kcal-num,.mcrd-leg-val,.mcrd-proto-pct){font-family:var(--font)!important;font-weight:800!important;letter-spacing:var(--cx-track-num)!important}
#scr-home .macros-card .mcrd-kcal-num{font-size:40px!important}
#scr-home .macros-card .mcrd-leg-val{font-size:19px!important}
#scr-home .macros-card :is(.mcrd-kcal-lbl,.mcrd-leg-lbl,.mcrd-proto-label){font-size:var(--cx-fs-label)!important;font-weight:700!important;letter-spacing:1px!important;text-transform:uppercase}
#scr-home .macros-card :is(.mcrd-leg-pct,.mcrd-proto-est){font-size:10.5px!important;font-weight:700!important;letter-spacing:.2px!important;text-transform:none!important}
#scr-home .macros-card .mcrd-leg-row{border-radius:14px!important}

/* Fotos de punto de partida: misma familia que el resto */
.cx-screen .fcta-titulo, .cx-screen .fh-titulo{font-family:var(--font)!important;font-size:var(--cx-fs-title)!important;font-weight:800!important;letter-spacing:-.25px!important;text-transform:none!important;line-height:1.2!important}
.cx-screen .fcta-ir, .cx-screen .fcta-reveal b, .cx-screen .fh-cta{font-family:var(--font)!important;letter-spacing:.2px!important}
.cx-screen .fcta-ir{text-transform:none!important;font-size:var(--cx-fs-text)!important;font-weight:800!important}
.cx-screen .fotos-cta, .cx-screen .fotos-hero{border-radius:var(--cx-radius)!important}
.cx-screen .fcta-copy b, .cx-screen .fcta-copy strong, .cx-screen .fh-txt b, .cx-screen .fh-txt strong{
  font-family:var(--font)!important;font-size:var(--cx-fs-title)!important;font-weight:800!important;letter-spacing:-.2px!important;text-transform:none!important;
}
.cx-screen .fcta-copy small, .cx-screen .fh-txt small, .cx-screen .fcta-copy span, .cx-screen .fh-txt span{font-family:var(--font)!important;letter-spacing:.9px}
.cx-screen .fcta-texto{font-size:var(--cx-fs-text)!important;line-height:1.55!important;color:var(--cx-sub)!important}
.cx-screen .fcta-priv, .cx-screen .fh-pie{font-size:11.5px!important;font-weight:600!important;color:var(--cx-label)!important}

/* ── 11. Progreso ─────────────────────────────────────────────────────── */
#scr-prog .scroll{padding-top:14px}
#scr-prog .prog-fab{
  padding:0 20px 0 16px!important;min-height:52px;border-radius:var(--radius-pill)!important;gap:9px!important;
  background:var(--grad-cta)!important;box-shadow:var(--shadow-cta),0 18px 34px -16px rgba(0,0,0,.9)!important;border:0!important;
  font-size:15px!important;font-weight:800!important;letter-spacing:-.1px!important;text-transform:none!important;color:#fff!important;
}
#scr-prog .prog-motiv{padding:16px!important;gap:14px!important;align-items:center}
#scr-prog .prog-motiv-emoji{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;flex:none;background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent-brd)}
#scr-prog .prog-motiv-emoji .iq-ic{width:22px!important;height:22px!important}
#scr-prog .prog-motiv-title{font-size:var(--cx-fs-title)!important;font-weight:800!important;letter-spacing:-.2px!important}
#scr-prog .prog-motiv-sub{margin-top:3px;font-family:var(--font)!important;font-size:var(--cx-fs-note)!important;font-weight:500!important;color:var(--cx-sub)!important}
/* Gráfica de peso: la tarjeta se ordena, el lienzo no se toca (CHARTS_SYSTEM.md) */
#scr-prog .card .sg.c3{gap:8px!important;margin-top:14px!important}
#scr-prog .card .sg.c3 .sc{
  padding:13px 8px 11px!important;border-radius:16px!important;min-height:0;
  background:rgba(0,0,0,.24)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)!important;
}
#scr-prog .card .sg.c3 .sc.g{background:rgba(var(--accent-rgb),.12)!important;box-shadow:inset 0 0 0 1px var(--accent-brd)!important}
#scr-prog #ch-s, #scr-prog #ch-d, #scr-prog #ch-c{
  font-family:var(--font)!important;font-size:21px!important;font-weight:800!important;letter-spacing:-.6px!important;color:#fff!important;
}
#scr-prog #ch-c{color:var(--accent-text)!important}
#scr-prog .card .sg.c3 .su{margin-top:5px}
/* Composición corporal */
#scr-prog .bc-grid{gap:12px!important}
#scr-prog .bc-card{padding:16px!important;min-height:0}
#scr-prog .bc-label{gap:7px!important;align-items:center;letter-spacing:.9px!important}
#scr-prog .bc-label .iq-ic{width:15px!important;height:15px!important;color:var(--accent-text)!important}
#scr-prog .bc-val{font-size:34px!important;margin-top:14px!important}
/* Sin medición: texto normal, sin unidad suelta y tarjeta más baja */
#scr-prog .bc-val>span[style*="opacity"]{font-size:var(--cx-fs-text)!important;font-weight:600!important;letter-spacing:0!important;opacity:1!important;color:var(--cx-label)}
#scr-prog .bc-reading:has(.bc-val>span[style*="opacity"]) .bc-unit, #scr-prog .bc-card:has(.bc-val>span[style*="opacity"])>.bc-unit{display:none!important}
#scr-prog .bc-card:has(.bc-val>span[style*="opacity"]) .bc-val{margin-top:16px!important}
#scr-prog .bc-unit{font-family:var(--font)!important;font-size:var(--cx-fs-text)!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;color:var(--cx-sub)!important}
#scr-prog .bc-tag{
  margin-top:12px!important;padding:5px 10px!important;border-radius:var(--radius-pill)!important;border:0!important;
  font-size:11px!important;font-weight:700!important;letter-spacing:.2px!important;text-transform:none!important;
}
#scr-prog .bc-source{margin-top:10px!important;font-size:var(--cx-fs-note)!important;font-weight:500!important;color:var(--cx-label)!important}
#scr-prog .bc-fat-options{border-radius:12px!important;padding:3px!important;background:rgba(0,0,0,.3)!important;border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
#scr-prog .bc-fat-options button{min-height:32px;border-radius:9px!important;font-size:var(--cx-fs-note)!important;font-weight:700!important}
/* Adherencia acumulada */
#scr-prog .adh-overview{padding:18px!important}
#scr-prog .adh-overview-title{font-size:var(--cx-fs-title)!important;letter-spacing:-.2px}
#scr-prog .adh-overview-context{font-size:var(--cx-fs-note)!important;line-height:1.5!important;color:var(--cx-sub)!important}
#scr-prog .adh-coverage-head strong{font-size:var(--cx-fs-note)!important;font-weight:700!important}
#scr-prog .adh-stat strong{font-size:20px!important}
#scr-prog .adh-stat span{font-size:9.5px!important;letter-spacing:.5px!important;margin-top:6px!important}
#scr-prog .adh-method{font-size:11.5px!important;line-height:1.5!important;color:var(--cx-label)!important}
/* Registros de peso */
#scr-prog .wlog-item{border-radius:14px!important}
#scr-prog #prog-log-count{font-size:11px!important;font-weight:600!important;letter-spacing:.3px!important;color:var(--cx-label)!important}
#scr-prog .sl-chev{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.05);border:0;color:#cfd8e4}

/* ── 12. Reporte ──────────────────────────────────────────────────────── */
#scr-reporte .scroll{padding-top:14px}
#scr-reporte .rpx-empty{padding:34px 22px 30px!important;text-align:center;background:radial-gradient(120% 70% at 50% 0%,rgba(var(--accent-rgb),.14),transparent 62%),var(--cx-surface)!important}
#scr-reporte .rpx-empty.is-compact{background:var(--cx-surface)!important}
#scr-reporte .rpx-empty-ic{
  width:64px!important;height:64px!important;border-radius:20px!important;margin:0 auto 18px!important;border:0!important;
  background:linear-gradient(150deg,rgba(var(--accent-rgb),.3),rgba(var(--purple-rgb),.16))!important;
  box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.38),0 16px 34px -14px rgba(var(--accent-rgb),.6)!important;
}
#scr-reporte .rpx-empty-ic .iq-ic{width:28px!important;height:28px!important;color:#cfe4ff!important}
#scr-reporte .rpx-empty-title{font-size:22px!important;font-weight:800!important;letter-spacing:-.4px!important}
#scr-reporte .rpx-empty-sub{margin-top:8px!important;font-size:var(--cx-fs-text)!important;line-height:1.6!important;color:var(--cx-sub)!important}
#scr-reporte .rpx-empty-sub b{color:var(--accent-text)!important}
.cx-screen .cx-chip{
  padding:7px 13px!important;border-radius:var(--radius-pill)!important;
  font-size:11.5px!important;font-weight:700!important;letter-spacing:.2px!important;text-transform:none!important;
}

/* ── 13. Plan ─────────────────────────────────────────────────────────── */
#scr-plan .plan-logbook-btn{
  min-height:46px;padding:5px 14px 5px 6px!important;gap:10px!important;border-radius:16px!important;border:0!important;
  background:var(--cx-inset)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.09),inset 0 1px 0 rgba(255,255,255,.06)!important;
}
#scr-plan .plan-logbook-btn::after{display:none!important}
#scr-plan .plan-logbook-icon{width:34px!important;height:34px!important;border-radius:11px!important;background:var(--accent-bg)!important;box-shadow:inset 0 0 0 1px var(--accent-brd)!important;color:var(--accent-text)!important}
#scr-plan .plan-logbook-copy strong{font-size:var(--cx-fs-text)!important;font-weight:800!important;letter-spacing:-.1px!important;text-transform:none!important;color:#fff!important}
#scr-plan .plan-logbook-copy small{font-size:11px!important;font-weight:600!important;color:var(--accent-text)!important}
/* Control segmentado */
#scr-plan .plnx-tabs{
  margin:14px var(--gutter) 4px!important;padding:4px!important;border-radius:16px!important;border:0!important;
  background:rgba(0,0,0,.3)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)!important;
}
#scr-plan .plnx-tab{min-height:42px;border-radius:12px!important;font-size:var(--cx-fs-text)!important;font-weight:700!important;letter-spacing:-.1px!important;text-transform:none!important;color:var(--cx-label)!important}
#scr-plan .plnx-tab.is-on{
  color:#fff!important;background:var(--cx-surface-hi)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 6px 14px -6px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.07)!important;
}
#scr-plan .plnx-tab.is-on .iq-ic{color:var(--accent-text)}
/* Tarjeta de la rutina */
#scr-plan .rn-entry{border-radius:28px!important}
#scr-plan .rn-entry h2{
  font-family:var(--font)!important;font-size:24px!important;font-weight:800!important;letter-spacing:-.5px!important;
  line-height:1.12!important;text-transform:none!important;
}
#scr-plan .rn-kicker{font-size:var(--cx-fs-label)!important;font-weight:700!important;letter-spacing:1.3px!important}
#scr-plan .rn-stats b{font-family:var(--font)!important;font-size:21px!important;font-weight:800!important;letter-spacing:-.6px!important}
#scr-plan .rn-stats small{font-size:11px!important;font-weight:600!important;letter-spacing:0!important;color:var(--cx-sub)!important}
#scr-plan .rn-entry-cta *{font-family:var(--font)!important}
#scr-plan .rn-entry-cta-copy b, #scr-plan .rn-entry-cta-copy strong{font-size:21px!important;font-weight:800!important;letter-spacing:-.4px!important;text-transform:none!important}
#scr-plan .rn-entry-cta-copy small, #scr-plan .rn-entry-cta-copy em{font-size:var(--cx-fs-note)!important;font-weight:700!important;letter-spacing:.2px!important;text-transform:none!important}
#scr-plan .rn-entry-seal{font-size:10px!important;font-weight:700!important;letter-spacing:1.1px!important}
/* Firma del plan y chat */
#scr-plan #plan-signature{background:linear-gradient(180deg,rgba(18,19,23,.9),rgba(18,19,23,.98))!important;border-top:1px solid rgba(255,255,255,.06)!important}
#scr-plan .plan-sig-ic{width:42px!important;height:42px!important;border-radius:14px!important;background:var(--cx-inset)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)!important;border:0!important}
#scr-plan .plan-sig-name{font-size:15px!important;font-weight:800!important;letter-spacing:-.2px!important}
#scr-plan .plan-sig-meta, #scr-plan .plan-sig-meta span{font-size:var(--cx-fs-note)!important;color:var(--cx-label)!important}
#scr-plan .pchat-fab{border-radius:18px!important;background:var(--grad-cta)!important;box-shadow:var(--shadow-cta)!important;border:0!important}

/* ── 14. Barra inferior ───────────────────────────────────────────────── */
#bnav{
  background:linear-gradient(180deg,rgba(20,21,25,.86),rgba(15,16,19,.96))!important;
  border-top:1px solid rgba(255,255,255,.07)!important;
  box-shadow:0 -14px 34px -18px rgba(0,0,0,.9)!important;
}
#bnav .ni-ic{width:56px!important;height:30px!important;border-radius:var(--radius-pill)!important;color:#8e98a6}
#bnav .ni-ic .iq-ic{width:21px;height:21px}
#bnav .ni-lb{margin-top:3px;font-family:var(--font)!important;font-size:11px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;color:#8e98a6!important}
#bnav .ni.on .ni-ic{
  color:#fff!important;
  background:linear-gradient(150deg,rgba(var(--accent-rgb),.42),rgba(var(--purple-rgb),.26))!important;
  box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.5),0 6px 16px -6px rgba(var(--accent-rgb),.7)!important;
}
#bnav .ni.on .ni-lb{color:#fff!important;font-weight:700!important}

/* Selector de % grasa: estado activo con el acento del coach */
#scr-prog .bc-card .bc-fat-options button{color:var(--cx-label)!important;background:transparent!important;transition:background .2s,color .2s}
#scr-prog .bc-card .bc-fat-options button[aria-pressed="true"]{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,#fff),var(--accent))!important;color:#fff!important;box-shadow:0 4px 12px -4px color-mix(in srgb,var(--accent) 70%,transparent)}

/* ── 15. Llamadas a la acción (segunda pasada) ───────────────────────────
   Botones de la barra, Bitácora, firma del plan, chat flotante y enviar. */
/* Botones de la barra: círculos de vidrio con luz arriba, ícono blanco */
.cx-screen>.topbar .ibtn{
  width:40px!important;height:40px!important;border-radius:50%!important;color:#f3f6fa!important;
  background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.035))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0 0 0 1px rgba(255,255,255,.08),0 8px 18px -10px rgba(0,0,0,.9)!important;
  transition:transform .14s ease,background .18s ease;
}
.cx-screen>.topbar .ibtn .iq-ic{width:19px!important;height:19px!important}
.cx-screen>.topbar .ibtn:active{transform:scale(.92)}
.cx-screen>.topbar .dot-badge{top:5px!important;right:5px!important}

/* Bitácora: píldora con placa de color y flecha */
#scr-plan .plan-logbook-btn{
  min-height:50px!important;padding:6px 12px 6px 6px!important;gap:11px!important;border-radius:18px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 0 0 1px rgba(255,255,255,.08),0 10px 22px -14px rgba(0,0,0,.9)!important;
  transition:transform .14s ease;
}
#scr-plan .plan-logbook-btn:active{transform:scale(.97)}
#scr-plan .plan-logbook-icon{width:38px!important;height:38px!important;border-radius:12px!important;color:#fff!important;
  background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 80%,#fff 20%),var(--accent) 55%,color-mix(in srgb,var(--accent) 70%,#000))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 18px -8px rgba(var(--accent-rgb),.85)!important}
#scr-plan .plan-logbook-icon .iq-ic{width:19px;height:19px}
#scr-plan .plan-logbook-copy strong{font-size:14.5px!important;font-weight:700!important;letter-spacing:-.01em!important;-webkit-font-smoothing:antialiased}
#scr-plan .plan-logbook-copy small{font-size:12px!important;font-weight:600!important;color:var(--cx-sub)!important}
#scr-plan .plan-logbook-btn::after{content:""!important;display:block!important;position:static!important;width:7px;height:7px;margin-left:2px;border:0;
  border-right:2px solid rgba(255,255,255,.4);border-bottom:2px solid rgba(255,255,255,.4);transform:rotate(-45deg);background:none!important}

/* Firma del plan: sello del coach con el acento y chat redondo */
#scr-plan #plan-signature{gap:13px!important;padding-top:12px!important;padding-bottom:12px!important;
  background:linear-gradient(180deg,rgba(17,18,22,.86),rgba(15,16,19,.98))!important;border-top:1px solid rgba(255,255,255,.06)!important}
#scr-plan .plan-sig-ic{width:44px!important;height:44px!important;border-radius:14px!important;color:var(--accent-text)!important;
  background:linear-gradient(150deg,rgba(var(--accent-rgb),.3),rgba(var(--accent-rgb),.08))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 0 0 1px rgba(var(--accent-rgb),.35)!important;border:0!important}
#scr-plan .plan-sig-ic .iq-ic{width:20px;height:20px}
#scr-plan .plan-sig-name{font-size:16px!important;font-weight:700!important;letter-spacing:-.015em!important;color:#fff!important}
#scr-plan .plan-sig-meta,#scr-plan .plan-sig-meta span{font-size:12.5px!important;font-weight:500!important;letter-spacing:0!important;color:var(--cx-label)!important}
#scr-plan .plan-sig-ver{margin-left:4px}
#scr-plan .plan-sig-ver:not(:empty){display:inline-block;padding:1px 7px;border-radius:999px;font-size:11px!important;font-weight:700!important;
  color:var(--cx-sub)!important;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
#scr-plan .pchat-fab{width:54px!important;height:54px!important;border-radius:50%!important;border:0!important;color:#fff!important;
  background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 78%,#fff 22%),var(--accent) 50%,color-mix(in srgb,var(--accent) 60%,#5b3fd6))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 0 0 4px rgba(var(--accent-rgb),.12),0 14px 28px -10px rgba(var(--accent-rgb),.9)!important;
  transition:transform .14s ease}
#scr-plan .pchat-fab:active{transform:scale(.92)}
#scr-plan .pchat-fab svg{width:23px!important;height:23px!important}

/* Chat: el botón de enviar con el acento; apagado, pero visible */
.opchat-send{background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 80%,#fff 20%),var(--accent))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 10px 22px -8px rgba(var(--accent-rgb),.8)!important}
.opchat-send:disabled,.opchat-send[disabled]{opacity:.5!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.2)!important}

/* Cabeceras que también arrastran su hoja (js/16-gestures.js) */
[data-sheet-grip]{touch-action:none}

/* ── 16. Modales del sistema mx (Ajustes, Perfil, Avisos, Trofeos) ─────────
   Lista agrupada al estilo iOS: placa de color por fila, cabecera con la
   placa del acento, acciones en tipo oración y el interruptor con el acento. */
.cx-modal .mx-head{gap:14px!important;padding:2px 2px 16px!important;border-bottom:1px solid rgba(255,255,255,.06)!important;margin-bottom:6px!important}
.cx-modal .mx-head-ic{width:46px!important;height:46px!important;border-radius:15px!important;border:0!important;color:#fff!important;
  background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 78%,#fff 22%),var(--accent) 55%,color-mix(in srgb,var(--accent) 65%,#000))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 22px -10px rgba(var(--accent-rgb),.9)!important}
.cx-modal .mx-head-ic .iq-ic{width:22px!important;height:22px!important}
.cx-modal .mx-eyebrow{font-size:10.5px!important;font-weight:800!important;letter-spacing:.1em!important;color:var(--cx-label)!important}
.cx-modal .mx-title{font-size:26px!important;font-weight:800!important;letter-spacing:-.03em!important;line-height:1.08!important;color:#fff!important}
.cx-modal .mx-sub{font-size:13px!important;color:var(--cx-sub)!important;letter-spacing:0!important}
.cx-modal .mx-head-act{width:auto!important;min-width:38px;height:36px!important;padding:0 14px!important;border-radius:999px!important;white-space:nowrap;
  font-size:13px!important;font-weight:700!important;letter-spacing:0!important;text-transform:none!important;color:#fff!important;
  background:rgba(255,255,255,.07)!important;border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)!important}
.cx-modal .mx-sec{margin:22px 4px 9px!important;font-size:10.5px!important;font-weight:800!important;letter-spacing:.1em!important;color:var(--cx-label)!important}
.cx-modal .mx-group{border-radius:20px!important;border:0!important;overflow:hidden;
  background:var(--cx-surface)!important;box-shadow:var(--cx-edge),0 14px 30px -22px rgba(0,0,0,.95)!important}
.cx-modal .mx-tile{min-height:64px;padding:12px 14px!important;gap:13px!important;background:transparent!important;border:0!important}
.cx-modal .mx-tile+.mx-tile,.cx-modal .mx-row+.mx-row{border-top:1px solid rgba(255,255,255,.06)!important}
.cx-modal .mx-tile-ic{width:36px!important;height:36px!important;border-radius:11px!important;border:0!important;color:#fff!important;
  background:linear-gradient(150deg,rgba(var(--accent-rgb),.55),rgba(var(--accent-rgb),.25))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.22)!important}
.cx-modal .mx-tile-copy b{font-size:15px!important;font-weight:700!important;letter-spacing:-.01em!important;color:#fff!important}
.cx-modal .mx-tile-copy small{font-size:12.5px!important;font-weight:500!important;color:var(--cx-label)!important;letter-spacing:0!important}
.cx-modal .mx-btn{min-width:64px;height:34px;padding:0 14px!important;border-radius:999px!important;border:0!important;
  font-size:13px!important;font-weight:700!important;letter-spacing:0!important;text-transform:none!important;color:#fff!important;
  background:rgba(var(--accent-rgb),.22)!important;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.45)!important}
.cx-modal .mx-row{min-height:50px;padding:0 16px!important;align-items:center!important}
.cx-modal .mx-row-k{font-size:14.5px!important;font-weight:500!important;letter-spacing:0!important;color:var(--cx-sub)!important}
.cx-modal .mx-row-v{font-size:14.5px!important;font-weight:600!important;letter-spacing:0!important;color:#fff}
/* Interruptor: el verde de iOS, con el acento cuando verifica */
.cx-modal .mx-switch{width:51px!important;height:31px!important;border:0!important;background:rgba(120,120,128,.32)!important;box-shadow:none!important}
.cx-modal .mx-switch-knob{top:2px!important;left:2px!important;width:27px!important;height:27px!important;background:#fff!important;
  box-shadow:0 3px 8px rgba(0,0,0,.35),0 0 0 .5px rgba(0,0,0,.04)!important}
.cx-modal .mx-switch.is-on{background:#30d158!important;box-shadow:none!important}
.cx-modal .mx-switch.is-on .mx-switch-knob{transform:translateX(20px)!important;background:#fff!important}
/* Acciones al pie, en tipo oración */
.cx-modal .mx-foot{gap:10px!important;margin-top:22px!important}
.cx-modal .mx-action{min-height:52px;border-radius:16px!important;font-size:15px!important;font-weight:700!important;letter-spacing:0!important;
  text-transform:none!important;color:#eef2f7!important;border:0!important;
  background:rgba(255,255,255,.06)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)!important}
.cx-modal .mx-action.is-primary{color:#fff!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 86%,#fff),var(--accent))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 14px 28px -14px rgba(var(--accent-rgb),.9)!important}
.cx-modal .mx-action.is-danger{color:#ff6b6b!important;background:rgba(255,69,58,.1)!important;box-shadow:inset 0 0 0 1px rgba(255,69,58,.22)!important}
.cx-modal .mx-version{font-size:11px!important;letter-spacing:.04em!important;text-transform:none!important;color:rgba(214,224,238,.4)!important}
/* Perfil: avatar con el acento, objetivo en tipo oración, rótulos sin espaciar */
#m-profile #mp-av{color:#fff!important;font-weight:800!important;letter-spacing:-.02em!important;
  background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 75%,#fff 15%),color-mix(in srgb,var(--accent) 50%,#14161a))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25)!important;border:0!important}
#m-profile #pcRingGrad stop{stop-color:var(--accent)}
#m-profile .pc-hero{border:0!important;border-radius:22px!important;background:radial-gradient(90% 120% at 100% 0%,rgba(var(--accent-rgb),.16),transparent 58%),var(--cx-surface)!important;box-shadow:var(--cx-edge),var(--cx-shadow)!important}
#m-profile .pc-name{font-size:22px!important;font-weight:800!important;letter-spacing:-.025em!important}
#m-profile .pc-goal{display:inline-block;font-size:13px!important;font-weight:600!important;letter-spacing:0!important;text-transform:lowercase!important;color:var(--cx-sub)!important}
#m-profile .pc-goal::first-letter{text-transform:uppercase}
#m-profile .pc-level-badge{font-size:10.5px!important;font-weight:800!important;letter-spacing:.04em!important;border-radius:999px!important;
  background:var(--accent)!important;color:#fff!important;box-shadow:0 0 0 2.5px #1a1c20!important}
#m-profile .pc-stat{border-radius:18px!important;border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)!important}
#m-profile .pc-stat:not(.is-red):not(.is-green):not(.is-amber){background:var(--cx-surface)!important}
#m-profile .pc-stat-val{font-size:22px!important;font-weight:800!important;letter-spacing:-.03em!important}
#m-profile .pc-stat-lbl{font-size:12px!important;font-weight:500!important;letter-spacing:0!important;color:var(--cx-label)!important}
#m-profile .pc-stat-ic{border-radius:11px!important}
#m-profile .pc-xp-wrap{border:0!important;border-radius:20px!important;background:var(--cx-surface)!important;box-shadow:var(--cx-edge)!important}
#m-profile .pc-xp-ttl{font-size:10.5px!important;font-weight:800!important;letter-spacing:.1em!important;color:var(--cx-label)!important}
#m-profile .pc-xp-track{height:6px!important;border-radius:6px!important;background:rgba(255,255,255,.07)!important}
#m-profile .pc-xp-fill{border-radius:6px!important;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,#fff),var(--accent))!important}
/* Placas de las filas: más luz */
.cx-modal .mx-tile-ic{background:linear-gradient(150deg,rgba(var(--accent-rgb),.85),rgba(var(--accent-rgb),.45))!important}
.cx-modal .logros-more-btn{min-height:50px;border-radius:16px!important;border:0!important;font-size:14px!important;font-weight:700!important;
  letter-spacing:0!important;text-transform:none!important;color:#fff!important;
  background:rgba(var(--accent-rgb),.14)!important;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.35)!important}
/* "tu coach" llega en minúscula cuando no hay nombre: empieza en mayúscula */
.cx-modal .mx-sub{display:block}
.cx-modal :is(.mx-sub,.mx-empty-sub,.mx-empty-txt)::first-letter{text-transform:uppercase}
#scr-plan #plan-signature{padding-right:18px!important}

/* ── 17. Cuadro "Hoy" de adherencia (js/09-adherence.js) ─────────────────
   Anillo del día, entrenamiento y comidas como dos filas tocables. */
.adhx{--adhx:var(--accent);--adhx-rgb:var(--accent-rgb);position:relative;overflow:hidden;padding:16px;border-radius:20px;
  background:radial-gradient(90% 120% at 0% 0%,rgba(var(--adhx-rgb),.14),transparent 60%),rgba(255,255,255,.03);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 0 1px rgba(255,255,255,.06)}
.adhx[data-state="done"]{--adhx:#34d17a;--adhx-rgb:52,209,122}
.adhx[data-state="part"]{--adhx:#f5b544;--adhx-rgb:245,181,68}
.adhx-head{display:flex;align-items:center;gap:14px}
.adhx-ring{position:relative;flex:none;width:60px;height:60px}
.adhx-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.adhx-ring circle{fill:none;stroke-width:5;stroke-linecap:round}
.adhx-ring .trk{stroke:rgba(255,255,255,.08)}
.adhx-ring .val{stroke:var(--adhx);stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--p,0));
  filter:drop-shadow(0 0 5px rgba(var(--adhx-rgb),.6));transition:stroke-dashoffset .8s cubic-bezier(.22,1,.36,1)}
.adhx-ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:16px;font-weight:800;letter-spacing:-.03em;color:#fff;font-variant-numeric:tabular-nums}
.adhx-ring b small{font-size:10px;font-weight:700;margin-left:1px;color:var(--cx-label)}
.adhx-ring b{display:flex;align-items:baseline;justify-content:center;padding-top:20px}
.adhx-copy{min-width:0}
.adhx-copy small{display:block;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--adhx)}
.adhx-copy strong{display:block;margin-top:3px;font-size:18px;font-weight:800;letter-spacing:-.025em;color:#fff}
.adhx-copy p{margin:3px 0 0;font-size:12.5px;line-height:1.4;color:var(--cx-sub)}
.adhx-parts{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.adhx-part{display:flex;align-items:center;gap:12px;width:100%;min-height:62px;padding:10px 12px 10px 10px;border:0;border-radius:16px;text-align:left;cursor:pointer;
  color:#fff;font:inherit;background:rgba(0,0,0,.24);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);transition:transform .14s ease,background .2s}
.adhx-part:active{transform:scale(.98)}
.adhx-part[data-state="done"]{background:rgba(52,209,122,.08);box-shadow:inset 0 0 0 1px rgba(52,209,122,.28)}
.adhx-ic{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:#fff;
  background:linear-gradient(150deg,rgba(var(--accent-rgb),.8),rgba(var(--accent-rgb),.4));box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
.adhx-part[data-state="done"] .adhx-ic{background:linear-gradient(150deg,#45e08c,#1fa862)}
.adhx-part[data-state="rest"] .adhx-ic{background:rgba(255,255,255,.08)}
.adhx-ic .iq-ic,.adhx-ic svg{width:20px;height:20px}
.adhx-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.adhx-txt b{font-size:14.5px;font-weight:700;letter-spacing:-.01em}
.adhx-txt small{font-size:12.5px;font-weight:500;color:var(--cx-label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adhx-part[data-state="done"] .adhx-txt small{color:#6ee7a4}
.adhx-meals{display:flex;gap:4px;margin-top:5px}
.adhx-meals i{flex:1;max-width:34px;height:5px;border-radius:5px;background:rgba(255,255,255,.1)}
.adhx-meals i.on{background:linear-gradient(90deg,#45e08c,#2bc073);box-shadow:0 0 8px rgba(52,209,122,.45)}
.adhx-go{flex:none;display:inline-flex;align-items:center;gap:3px;height:32px;padding:0 10px 0 13px;border-radius:999px;font-size:12.5px;font-weight:700;color:#fff;
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 86%,#fff),var(--accent));box-shadow:0 8px 16px -8px rgba(var(--accent-rgb),.9)}
.adhx-go svg{width:14px;height:14px}
.adhx-ok{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#fff;background:linear-gradient(150deg,#45e08c,#1fa862);box-shadow:0 6px 14px -6px rgba(52,209,122,.8)}
.adhx-ok .iq-ic,.adhx-ok svg{width:16px;height:16px}
/* Logo del coach en la firma del plan (00-config.js): con alfa, sobre fondo neutro */
#scr-plan .plan-sig-ic.has-logo{background:#0f1114!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 8px 18px -10px rgba(0,0,0,.9)!important;padding:5px;overflow:hidden}
#scr-plan .plan-sig-logo{width:100%;height:100%;object-fit:contain;display:block}

/* ── 18. Logros (renderLogros) ─────────────────────────────────────────
   Cabecera con nivel y anillo, el próximo logro y los recientes; filtros en
   tipo oración; tarjetas con el brillo de su rango y lo cercano destacado. */
#scr-logros>.topbar #logros-scr-sub,#scr-logros>.topbar .tb-wm{letter-spacing:0!important;text-transform:none!important}
#scr-logros>.topbar .tb-wm{font-size:17px!important;font-weight:800!important}
#scr-logros>.topbar #logros-scr-sub{font-size:12px!important;color:var(--cx-label)!important}
#scr-logros .ach-shell{background:none!important;border:0!important;padding:4px 14px 0}
.ach-hero{display:flex;align-items:center;gap:16px;padding:18px;border-radius:24px;margin:8px 0 12px;
  background:radial-gradient(90% 120% at 100% 0%,rgba(245,196,81,.18),transparent 58%),var(--cx-surface);box-shadow:var(--cx-edge),var(--cx-shadow)}
.ach-ring{position:relative;flex:none;width:84px;height:84px}
.ach-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ach-ring circle{fill:none;stroke-width:6;stroke-linecap:round}
.ach-ring .trk{stroke:rgba(255,255,255,.08)}
.ach-ring .val{stroke:url(#none);stroke:#f5c451;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--p,0));filter:drop-shadow(0 0 6px rgba(245,196,81,.55))}
.ach-ring b{position:absolute;inset:0;display:flex;align-items:baseline;justify-content:center;padding-top:28px;font-size:22px;font-weight:800;letter-spacing:-.03em;color:#fff}
.ach-ring b small{font-size:11px;font-weight:700;color:var(--cx-label)}
.ach-hero-copy small{display:block;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#f5c451}
.ach-hero-copy strong{display:block;margin-top:2px;font-size:26px;font-weight:800;letter-spacing:-.03em;color:#fff}
.ach-hero-copy span{display:block;margin-top:3px;font-size:12.5px;color:var(--cx-sub)}
.ach-next{display:flex;align-items:center;gap:13px;padding:14px;border-radius:20px;margin-bottom:12px;
  background:linear-gradient(135deg,rgba(var(--accent-rgb),.16),rgba(var(--accent-rgb),.04));box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.3)}
.ach-next-ic{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:14px;color:#fff;
  background:linear-gradient(150deg,rgba(var(--accent-rgb),.9),rgba(var(--accent-rgb),.5));box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.ach-next-ic .iq-ic,.ach-next-ic svg{width:22px;height:22px}
.ach-next-copy{flex:1;min-width:0}
.ach-next-copy small{display:block;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text,#9ccaff)}
.ach-next-copy strong{display:block;margin-top:2px;font-size:16px;font-weight:700;color:#fff}
.ach-next-copy em{display:block;margin-top:2px;font-style:normal;font-size:12.5px;color:var(--cx-sub)}
.ach-next-bar{display:block;height:5px;margin-top:8px;border-radius:5px;background:rgba(255,255,255,.08);overflow:hidden}
.ach-next-bar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,#fff),var(--accent))}
.ach-recent{margin-bottom:12px}
.ach-recent-hd{margin:0 2px 8px;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--cx-label)}
.ach-recent-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.ach-recent-row::-webkit-scrollbar{display:none}
.ach-chip{flex:none;display:flex;align-items:center;gap:9px;padding:9px 13px 9px 9px;border-radius:16px;background:var(--cx-surface);box-shadow:var(--cx-edge)}
.ach-chip-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;color:#fff;background:rgba(255,255,255,.1)}
.ach-chip.elite .ach-chip-ic{background:linear-gradient(150deg,#6d8dff,#3c58c8)}
.ach-chip.legendary .ach-chip-ic{background:linear-gradient(150deg,#f7d57a,#c99a2e)}
.ach-chip-ic .iq-ic,.ach-chip-ic svg{width:17px;height:17px}
.ach-chip strong{display:block;font-size:13px;font-weight:700;color:#fff;white-space:nowrap}
.ach-chip small{display:block;font-size:11px;color:var(--cx-label)}
#scr-logros .ach-shell-hd{position:sticky;top:0;z-index:3;margin:0 -14px 6px;padding:8px 14px 10px!important;border:0!important;
  background:linear-gradient(180deg,#0f1013 70%,rgba(15,16,19,0))!important}
#scr-logros .ach-pill{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px!important;border-radius:999px!important;border:0!important;
  font-size:13px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;color:var(--cx-sub)!important;
  background:rgba(255,255,255,.05)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)!important}
#scr-logros .ach-pill b{font-weight:700;color:var(--cx-label)}
#scr-logros .ach-pill .iq-ic{width:14px;height:14px}
#scr-logros .ach-pill.active{color:#fff!important;background:rgba(var(--accent-rgb),.22)!important;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.55)!important}
#scr-logros .ach-pill.active b{color:#fff}
#scr-logros .ach-cat{display:flex;align-items:center;gap:9px;margin:18px 2px 10px!important;font-size:10.5px!important;font-weight:800!important;letter-spacing:.1em!important;text-transform:uppercase;color:var(--cx-label)!important}
.ach-cat-ic{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;color:#fff;background:linear-gradient(150deg,rgba(var(--accent-rgb),.6),rgba(var(--accent-rgb),.25))}
.ach-cat-ic svg{width:14px;height:14px}
.ach-cat-n{margin-left:auto;padding:3px 9px;border-radius:999px;font-size:11px;letter-spacing:0;color:var(--cx-sub);background:rgba(255,255,255,.06)}
#scr-logros .ach-grid{gap:10px!important}
#scr-logros .ach-card{border-radius:20px!important;border:0!important;background:var(--cx-surface)!important;box-shadow:var(--cx-edge),0 14px 30px -22px rgba(0,0,0,.95)!important}
#scr-logros .ach-card.unlocked.common{box-shadow:var(--cx-edge),inset 0 0 0 1px rgba(214,224,238,.18),0 14px 30px -22px rgba(0,0,0,.95)!important}
#scr-logros .ach-card.unlocked.elite{background:radial-gradient(100% 80% at 0% 0%,rgba(109,141,255,.2),transparent 60%),var(--cx-surface)!important;box-shadow:inset 0 0 0 1px rgba(109,141,255,.4),0 14px 30px -18px rgba(60,88,200,.7)!important}
#scr-logros .ach-card.unlocked.legendary{background:radial-gradient(100% 80% at 0% 0%,rgba(245,196,81,.22),transparent 60%),var(--cx-surface)!important;box-shadow:inset 0 0 0 1px rgba(245,196,81,.45),0 14px 30px -16px rgba(201,154,46,.7)!important}
#scr-logros .ach-card.locked{opacity:.62}
#scr-logros .ach-card.locked.is-close{opacity:.9}
#scr-logros .ach-name{font-size:15px!important;font-weight:700!important;letter-spacing:-.01em!important}
#scr-logros .ach-desc{font-size:12.5px!important;line-height:1.35!important;color:var(--cx-sub)!important}
#scr-logros .ach-tier-tag{font-size:10px!important;font-weight:800!important;letter-spacing:.06em!important;border-radius:999px!important}
#scr-logros .ach-prog-track{height:5px!important;border-radius:5px!important;background:rgba(255,255,255,.08)!important}
#scr-logros .ach-prog-fill{border-radius:5px!important;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,#fff),var(--accent))!important}
#scr-logros .ach-prog-label{font-size:11.5px!important;font-weight:700!important;letter-spacing:0!important}
#scr-logros .ach-date{font-size:11.5px!important;font-weight:600!important;letter-spacing:0!important}
.ach-cat-ic .iq-ic{width:14px;height:14px;color:#fff}
#scr-logros .ach-body .ach-section:first-child .ach-cat{margin-top:6px!important}
