:root {
  --gold: #FFD700;
  --black: #0b0b0b;
  --bg: #f9f9f9;
  --card-white: #ffffff;
  --text-dark: #1a1a1a;
  --text-muted: #6b6b6b;
  --whatsapp: #25d366;
  --danger: #e03131;
  --radius: 18px;
  --nav-height: 78px;
  --border-soft: var(--border-soft);
  --input-bg: #f4f4f4;
  --nav-bg: #ffffff;

  /* ---- Visual System V2 — niveles de superficie (claro) ---- */
  --surface-0: #f4f4f5;
  --surface-1: #ffffff;
  --surface-2: #ffffff;
  --surface-3: #f0f0f1;
  --gold-glow: rgba(255, 215, 0, 0.10);
  --shadow-sm: 0 1px 3px rgba(20, 20, 25, 0.06);
  --shadow-md: 0 4px 16px rgba(20, 20, 25, 0.08);
  --shadow-lg: 0 8px 32px rgba(20, 20, 25, 0.12);
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-pill: 999px;
  --surface-highlight: rgba(255, 255, 255, 0.6);

  /* ---- Visual System V3 — Liquid Glass (tokens) ----
     Evoluciona V2, no lo sustituye: reutiliza --shadow-*/--radius-*
     ya existentes y añade solo lo específico del cristal (fondo
     translúcido, borde luminoso, cantidad de desenfoque). Pensado
     para usarse SOLO en superficies flotantes/overlay (nav, modales,
     botones flotantes, bandas de resumen) — nunca en filas repetidas
     de listas/tablas, por coste de rendimiento. */
  --glass-bg: rgba(255, 255, 255, 0.55);
  --glass-bg-strong: rgba(255, 255, 255, 0.74);
  --glass-border: rgba(255, 255, 255, 0.7);
  --glass-highlight: rgba(255, 255, 255, 0.85);
  --glass-blur: 22px;
  --glass-shadow: var(--shadow-lg), inset 0 1px 0 var(--glass-highlight);
}

/* Accesibilidad — respeta la preferencia del sistema operativo/
   navegador de reducir movimiento. No desactiva transiciones
   funcionales (p. ej. cambios de página), solo suaviza/anula las
   puramente decorativas definidas en este bloque V3. */
@media (prefers-reduced-motion: reduce) {
  .lg-glass, .btn-primary, .btn-secondary, .tracker-card, .workday-item-card {
    transition: none !important;
  }
}

[data-theme="dark"] {
  --bg: #08090A;
  --card-white: var(--surface-2);
  --text-dark: #f2f1ee;
  --text-muted: #9a9a9e;
  --border-soft: rgba(255,255,255,0.06);
  --input-bg: #2a2a2c;
  --nav-bg: #111214;

  /* ---- Visual System V2 — niveles de superficie (oscuro), afinados
     hacia la orientación cromática premium pedida (fondo ~#08090A,
     superficie ~#111214, superficie elevada ~#18191D). Cambio
     conservador de VALOR únicamente — mismos nombres de variable,
     mismos usos en toda la app, sin tocar ningún estado funcional. ----
     background (surface-0) < superficie (surface-1) < card (surface-2)
     < elemento interactivo/hover (surface-3), cada uno un punto más
     claro que el anterior, para que la profundidad se perciba sin
     depender solo de bordes. */
  --surface-0: #08090A;
  --surface-1: #111214;
  --surface-2: #18191D;
  --surface-3: #212226;
  --gold-glow: rgba(255, 215, 0, 0.10);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 6px 20px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 10px 36px rgba(0, 0, 0, 0.48);
  --surface-highlight: rgba(255, 255, 255, 0.06);

  /* ---- Visual System V3 — Liquid Glass (tokens, oscuro) ----
     Mismo fondo casi-transparente, pero con blanco muy tenue (no
     negro) para que el desenfoque capte la luz de lo que hay detrás,
     que es como se percibe el "cristal" en fondos oscuros. */
  --glass-bg: rgba(255, 255, 255, 0.055);
  --glass-bg-strong: rgba(255, 255, 255, 0.09);
  --glass-border: rgba(255, 255, 255, 0.14);
  --glass-highlight: rgba(255, 255, 255, 0.09);
  --glass-blur: 24px;
  --glass-shadow: var(--shadow-lg), inset 0 1px 0 var(--glass-highlight);
}

.theme-toggle {
  position: fixed; top: 16px; right: 16px; z-index: 60;
  width: 42px; height: 42px; border-radius: 50%; border: none;
  background: var(--card-white); box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center;
}

.profile-toggle {
  position: fixed; top: 16px; left: 16px; z-index: 60;
  width: 52px; height: 52px; border-radius: 50%; border: none;
  background: var(--card-white); box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  font-size: 22px; cursor: pointer; display: flex; align-items: center; justify-content: center;
  overflow: hidden; padding: 0;
}
.profile-toggle img { width: 100%; height: 100%; object-fit: cover; }

.profile-photo-row { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.profile-photo {
  width: 88px; height: 88px; border-radius: 50%; object-fit: cover; background: var(--input-bg);
  border: 3px solid var(--gold); flex-shrink: 0;
}

.ig-links-row { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }
.ig-link {
  flex: 1; text-align: center; background: var(--input-bg); border: 1px solid var(--border-soft);
  color: var(--text-dark); font-size: 12px; font-weight: 600; padding: 9px 10px; border-radius: 10px;
  text-decoration: none; white-space: nowrap;
}

.birthday-banner {
  background: linear-gradient(135deg, #ff6b9d, #ffd700); color: #111; font-weight: 700;
  font-size: 13px; text-align: center; padding: 14px 40px 14px 16px; position: relative;
}
.birthday-banner button {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  background: none; border: none; font-size: 16px; cursor: pointer; color: #111;
}

#app-header {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 20px 70px 8px; background: var(--bg);
}
.app-header-logo-img { height: 26px; width: auto; }
.app-header-sub { font-weight: 500; opacity: 0.75; font-size: 11px; color: var(--text-dark); }

.dash-greeting { margin-bottom: 20px; }
.dash-greeting h1 { font-size: 24px; font-weight: 700; margin: 0 0 4px; color: var(--text-dark); }
.dash-greeting p { font-size: 14px; color: var(--text-muted); margin: 0; }

.dash-stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 18px; }
.dash-stat {
  background: var(--black); border-radius: 18px; padding: 16px; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  border: 1px solid rgba(255,215,0,0.12);
}
.dash-stat .dash-icon {
  font-size: 18px; width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,215,0,0.15); display: flex; align-items: center; justify-content: center;
}
.dash-stat .dash-val { font-size: 20px; font-weight: 700; color: var(--gold); }
.dash-stat .dash-lbl { font-size: 10px; color: rgba(255,255,255,0.6); font-weight: 600; letter-spacing: 0.3px; }

.dash-card {
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 18px;
  padding: 18px; margin-bottom: 14px; cursor: pointer;
}
.dash-card .dash-card-title { font-size: 12px; color: var(--text-muted); margin-bottom: 4px; font-weight: 600; }
.dash-card .dash-card-main { font-size: 15px; font-weight: 700; color: var(--text-dark); }
.dash-card .dash-card-sub { font-size: 12px; color: var(--text-muted); margin-top: 2px; }

.siguiente-paso-card {
  background: var(--card-white); border: 1px solid var(--border-soft); border-top: 3px solid var(--gold);
  border-radius: 18px; padding: 16px 18px; margin-bottom: 16px; cursor: default;
}
.siguiente-paso-label { font-size: 11px; font-weight: 800; letter-spacing: 0.5px; color: var(--gold); margin-bottom: 8px; }
.siguiente-paso-titulo-row { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; }
.siguiente-paso-icono { font-size: 17px; line-height: 1; flex-shrink: 0; }
.siguiente-paso-titulo { font-size: 15.5px; font-weight: 700; color: var(--text-dark); }
.siguiente-paso-desc { font-size: 13px; color: var(--text-muted); line-height: 1.4; }
.siguiente-paso-cta { font-size: 13px; font-weight: 700; color: var(--gold); margin-top: 8px; }

.dash-chat-card {
  display: flex; align-items: center; gap: 12px; width: 100%; text-align: left;
  background: var(--card-white); border: 1px solid var(--border-soft); border-left: 3px solid var(--gold);
  border-radius: 18px; padding: 14px 18px; margin-bottom: 14px; cursor: pointer; font-family: inherit;
}
.dash-chat-card-avatar {
  width: 42px; height: 42px; border-radius: 50%; object-fit: cover; object-position: center 15%;
  flex-shrink: 0; display: block;
}
.dash-chat-card-icon { font-size: 26px; line-height: 1; flex-shrink: 0; width: 42px; text-align: center; }
.dash-chat-card-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dash-chat-card-title { font-size: 14.5px; font-weight: 700; color: var(--text-dark); }
.dash-chat-card-sub { font-size: 12.5px; color: var(--text-muted); line-height: 1.4; }
.dash-chat-card-cta { font-size: 12.5px; font-weight: 700; color: var(--gold); margin-top: 4px; }

.hito-card {
  display: flex; gap: 14px; align-items: center; background: var(--card-white);
  border: 1px solid var(--border-soft); border-radius: 16px; padding: 14px; margin-bottom: 12px;
}
.hito-card.pendiente { opacity: 0.45; }
.hito-card img { width: 56px; height: 56px; border-radius: 12px; object-fit: cover; background: var(--input-bg); flex-shrink: 0; }
.hito-card .hito-info { flex: 1; }
.hito-card .hito-titulo { font-weight: 700; font-size: 14px; color: var(--gold); }
.hito-card .hito-fecha { font-size: 11px; color: var(--text-muted); margin-bottom: 4px; }
.hito-card .hito-datos { font-size: 12px; color: var(--text-dark); line-height: 1.5; }

.food-list { margin-top: 14px; }
.food-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 0; border-bottom: 1px solid var(--border-soft); font-size: 13px;
}
.food-row .food-kcal { font-weight: 700; color: var(--gold); flex-shrink: 0; margin-left: 10px; }
.food-row .food-del { background: none; border: none; color: var(--danger); cursor: pointer; font-size: 16px; margin-left: 10px; }

.km-row {
  display: flex; justify-content: space-between; align-items: center;
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 12px;
  padding: 12px 14px; margin-bottom: 8px; font-size: 13px;
}
.km-row .km-tipo-lbl { font-weight: 700; }
.km-row .km-fecha { font-size: 11px; color: var(--text-muted); }
.km-row .km-dist { font-weight: 700; color: var(--gold); }
.pd-compartir-comunidad-btn {
  background: var(--surface-3); color: var(--text-dark); border: 1px solid var(--border-soft);
  border-radius: 8px; padding: 6px 12px; font-weight: 700; font-size: 12px; cursor: pointer;
}
.pd-publicado-badge { font-size: 12px; font-weight: 700; color: var(--gold); }

.km-progress-bar { background: var(--input-bg); border-radius: 8px; height: 10px; overflow: hidden; margin-top: 8px; }
.km-progress-fill { background: var(--gold); height: 100%; border-radius: 8px; }

.tabla-ejercicio-row {
  display: flex; align-items: center; gap: 10px;
  background: var(--e-surface); border: 1px solid var(--e-border); border-radius: 14px;
  padding: 9px 10px; margin-bottom: 8px;
}
.tabla-ejercicio-row img {
  width: 56px; height: 42px; object-fit: cover; border-radius: 9px; flex-shrink: 0; cursor: pointer;
  background: rgba(128,128,128,0.15);
}
.tabla-ejercicio-row .info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tabla-ejercicio-row .nombre {
  font-size: 13.5px; font-weight: 700; color: var(--e-text); line-height: 1.25;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; text-overflow: ellipsis; white-space: normal;
}
.tabla-ejercicio-row .reps {
  font-size: 11.5px; color: var(--e-text-muted); font-weight: 600; line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; text-overflow: ellipsis; white-space: normal;
}
.tabla-ejercicio-row .tabla-registrar-btn {
  flex-shrink: 0; background: var(--e-accent); color: var(--e-accent-ink, #171310);
  border: none; border-radius: 18px;
  font-size: 11px; font-weight: 800; padding: 7px 11px; cursor: pointer; white-space: nowrap;
}
.tabla-ejercicio-row .tabla-del {
  flex-shrink: 0; background: none; border: none; color: var(--danger); font-size: 17px;
  cursor: pointer; padding: 6px 4px; line-height: 1;
}

/* ---- Mi Tabla Semanal — pasada visual (todo lo de abajo va con prefijo
   #page-tabla-semanal para no afectar a ninguna otra pantalla que
   comparta estas mismas clases genéricas: Seguimiento, Ranking, etc.
   No cambia ningún id ni comportamiento, solo aspecto). ---- */
#page-tabla-semanal #tabla-day-tabs.metric-tabs {
  display: flex; gap: 6px; overflow-x: visible; padding-bottom: 0; margin-bottom: 14px;
}
#page-tabla-semanal #tabla-day-tabs .metric-tab {
  flex: 1 1 0; min-width: 0; background: var(--e-surface); border: 1px solid var(--e-border);
  color: var(--e-text-muted); font-size: 12px; font-weight: 700; padding: 9px 2px;
  border-radius: 11px; text-align: center; white-space: nowrap;
}
#page-tabla-semanal #tabla-day-tabs .metric-tab.active {
  background: var(--e-accent); color: var(--e-accent-ink, #171310); border-color: var(--e-accent);
}

#page-tabla-semanal #generador-rutina-btn.ranking-shortcut {
  background: var(--e-accent); color: var(--e-accent-ink, #171310); border: none;
  font-weight: 800; letter-spacing: 0.2px;
}

#page-tabla-semanal .tracker-card {
  background: var(--e-surface); border: 1px solid var(--e-border);
}
#page-tabla-semanal .tracker-card .field label { color: var(--e-text-muted); }
#page-tabla-semanal .tracker-grid .field input,
#page-tabla-semanal .tracker-grid .field select {
  background: rgba(128,128,128,0.08); border: 1px solid var(--e-border); color: var(--e-text);
  width: 100%; box-sizing: border-box;
}
#page-tabla-semanal .tracker-grid .field input:focus,
#page-tabla-semanal .tracker-grid .field select:focus { border-color: var(--e-accent); }
#page-tabla-semanal #tabla-add-btn { background: var(--e-accent); color: var(--e-accent-ink, #171310); border: none; }

#page-tabla-semanal #tabla-editing-banner { border-radius: 14px; }

@media (max-width: 360px) {
  #page-tabla-semanal #tabla-day-tabs .metric-tab { font-size: 11px; padding: 8px 1px; }
  #page-tabla-semanal .tracker-grid { grid-template-columns: 1fr; }
}

.skin-hero-card {
  background: linear-gradient(150deg, #1c1c1c, #0b0b0b); border-radius: 20px; padding: 24px 20px;
  border: 1px solid rgba(255,215,0,0.2);
}
.skin-brand { font-size: 11px; color: rgba(255,255,255,0.45); font-weight: 600; letter-spacing: 1px; margin-bottom: 4px; }
.skin-title { font-size: 26px; font-weight: 800; color: var(--gold); line-height: 1.1; margin-bottom: 8px; }
.skin-sub { font-size: 14px; color: #fff; font-weight: 600; margin-bottom: 10px; }
.skin-body { font-size: 13px; color: rgba(255,255,255,0.7); line-height: 1.5; margin-bottom: 16px; }
.skin-features { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.skin-feature { display: flex; align-items: center; gap: 8px; font-size: 13px; color: rgba(255,255,255,0.85); }
.skin-feature span { font-size: 16px; }

.badges-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 20px; }
.badge-item {
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px;
  padding: 12px 6px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 4px;
}
.badge-item.locked { opacity: 0.3; filter: grayscale(1); }
.badge-item .badge-icon { font-size: 24px; }
.badge-item .badge-nombre { font-size: 9px; font-weight: 700; color: var(--text-dark); line-height: 1.2; }
.badge-compartir-btn {
  font-size: 8.5px; font-weight: 700; color: var(--gold); background: none; border: 1px solid var(--gold);
  border-radius: 10px; padding: 3px 8px; margin-top: 2px; cursor: pointer;
}

.premio-row {
  display: flex; align-items: center; gap: 12px; background: var(--card-white);
  border: 1px solid var(--border-soft); border-radius: 14px; padding: 12px 14px; margin-bottom: 10px;
}
.premio-row .premio-icon { font-size: 24px; flex-shrink: 0; }
.premio-row .premio-info { flex: 1; }
.premio-row .premio-nombre { font-size: 13px; font-weight: 700; }
.premio-row .premio-coste { font-size: 12px; color: var(--gold); font-weight: 600; }
.premio-row .premio-btn {
  flex-shrink: 0; border: none; border-radius: 10px; padding: 9px 12px; font-size: 12px; font-weight: 700; cursor: pointer;
  background: var(--gold); color: #111;
}
.premio-row .premio-btn:disabled { background: var(--input-bg); color: var(--text-muted); cursor: default; }

.ranking-row {
  display: flex; align-items: center; gap: 12px; background: var(--card-white);
  border: 1px solid var(--border-soft); border-radius: 14px; padding: 12px 14px; margin-bottom: 8px;
}
.ranking-row .ranking-pos { font-size: 16px; font-weight: 800; width: 28px; text-align: center; flex-shrink: 0; }
.ranking-row .ranking-nombre { flex: 1; font-size: 13px; font-weight: 600; }
.ranking-row .ranking-pts { font-size: 13px; font-weight: 700; color: var(--gold); }

.legal-check-row { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; color: rgba(255,255,255,0.7); cursor: pointer; }
.legal-check-row input { margin-top: 2px; flex-shrink: 0; }
.legal-check-row a { color: var(--gold); text-decoration: underline; }

.legal-text p { font-size: 13px; color: var(--text-dark); line-height: 1.6; margin-bottom: 14px; }
.legal-text b { color: var(--gold); }

.legal-footer-link {
  display: block; width: 100%; text-align: center; background: none; border: none;
  color: var(--text-muted); font-size: 11px; text-decoration: underline; margin-top: 14px; cursor: pointer;
}

.smart-notif {
  background: var(--black); border: 1px solid rgba(255,215,0,0.3); border-radius: 14px;
  padding: 14px 16px; margin-bottom: 16px; color: #fff; font-size: 13px; font-weight: 600; position: relative;
}
.smart-notif .close { position: absolute; top: 8px; right: 10px; background: none; border: none; color: rgba(255,255,255,0.4); font-size: 14px; cursor: pointer; }

.comunidad-card {
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 16px;
  padding: 14px 16px; margin-bottom: 10px;
}
.comunidad-card .comunidad-msg { font-size: 14px; color: var(--text-dark); margin-bottom: 8px; }
.comunidad-card .comunidad-foot { display: flex; justify-content: space-between; align-items: center; }
.comunidad-card .comunidad-fecha { font-size: 11px; color: var(--text-muted); }
.comunidad-like-btn {
  background: none; border: none; cursor: pointer; font-size: 14px; color: var(--text-muted);
  display: flex; align-items: center; gap: 4px; font-weight: 600;
}
.comunidad-like-btn.liked { color: #ff4d6d; }
.comunidad-card img.comunidad-foto { width: 100%; border-radius: 12px; margin-bottom: 10px; display: block; max-height: 320px; object-fit: cover; }
.comunidad-actividad-card {
  display: flex; align-items: center; gap: 12px;
  background: var(--surface-2, var(--input-bg)); border-radius: 12px;
  padding: 12px 14px; margin-bottom: 8px;
}
.comunidad-actividad-icono { font-size: 26px; line-height: 1; }
.comunidad-actividad-tipo { font-weight: 700; color: var(--text-dark); font-size: 14px; }
.comunidad-actividad-metricas { font-size: 12.5px; color: var(--text-muted); margin-top: 2px; }
.comunidad-autor-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px 6px; gap: 8px;
}
.comunidad-autor-link {
  display: flex; align-items: center; gap: 10px;
  background: none; border: none; padding: 0; margin: 0; cursor: pointer; text-align: left;
}
.comunidad-autor-foto { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.comunidad-autor-texto { display: flex; flex-direction: column; gap: 1px; }
.comunidad-autor-nombre { font-weight: 700; font-size: 13.5px; color: var(--text-dark); }
.comunidad-autor-fecha { font-size: 11.5px; color: var(--text-muted); }
.comunidad-del-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: none; border: 1px solid transparent; border-radius: 8px;
  padding: 7px 8px; cursor: pointer; color: var(--danger); line-height: 0;
}
.comunidad-del-btn svg { width: 16px; height: 16px; flex-shrink: 0; }
.comunidad-del-btn .comunidad-del-texto { display: none; font-size: 12px; font-weight: 700; line-height: 1; }
@media (min-width: 760px) {
  .comunidad-del-btn { border-color: var(--danger); padding: 6px 11px; }
  .comunidad-del-btn .comunidad-del-texto { display: inline; }
}

.encuesta-progress-bar { background: var(--input-bg); border-radius: 8px; height: 8px; overflow: hidden; margin: 4px 0 24px; }
.encuesta-progress-fill { background: var(--gold); height: 100%; border-radius: 8px; transition: width 0.25s ease; }
.encuesta-pregunta { font-size: 18px; font-weight: 700; color: var(--text-dark); margin-bottom: 20px; line-height: 1.4; }
.encuesta-opcion-btn {
  display: block; width: 100%; text-align: left; background: var(--card-white); border: 1.5px solid var(--border-soft);
  border-radius: 14px; padding: 14px 16px; margin-bottom: 10px; font-size: 14px; font-weight: 600; color: var(--text-dark);
  cursor: pointer;
}
.encuesta-opcion-btn:active, .encuesta-opcion-btn.selected { border-color: var(--gold); background: rgba(255,215,0,0.1); }

.nutri-item {
  display: flex; align-items: center; gap: 10px; background: var(--card-white); border: 1px solid var(--border-soft);
  border-radius: 12px; padding: 12px 14px; margin-bottom: 8px; font-size: 13px; font-weight: 600; color: var(--text-dark);
}
.nutri-item .nutri-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
.nutri-item .nutri-dot.bueno { background: #4ade80; }
.nutri-item .nutri-dot.mejorable { background: #f59e0b; }
.nutri-item .nutri-dot.bajo { background: #ef4444; }
.nutri-resumen { font-size: 13px; color: var(--text-muted); margin: 10px 0 16px; }

.admin-encuesta-card {
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 16px;
  padding: 16px; margin-bottom: 12px;
}
.admin-encuesta-card .ae-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.admin-encuesta-card .ae-nombre { font-weight: 700; font-size: 14px; }
.admin-encuesta-card .ae-badge { font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 20px; }
.admin-encuesta-card .ae-badge.alta { background: #ff4d6d; color: #fff; }
.admin-encuesta-card .ae-badge.media { background: #ffb700; color: #111; }
.admin-encuesta-card .ae-badge.baja { background: var(--input-bg); color: var(--text-muted); }
.admin-encuesta-card .ae-destacado { font-size: 12px; color: var(--text-dark); margin: 3px 0; }
.admin-encuesta-card .ae-comentario { font-size: 12px; color: var(--text-muted); margin-top: 8px; font-style: italic; }

.alimento-card {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px;
  padding: 12px 14px; margin-bottom: 8px;
}
.alimento-card .alimento-nombre { font-size: 13px; font-weight: 700; }
.alimento-card .alimento-macros { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.alimento-add-btn { background: var(--gold); color: #111; border: none; border-radius: 10px; padding: 8px 12px; font-size: 12px; font-weight: 700; cursor: pointer; flex-shrink: 0; }

.mi-lista-item {
  display: flex; align-items: center; gap: 10px; background: var(--card-white); border: 1px solid var(--border-soft);
  border-radius: 12px; padding: 10px 14px; margin-bottom: 6px;
}
.mi-lista-item.comprado .mi-lista-nombre { text-decoration: line-through; opacity: 0.5; }
.mi-lista-item .mi-lista-check { width: 22px; height: 22px; flex-shrink: 0; accent-color: var(--gold); }
.mi-lista-item .mi-lista-nombre { flex: 1; font-size: 13px; font-weight: 600; }
.mi-lista-item .mi-lista-del { background: none; border: none; color: var(--danger); font-size: 15px; cursor: pointer; }

.ci-fase { font-size: 20px; font-weight: 800; letter-spacing: 1px; margin-top: 30px; color: var(--text-muted); }
.ci-fase.trabajo { color: var(--danger); }
.ci-fase.descanso { color: #4ade80; }
.ci-fase.prep { color: var(--gold); }
.ci-tiempo { font-size: 96px; font-weight: 800; color: var(--text-dark); line-height: 1; margin: 10px 0; }
.ci-ronda { font-size: 15px; color: var(--text-muted); font-weight: 600; }

.horario-day-title { font-weight: 700; font-size: 15px; margin: 20px 0 10px; color: var(--text-muted); }
.horario-day-title:first-child { margin-top: 0; }
.clase-card {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  background: var(--card-white); border-radius: 14px; padding: 14px 16px; margin-bottom: 10px;
  border: 1px solid var(--border-soft);
}
.clase-card .info { flex: 1; min-width: 0; }
.clase-card .nombre { font-weight: 700; font-size: 14px; }
.clase-card .detalle { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.clase-card .plazas { font-size: 12px; font-weight: 600; margin-top: 3px; }
.clase-card .plazas.lleno { color: var(--danger); }
.clase-card .plazas.libre { color: var(--whatsapp); }
.clase-btn {
  flex-shrink: 0; border: none; border-radius: 10px; padding: 10px 14px; font-weight: 700; font-size: 12px; cursor: pointer;
}
.clase-btn.reservar { background: var(--gold); color: #111; }
.clase-btn.cancelar { background: var(--danger); color: #fff; }
.clase-btn.lleno { background: var(--border-soft); color: var(--text-muted); cursor: default; }

.admin-reserva-group { margin-bottom: 20px; }
.admin-reserva-group .clase-titulo { font-weight: 700; font-size: 15px; margin-bottom: 8px; }
.admin-reserva-group .cliente-row { font-size: 13px; padding: 8px 0; border-bottom: 1px solid var(--border-soft); }

.week-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; gap: 8px; }
.week-nav-btn {
  background: var(--surface-2); border: 1px solid var(--border-soft); color: var(--text-dark);
  border-radius: 50%; width: 34px; height: 34px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 700; cursor: pointer;
}
.week-nav-btn:disabled { opacity: 0.35; cursor: default; }
.week-label { font-size: 13px; font-weight: 800; color: var(--text-dark); text-align: center; flex: 1; }

.calendar-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.calendar-table { border-collapse: separate; border-spacing: 4px; width: 100%; min-width: 320px; table-layout: fixed; }
.calendar-table th, .calendar-table td { padding: 0; text-align: center; vertical-align: middle; }
.calendar-table thead th {
  font-size: 10px; font-weight: 700; color: var(--text-muted); padding-bottom: 10px;
}
.calendar-table thead th .day-name { display: block; }
.calendar-table thead th .day-date { display: block; font-weight: 400; font-size: 9px; }
.calendar-table tbody th {
  width: 34px; font-size: 10.5px; font-weight: 700; color: var(--text-muted); white-space: nowrap; padding-right: 4px;
}
.cal-cell {
  width: 100%; min-width: 52px; height: 44px; border-radius: var(--radius-sm); border: none; cursor: pointer;
  font-size: 9px; font-weight: 700; line-height: 1.3; padding: 2px;
  transition: box-shadow 0.15s ease, transform 0.1s ease;
}
.cal-cell.empty { background: transparent; cursor: default; }
.cal-cell.libre { background: var(--surface-3); color: var(--text-dark); border: 1px solid rgba(255, 215, 0, 0.35); }
.cal-cell.libre:active { transform: scale(0.95); background: var(--gold-glow); }
.cal-cell.reservado { background: var(--gold); color: #111; box-shadow: 0 2px 10px var(--gold-glow); }
.cal-cell.lleno { background: var(--danger); color: #fff; opacity: 0.85; cursor: default; }
.cal-cell.pasado { background: transparent; color: var(--text-muted); opacity: 0.4; cursor: default; border: 1px dashed var(--border-soft); }

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--text-dark);
  font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* ---- Visual System V2 — profundidad ambiental, solo en tema oscuro
   (en claro el fondo queda exactamente igual que siempre). Todo se
   resuelve como capas de `background` en el propio body — nunca un
   pseudo-elemento con position/z-index — así que nunca interfiere
   con overflow/scroll del documento. background-attachment:fixed
   evita que el gradiente se desplace con el contenido, dando
   sensación de ambiente fijo detrás. Presencia ligera (~10-15%,
   nunca compite con el contenido) y coste de render mínimo: solo
   gradientes CSS, sin imágenes ni blur. ---- */
[data-theme="dark"] body {
  background:
    radial-gradient(ellipse 900px 600px at 12% -8%, var(--gold-glow), transparent 60%),
    radial-gradient(ellipse 700px 550px at 105% 22%, rgba(255, 255, 255, 0.035), transparent 55%),
    radial-gradient(ellipse 850px 700px at 50% 115%, rgba(255, 215, 0, 0.045), transparent 62%),
    var(--surface-0);
}
/* Solo en body, nunca en html a la vez — aplicar overscroll-behavior a
   ambos simultáneamente es una causa conocida de bloqueo del scroll
   por rueda/trackpad en algunos navegadores (la scrollbar arrastrable
   sigue funcionando porque el navegador la gestiona aparte del evento
   wheel). html queda como el elemento de scroll inequívoco. */
body { overscroll-behavior-y: none; }

button, input { font-family: inherit; }

img { max-width: 100%; display: block; }

.hidden { display: none !important; }

/* ---------- Auth screens ---------- */
#auth-screen {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px 24px calc(24px + env(safe-area-inset-bottom));
  background: var(--black);
}

.auth-brand {
  position: relative;
  display: flex; flex-direction: column; align-items: center;
  margin-bottom: 20px;
}
.auth-brand::before {
  content: "";
  position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
  width: 220px; height: 140px;
  background: radial-gradient(ellipse, rgba(255,215,0,0.10), transparent 70%);
  pointer-events: none;
}
.auth-logo {
  width: min(150px, 55%);
  height: auto;
  margin-bottom: 10px;
  position: relative;
}
.auth-eslogan {
  color: rgba(255,255,255,0.5);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-align: center;
  margin: 0;
  position: relative;
}

.auth-card {
  width: 100%;
  max-width: 380px;
  background: #131316;
  border-radius: var(--radius);
  padding: 22px 22px;
  border: 1px solid rgba(255,255,255,0.06);
}

.auth-title {
  color: #fff;
  font-size: 19px;
  font-weight: 800;
  margin: 0 0 4px;
  text-align: center;
}

.auth-subtitle {
  color: rgba(255,255,255,0.5);
  font-size: 12.5px;
  text-align: center;
  margin: 0 0 18px;
}

.field {
  margin-bottom: 14px;
}

.field label {
  display: block;
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 6px;
}

/* La pantalla de login/registro siempre tiene fondo negro, pase lo que pase con el tema */
#auth-screen .field label {
  color: rgba(255,255,255,0.6);
}

.field input, .field textarea {
  width: 100%;
  padding: 13px 14px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.12);
  background: #0f0f0f;
  color: #fff;
  font-size: 15px;
  outline: none;
}

/* Ajustes finales Paquete 8 -- el textarea heredaba el estilo por
   defecto del navegador (fondo blanco, tipografia distinta): ahora
   sigue exactamente el mismo diseño que el resto de campos. */
.field textarea {
  font-family: inherit;
  resize: vertical;
  line-height: 1.45;
}

.field input:focus, .field textarea:focus {
  border-color: var(--gold);
  /* Visual System V2 — glow sutil de foco, coherente con el resto de
     estados activos dorados. No se toca el fondo (#0f0f0f es
     deliberado en este contexto, ver comentario arriba). */
  box-shadow: 0 0 0 3px var(--gold-glow);
}

.btn-primary {
  width: 100%;
  padding: 14px;
  border-radius: 12px;
  border: none;
  background: var(--gold);
  color: #111;
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  margin-top: 4px;
  /* Visual System V2 — el CTA principal debe sentirse "elevado", con
     un glow dorado sutil coherente con el acento de marca. */
  box-shadow: 0 4px 14px var(--gold-glow);
  transition: box-shadow 0.15s ease, transform 0.1s ease;
}

.btn-primary:active { transform: scale(0.98); }
.btn-primary:disabled { opacity: 0.6; cursor: default; box-shadow: none; }

.auth-toggle {
  text-align: center;
  margin-top: 18px;
  font-size: 13px;
  color: rgba(255,255,255,0.6);
}

.auth-toggle button {
  background: none;
  border: none;
  color: var(--gold);
  font-weight: 600;
  cursor: pointer;
  font-size: 13px;
  padding: 0;
}

.auth-error {
  background: rgba(224,49,49,0.15);
  border: 1px solid rgba(224,49,49,0.4);
  color: #ff8787;
  font-size: 13px;
  padding: 10px 12px;
  border-radius: 10px;
  margin-bottom: 14px;
}

/* ---------- App shell ---------- */
#app-screen {
  min-height: 100vh;
  /* Regla reutilizable de safe-area global: nav-height + botón + +
     margen extra, aplicada UNA vez a nivel de shell para que todas
     las páginas la hereden sin hacks individuales por pantalla. */
  padding-bottom: calc(var(--nav-height) + 28px);
}

.page {
  display: none;
  padding: 20px;
  padding-top: max(20px, env(safe-area-inset-top));
  max-width: 720px;
  margin: 0 auto;
  animation: fadein .18s ease;
}
.page.active { display: block; }

@keyframes fadein {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

.page-header {
  margin-bottom: 18px;
}

.page-header h1 {
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 6px;
  color: var(--text-dark);
}

.underline {
  width: 60px;
  height: 3px;
  background: var(--gold);
  border-radius: 2px;
}

.header-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}

.back-btn {
  background: none;
  border: none;
  font-size: 20px;
  cursor: pointer;
  color: var(--text-dark);
  padding: 4px;
  line-height: 1;
}

/* ---------- Muscle cards (Ejercicios) ---------- */
.muscle-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--black);
  border-radius: var(--radius);
  padding: 18px 20px;
  margin-bottom: 16px;
  height: 110px;
  cursor: pointer;
  border: none;
  width: 100%;
  text-align: left;
}

.muscle-card .info { color: #fff; }
.muscle-card .title { font-size: 20px; font-weight: 700; display: block; }
.muscle-card .sub { font-size: 13px; color: rgba(255,255,255,0.75); margin-top: 4px; display: block; }
.muscle-card .extra { font-size: 14px; color: var(--gold); margin-top: 6px; display: block; font-weight: 600; }
.muscle-card .arrow { font-size: 28px; color: var(--gold); }

/* ---------- Video grid ---------- */
.video-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
.video-card {
  background: var(--card-white);
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--border-soft);
  cursor: pointer;
}
.video-card .thumb-wrap { position: relative; background: #eee; aspect-ratio: 16/9; }
.video-card img { width: 100%; height: 100%; object-fit: cover; }

.fav-star {
  position: absolute; top: 8px; right: 8px; z-index: 5;
  width: 32px; height: 32px; border-radius: 50%; border: none;
  background: rgba(0,0,0,0.5); color: #fff; font-size: 16px;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.fav-star.active { background: var(--gold); color: #111; }

.mi-rutina-card {
  background: linear-gradient(135deg, #2a2205, var(--black));
  border: 1px solid rgba(255,215,0,0.35);
}
.video-card .play-badge {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 40px; color: #fff; text-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.video-card .video-title { padding: 12px 14px; font-weight: 600; font-size: 14px; }

.video-modal {
  position: fixed; inset: 0; background: rgba(0,0,0,0.92); z-index: 200;
  display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 16px; gap: 14px;
}
.video-modal video { width: 100%; max-height: 65vh; border-radius: 12px; }
.video-modal .close-btn {
  position: absolute; top: 20px; right: 20px; background: var(--gold); border: none;
  width: 40px; height: 40px; border-radius: 50%; font-size: 18px; cursor: pointer; z-index: 10;
}

.rest-timer-bar {
  width: 100%; max-width: 420px; background: #1c1c1c; border-radius: 16px; padding: 16px;
  border: 1px solid rgba(255,215,0,0.2);
}
.rest-timer-presets { display: flex; gap: 8px; margin-bottom: 14px; justify-content: center; }
.rest-preset {
  flex: 1; padding: 8px 0; border-radius: 10px; border: 1px solid rgba(255,255,255,0.15);
  background: transparent; color: #ccc; font-size: 13px; font-weight: 600; cursor: pointer;
}
.rest-preset.active { background: var(--gold); color: #111; border-color: var(--gold); }
.rest-timer-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rest-timer-display { font-size: 28px; font-weight: 700; color: #fff; font-variant-numeric: tabular-nums; }
.rest-timer-btn {
  flex-shrink: 0; background: var(--gold); color: #111; border: none; border-radius: 10px;
  padding: 12px 18px; font-weight: 700; font-size: 14px; cursor: pointer;
}
.rest-timer-btn.running { background: var(--danger); color: #fff; }

.empty-state, .loading-state {
  text-align: center; color: var(--text-muted); padding: 40px 20px; font-size: 14px;
}

/* ---------- Seguimiento ---------- */
.tracker-card {
  background: var(--card-white); border-radius: var(--radius); padding: 20px; margin-bottom: 20px;
  border: 1px solid var(--border-soft);
  /* Visual System V2 — profundidad: sombra por nivel + reflejo
     superior sutil (línea de luz de 1px), para que la card se sienta
     flotando sobre el background en vez de "pegada" a él. */
  box-shadow: var(--shadow-sm);
  position: relative;
}
[data-theme="dark"] .tracker-card::before {
  content: ""; position: absolute; top: 0; left: 16px; right: 16px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--surface-highlight), transparent);
  pointer-events: none;
}
/* v11.10.3 — Sistema visual reutilizable de WORKDAY, calcado
   deliberadamente del lenguaje visual de Entreno (.entreno-shell):
   mismas variables, misma card de icono+texto+chevron, misma etiqueta
   de sección con línea dorada. Ámbito propio (.workday-shell) — no
   toca .entreno-shell ni ninguna otra pantalla de NF24. */
.workday-shell {
  --w-surface: var(--card-white);
  --w-border: var(--border-soft);
  --w-text: var(--text-dark);
  --w-text-muted: var(--text-muted);
  --w-accent: #FFD100;
  --w-accent-ink: #171310;
  --w-danger: #ef4444;
}
[data-theme="dark"] .workday-shell {
  --w-surface: #151515;
  --w-border: rgba(255,255,255,0.08);
  --w-text: #ffffff;
  --w-text-muted: rgba(255,255,255,0.55);
}

.workday-greeting { margin-bottom: 18px; }
.workday-greeting h1 { font-size: 21px; font-weight: 800; letter-spacing: -0.3px; margin: 0 0 4px; color: var(--w-text); }
.workday-greeting p { font-size: 13px; color: var(--w-text-muted); margin: 0; }

.workday-section-label {
  font-size: 12px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase;
  color: var(--w-text-muted); margin: 18px 0 0;
}
.workday-section-label:first-of-type { margin-top: 0; }
.workday-section-line { width: 26px; height: 2px; border-radius: 2px; background: var(--w-accent); margin: 6px 0 10px; }

/* Card tipo "tool" (hub Workday, accesos de gestión): icono + texto +
   chevron, idéntica estructura visual a .entreno-tool-card. */
.workday-grid { display: flex; flex-direction: column; gap: 8px; }
.workday-card {
  display: flex; align-items: center; gap: 12px; position: relative;
  background: var(--w-surface); border: 1px solid var(--w-border); border-radius: 14px;
  padding: 12px 14px; cursor: pointer; text-align: left; width: 100%; font-family: inherit;
}
.workday-card:active { transform: scale(0.99); }
.workday-icon-box {
  flex-shrink: 0; width: 38px; height: 38px; border-radius: 11px;
  background: rgba(255,209,0,0.14); color: var(--w-accent-ink, #171310);
  display: flex; align-items: center; justify-content: center;
}
[data-theme="dark"] .workday-icon-box { color: var(--w-accent); }
.workday-icon-box svg { width: 18px; height: 18px; }
.workday-card-text { flex: 1; min-width: 0; }
.workday-card-title { display: block; font-size: 13.5px; font-weight: 700; color: var(--w-text); }
.workday-card-sub { display: block; font-size: 11.5px; color: var(--w-text-muted); margin-top: 1px; }
.workday-card-arrow { flex-shrink: 0; color: var(--w-text-muted); display: flex; }
.workday-card-arrow svg { width: 17px; height: 17px; }
.workday-card .aq-badge { position: absolute; top: 8px; right: 10px; }

@media (min-width: 640px) {
  .workday-grid--2col { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
}

/* Hero "Mi Día" — misma card compacta, con acento dorado y CTA. */
.workday-hero-card {
  display: block; width: 100%; text-align: left; cursor: pointer;
  background: var(--w-surface); border: 1px solid var(--w-accent); border-radius: 14px;
  padding: 14px 16px; margin-bottom: 16px; font-family: inherit;
}
.workday-hero-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; color: var(--w-accent); margin: 0 0 6px; }
.workday-hero-resumen-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.workday-hero-cta { font-size: 12px; font-weight: 700; color: var(--w-text-muted); display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.workday-hero-cta svg { width: 16px; height: 16px; }

/* v11.10.4 — permite anclar .aq-badge (ya usado en varias cards del
   panel Admin) también sobre .entreno-tool-card, reutilizado ahora en
   el rediseño del panel Admin. */
.entreno-tool-card { position: relative; }
.entreno-tool-card .aq-badge { position: absolute; top: 8px; right: 10px; }

/* Card compacta genérica (tareas, prospectos, clientes, seguimiento) —
   sustituye a .admin-seguimiento-card dentro de Workday, mucho más baja. */
.workday-item-card {
  background: var(--w-surface); border: 1px solid var(--w-border); border-radius: 14px;
  padding: 12px 14px; margin-bottom: 8px; cursor: default;
}
.workday-item-card.is-clicable { cursor: pointer; }
.workday-item-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.workday-item-title { font-size: 13.5px; font-weight: 700; color: var(--w-text); }
.workday-item-meta { font-size: 11.5px; color: var(--w-text-muted); margin-top: 3px; }
.workday-item-actions { display: flex; align-items: center; gap: 6px; margin-top: 10px; flex-wrap: wrap; }

/* Paquete 7, punto 7 -- Ideas y Recordatorios: mini-checklist dentro de
   la tarjeta de lista (no abre el modal al marcar) y editor de
   checklist dentro del modal de creacion/edicion. Reutiliza las
   variables --w-* ya usadas por el resto de Workday. */
.idea-checklist-mini { margin-top: 8px; display: flex; flex-direction: column; gap: 4px; }
.idea-checklist-mini-item { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--w-text); cursor: pointer; }
.idea-checklist-mini-item input[type="checkbox"] { width: 17px; height: 17px; flex-shrink: 0; }
/* Paquete 7, punto 1 -- lista de prioridades en el detalle de
   estudio de Herbalife dentro del modal Ver estudio. */
.op-detalle-lista { margin: 6px 0 0; padding-left: 20px; font-size: 12.5px; color: var(--text-dark); }
.op-detalle-lista li { margin-bottom: 4px; }

.idea-checklist-editor-fila input[type="text"] {
  border: 1px solid var(--border-soft); border-radius: 8px; padding: 7px 10px; font-size: 13px;
  background: var(--input-bg, transparent); color: inherit; font-family: inherit;
}

/* Botones compactos de acción — 3 niveles de jerarquía (nunca full-width
   dentro de una card salvo excepción explícita). */
.workday-action {
  display: inline-flex; align-items: center; gap: 5px; border-radius: 9px;
  padding: 6px 11px; font-size: 12px; font-weight: 700; cursor: pointer;
  border: 1px solid var(--w-border); background: transparent; color: var(--w-text);
  text-decoration: none; font-family: inherit;
}
.workday-action svg { width: 14px; height: 14px; }
.workday-action--primary { background: var(--w-accent); border-color: var(--w-accent); color: var(--w-accent-ink, #171310); }
.workday-action--whatsapp { background: #25D366; border-color: #25D366; color: #fff; }
.workday-action--danger { color: var(--w-danger); border-color: transparent; padding: 6px 8px; margin-left: auto; }
.workday-action--icon { padding: 6px 8px; }

/* Puntos/badges de estado — sustituyen a los emojis 🔴🟠🟢 como
   iconografía de estado. */
.workday-status-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 5px; flex-shrink: 0; }
.workday-status-dot--pendiente, .workday-status-dot--vencido { background: var(--w-danger); }
.workday-status-dot--actualizar, .workday-status-dot--hoy { background: #f59e0b; }
.workday-status-dot--al_dia, .workday-status-dot--activo { background: #22c55e; }
.workday-chip {
  display: inline-flex; align-items: center; font-size: 10.5px; font-weight: 700;
  padding: 3px 8px; border-radius: 20px; background: var(--e-surface-2,rgba(128,128,128,0.14)); color: var(--w-text-muted);
  white-space: nowrap;
}
.workday-chip--alta { color: var(--w-danger); background: rgba(239,68,68,0.12); }

/* Tabs/chips compactos (Hoy/Próximos/Vencidos/Completados, filtros de
   Seguimiento/Prospectos) — más pequeños que .admin-equipo-tab. */
.workday-tabs { display: flex; gap: 6px; overflow-x: auto; margin-bottom: 12px; }
.workday-tab {
  flex-shrink: 0; font-size: 12px; font-weight: 700; padding: 7px 13px; border-radius: 20px;
  border: 1px solid var(--w-border); background: transparent; color: var(--w-text-muted); cursor: pointer; font-family: inherit;
}
.workday-tab.active { background: var(--w-accent); border-color: var(--w-accent); color: var(--w-accent-ink, #171310); }

/* Resumen de indicadores compactos (KPIs de Mi Día/Seguimiento/Prospectos) */
.workday-kpi-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.workday-kpi-pill {
  display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--w-text);
  background: var(--w-surface); border: 1px solid var(--w-border); border-radius: 20px; padding: 7px 12px;
}
.workday-kpi-pill svg { width: 14px; height: 14px; flex-shrink: 0; color: var(--w-text-muted); }

/* v11.11 — Calendario mensual de Agenda: compacto, oscuro, sin
   librerías externas. Reutiliza los tokens ya definidos en
   .workday-shell (mismo look que el resto de Workday). */
.workday-calendario-cabecera { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.workday-calendario-mes { font-size: 14px; font-weight: 800; color: var(--w-text); text-transform: capitalize; }
.workday-calendario-dow {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 4px;
  font-size: 10.5px; font-weight: 700; color: var(--w-text-muted); text-align: center;
}
.workday-calendario-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.workday-calendario-dia {
  position: relative; aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center;
  border-radius: 50%; font-size: 13px; font-weight: 600; color: var(--w-text); cursor: pointer;
  border: 1px solid transparent; background: transparent; font-family: inherit;
}
.workday-calendario-dia.fuera-de-mes { color: var(--w-text-muted); opacity: 0.4; }
.workday-calendario-dia.es-hoy { border-color: var(--w-accent); }
/* v11.12 — selección "más contenida": círculo (no cuadrado con
   esquinas redondeadas) — se lee como acento puntual, no como un
   bloque grande. */
.workday-calendario-dia.seleccionado { background: var(--w-accent); color: var(--w-accent-ink, #171310); border-color: var(--w-accent); }
.workday-calendario-dia .workday-calendario-punto {
  position: absolute; bottom: 3px; left: 50%; transform: translateX(-50%);
  width: 4px; height: 4px; border-radius: 50%; background: var(--w-accent);
}
.workday-calendario-dia.seleccionado .workday-calendario-punto { background: var(--w-accent-ink, #171310); }

@media (min-width: 640px) {
  .workday-calendario-dia { font-size: 14px; }
}

/* v11.12 — en pantallas más anchas (donde antes cada celda cuadrada
   quedaba demasiado alta) se reduce la altura ~28% respecto al ancho,
   sin perder la forma circular de la selección ni el tamaño táctil en
   móvil (que conserva 1:1 más abajo, fuera de este media query). */
@media (min-width: 760px) {
  .workday-calendario-dia { aspect-ratio: 1.4 / 1; }
}


@media (min-width: 760px) {
  .page.workday-shell { max-width: 900px; }
}

/* v11.10.2 — Modal Nueva/Editar tarea: quitar flechas nativas feas del
   input type=number (duración), solo vía CSS, sin cambiar el tipo de
   input ni su validación. */
.tarea-form-num-sin-flechas::-webkit-outer-spin-button,
.tarea-form-num-sin-flechas::-webkit-inner-spin-button {
  -webkit-appearance: none; margin: 0;
}
.tarea-form-num-sin-flechas { -moz-appearance: textfield; }

.tracker-grid .field label { color: var(--text-muted); }
.tracker-grid .field input, .tracker-grid .field select {
  background: var(--input-bg); border: 1px solid var(--border-soft); color: var(--text-dark);
  width: 100%; padding: 13px 14px; border-radius: 12px; font-size: 15px; box-sizing: border-box;
}
.tracker-grid .field input:focus, .tracker-grid .field select:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-glow); }

.calc-result {
  margin-top: 16px; background: var(--black); border-radius: 14px; padding: 18px; text-align: center;
}
.calc-result .kcal-big { font-size: 36px; font-weight: 700; color: var(--gold); }
.calc-result .kcal-label { font-size: 14px; color: rgba(255,255,255,0.75); margin-top: 4px; }
.calc-result .kcal-note { font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 10px; }

.share-progress-btn {
  display: block; width: 100%; margin: 14px 0 20px; padding: 14px;
  background: linear-gradient(135deg, var(--gold), #ffb700); color: #111; border: none;
  border-radius: 14px; font-weight: 700; font-size: 14px; cursor: pointer;
}

.ranking-shortcut {
  display: block; width: 100%; margin-bottom: 20px; padding: 14px;
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px;
  font-weight: 700; font-size: 14px; color: var(--text-dark); cursor: pointer;
}
.ranking-toggle-row { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--text-dark); cursor: pointer; }
.ranking-toggle-row input { margin-top: 3px; flex-shrink: 0; width: 18px; height: 18px; accent-color: var(--gold); }
.ranking-row {
  display: flex; align-items: center; gap: 12px; background: var(--card-white); border: 1px solid var(--border-soft);
  border-radius: 14px; padding: 12px 16px; margin-bottom: 10px;
}
.ranking-row .rank-num { font-weight: 700; font-size: 16px; width: 28px; text-align: center; color: var(--text-muted); }
.ranking-row .rank-name { flex: 1; font-weight: 600; font-size: 14px; color: var(--text-dark); }
.ranking-row .rank-streak { font-weight: 700; color: var(--gold); font-size: 14px; }
.ranking-row.top1 .rank-num, .ranking-row.top2 .rank-num, .ranking-row.top3 .rank-num { font-size: 20px; }

.stat-scroll { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 18px; }
.stat-pill {
  flex: 0 0 auto; background: var(--black); color: #fff; border-radius: 14px; padding: 12px 16px; min-width: 92px;
}
.stat-pill .val { font-size: 18px; font-weight: 700; color: var(--gold); }
.stat-pill .lbl { font-size: 11px; color: rgba(255,255,255,0.7); margin-top: 2px; }

canvas#pesoChart { width: 100% !important; max-height: 240px; }

.metric-tabs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 12px; margin-bottom: 4px; }
.metric-tab {
  flex: 0 0 auto; background: var(--input-bg); border: 1px solid var(--border-soft); color: var(--text-muted);
  font-size: 12px; font-weight: 600; padding: 8px 14px; border-radius: 20px; cursor: pointer; white-space: nowrap;
}
.metric-tab.active { background: var(--gold); color: #111; border-color: var(--gold); }

.supplement-promo {
  background: var(--black); border-radius: var(--radius); padding: 18px 20px; margin-top: 20px;
  cursor: pointer; border: 1px solid rgba(255,215,0,0.25);
}
.supplement-promo .promo-text { color: #fff; font-size: 14px; line-height: 1.5; margin-bottom: 8px; }
.supplement-promo .promo-link { color: var(--gold); font-size: 13px; font-weight: 700; }

.history-list { margin-top: 20px; }
.history-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 0; border-bottom: 1px solid var(--border-soft); font-size: 13px;
}
.history-row .date { color: var(--text-muted); }
.history-row .weight { font-weight: 700; }

/* ---------- Herbalife / Premium cards ---------- */
.category-card, .premium-card {
  display: flex; align-items: center; justify-content: space-between;
  background: var(--card-white); border-radius: var(--radius); padding: 16px; margin-bottom: 16px;
  border-left: 6px solid var(--gold); border: 1px solid var(--border-soft); border-left-width: 6px;
  cursor: pointer;
}
.category-card .info { flex: 1; margin-right: 12px; }
.category-card .title { font-weight: 700; font-size: 16px; }
.category-card .desc { font-size: 13px; color: var(--text-muted); margin-top: 4px; }
.category-card img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; }

.product-card {
  background: var(--card-white); border-radius: var(--radius); padding: 16px; margin-bottom: 16px;
  border: 2px solid var(--black); display: flex; gap: 14px; align-items: center;
}
.product-card img { width: 84px; height: 84px; border-radius: 12px; object-fit: contain; background: var(--input-bg); flex-shrink: 0; }
.product-card .info { flex: 1; min-width: 0; }
.product-card .title { font-weight: 700; font-size: 14px; }
.product-card .desc { font-size: 11px; color: var(--text-muted); margin-top: 4px; }
.product-card .price { font-weight: 700; margin-top: 6px; color: var(--text-dark); }

.wa-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--gold); color: #111; font-weight: 700; font-size: 13px;
  padding: 9px 14px; border-radius: 10px; border: none; cursor: pointer; margin-top: 10px; text-decoration: none;
}

.section-title { font-weight: 700; font-size: 17px; margin: 22px 0 12px; }

.discount-banner {
  background: linear-gradient(135deg, #fff8dc, #fff);
  border: 1.5px solid var(--gold); border-radius: 14px; padding: 14px 16px;
  font-size: 14px; color: #333; margin-bottom: 18px; line-height: 1.5;
}
.discount-banner b { color: #7a5c00; }

.photo-field { margin-bottom: 16px; }
.photo-field > label:first-child { display: block; font-weight: 600; color: var(--text-dark); margin-bottom: 8px; font-size: 13px; }
.hidden-file-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.photo-upload-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 14px; border-radius: 12px; border: 2px dashed rgba(0,0,0,0.15);
  background: var(--input-bg); font-size: 14px; color: var(--text-muted); font-weight: 600;
  cursor: pointer; box-sizing: border-box;
}
.photo-upload-btn:active { background: #ececec; }
.photo-upload-btn.has-file { border-style: solid; border-color: var(--gold); color: var(--text-dark); }
.photo-preview { margin-top: 10px; }
.photo-preview img { width: 100px; height: 100px; object-fit: cover; border-radius: 12px; border: 2px solid var(--gold); }

.streak-banner {
  background: var(--black); color: var(--gold); font-weight: 700; font-size: 14px;
  padding: 12px 16px; border-radius: 12px; margin-bottom: 14px; text-align: center;
}

.photo-compare { margin-bottom: 20px; }
.compare-row { display: flex; gap: 12px; }
.compare-col { flex: 1; text-align: center; }
.compare-col img { width: 100%; aspect-ratio: 3/4; object-fit: cover; border-radius: 14px; background: #eee; }
.compare-col span { display: block; font-size: 12px; color: var(--text-muted); margin-top: 6px; }

.history-row .thumb { width: 34px; height: 34px; border-radius: 8px; object-fit: cover; margin-right: 8px; vertical-align: middle; cursor: pointer; }
.history-row .date-group { display: flex; align-items: center; }

/* Premium detail */
.premium-hero { width: 100%; aspect-ratio: 4/5; max-height: 420px; border-radius: 14px; object-fit: cover; margin-bottom: 18px; background: var(--black); }
.premium-body { font-size: 15px; line-height: 1.7; white-space: pre-line; color: var(--text-dark); margin-bottom: 100px; }
.premium-body b { color: #b8860b; }

/* Pulido UX — antes position:fixed permanente sobre el contenido
   (tapaba vídeos/botón +/bottom-nav en Maderoterapia/Curso/Retos, que
   comparten esta misma página). Se integra en el flujo normal del
   documento, al final del contenido, sin cambiar id/handler/target —
   mismo elemento, mismo comportamiento de click, solo deja de flotar. */
.floating-wa {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: fit-content; margin: 24px auto 0;
  background: var(--whatsapp); color: #fff; font-weight: 700; font-size: 14px;
  padding: 13px 22px; border-radius: 30px; border: none; cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,0.25); text-decoration: none;
  white-space: nowrap;
}

.premium-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.premium-card {
  display: block; padding: 0; overflow: hidden; border: none; position: relative;
  width: 100%; aspect-ratio: 4/5; border-radius: 18px; cursor: pointer;
  background-size: cover; background-position: center;
}

.video-list-card {
  background: var(--card-white); border-radius: 16px; overflow: hidden; margin-bottom: 14px;
  border: 1px solid var(--border-soft); cursor: pointer; position: relative;
}
.video-list-card .thumb-wrap { position: relative; background: #eee; aspect-ratio: 16/9; }
.video-list-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-list-card .play-badge {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 40px; color: #fff; text-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.video-list-card .titled { padding: 10px 12px; font-size: 13px; font-weight: 700; color: var(--text-dark); }

/* ---------- Trabaja con nosotros ---------- */
.info-block { background: var(--card-white); border-radius: var(--radius); padding: 20px; line-height: 1.7; font-size: 15px; color: var(--text-dark); margin-bottom: 20px; border: 1px solid var(--border-soft); }

/* ---------- Bottom nav ---------- */
#bottom-nav {
  position: fixed; bottom: 0; left: 0; right: 0; height: var(--nav-height);
  background: transparent; border-top: none;
  display: flex; justify-content: space-around; align-items: center;
  padding-bottom: env(safe-area-inset-bottom);
  z-index: 100;
}
/* Visual System V2 — dock flotante premium. Deliberadamente un
   ::before absoluto en vez de mover/redimensionar #bottom-nav: los
   botones reales (.nav-btn) mantienen exactamente su geometría/
   hit-area actual (misma altura, mismo bottom:0), y solo el FONDO
   visual se dibuja como isla flotante con márgenes — cero riesgo
   para los 8 offsets del resto de la app que dependen de
   var(--nav-height), y cero cambio de comportamiento/click-areas. */
#bottom-nav::before {
  content: "";
  position: absolute;
  left: 12px; right: 12px; top: 8px;
  bottom: calc(8px + env(safe-area-inset-bottom));
  background: var(--card-white);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  z-index: -1;
}
/* Pulido UX — la isla del dock usaba --surface-2, casi idéntico al
   fondo global (--surface-0) en tema oscuro, dando sensación de
   "demasiado transparente". Se refuerza SOLO aquí con --surface-3
   (más diferenciado) y un borde/sombra algo más marcados — sin tocar
   --card-white global, usado en muchos otros componentes. */
[data-theme="dark"] #bottom-nav::before {
  background: var(--surface-3);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.55), var(--shadow-lg);
}

.nav-more-btn {
  background: var(--gold); border: none; border-radius: 50%;
  width: 52px; height: 52px; display: flex; align-items: center; justify-content: center;
  font-size: 26px; font-weight: 700; color: #111; cursor: pointer;
  transform: translateY(-14px); box-shadow: var(--shadow-lg), 0 0 0 4px var(--gold-glow); flex-shrink: 0;
}
.nav-more-btn.active { background: #111; color: var(--gold); }

.nav-more-menu {
  position: fixed; left: 12px; right: 12px; z-index: 99;
  bottom: calc(var(--nav-height) + 10px + env(safe-area-inset-bottom));
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 20px;
  padding: 16px;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.25);
}
/* .nav-more-explore-grid es ahora el contenedor grid real (antes era
   .nav-more-menu directamente) — se movió aquí al envolver los
   botones "Explorar" en su propio div para separarlos visualmente de
   "Acciones rápidas". */
.nav-more-explore-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.nav-more-menu .nav-btn {
  color: var(--text-dark); width: 100%; background: var(--input-bg);
  border-radius: 14px; padding: 10px 4px 8px; gap: 4px;
}
.nav-more-menu .nav-btn .icon {
  font-size: 18px; width: 36px; height: 36px; border-radius: 50%;
  background: var(--card-white); display: flex; align-items: center; justify-content: center;
  box-shadow: 0 1px 4px rgba(0,0,0,0.12);
}
.nav-more-menu .nav-btn span:last-child { font-size: 10px; font-weight: 600; }
.nav-more-menu .nav-btn:active { background: rgba(255,215,0,0.15); }

.nav-more-quickactions {
  display: flex; flex-direction: column; gap: 8px;
}
.nav-quickaction-btn {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
  background: var(--input-bg); border: 1px solid var(--border-soft); border-radius: 14px;
  padding: 12px 14px; font-size: 13.5px; font-weight: 700; color: var(--text-dark); cursor: pointer;
}
.nav-quickaction-btn:active { background: rgba(255,215,0,0.15); }
.nav-more-underline { height: 1px; background: var(--border-soft); margin: 4px 0 2px; }
.nav-more-section-label {
  font-size: 10.5px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--text-muted); margin: 0 0 8px;
}
[data-theme="dark"] .nav-more-menu {
  background: var(--surface-2);
  box-shadow: var(--shadow-lg);
}
[data-theme="dark"] .nav-more-menu .nav-btn.active {
  background: var(--gold-glow);
}

.nav-btn {
  background: none; border: none; display: flex; flex-direction: column; align-items: center; gap: 2px;
  color: var(--text-muted); cursor: pointer; padding: 6px 2px; font-size: 9px; flex: 1; min-width: 0;
}
#bottom-nav .icon svg { width: 21px; height: 21px; }
#bottom-nav .nav-btn.active .icon svg { width: 22px; height: 22px; }
.nav-btn .icon { font-size: 20px; }
.icon svg { width: 20px; height: 20px; display: block; }
.nav-btn.active .icon svg { width: 21px; height: 21px; }
.nav-more-menu .nav-btn .icon svg { width: 18px; height: 18px; }
.dash-stat .dash-icon svg { width: 17px; height: 17px; }
.nav-btn.active { color: var(--gold); background: var(--gold-glow); border-radius: 14px; box-shadow: 0 2px 8px var(--gold-glow); }
.nav-btn.active .icon { font-size: 22px; }

/* ---------- Toast ---------- */
#toast {
  position: fixed; top: 16px; left: 50%; transform: translateX(-50%);
  background: var(--black); color: #fff; padding: 12px 20px; border-radius: 30px;
  font-size: 13px; z-index: 300; opacity: 0; pointer-events: none; transition: opacity .2s;
  border: 1px solid var(--gold);
}
#toast.show { opacity: 1; }

/* ---------- Install banner ---------- */
#install-banner, #push-prompt-banner {
  position: fixed; bottom: calc(var(--nav-height) + 10px); left: 12px; right: 12px;
  background: var(--black); color: #fff; border-radius: 14px; padding: 14px 16px;
  display: flex; align-items: center; gap: 12px; z-index: 90; border: 1px solid var(--gold);
}
#install-banner img, #push-prompt-banner img { width: 40px; height: 40px; border-radius: 10px; }
#install-banner .txt, #push-prompt-banner .txt { flex: 1; font-size: 12px; line-height: 1.4; }
#install-banner button, #push-prompt-banner button { background: var(--gold); border: none; border-radius: 8px; padding: 8px 12px; font-weight: 700; font-size: 12px; cursor: pointer; }
#install-banner .close, #push-prompt-banner .close { background: none; color: rgba(255,255,255,0.5); font-size: 18px; padding: 0 4px; }

@media (min-width: 600px) {
  .tracker-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- Buscador de alimentos ---------- */
.food-search-field { margin-top: 4px; }
.food-search-results {
  margin-top: 8px; max-height: 320px; overflow-y: auto;
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px;
  padding: 6px; margin-bottom: 12px;
}
.food-search-results.hidden { display: none; }
.food-search-group-label {
  font-size: 11px; font-weight: 700; color: var(--gold); text-transform: uppercase;
  letter-spacing: 0.03em; padding: 8px 8px 4px;
}
.food-search-row {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  padding: 10px 8px; border-radius: 10px; cursor: pointer;
}
.food-search-row:active, .food-search-row:hover { background: var(--bg); }
.food-search-name { font-size: 13px; font-weight: 600; color: var(--text-dark); }
.food-search-cat { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.food-search-kcal { font-size: 12px; font-weight: 700; color: var(--gold); flex-shrink: 0; white-space: nowrap; display: flex; align-items: center; gap: 6px; }
.food-search-empty { padding: 14px 8px; font-size: 13px; color: var(--text-muted); text-align: center; }
.food-adjust-btn {
  background: var(--bg); border: 1px solid var(--border-soft); border-radius: 8px;
  padding: 3px 6px; font-size: 11px; cursor: pointer; line-height: 1;
}

.food-manual-toggle {
  font-size: 12px; color: var(--text-muted); text-decoration: underline;
  cursor: pointer; margin: 4px 0 10px; text-align: center;
}

/* ---------- Modal genérico (gramos) ---------- */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.55);
  display: flex; align-items: center; justify-content: center; z-index: 200; padding: 20px;
}
.modal-overlay.hidden { display: none; }
.modal-box {
  background: var(--card-white); border-radius: 18px; padding: 20px;
  width: 100%; max-width: 360px; border: 1px solid var(--border-soft);
  /* Ajustes finales Paquete 8 -- sin esto, un modal con contenido largo
     (p.ej. el formulario de una idea con checklist) podia crecer mas
     alla del alto visible en movil y dejar sus botones (Guardar...)
     fuera de alcance, sin ninguna forma de hacer scroll para llegar a
     ellos. Mismo criterio que ya usaba .gen-modal-box. */
  max-height: 88vh; overflow-y: auto;
}
.food-grams-badge {
  display: inline-block; font-size: 11px; font-weight: 700; color: var(--gold);
  background: rgba(255,209,0,0.1); border-radius: 20px; padding: 4px 12px; margin-bottom: 8px;
}
.food-grams-nota { font-size: 11.5px; color: var(--text-muted); line-height: 1.5; margin: -6px 0 14px; }
.food-grams-macros-title { font-size: 11px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.3px; margin: 4px 0 8px; }
.food-grams-macros-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 4px; }
.food-macro-chip {
  display: flex; flex-direction: column; gap: 2px; background: var(--input-bg);
  border: 1px solid var(--border-soft); border-radius: 12px; padding: 8px 10px;
}
.food-macro-chip-icono { font-size: 15px; }
.food-macro-chip-label { font-size: 10.5px; color: var(--text-muted); font-weight: 600; }
.food-macro-chip-valor { font-size: 14px; font-weight: 800; color: var(--text-dark); }
.food-grams-aporta { margin: 14px 0; padding: 12px; border-radius: 12px; background: rgba(255,209,0,0.06); border: 1px solid rgba(255,209,0,0.15); }
.food-grams-aporta-title { font-size: 12px; font-weight: 700; color: var(--gold); margin: 0 0 4px; }
.food-grams-aporta-texto { font-size: 12.5px; color: var(--text-dark); line-height: 1.5; margin: 0; }
.modal-actions { display: flex; gap: 10px; }
.modal-actions .btn-secondary, .modal-actions .btn-primary { flex: 1; }
.btn-secondary {
  background: var(--surface-3); color: var(--text-dark); border: 1px solid var(--border-soft);
  border-radius: 12px; padding: 12px; font-weight: 700; font-size: 14px; cursor: pointer;
  /* Visual System V2 — nivel "elemento interactivo": siempre debe
     distinguirse del fondo/card que lo contiene, nunca confundirse
     con var(--bg) plano. */
  box-shadow: var(--shadow-sm);
  transition: background 0.15s ease;
}
.btn-secondary:active { transform: scale(0.98); }

/* ---------- GET vs diario: kcal restantes ---------- */
.kcal-restante { font-size: 16px; font-weight: 600; margin-top: 14px; color: var(--text-dark); }
.kcal-restante b { color: var(--gold); font-size: 17px; }
.kcal-restante.over b { color: var(--danger); }
.kcal-restante.near b { color: #e08a00; }
.kcal-restante.proteina b { color: #4ade80; }
.kcal-restante.proteina.over b { color: var(--danger); }
.kcal-restante.proteina.near b { color: #e08a00; }
.kcal-bar { width: 100%; height: 10px; background: var(--bg); border-radius: 6px; margin-top: 8px; overflow: hidden; }
.kcal-bar-fill { height: 100%; background: var(--gold); border-radius: 6px; transition: width 0.3s ease; }
.kcal-bar-fill.near { background: #e08a00; }
.kcal-bar-fill.over { background: var(--danger); }
.kcal-bar-fill.proteina { background: #4ade80; }
.kcal-bar-fill.proteina.near { background: #e08a00; }
.kcal-bar-fill.proteina.over { background: var(--danger); }

/* ---------- Onboarding (bienvenida) ---------- */
.onboarding-box {
  background: var(--card-white); border-radius: 20px; padding: 24px 20px 18px;
  width: 100%; max-width: 380px; border: 1px solid var(--border-soft); text-align: center;
}
.onboarding-slide { display: none; }
.onboarding-slide.active { display: block; }
.onboarding-slide .ob-icon { font-size: 44px; margin-bottom: 14px; }
.onboarding-slide h2 { font-size: 18px; margin: 0 0 8px; color: var(--text-dark); }
.onboarding-slide p { font-size: 13px; color: var(--text-muted); line-height: 1.5; margin: 0; }
.onboarding-dots { display: flex; justify-content: center; gap: 6px; margin: 18px 0 16px; }
.onboarding-dots .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--border-soft); }
.onboarding-dots .dot.active { background: var(--gold); width: 18px; border-radius: 4px; }
.onboarding-actions { display: flex; gap: 10px; }
.onboarding-actions button { flex: 1; }
.onboarding-skip {
  background: none; border: none; color: var(--text-muted); font-size: 12px;
  margin-top: 12px; cursor: pointer; text-decoration: underline;
}

/* ---------- Día de descanso ---------- */
.descanso-btn {
  width: 100%; background: var(--card-white); border: 1px dashed var(--border-soft);
  color: var(--text-muted); border-radius: 14px; padding: 12px; font-size: 13px;
  font-weight: 600; cursor: pointer; margin: 10px 0;
}
.descanso-btn.active { border-color: var(--gold); color: var(--gold); }

/* ---------- Toggle switch (recordatorio de agua) ---------- */
.toggle-field { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.toggle-field label { flex: 1; margin: 0; }
.toggle-switch {
  width: 46px; height: 26px; border-radius: 20px; background: var(--border-soft);
  border: none; position: relative; cursor: pointer; flex-shrink: 0; padding: 0;
}
.toggle-switch.on { background: var(--gold); }
.toggle-knob {
  position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%;
  background: #fff; transition: left 0.15s ease;
}
.toggle-switch.on .toggle-knob { left: 23px; }

/* ---------- Chat flotante ---------- */
.chat-fab {
  position: fixed; right: 16px; bottom: calc(var(--nav-height) + 16px); z-index: 150;
  width: 56px; height: 56px; border-radius: 50%; background: var(--gold); color: var(--black);
  border: none; font-size: 24px; box-shadow: 0 4px 14px rgba(0,0,0,0.3); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.chat-fab-badge {
  position: absolute; top: -2px; right: -2px; background: var(--danger); color: #fff;
  font-size: 10px; font-weight: 700; min-width: 18px; height: 18px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center; padding: 0 4px;
}
.chat-box {
  background: var(--card-white); border-radius: 20px; width: 100%; max-width: 420px;
  height: 78vh; max-height: 640px; display: flex; flex-direction: column; overflow: hidden;
  border: 1px solid var(--border-soft);
}
.chat-header { display: flex; align-items: center; gap: 10px; padding: 14px; border-bottom: 1px solid var(--border-soft); }
.chat-header img { width: 38px; height: 38px; border-radius: 50%; border: 2px solid var(--gold); object-fit: cover; object-position: center 15%; }
.chat-header-title { font-weight: 700; font-size: 14px; color: var(--text-dark); }
.chat-header-sub { font-size: 11px; color: var(--text-muted); }
.chat-header button { margin-left: auto; background: none; border: none; font-size: 18px; color: var(--text-muted); cursor: pointer; }
.chat-messages { flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.chat-bubble { max-width: 78%; padding: 10px 13px; border-radius: 16px; font-size: 13px; line-height: 1.4; }
.chat-bubble.cliente { align-self: flex-end; background: var(--gold); color: var(--black); border-bottom-right-radius: 4px; }
.chat-bubble.admin { align-self: flex-start; background: var(--bg); color: var(--text-dark); border-bottom-left-radius: 4px; }
.chat-bubble .chat-time { display: block; font-size: 10px; opacity: 0.6; margin-top: 3px; }
.chat-input-row { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--border-soft); }
.chat-input-row input {
  flex: 1; padding: 11px 14px; border-radius: 20px; border: 1px solid var(--border-soft);
  background: var(--input-bg); color: var(--text-dark); font-size: 13px;
}
.chat-input-row button {
  width: 40px; height: 40px; border-radius: 50%; background: var(--gold); color: var(--black);
  border: none; font-size: 16px; cursor: pointer; flex-shrink: 0;
}
.chat-empty { text-align: center; color: var(--text-muted); font-size: 13px; padding: 30px 10px; }

/* ---------- Admin: badges y estadísticas ---------- */
.admin-badge {
  background: var(--danger); color: #fff; font-size: 11px; font-weight: 700;
  padding: 1px 8px; border-radius: 10px; margin-left: 6px;
}
.stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 16px; }
.stats-tile {
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 16px;
  padding: 14px; text-align: center;
}
.stats-tile .stats-val { font-size: 22px; font-weight: 700; color: var(--gold); }
.stats-tile .stats-lbl { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.admin-conv-row {
  display: flex; align-items: center; gap: 12px; background: var(--card-white);
  border: 1px solid var(--border-soft); border-radius: 14px; padding: 12px 14px; margin-bottom: 8px; cursor: pointer;
}
.admin-conv-row .conv-name { font-weight: 700; font-size: 13px; color: var(--text-dark); }
.admin-conv-row .conv-preview { font-size: 12px; color: var(--text-muted); margin-top: 2px; }

.chart-hint { font-size: 12px; color: var(--text-muted); text-align: center; margin-top: 10px; }

/* ---------- Botones de encuesta (más visibles) ---------- */
.encuesta-cta {
  display: block; width: 100%; text-align: left; background: linear-gradient(135deg, #fff8dc, #fff);
  border: 1.5px solid var(--gold); border-radius: 16px; padding: 14px 16px; margin-bottom: 16px;
  cursor: pointer; box-sizing: border-box;
}
.encuesta-cta-tag {
  display: inline-block; font-size: 10px; font-weight: 700; color: #7a5c00; background: rgba(255,215,0,0.35);
  padding: 2px 8px; border-radius: 8px; margin-bottom: 6px; letter-spacing: 0.02em;
}
.encuesta-cta-titulo { display: block; font-size: 14px; font-weight: 700; color: #222; line-height: 1.35; }
.encuesta-cta-sub { display: block; font-size: 12px; color: #6b6b6b; margin-top: 3px; }

/* ---------- Skin AI banner ---------- */
.skin-banner-img { width: 100%; border-radius: var(--radius-lg); margin-bottom: 16px; display: block; box-shadow: var(--shadow-md); }

/* ---------- Comunidad: comentarios y compartir ---------- */
.comunidad-comment-btn, .comunidad-share-btn {
  background: none; border: none; font-size: 13px; color: var(--text-dark); cursor: pointer;
  display: flex; align-items: center; gap: 4px;
}
.comunidad-comentarios-wrap { margin-top: 10px; border-top: 1px solid var(--border-soft); padding-top: 10px; }
.comunidad-comentarios-wrap.hidden { display: none; }
.comunidad-comentarios-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; }
.comunidad-comentario-row { font-size: 12.5px; color: var(--text-dark); line-height: 1.4; }
.comunidad-comentario-row b { color: var(--gold); }
.comunidad-comment-input-row { display: flex; gap: 8px; }
.comunidad-comment-input-row input {
  flex: 1; padding: 9px 12px; border-radius: 16px; border: 1px solid var(--border-soft);
  background: var(--input-bg); color: var(--text-dark); font-size: 12.5px;
}
.comunidad-comment-input-row button {
  width: 34px; height: 34px; border-radius: 50%; background: var(--gold); color: var(--black);
  border: none; font-size: 14px; cursor: pointer; flex-shrink: 0;
}

/* ---------- Admin: encuesta nutrición ---------- */
.nutri-items-admin { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }

/* ---------- Kilómetros: pestañas GPS / manual ---------- */
.km-mode-tabs { display: flex; gap: 8px; margin-bottom: 14px; }
.km-mode-tab {
  flex: 1; padding: 10px; border-radius: 12px; border: 1px solid var(--border-soft);
  background: var(--card-white); color: var(--text-muted); font-size: 13px; font-weight: 600; cursor: pointer;
}
.km-mode-tab.active { background: var(--gold); color: var(--black); border-color: var(--gold); }

.km-live-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
.km-live-stat { text-align: center; background: var(--bg); border-radius: 12px; padding: 12px 6px; }
.km-live-stat .val { font-size: 22px; font-weight: 700; color: var(--gold); }
.km-live-stat .lbl { font-size: 11px; color: var(--text-muted); margin-top: 2px; }

.km-map { width: 100%; height: 220px; border-radius: 14px; overflow: hidden; background: var(--bg); }
.km-gps-status { font-size: 12px; color: var(--text-muted); text-align: center; margin-top: 8px; min-height: 16px; }
.km-gps-actions { display: flex; gap: 10px; margin-top: 14px; }
.km-gps-actions button { flex: 1; }

.km-ver-mapa-btn {
  background: var(--bg); border: 1px solid var(--border-soft); border-radius: 10px;
  padding: 6px 9px; font-size: 14px; cursor: pointer;
}

/* ---------- Elegir cómo se usa la app / paywall ---------- */
.acceso-opcion-card {
  display: block; width: 100%; text-align: left; background: var(--card-white);
  border: 1.5px solid var(--border-soft); border-radius: 16px; padding: 16px;
  margin-bottom: 14px; cursor: pointer; box-sizing: border-box;
}
.acceso-opcion-card:active { border-color: var(--gold); }
.acceso-opcion-title { font-size: 15px; font-weight: 700; color: var(--text-dark); margin-bottom: 6px; }
.acceso-opcion-desc { font-size: 13px; color: var(--text-muted); line-height: 1.4; }
#acceso-requerido-acciones { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }

/* ---------- Admin: dashboard de control ---------- */
.admin-stats-grid-7 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 14px; }
.admin-stat-card {
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px;
  padding: 12px; text-align: center;
}
.admin-stat-icon { font-size: 18px; }
.admin-stat-val { font-size: 20px; font-weight: 700; color: var(--gold); margin-top: 2px; }
.admin-stat-lbl { font-size: 10.5px; color: var(--text-muted); margin-top: 2px; }

.admin-quick-actions { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; margin-bottom: 16px; }
.admin-quick-actions button {
  flex-shrink: 0; background: var(--gold); color: var(--black); border: none; border-radius: 12px;
  padding: 10px 14px; font-size: 12.5px; font-weight: 700; cursor: pointer; white-space: nowrap;
}
.admin-quick-actions button:disabled { background: var(--border-soft); color: var(--text-muted); cursor: not-allowed; }

.admin-filter-chips { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; margin: 10px 0; }
.entcli-categorias-wrap { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; margin-bottom: 14px; flex-wrap: wrap; }
.admin-chip {
  flex-shrink: 0; background: var(--card-white); border: 1px solid var(--border-soft); color: var(--text-muted);
  border-radius: 20px; padding: 7px 14px; font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.admin-chip.active { background: var(--gold); color: var(--black); border-color: var(--gold); }

/* ---------- Comunidad: burbuja de vídeo ---------- */
.comunidad-video-bubble {
  position: relative; width: 96px; height: 96px; border-radius: 50%; overflow: hidden;
  border: 3px solid var(--gold); cursor: pointer; margin-bottom: 10px; background: #000;
}
.comunidad-video-bubble video { width: 100%; height: 100%; object-fit: cover; }
.comunidad-video-bubble .play-badge {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 20px; background: rgba(0,0,0,0.25);
}

/* ---------- Grabador de vídeo (estilo nota de voz de WhatsApp) ---------- */
.video-record-circle-wrap {
  position: relative; width: 220px; height: 220px; border-radius: 50%; overflow: hidden;
  margin: 0 auto; border: 3px solid var(--gold); background: #000;
}
.video-record-circle-wrap video { width: 100%; height: 100%; object-fit: cover; transform: scaleX(-1); }
.video-record-timer {
  position: absolute; top: 10px; left: 50%; transform: translateX(-50%);
  background: rgba(0,0,0,0.6); color: #fff; font-size: 12px; font-weight: 700;
  padding: 3px 10px; border-radius: 10px;
}

/* ---------- Sistema de niveles ---------- */
.nivel-header { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.nivel-nombre { font-size: 15px; font-weight: 700; color: var(--text-dark); }
.nivel-siguiente { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.nivel-bar { width: 100%; height: 10px; background: var(--bg); border-radius: 6px; overflow: hidden; }
.nivel-bar-fill { height: 100%; background: linear-gradient(90deg, var(--gold), #ffec99); border-radius: 6px; transition: width 0.4s ease; }

/* ---------- Programa de referidos ---------- */
.referido-codigo-box {
  background: var(--bg); border: 2px dashed var(--gold); border-radius: 12px;
  padding: 14px; text-align: center; font-size: 24px; font-weight: 700;
  letter-spacing: 4px; color: var(--gold);
}

/* ---------- Mensaje generado con IA / respuestas de encuesta ---------- */
.mensaje-ia-textarea {
  width: 100%; min-height: 120px; padding: 12px; border-radius: 12px;
  border: 1px solid var(--border-soft); background: var(--input-bg); color: var(--text-dark);
  font-size: 13px; line-height: 1.5; resize: vertical; font-family: inherit;
}
.ae-respuesta-linea { font-size: 12.5px; color: var(--text-dark); padding: 8px 0; border-bottom: 1px solid var(--border-soft); }
.ae-respuesta-linea b { color: var(--gold); display: block; margin-bottom: 2px; font-weight: 600; }

/* ---- Generador de rutina automática (v2) ---- */
.gen-modal-box { max-height: 88vh; overflow-y: auto; max-width: 400px; }
.gen-section-label { font-size: 14px; font-weight: 700; color: var(--text-dark); margin: 18px 0 10px; }
.gen-section-label:first-of-type { margin-top: 0; }
.gen-sub { font-size: 12px; color: var(--text-muted); margin: 8px 0 0; }
.gen-chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.gen-chip {
  flex: 1 1 64px; text-align: center; padding: 12px 8px; border-radius: 12px;
  border: 1.5px solid var(--border-soft); background: var(--input-bg); color: var(--text-dark);
  font-size: 13px; font-weight: 700; cursor: pointer; line-height: 1.25;
}
.gen-chip.selected { background: var(--gold); border-color: var(--gold); color: #1a1a1a; }
.gen-chip.small { flex-basis: 30%; }
.gen-days-row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.gen-days-row .gen-chip { flex-basis: auto; padding: 10px 0; font-size: 13px; }
.field select {
  width: 100%; padding: 13px 14px; border-radius: 12px; border: 1px solid var(--border-soft);
  background: var(--input-bg); color: var(--text-dark); font-size: 15px; outline: none;
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%23a0a0a0' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat; background-position: right 14px center;
}
.field select:focus { border-color: var(--gold); }
.gen-lesion-extra.hidden { display: none; }

/* ---- Nuevo registro de progreso (v2) ---- */
.reg-header { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.reg-header .reg-header-icon { font-size: 22px; color: var(--gold); line-height: 1; }
.reg-header h2 { font-size: 19px; font-weight: 800; color: var(--text-dark); margin: 0; }
.reg-subtitle { font-size: 13px; color: var(--text-muted); margin: 2px 0 16px; }

.reg-section-title-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.reg-section-title-row .reg-section-title { font-size: 15px; font-weight: 700; color: var(--text-dark); display: flex; align-items: center; gap: 6px; }
.reg-info-dot { color: var(--gold); font-size: 12px; opacity: 0.8; }
.reg-toggle-btn {
  background: none; border: none; color: var(--gold); font-weight: 700; font-size: 13px;
  cursor: pointer; display: flex; align-items: center; gap: 4px; padding: 4px;
}
.reg-toggle-btn .chev { transition: transform 0.2s ease; display: inline-block; }
.reg-toggle-btn.open .chev { transform: rotate(180deg); }
.reg-accordion-body { overflow: hidden; max-height: 0; transition: max-height 0.25s ease; }
.reg-accordion-body.open { max-height: 900px; }
.reg-accordion-body-inner { padding-top: 14px; }

.reg-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.reg-grid.cols-3-desktop { grid-template-columns: 1fr; }
.reg-grid.cols-5-desktop { grid-template-columns: repeat(2, 1fr); }
.reg-photos-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }

.reg-metric-label { font-size: 12.5px; font-weight: 700; color: var(--text-dark); margin-bottom: 6px; display: block; }
.reg-metric-label .unit-hint { color: var(--text-muted); font-weight: 500; }
.metric-input-wrap { position: relative; }
.metric-input-wrap input {
  width: 100%; box-sizing: border-box; padding: 13px 42px 13px 14px; border-radius: 12px;
  border: 1px solid var(--border-soft); background: var(--input-bg); color: var(--text-dark);
  font-size: 17px; font-weight: 700; outline: none;
}
.metric-input-wrap input:focus { border-color: var(--gold); }
.metric-input-wrap input::placeholder { color: var(--text-muted); font-weight: 500; font-size: 14px; }
.metric-input-wrap .metric-unit {
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  font-size: 13px; color: var(--text-muted); font-weight: 600; pointer-events: none;
}
/* Quitar los spinners nativos del input number */
.metric-input-wrap input[type="number"]::-webkit-outer-spin-button,
.metric-input-wrap input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.metric-input-wrap input[type="number"] { -moz-appearance: textfield; }

.reg-metric-last { font-size: 11.5px; color: var(--text-muted); margin-top: 6px; display: flex; gap: 6px; flex-wrap: wrap; }
.reg-metric-delta { font-weight: 700; }
.reg-metric-delta.positivo { color: #4ade80; }
.reg-metric-delta.neutral { color: var(--text-muted); }

.reg-photos-title { display: flex; align-items: center; gap: 8px; }
.reg-photos-title .reg-header-icon { font-size: 18px; color: var(--gold); }
.reg-photo-slot {
  border: 1.5px dashed var(--border-soft); border-radius: 14px; padding: 16px 10px; text-align: center;
  cursor: pointer; background: var(--input-bg); position: relative; overflow: hidden;
}
.reg-photo-slot .reg-photo-icon { font-size: 22px; color: var(--text-muted); display: block; margin-bottom: 6px; }
.reg-photo-slot .reg-photo-label { font-size: 12.5px; font-weight: 700; color: var(--text-dark); display: block; }
.reg-photo-slot .reg-photo-sub { font-size: 10.5px; color: var(--text-muted); display: block; margin-top: 2px; }
.reg-photo-slot.has-file { border-style: solid; border-color: var(--gold); padding: 0; aspect-ratio: 3/4; }
.reg-photo-slot.has-file img { width: 100%; height: 100%; object-fit: cover; display: block; }
.reg-photo-slot.has-file .reg-photo-label,
.reg-photo-slot.has-file .reg-photo-sub { display: none; }
.reg-photo-slot.has-file .reg-photo-badge {
  position: absolute; bottom: 6px; left: 6px; right: 6px; background: rgba(0,0,0,0.6); color: #fff;
  font-size: 10.5px; font-weight: 700; padding: 4px 6px; border-radius: 8px; text-align: center;
}

@media (min-width: 600px) {
  .reg-grid.cols-3-desktop { grid-template-columns: repeat(3, 1fr); }
  .reg-grid.cols-4-desktop { grid-template-columns: repeat(4, 1fr); }
  .reg-grid.cols-5-desktop { grid-template-columns: repeat(5, 1fr); }
  .reg-photos-grid { grid-template-columns: repeat(2, 1fr); max-width: 360px; }
}

/* ---- Evolución / progreso (v2) ---- */
.evo-cards-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 18px; }
@media (max-width: 340px) {
  .evo-cards-grid { grid-template-columns: repeat(2, 1fr); }
}
.evo-metric-card {
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px;
  padding: 10px; display: flex; flex-direction: column; gap: 3px; min-width: 0;
}
.evo-metric-card .evo-mc-title { display: flex; align-items: center; gap: 4px; font-size: 10.5px; font-weight: 700; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.evo-metric-card .evo-mc-value { font-size: 17px; font-weight: 800; color: var(--text-dark); margin-top: 1px; white-space: nowrap; }
.evo-metric-card .evo-mc-value .u { font-size: 10.5px; font-weight: 600; color: var(--text-muted); margin-left: 2px; }
.evo-badge { display: inline-flex; align-items: center; gap: 4px; font-size: 9.5px; font-weight: 700; border-radius: 7px; padding: 3px 6px; margin-top: 2px; width: fit-content; }
.evo-badge.verde { background: rgba(74,222,128,0.12); color: #4ade80; }
.evo-badge.amarillo { background: rgba(245,158,11,0.12); color: #f59e0b; }
.evo-badge.naranja { background: rgba(251,146,60,0.14); color: #fb923c; }
.evo-mc-ref { font-size: 10.5px; color: var(--text-muted); margin-top: 2px; line-height: 1.4; }

.evo-main-grid { display: block; }
.evo-panel { background: var(--card-white); border: 1px solid var(--border-soft); border-radius: var(--radius); padding: 18px; margin-top: 16px; }
.evo-panel-title { font-size: 15px; font-weight: 800; color: var(--text-dark); margin: 0 0 12px; }
.evo-ultimo-fecha { font-size: 12px; color: var(--text-muted); margin-bottom: 2px; }
.evo-ultimo-valor { font-size: 26px; font-weight: 800; color: var(--text-dark); display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.evo-ultimo-delta { font-size: 13px; font-weight: 700; }
.evo-ultimo-delta-sub { font-size: 11px; color: var(--text-muted); font-weight: 500; margin-top: 2px; }

.evo-progreso-row { display: flex; justify-content: space-between; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--border-soft); font-size: 13px; }
.evo-progreso-row:last-child { border-bottom: none; }
.evo-progreso-label { display: flex; align-items: center; gap: 7px; color: var(--text-dark); font-weight: 600; }
.evo-progreso-val { font-weight: 700; }
.evo-progreso-val.positivo { color: #4ade80; }
.evo-progreso-val.neutral { color: var(--text-muted); }

.evo-desde-row { padding: 10px 0; border-bottom: 1px solid var(--border-soft); }
.evo-desde-row:last-child { border-bottom: none; }
.evo-desde-label { font-size: 12.5px; color: var(--text-muted); font-weight: 600; margin-bottom: 3px; }
.evo-desde-vals { font-size: 13px; color: var(--text-dark); }
.evo-desde-vals b { font-weight: 800; }

.evo-filtro-row { display: flex; justify-content: flex-end; margin-bottom: 10px; }
.evo-filtro-select {
  background: var(--input-bg); color: var(--text-dark); border: 1px solid var(--border-soft);
  border-radius: 10px; padding: 8px 10px; font-size: 12.5px; font-weight: 600; outline: none;
}

.evo-edu-grid { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 12px; }
.evo-edu-card { background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px; padding: 12px 14px; }
.evo-edu-card-top { display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
.evo-edu-card-title { font-size: 13px; font-weight: 700; color: var(--text-dark); display: flex; align-items: center; gap: 6px; }
.evo-edu-info-btn { background: none; border: none; color: var(--gold); font-size: 14px; cursor: pointer; padding: 2px; }
.evo-edu-card-sub { font-size: 11.5px; color: var(--text-muted); margin-top: 4px; }
.evo-edu-card-explain { font-size: 12px; color: var(--text-muted); line-height: 1.5; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border-soft); display: none; }
.evo-edu-card-explain.open { display: block; }

.evo-disclaimer { font-size: 11px; color: var(--text-muted); line-height: 1.5; margin-top: 16px; padding: 12px 14px; background: var(--input-bg); border-radius: 12px; display: flex; gap: 8px; }
.evo-disclaimer .di { flex-shrink: 0; }

@media (min-width: 600px) {
  .evo-cards-grid { grid-template-columns: repeat(4, 1fr); }
  .evo-main-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; align-items: start; }
  .evo-panel { margin-top: 0; }
  .evo-edu-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 900px) {
  .evo-cards-grid { grid-template-columns: repeat(7, 1fr); }
}

/* ---- Carrito Herbalife ---- */
.carrito-fab {
  position: fixed; left: 16px; bottom: calc(var(--nav-height) + 16px); z-index: 150;
  background: var(--gold); color: var(--black); border: none; border-radius: 30px;
  padding: 12px 16px; font-weight: 700; font-size: 15px; box-shadow: 0 4px 14px rgba(0,0,0,0.3);
  cursor: pointer; display: flex; align-items: center; gap: 4px;
}
.carrito-fab-count {
  background: var(--black); color: var(--gold); border-radius: 50%; min-width: 20px; height: 20px;
  display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; padding: 0 2px;
}
.carrito-item-row {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px;
  padding: 12px 14px; margin-bottom: 10px;
}
.carrito-item-info { flex: 1; min-width: 0; }
.carrito-item-nombre { font-size: 13.5px; font-weight: 700; color: var(--text-dark); }
.carrito-item-qty { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.carrito-qty-btn {
  width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--border-soft);
  background: var(--input-bg); color: var(--text-dark); font-weight: 700; cursor: pointer; font-size: 15px;
}
.carrito-qty-val { font-weight: 700; min-width: 18px; text-align: center; color: var(--text-dark); }
.carrito-remove-btn { background: none; border: none; color: var(--text-muted); font-size: 16px; cursor: pointer; padding: 4px; flex-shrink: 0; }
.carrito-add-btn { display: block; }

/* ---------- Admin: dashboard rediseñado (v2) ---------- */
.admin-stats-grid-8 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 18px; }
.admin-stat-card-v2 {
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 16px;
  padding: 16px; text-align: center; cursor: pointer; transition: border-color 0.15s ease, background 0.15s ease;
}
.admin-stat-card-v2:hover { border-color: var(--gold); }
.admin-stat-icon-v2 { font-size: 22px; }
.admin-stat-icon-v2 svg { width: 22px; height: 22px; }
.admin-stat-val-v2 { font-size: 26px; font-weight: 800; color: var(--gold); margin-top: 4px; }
.admin-stat-lbl-v2 { font-size: 12px; color: var(--text-dark); font-weight: 600; margin-top: 2px; }
.admin-stat-link { font-size: 11px; color: var(--text-muted); margin-top: 8px; font-weight: 600; }
.admin-stat-card-v2:hover .admin-stat-link { color: var(--gold); }

.admin-qa-row { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; margin-bottom: 18px; }
.admin-qa-btn {
  flex-shrink: 0; background: var(--card-white); color: var(--text-dark); border: 1px solid var(--border-soft);
  border-radius: 12px; padding: 10px 14px; font-size: 12.5px; font-weight: 700; cursor: pointer;
  white-space: nowrap; display: flex; align-items: center; gap: 8px;
}
.admin-qa-btn.gold { background: var(--gold); color: var(--black); border-color: var(--gold); }
.admin-qa-btn:disabled { color: var(--text-muted); cursor: not-allowed; }
.admin-qa-count {
  background: rgba(0,0,0,0.15); font-size: 11px; font-weight: 800; border-radius: 8px; padding: 1px 7px; min-width: 18px;
}
.admin-qa-btn:not(.gold) .admin-qa-count { background: var(--input-bg); color: var(--text-dark); }

.admin-toolbar-row { display: flex; gap: 10px; align-items: center; margin: 10px 0 16px; flex-wrap: wrap; }
.admin-toolbar-row select { flex: 1; min-width: 140px; }
.admin-toolbar-btn {
  background: var(--card-white); border: 1px solid var(--border-soft); color: var(--text-dark);
  border-radius: 10px; padding: 10px 14px; font-size: 12.5px; font-weight: 700; cursor: pointer;
  display: flex; align-items: center; gap: 6px; white-space: nowrap;
}
.admin-toolbar-btn.active { border-color: var(--gold); color: var(--gold); }
.admin-advanced-filters { background: var(--input-bg); border-radius: 12px; padding: 12px 14px; margin-bottom: 12px; display: none; }
.admin-advanced-filters.open { display: block; }
.admin-advanced-filters label { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-dark); cursor: pointer; }

.admin-empty-state-v2 { text-align: center; padding: 44px 20px; }
.admin-empty-icon { font-size: 34px; opacity: 0.5; margin-bottom: 10px; }
.admin-empty-title { font-size: 15px; font-weight: 700; color: var(--text-dark); }
.admin-empty-sub { font-size: 12.5px; color: var(--text-muted); margin-top: 4px; }

.admin-pagination-row { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; flex-wrap: wrap; gap: 10px; }
.admin-pagination-left { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--text-muted); }
.admin-pagination-left select { padding: 6px 8px; border-radius: 8px; }
.admin-pagination-right { display: flex; gap: 8px; }
.admin-pagination-right button {
  background: var(--card-white); border: 1px solid var(--border-soft); color: var(--text-dark);
  border-radius: 10px; padding: 8px 14px; font-size: 12.5px; font-weight: 700; cursor: pointer;
}
.admin-pagination-right button:disabled { opacity: 0.4; cursor: not-allowed; }

.admin-quickaccess-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
.admin-qacard {
  position: relative; background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px;
  padding: 14px; display: flex; align-items: center; gap: 12px; cursor: pointer; transition: border-color 0.15s ease;
}
.admin-qacard:hover { border-color: var(--gold); }
.admin-qacard .aq-icon { font-size: 20px; flex-shrink: 0; }
.admin-qacard .aq-body { flex: 1; min-width: 0; }
.admin-qacard .aq-title { font-size: 13.5px; font-weight: 700; color: var(--text-dark); }
.admin-qacard .aq-desc { font-size: 11.5px; color: var(--text-muted); margin-top: 2px; }
.admin-qacard .aq-arrow { font-size: 16px; color: var(--text-muted); flex-shrink: 0; }
.admin-qacard:hover .aq-arrow { color: var(--gold); }
.admin-qacard .aq-badge {
  position: absolute; top: 10px; right: 34px; background: var(--danger); color: #fff; font-size: 10.5px;
  font-weight: 700; border-radius: 8px; padding: 1px 6px;
}
.admin-qacard.no-arrow { cursor: default; }
.admin-qacard.no-arrow:hover { border-color: var(--border-soft); }

.admin-help-card {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px; padding: 14px 16px; margin-top: 18px;
}
.admin-help-text { font-size: 12.5px; color: var(--text-muted); }
.admin-help-text b { color: var(--text-dark); }
.admin-help-btn {
  background: transparent; border: 1.5px solid var(--gold); color: var(--gold); border-radius: 10px;
  padding: 9px 14px; font-size: 12.5px; font-weight: 700; cursor: pointer; white-space: nowrap; flex-shrink: 0;
}

@media (min-width: 700px) {
  .admin-stats-grid-8 { grid-template-columns: repeat(4, 1fr); }
  .admin-quickaccess-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 480px) and (max-width: 699px) {
  .admin-quickaccess-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   ENTRENO — Fase 1 (rediseño visual)
   Clases nuevas, con ámbito propio (.entreno-shell). No tocan
   .muscle-card ni ninguna otra pantalla de NF24.
   ============================================================ */
.entreno-shell {
  --e-surface: var(--card-white);
  --e-border: var(--border-soft);
  --e-text: var(--text-dark);
  --e-text-muted: var(--text-muted);
  --e-accent: #FFD100;
  --e-accent-ink: #171310;
}
[data-theme="dark"] .entreno-shell {
  --e-surface: #151515;
  --e-border: rgba(255,255,255,0.08);
  --e-text: #ffffff;
  --e-text-muted: rgba(255,255,255,0.55);
}

.entreno-greeting { margin-bottom: 22px; }
.entreno-greeting h1 {
  font-size: 23px; font-weight: 800; letter-spacing: -0.3px;
  margin: 0 0 4px; color: var(--e-text);
}
.entreno-greeting p { font-size: 13.5px; color: var(--e-text-muted); margin: 0; }

.entreno-section-row { display: flex; align-items: center; justify-content: space-between; margin: 16px 0 0; }
.entreno-section-row:first-of-type { margin-top: 0; }
.entreno-section-label {
  font-size: 12px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase;
  color: var(--e-text-muted);
}
.entreno-fav-link {
  display: flex; align-items: center; gap: 5px;
  background: none; border: none; cursor: pointer; padding: 2px 0;
  font-size: 12px; font-weight: 600; color: var(--e-text-muted);
}
.entreno-fav-link svg { width: 15px; height: 15px; }
.entreno-fav-link:active { color: var(--e-accent); }
/* Accent fino bajo cada título de sección — sustituye a .underline dentro de
   Entreno para no tocar la clase global compartida con el resto de NF24. */
.entreno-underline {
  width: 26px; height: 2px; border-radius: 2px; background: var(--e-accent);
  margin: 6px 0 10px;
}

.entreno-tools { display: flex; flex-direction: column; gap: 10px; margin-bottom: 4px; }
.entreno-tool-card {
  display: flex; align-items: center; gap: 14px;
  background: var(--e-surface); border: 1px solid var(--e-border); border-radius: 16px;
  padding: 14px 16px; cursor: pointer; text-align: left; width: 100%;
}
.entreno-tool-card:active { transform: scale(0.99); }
.entreno-tool-icon {
  flex-shrink: 0; width: 42px; height: 42px; border-radius: 12px;
  background: rgba(255,209,0,0.14); color: var(--e-accent-ink, #171310);
  display: flex; align-items: center; justify-content: center; font-size: 20px;
}
[data-theme="dark"] .entreno-tool-icon { color: var(--e-accent); }
.entreno-tool-icon svg { width: 20px; height: 20px; }
.entreno-tool-text { flex: 1; min-width: 0; }
.entreno-tool-title { display: block; font-size: 14.5px; font-weight: 700; color: var(--e-text); }
.entreno-tool-sub { display: block; font-size: 12px; color: var(--e-text-muted); margin-top: 2px; }
.entreno-tool-arrow { flex-shrink: 0; color: var(--e-text-muted); display: flex; }
.entreno-tool-arrow svg { width: 18px; height: 18px; }

.entreno-muscle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.entreno-muscle-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 7px;
  background: var(--e-surface); border: 1px solid var(--e-border); border-radius: 16px;
  padding: 12px 13px; cursor: pointer; text-align: left; min-height: 88px; width: 100%;
}
.entreno-muscle-card:active { transform: scale(0.99); }
/* Abdominales: ocupa las dos columnas para cerrar bien la última fila. */
.entreno-muscle-card--wide { grid-column: 1 / -1; }
.entreno-muscle-icon {
  width: 32px; height: 32px; border-radius: 9px;
  background: rgba(255,209,0,0.14); color: var(--e-accent-ink, #171310);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
[data-theme="dark"] .entreno-muscle-icon { color: var(--e-accent); }
.entreno-muscle-icon svg { width: 18px; height: 18px; }
.entreno-muscle-title { font-size: 14px; font-weight: 700; color: var(--e-text); }
.entreno-muscle-sub { font-size: 11.5px; color: var(--e-text-muted); margin-top: -5px; }

@media (min-width: 760px) {
  .page.entreno-shell { max-width: 900px; }
  .entreno-tools { flex-direction: row; }
  .entreno-tool-card { flex: 1; }
  .entreno-muscle-grid { grid-template-columns: repeat(3, 1fr); }
  .entreno-ficha-meta-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ---- Fase 2B — ficha del ejercicio ---- */
.entreno-ficha-video-wrap {
  width: 100%; aspect-ratio: 16/9; border-radius: 16px; overflow: hidden;
  background: var(--e-surface); margin-bottom: 16px;
}
.entreno-ficha-video { width: 100%; height: 100%; object-fit: cover; display: block; background: #000; }

.entreno-ficha-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.entreno-ficha-heading-text { min-width: 0; }
.entreno-ficha-heading-text h2 {
  font-size: 19px; font-weight: 800; color: var(--e-text); margin: 0 0 4px; text-transform: capitalize;
}
.entreno-ficha-badge {
  display: inline-block; font-size: 11.5px; font-weight: 600; color: var(--e-accent);
  background: rgba(255,209,0,0.14); padding: 3px 9px; border-radius: 20px;
}
.entreno-ficha-fav {
  flex-shrink: 0; background: none; border: none; font-size: 24px; line-height: 1;
  color: var(--e-text-muted); cursor: pointer; padding: 2px;
}
.entreno-ficha-fav.active { color: var(--e-accent); }

.entreno-ficha-section { margin-top: 22px; }
.entreno-ficha-descripcion { font-size: 13.5px; line-height: 1.6; color: var(--e-text); margin: 8px 0 0; }

.entreno-ficha-meta-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.entreno-ficha-meta-item {
  background: var(--e-surface); border: 1px solid var(--e-border); border-radius: 12px; padding: 10px 12px;
}
.entreno-ficha-meta-label { display: block; font-size: 10.5px; font-weight: 600; color: var(--e-text-muted); text-transform: uppercase; letter-spacing: 0.3px; }
.entreno-ficha-meta-val { display: block; font-size: 13px; font-weight: 700; color: var(--e-text); margin-top: 3px; text-transform: capitalize; }

.entreno-ficha-programacion {
  margin-top: 8px; background: rgba(255,209,0,0.08); border: 1px solid rgba(255,209,0,0.25);
  border-radius: 12px; padding: 12px 14px;
}
.entreno-ficha-programacion p { margin: 0; font-size: 13.5px; font-weight: 600; color: var(--e-text); }

.entreno-ultima-vez-body { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.entreno-ficha-empty { margin: 0; font-size: 13px; color: var(--e-text-muted); }
.entreno-ultima-serie {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  background: var(--e-surface); border: 1px solid var(--e-border); border-radius: 10px;
  padding: 8px 12px;
}
.entreno-ultima-serie-num { font-size: 12.5px; font-weight: 700; color: var(--e-text-muted); flex-shrink: 0; }
.entreno-ultima-serie-datos { font-size: 13px; font-weight: 600; color: var(--e-text); text-align: right; }

.entreno-hoy-body { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.entreno-hoy-row {
  display: grid; grid-template-columns: 22px 1fr 1fr 1fr auto; align-items: center; gap: 8px;
  background: var(--e-surface); border: 1px solid var(--e-border); border-radius: 12px;
  padding: 8px 10px;
}
.entreno-hoy-row.guardada { border-color: rgba(34,201,94,0.35); background: rgba(34,201,94,0.06); }
.entreno-hoy-serie-num { font-size: 12.5px; font-weight: 800; color: var(--e-text-muted); text-align: center; }
.entreno-hoy-input {
  width: 100%; min-width: 0; background: var(--e-surface-2, rgba(128,128,128,0.1));
  border: 1px solid var(--e-border); border-radius: 8px; color: var(--e-text);
  font-size: 13px; padding: 7px 6px; text-align: center;
}
.entreno-hoy-input:disabled { opacity: 0.75; }
.entreno-hoy-guardar-btn {
  flex-shrink: 0; background: var(--e-accent); color: #171310; border: none; border-radius: 8px;
  font-size: 12px; font-weight: 700; padding: 8px 10px; cursor: pointer; white-space: nowrap;
}
.entreno-hoy-guardar-btn:disabled { background: rgba(34,201,94,0.18); color: #22C95E; cursor: default; }
.entreno-hoy-add-btn {
  margin-top: 10px; width: 100%; background: none; border: 1px dashed var(--e-border);
  border-radius: 12px; color: var(--e-text-muted); font-size: 13px; font-weight: 600;
  padding: 10px; cursor: pointer;
}

.entreno-descanso-row {
  display: flex; align-items: center; gap: 10px; margin-top: -2px; margin-bottom: 2px;
  background: rgba(255,209,0,0.08); border: 1px solid rgba(255,209,0,0.25);
  border-radius: 12px; padding: 8px 12px;
}
.entreno-descanso-row.completado { background: rgba(34,201,94,0.1); border-color: rgba(34,201,94,0.35); }
.entreno-descanso-label { font-size: 11.5px; font-weight: 700; color: var(--e-accent); flex-shrink: 0; }
.entreno-descanso-row.completado .entreno-descanso-label { color: #22C95E; }
.entreno-descanso-tiempo { font-size: 15px; font-weight: 800; color: var(--e-text); font-variant-numeric: tabular-nums; }
.entreno-descanso-siguiente-btn {
  margin-left: auto; flex-shrink: 0; background: var(--e-accent); color: #171310; border: none;
  border-radius: 8px; font-size: 11.5px; font-weight: 700; padding: 7px 10px; cursor: pointer;
}
.entreno-descanso-siguiente-btn:disabled { opacity: 0.6; cursor: default; }

.entreno-finalizar-block { margin-top: 16px; }
.entreno-finalizar-btn {
  width: 100%; background: none; border: 1px solid rgba(220,38,38,0.35); color: #ef4444;
  border-radius: 12px; font-size: 13px; font-weight: 700; padding: 11px; cursor: pointer;
}
.entreno-finalizar-confirm {
  background: var(--e-surface); border: 1px solid var(--e-border); border-radius: 14px; padding: 14px;
}
.entreno-finalizar-titulo { margin: 0 0 4px; font-size: 14px; font-weight: 800; color: var(--e-text); }
.entreno-finalizar-texto { margin: 0 0 12px; font-size: 12.5px; color: var(--e-text-muted); line-height: 1.4; }
.entreno-finalizar-botones { display: flex; gap: 8px; }
.entreno-finalizar-secundario, .entreno-finalizar-primario {
  flex: 1; border-radius: 10px; font-size: 12.5px; font-weight: 700; padding: 10px; cursor: pointer;
}
.entreno-finalizar-secundario { background: none; border: 1px solid var(--e-border); color: var(--e-text); }
.entreno-finalizar-primario { background: #ef4444; border: none; color: #fff; }
.entreno-finalizar-secundario:disabled, .entreno-finalizar-primario:disabled { opacity: 0.6; cursor: default; }
.entreno-finalizar-estado {
  text-align: center; background: rgba(34,201,94,0.1); border: 1px solid rgba(34,201,94,0.35);
  border-radius: 12px; padding: 12px; font-size: 13.5px; font-weight: 700; color: #22C95E;
}

/* ---- Fase 2A — listado compacto de ejercicios por grupo muscular ---- */
.entreno-ex-list { display: flex; flex-direction: column; gap: 8px; }
.entreno-ex-row {
  display: flex; align-items: center; gap: 12px;
  background: var(--e-surface); border: 1px solid var(--e-border); border-radius: 14px;
  padding: 8px 10px; cursor: pointer;
}
.entreno-ex-row:active { transform: scale(0.99); }
.entreno-ex-thumb {
  flex-shrink: 0; width: 60px; height: 44px; border-radius: 9px; overflow: hidden;
  background: var(--e-surface-2, rgba(128,128,128,0.15));
}
.entreno-ex-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.entreno-ex-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.entreno-ex-name {
  font-size: 13.5px; font-weight: 700; color: var(--e-text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-transform: capitalize;
}
.entreno-ex-meta { font-size: 11.5px; color: var(--e-text-muted); }
.entreno-ex-fav {
  flex-shrink: 0; background: none; border: none; font-size: 18px; line-height: 1;
  color: var(--e-text-muted); cursor: pointer; padding: 4px;
}
.entreno-ex-fav.active { color: var(--e-accent); }
.entreno-ex-chevron { flex-shrink: 0; color: var(--e-text-muted); display: flex; }
.entreno-ex-chevron svg { width: 17px; height: 17px; }

/* ---- Header y navegación inferior: retoque visual (Fase 1 / 1.1) ----
   Toca solo la "chrome" compartida (header/nav), no el contenido
   de ninguna otra página. */
#app-header { padding: 16px 66px 6px; }
.app-header-logo-img { height: 23px; }
.app-header-sub { font-size: 11.5px; }

/* Fase 1.1 — antes estaban con position:fixed, por lo que se quedaban
   flotando sobre el contenido al hacer scroll mientras el resto del header
   (logo/nombre) sí se desplazaba. Con position:absolute (sin ancestro
   posicionado) quedan anclados al documento, no al viewport: se mueven
   junto con el resto del header como una sola unidad. La bottom nav no se
   toca aquí, sigue fixed. No cambia ninguna funcionalidad del botón. */
.profile-toggle { position: absolute; width: 46px; height: 46px; box-shadow: 0 2px 10px rgba(0,0,0,0.18); }
.theme-toggle { position: absolute; width: 38px; height: 38px; box-shadow: 0 2px 10px rgba(0,0,0,0.18); }

#bottom-nav {
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -2px 16px rgba(0,0,0,0.10);
}
.nav-btn.active { border-radius: 12px; padding: 6px 10px; }

/* Fase 1.1 — más aire para las etiquetas largas (Suplementos/Reservas/
   Comunidad) sin aumentar la altura de la barra. Ámbito reducido a
   #bottom-nav para no tocar el menú "+" (.nav-more-menu), que ya tiene
   su propio tamaño de letra. */
#bottom-nav .nav-btn { font-size: 9.5px; letter-spacing: -0.05px; padding: 6px 0; font-weight: 600; }
[data-theme="dark"] #bottom-nav .nav-btn { color: rgba(255, 255, 255, 0.55); }

/* ============================================================
   PASADA VISUAL — Dashboard, Seguimiento, Planes, Suplementos,
   Reservas, Comunidad (siguiendo el sistema visual de Entreno)
   ============================================================
   Estrategia de bajo riesgo: en vez de reescribir cada componente,
   se redefinen aquí las MISMAS variables compartidas que ya usa
   casi todo el CSS existente (--card-white, --border-soft,
   --text-dark, --text-muted, --gold, --input-bg, --black), pero
   SOLO dentro de estas páginas y SOLO en modo oscuro — con los
   mismos valores exactos que ya usa Entreno (#151515, #FFD100...).
   Así decenas de tarjetas, botones e inputs ya existentes heredan
   el aspecto oscuro automáticamente, sin duplicar sus reglas.
   No toca --bg (ya es compartido y oscuro en toda la app), no
   toca ningún id/clase usado por JS, no cambia layout ni lógica.
   En modo claro estas páginas no cambian de aspecto. */
[data-theme="dark"] #page-dashboard,
[data-theme="dark"] #page-seguimiento,
[data-theme="dark"] #page-transformacion,
[data-theme="dark"] #page-planes,
[data-theme="dark"] #page-herbalife,
[data-theme="dark"] #page-herbalife-detail,
[data-theme="dark"] #page-herbalife-carrito,
[data-theme="dark"] #page-horarios,
[data-theme="dark"] #page-comunidad {
  --card-white: #151515;
  --border-soft: rgba(255,255,255,0.08);
  --text-dark: #ffffff;
  --text-muted: rgba(255,255,255,0.55);
  --gold: #FFD100;
  --input-bg: rgba(128,128,128,0.08);
  --black: #151515;
}

/* Los pocos componentes con colores fijos (no basados en variables),
   pensados originalmente para fondo claro — ajuste puntual para que
   sigan siendo legibles sobre fondo oscuro. */
[data-theme="dark"] #page-planes .encuesta-cta {
  background: linear-gradient(135deg, #1c1806, #151515);
}
[data-theme="dark"] #page-planes .encuesta-cta-tag { color: #FFD100; background: rgba(255,209,0,0.16); }
[data-theme="dark"] #page-planes .encuesta-cta-titulo { color: #ffffff; }
[data-theme="dark"] #page-planes .encuesta-cta-sub { color: rgba(255,255,255,0.55); }

[data-theme="dark"] #page-herbalife .discount-banner {
  background: linear-gradient(135deg, #1c1806, #151515); color: rgba(255,255,255,0.85);
}
[data-theme="dark"] #page-herbalife .discount-banner b { color: #FFD100; }

[data-theme="dark"] #page-seguimiento .photo-upload-btn,
[data-theme="dark"] #page-comunidad .photo-upload-btn {
  border-color: rgba(255,255,255,0.14);
}

/* Un poco más de aire entre bloques, para que se sienta menos a
   "formulario largo" y más a secciones diferenciadas — solo espaciado,
   ninguna estructura nueva. */
[data-theme="dark"] #page-seguimiento .tracker-card,
[data-theme="dark"] #page-planes .tracker-card,
[data-theme="dark"] #page-horarios .tracker-card {
  padding: 18px 16px;
}
[data-theme="dark"] #page-dashboard .dash-card { padding: 16px; }

/* Jerarquía del saludo del Dashboard, la primera impresión de la app */
[data-theme="dark"] #page-dashboard .dash-greeting h1 { color: #ffffff; font-size: 25px; }
[data-theme="dark"] #page-dashboard .dash-greeting p { color: rgba(255,255,255,0.55); }

/* ============================================================
   SEGUNDA PASADA VISUAL — ajustes específicos por componente
   ============================================================
   A diferencia de la primera pasada (que redefinió variables
   compartidas para toda una página), aquí cada regla es
   selector-específica: apunta a un componente concreto dentro
   de una página concreta. Nada de esto cambia layout estructural,
   solo jerarquía, espaciado, bordes y densidad visual. */

/* ---- 1. Dashboard ---- */
[data-theme="dark"] #page-dashboard .dash-stat {
  border-color: var(--border-soft); padding: 13px 10px; gap: 5px;
}
[data-theme="dark"] #page-dashboard .dash-stat .dash-lbl { opacity: 0.85; }
[data-theme="dark"] #page-dashboard .smart-notif {
  border-color: var(--border-soft); background: #151515;
}
[data-theme="dark"] #page-dashboard #dash-goal-card.dash-card {
  background: rgba(255,209,0,0.06); border: 1px solid rgba(255,209,0,0.18);
  padding: 13px 16px; cursor: default;
}
[data-theme="dark"] #page-dashboard #dash-goal-card .dash-card-title { color: rgba(255,255,255,0.6); }
[data-theme="dark"] #page-dashboard #dash-next-card.dash-card {
  position: relative; border-left: 3px solid var(--gold); padding: 16px 18px;
  transition: border-color 0.15s ease;
}
[data-theme="dark"] #page-dashboard #dash-next-card.dash-card::after {
  content: "›"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%);
  font-size: 22px; color: var(--gold); font-weight: 700;
}
[data-theme="dark"] #page-dashboard #dash-next-card.dash-card:active { border-left-color: #fff; }
[data-theme="dark"] #page-dashboard #dash-start-btn { padding: 13px; }

.dash-invite-card {
  display: flex; align-items: center; gap: 12px; width: 100%; margin-top: 10px;
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px;
  padding: 13px 14px; cursor: pointer; text-align: left;
}
.dash-invite-icon { font-size: 18px; flex-shrink: 0; }
.dash-invite-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.dash-invite-title { font-size: 13.5px; font-weight: 700; color: var(--text-dark); }
.dash-invite-sub { font-size: 11.5px; color: var(--text-muted); }
.dash-invite-arrow { font-size: 20px; color: var(--gold); flex-shrink: 0; }

/* ---- 2. Seguimiento ---- */
[data-theme="dark"] #page-seguimiento > .tracker-card { padding: 16px 14px; border-radius: 16px; }
[data-theme="dark"] #page-seguimiento .reg-header h2 { font-size: 17px; }
[data-theme="dark"] #page-seguimiento .reg-section-title-row {
  background: rgba(255,255,255,0.03); border-radius: 10px; padding: 8px 10px; margin: 18px 0 10px;
}
[data-theme="dark"] #page-seguimiento .reg-section-title-row:first-of-type { margin-top: 4px; }
[data-theme="dark"] #page-seguimiento .metric-input-wrap input { padding: 11px 38px 11px 12px; font-size: 15.5px; }
[data-theme="dark"] #page-seguimiento .reg-metric-last { opacity: 0.75; font-size: 11px; }
[data-theme="dark"] #page-seguimiento .reg-toggle-btn {
  background: rgba(255,209,0,0.1); border-radius: 20px; padding: 5px 10px 5px 12px;
}
[data-theme="dark"] #page-seguimiento .evo-panel,
[data-theme="dark"] #page-seguimiento .evo-metric-card,
[data-theme="dark"] #page-seguimiento .evo-edu-card { border-color: rgba(255,255,255,0.06); }
[data-theme="dark"] #page-seguimiento .reg-photo-slot { border-color: rgba(255,255,255,0.14); }

/* ---- 3. Planes ---- */
[data-theme="dark"] #page-planes .encuesta-cta {
  display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-width: 1px;
}
[data-theme="dark"] #page-planes .encuesta-cta-tag { margin-bottom: 0; flex-shrink: 0; }
[data-theme="dark"] #page-planes .encuesta-cta-sub { display: none; }
[data-theme="dark"] #page-planes #lista-compra-shortcut.mi-rutina-card {
  border-color: rgba(255,209,0,0.2); background: linear-gradient(135deg, #1a1a1a, var(--black));
}
[data-theme="dark"] #page-planes .tracker-card .section-title { font-size: 15px; margin: 0 0 14px; }
[data-theme="dark"] #page-planes .tracker-grid .field input,
[data-theme="dark"] #page-planes .tracker-grid .field select { padding: 11px 12px; font-size: 14px; }
[data-theme="dark"] #page-planes .calc-result {
  background: rgba(255,209,0,0.06); border: 1px solid rgba(255,209,0,0.15); padding: 16px;
}
[data-theme="dark"] #page-planes .food-search-row { padding: 8px 6px; }
[data-theme="dark"] #page-planes #escaner-barcode-btn.ranking-shortcut {
  background: none; border: 1px dashed var(--border-soft); color: var(--text-muted);
  font-weight: 600; padding: 10px;
}
[data-theme="dark"] #food-grams-modal .modal-box {
  background: #151515; border: 1px solid var(--border-soft); border-radius: 18px;
}

/* ---- 4. Suplementos ---- */
[data-theme="dark"] #page-herbalife .category-card,
[data-theme="dark"] #page-admin .category-card {
  border-left-width: 1px; padding: 12px 14px; margin-bottom: 10px;
}
[data-theme="dark"] #page-herbalife-detail .product-card {
  border: 1px solid var(--border-soft); padding: 13px;
}
[data-theme="dark"] #page-herbalife-detail .product-card img { background: rgba(255,255,255,0.04); }
[data-theme="dark"] #page-herbalife-detail .wa-btn { font-weight: 800; }
[data-theme="dark"] #page-herbalife-detail .carrito-add-btn.btn-secondary { opacity: 0.85; }
[data-theme="dark"] #page-herbalife-carrito .carrito-item-row { padding: 10px 12px; border-radius: 12px; }

/* ---- 5. Reservas — rediseño del calendario ---- */
[data-theme="dark"] #page-horarios .week-nav { margin-bottom: 12px; }
[data-theme="dark"] #page-horarios .week-nav-btn { padding: 7px 9px; border-radius: 10px; }
[data-theme="dark"] #page-horarios .calendar-table thead th {
  color: var(--text-muted); padding-bottom: 10px; letter-spacing: 0.3px;
}
[data-theme="dark"] #page-horarios .calendar-table thead th .day-name { font-size: 11px; color: var(--text-dark); }
[data-theme="dark"] #page-horarios .cal-cell {
  width: 52px; height: 42px; border-radius: 11px; font-size: 10px;
}
[data-theme="dark"] #page-horarios .cal-cell.libre { background: rgba(255,215,0,0.08); border-color: rgba(255,215,0,0.4); color: var(--gold); }
[data-theme="dark"] #page-horarios .cal-cell.reservado { box-shadow: 0 0 0 2px rgba(255,209,0,0.25); font-weight: 800; }
[data-theme="dark"] #page-horarios .cal-cell.pasado { border-style: solid; opacity: 0.3; }
[data-theme="dark"] #page-horarios #horarios-list .empty-state {
  background: var(--card-white); border: 1px dashed var(--border-soft); border-radius: 16px; padding: 32px 20px;
}
[data-theme="dark"] #page-horarios #repetir-reserva-btn.ranking-shortcut {
  background: rgba(255,209,0,0.08); border-color: rgba(255,209,0,0.25); color: var(--gold);
}

/* ---- 6. Comunidad ---- */
[data-theme="dark"] #page-comunidad #comunidad-post-form.tracker-card { padding: 14px; }
[data-theme="dark"] #page-comunidad .profile-photo-row { margin-bottom: 8px !important; }
[data-theme="dark"] #page-comunidad .photo-upload-btn { padding: 10px; font-size: 12.5px; }
[data-theme="dark"] #page-comunidad #comunidad-post-btn.btn-primary { padding: 11px; margin-top: 8px; }
[data-theme="dark"] #page-comunidad .comunidad-card { padding: 12px 14px; border-color: rgba(255,255,255,0.06); }
[data-theme="dark"] #page-comunidad .comunidad-card:has(img.comunidad-foto),
[data-theme="dark"] #page-comunidad .comunidad-card:has(.comunidad-video-bubble) { padding: 10px; }
/* Publicaciones automáticas (sin foto/vídeo) — tratamiento de "actividad", no de post */
[data-theme="dark"] #page-comunidad .comunidad-card:not(:has(img.comunidad-foto)):not(:has(.comunidad-video-bubble)) {
  background: rgba(255,209,0,0.04); border-left: 2px solid rgba(255,209,0,0.4); padding: 10px 14px;
}
[data-theme="dark"] #page-comunidad .comunidad-like-btn,
[data-theme="dark"] #page-comunidad .comunidad-comment-btn { font-size: 12px; gap: 3px; }

/* ---- 7. Cabecera + navegación inferior ---- */
[data-theme="dark"] #bottom-nav .nav-btn.active { background: rgba(255,209,0,0.1); color: var(--gold); }

/* ---- 8. Panel de Admin ---- */
[data-theme="dark"] #page-admin,
[data-theme="dark"] [id^="page-admin-"] {
  --card-white: #151515; --border-soft: rgba(255,255,255,0.08);
  --text-dark: #ffffff; --text-muted: rgba(255,255,255,0.55);
  --gold: #FFD100; --input-bg: rgba(128,128,128,0.08); --black: #151515;
}
[data-theme="dark"] #page-admin .admin-stat-card-v2 { padding: 12px 10px; border-radius: 12px; }
[data-theme="dark"] #page-admin .admin-stat-icon-v2 { font-size: 16px; }
[data-theme="dark"] #page-admin .admin-stat-val-v2 { font-size: 21px; margin-top: 2px; }
[data-theme="dark"] #page-admin .admin-stat-lbl-v2 { font-size: 10.5px; }
[data-theme="dark"] #page-admin .admin-qacard { padding: 11px 12px; }
[data-theme="dark"] #page-admin .admin-toolbar-row select {
  width: 100%; padding: 10px 32px 10px 12px; border-radius: 10px; border: 1px solid var(--border-soft);
  background-color: var(--input-bg); color: var(--text-dark); font-size: 13px; outline: none;
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%23a0a0a0' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat; background-position: right 12px center;
}
[data-theme="dark"] #page-admin .admin-toolbar-row select:focus { border-color: var(--gold); }
[data-theme="dark"] #page-admin .admin-help-card { opacity: 0.75; }

/* ============================================================
   Onboarding obligatorio (usuarios nuevos) + rediseño Mi Perfil
   ============================================================ */
[data-theme="dark"] #page-onboarding-full { padding-top: 8px; }
.onb-header { text-align: center; margin-bottom: 18px; }
.onb-title { font-size: 23px; font-weight: 800; color: var(--e-text); }
.onb-sub { font-size: 13.5px; color: var(--e-text-muted); margin-top: 6px; line-height: 1.4; }
.onb-card {
  background: var(--e-surface); border: 1px solid var(--e-border); border-radius: 18px;
  padding: 18px 16px; margin-bottom: 16px;
}
.onb-card .field input, .onb-card .field select {
  background: rgba(128,128,128,0.08); border: 1px solid var(--e-border); color: var(--e-text);
  width: 100%; padding: 12px 14px; border-radius: 12px; font-size: 15px; box-sizing: border-box;
}
.onb-card .field label { color: var(--e-text-muted); }
.field-label-standalone { font-size: 12px; color: var(--e-text-muted); margin: 4px 0 8px; display: block; }
.onb-objetivo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.onb-objetivo-chip {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  background: rgba(128,128,128,0.08); border: 1px solid var(--e-border); border-radius: 14px;
  padding: 14px 8px; font-size: 12px; font-weight: 700; color: var(--e-text-muted); cursor: pointer;
}
.onb-objetivo-chip span { line-height: 1.2; }
.onb-objetivo-chip.selected {
  background: rgba(255,209,0,0.12); border-color: var(--e-accent); color: var(--e-text);
}

/* ---- Mi Perfil — vista de resumen ---- */
.perfil-resumen-header { text-align: center; margin-bottom: 16px; }
.perfil-resumen-header .profile-photo { width: 84px; height: 84px; margin: 0 auto 10px; display: block; }
.perfil-resumen-nombre { font-size: 20px; font-weight: 800; color: var(--text-dark); }
.perfil-resumen-objetivo {
  display: inline-block; margin-top: 6px; font-size: 12px; font-weight: 700; color: var(--gold);
  background: rgba(255,209,0,0.1); border-radius: 20px; padding: 4px 12px;
}
.perfil-resumen-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 18px; }
.perfil-resumen-item {
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px;
  padding: 12px; text-align: center;
}
.perfil-resumen-item .lbl { display: block; font-size: 11px; color: var(--text-muted); font-weight: 600; }
.perfil-resumen-item .val { display: block; font-size: 15px; color: var(--text-dark); font-weight: 700; margin-top: 3px; }

/* ---- Admin: eliminar usuario (acción discreta, no un botón rojo enorme) ---- */
.admin-eliminar-block { margin-top: 14px; }
.admin-eliminar-btn {
  display: block; width: 100%; background: none; border: 1px dashed rgba(224,49,49,0.35);
  color: var(--danger); font-size: 12.5px; font-weight: 600; border-radius: 12px;
  padding: 9px; cursor: pointer; opacity: 0.85;
}
.admin-eliminar-confirm {
  background: var(--card-white); border: 1px solid rgba(224,49,49,0.3); border-radius: 14px; padding: 14px;
}
.admin-eliminar-titulo { margin: 0 0 6px; font-size: 14px; font-weight: 800; color: var(--danger); }
.admin-eliminar-texto { margin: 0 0 12px; font-size: 12.5px; color: var(--text-muted); line-height: 1.5; }
.admin-eliminar-botones { display: flex; gap: 8px; }
.admin-eliminar-secundario, .admin-eliminar-primario {
  flex: 1; border-radius: 10px; font-size: 12.5px; font-weight: 700; padding: 10px; cursor: pointer;
}
.admin-eliminar-secundario { background: none; border: 1px solid var(--border-soft); color: var(--text-dark); }
.admin-eliminar-primario { background: var(--danger); border: none; color: #fff; }
.admin-eliminar-secundario:disabled, .admin-eliminar-primario:disabled { opacity: 0.6; cursor: default; }

/* ---- Píldoras de nutrición ---- */
[data-theme="dark"] #page-pildora-detalle,
[data-theme="dark"] #page-admin-pildoras,
[data-theme="dark"] #page-admin-pildora-form {
  --card-white: #151515; --border-soft: rgba(255,255,255,0.08);
  --text-dark: #ffffff; --text-muted: rgba(255,255,255,0.55);
  --gold: #FFD100; --input-bg: rgba(128,128,128,0.08); --black: #151515;
}
.pildora-categoria-badge {
  display: inline-block; font-size: 11px; font-weight: 700; color: var(--e-accent, #FFD100);
  background: rgba(255,209,0,0.1); border-radius: 20px; padding: 4px 12px;
}
.pildora-quiz-opcion {
  display: block; width: 100%; text-align: left; background: rgba(128,128,128,0.08);
  border: 1px solid var(--e-border, rgba(255,255,255,0.08)); border-radius: 12px;
  padding: 13px 14px; font-size: 14px; color: var(--e-text, #fff); cursor: pointer; margin-bottom: 8px;
}
.pildora-quiz-opcion:disabled { cursor: default; opacity: 0.85; }
.pildora-quiz-opcion.correcta { border-color: #22C95E; background: rgba(34,201,94,0.1); }
.pildora-quiz-opcion.incorrecta { border-color: var(--danger); background: rgba(224,49,49,0.1); }

.dash-pildora-titulo { font-size: 14.5px; font-weight: 800; color: var(--text-dark); margin-top: 2px; }
.dash-pildora-cta { font-size: 12.5px; font-weight: 700; color: var(--gold); margin-top: 6px; }
.dash-pildora-completada { font-size: 13.5px; font-weight: 700; color: #22C95E; margin-top: 4px; }

/* ---- Admin: listado de píldoras ---- */
.admin-pildora-row {
  display: flex; align-items: center; gap: 10px; padding: 11px 12px; margin-bottom: 8px;
}
.admin-pildora-row .info { flex: 1; min-width: 0; }
.admin-pildora-row .titulo { font-size: 13.5px; font-weight: 700; color: var(--text-dark); }
.admin-pildora-row .meta { font-size: 11.5px; color: var(--text-muted); margin-top: 2px; }
.admin-pildora-row.inactiva { opacity: 0.55; }

/* ---- Ficha de cliente Admin: resumen + acordeón ---- */
.admin-resumen-card {
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 16px;
  padding: 16px; margin-bottom: 14px; text-align: center;
}
.admin-resumen-nombre { font-size: 17px; font-weight: 800; color: var(--text-dark); }
.admin-resumen-badges { margin-top: 6px; }
.admin-resumen-linea { font-size: 13px; color: var(--text-muted); margin-top: 6px; font-weight: 600; }

.admin-acordeon { border: 1px solid var(--border-soft); border-radius: 14px; margin-bottom: 10px; overflow: hidden; }
.admin-acordeon-header {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  background: var(--card-white); border: none; padding: 14px 16px; font-size: 14px; font-weight: 700;
  color: var(--text-dark); cursor: pointer; text-align: left;
}
.admin-acordeon-chevron { transition: transform 0.2s ease; color: var(--text-muted); }
.admin-acordeon-header.open .admin-acordeon-chevron { transform: rotate(180deg); }
.admin-acordeon-body { padding: 4px 14px 14px; }
.admin-acordeon-body.hidden { display: none; }

/* ---- Editor de dieta IA ---- */
.admin-dieta-comida-row {
  display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: start; margin-bottom: 8px;
}
.admin-dieta-comida-nombre {
  grid-column: 1 / 2; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--border-soft);
  background: var(--input-bg); color: var(--text-dark); font-size: 13px; box-sizing: border-box;
}
.admin-dieta-comida-desc {
  grid-column: 1 / 2; grid-row: 2; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--border-soft);
  background: var(--input-bg); color: var(--text-dark); font-size: 13px; font-family: inherit; box-sizing: border-box; resize: vertical;
}
.admin-dieta-comida-del {
  grid-column: 2 / 3; grid-row: 1 / 4; background: none; border: 1px solid var(--danger); color: var(--danger);
  border-radius: 10px; width: 34px; cursor: pointer; font-size: 14px;
}
.admin-dieta-comida-ingredientes-label { grid-column: 1 / 2; grid-row: 3; font-size: 10.5px; color: var(--text-muted); font-weight: 600; margin: 2px 0 -2px; }
.admin-dieta-comida-ingredientes {
  grid-column: 1 / 2; grid-row: 4; padding: 9px 12px; border-radius: 10px; border: 1px solid var(--border-soft);
  background: var(--input-bg); color: var(--text-dark); font-size: 12.5px; box-sizing: border-box;
}

/* ---- Seguimiento del cliente desde Admin ---- */
canvas#admin-seg-chart { width: 100% !important; max-height: 240px; }

/* ---- Resumen de evolución (Admin -> Seguimiento) ---- */
.admin-evo-subtitulo { font-size: 11px; font-weight: 700; color: var(--gold); margin: 10px 0 6px; text-transform: uppercase; letter-spacing: 0.3px; }
.admin-evo-subtitulo:first-of-type { margin-top: 0; }
.admin-evo-chips-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.admin-evo-chip {
  display: flex; flex-direction: column; gap: 2px; background: var(--input-bg);
  border: 1px solid var(--border-soft); border-radius: 12px; padding: 8px 10px;
}
.admin-evo-chip-icono { font-size: 15px; }
.admin-evo-chip-label { font-size: 10.5px; color: var(--text-muted); font-weight: 600; }
.admin-evo-chip-valor { font-size: 14px; font-weight: 800; color: var(--text-dark); }

/* Lista de compra del plan — color explícito en pantalla (sigue el tema
   normal); en impresión se fuerza a oscuro más abajo, independientemente
   de qué tema tenga activo el navegador en ese momento. */
.admin-dieta-lista-ingredientes-ul { color: var(--text-dark); }

.dash-section-label {
  font-size: 12px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase;
  color: var(--text-muted);
}

/* ---- Dieta IA: cabecera imprimible ---- */
.admin-dieta-print-header { display: none; }
.admin-dieta-print-logo { height: 32px; margin-bottom: 10px; }
.admin-dieta-print-titulo { font-size: 20px; font-weight: 800; margin: 0 0 6px; }
.admin-dieta-print-linea { font-size: 13px; margin: 0 0 2px; }
.admin-dieta-print-fecha { color: #555; }
.admin-dieta-print-frase { font-style: italic; font-size: 13px; margin: 10px 0 0; color: #555; }
.admin-dieta-semana-titulo { display: none; }
.admin-dieta-print-cuadrante { display: none; }

@media print {
  @page { size: A4 landscape; }

  body * { visibility: hidden; }
  #page-admin-dieta, #page-admin-dieta * { visibility: visible; }
  #page-admin-dieta { position: absolute; left: 0; top: 0; width: 100%; background: #fff; color: #111; }
  /* Mismo mecanismo, ahora también para cuando se imprime desde la cuenta
     del cliente (page-planes) — reutiliza exactamente las mismas clases de
     contenido (.admin-dieta-print-header/.admin-dieta-cuadrante-tabla/...),
     que ya son genéricas y no estaban ancladas a #page-admin-dieta.
     A diferencia de page-admin-dieta (una página dedicada solo a la dieta),
     page-planes tiene mucho más contenido alrededor (encuesta, calculadoras,
     diario de comidas...) que NUNCA debe aparecer en el PDF del cliente —
     así que aquí se oculta todo por defecto y solo se revela lo imprimible. */
  #page-planes * { visibility: hidden; }
  #page-planes { position: absolute; left: 0; top: 0; width: 100%; background: #fff; color: #111; visibility: visible; }
  #cliente-dieta-print-header, #cliente-dieta-print-header *,
  #cliente-dieta-print-cuadrante, #cliente-dieta-print-cuadrante *,
  #cliente-dieta-print-lista, #cliente-dieta-print-lista * { visibility: visible; }
  #page-planes .tracker-card { background: #fff; border: 1px solid #ddd; box-shadow: none; }
  #page-planes .section-title { color: #111; }
  #bottom-nav, #app-header, .header-row, .underline, .no-print { display: none !important; }

  /* Portada: página propia, premium, salta a página nueva antes del cuadrante.
     page-break-* (legacy) + break-* (moderna) juntas, porque iOS Safari a
     veces solo respeta una de las dos según versión. */
  .admin-dieta-print-header {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center; height: 90vh;
    page-break-after: always; break-after: page;
    border-bottom: none; padding: 0;
  }
  .admin-dieta-print-logo { height: 56px; margin-bottom: 22px; }
  .admin-dieta-print-titulo { font-size: 30px; border-top: 3px solid #FFD100; padding-top: 16px; }
  .admin-dieta-print-linea { font-size: 16px; }
  .admin-dieta-print-frase { font-size: 15px; margin-top: 20px; }

  /* El editor móvil (tarjetas verticales) NUNCA se imprime — el cuadrante lo sustituye por completo. */
  #admin-dieta-dias { display: none !important; }

  .admin-dieta-print-cuadrante { display: block; }
  .admin-dieta-cuadrante-pagina {
    page-break-before: always; break-before: page;
    page-break-inside: avoid; break-inside: avoid;
    padding-top: 8px;
  }
  /* La primera semana ya viene de un salto forzado por la portada — un
     segundo salto justo antes duplicaría la página en blanco en algunos
     motores, así que aquí se anula solo para la primera. */
  .admin-dieta-cuadrante-pagina:first-child { page-break-before: auto; break-before: auto; }
  .admin-dieta-cuadrante-titulo { font-size: 15px; font-weight: 800; color: #111; margin: 0 0 8px; }
  .admin-dieta-cuadrante-tabla {
    width: 100%; border-collapse: collapse; table-layout: fixed;
    page-break-inside: avoid; break-inside: avoid;
  }
  .admin-dieta-cuadrante-tabla th, .admin-dieta-cuadrante-tabla td {
    border: 1px solid #ccc; padding: 4px 5px; text-align: left; vertical-align: top;
    font-size: 9px; line-height: 1.22; word-wrap: break-word;
  }
  .admin-dieta-cuadrante-tabla thead th {
    background: #f0f0f0; color: #111; font-size: 9.5px; font-weight: 800;
    text-align: center; text-transform: uppercase; padding: 6px 5px;
  }
  .admin-dieta-cuadrante-tabla thead th:first-child { background: #171310; }
  .admin-dieta-cuadrante-tipo {
    background: #171310; color: #FFD100; font-weight: 800; font-size: 9px;
    text-transform: uppercase; width: 72px; text-align: left; padding: 4px 5px;
  }

  .admin-dieta-semana-titulo {
    display: block; font-size: 16px; font-weight: 800; color: #111; margin: 18px 0 10px;
    border-bottom: 1px solid #ddd; padding-bottom: 4px;
  }
  .admin-dieta-semana-wrap { page-break-before: always; break-before: page; }
  .admin-dieta-semana-wrap:first-child { page-break-before: auto; break-before: auto; }
  #admin-dieta-lista-compra-plan-wrap.hidden,
  #cliente-dieta-print-lista.hidden {
    display: block !important; page-break-before: always; break-before: page;
  }
  /* Ancladas por CLASE (no por el id del wrap de Admin) para que apliquen
     igual tanto a la lista de compra de Admin como a la del cliente —
     antes solo cubrían el contenedor de Admin. */
  .admin-dieta-lista-ingredientes-ul { list-style: none; padding-left: 4px; }
  .admin-dieta-lista-ingredientes-ul li::before { content: "☐  "; }
  /* LA CORRECCIÓN DEL BUG (ronda anterior): se fuerza color oscuro
     explícito en impresión, sin depender de var(--text-dark) — esa
     variable vale casi blanco en modo oscuro (el modo por defecto de la
     app), lo que dejaba los ingredientes en blanco sobre el fondo blanco
     del papel: presentes en el DOM, pero invisibles. */
  .admin-dieta-lista-cat-titulo,
  .admin-dieta-lista-ingredientes-ul,
  .admin-dieta-lista-ingredientes-ul li {
    color: #111 !important;
  }
  /* Rejilla compacta por categorías — 2 columnas, para que una dieta de
     7 días quepa en 1-2 páginas de lista de compra en vez de una columna
     larga y suelta. */
  .admin-dieta-lista-cat-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 4px 20px; align-items: start;
  }
  .admin-dieta-lista-cat-bloque { break-inside: avoid; page-break-inside: avoid; }
  .admin-dieta-lista-cat-titulo { font-size: 11.5px !important; margin: 6px 0 3px !important; }
  .admin-dieta-lista-ingredientes-ul li {
    padding: 1.5px 0; font-size: 10.5px; line-height: 1.3;
  }
  #page-admin-dieta .tracker-card { background: #fff; border: 1px solid #ddd; box-shadow: none; page-break-inside: avoid; }
  #page-admin-dieta .section-title { color: #111; }
  #page-admin-dieta input, #page-admin-dieta textarea {
    background: #fff; color: #111; border: none; padding: 0; resize: none;
  }
}

/* ---- Ficha individual de producto ---- */
.producto-detalle-tomando {
  display: inline-block; font-size: 11.5px; font-weight: 700; color: #111;
  background: var(--gold); border-radius: 20px; padding: 5px 12px; margin-bottom: 10px;
}
.producto-detalle-imagen { width: 100%; max-height: 260px; object-fit: contain; border-radius: 16px; background: #fff; margin-bottom: 14px; }
.producto-detalle-categoria { font-size: 11px; font-weight: 700; color: var(--gold); text-transform: uppercase; letter-spacing: 0.3px; margin: 0 0 4px; }
.producto-detalle-nombre { font-size: 19px; font-weight: 800; color: var(--text-dark); margin: 0 0 8px; }
.producto-detalle-desc { font-size: 13.5px; color: var(--text-muted); line-height: 1.6; margin: 0 0 14px; }
.producto-detalle-extra-label { font-size: 11px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; margin: 12px 0 3px; }
.producto-detalle-extra-valor { font-size: 13px; color: var(--text-dark); line-height: 1.5; margin: 0; }
.producto-detalle-precio { font-size: 14px; font-weight: 700; color: var(--text-dark); margin: 4px 0 12px; }

/* ---- Vista de dieta del cliente en Planes ---- */
.cliente-dia-acordeon-btn {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  background: var(--input-bg); border: 1px solid var(--border-soft); border-radius: 12px;
  padding: 10px 14px; font-size: 13.5px; font-weight: 700; color: var(--gold); cursor: pointer;
  margin-bottom: 4px;
}
.cliente-dia-acordeon-chevron { color: var(--text-muted); }
.cliente-dia-acordeon-body { padding: 8px 4px 2px; }

/* Cuadrante semanal visto EN PANTALLA por el cliente (no impresión) —
   mismas clases de tabla que ya usa Admin en impresión, con un fondo
   propio para que se lea bien sobre el tema oscuro normal de la app. */
.cliente-cuadrante-swipe-hint { font-size: 11px; color: var(--text-muted); margin: -4px 0 8px; text-align: right; }
.cliente-cuadrante-onscreen {
  background: #fff; border-radius: 14px; padding: 12px;
  overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch;
  margin-bottom: 14px; max-width: 100%;
}
.cliente-cuadrante-onscreen .admin-dieta-cuadrante-pagina { min-width: 640px; }
.cliente-cuadrante-onscreen .admin-dieta-cuadrante-titulo { font-size: 14px; font-weight: 800; color: #111; margin: 0 0 8px; }
.cliente-cuadrante-onscreen .admin-dieta-cuadrante-tabla { width: 100%; border-collapse: collapse; table-layout: fixed; }
.cliente-cuadrante-onscreen .admin-dieta-cuadrante-tabla th,
.cliente-cuadrante-onscreen .admin-dieta-cuadrante-tabla td {
  border: 1px solid #ddd; padding: 6px 6px; text-align: left; vertical-align: top;
  font-size: 11px; line-height: 1.3; color: #111; word-wrap: break-word;
}
.cliente-cuadrante-onscreen .admin-dieta-cuadrante-tabla thead th {
  background: #f0f0f0; font-size: 10.5px; font-weight: 800; text-align: center; text-transform: uppercase;
}
.cliente-cuadrante-onscreen .admin-dieta-cuadrante-tipo {
  background: #171310; color: #FFD100; font-weight: 800; font-size: 10.5px; text-transform: uppercase; width: 80px;
}

/* ---- Constructor Admin de Clases/Entrenamientos (Fase 2) ---- */
/* ---- Carpetas/categorías del listado de entrenamientos (Admin) ---- */
.ace-carpetas-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 16px;
}
@media (min-width: 480px) {
  .ace-carpetas-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ---- Comisiones Partners (Admin) — responsive real ---- */
.comisiones-partners-grid {
  display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom: 12px;
}
@media (min-width: 480px) {
  .comisiones-partners-grid { grid-template-columns: 1fr 1fr; }
}
.ace-carpeta-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px;
  padding: 12px 14px; cursor: pointer; text-align: left; font-family: inherit;
}
.ace-carpeta-card:active { border-color: var(--gold); }
.ace-carpeta-nombre { font-size: 12.5px; font-weight: 700; color: var(--text-dark); }
.ace-carpeta-count { font-size: 18px; font-weight: 800; color: var(--gold); }

.ace-icon-btn {
  background: var(--input-bg); border: 1px solid var(--border-soft); border-radius: 8px;
  width: 28px; height: 28px; font-size: 13px; color: var(--text-dark); cursor: pointer;
}
.ace-icon-btn:disabled { opacity: 0.3; cursor: default; }


/* ---- Carpetas de Clases / Entrenamientos ---- */
.ace-lista-acciones {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 16px;
}
.ace-lista-acciones button { width: 100%; margin: 0; }

.ace-carpeta-grupo {
  background: var(--card-white);
  border: 1px solid var(--border-soft);
  border-radius: 16px;
  margin-bottom: 12px;
  overflow: hidden;
}
.ace-carpeta-header {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 6px 4px 8px;
}
.ace-carpeta-toggle {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 8px;
  border: 0;
  background: transparent;
  color: var(--text-dark);
  cursor: pointer;
  text-align: left;
}
.ace-carpeta-icono { font-size: 19px; flex-shrink: 0; }
.ace-carpeta-nombre {
  font-size: 14px;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ace-carpeta-contador {
  min-width: 24px;
  height: 24px;
  padding: 0 7px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,215,0,0.12);
  color: var(--gold);
  font-size: 11px;
  font-weight: 800;
}
.ace-carpeta-chevron {
  margin-left: auto;
  color: var(--text-muted);
  font-size: 18px;
}
.ace-carpeta-renombrar {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid var(--border-soft);
  background: var(--input-bg);
  color: var(--text-dark);
  cursor: pointer;
}
.ace-carpeta-contenido { padding: 0 10px 10px; }
.ace-clase-fila {
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  margin-bottom: 8px;
}
.ace-clase-fila:last-child { margin-bottom: 0; }
.ace-clase-acciones { display: flex; gap: 6px; }
.ace-clase-acciones button {
  flex: 1;
  padding: 7px 8px;
  font-size: 11.5px;
}

/* Logo NF24FIT dentro del reproductor */
.repro-logo {
  width: min(190px, 70%);
  height: auto;
  object-fit: contain;
  margin: 0 auto 14px;
  flex-shrink: 0;
}

@media (max-width: 560px) {
  .ace-lista-acciones { grid-template-columns: 1fr; }
  .repro-logo { width: min(145px, 55%); margin-bottom: 10px; }
}

/* ---- Reproductor de prueba de clases — Fase 3A/3A.1 ---- */
#page-admin-clase-reproductor { padding: 0; background: #000; }
.repro-wrap {
  min-height: 100vh; height: 100vh; background: #000; color: #fff;
  display: flex; flex-direction: column; padding: 12px 16px; box-sizing: border-box;
  overflow: hidden; /* nunca scroll — todo debe caber dentro de la pantalla */
}
.repro-top { display: flex; justify-content: space-between; align-items: center; width: 100%; margin-bottom: 8px; flex-shrink: 0; }
.repro-salir-btn, .repro-fullscreen-btn {
  background: rgba(255,255,255,0.1); border: none; color: #fff; width: 36px; height: 36px;
  border-radius: 50%; font-size: 16px; cursor: pointer; flex-shrink: 0;
}
.repro-progreso { font-size: 12px; color: rgba(255,255,255,0.6); text-align: center; flex: 1; }
/* Ronda con más jerarquía — el resto de la barra (Bloque/Vuelta) se
   mantiene igual, solo el número de ronda gana peso visual para poder
   leerse de un vistazo, sin agrandar el reproductor entero. */
#repro-ronda-label { font-size: 15px; font-weight: 800; color: #fff; }

/* Móvil: vídeo arriba, panel debajo, scroll permitido si hace falta */
.repro-cuerpo { display: flex; flex-direction: column; flex: 1; min-height: 0; overflow-y: auto; gap: 12px; }
.repro-video-wrap {
  width: 100%; flex-shrink: 0; aspect-ratio: 9/12; max-height: 45vh; background: #111;
  border-radius: 18px; overflow: hidden; position: relative;
}
.repro-video { width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0; }
.repro-video-placeholder {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  font-size: 64px; color: rgba(255,255,255,0.2);
}
.repro-video-autoplay-btn {
  position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%);
  background: rgba(0,0,0,0.75); color: #fff; border: 1px solid rgba(255,255,255,0.3);
  border-radius: 20px; padding: 8px 16px; font-size: 12.5px; cursor: pointer; white-space: nowrap;
}
.repro-descanso-overlay {
  position: absolute; inset: 0; z-index: 2; background: #111; /* fallback si el siguiente ejercicio no tiene vídeo válido */
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  overflow: hidden;
}
.repro-video-preview {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  filter: brightness(0.55) saturate(0.85); /* claramente distinto del vídeo real de trabajo — comunica "aún no ha empezado" */
}
.repro-descanso-textos {
  position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center;
  background: rgba(0,0,0,0.35); border-radius: 16px; padding: 18px 20px;
}
.repro-descanso-titulo { font-size: 15px; font-weight: 800; letter-spacing: 2px; color: #60a5fa; margin: 0 0 8px; }
.repro-descanso-tiempo { font-size: 56px; font-weight: 900; line-height: 1; margin: 0 0 10px; font-variant-numeric: tabular-nums; }
.repro-descanso-siguiente-label { font-size: 11px; font-weight: 800; letter-spacing: 1.5px; color: rgba(255,255,255,0.6); margin: 4px 0 2px; }
.repro-descanso-siguiente { font-size: 14px; color: rgba(255,255,255,0.9); margin: 0; text-align: center; padding: 0 16px; font-weight: 700; }

.repro-panel { display: flex; flex-direction: column; align-items: center; text-align: center; flex-shrink: 0; }
.repro-bloque-nombre-label { margin: 0 0 6px; line-height: 1.3; }
.repro-bloque-nombre-label .repro-bloque-num { display: block; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; color: var(--text-muted); text-transform: uppercase; }
.repro-bloque-nombre-label .repro-bloque-nombre { display: block; font-size: 19px; font-weight: 800; color: var(--text-dark); }
.repro-fase {
  font-size: 13px; font-weight: 800; letter-spacing: 1px; color: var(--gold);
  text-transform: uppercase; margin: 0 0 4px;
}
.repro-fase-trabajo { color: #4ade80; }
.repro-fase-descanso { color: #60a5fa; }
.repro-fase-between_blocks { color: #f97316; }
.repro-ejercicio-nombre { font-size: 18px; font-weight: 800; margin: 0 0 4px; }
.repro-tiempo { font-size: 56px; font-weight: 900; line-height: 1; margin: 2px 0 6px; font-variant-numeric: tabular-nums; }
.repro-siguiente { font-size: 12.5px; color: rgba(255,255,255,0.55); margin: 0 0 14px; }

.repro-controles { display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 10px; }
.repro-ctrl-btn {
  background: rgba(255,255,255,0.1); border: none; color: #fff; width: 48px; height: 48px;
  border-radius: 50%; font-size: 18px; cursor: pointer;
}
.repro-ctrl-btn-grande { width: 62px; height: 62px; background: var(--gold); color: #111; font-size: 24px; }
.repro-controles-secundarios { display: flex; gap: 10px; }
.repro-ctrl-btn-sec {
  background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.15); color: #fff;
  border-radius: 20px; padding: 7px 14px; font-size: 12px; cursor: pointer;
}

/* Desktop/TV: dos columnas dentro de la altura visible, sin scroll */
@media (min-width: 900px) {
  .repro-cuerpo { flex-direction: row; align-items: stretch; overflow: hidden; }
  .repro-video-wrap { width: 65%; max-height: none; aspect-ratio: auto; height: 100%; }
  .repro-video { object-fit: contain; background: #000; }
  .repro-panel {
    width: 35%; justify-content: center; align-items: flex-start; text-align: left; padding-left: 24px;
  }
  .repro-controles, .repro-controles-secundarios { justify-content: flex-start; }
  .repro-ejercicio-nombre { font-size: 26px; }
  .repro-tiempo { font-size: 96px; }
  .repro-siguiente { font-size: 14px; }
}


.ace-fila-eliminar-btn {
  flex: 1;
  padding: 7px 8px;
  font-size: 11.5px;
  border-radius: 10px;
  border: 1px solid #ff3b30;
  background: transparent;
  color: #ff453a;
  font-family: inherit;
  font-weight: 700;
  cursor: pointer;
}
.ace-fila-eliminar-btn:disabled {
  opacity: .55;
  cursor: wait;
}
@media (max-width: 560px) {
  .ace-clase-acciones {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}


/* ---- Reproductor TV: siguiente ejercicio más visible ---- */
.repro-next {
  font-size: clamp(20px, 2vw, 32px) !important;
  font-weight: 800 !important;
  line-height: 1.2;
  color: #f2f2f2 !important;
  text-align: center;
  margin-top: 12px;
}

.repro-desc-next {
  font-size: clamp(24px, 2.5vw, 38px) !important;
  font-weight: 900 !important;
  line-height: 1.15;
  color: #ffffff !important;
  max-width: 90%;
  text-align: center;
}

@media (min-width: 900px) {
  #page-reproductor-clase .repro-next {
    font-size: clamp(26px, 2.2vw, 38px) !important;
  }

  #page-reproductor-clase .repro-desc-next {
    font-size: clamp(30px, 2.8vw, 46px) !important;
  }
}

@media (max-width: 560px) {
  #page-reproductor-clase .repro-next {
    font-size: 18px !important;
  }

  #page-reproductor-clase .repro-desc-next {
    font-size: 22px !important;
  }
}


/* ---- Entrenamientos NF24FIT publicados para clientes ---- */
.entrenamientos-publicados-section {
  margin: 22px 0 26px;
}
.entrenamientos-publicados-intro {
  margin: 10px 0 14px;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.45;
}
.entreno-hoy-destacado-titulo {
  margin: 14px 0 8px;
  color: var(--gold);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.entreno-publicado-grupo {
  margin-top: 16px;
}
.entreno-publicado-grupo-titulo {
  margin-bottom: 8px;
  color: var(--text-dark);
  font-size: 13px;
  font-weight: 800;
}
.entreno-publicado-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.entreno-publicado-card {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 15px;
  border: 1px solid var(--border-soft);
  border-radius: 16px;
  background: var(--card-white);
  color: var(--text-dark);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  box-shadow: var(--shadow-soft);
}
.entreno-publicado-card--hoy {
  border-color: rgba(255,215,0,.55);
  background: linear-gradient(135deg, rgba(255,215,0,.11), var(--card-white));
  margin-bottom: 10px;
}
.entreno-publicado-card.is-locked {
  opacity: .72;
}
.entreno-publicado-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.entreno-publicado-categoria {
  color: var(--gold);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .45px;
}
.entreno-publicado-premium {
  font-size: 10.5px;
  font-weight: 800;
  color: var(--gold);
}
.entreno-publicado-nombre {
  font-size: 16px;
  font-weight: 900;
  line-height: 1.2;
}
.entreno-publicado-meta {
  color: var(--text-muted);
  font-size: 11.5px;
}
.entreno-publicado-accion {
  margin-top: 3px;
  font-size: 12px;
  font-weight: 800;
  color: var(--text-dark);
}
@media (min-width: 760px) {
  .entreno-publicado-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ---- Tarjetas inteligentes de Entrenamientos NF24FIT ---- */
.entreno-publicado-card {
  padding: 0 !important;
  overflow: hidden;
  gap: 0 !important;
}
.entreno-publicado-portada {
  min-height: 112px;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 16px;
  background:
    radial-gradient(circle at 92% 8%, rgba(255,215,0,.22), transparent 34%),
    linear-gradient(135deg, #181818, #090909);
  color: #fff;
}
.entreno-publicado-icono {
  width: 52px;
  height: 52px;
  border-radius: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,215,0,.12);
  border: 1px solid rgba(255,215,0,.25);
  font-size: 25px;
  flex-shrink: 0;
}
.entreno-publicado-portada-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.entreno-publicado-portada .entreno-publicado-categoria {
  color: var(--gold);
  font-size: 10.5px;
  letter-spacing: 1px;
}
.entreno-publicado-portada .entreno-publicado-nombre {
  color: #fff;
  font-size: 17px;
  line-height: 1.15;
}
.entreno-publicado-portada .entreno-publicado-premium {
  margin-left: auto;
  align-self: flex-start;
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(255,215,0,.12);
  border: 1px solid rgba(255,215,0,.25);
  white-space: nowrap;
}
.entreno-publicado-resumen {
  padding: 13px 15px 6px;
  color: var(--text-dark);
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.35;
}
.entreno-publicado-datos {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 4px 15px 10px;
}
.entreno-publicado-datos span {
  padding: 5px 8px;
  border-radius: 999px;
  background: var(--input-bg);
  border: 1px solid var(--border-soft);
  color: var(--text-muted);
  font-size: 10.5px;
  font-weight: 700;
}
.entreno-publicado-carpeta {
  padding: 0 15px 11px;
  color: var(--text-muted);
  font-size: 10.5px;
  font-weight: 600;
}
.entreno-publicado-card .entreno-publicado-accion {
  width: calc(100% - 30px);
  margin: 0 15px 15px;
  padding: 10px 12px;
  border-radius: 11px;
  background: var(--gold);
  color: #111;
  text-align: center;
  font-size: 11.5px;
  font-weight: 900;
  letter-spacing: .3px;
}
.entreno-publicado-card.is-locked .entreno-publicado-accion {
  background: var(--input-bg);
  color: var(--text-muted);
}

/* Variaciones sutiles por categoría: no requieren portadas manuales */
.entreno-publicado-card.cat-tabata .entreno-publicado-portada {
  background:
    radial-gradient(circle at 88% 12%, rgba(255,215,0,.28), transparent 33%),
    linear-gradient(135deg, #231800, #080808);
}
.entreno-publicado-card.cat-hiit .entreno-publicado-portada {
  background:
    radial-gradient(circle at 88% 12%, rgba(255,95,31,.28), transparent 34%),
    linear-gradient(135deg, #24100a, #080808);
}
.entreno-publicado-card.cat-trx .entreno-publicado-portada {
  background:
    radial-gradient(circle at 88% 12%, rgba(255,215,0,.24), transparent 34%),
    linear-gradient(135deg, #1e1b09, #080808);
}
.entreno-publicado-card.cat-core .entreno-publicado-portada {
  background:
    radial-gradient(circle at 88% 12%, rgba(136,104,255,.25), transparent 34%),
    linear-gradient(135deg, #171127, #080808);
}
.entreno-publicado-card.cat-fuerza .entreno-publicado-portada {
  background:
    radial-gradient(circle at 88% 12%, rgba(180,180,180,.20), transparent 34%),
    linear-gradient(135deg, #202020, #080808);
}
.entreno-publicado-card.cat-sin-material .entreno-publicado-portada {
  background:
    radial-gradient(circle at 88% 12%, rgba(74,222,128,.20), transparent 34%),
    linear-gradient(135deg, #102016, #080808);
}
.entreno-publicado-card--hoy {
  border: 1px solid rgba(255,215,0,.62) !important;
  box-shadow: 0 10px 28px rgba(255,215,0,.09);
}

@media (min-width: 900px) {
  .entreno-publicado-portada { min-height: 128px; }
  .entreno-publicado-portada .entreno-publicado-nombre { font-size: 19px; }
}


/* ---- Reproductor: siguiente ejercicio legible desde TV ---- */
#page-admin-clase-reproductor .repro-siguiente {
  font-size: clamp(20px, 1.8vw, 30px) !important;
  font-weight: 800 !important;
  line-height: 1.2;
  color: rgba(255,255,255,.92) !important;
  margin: 8px 0 18px;
}
#page-admin-clase-reproductor .repro-descanso-siguiente {
  font-size: clamp(26px, 2.5vw, 42px) !important;
  font-weight: 900 !important;
  line-height: 1.15;
  color: #fff !important;
  max-width: 92%;
}
@media (max-width: 560px) {
  #page-admin-clase-reproductor .repro-siguiente {
    font-size: 17px !important;
  }
  #page-admin-clase-reproductor .repro-descanso-siguiente {
    font-size: 22px !important;
  }
}

/* ---- Pantalla final del entrenamiento ---- */
.repro-fin-overlay {
  position: absolute;
  inset: 0;
  z-index: 40;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 28px;
  background:
    radial-gradient(circle at 50% 32%, rgba(255,215,0,.12), transparent 35%),
    #050505;
  color: #fff;
  text-align: center;
}
.repro-fin-logo {
  width: min(220px, 55vw);
  height: auto;
  margin-bottom: 18px;
}
.repro-fin-trofeo {
  font-size: clamp(50px, 7vw, 82px);
  line-height: 1;
  margin-bottom: 12px;
}
.repro-fin-overlay h2 {
  margin: 0;
  font-size: clamp(24px, 3.4vw, 46px);
  line-height: 1.05;
  color: #fff;
}
.repro-fin-nombre {
  margin: 12px 0 22px;
  color: var(--gold);
  font-size: clamp(17px, 2vw, 25px);
  font-weight: 850;
}
.repro-fin-stats {
  width: min(620px, 94%);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.repro-fin-stats div {
  padding: 15px 10px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px;
  background: rgba(255,255,255,.04);
}
.repro-fin-stats strong {
  display: block;
  font-size: clamp(22px, 3vw, 34px);
  color: #fff;
}
.repro-fin-stats span {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  color: rgba(255,255,255,.55);
}
.repro-fin-mensaje {
  margin: 22px 0 15px;
  font-size: 18px;
  font-weight: 800;
}
.repro-fin-acciones {
  width: min(520px, 94%);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.repro-fin-acciones button {
  width: 100%;
  margin: 0;
}
@media (max-width: 560px) {
  .repro-fin-stats {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 6px;
  }
  .repro-fin-stats div { padding: 11px 5px; }
  .repro-fin-acciones { grid-template-columns: 1fr; }
}

.repro-wrap { position: relative; }


/* ---- Progreso, favoritos e historial de entrenamientos ---- */
.entrenamientos-progreso-wrap { margin: 12px 0 16px; }
.entrenamientos-progreso-card {
  display: grid;
  grid-template-columns: auto repeat(3, 1fr);
  align-items: center;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--border-soft);
  border-radius: 15px;
  background: var(--card-white);
}
.entrenamientos-progreso-icon { font-size: 24px; padding: 0 4px; }
.entrenamientos-progreso-card div { text-align: center; min-width: 0; }
.entrenamientos-progreso-card strong {
  display: block; color: var(--text-dark); font-size: 18px; line-height: 1;
}
.entrenamientos-progreso-card span:not(.entrenamientos-progreso-icon) {
  display: block; margin-top: 4px; color: var(--text-muted); font-size: 9.5px;
}
.entreno-subtitulo-cliente {
  margin: 17px 0 9px; color: var(--text-dark); font-size: 13px; font-weight: 900;
}
.entreno-publicado-badges {
  margin-left: auto; display: inline-flex; align-items: center; gap: 7px;
}
.entreno-publicado-fav {
  width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.22); color: #fff;
  font-size: 20px; line-height: 1; cursor: pointer;
}
.entreno-publicado-fav.is-fav {
  color: var(--gold); border-color: rgba(255,215,0,.45);
  background: rgba(255,215,0,.10);
}
.entreno-historial-fila {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 12px; margin-bottom: 7px;
  border: 1px solid var(--border-soft); border-radius: 13px;
  background: var(--card-white);
}
.entreno-historial-check {
  width: 28px; height: 28px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(46,204,113,.12); color: #2ecc71; font-weight: 900;
}
.entreno-historial-copy { display: flex; flex-direction: column; min-width: 0; }
.entreno-historial-copy strong { color: var(--text-dark); font-size: 12px; }
.entreno-historial-copy small {
  margin-top: 3px; color: var(--text-muted); font-size: 10.5px;
}
.entreno-publicado-card { cursor: default !important; }
.entreno-publicado-card .entreno-publicado-accion {
  border: 0; font-family: inherit; cursor: pointer;
}
@media (max-width: 560px) {
  .entrenamientos-progreso-card { padding: 10px 8px; gap: 4px; }
  .entrenamientos-progreso-card strong { font-size: 16px; }
  .entrenamientos-progreso-card span:not(.entrenamientos-progreso-icon) { font-size: 8.5px; }
}


/* ===== NF24FIT catálogo en página propia ===== */
#entrenamientos-nf24fit-shortcut .entreno-tool-icon { font-size: 21px; }

#page-entrenamientos-nf24fit .entrenamientos-publicados-section { margin: 8px 0 20px; }
#page-entrenamientos-nf24fit .entreno-publicado-grid { gap: 8px; }
#page-entrenamientos-nf24fit .entreno-publicado-card { border-radius: 14px; }
#page-entrenamientos-nf24fit .entreno-publicado-portada {
  min-height: 82px; padding: 12px 13px; gap: 10px;
}
#page-entrenamientos-nf24fit .entreno-publicado-icono {
  width: 42px; height: 42px; border-radius: 12px; font-size: 20px;
}
#page-entrenamientos-nf24fit .entreno-publicado-portada .entreno-publicado-nombre { font-size: 15px; }
#page-entrenamientos-nf24fit .entreno-publicado-portada .entreno-publicado-categoria { font-size: 9.5px; }
#page-entrenamientos-nf24fit .entreno-publicado-resumen { padding: 10px 13px 4px; font-size: 11.5px; }
#page-entrenamientos-nf24fit .entreno-publicado-datos { padding: 4px 13px 8px; gap: 5px; }
#page-entrenamientos-nf24fit .entreno-publicado-datos span { padding: 4px 7px; font-size: 9.5px; }
#page-entrenamientos-nf24fit .entreno-publicado-carpeta { padding: 0 13px 8px; font-size: 9.5px; }
#page-entrenamientos-nf24fit .entreno-publicado-card .entreno-publicado-accion {
  width: calc(100% - 26px); margin: 0 13px 12px; padding: 8px 10px; font-size: 10.5px;
}
#page-entrenamientos-nf24fit .entreno-publicado-fav { width: 30px; height: 30px; font-size: 17px; }
#page-entrenamientos-nf24fit .entrenamientos-progreso-card { padding: 10px; }

/* ===== TV: aprovechar mejor una pantalla grande ===== */
@media (min-width: 1200px) {
  #page-admin-clase-reproductor .repro-cuerpo {
    gap: 38px;
    max-width: 1680px;
    width: 100%;
    margin: 0 auto;
  }
  #page-admin-clase-reproductor .repro-video-wrap { width: 58%; }
  #page-admin-clase-reproductor .repro-panel {
    width: 42%;
    padding: 18px 34px;
    justify-content: center;
    align-items: center;
    text-align: center;
  }
  #page-admin-clase-reproductor .repro-logo {
    width: clamp(280px, 20vw, 390px);
    max-width: 84%;
    margin: 0 auto 28px;
  }
  #page-admin-clase-reproductor .repro-fase {
    font-size: clamp(19px, 1.3vw, 26px);
    letter-spacing: 1.8px;
  }
  #page-admin-clase-reproductor .repro-ejercicio-nombre {
    font-size: clamp(38px, 3vw, 58px);
    line-height: 1.08;
  }
  #page-admin-clase-reproductor .repro-tiempo {
    font-size: clamp(140px, 10vw, 200px);
    line-height: .9;
    margin: 10px 0 20px;
  }
  #page-admin-clase-reproductor .repro-siguiente {
    font-size: clamp(30px, 2.3vw, 44px) !important;
    line-height: 1.15;
    margin: 8px 0 28px;
  }
  #page-admin-clase-reproductor .repro-controles {
    gap: 28px;
    margin-bottom: 18px;
  }
  #page-admin-clase-reproductor .repro-ctrl-btn {
    width: 76px; height: 76px; font-size: 28px;
  }
  #page-admin-clase-reproductor .repro-ctrl-btn-grande {
    width: 102px; height: 102px; font-size: 36px;
  }
  #page-admin-clase-reproductor .repro-ctrl-btn-sec {
    padding: 12px 24px; font-size: 16px; border-radius: 26px;
  }
  #page-admin-clase-reproductor .repro-descanso-titulo {
    font-size: clamp(28px, 2.1vw, 42px);
  }
  #page-admin-clase-reproductor .repro-descanso-tiempo {
    font-size: clamp(135px, 10vw, 200px);
  }
  #page-admin-clase-reproductor .repro-descanso-siguiente {
    font-size: clamp(34px, 2.7vw, 52px) !important;
    line-height: 1.15;
  }
}


/* ===== Admin clientes: avatar + estado + WhatsApp ===== */
.admin-client-card-v3 {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 14px 16px !important;
}

.admin-client-avatar {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  background: var(--input-bg);
  border: 2px solid rgba(255,215,0,.18);
}

.admin-client-card-info {
  flex: 1;
  min-width: 0;
}

.admin-client-title-row {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
}

.admin-client-title-row .title {
  min-width: 0;
}

.admin-client-badges {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}

.admin-client-mini-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 7px;
  font-size: 9.5px;
  font-weight: 800;
  line-height: 1.1;
  white-space: nowrap;
}

.admin-client-mini-badge.dieta {
  color: #f4c95d;
  border: 1px solid rgba(244,201,93,.45);
  background: rgba(244,201,93,.08);
}

.admin-client-mini-badge.herbalife {
  color: #4ade80;
  border: 1px solid rgba(74,222,128,.45);
  background: rgba(74,222,128,.08);
}

.admin-client-wa-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(37,211,102,.12);
  border: 1px solid rgba(37,211,102,.45);
  color: #25d366;
  text-decoration: none;
  font-size: 20px;
  transition: transform .15s ease, background .15s ease;
}

.admin-client-wa-btn:hover {
  transform: scale(1.04);
  background: rgba(37,211,102,.18);
}

@media (max-width: 560px) {
  .admin-client-card-v3 {
    gap: 10px !important;
    padding: 12px !important;
  }

  .admin-client-avatar {
    width: 48px;
    height: 48px;
  }

  .admin-client-wa-btn {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }

  .admin-client-title-row {
    gap: 5px;
  }
}

/* ===== Selector de idioma NF24FIT ===== */
.nf24-lang-help { margin:-4px 0 12px; color:var(--text-muted); font-size:12px; }
.nf24-lang-switch { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.nf24-lang-btn {
  min-height:44px; border-radius:12px; border:1px solid var(--border-soft);
  background:var(--input-bg); color:var(--text-dark); font-family:inherit;
  font-size:11.5px; font-weight:700; cursor:pointer;
}
.nf24-lang-btn.active {
  border-color:var(--gold); background:rgba(255,215,0,.14); color:var(--gold);
}
@media (max-width:380px) {
  .nf24-lang-switch { gap:5px; }
  .nf24-lang-btn { font-size:10.5px; padding:8px 4px; }
}

/* ============================================================
   NF24 · Reproductor TV/desktop — vídeo vertical más protagonista
   Cambio SOLO visual. No toca JS, orden, vueltas ni doble buffer.
   ============================================================ */
@media (min-width: 1200px) {
  #page-admin-clase-reproductor .repro-cuerpo {
    width: 100%;
    max-width: none;
    margin: 0;
    gap: 18px;
    align-items: stretch;
  }

  #page-admin-clase-reproductor .repro-video-wrap {
    width: 50%;
    height: 100%;
    max-height: none;
    aspect-ratio: auto;
    border-radius: 14px;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  #page-admin-clase-reproductor .repro-video {
    width: 100%;
    height: 100%;
    object-fit: contain !important;
    object-position: center center;
    background: #000;
  }

  #page-admin-clase-reproductor .repro-panel {
    width: 50%;
    padding: 10px 26px;
    box-sizing: border-box;
    justify-content: center;
  }

  #page-admin-clase-reproductor .repro-wrap {
    padding: 6px 10px 10px;
  }

  #page-admin-clase-reproductor .repro-top {
    margin-bottom: 4px;
  }
}

/* ============================================================
   NF24 · Ajuste visual reproductor — 27/08/2026
   SOLO CSS:
   - vídeo más grande en desktop/TV
   - "Siguiente" más legible
   - ronda actual más visible
   No toca JS, tiempos, orden, vueltas ni doble buffer.
   ============================================================ */

#page-admin-clase-reproductor #repro-ronda-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  color: #fff;
  background: rgba(255,215,0,.16);
  border: 1px solid rgba(255,215,0,.45);
  border-radius: 999px;
  padding: 4px 10px;
  line-height: 1;
}

@media (max-width: 899px) {
  #page-admin-clase-reproductor #repro-ronda-label {
    font-size: 13px;
    padding: 5px 10px;
  }

  #page-admin-clase-reproductor .repro-siguiente {
    font-size: 19px !important;
    font-weight: 900 !important;
    line-height: 1.18 !important;
    color: rgba(255,255,255,.96) !important;
  }

  #page-admin-clase-reproductor .repro-descanso-siguiente {
    font-size: 24px !important;
    font-weight: 900 !important;
    line-height: 1.12 !important;
  }
}

@media (min-width: 1200px) {
  #page-admin-clase-reproductor .repro-cuerpo {
    gap: 18px !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
  }

  #page-admin-clase-reproductor .repro-video-wrap {
    width: 62% !important;
    height: 100% !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    border-radius: 14px;
    background: #000;
  }

  #page-admin-clase-reproductor .repro-panel {
    width: 38% !important;
    padding: 10px 22px !important;
    box-sizing: border-box;
  }

  #page-admin-clase-reproductor .repro-video {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #000;
  }

  #page-admin-clase-reproductor .repro-siguiente {
    font-size: clamp(36px, 2.8vw, 54px) !important;
    font-weight: 900 !important;
    line-height: 1.08 !important;
    color: rgba(255,255,255,.98) !important;
    margin: 8px 0 24px !important;
  }

  #page-admin-clase-reproductor .repro-descanso-siguiente {
    font-size: clamp(40px, 3vw, 58px) !important;
    font-weight: 900 !important;
    line-height: 1.08 !important;
    max-width: 96% !important;
  }

  #page-admin-clase-reproductor #repro-ronda-label {
    font-size: clamp(18px, 1.4vw, 26px);
    padding: 7px 15px;
  }
}

/* ============================================================
   NF24 · Reproductor Premium TV — parche visual seguro
   - margen superior seguro para TVs con overscan
   - progreso visual de ronda
   - fases más diferenciadas
   - últimos segundos más visibles (si JS ya expone clases/estados)
   - descanso más legible
   ============================================================ */

/* Zona segura TV: evita que la cabecera/ronda quede cortada por overscan */
@media (min-width: 900px) {
  #page-admin-clase-reproductor {
    padding-top: max(22px, env(safe-area-inset-top)) !important;
    box-sizing: border-box;
  }

  #page-admin-clase-reproductor #repro-ronda-label {
    margin-top: 10px !important;
    transform: translateY(6px);
  }

  /* Barra visual bajo el indicador de ronda.
     No requiere JS nuevo: actúa como soporte visual del indicador existente. */
  #page-admin-clase-reproductor #repro-ronda-label {
    position: relative;
    margin-bottom: 14px !important;
  }

  #page-admin-clase-reproductor #repro-ronda-label::after {
    content: "";
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: -9px;
    height: 4px;
    border-radius: 999px;
    background: rgba(255,255,255,.18);
  }
}

/* Fases visualmente más claras, sin cambiar lógica */
#page-admin-clase-reproductor .repro-fase-trabajo,
#page-admin-clase-reproductor .repro-fase-descanso,
#page-admin-clase-reproductor .repro-fase-between_blocks {
  font-weight: 900 !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.35);
}

/* Pantalla de descanso: siguiente ejercicio muy visible */
#page-admin-clase-reproductor .repro-descanso-overlay {
  padding: 24px !important;
  box-sizing: border-box;
}

#page-admin-clase-reproductor .repro-descanso-titulo {
  font-weight: 900 !important;
  letter-spacing: 2.5px !important;
}

@media (min-width: 900px) {
  #page-admin-clase-reproductor .repro-descanso-titulo {
    font-size: clamp(22px, 1.7vw, 32px) !important;
  }

  #page-admin-clase-reproductor .repro-descanso-siguiente {
    margin-top: 14px !important;
  }
}

/* Animación disponible para los últimos segundos.
   Solo se activa si el reproductor ya añade .repro-ultimos-segundos;
   por sí sola NO altera cronómetro ni lógica. */
@keyframes nf24CountdownPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.075); }
}

#page-admin-clase-reproductor .repro-tiempo.repro-ultimos-segundos,
#page-admin-clase-reproductor .repro-descanso-tiempo.repro-ultimos-segundos {
  animation: nf24CountdownPulse .55s ease-in-out infinite;
  transform-origin: center;
}


/* ============================================================
   NF24 · Reproductor TV — mejoras definitivas
   UI únicamente: ronda/progreso, fases, descanso y 3-2-1.
   ============================================================ */

/* Zona segura real para TVs que recortan el borde superior (overscan). */
@media (min-width: 900px) {
  #page-admin-clase-reproductor .repro-top {
    padding-top: 26px !important;
    min-height: 68px !important;
    box-sizing: border-box;
  }

  #page-admin-clase-reproductor .repro-progreso {
    transform: translateY(8px);
  }

  #page-admin-clase-reproductor #repro-ronda-label {
    margin-left: 8px;
    position: relative;
    font-size: clamp(19px, 1.45vw, 28px) !important;
    padding: 8px 16px !important;
    border-radius: 999px;
    background: rgba(255,215,0,.13);
    border: 1px solid rgba(255,215,0,.60);
    color: #fff;
    font-weight: 900;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  /* Barra REAL: el porcentaje lo escribe renderReproductor() desde app.js. */
  #page-admin-clase-reproductor #repro-ronda-label::after {
    content: "";
    position: absolute;
    left: 8%;
    width: 84%;
    bottom: -11px;
    height: 5px;
    border-radius: 999px;
    background:
      linear-gradient(
        to right,
        var(--gold) 0%,
        var(--gold) var(--nf24-round-progress, 0%),
        rgba(255,255,255,.20) var(--nf24-round-progress, 0%),
        rgba(255,255,255,.20) 100%
      ) !important;
    box-shadow: 0 0 10px rgba(255,215,0,.25);
  }
}

/* Fases muy claras de un vistazo, sin cambiar ninguna transición/tiempo. */
#page-admin-clase-reproductor .repro-wrap {
  transition: background .20s ease;
}

#page-admin-clase-reproductor .repro-wrap.nf24-fase-trabajo .repro-panel {
  background: linear-gradient(90deg, rgba(74,222,128,.075), rgba(0,0,0,0) 70%) !important;
}

#page-admin-clase-reproductor .repro-wrap.nf24-fase-descanso .repro-panel {
  background: linear-gradient(90deg, rgba(96,165,250,.11), rgba(0,0,0,0) 70%) !important;
}

#page-admin-clase-reproductor .repro-wrap.nf24-fase-between_blocks .repro-panel {
  background: linear-gradient(90deg, rgba(249,115,22,.12), rgba(0,0,0,0) 70%) !important;
}

#page-admin-clase-reproductor .repro-wrap.nf24-fase-trabajo .repro-fase {
  color: #4ade80 !important;
}

#page-admin-clase-reproductor .repro-wrap.nf24-fase-descanso .repro-fase {
  color: #60a5fa !important;
}

#page-admin-clase-reproductor .repro-wrap.nf24-fase-between_blocks .repro-fase {
  color: #fb923c !important;
}

/* Descanso: información más grande y con jerarquía TV. */
#page-admin-clase-reproductor .repro-descanso-overlay {
  padding: 28px 24px !important;
  background: rgba(0,0,0,.84) !important;
  backdrop-filter: blur(1.5px);
}

#page-admin-clase-reproductor .repro-descanso-titulo {
  font-size: clamp(24px, 2vw, 38px) !important;
  font-weight: 900 !important;
  letter-spacing: 3px !important;
  color: #60a5fa !important;
  margin-bottom: 12px !important;
}

#page-admin-clase-reproductor .repro-descanso-tiempo {
  font-size: clamp(120px, 10vw, 190px) !important;
  line-height: .88 !important;
  margin: 6px 0 20px !important;
}

#page-admin-clase-reproductor .repro-descanso-siguiente {
  font-size: clamp(34px, 2.8vw, 54px) !important;
  font-weight: 900 !important;
  line-height: 1.08 !important;
  color: #fff !important;
  max-width: 94% !important;
  margin: 0 auto !important;
}

/* Panel derecho durante descanso: igualmente muy legible. */
#page-admin-clase-reproductor .repro-wrap.nf24-fase-descanso .repro-fase {
  font-size: clamp(24px, 1.8vw, 36px) !important;
  letter-spacing: 2.5px !important;
}

#page-admin-clase-reproductor .repro-wrap.nf24-fase-descanso .repro-ejercicio-nombre {
  font-size: clamp(38px, 3vw, 58px) !important;
  line-height: 1.05 !important;
}

#page-admin-clase-reproductor .repro-wrap.nf24-fase-descanso .repro-tiempo {
  font-size: clamp(140px, 11vw, 210px) !important;
  line-height: .88 !important;
}

#page-admin-clase-reproductor .repro-wrap.nf24-fase-descanso .repro-siguiente {
  font-size: clamp(36px, 2.8vw, 54px) !important;
  line-height: 1.08 !important;
}

/* Últimos 3 segundos: pulso visual real. */
@keyframes nf24Ultimos3Pulse {
  0%, 100% { transform: scale(1); filter: brightness(1); }
  50% { transform: scale(1.10); filter: brightness(1.22); }
}

#page-admin-clase-reproductor .repro-tiempo.repro-ultimos-segundos,
#page-admin-clase-reproductor .repro-descanso-tiempo.repro-ultimos-segundos {
  animation: nf24Ultimos3Pulse .46s ease-in-out infinite !important;
  transform-origin: center center;
}

/* Móvil: no hacemos gigante la interfaz. */
@media (max-width: 899px) {
  #page-admin-clase-reproductor #repro-ronda-label {
    font-size: 13px !important;
    padding: 5px 10px !important;
  }

  #page-admin-clase-reproductor .repro-descanso-titulo {
    font-size: 19px !important;
  }

  #page-admin-clase-reproductor .repro-descanso-tiempo {
    font-size: 74px !important;
  }

  #page-admin-clase-reproductor .repro-descanso-siguiente {
    font-size: 22px !important;
  }
}


/* ============================================================
   NF24 · Ficha de ejercicio — vídeo horizontal 16:9
   SOLO PRESENTACIÓN:
   - vuelve al formato horizontal compacto
   - rellena el cuadro con object-fit: cover
   - mantiene los controles nativos / pantalla completa
   - NO toca reproductor de clases, miniaturas ni JS
   ============================================================ */

body #page-ejercicio-detalle .entreno-ficha-video-wrap {
  width: 100% !important;
  max-width: none !important;
  aspect-ratio: 16 / 9 !important;
  max-height: none !important;
  margin: 0 0 22px !important;
  background: #050505 !important;
  border-radius: 18px !important;
  overflow: hidden !important;
}

body #page-ejercicio-detalle .entreno-ficha-video {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  background: #050505 !important;
  display: block !important;
}

/* En móvil mantiene exactamente el formato compacto 16:9 */
@media (max-width: 899px) {
  body #page-ejercicio-detalle .entreno-ficha-video-wrap {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    border-radius: 16px !important;
  }
}

/* En pantallas grandes no dejamos que se convierta en vertical */
@media (min-width: 900px) {
  body #page-ejercicio-detalle .entreno-ficha-video-wrap {
    width: min(100%, 900px) !important;
    aspect-ratio: 16 / 9 !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}


/* ============================================================
   NF24 · Reproductor — Logo grande + preview del siguiente
   SOLO PRESENTACIÓN. No altera orden, rondas, tiempos ni doble buffer.
   ============================================================ */

#page-admin-clase-reproductor .repro-brand-logo {
  display: block;
  width: clamp(170px, 15vw, 300px);
  max-width: 82%;
  height: auto;
  object-fit: contain;
  margin: 0 auto 18px;
  opacity: .98;
  filter: drop-shadow(0 8px 24px rgba(0,0,0,.28));
}

#page-admin-clase-reproductor .repro-next-preview {
  width: min(100%, 520px);
  margin: 4px auto 20px;
}

#page-admin-clase-reproductor .repro-next-preview-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  margin-bottom: 9px;
}

#page-admin-clase-reproductor .repro-next-preview-kicker {
  font-size: clamp(12px, .9vw, 16px);
  font-weight: 900;
  letter-spacing: 2px;
  color: var(--gold);
}

#page-admin-clase-reproductor .repro-next-preview-name {
  font-size: clamp(20px, 1.55vw, 30px);
  line-height: 1.08;
  font-weight: 900;
  color: #fff;
  text-align: center;
}

#page-admin-clase-reproductor .repro-next-preview-video-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 16px;
  background: #090909;
  border: 1px solid rgba(255,215,0,.24);
  box-shadow: 0 10px 28px rgba(0,0,0,.22);
}

#page-admin-clase-reproductor .repro-next-preview-video,
#page-admin-clase-reproductor .repro-next-preview-placeholder {
  width: 100%;
  height: 100%;
}

#page-admin-clase-reproductor .repro-next-preview-video {
  display: block;
  object-fit: cover;
  object-position: center;
  background: #090909;
}

#page-admin-clase-reproductor .repro-next-preview-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 42px;
  color: rgba(255,255,255,.35);
  background: #111;
}

/* Durante descanso el logo sigue presente pero cede espacio a la preview. */
#page-admin-clase-reproductor .repro-wrap.nf24-fase-descanso .repro-brand-logo {
  width: clamp(150px, 12vw, 240px);
  margin-bottom: 12px;
}

/* TV grande: logo con más presencia, preview clara sin apretar controles. */
@media (min-width: 1200px) {
  #page-admin-clase-reproductor .repro-brand-logo {
    width: clamp(220px, 18vw, 360px);
    margin-bottom: 22px;
  }

  #page-admin-clase-reproductor .repro-next-preview {
    width: min(100%, 500px);
    margin-bottom: 18px;
  }

  #page-admin-clase-reproductor .repro-wrap.nf24-fase-descanso .repro-logo-spacer {
    display: none;
  }
}

/* Móvil: no llenamos la pantalla con el logo ni con una preview enorme. */
@media (max-width: 899px) {
  #page-admin-clase-reproductor .repro-brand-logo {
    width: 135px;
    max-width: 52%;
    margin: 0 auto 10px;
  }

  #page-admin-clase-reproductor .repro-next-preview {
    width: min(100%, 340px);
    margin: 4px auto 14px;
  }

  #page-admin-clase-reproductor .repro-next-preview-name {
    font-size: 18px;
  }

  #page-admin-clase-reproductor .repro-next-preview-video-wrap {
    border-radius: 13px;
  }
}

/* ---- Coach/Admin/Paco — Seguimiento: input date + textarea sobre fondo NF24 ---- */
#coach-seg-proxima-revision,
#coach-seg-nota,
#admin-seg-proxima-revision,
#admin-seg-nota,
#paco-seg-proxima-revision,
#paco-seg-nota {
  background: var(--input-bg);
  border: 1px solid var(--border-soft);
  color: var(--text-dark);
  border-radius: 10px;
  padding: 8px 10px;
  font-size: 13px;
  font-family: inherit;
}
#coach-seg-proxima-revision,
#admin-seg-proxima-revision,
#paco-seg-proxima-revision {
  color-scheme: light; /* icono/popup nativo del selector de fecha coherente con el tema claro por defecto */
}
[data-theme="dark"] #coach-seg-proxima-revision,
[data-theme="dark"] #admin-seg-proxima-revision,
[data-theme="dark"] #paco-seg-proxima-revision {
  color-scheme: dark; /* mismo icono/popup, pero coherente cuando la app está en tema oscuro */
}
#coach-seg-nota::placeholder,
#admin-seg-nota::placeholder,
#paco-seg-nota::placeholder {
  color: var(--text-muted);
}
#coach-seg-proxima-revision:focus,
#coach-seg-nota:focus,
#admin-seg-proxima-revision:focus,
#admin-seg-nota:focus,
#paco-seg-proxima-revision:focus,
#paco-seg-nota:focus {
  outline: none;
  border-color: var(--gold);
}

/* ============================================================
   ADMIN DASHBOARD — Fase 1 (Requiere tu atención + KPIs jerarquizados
   + Equipo y negocio colapsable). Acotado exclusivamente a page-admin,
   reutilizando variables ya existentes (--gold, --card-white,
   --border-soft, --text-dark, --text-muted, --danger, --black).
   ============================================================ */

/* ---- Requiere tu atención ---- */
.admin-attention-card {
  background: var(--card-white);
  border: 1px solid var(--border-soft);
  border-radius: 16px;
  padding: 16px;
  margin-bottom: 20px;
}
.admin-attention-title {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 10px;
}
.admin-attention-row {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  background: none;
  border: none;
  border-top: 1px solid var(--border-soft);
  padding: 11px 2px;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
}
.admin-attention-row:first-child { border-top: none; padding-top: 0; }
.admin-attention-icon { font-size: 17px; flex-shrink: 0; }
.admin-attention-text { flex: 1; font-size: 13px; font-weight: 600; color: var(--text-dark); }
.admin-attention-text span:first-child { color: var(--gold); font-weight: 800; }
.admin-attention-arrow { color: var(--text-muted); font-size: 15px; flex-shrink: 0; }
.admin-attention-row:hover .admin-attention-arrow { color: var(--gold); }
.admin-attention-empty { text-align: center; padding: 8px 0; }
.admin-attention-empty-title { font-size: 14px; font-weight: 800; color: var(--gold); margin: 0; }
.admin-attention-empty-sub { font-size: 12px; color: var(--text-muted); margin: 3px 0 0; }

/* ---- KPIs — v11.5.1: 4 prioritarios grandes + 5 secundarios compactos ---- */
.admin-kpi-principales {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-bottom: 10px;
}
.admin-stat-card-principal { padding: 20px 14px; }
.admin-stat-card-principal .admin-stat-val-v2 { font-size: 30px; }
.admin-stat-card-principal .admin-stat-icon-v2 { font-size: 24px; }

.admin-stats-grid-8 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
.admin-stat-card-secundaria { padding: 10px 6px; border-radius: 12px; }
.admin-stat-card-secundaria .admin-stat-val-v2 { font-size: 18px; margin-top: 2px; }
.admin-stat-card-secundaria .admin-stat-icon-v2 { font-size: 16px; }
.admin-stat-card-secundaria .admin-stat-lbl-v2 { font-size: 10px; }

/* Desktop/tablet: las 4 tarjetas principales pasan a una sola fila. En
   móvil (por debajo de este ancho) se quedan en grid 2x2 — nunca en
   scroll horizontal, para no provocar overflow del dashboard. */
@media (min-width: 640px) {
  .admin-kpi-principales { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 480px) {
  .admin-stat-card-principal { padding: 14px 8px; }
  .admin-stat-card-principal .admin-stat-val-v2 { font-size: 22px; }
  .admin-stats-grid-8 { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 900px) {
  .admin-stats-grid-8 { grid-template-columns: repeat(5, 1fr); }
  .admin-quickaccess-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---- Mayor separación entre grupos del dashboard ---- */
#page-admin .entreno-section-row { margin-top: 22px; }
#page-admin .entreno-section-row:first-of-type { margin-top: 4px; }

/* ============================================================
   ADMIN DASHBOARD — Fase 1.1 (compactado + Equipo y negocio V1).
   Acotado a page-admin. Reutiliza variables ya existentes.
   ============================================================ */

/* ---- Requiere tu atención — compactado ---- */
.admin-attention-card { padding: 12px 14px; margin-bottom: 16px; }
.admin-attention-title { margin: 0 0 6px; }
.admin-attention-row { padding: 8px 2px; gap: 8px; }
.admin-attention-icon { font-size: 15px; }
.admin-attention-text { font-size: 12.5px; }

/* ---- Banda compacta de KPIs secundarios ---- */
.admin-kpi-banda {
  display: flex;
  background: var(--card-white);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  overflow-x: auto;
}
.admin-kpi-banda-item {
  flex: 1 0 auto;
  min-width: 74px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 10px 6px;
  cursor: pointer;
  appearance: none;
  background: transparent;
  color: inherit;
  font: inherit;
  border: 0;
  border-right: 1px solid var(--border-soft);
}
.admin-kpi-banda-item:last-child { border-right: none; }
.admin-kpi-banda-item:hover { background: var(--input-bg); }
.admin-kpi-banda-item.active { background: var(--input-bg); box-shadow: inset 0 -2px 0 var(--gold); }
.admin-kpi-banda-icon { font-size: 14px; }
.admin-kpi-banda-val { font-size: 15px; font-weight: 800; color: var(--gold); }
.admin-kpi-banda-lbl { font-size: 9.5px; color: var(--text-muted); text-align: center; }

/* Gestión Natural Fitness — vista GYM estilo Excel (rediseño visual,
   misma lógica ya validada). Estética NF24FIT (negro/gris/amarillo) +
   colores funcionales de estado. */

/* Punto 1 del pulido: la regla global ".page" limita TODAS las
   pantallas a 720px de ancho (73 pantallas la comparten, así que esa
   regla no se toca). Esta pantalla concreta necesita más espacio en
   desktop para que quepan más meses sin depender tanto del scroll —
   se sobrescribe SOLO por id, sin afectar a ninguna otra pantalla.
   overflow-x:hidden aquí garantiza además que quien se desplace en
   horizontal sea únicamente el área de la tabla (.gnf-tabla-wrap, que
   tiene su propio overflow-x:auto), nunca la página completa. */
#page-admin-gestion-nf { max-width: 1400px; overflow-x: hidden; }

.gnf-anio-nav { display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 12px; }
.gnf-resumen-card { background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 14px; padding: 10px 12px; }
.gnf-resumen-mes-picker { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.gnf-kpi-compacta .admin-kpi-banda-item { padding: 6px 4px; min-width: 58px; }
.gnf-kpi-compacta .admin-kpi-banda-val { font-size: 13px; }
.gnf-kpi-compacta .admin-kpi-banda-lbl { font-size: 8.5px; }

.gnf-form-card { max-width: 640px; }
.gnf-form-grid { display: grid; grid-template-columns: 1fr; gap: 10px 14px; }
@media (min-width: 620px) { .gnf-form-grid { grid-template-columns: 1fr 1fr; } }

/* Punto 1 — scroll cómodo y evidente: barra de scroll propia,
   coloreada y siempre visible (no la fina/discreta por defecto), para
   que nunca parezca que la tabla "termina" sin más meses detrás. */
.gnf-tabla-wrap { overflow-x: auto; overflow-y: visible; border: 1px solid var(--border-soft); border-radius: 12px; background: var(--card-white); -webkit-overflow-scrolling: touch; scrollbar-width: auto; scrollbar-color: var(--gold) var(--input-bg); }
.gnf-tabla-wrap::-webkit-scrollbar { height: 11px; }
.gnf-tabla-wrap::-webkit-scrollbar-track { background: var(--input-bg); }
.gnf-tabla-wrap::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 6px; }
.gnf-tabla { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 12.5px; white-space: nowrap; }
.gnf-tabla th, .gnf-tabla td { padding: 6px 9px; border-bottom: 1px solid var(--border-soft); text-align: center; }
.gnf-tabla th { position: sticky; top: 0; background: var(--card-white); color: var(--text-muted); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.03em; z-index: 2; padding-top: 9px; padding-bottom: 9px; }
.gnf-tabla td.gnf-col-cliente, .gnf-tabla th.gnf-col-cliente { text-align: left; }
.gnf-col-plaza, .gnf-col-dia { min-width: 46px; }
.gnf-col-cliente { min-width: 150px; max-width: 210px; overflow: hidden; text-overflow: ellipsis; }
.gnf-col-mes { min-width: 66px; }
/* Punto 2 — la columna de acciones quedaba cortada: ancho de sobra
   para el botón "+ Nuevo" y el menú "•••", más aire a la derecha para
   que el borde redondeado de la tabla nunca recorte el contenido. */
.gnf-col-acciones { min-width: 118px; padding-right: 14px !important; }
/* Columnas fijas al hacer scroll horizontal (PLAZA/DÍA/CLIENTE) —
   offsets recalculados con los nuevos anchos de columna de arriba. */
.gnf-tabla th.gnf-col-plaza, .gnf-tabla td.gnf-col-plaza { position: sticky; left: 0; z-index: 1; background: var(--card-white); }
.gnf-tabla th.gnf-col-dia, .gnf-tabla td.gnf-col-dia { position: sticky; left: 46px; z-index: 1; background: var(--card-white); }
.gnf-tabla th.gnf-col-cliente, .gnf-tabla td.gnf-col-cliente { position: sticky; left: 92px; z-index: 1; background: var(--card-white); border-right: 2px solid var(--border-soft); box-shadow: 3px 0 6px rgba(0,0,0,0.18); }
.gnf-tabla th.gnf-col-plaza, .gnf-tabla th.gnf-col-dia, .gnf-tabla th.gnf-col-cliente { z-index: 3; }
.gnf-tabla tbody tr { transition: background-color .1s ease; }
.gnf-tabla tr:hover td { background: var(--input-bg); }
.gnf-tabla tr:hover td.gnf-col-plaza, .gnf-tabla tr:hover td.gnf-col-dia, .gnf-tabla tr:hover td.gnf-col-cliente { background: var(--input-bg); }
.gnf-col-plaza { font-weight: 800; color: var(--gold); }
.gnf-col-cliente { font-weight: 600; }
.gnf-fila-libre td { color: var(--text-muted); font-style: italic; }

.gnf-celda { display: inline-block; min-width: 48px; padding: 4px 7px; border-radius: 7px; font-weight: 700; cursor: pointer; font-size: 12px; border: 1px solid transparent; color: var(--text-dark); }
.gnf-celda:hover { filter: brightness(1.1); transform: translateY(-1px); }
.gnf-celda-vacia { color: var(--text-muted); font-weight: 400; background: none; }
.gnf-celda-previsto { border-color: var(--border-soft); }
.gnf-celda-efectivo { background: #1f9d55; color: #fff; }
.gnf-celda-bizum { background: #38bdf8; color: #0b2530; }
.gnf-celda-pausa { background: #f59e0b; color: #2a1a00; }
.gnf-celda-baja { background: #dc2626; color: #fff; }

.gnf-nuevo-cliente-btn { font-size: 11.5px; padding: 5px 10px; width: auto; white-space: nowrap; }
.gnf-acciones-wrap { position: relative; display: inline-block; }
.gnf-acciones-btn { width: 30px; height: 26px; border-radius: 7px; border: 1px solid var(--border-soft); background: var(--input-bg); color: var(--text-dark); cursor: pointer; font-weight: 800; line-height: 1; }
.gnf-acciones-menu { position: absolute; right: 0; top: 28px; background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 10px; box-shadow: 0 6px 18px rgba(0,0,0,0.35); z-index: 6; min-width: 150px; overflow: hidden; }
.gnf-acciones-menu button { display: block; width: 100%; text-align: left; padding: 9px 12px; background: none; border: none; color: var(--text-dark); font-size: 12.5px; cursor: pointer; white-space: nowrap; }
.gnf-acciones-menu button:hover { background: var(--input-bg); }

/* Responsive — en tablet/móvil PLAZA/DÍA/CLIENTE se mantienen fijas y
   legibles; no se fuerza a que quepan los 12 meses, solo se permite
   deslizarlos con comodidad (misma barra de scroll visible de arriba). */
@media (max-width: 720px) {
  .gnf-col-cliente { min-width: 110px; max-width: 140px; }
  .gnf-col-mes { min-width: 58px; }
  .gnf-tabla th.gnf-col-dia, .gnf-tabla td.gnf-col-dia { left: 40px; }
  .gnf-tabla th.gnf-col-cliente, .gnf-tabla td.gnf-col-cliente { left: 80px; }
}

/* Cobros parciales + Revolut — añadido sobre el diseño v82, sin
   rediseñar la pantalla: mismo estilo de tarjeta/formulario, nuevos
   elementos dentro. */
.gnf-celda-revolut { background: #2563eb; color: #fff; }
.gnf-celda-parcial { background: repeating-linear-gradient(135deg, #f5c451, #f5c451 6px, #fff3d6 6px, #fff3d6 12px); color: #3a2a00; font-size: 10.5px; }

.gnf-cobro-resumen { display: flex; gap: 10px; margin-top: 12px; padding: 10px; background: var(--input-bg); border-radius: 10px; }
.gnf-cobro-resumen > div { flex: 1; text-align: center; }
.gnf-cobro-resumen-lbl { display: block; font-size: 10px; color: var(--text-muted); margin-bottom: 2px; }
.gnf-cobro-resumen strong { font-size: 15px; color: var(--text-dark); }

#gnf-celda-movimientos-lista { max-height: 160px; overflow-y: auto; }
.gnf-movimiento-fila { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--border-soft); font-size: 12.5px; }
.gnf-movimiento-fila:last-child { border-bottom: none; }
.gnf-movimiento-metodo { font-size: 10px; font-weight: 700; text-transform: uppercase; padding: 2px 7px; border-radius: 6px; }
.gnf-movimiento-metodo-efectivo { background: #1f9d55; color: #fff; }
.gnf-movimiento-metodo-bizum { background: #38bdf8; color: #0b2530; }
.gnf-movimiento-metodo-revolut { background: #2563eb; color: #fff; }
.gnf-movimiento-borrar { border: none; background: none; color: var(--text-muted); cursor: pointer; font-size: 14px; padding: 2px 6px; }
.gnf-movimiento-borrar:hover { color: #dc2626; }
.gnf-registrar-cobro { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border-soft); }

/* Gestión Natural Fitness (Fase 2) — colores de estado de la cuota
   mensual, tal como se definieron en el encargo: efectivo=verde,
   bizum=celeste, pausa=naranja, baja=rojo. Sin color = sin marcar/previsto. */


/* Pulido UX — en móviles estrechos (iPhone SE/mini) los 5 items no
   cabían completos antes de necesitar scroll, dando sensación de
   "corte" pese a que overflow-x:auto ya permite desplazarlos. Se
   reduce proporcionalmente el ancho mínimo/tipografía SOLO en esta
   franja para que los 5 quepan sin scroll cuando el viewport lo
   permite; en pantallas aún más pequeñas sigue disponible el scroll
   horizontal ya existente como red de seguridad. Ningún dato se
   oculta en ningún caso. */
@media (max-width: 400px) {
  .admin-kpi-banda-item { min-width: 62px; padding: 8px 3px; }
  .admin-kpi-banda-val { font-size: 13px; }
  .admin-kpi-banda-lbl { font-size: 8.5px; }
}

/* ---- Gestión — tarjetas compactas con badge arriba-derecha ---- */
.admin-gestion-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.admin-gestion-card {
  position: relative;
  background: var(--card-white);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}
.admin-gestion-card:hover { border-color: var(--gold); }
.admin-gestion-icon { font-size: 19px; }
.admin-gestion-title { font-size: 13px; font-weight: 700; color: var(--text-dark); }
.admin-gestion-sub { font-size: 11px; color: var(--text-muted); }
.admin-gestion-arrow { position: absolute; bottom: 10px; right: 12px; font-size: 14px; color: var(--text-muted); }
.admin-gestion-card:hover .admin-gestion-arrow { color: var(--gold); }
.admin-gestion-card .aq-badge { top: 8px; right: 8px; }

/* ---- Equipo y negocio — cabecera + tabs ---- */
.admin-equipo-header { margin: 4px 0 14px; }
.admin-equipo-title { font-size: 15px; font-weight: 800; color: var(--text-dark); margin: 0; }
.admin-equipo-sub { font-size: 12px; color: var(--text-muted); margin: 3px 0 0; }

.admin-equipo-tabs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 4px;
  margin-bottom: 14px;
}
.admin-equipo-tab {
  flex-shrink: 0;
  background: var(--card-white);
  border: 1px solid var(--border-soft);
  color: var(--text-muted);
  border-radius: 10px;
  padding: 8px 13px;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  font-family: inherit;
}
.admin-equipo-tab.active { background: var(--gold); color: var(--black); border-color: var(--gold); }

.admin-equipo-warning {
  font-size: 11px;
  color: var(--text-muted);
  background: var(--input-bg);
  border-radius: 8px;
  padding: 7px 10px;
  margin: 8px 0 0;
}

/* ---- Directorio Partners — tarjeta profesional ---- */
.admin-partner-card {
  display: flex;
  gap: 12px;
  background: var(--card-white);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  padding: 12px;
  margin-bottom: 10px;
}
.admin-partner-avatar { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.admin-partner-avatar-fallback {
  display: flex; align-items: center; justify-content: center;
  background: var(--input-bg); font-size: 17px;
}
.admin-partner-info { flex: 1; min-width: 0; }
.admin-partner-top-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.admin-partner-nombre { font-size: 13.5px; font-weight: 700; color: var(--text-dark); }
.admin-partner-badge {
  font-size: 10px; font-weight: 800; border-radius: 8px; padding: 2px 8px; flex-shrink: 0;
}
.admin-partner-badge.coach { background: var(--gold); color: var(--black); }
.admin-partner-badge.afiliado { background: var(--input-bg); color: var(--text-dark); }
.admin-partner-meta { font-size: 11.5px; color: var(--text-muted); margin-top: 3px; }
.admin-partner-comision { font-size: 12.5px; font-weight: 700; color: var(--gold); margin-top: 3px; }
.admin-partner-ver-ficha-btn { margin-top: 8px; padding: 6px 10px; font-size: 11.5px; }

/* ---- Comisiones — jerarquía visual en el importe final ---- */
.admin-comision-card {
  background: var(--card-white);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  padding: 12px;
  margin-bottom: 10px;
}
.admin-comision-partner { font-size: 13px; font-weight: 700; color: var(--text-dark); display: flex; align-items: center; gap: 8px; }
.admin-comision-detalle { font-size: 11px; color: var(--text-muted); margin-top: 5px; line-height: 1.5; }
.admin-comision-final { font-size: 20px; font-weight: 800; color: var(--gold); margin-top: 6px; }
.admin-comision-pagar-btn { margin-top: 8px; padding: 6px 10px; font-size: 11.5px; width: 100%; }

@media (min-width: 900px) {
  .admin-gestion-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ============================================================
   ADMIN CRM V2 — Clientes compacto + Equipo y negocio (Coaches/Cartera).
   Acotado a page-admin-clientes / page-admin-coach-cartera / bloque
   Equipo y negocio dentro de page-admin.
   ============================================================ */

/* ---- Toolbar Clientes — select oscuro integrado ---- */
#page-admin-clientes select,
.admin-toolbar-row select {
  background: var(--input-bg);
  border: 1px solid var(--border-soft);
  color: var(--text-dark);
  border-radius: 10px;
  padding: 9px 10px;
  font-size: 12.5px;
  font-family: inherit;
  appearance: none;
}
#page-admin-clientes .admin-toolbar-row { flex-wrap: wrap; }
@media (max-width: 480px) {
  #page-admin-clientes .admin-toolbar-row { gap: 6px; }
  #page-admin-clientes .admin-toolbar-row select,
  #page-admin-clientes .admin-toolbar-btn { flex: 1 1 45%; min-width: 0; }
}

/* ---- Tarjeta de cliente compacta v4 ---- */
.admin-client-card-v4 {
  display: flex;
  gap: 10px;
  padding: 10px;
  background: var(--card-white);
  border: 1px solid var(--border-soft);
  border-radius: 12px;
  margin-bottom: 8px;
  cursor: pointer;
  align-items: flex-start;
}
.admin-client-card-v4:hover { border-color: var(--gold); }
.admin-client-avatar-v4 { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.admin-client-card-info-v4 { flex: 1; min-width: 0; }
.admin-client-top-row-v4 { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.admin-client-nombre-v4 { font-size: 13px; font-weight: 700; color: var(--text-dark); }
.admin-client-desc-v4 { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.admin-client-bottom-row-v4 {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 6px; gap: 8px; flex-wrap: wrap;
}
.admin-client-responsable-v4 { font-size: 10.5px; color: var(--text-muted); }
.admin-client-acciones-v4 { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.admin-client-wa-btn-v4 {
  width: 26px; height: 26px; border-radius: 50%; background: var(--whatsapp);
  display: flex; align-items: center; justify-content: center; font-size: 13px; text-decoration: none;
}
.admin-client-verficha-v4 { font-size: 10.5px; font-weight: 700; color: var(--gold); white-space: nowrap; }

/* ---- Tarjeta Coach (Resumen/Coaches/Cartera preview) ---- */
.admin-coach-card {
  background: var(--card-white);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  padding: 12px;
  margin-bottom: 10px;
}
.admin-coach-top-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.admin-coach-nombre-wrap { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.admin-coach-codigo { font-size: 10.5px; color: var(--text-muted); }
.admin-coach-linea { font-size: 11.5px; color: var(--text-muted); margin-top: 3px; }
.admin-coach-chips-row { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.admin-coach-chip {
  font-size: 10.5px; font-weight: 700; border-radius: 8px; padding: 3px 8px;
  background: var(--input-bg); color: var(--text-dark);
}
.admin-coach-chip.gris { color: var(--text-muted); }
.admin-coach-ver-cartera-btn { margin-top: 8px; padding: 7px 10px; font-size: 11.5px; width: 100%; }

/* ---- Cartera del Coach ---- */
.admin-cartera-cliente-card {
  background: var(--card-white);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  padding: 12px;
  margin-bottom: 10px;
}
.admin-cartera-verinfo-btn { margin-top: 8px; padding: 7px 10px; font-size: 11.5px; width: 100%; }

/* ---- Responsive general ---- */
@media (min-width: 900px) {
  #admin-client-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
  #admin-coaches-lista-wrap,
  #admin-directorio-partners-wrap,
  #admin-cartera-coach-lista { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
}
html, body { overflow-x: hidden; }
#page-admin, #page-admin-clientes, #page-admin-coach-cartera { padding-bottom: calc(var(--nav-height) + 16px); }

/* ============================================================
   ADMIN CRM V2.1 — pulido final (Clientes, Cartera Coach, Resumen).
   ============================================================ */

/* ---- Select dark con flecha custom, sin blanco nativo ---- */
#page-admin-clientes select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a0a0a0' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  background-size: 16px;
  padding-right: 28px;
}

/* ---- Refuerzo tarjeta Clientes: nombre con espacio real ---- */
.admin-client-card-info-v4 { flex: 1; min-width: 0; }
.admin-client-nombre-v4 { font-size: 13px; font-weight: 700; color: var(--text-dark); overflow-wrap: anywhere; }
.admin-client-responsable-v4 { font-size: 11px; color: var(--text-muted); font-weight: 600; }
.admin-client-verficha-v4 { font-size: 11px; font-weight: 800; color: var(--gold); white-space: nowrap; }

/* ---- Jerarquía de secciones en tarjeta Coach ---- */
.admin-coach-seccion-lbl {
  font-size: 9.5px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--text-muted); margin: 8px 0 3px;
}
.admin-coach-seccion-lbl:first-of-type { margin-top: 4px; }

/* ---- Cabecera de Cartera del Coach ---- */
.admin-cartera-header-row { display: flex; gap: 12px; align-items: center; }
.admin-cartera-avatar { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex-shrink: 0; font-size: 20px; }
.admin-cartera-header-top { display: flex; align-items: center; gap: 8px; }
.admin-cartera-negocio-row { display: flex; gap: 10px; flex-wrap: wrap; }
.admin-cartera-negocio-card {
  flex: 1; min-width: 160px; background: var(--card-white); border: 1px solid var(--border-soft);
  border-radius: 12px; padding: 10px 12px;
}

@media (min-width: 900px) {
  #admin-cartera-coach-kpis { flex-wrap: nowrap; }
}

/* ---- Modal "Responsable del cliente" (Admin V3) ---- */
.admin-responsable-opcion {
  display: flex; align-items: center; gap: 8px;
  background: var(--input-bg); border-radius: 10px; padding: 10px 12px;
  font-size: 13px; color: var(--text-dark); cursor: pointer;
}
.admin-responsable-opcion input { accent-color: var(--gold); }

/* ============================================================
   VISUAL SYSTEM V2 — HOME. Todo escopeado bajo #page-dashboard: las
   clases .dash-stat/.dash-card/.dash-chat-card/.smart-notif se
   reutilizan en otras páginas (confirmado), así que sus reglas base
   NUNCA se tocan aquí — solo se sobrescriben dentro de este scope,
   sin afectar a ninguna otra pantalla.
   ============================================================ */

/* ---- Saludo — más compacto, mejor integrado con los banners ---- */
#page-dashboard .dash-greeting { margin-bottom: 14px; }
#page-dashboard .dash-greeting h1 { font-size: 22px; letter-spacing: -0.3px; }
#page-dashboard .smart-notif { margin-bottom: 14px; }

/* ---- Hero "Empezar a entrenar" — la card principal del Home ---- */
#page-dashboard .dash-hero-card {
  position: relative;
  background: linear-gradient(155deg, var(--surface-2) 0%, var(--surface-1) 100%);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  padding: 18px;
  margin-bottom: 18px;
  box-shadow: var(--shadow-md);
  overflow: hidden;
}
[data-theme="dark"] #page-dashboard .dash-hero-card::before {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 300px 200px at 85% -20%, var(--gold-glow), transparent 65%);
  pointer-events: none;
}
[data-theme="dark"] #page-dashboard .dash-hero-card::after {
  content: "";
  position: absolute; top: 0; left: 20px; right: 20px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--surface-highlight), transparent);
  pointer-events: none;
}
#page-dashboard .dash-hero-card .btn-primary {
  position: relative; z-index: 1;
  font-size: 16px; padding: 16px;
  box-shadow: 0 6px 20px var(--gold-glow);
}

/* ---- Tu siguiente paso — más profundidad, sin cambiar estructura ---- */
#page-dashboard .siguiente-paso-card {
  box-shadow: var(--shadow-sm);
  background: var(--surface-2);
}

/* ---- Tu semana — una única superficie premium en vez de 4 cajas
   iguales. Los .dash-stat internos pierden su fondo/borde propio
   (solo dentro de este scope) y pasan a ser celdas separadas por
   divisores muy sutiles. ---- */
#page-dashboard .dash-week-card {
  background: var(--surface-2);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  padding: 16px 6px;
  margin-bottom: 14px;
  box-shadow: var(--shadow-sm);
}
#page-dashboard .dash-week-card .dash-stats-grid {
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-bottom: 0;
}
#page-dashboard .dash-week-card .dash-stat {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 8px 4px;
  position: relative;
}
#page-dashboard .dash-week-card .dash-stat:not(:first-child)::before {
  content: "";
  position: absolute; left: 0; top: 10%; bottom: 10%; width: 1px;
  background: var(--border-soft);
}
#page-dashboard .dash-week-card .dash-stat .dash-icon { width: 30px; height: 30px; font-size: 15px; }
#page-dashboard .dash-week-card .dash-stat .dash-val { font-size: 17px; }
#page-dashboard .dash-week-card .dash-stat .dash-lbl { font-size: 9px; }

/* ---- Cards restantes del Home — profundidad consistente ---- */
#page-dashboard .dash-card,
#page-dashboard .dash-chat-card,
#page-dashboard .dash-invite-card {
  box-shadow: var(--shadow-sm);
  background: var(--surface-2);
}

@media (max-width: 380px) {
  #page-dashboard .dash-week-card .dash-stat .dash-lbl { font-size: 8px; }
  #page-dashboard .dash-week-card { padding: 14px 2px; }
}

/* ============================================================
   VISUAL SYSTEM V2 — EXPERIENCIA CLIENTE (extensión del Home V2 al
   resto de pantallas de cliente). .tracker-card ya se benefició de la
   Fase Base de forma GLOBAL (no escopeada a Home), así que Planes,
   Herbalife, Logros, Comunidad y Oportunidad ya heredan parte de esta
   profundidad automáticamente. Este bloque refuerza específicamente
   las clases que NO usan .tracker-card — todo aditivo (box-shadow /
   background nuevos), nunca se retira ninguna propiedad existente.
   ============================================================ */

/* ---- Entreno (page-ejercicios) — más deportivo/enérgico ---- */
#page-ejercicios .entreno-tool-card {
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.15s ease, transform 0.1s ease;
}
#page-ejercicios .entreno-tool-card:active { box-shadow: var(--shadow-md); }

/* v11.12 — Admin: compactación ligera de las cards de Personas/
   Negocio/Contenido/Mi cuenta, sin tocar la regla base de
   .entreno-tool-card (que también usa Entreno y Workday). Más
   perceptible en desktop, donde antes quedaban más grandes de lo
   necesario. */
#page-admin .entreno-tool-card { padding: 11px 14px; gap: 12px; }
#page-admin .entreno-tool-icon { width: 36px; height: 36px; }
#page-admin .entreno-tool-icon svg { width: 17px; height: 17px; }
@media (min-width: 760px) {
  #page-admin .entreno-tool-card { padding: 10px 14px; }
  #page-admin .entreno-tool-icon { width: 34px; height: 34px; }
}

/* ---- Skin AI / servicios premium — halo dorado más presente,
   coherente con "presentación de servicio premium orientada a
   conversión" ---- */
[data-theme="dark"] .skin-hero-card {
  box-shadow: var(--shadow-lg), 0 0 40px -20px var(--gold-glow);
}
.premium-card { box-shadow: var(--shadow-md); }
.video-list-card { box-shadow: var(--shadow-sm); }

/* ---- Comunidad — sensación de feed: posts más separados, con
   profundidad individual en vez de lista plana ---- */
#page-comunidad .comunidad-card {
  box-shadow: var(--shadow-sm);
  border-radius: var(--radius-md);
  margin-bottom: 14px;
}

/* ---- Logros — gamificación más premium: insignias con glow dorado
   sutil cuando están desbloqueadas ---- */
.badge-item {
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.15s ease;
}
.badge-item:not(.locked) {
  box-shadow: var(--shadow-sm), 0 0 0 1px var(--gold-glow) inset;
}

/* ---- Retos / ranking — mismas cards con más profundidad ---- */
.hito-card { box-shadow: var(--shadow-sm); }

/* ---- Oportunidad (page-trabaja) — menos "bloques de texto", más
   aire entre secciones ---- */
#page-trabaja .tracker-card { margin-bottom: 18px; }
#page-trabaja .section-title { margin-top: 22px; }

/* ---- Suplementos (Herbalife) — catálogo premium, más protagonismo
   de producto ---- */
#page-herbalife .tracker-card,
#page-herbalife-detail .tracker-card { box-shadow: var(--shadow-sm); }
.discount-banner { box-shadow: var(--shadow-sm); }

/* ---- Botones flotantes de WhatsApp — coherentes con el nuevo
   sistema de sombra en vez de un rgba(0,0,0,..) suelto ---- */
.floating-wa { box-shadow: var(--shadow-lg); }

/* ============================================================
   VISUAL SYSTEM V2 — RONDA CLIENTE 2. Composición real, no solo
   sombras. Jerarquía background → sección → card → CTA.
   ============================================================ */

/* ---- SEGUIMIENTO — sub-superficies dentro del mismo formulario ---- */
#page-seguimiento .reg-shell {
  /* Ahora es la "sección" que envuelve las cards, no una card en sí:
     menos peso visual que sus .reg-block internos. */
  background: var(--surface-1);
  box-shadow: none;
  padding: 14px 12px;
}
#page-seguimiento .reg-block {
  background: var(--surface-2);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-md);
  padding: 14px;
  margin-bottom: 12px;
  box-shadow: var(--shadow-sm);
}
#page-seguimiento .reg-block:last-of-type { margin-bottom: 0; }
#page-seguimiento .reg-block-principal {
  border-top: 2px solid var(--gold);
}
#page-seguimiento .reg-block .reg-grid { margin-bottom: 0; }
#page-seguimiento .reg-cta-row {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--border-soft);
}
#page-seguimiento .reg-cta-row .btn-primary { margin-top: 0; }

/* ---- SUPLEMENTOS (Herbalife) — catálogo premium ---- */
.discount-banner {
  background: linear-gradient(135deg, var(--gold-glow), transparent);
  border: 1px solid rgba(255, 215, 0, 0.25);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  font-weight: 600;
}

.herbalife-cat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 14px;
}
.herbalife-cat-tile {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  cursor: pointer;
  background: var(--surface-2);
  border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.15s ease, transform 0.1s ease;
  display: flex; flex-direction: column;
}
.herbalife-cat-tile:active { transform: scale(0.98); }
/* Imagen CONTENIDA en zona superior con fondo oscuro/profundidad
   alrededor — nunca a sangre — el producto queda claramente visible
   sobre una superficie propia, no "foto sobre blanco". */
.herbalife-cat-tile-media {
  aspect-ratio: 1 / 0.85;
  background: radial-gradient(ellipse at 50% 30%, var(--surface-3), var(--surface-1) 80%);
  display: flex; align-items: center; justify-content: center;
  padding: 6px;
}
.herbalife-cat-tile-img {
  /* 92% -> 98%: máximo seguro que deja aire real sin tocar bordes
     (el padding de 6px del contenedor ya garantiza esa separación).
     display:block + margin:auto refuerza el centrado real dentro de
     su caja, en vez de depender solo del centrado flex del padre —
     mismo tratamiento para las 67 imágenes, sin compensación
     individual por producto. */
  max-width: 98%; max-height: 98%; object-fit: contain;
  display: block; margin: auto;
  filter: drop-shadow(0 8px 14px rgba(0,0,0,0.35));
}
.herbalife-cat-tile-body { padding: 10px 12px 12px; flex: 1; }
.herbalife-cat-tile-title { font-size: 13.5px; font-weight: 800; color: var(--text-dark); line-height: 1.2; }
.herbalife-cat-tile-desc { font-size: 10.5px; color: var(--text-muted); margin-top: 3px; line-height: 1.3; }

/* ---- Ficha de producto — imagen protagonista arriba ---- */
/* Segunda pasada según referencia: card HORIZONTAL/compacta —
   imagen oficial a la izquierda sobre superficie oscura, nombre y
   descripción a la derecha, CTA amarillo primario + Ver ficha
   secundario. Sin precio ni WhatsApp repetido por producto (movido a
   la ficha individual). */
.product-card {
  background: var(--card-white); border-radius: var(--radius-md); padding: 0; margin-bottom: 12px;
  border: 1px solid var(--border-soft); display: flex; align-items: stretch; overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.product-card-media {
  background: radial-gradient(ellipse at 50% 35%, var(--surface-3), var(--surface-1) 80%);
  display: flex; align-items: center; justify-content: center;
  width: 114px; flex-shrink: 0; position: relative;
}
.product-card img { width: 100%; height: 100%; object-fit: contain; padding: 6px; box-sizing: border-box; filter: drop-shadow(0 6px 10px rgba(0,0,0,0.3)); }
.product-card-media-placeholder { font-size: 26px; align-items: center; justify-content: center; width: 100%; height: 100%; }
.product-card .info { padding: 12px 14px; flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.product-card .title { font-weight: 800; font-size: 13.5px; line-height: 1.25; }
.product-card .desc { font-size: 11px; color: var(--text-muted); margin-top: 3px; margin-bottom: 8px; line-height: 1.35; }
.product-card-actions-row { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.product-card-actions-row .carrito-add-btn,
.product-card-actions-row .producto-ver-ficha-btn {
  width: 100%; padding: 8px 4px; font-size: 11px; margin: 0;
}

/* ---- COMUNIDAD — feed ---- */
#page-comunidad .comunidad-card {
  padding: 0; overflow: hidden;
}
#page-comunidad .comunidad-foto {
  width: 100%; border-radius: 0; margin: 0; display: block;
}
#page-comunidad .comunidad-msg { padding: 14px 16px 10px; margin: 0; }
.comunidad-actions-bar {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 16px 14px; border-top: 1px solid var(--border-soft); margin-top: 4px;
}
.comunidad-actions-left { display: flex; align-items: center; gap: 14px; }
.comunidad-actions-right { display: flex; align-items: center; gap: 10px; }

#page-comunidad .comunidad-compositor {
  border-top: 2px solid var(--gold);
  box-shadow: var(--shadow-md);
}

@media (max-width: 380px) {
  .herbalife-cat-grid { gap: 8px; }
  .herbalife-cat-tile-title { font-size: 12.5px; }
}

/* ============================================================
   VISUAL SYSTEM V2 — RONDA FINAL GENERAL
   ============================================================ */

/* ---- Retos (grid) / detalle Premium — overlay de título ---- */
.premium-card { position: relative; }
.premium-card-overlay {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 16px 14px 12px;
  background: linear-gradient(0deg, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.4) 60%, transparent 100%);
}
.premium-card-title { font-size: 16px; font-weight: 800; color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,0.4); }
.premium-body-card { box-shadow: var(--shadow-sm); }
.premium-body { padding: 0; }

/* ---- Oportunidad — escopeado, .encuesta-cta/.info-block se
   reutilizan en otras pantallas ---- */
#page-trabaja .encuesta-cta { box-shadow: var(--shadow-md); margin-bottom: 18px; }
#page-trabaja .info-block { box-shadow: var(--shadow-sm); }
#page-trabaja .tracker-card { box-shadow: var(--shadow-sm); }

/* ---- Logros — refuerzo de jerarquía puntos → nivel → insignias ---- */
#page-logros .skin-hero-card { margin-bottom: 16px; }
#page-logros #logros-nivel-card { box-shadow: var(--shadow-sm); margin-bottom: 20px; }
#page-logros #logros-nivel-icono {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%; background: var(--gold-glow);
}

/* ============================================================
   ADMIN — refuerzo sistemático de densidad/jerarquía sobre los
   componentes ya existentes (KPIs, atención, gestión, coaches,
   partners, comisiones, cliente). Acento visual propio (tipografía
   de valores más técnica, superficie ligeramente distinta) para que
   Admin nunca se confunda con una pantalla de cliente.
   ============================================================ */
[id^="page-admin"] { font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
[data-theme="dark"] [id^="page-admin"] .tracker-card,
[data-theme="dark"] [id^="page-admin"] .admin-coach-card,
[data-theme="dark"] [id^="page-admin"] .admin-partner-card,
[data-theme="dark"] [id^="page-admin"] .admin-comision-card,
[data-theme="dark"] [id^="page-admin"] .admin-cartera-cliente-card {
  background: var(--surface-1);
}
[id^="page-admin"] .admin-kpi-banda-val,
[id^="page-admin"] .admin-comision-final,
[id^="page-admin"] .dash-val {
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.2px;
}
[id^="page-admin"] .admin-coach-seccion-lbl,
[id^="page-admin"] .admin-attention-title {
  font-family: "Poppins", sans-serif;
}
/* Cabeceras de sección más compactas y con mayor densidad informativa
   que en cliente. */
[id^="page-admin"] .section-title { font-size: 13px; }

/* ============================================================
   COACH — Visual V2 sobre los componentes ya existentes de la ficha
   (Resumen/Progreso/Seguimiento/Entrenamiento/Nutrición/Accesos) y
   Mis clientes. Mantiene la calidez del sistema cliente pero con más
   densidad, coherente con "herramienta profesional distinta del
   cliente".
   ============================================================ */
#page-panel-comercial .tracker-card,
#page-coach-cliente-detalle .tracker-card {
  box-shadow: var(--shadow-sm);
}
#page-panel-comercial #coach-mis-clientes-lista .tracker-card {
  transition: box-shadow 0.15s ease;
}
#page-panel-comercial #coach-mis-clientes-lista .tracker-card:active {
  box-shadow: var(--shadow-md);
}
#page-coach-cliente-detalle .section-title { margin-top: 20px; }
#page-coach-cliente-detalle .section-title:first-of-type { margin-top: 0; }

/* ============================================================
   HERBALIFE STORE V2 — mini e-commerce premium NF24FIT primero,
   Herbalife como producto. Reutiliza tokens V2 (--surface-*,
   --shadow-*, --gold-glow, --radius-*) — sin design system nuevo.
   ============================================================ */

#page-herbalife .herbalife-subtitle {
  font-size: 12.5px; color: var(--text-muted); margin: -8px 0 16px;
}

/* ---- Banner de beneficio — página principal ---- */
.discount-banner-hero {
  display: flex; align-items: center; gap: 16px;
  background: linear-gradient(135deg, var(--gold-glow), var(--surface-2) 70%);
  border: 1px solid rgba(255, 215, 0, 0.28);
  border-radius: var(--radius-lg);
  padding: 16px 18px;
  box-shadow: var(--shadow-md);
}
.discount-banner-text { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.discount-banner-tag { font-size: 11px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gold); }
.discount-banner-value { font-size: 22px; font-weight: 800; color: var(--text-dark); margin-top: 2px; }
.discount-banner-sub { font-size: 12px; color: var(--text-muted); }

/* ---- Insignia hexagonal — elemento puramente decorativo, mismo
   35% ya comunicado en texto al lado, sin condición nueva. ---- */
.hexagon-badge {
  --hex-size: 66px;
  width: var(--hex-size); height: var(--hex-size); flex-shrink: 0;
  clip-path: polygon(25% 6%, 75% 6%, 100% 50%, 75% 94%, 25% 94%, 0% 50%);
  background: linear-gradient(155deg, var(--gold), #e0b400);
  color: #171310;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-weight: 800; line-height: 1.05; text-align: center;
  box-shadow: 0 4px 14px var(--gold-glow);
}
.discount-banner-hexagon { font-size: 15px; }

/* ---- Franja de confianza — solo lo real (asesoría por WhatsApp) ---- */
/* Ahora es un <button> real (antes <div> sin acción) — misma
   superficie, con feedback táctil y flecha para dejar claro que es
   pulsable. */
.herbalife-trust-strip {
  display: flex; align-items: center; gap: 12px; width: 100%; text-align: left;
  background: var(--surface-2); border: 1px solid var(--border-soft);
  border-radius: var(--radius-md); padding: 14px 16px; margin-top: 16px;
  font-family: inherit; cursor: pointer; box-shadow: var(--shadow-sm);
  transition: box-shadow 0.15s ease;
}
.herbalife-trust-strip:active { box-shadow: var(--shadow-md); }
.herbalife-trust-icon {
  font-size: 18px; flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
  background: var(--gold-glow); display: flex; align-items: center; justify-content: center;
}
.herbalife-trust-text { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.herbalife-trust-title { font-size: 13px; font-weight: 800; color: var(--text-dark); }
.herbalife-trust-sub { font-size: 11px; color: var(--text-muted); line-height: 1.3; }
.herbalife-trust-arrow { font-size: 20px; color: var(--text-muted); flex-shrink: 0; }

/* ---- Placeholder de imagen en la ficha de producto ---- */
.producto-detalle-imagen-placeholder {
  width: 100%; height: 200px; display: flex; align-items: center; justify-content: center;
  font-size: 40px; color: var(--text-muted);
}

/* ---- Categorías — tiles con flecha indicadora ---- */
/* Flecha discreta — ya no vive sobre la imagen (que ya no es a
   sangre), sino en la esquina inferior del tile completo, posicionada
   respecto al propio .herbalife-cat-tile (position:relative). */
.herbalife-cat-tile-arrow {
  position: absolute; bottom: 10px; right: 10px; z-index: 1;
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--gold-glow); color: var(--gold);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700;
}

/* ---- Ficha de producto individual — hero premium sobre fondo
   oscuro, sin tocar la fotografía oficial en sí ---- */
.producto-detalle-hero {
  position: relative;
  background: radial-gradient(ellipse at 50% 20%, var(--surface-3), var(--surface-1) 75%);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  padding: 20px;
  margin-bottom: 14px;
  box-shadow: var(--shadow-md);
  display: flex; align-items: center; justify-content: center;
}
/* .hexagon-badge ya aporta forma/fondo/tipografía — aquí solo el
   posicionamiento específico dentro del hero de producto. */
.producto-detalle-badge {
  position: absolute; top: 14px; right: 14px; z-index: 2;
  font-size: 11.5px;
}
.producto-detalle-imagen {
  width: 100%; max-height: 260px; object-fit: contain; border-radius: var(--radius-md);
  background: transparent; margin-bottom: 0;
  filter: drop-shadow(0 12px 20px rgba(0,0,0,0.35));
  cursor: pointer;
}
.producto-detalle-tomando {
  position: absolute; top: 14px; left: 14px; z-index: 2;
}
.producto-detalle-info-card { box-shadow: var(--shadow-sm); margin-bottom: 14px; }
.producto-detalle-info-card .producto-detalle-precio { margin-bottom: 0; font-size: 16px; }

/* ---- Carrito ---- */
#page-herbalife-carrito .carrito-item-row {
  box-shadow: var(--shadow-sm);
}
#page-herbalife-carrito .carrito-qty-btn { background: var(--surface-3); }

@media (max-width: 380px) {
  .discount-banner-value { font-size: 19px; }
}

/* ---- Jerarquía de CTA en ficha de producto — SOLO presentación,
   mismo id/handler/routing/condición de siempre. Añadir al carrito
   pasa a CTA principal (reutiliza .btn-primary global); WhatsApp
   pasa a secundario — se restyla EXCLUSIVAMENTE aquí por id, sin
   tocar la clase .wa-btn base (usada en otros puntos de la app). ---- */
#producto-detalle-carrito-btn { margin-bottom: 10px; }
#producto-detalle-wa.producto-detalle-wa-secundario {
  background: transparent;
  color: var(--gold);
  border: 1px solid var(--gold);
  box-shadow: none;
  width: 100%;
  justify-content: center;
}

/* ---- Botón discreto "Ver etiqueta oficial" — solo visible cuando el
   producto tiene PDF asociado ---- */
.producto-detalle-etiqueta-btn {
  display: block; text-align: center; margin: 10px auto 0; font-size: 12px;
}

/* ---- Señal discreta de imagen ampliable ---- */
.producto-detalle-zoom-hint {
  position: absolute; bottom: 12px; right: 12px; z-index: 2;
  width: 30px; height: 30px; border-radius: 50%;
  background: rgba(0, 0, 0, 0.45); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; pointer-events: none; /* el clic real lo gestiona la imagen */
}

/* ---- Lightbox de imagen de producto ---- */
.lightbox-overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(0, 0, 0, 0.85);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  cursor: zoom-out;
}
.lightbox-img {
  max-width: 100%; max-height: 100%; object-fit: contain;
  border-radius: var(--radius-md);
  cursor: default;
}
.lightbox-close {
  position: fixed; top: 16px; right: 16px; z-index: 10000;
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255, 255, 255, 0.12); color: #fff; border: none;
  font-size: 24px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}

/* ---- Ficha de producto — ¿Qué es? / ✨ Beneficios / 🎯 Ideal para.
   Mismo diseño para las 67 fichas, sin variación por categoría. ---- */
.producto-detalle-label {
  font-size: 11.5px; font-weight: 800; letter-spacing: 0.02em;
  color: var(--text-dark); margin: 14px 0 4px;
}
#producto-detalle-label-desc { margin-top: 0; }
.producto-beneficios-list {
  list-style: none; margin: 0 0 4px; padding: 0;
  display: flex; flex-direction: column; gap: 6px;
}
.producto-beneficios-list li {
  font-size: 13px; color: var(--text-dark); line-height: 1.45;
  background: var(--surface-2); border: 1px solid var(--border-soft);
  border-radius: var(--radius-sm); padding: 8px 10px;
}

/* ============================================================
   DASHBOARD — pulido UX (2ª ronda). Compactado ESCOPEADO a
   #page-dashboard: .dash-card/.dash-chat-card/.dash-invite-card se
   reutilizan en otras pantallas, así que sus reglas base no se tocan.
   ============================================================ */
#page-dashboard .dash-card { padding: 13px 16px; margin-bottom: 10px; }
#page-dashboard .dash-chat-card { padding: 11px 14px; margin-bottom: 10px; }
#page-dashboard .dash-chat-card-avatar,
#page-dashboard .dash-chat-card-icon { width: 36px; height: 36px; font-size: 22px; }
#page-dashboard .dash-chat-card-title { font-size: 13.5px; }
#page-dashboard .dash-chat-card-sub { font-size: 11.5px; }
#page-dashboard .dash-invite-card { padding: 11px 14px; }

/* ---- Tarjeta de recomendación contextual de suplemento ---- */
.dash-reco-suplemento-card {
  position: relative;
  background: var(--surface-2);
  border: 1px solid rgba(255, 215, 0, 0.35);
  border-radius: var(--radius-md);
  padding: 14px;
  margin-bottom: 16px;
  box-shadow: var(--shadow-sm);
}
.dash-reco-suplemento-cerrar {
  position: absolute; top: 8px; right: 8px;
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--surface-3); border: none; color: var(--text-muted);
  font-size: 16px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.dash-reco-suplemento-top { display: flex; gap: 12px; align-items: center; padding-right: 20px; }
.dash-reco-suplemento-img {
  width: 52px; height: 52px; object-fit: contain; border-radius: var(--radius-sm);
  background: var(--surface-1); flex-shrink: 0;
}
.dash-reco-suplemento-info { min-width: 0; }
.dash-reco-suplemento-label { font-size: 10px; font-weight: 800; color: var(--gold); margin: 0 0 2px; text-transform: uppercase; letter-spacing: 0.03em; }
.dash-reco-suplemento-nombre { font-size: 13.5px; font-weight: 800; color: var(--text-dark); margin: 0; }
.dash-reco-suplemento-texto { font-size: 11.5px; color: var(--text-muted); margin: 2px 0 0; line-height: 1.35; }
.dash-reco-suplemento-acciones { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.dash-reco-suplemento-acciones button { padding: 8px 6px; font-size: 12px; margin: 0; }

/* ---- Seguimiento — pestañas internas (mismo bloque/ruta) ---- */
.seguimiento-tabs { display: flex; gap: 8px; margin-bottom: 14px; }
.seguimiento-tab {
  flex: 1; background: var(--surface-2); border: 1px solid var(--border-soft);
  color: var(--text-muted); border-radius: 12px; padding: 10px; font-size: 13px;
  font-weight: 700; cursor: pointer; font-family: inherit;
}
.seguimiento-tab.active { background: var(--gold); color: #111; border-color: var(--gold); }

/* ============================================================
   RONDA 10 — Rediseño premium completo de Seguimiento
   (#page-seguimiento), reproduciendo el mockup de referencia
   (Registrar / Mi evolución) con el mismo lenguaje visual ya usado en
   Entreno/Kilómetros/Bienestar: negro/gris oscuro, dorado NF24FIT,
   cards oscuras con borde fino, glow dorado sutil, sombras suaves.
   TODO lo de aquí abajo va scopeado a #page-seguimiento (o a IDs que
   solo existen dentro de esta pantalla) precisamente porque
   .seguimiento-tab / .metric-tabs / .tracker-card / .mi-rutina-card /
   .muscle-card / .supplement-promo son clases COMPARTIDAS con otras
   pantallas (fichas de admin, Kilómetros, Comunidad, Planes...) — nunca
   se toca la regla base sin scope, solo se añade encima para esta
   pantalla. No se cambia HTML estructural, ni IDs, ni listeners: solo
   presentación. La lógica de cálculo/gráfica/foto/guardado/compartir
   permanece intacta (js/app.js no se ha tocado en esta ronda).
   ============================================================ */
#page-seguimiento {
  /* Acento local, misma familia dorada que --e-accent/--w-accent en
     Entreno/Workday — mantiene la app coherente al cambiar de pantalla. */
  --sg-accent: #FFD100;
  --sg-accent-ink: #171310;
}

/* ---- 1) Selector premium "Registrar | Mi evolución" ---- */
#page-seguimiento .seguimiento-tabs { margin-bottom: 18px; gap: 8px; }
#page-seguimiento .seguimiento-tab {
  background: var(--surface-1); border: 1px solid var(--border-soft);
  color: var(--text-muted); border-radius: 13px; padding: 11px 10px;
  font-size: 13px; font-weight: 700; transition: background .15s ease, box-shadow .15s ease, color .15s ease;
}
#page-seguimiento .seguimiento-tab.active {
  background: linear-gradient(135deg, var(--sg-accent), #ffb700);
  color: var(--sg-accent-ink); border-color: var(--sg-accent);
  box-shadow: 0 6px 16px rgba(255, 209, 0, 0.30);
}

/* ---- 2) Card "Nuevo registro de progreso": el .reg-shell pasa a ser
   una sección ligera (sin peso visual propio) y cada .reg-block es la
   card real, oscura, con borde fino y sombra suave, tal como en el
   mockup (varias cards apiladas, no un único bloque gigante). ---- */
#page-seguimiento .reg-shell {
  background: transparent; box-shadow: none; padding: 0; border: none;
}
#page-seguimiento .reg-header,
#page-seguimiento .reg-shell > .reg-subtitle { padding: 0 2px; }
#page-seguimiento .reg-header-icon {
  display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 11px; flex-shrink: 0;
  background: linear-gradient(155deg, rgba(255,209,0,0.22), rgba(255,209,0,0.05));
  border: 1px solid rgba(255,209,0,0.32); font-size: 17px;
}
#page-seguimiento .reg-block {
  background: var(--surface-2); border: 1px solid var(--border-soft);
  border-radius: 16px; padding: 15px 14px; margin-bottom: 12px;
  box-shadow: var(--shadow-sm);
}
#page-seguimiento .reg-block-principal { border-top: none; border-color: rgba(255,209,0,0.22); }

/* ---- 3) Cabeceras de sección: icono + título + (info · o botón
   Mostrar/chevron). Los iconos de Composición corporal / Medidas
   corporales se añaden vía :has() sobre el propio botón-toggle real
   (#reg-toggle-composicion / #reg-toggle-medidas) — nunca por el texto
   del título — así que si esos IDs cambian de sitio el icono los sigue
   automáticamente y nunca se "cuelga" de un título por casualidad. ---- */
#page-seguimiento .reg-section-title-row {
  background: rgba(255,209,0,0.05); border-radius: 11px; padding: 9px 11px; margin: 0 0 10px;
}
#page-seguimiento .reg-block-principal .reg-section-title-row { margin-bottom: 12px; }
#page-seguimiento .reg-section-title-row:has(#reg-toggle-composicion) .reg-section-title::before,
#page-seguimiento .reg-section-title-row:has(#reg-toggle-medidas) .reg-section-title::before {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 7px; margin-right: 7px; font-size: 12px;
  background: rgba(255,209,0,0.14); vertical-align: -5px;
}
#page-seguimiento .reg-section-title-row:has(#reg-toggle-composicion) .reg-section-title::before { content: "🧬"; }
#page-seguimiento .reg-section-title-row:has(#reg-toggle-medidas) .reg-section-title::before { content: "📏"; }
#page-seguimiento .reg-toggle-btn {
  background: rgba(255,209,0,0.12); border-radius: 20px; padding: 5px 11px 5px 13px;
}

/* ---- 4) Inputs premium: mismo estilo, con glow dorado sutil al foco
   (coherente con .btn-primary y el resto de inputs de la app). ---- */
#page-seguimiento .metric-input-wrap input:focus {
  box-shadow: 0 0 0 3px var(--gold-glow);
}

/* ---- 5) Fotos de progreso: borde discontinuo premium, silueta local
   (assets/seguimiento/silueta-*.svg) con halo dorado, insignia "+" y
   texto "Toca para añadir" — la lógica real de selección/preview de
   foto (REG_FOTO_SLOTS en js/app.js) no se toca. ---- */
#page-seguimiento .reg-photo-slot {
  border-color: rgba(255,209,0,0.30); border-width: 1.5px; background: var(--surface-1);
  padding: 20px 10px 16px; transition: border-color .15s ease;
  box-shadow: inset 0 0 24px rgba(255,209,0,0.04);
}
#page-seguimiento .reg-photo-icon {
  width: 46px; height: 46px; margin: 0 auto 8px; background-repeat: no-repeat;
  background-position: center; background-size: contain;
  filter: drop-shadow(0 0 10px rgba(255,209,0,0.35));
}
#page-seguimiento #reg-photo-slot-frente .reg-photo-icon,
#page-seguimiento #reg-photo-slot-espalda .reg-photo-icon {
  background-image: url("../assets/seguimiento/silueta-frente.svg");
}
#page-seguimiento #reg-photo-slot-perfil .reg-photo-icon {
  background-image: url("../assets/seguimiento/silueta-perfil.svg");
}
#page-seguimiento .reg-photo-slot:not(.has-file)::after {
  content: "+"; position: absolute; right: 10px; bottom: 10px;
  width: 22px; height: 22px; border-radius: 50%; background: var(--sg-accent);
  color: var(--sg-accent-ink); font-size: 15px; font-weight: 800; line-height: 22px;
  text-align: center; box-shadow: 0 3px 10px rgba(255,209,0,0.4);
}
#page-seguimiento .reg-photo-slot.has-file .reg-photo-icon { display: none; }
#page-seguimiento .reg-photo-slot.has-file { border-color: var(--sg-accent); box-shadow: 0 8px 20px rgba(0,0,0,0.28); }
/* Corrección de presentación: .reg-photo-badge no tenía "display:none"
   por defecto en la regla base (solo se posiciona cuando hay foto), así
   que sin foto se veía como texto duplicado junto al label. Es un ajuste
   puramente visual, no toca el flujo real de selección de foto. */
#page-seguimiento .reg-photo-slot:not(.has-file) .reg-photo-badge { display: none; }

/* ---- 6) CTA "Guardar registro": mismo .btn-primary global (ya dorado
   con glow), reforzado aquí para sentirse "grande y protagonista". ---- */
#page-seguimiento .reg-cta-row .btn-primary {
  padding: 16px; border-radius: 15px; font-size: 15.5px;
  box-shadow: 0 8px 22px rgba(255, 209, 0, 0.28);
}

/* ---- 7) Hero "Mi Transformación": imagen local cinematográfica
   (assets/seguimiento/transformacion-hero.svg) a la derecha, overlay
   oscuro y glow dorado — mismo #transformacion-shortcut, mismo click,
   misma navegación (renderTransformacion no se toca). ---- */
#page-seguimiento #transformacion-shortcut {
  height: auto; min-height: 118px; padding: 20px 22px; border-radius: 20px;
  background:
    linear-gradient(100deg, rgba(10,8,6,0.94) 0%, rgba(10,8,6,0.78) 45%, rgba(10,8,6,0.25) 100%),
    url("../assets/seguimiento/transformacion-hero.svg");
  background-size: cover; background-position: center right;
  border: 1px solid rgba(255,209,0,0.30);
  box-shadow: 0 14px 30px rgba(0,0,0,0.32);
  position: relative; overflow: hidden;
}
#page-seguimiento #transformacion-shortcut .title { font-size: 19px; font-weight: 800; }
#page-seguimiento #transformacion-shortcut .extra { color: var(--sg-accent); }
#page-seguimiento #transformacion-shortcut .arrow {
  width: 34px; height: 34px; border-radius: 50%; background: rgba(255,209,0,0.16);
  border: 1px solid rgba(255,209,0,0.4); display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

/* ---- 8) Cards de métrica (Peso / % Grasa corporal / Masa muscular):
   ya usan .evo-metric-card con icono+título+valor+badge (renderEvoCards
   en js/app.js, sin tocar) — aquí solo se refuerza el acabado premium. ---- */
#page-seguimiento .evo-metric-card {
  background: var(--surface-2); border-radius: 15px; padding: 12px 11px;
  box-shadow: var(--shadow-sm);
}
#page-seguimiento .evo-metric-card .evo-mc-title span:first-child { font-size: 13px; }
#page-seguimiento .evo-metric-card .evo-mc-value { font-size: 18px; }

/* ---- 9) "Compartir mi progreso": mismo .share-progress-btn global +
   mismo listener/lógica de compartir; solo se afina el acabado. ---- */
#page-seguimiento .share-progress-btn {
  border-radius: 15px; padding: 15px; box-shadow: 0 8px 20px rgba(255, 209, 0, 0.26);
}

/* ---- 10) Card "Evolución": chips de métrica + selector de periodo +
   gráfica. Mismos IDs (#metric-tabs, #evo-filtro-fechas, #pesoChart),
   misma lógica de datos/cálculo — Chart.js ya dibuja línea dorada,
   puntos con borde dorado y área con transparencia dorada (sin cambios
   en js/app.js), solo se premium-iza el marco alrededor. ---- */
#page-seguimiento .evo-main-grid > .tracker-card {
  background: var(--surface-2); border-radius: 18px; box-shadow: var(--shadow-md);
  border-color: rgba(255,209,0,0.14);
}
#page-seguimiento .metric-tab {
  background: var(--surface-1); border-radius: 20px; font-weight: 700;
}
#page-seguimiento .metric-tab.active {
  background: linear-gradient(135deg, var(--sg-accent), #ffb700); color: var(--sg-accent-ink);
  border-color: var(--sg-accent); box-shadow: 0 4px 12px rgba(255,209,0,0.32);
}
#page-seguimiento .evo-filtro-select {
  background: var(--surface-1); border-radius: 20px; padding: 8px 14px; font-weight: 700;
}
#page-seguimiento canvas#pesoChart { padding-top: 4px; }

/* ---- 11) Panel derecho: "Último registro" / "Tu progreso" / "Desde
   que empezaste" — mismos IDs (#evo-ultimo-registro, #evo-tu-progreso,
   #evo-desde-inicio), mismo cálculo de diferencias, solo presentación. ---- */
#page-seguimiento .evo-panel {
  background: var(--surface-2); border-radius: 18px; box-shadow: var(--shadow-md);
  border-color: rgba(255,209,0,0.14);
}
#page-seguimiento .evo-ultimo-valor { color: var(--sg-accent); }
#page-seguimiento .evo-progreso-val.positivo { color: #4ade80; }

/* ---- 12) Aviso orientativo: card pequeña, discreta, icono + texto
   gris — mismo texto legal/orientativo, sin cambios de contenido. ---- */
#page-seguimiento .evo-disclaimer {
  background: var(--surface-1); border: 1px solid var(--border-soft);
  border-radius: 13px; padding: 11px 13px; font-size: 10.5px; opacity: 0.9;
}

/* ---- 13) Historial: fila fecha (izq.) / valor (der.) + línea
   divisoria fina — mismo #history-list, sin cambios de datos. ---- */
#page-seguimiento .history-list { margin-top: 18px; }
#page-seguimiento .history-row { padding: 13px 2px; }
#page-seguimiento .history-row .weight { color: var(--sg-accent); font-weight: 800; }

/* ---- 14) "Complementa tu nutrición": borde dorado fino + icono +
   CTA "Ver productos →" — mismo #supplement-promo, mismo click hacia
   page-herbalife (goToPage no se toca). Se escoge scope por ID en vez
   de por .supplement-promo a secas porque esa clase también la usa
   #supplement-promo-planes en la pantalla de Planes. ---- */
#page-seguimiento #supplement-promo {
  background: var(--surface-2); border: 1px solid rgba(255,209,0,0.35);
  border-radius: 18px; box-shadow: var(--shadow-sm);
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
#page-seguimiento #supplement-promo .promo-text { color: var(--text-dark); flex: 1; }
#page-seguimiento #supplement-promo .promo-link { flex-shrink: 0; white-space: nowrap; }

/* ---- 15) Coherencia menor: racha / día de descanso / ranking, mismos
   IDs y lógica, tono ajustado a la nueva paleta de la pantalla. ---- */
#page-seguimiento .streak-banner { background: var(--surface-2); border: 1px solid rgba(255,209,0,0.3); }
#page-seguimiento .descanso-btn { border-radius: 14px; }
#page-seguimiento .ranking-shortcut { border-radius: 14px; box-shadow: var(--shadow-sm); }

@media (min-width: 600px) {
  #page-seguimiento #transformacion-shortcut { min-height: 150px; }
}

/* ---- Comunidad — compositor colapsable ---- */
.comunidad-compositor-resumen {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
  background: none; border: none; cursor: pointer; font-family: inherit; padding: 0;
}
.comunidad-compositor-icon { font-size: 24px; }
.comunidad-compositor-texto { font-size: 14px; font-weight: 700; color: var(--text-dark); flex: 1; }
.comunidad-compositor-plus { font-size: 12px; font-weight: 700; color: var(--gold); white-space: nowrap; }

/* ---- Fase 4C — compositor único en modal (2 puntos de entrada) ---- */
body.modal-open { overflow: hidden; }
.comunidad-compositor-box { max-width: 460px; max-height: 88vh; overflow-y: auto; }
.comunidad-compositor-modal-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px; gap: 10px;
}
.comunidad-compositor-modal-header .close-btn {
  background: var(--surface-3); border: none; width: 32px; height: 32px;
  border-radius: 50%; font-size: 15px; cursor: pointer; color: var(--text-dark); flex-shrink: 0;
}
.comunidad-compositor-tipos-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px;
}
@media (min-width: 480px) {
  .comunidad-compositor-tipos-grid { grid-template-columns: repeat(5, 1fr); }
}
.comunidad-tipo-btn {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  background: var(--surface-2, var(--input-bg)); border: 1px solid var(--border-soft);
  border-radius: 14px; padding: 14px 8px; cursor: pointer; font-size: 12px; font-weight: 700;
  color: var(--text-dark);
}
.comunidad-tipo-btn:active { border-color: var(--gold); }
.comunidad-tipo-icono { font-size: 24px; }
.comunidad-compositor-solo-texto {
  display: block; width: 100%; text-align: center; background: none; border: none;
  color: var(--text-muted); font-size: 12.5px; font-weight: 600; cursor: pointer;
  padding: 8px 0 4px; text-decoration: underline;
}
.comunidad-compositor-atras-btn {
  display: block; background: none; border: none; color: var(--text-muted); font-size: 13px;
  font-weight: 700; cursor: pointer; padding: 0; margin-bottom: 10px;
}
.comunidad-compositor-actividad-fila {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 0; border-bottom: 1px solid var(--border-soft);
}
.comunidad-compositor-actividad-info { font-size: 13px; color: var(--text-dark); }
.comunidad-compositor-actividad-fecha { font-size: 11.5px; color: var(--text-muted); }
.comunidad-categoria-badge {
  display: inline-block; font-size: 11px; font-weight: 700; color: var(--gold);
  background: rgba(255,209,0,0.1); border-radius: 20px; padding: 2px 9px; margin-bottom: 6px;
}

/* ---- Insignia COACH (mejora móvil-first sobre Fase Social 4C) ----
   Reutiliza el mismo token --gold y el mismo patrón de píldora que
   .comunidad-categoria-badge / .food-grams-badge, sin colores nuevos. */
.coach-badge {
  display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 800;
  letter-spacing: 0.3px; color: var(--gold); background: rgba(255,209,0,0.14);
  border: 1px solid rgba(255,215,0,0.35); border-radius: 20px; padding: 1.5px 8px 1.5px 6px;
  vertical-align: middle; white-space: nowrap; flex-shrink: 0;
}
.coach-badge-icon { font-size: 10px; line-height: 1; }

/* Insignia en la misma línea que el nombre (feed y perfil deportivo).
   El nombre se trunca con puntos suspensivos si no hay espacio; la
   insignia conserva siempre su tamaño y nunca desaparece ni se corta. */
.comunidad-autor-nombre-linea {
  display: flex; align-items: center; gap: 6px; min-width: 0; max-width: 100%;
}
.comunidad-autor-nombre-linea .comunidad-autor-nombre {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
}
.perfil-resumen-nombre-linea {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  min-width: 0; max-width: 100%;
}
.perfil-resumen-nombre-linea .perfil-resumen-nombre {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
}

/* ---- Reservas — semana compacta ya cubierta arriba (.week-nav-btn) ---- */

/* ---- Menú central + — oscurecido de fondo vía CSS puro relacional,
   sin tocar ningún listener existente. #nav-more-menu y este overlay
   son hermanos DOM consecutivos; el estado (oculto/visible) del menú
   YA se gestiona en todos los puntos existentes (abrir, click fuera,
   elegir una opción) — el overlay simplemente sigue ese mismo estado
   automáticamente. */
.nav-more-overlay {
  position: fixed; inset: 0; z-index: 98;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0; pointer-events: none;
  transition: opacity 0.15s ease;
}
#nav-more-menu:not(.hidden) + .nav-more-overlay {
  opacity: 1; pointer-events: auto;
}

/* ---- Entreno — pulido sutil (sin reconstruir la pantalla) ---- */
#entreno-favoritos-link {
  background: var(--surface-2); border: 1px solid var(--border-soft);
  border-radius: var(--radius-pill); padding: 6px 12px;
}
#entrenamientos-cliente-shortcut { border-left: 2px solid var(--gold); }
.entreno-tool-badge-destacado {
  display: block; font-size: 9.5px; font-weight: 800; letter-spacing: 0.03em;
  color: var(--gold); margin-bottom: 2px;
}
.entreno-tool-card-destacada { border-color: rgba(255, 215, 0, 0.3); }

/* ============================================================
   ONBOARDING — indicador de pasos + bloque de foto (Paso 1)
   ============================================================ */
.onb-progreso { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-bottom: 18px; }
.onb-progreso-texto { font-size: 11.5px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.onb-progreso-dots { display: flex; align-items: center; gap: 4px; }
.onb-progreso-dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--surface-3); border: 1px solid var(--border-soft);
}
.onb-progreso-dot.active { background: var(--gold); border-color: var(--gold); }
.onb-progreso-linea { width: 24px; height: 2px; background: var(--border-soft); }

.onb-foto-block { display: flex; flex-direction: column; align-items: center; text-align: center; margin: 4px 0 18px; }
/* "Ahora no" — solo minimiza visualmente el bloque, nunca avanza de
   paso. El círculo sigue accesible por si el usuario cambia de idea. */
.onb-foto-block-minimizada .onb-foto-circle { width: 56px; height: 56px; opacity: 0.6; }
.onb-foto-block-minimizada .onb-foto-frase,
.onb-foto-block-minimizada .btn-secondary,
.onb-foto-block-minimizada #onb-foto-ahora-no { display: none; }
.onb-foto-circle {
  position: relative;
  width: 92px; height: 92px; border-radius: 50%;
  background: var(--surface-2); border: 2px dashed rgba(255,215,0,0.4);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; overflow: hidden; margin-bottom: 10px;
}
.onb-foto-preview { width: 100%; height: 100%; object-fit: cover; }
.onb-foto-plus { font-size: 32px; font-weight: 300; color: var(--gold); line-height: 1; }
.onb-foto-label { font-size: 13.5px; font-weight: 800; color: var(--text-dark); margin: 0; }
.onb-foto-frase { font-size: 11.5px; color: var(--text-muted); margin: 2px 0 12px; }
.onb-foto-block .btn-secondary { margin: 0 0 8px; padding: 9px 20px; width: auto; }

.onb-nav-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; }
.onb-nav-row .btn-primary, .onb-nav-row .btn-secondary { margin: 0; }

/* ============================================================
   PERFIL — cabecera compacta
   ============================================================ */
.perfil-resumen-compacta {
  background: var(--card-white); border: 1px solid var(--border-soft); border-radius: 16px;
  padding: 14px; margin-bottom: 16px; text-align: center;
}
.perfil-resumen-linea { font-size: 15px; font-weight: 700; color: var(--text-dark); }
.perfil-resumen-sep { color: var(--text-muted); margin: 0 8px; }
.perfil-resumen-tel { font-size: 13px; color: var(--text-muted); margin-top: 6px; }

/* ---- Admin / Mis clientes — tarjeta compacta (v10.2) ---- */
.admin-directo-card-compacta { padding: 10px 12px; }
.admin-directo-card-top { display: flex; align-items: center; gap: 10px; }
.admin-directo-verficha-link {
  background: none; border: none; color: var(--gold); font-size: 12px;
  font-weight: 700; cursor: pointer; padding: 4px; flex-shrink: 0;
}

/* ---- Panel Coach — banda de KPIs compacta (v10.2) ---- */
.coach-kpi-banda {
  display: flex; background: var(--card-white); border: 1px solid var(--border-soft);
  border-radius: 14px; overflow: hidden; margin-bottom: 18px;
}
.coach-kpi-banda-item {
  flex: 1; display: flex; flex-direction: column; align-items: center;
  gap: 2px; padding: 10px 4px; border-right: 1px solid var(--border-soft);
}
.coach-kpi-banda-item:last-child { border-right: none; }
.coach-kpi-banda-val { font-size: 16px; font-weight: 800; }
.coach-kpi-banda-lbl { font-size: 9.5px; color: var(--text-muted); text-align: center; }

/* ---- Panel Coach — filtros con scroll horizontal limpio (v10.2) ---- */
#coach-clientes-filtros { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 8px; -webkit-overflow-scrolling: touch; }
#coach-clientes-filtros .admin-equipo-tab { flex-shrink: 0; white-space: nowrap; }

/* ---- Novedades de NF24 (v11) — reutiliza .lightbox-overlay ya
   existente como base del overlay, solo el contenido interno es
   nuevo. ---- */
.novedades-modal {
  background: var(--card-white); border-radius: var(--radius-lg);
  padding: 24px 20px; max-width: 360px; width: 100%;
  border: 1px solid rgba(255, 215, 0, 0.25);
}
.novedades-titulo { font-size: 19px; font-weight: 800; color: var(--text-dark); margin: 0 0 2px; text-align: center; }
.novedades-version { font-size: 12px; font-weight: 700; color: var(--gold); text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 16px; text-align: center; }
.novedades-lista { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.novedades-lista li { font-size: 13.5px; color: var(--text-dark); line-height: 1.4; }

/* ---- Tour guiado Panel Coach (v11) — overlay + spotlight sin
   librerías. El elemento señalado se eleva por encima del fondo
   oscurecido con z-index/outline; nunca se clona, nunca bloquea
   overflow del body (nada aquí toca document.body.style). ---- */
.coach-tour-overlay {
  position: fixed; inset: 0; z-index: 9998;
  background: rgba(0, 0, 0, 0.72);
}
.coach-tour-resaltado {
  position: relative !important; z-index: 9999 !important;
  outline: 3px solid var(--gold); outline-offset: 3px;
  border-radius: 12px;
  box-shadow: 0 0 0 4px rgba(255, 215, 0, 0.25);
}
.coach-tour-tooltip {
  position: fixed; left: 16px; right: 16px; z-index: 10000;
  background: var(--card-white); border: 1px solid rgba(255, 215, 0, 0.3);
  border-radius: var(--radius-lg); padding: 16px; max-width: 380px; margin: 0 auto;
  box-shadow: var(--shadow-lg);
}
.coach-tour-tooltip-titulo { font-size: 15px; font-weight: 800; color: var(--text-dark); margin: 0 0 4px; }
.coach-tour-tooltip-texto { font-size: 13px; color: var(--text-muted); line-height: 1.4; margin: 0 0 14px; }
.coach-tour-tooltip-nav { display: flex; align-items: center; gap: 8px; }
.coach-tour-tooltip-nav .onboarding-skip { padding: 8px 4px; }

.coach-tour-reabrir-btn {
  width: 30px; height: 30px; border-radius: 50%; margin-left: auto;
  background: var(--surface-2); border: 1px solid var(--border-soft);
  color: var(--text-muted); font-weight: 800; font-size: 14px; cursor: pointer;
}

/* ============================================================
   v11.4 — Insignias de rol NF24, rango Herbalife y productos
   habituales. Chips pequeños, premium, sin saturar visualmente.
   ============================================================ */
.rol-nf24-chip {
  display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700;
  border-radius: 20px; padding: 3px 10px; margin-left: 6px; white-space: nowrap;
}
.rol-nf24-ceo { background: var(--gold); color: var(--black); }
.rol-nf24-coach { background: var(--black); color: var(--gold); border: 1px solid var(--gold); }
.rol-nf24-afiliado { background: var(--input-bg); color: var(--text-dark); }
.rol-nf24-cliente { background: transparent; color: var(--text-muted); border: 1px solid var(--border-soft); }

.admin-resumen-rango-row {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  margin-top: 8px; flex-wrap: wrap;
}
.admin-resumen-rango-texto { font-size: 12.5px; font-weight: 700; color: var(--text-dark); }
.admin-resumen-rango-btn {
  font-size: 11px; font-weight: 700; color: var(--gold); background: none;
  border: 1px solid var(--gold); border-radius: 20px; padding: 3px 10px; cursor: pointer;
}

.hl-producto-chip {
  display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600;
  background: var(--input-bg); color: var(--text-dark); border-radius: 20px; padding: 5px 8px 5px 12px;
}
.hl-producto-chip button {
  border: none; background: none; color: var(--text-muted); font-size: 15px; line-height: 1;
  cursor: pointer; padding: 2px 4px;
}

.hl-selector-fila {
  display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--text-dark);
  padding: 8px 10px; border-radius: 10px; border: 1px solid var(--border-soft); cursor: pointer;
}
.hl-selector-fila:active { background: var(--gold-glow); }

/* ============================================================
   v11.5 — Identidad NF24 en listados (Equipo/Coaches, Mis/Todos
   clientes), estado de acceso del Coach y tipo de cliente. Todo con
   flex-wrap para que nunca provoque overflow horizontal en móvil.
   ============================================================ */
.admin-identidad-compacta {
  display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.admin-client-identidad-row-v4 { margin-top: 4px; display: flex; flex-wrap: wrap; }
.admin-mini-rango {
  display: inline-flex; align-items: center; gap: 4px; font-size: 10.5px; font-weight: 700;
  color: var(--text-dark); background: var(--input-bg); border-radius: 20px; padding: 2px 8px 2px 2px;
  white-space: nowrap;
}
.admin-coach-rango-row { margin: -2px 0 8px; }

/* ============================================================
   v11.7 — Seguimiento de clientes (vista global). Card compacta,
   mismo lenguaje visual NF24 ya usado en el resto de cards Admin.
   ============================================================ */
.admin-seguimiento-card {
  background: var(--card-white); border: 1px solid var(--border-soft);
  border-radius: 14px; padding: 12px; margin-bottom: 10px;
}
.admin-seguimiento-top { display: flex; align-items: flex-start; gap: 10px; }
.admin-seguimiento-info { flex: 1; min-width: 0; }
.admin-seguimiento-detalle { font-size: 12px; color: var(--text-muted); margin-top: 8px; }
.admin-seguimiento-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.admin-seguimiento-acciones > * { flex: 1; min-width: 110px; padding: 7px 8px; font-size: 11.5px; text-align: center; }

.admin-seguimiento-chip {
  font-size: 10.5px; font-weight: 700; border-radius: 8px; padding: 3px 8px;
  white-space: nowrap; flex-shrink: 0;
}
.admin-seguimiento-chip.pendiente { background: rgba(224,49,49,0.12); color: var(--danger); }
.admin-seguimiento-chip.actualizar { background: rgba(251,146,60,0.14); color: #fb923c; }
.admin-seguimiento-chip.al-dia { background: rgba(74,222,128,0.12); color: #4ade80; }

@media (min-width: 900px) {
  #admin-seguimiento-lista { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
  #admin-prospectos-lista { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* ============================================================
   v11.8 — Prospectos (CRM ligero). Reutiliza .admin-seguimiento-card/
   -acciones/-detalle para mantener el mismo lenguaje visual; solo se
   añade el chip neutro de "próximo contacto futuro" (vencido/hoy ya
   reutilizan los colores de .admin-seguimiento-chip existentes).
   ============================================================ */
.admin-prospecto-chip-futuro {
  font-size: 10.5px; font-weight: 700; border-radius: 8px; padding: 3px 8px;
  white-space: nowrap; flex-shrink: 0; background: var(--input-bg); color: var(--text-dark);
}
.admin-prospecto-estado-lbl { font-size: 12.5px; font-weight: 700; color: var(--text-dark); margin-top: 6px; }


/* ============================================================
   v11.18 — Herbalife Lead Engine. Scope exclusivo Suplementos/evaluación.
   ============================================================ */
.herbalife-eval-card{width:100%;display:flex;align-items:center;gap:14px;text-align:left;background:linear-gradient(145deg,var(--surface-2),var(--surface-1));border:1px solid rgba(255,215,0,.22);border-radius:var(--radius-lg);padding:17px;margin:16px 0 4px;cursor:pointer;font-family:inherit;box-shadow:var(--shadow-sm)}
.herbalife-eval-icon{width:46px;height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:rgba(255,215,0,.11);font-size:22px;flex-shrink:0}
.herbalife-eval-copy{display:flex;flex-direction:column;min-width:0}.herbalife-eval-kicker{font-size:9.5px;font-weight:800;letter-spacing:.7px;color:var(--gold);margin-bottom:4px}.herbalife-eval-title{font-size:15px;font-weight:800;color:var(--text-dark);line-height:1.25}.herbalife-eval-sub{font-size:11.5px;color:var(--text-muted);line-height:1.4;margin-top:3px}.herbalife-eval-cta{font-size:11.5px;font-weight:800;color:var(--gold);margin-top:7px}
.herbalife-eval-modal{max-width:420px}.herbalife-eval-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px}.herbalife-eval-head h2{font-size:20px;margin:2px 0 0;color:var(--text-dark)}.herbalife-eval-close{border:0;background:transparent;color:var(--text-muted);font-size:19px;cursor:pointer;padding:3px 0 3px 8px}.herbalife-eval-progress{height:6px;border-radius:99px;background:var(--input-bg);overflow:hidden;margin-bottom:13px}.herbalife-eval-progress>div{height:100%;width:14.28%;background:var(--gold);border-radius:99px;transition:width .2s ease}.herbalife-eval-step-label{font-size:10px;color:var(--text-muted);font-weight:700;margin-bottom:7px}.herbalife-eval-question{font-size:18px;line-height:1.35;font-weight:800;color:var(--text-dark);margin-bottom:16px}.herbalife-eval-option{width:100%;display:block;text-align:left;background:var(--surface-2);border:1px solid var(--border-soft);color:var(--text-dark);border-radius:14px;padding:13px 14px;margin-bottom:8px;font:600 13px/1.35 inherit;cursor:pointer}.herbalife-eval-option:active{border-color:var(--gold);background:rgba(255,215,0,.08)}.herbalife-eval-result-icon{text-align:center;font-size:34px;margin:4px 0}.herbalife-eval-result h2{text-align:center;margin:4px 0 7px;color:var(--text-dark)}.herbalife-eval-result-sub{text-align:center;color:var(--text-muted);font-size:12.5px;line-height:1.5;margin:0 0 16px}.herbalife-eval-priority{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border-soft);border-radius:13px;padding:12px 13px;margin-bottom:8px}.herbalife-eval-priority span:first-child{font-size:18px}.herbalife-eval-priority strong{font-size:13px;color:var(--text-dark)}.herbalife-eval-disclaimer{font-size:10.5px;color:var(--text-muted);line-height:1.45;margin:13px 0}.herbalife-eval-result .wa-btn{display:block;text-align:center;text-decoration:none;box-sizing:border-box}.herbalife-eval-result .onboarding-skip{display:block;margin:11px auto 0}


/* v11.18 — Centro de Oportunidades */
.opportunity-card{margin-bottom:10px}.opportunity-summary{font-size:13px;line-height:1.45;color:var(--text-muted);margin:10px 0 12px;text-transform:none}.opportunity-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.opportunity-status{min-width:138px;flex:1;background:var(--surface-2,#171717);color:var(--text-dark,#fff);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:9px 10px;font-size:12px}.opportunity-actions .workday-action{margin:0}.workday-icon-box{font-size:19px}


/* v11.19.1 — Reservas Paco: calendario de gestión + asistentes */
.admin-reservas-tabs{display:flex;gap:8px;margin:0 0 16px;padding:4px;background:var(--surface-1);border:1px solid var(--border-soft);border-radius:14px}
.admin-reservas-tab{flex:1;border:0;background:transparent;color:var(--text-muted);padding:10px 12px;border-radius:10px;font:inherit;font-weight:700;cursor:pointer}
.admin-reservas-tab.active{background:var(--surface-3);color:var(--text);box-shadow:var(--shadow-sm)}
.admin-cal-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.admin-cal-nav button{width:38px;height:38px;border-radius:12px;border:1px solid var(--border-soft);background:var(--surface-2);color:var(--text);font-size:18px}
.admin-calendar-table .admin-cal-class{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;width:100%}
.admin-calendar-table .admin-cal-class small{font-size:9px;line-height:1.1;opacity:.75;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-cal-detail{margin-top:16px;padding:16px;border:1px solid var(--border-soft);border-radius:16px;background:var(--surface-1)}
.admin-cal-detail .clase-titulo{font-weight:800;margin-bottom:5px}
.admin-cal-count{font-size:12px;color:var(--text-muted);margin-bottom:10px}
.admin-cal-detail .cliente-row{padding:9px 0;border-bottom:1px solid var(--border-soft);font-size:13px}
.empty-state.compact{padding:12px 0;text-align:left}

/* v11.19.4 — Iconografía de interfaz NF24: títulos sin emojis, SVG lineal */
.nf24-title-with-icon{display:flex;align-items:center;gap:10px;}
.nf24-title-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 30px;color:var(--accent,#ffd400);}
.nf24-title-icon svg{width:100%;height:100%;display:block;}
.header-row>.nf24-title-icon{width:26px;height:26px;flex-basis:26px;}

/* v11.21 — Mensajería Multi-Coach */
.chat-support-switch{width:100%;border:0;border-bottom:1px solid var(--border-soft);background:rgba(255,215,0,.06);color:var(--gold);font-size:11.5px;font-weight:700;padding:9px 14px;text-align:left;cursor:pointer}
.chat-support-switch:hover{background:rgba(255,215,0,.1)}
.workday-message-row{width:100%;display:flex;align-items:center;gap:11px;background:var(--surface-2,#17181b);border:1px solid var(--border-soft);border-radius:16px;padding:12px 13px;margin-bottom:9px;text-align:left;color:var(--text-dark);cursor:pointer}
.workday-message-row img{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}
.workday-message-body{flex:1;min-width:0}.workday-message-name{font-size:13.5px;font-weight:800}.workday-message-preview{font-size:11.5px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.workday-message-role{font-size:10.5px;color:var(--gold);margin-top:2px}.workday-message-unread{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--gold);color:#111;font-size:10px;font-weight:900;display:flex;align-items:center;justify-content:center}

/* v11.21.2 — Home operativo exclusivo Paco/Coach */
.dash-workday-brief{margin:0 0 14px;padding:15px;border:1px solid rgba(255,215,0,.28);border-radius:18px;background:linear-gradient(145deg,#1a1b1e,#141517);box-shadow:0 10px 28px rgba(0,0,0,.18)}
.dash-workday-brief-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.dash-workday-brief-head>div{display:flex;flex-direction:column;gap:2px}.dash-workday-brief-kicker{font-size:10.5px;font-weight:900;letter-spacing:.08em;color:var(--gold)}.dash-workday-brief-head strong{font-size:16px;color:var(--text-dark)}.dash-workday-brief-head button{border:0;background:none;color:var(--gold);font:inherit;font-size:12px;font-weight:800;padding:5px 0;cursor:pointer;white-space:nowrap}
.dash-workday-brief-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.dash-workday-brief-item{border:1px solid var(--border-soft);background:rgba(255,255,255,.025);border-radius:13px;padding:10px 8px;text-align:left;cursor:pointer;color:var(--text-dark)}.dash-workday-brief-item strong{display:block;font-size:20px;line-height:1;color:var(--gold);margin-bottom:5px}.dash-workday-brief-item span{display:block;font-size:10.5px;line-height:1.2;color:var(--text-muted);font-weight:700}
.dash-workday-brief-admin{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-soft)}.dash-workday-brief-admin-title{font-size:10px;font-weight:900;letter-spacing:.07em;color:var(--text-muted);margin-bottom:7px}.dash-workday-admin-row{display:flex;flex-wrap:wrap;gap:6px}.dash-workday-admin-pill{border:1px solid var(--border-soft);border-radius:999px;background:transparent;color:var(--text-muted);padding:6px 9px;font:inherit;font-size:10.5px;font-weight:700;cursor:pointer}.dash-workday-admin-pill strong{color:var(--gold);margin-right:3px}
.dash-invite-icon svg{width:25px;height:25px;color:var(--text-muted)}
@media(max-width:430px){.dash-workday-brief{padding:13px}.dash-workday-brief-kpis{gap:6px}.dash-workday-brief-item{padding:9px 6px}.dash-workday-brief-item strong{font-size:18px}.dash-workday-brief-item span{font-size:9.8px}.dash-workday-brief-head strong{font-size:15px}}


/* v11.3x — Workday Paco: tipo/servicios del cliente */
.workday-item-title-row { display:flex; align-items:center; gap:7px; flex-wrap:wrap; min-width:0; }
.workday-service-badges { display:inline-flex; align-items:center; gap:5px; flex-wrap:wrap; }
.workday-service-badge { display:inline-flex; align-items:center; min-height:20px; padding:2px 7px; border-radius:999px; font-size:10.5px; line-height:1; font-weight:800; border:1px solid var(--border-soft); white-space:nowrap; }
.workday-service-badge--nf { color:#ffd400; background:rgba(255,212,0,.10); border-color:rgba(255,212,0,.35); }
.workday-service-badge--herbalife { color:#35d978; background:rgba(53,217,120,.10); border-color:rgba(53,217,120,.35); }
.workday-service-badge--dieta { color:#7bb8ff; background:rgba(123,184,255,.10); border-color:rgba(123,184,255,.35); }
.workday-service-badge--premium { color:#d9a7ff; background:rgba(217,167,255,.10); border-color:rgba(217,167,255,.35); }
.workday-service-badge--trial { color:#ffd400; background:rgba(255,212,0,.10); border-color:rgba(255,212,0,.38); }
.workday-kpi-pill--service b { color:var(--w-text); font-size:14px; }
@media (max-width:560px) {
  .workday-service-badge { font-size:10px; padding:2px 6px; }
  .workday-item-top { align-items:flex-start; }
}

/* v11.22.4 — KPI de servicios de Paco como filtros interactivos */
.workday-kpi-service-btn { cursor:pointer; font:inherit; color:inherit; transition:border-color .15s ease, background .15s ease, transform .15s ease; }
.workday-kpi-service-btn:hover { border-color:rgba(255,212,0,.45); }
.workday-kpi-service-btn.active { border-color:#ffd400; background:rgba(255,212,0,.12); box-shadow:0 0 0 1px rgba(255,212,0,.08) inset; }
.workday-kpi-service-btn:active { transform:translateY(1px); }

/* Medición mínima — Admin / Uso de NF24 */
.admin-usage-wrap{margin:0 0 22px}
.admin-usage-period{font-size:12px;color:var(--muted,#7b8493);font-weight:600}
.admin-usage-loading,.admin-usage-note{font-size:13px;color:var(--muted,#7b8493);padding:8px 2px}
.admin-usage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 4px}
.admin-usage-card{background:var(--card,#fff);border:1px solid rgba(127,127,127,.16);border-radius:14px;padding:13px 10px;min-height:74px;display:flex;flex-direction:column;justify-content:center}
.admin-usage-card strong{font-size:23px;line-height:1.05;letter-spacing:-.5px;color:#111827}
.admin-usage-card span{font-size:11px;color:var(--muted,#7b8493);margin-top:6px;line-height:1.2}
.admin-usage-card-main{border-color:rgba(34,197,94,.28)}
@media(max-width:620px){.admin-usage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-usage-card{min-height:70px}}


/* ============================================================
   NF24 — cierre seguro del reproductor + estiramiento final
   Solo se muestra después de que la lógica existente entra en fase "fin".
   ============================================================ */
#page-admin-clase-reproductor .repro-estiramiento-overlay {
  position: absolute;
  inset: 0;
  z-index: 45;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: radial-gradient(circle at 50% 25%, rgba(255,215,0,.11), transparent 35%), #050505;
  color: #fff;
}
#page-admin-clase-reproductor .repro-estiramiento-intro {
  width: min(560px, 96%);
  text-align: center;
}
#page-admin-clase-reproductor .repro-estiramiento-icon { font-size: 54px; line-height: 1; margin-bottom: 12px; }
#page-admin-clase-reproductor .repro-estiramiento-intro h2 { margin: 0; font-size: clamp(27px, 4vw, 46px); }
#page-admin-clase-reproductor .repro-estiramiento-intro > p { color: rgba(255,255,255,.72); font-size: 17px; }
#page-admin-clase-reproductor .repro-estiramiento-card {
  margin: 22px auto 14px;
  padding: 18px;
  border: 1px solid rgba(255,215,0,.32);
  border-radius: 18px;
  background: rgba(255,215,0,.07);
}
#page-admin-clase-reproductor .repro-estiramiento-card strong { display:block; font-size: 21px; color: var(--gold); }
#page-admin-clase-reproductor .repro-estiramiento-card span { display:block; margin-top:5px; color: rgba(255,255,255,.64); }
#page-admin-clase-reproductor .repro-estiramiento-cuenta { min-height: 24px; margin: 14px 0; color: var(--gold) !important; font-weight: 800; }
#page-admin-clase-reproductor .repro-estiramiento-acciones { display:grid; grid-template-columns: 1fr 1fr; gap:10px; }
#page-admin-clase-reproductor .repro-estiramiento-acciones button { width:100%; }
#page-admin-clase-reproductor .repro-estiramiento-video-wrap {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  background:#000;
}
#page-admin-clase-reproductor .repro-estiramiento-video-head {
  min-height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 16px;
  border-bottom:1px solid rgba(255,255,255,.10);
  background:#090909;
}
#page-admin-clase-reproductor .repro-estiramiento-video-head span { display:block; font-size:10px; letter-spacing:.12em; color:var(--gold); font-weight:900; }
#page-admin-clase-reproductor .repro-estiramiento-video-head strong { display:block; margin-top:2px; font-size:17px; }
#page-admin-clase-reproductor .repro-estiramiento-skip {
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:#fff;
  border-radius:12px;
  padding:9px 13px;
  font-weight:750;
}
#page-admin-clase-reproductor .repro-estiramiento-video {
  flex:1;
  width:100%;
  min-height:0;
  object-fit:contain;
  background:#000;
}
#page-admin-clase-reproductor .repro-estiramiento-play {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:4;
  border:1px solid rgba(255,215,0,.55);
  background:rgba(10,10,10,.92);
  color:#fff;
  border-radius:16px;
  padding:14px 20px;
  font-size:16px;
  font-weight:850;
}
#page-admin-clase-reproductor .repro-fin-overlay { z-index: 50; }
@media (max-width: 560px) {
  #page-admin-clase-reproductor .repro-estiramiento-overlay { padding: 18px; }
  #page-admin-clase-reproductor .repro-estiramiento-acciones { grid-template-columns:1fr; }
  #page-admin-clase-reproductor .repro-estiramiento-video-head { min-height:58px; padding:8px 10px; }
}


/* ============================================================
   NF24 · Reproductor — mejoras visuales solicitadas 14/09/2026
   Alcance limitado: ronda/progreso, color por modalidad, transición
   final a estiramiento y progreso del vídeo de recuperación.
   ============================================================ */

#page-admin-clase-reproductor .repro-wrap {
  --repro-accent: #FFD400;
  --repro-accent-rgb: 255,212,0;
}

/* Ronda mucho más visible para clases a distancia */
@media (min-width: 900px) {
  #page-admin-clase-reproductor #repro-ronda-label {
    font-size: clamp(30px, 2.4vw, 46px) !important;
    padding: 10px 22px !important;
    border-color: rgba(var(--repro-accent-rgb), .72) !important;
    background: rgba(var(--repro-accent-rgb), .15) !important;
  }
}
@media (max-width: 899px) {
  #page-admin-clase-reproductor #repro-ronda-label {
    font-size: 16px !important;
    border-color: rgba(var(--repro-accent-rgb), .65) !important;
    background: rgba(var(--repro-accent-rgb), .14) !important;
  }
}

/* Barra global de progreso de la clase */
#page-admin-clase-reproductor .repro-progreso-global {
  width: min(88%, 1180px);
  height: 5px;
  margin: 0 auto 10px;
  flex-shrink: 0;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,.14);
}
#page-admin-clase-reproductor .repro-progreso-global-fill {
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: var(--repro-accent);
  box-shadow: 0 0 14px rgba(var(--repro-accent-rgb), .40);
  transition: width .25s ease;
}
#page-admin-clase-reproductor #repro-ronda-label::after {
  background:
    linear-gradient(
      to right,
      var(--repro-accent) 0%,
      var(--repro-accent) var(--nf24-round-progress, 0%),
      rgba(255,255,255,.20) var(--nf24-round-progress, 0%),
      rgba(255,255,255,.20) 100%
    ) !important;
  box-shadow: 0 0 10px rgba(var(--repro-accent-rgb), .28) !important;
}

/* Acento automático por modalidad sin alterar el fondo oscuro ni el cronómetro */
#page-admin-clase-reproductor .repro-ctrl-btn-grande {
  background: var(--repro-accent) !important;
  color: #111 !important;
  box-shadow: 0 0 20px rgba(var(--repro-accent-rgb), .20);
}
#page-admin-clase-reproductor .repro-wrap.nf24-fase-trabajo .repro-fase,
#page-admin-clase-reproductor .repro-wrap.nf24-fase-prestretch .repro-fase {
  color: var(--repro-accent) !important;
}
#page-admin-clase-reproductor .repro-wrap.nf24-fase-trabajo .repro-panel,
#page-admin-clase-reproductor .repro-wrap.nf24-fase-prestretch .repro-panel {
  background: linear-gradient(90deg, rgba(var(--repro-accent-rgb), .085), rgba(0,0,0,0) 72%) !important;
}

/* Los 20 s tras el último ejercicio son una preparación especial, no un descanso normal */
#page-admin-clase-reproductor .repro-descanso-overlay.repro-prestretch {
  background:
    radial-gradient(circle at 50% 34%, rgba(var(--repro-accent-rgb), .16), transparent 40%),
    #080808 !important;
}
#page-admin-clase-reproductor .repro-descanso-overlay.repro-prestretch .repro-descanso-titulo {
  color: var(--repro-accent) !important;
}
#page-admin-clase-reproductor .repro-descanso-overlay.repro-prestretch .repro-descanso-tiempo {
  color: #fff !important;
}
#page-admin-clase-reproductor .repro-descanso-overlay.repro-prestretch .repro-descanso-siguiente {
  max-width: 820px !important;
  color: #fff !important;
  font-size: clamp(34px, 3vw, 58px) !important;
  text-align: center;
}

/* Pantalla de estiramiento: CTA principal NF24 y omitir oscuro */
#page-admin-clase-reproductor .repro-estiramiento-btn-primary {
  background: var(--repro-accent) !important;
  color: #111 !important;
  border-color: var(--repro-accent) !important;
  font-weight: 900 !important;
}
#page-admin-clase-reproductor .repro-estiramiento-btn-secondary {
  background: #171717 !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  font-weight: 800 !important;
}
#page-admin-clase-reproductor .repro-estiramiento-card {
  border-color: rgba(var(--repro-accent-rgb), .40) !important;
  background: rgba(var(--repro-accent-rgb), .075) !important;
}
#page-admin-clase-reproductor .repro-estiramiento-card strong,
#page-admin-clase-reproductor .repro-estiramiento-cuenta,
#page-admin-clase-reproductor .repro-estiramiento-video-head span {
  color: var(--repro-accent) !important;
}

/* Progreso discreto del vídeo de recuperación */
#page-admin-clase-reproductor .repro-estiramiento-progreso-wrap {
  padding: 8px 16px 9px;
  background: #090909;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
#page-admin-clase-reproductor .repro-estiramiento-progreso-copy {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 6px;
  color: rgba(255,255,255,.68);
  font-size: 11px;
}
#page-admin-clase-reproductor .repro-estiramiento-progreso-copy strong {
  color: #fff;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
#page-admin-clase-reproductor .repro-estiramiento-progreso-track {
  height: 4px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,.14);
}
#page-admin-clase-reproductor .repro-estiramiento-progreso-fill {
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: var(--repro-accent);
  transition: width .20s linear;
}

@media (max-width: 560px) {
  #page-admin-clase-reproductor .repro-progreso-global {
    width: 92%;
    height: 4px;
  }
  #page-admin-clase-reproductor .repro-estiramiento-progreso-copy {
    font-size: 10px;
  }
}


/* ============================================================
   NF24 · Descanso limpio
   Solo elimina duplicados del panel derecho durante descanso y
   preparación final. No altera tiempos, vídeo, controles ni motor.
   ============================================================ */
#page-admin-clase-reproductor .repro-panel.repro-panel-descanso-limpio .repro-fase,
#page-admin-clase-reproductor .repro-panel.repro-panel-descanso-limpio .repro-ejercicio-nombre,
#page-admin-clase-reproductor .repro-panel.repro-panel-descanso-limpio .repro-tiempo,
#page-admin-clase-reproductor .repro-panel.repro-panel-descanso-limpio .repro-siguiente {
  display: none !important;
}

#page-admin-clase-reproductor .repro-panel.repro-panel-descanso-limpio .repro-bloque-nombre-label {
  margin-bottom: 28px;
}

#page-admin-clase-reproductor .repro-panel.repro-panel-descanso-limpio .repro-controles {
  margin-top: auto;
}


/* ============================================================
   NF24 · Logo de marca en descansos
   SOLO PRESENTACIÓN: ocupa el espacio libre del panel derecho
   únicamente en descanso normal y preparación al estiramiento.
   ============================================================ */
#page-admin-clase-reproductor .repro-descanso-brand {
  display: none;
}

#page-admin-clase-reproductor .repro-panel.repro-panel-descanso-limpio .repro-descanso-brand {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 18px 22px 10px;
}

#page-admin-clase-reproductor .repro-panel.repro-panel-descanso-limpio .repro-descanso-brand-logo {
  display: block;
  width: min(88%, 460px);
  max-height: 38vh;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 10px 28px rgba(var(--repro-accent-rgb), .16));
}

@media (max-width: 899px) {
  #page-admin-clase-reproductor .repro-panel.repro-panel-descanso-limpio .repro-descanso-brand {
    padding: 10px 12px 6px;
  }
  #page-admin-clase-reproductor .repro-panel.repro-panel-descanso-limpio .repro-descanso-brand-logo {
    width: min(78%, 300px);
    max-height: 24vh;
  }
}


/* ============================================================
   NF24 · Logo de modalidad en el reproductor
   Identifica visualmente la clase durante el trabajo sin reducir
   el tamaño del contador. En descanso/prestretch se oculta para
   dejar el espacio al logo NF24 ya existente.
   ============================================================ */
#page-admin-clase-reproductor .repro-modalidad-logo-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 54px;
  margin: -2px 0 10px;
  padding: 0 12px;
}
#page-admin-clase-reproductor .repro-modalidad-logo-wrap.hidden {
  display: none !important;
}
#page-admin-clase-reproductor .repro-modalidad-logo {
  display: block;
  width: min(76%, 360px);
  max-height: 82px;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 8px 20px rgba(var(--repro-accent-rgb), .18));
}
#page-admin-clase-reproductor .repro-panel.repro-panel-descanso-limpio .repro-modalidad-logo-wrap {
  display: none !important;
}
@media (max-width: 899px) {
  #page-admin-clase-reproductor .repro-modalidad-logo-wrap {
    min-height: 42px;
    margin-bottom: 6px;
    padding: 0 8px;
  }
  #page-admin-clase-reproductor .repro-modalidad-logo {
    width: min(72%, 260px);
    max-height: 58px;
  }
}


/* ============================================================
   NF24 · Compatibilidad táctil Android + fullscreen móvil
   15/09/2026. No altera lógica del reproductor ni navegación.
   ============================================================ */
/* En dispositivos táctiles dejamos el gesto vertical en manos del
   navegador. Evita que Chrome/WebView Android requiera un gesto
   multitáctil para desplazar la SPA. */
@media (hover: none) and (pointer: coarse) {
  html, body {
    touch-action: auto !important;
    overscroll-behavior-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  .page.active {
    touch-action: pan-y pinch-zoom;
  }
  /* Los carruseles/tabs horizontales conservan su gesto lateral. */
  .calendar-wrap,
  .workday-tabs,
  .stat-scroll,
  .metric-tabs,
  .admin-quick-actions,
  .admin-filter-chips,
  .entcli-categorias-wrap,
  #coach-clientes-filtros,
  #admin-ficha-tabs {
    touch-action: pan-x pan-y;
  }
}

/* Fallback de pantalla completa para iOS/Safari/PWA, donde un DIV no
   siempre puede usar requestFullscreen(). */
html.nf24-repro-fullscreen,
body.nf24-repro-fullscreen {
  overflow: hidden !important;
}
#page-admin-clase-reproductor .repro-wrap.nf24-pseudo-fullscreen {
  position: fixed !important;
  inset: 0 !important;
  z-index: 20000 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  max-width: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
  background: #000 !important;
  padding-top: max(10px, env(safe-area-inset-top)) !important;
  padding-right: max(10px, env(safe-area-inset-right)) !important;
  padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
  padding-left: max(10px, env(safe-area-inset-left)) !important;
}
body.nf24-repro-fullscreen .bottom-nav,
body.nf24-repro-fullscreen #bottom-nav {
  display: none !important;
}

/* Captación NF24 — home: 4 KPIs sin perder legibilidad */
@media(min-width:700px){.dash-workday-brief-kpis{grid-template-columns:repeat(4,1fr)}}
@media(max-width:699px){.dash-workday-brief-kpis{grid-template-columns:repeat(2,1fr)}}

/* v72 — Reserva de centro: tarjeta premium y compacta */
#page-dashboard #dash-next-card.dash-reserva-centro-principal {
  position: relative;
  margin: 14px 0 20px;
  padding: 20px 22px 17px;
  border: 1px solid rgba(255,209,0,.34);
  border-radius: 20px;
  background:
    radial-gradient(circle at 88% 10%, rgba(255,209,0,.12), transparent 34%),
    linear-gradient(145deg, rgba(30,30,31,.98), rgba(17,17,18,.98));
  box-shadow: 0 14px 34px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.035);
  overflow: hidden;
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--gold);
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal::after { display:none; }
#page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-reserva-premium-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-reserva-centro-kicker {
  margin-bottom:7px;
  color:var(--gold);
  font-size:11px;
  font-weight:900;
  letter-spacing:1.15px;
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-card-main {
  margin:0;
  color:#fff;
  font-size:20px;
  line-height:1.2;
  font-weight:850;
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-card-sub {
  margin-top:7px;
  color:rgba(255,255,255,.62);
  font-size:14px;
  line-height:1.35;
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-reserva-fecha {
  width:64px;
  height:64px;
  flex:0 0 64px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,209,0,.38);
  border-radius:17px;
  background:rgba(255,209,0,.08);
  color:#fff;
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-reserva-fecha span {
  font-size:24px;
  line-height:1;
  font-weight:900;
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-reserva-fecha small {
  margin-top:5px;
  color:var(--gold);
  font-size:10px;
  font-weight:900;
  letter-spacing:.8px;
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-reserva-fecha-vacia {
  font-size:25px;
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-reserva-centro-cta {
  display:flex;
  align-items:center;
  gap:7px;
  width:max-content;
  margin-top:15px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.55px;
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-reserva-centro-cta span {
  font-size:16px;
  transition:transform .18s ease;
}
#page-dashboard #dash-next-card.dash-reserva-centro-principal:hover .dash-reserva-centro-cta span { transform:translateX(3px); }
@media (max-width:520px) {
  #page-dashboard #dash-next-card.dash-reserva-centro-principal { padding:18px 18px 15px; }
  #page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-card-main { font-size:18px; }
  #page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-card-sub { font-size:13px; }
  #page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-reserva-fecha { width:58px;height:58px;flex-basis:58px;border-radius:15px; }
  #page-dashboard #dash-next-card.dash-reserva-centro-principal .dash-reserva-fecha span { font-size:22px; }
}


/* v11.31 — identidad visual por centro */
.centro-brand-card{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:0 0 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}
.centro-brand-logo{width:54px;height:54px;border-radius:14px;object-fit:cover;background:#111;border:1px solid var(--border)}
.centro-brand-card>div{display:flex;flex-direction:column;gap:2px}.centro-brand-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}
.centro-brand-card strong{font-size:16px}.mi-centro-identidad{display:flex;align-items:center;gap:16px}.mi-centro-logo{width:78px;height:78px;border-radius:18px;object-fit:cover;background:#111;border:1px solid var(--border);flex:0 0 auto}.mi-centro-identidad-texto{min-width:0}.mi-centro-logo-ayuda{display:block;font-size:11px;color:var(--text-muted);margin-top:7px}@media(max-width:520px){.mi-centro-logo{width:68px;height:68px}.mi-centro-identidad{align-items:flex-start}}

/* ============================================================
   v75 — Agenda Premium: lavado de cara UX/UI sin cambiar su lógica
   ============================================================ */
#page-agenda-nf24 .header-row{margin-bottom:18px}
#page-agenda-nf24 #agenda-nueva-tarea-btn{padding:11px 16px;border-radius:14px;box-shadow:0 8px 24px rgba(255,215,0,.10)}
.agenda-premium-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;margin:0 0 16px;border:1px solid rgba(255,215,0,.20);border-radius:22px;background:radial-gradient(circle at 90% 10%,rgba(255,215,0,.11),transparent 36%),linear-gradient(145deg,rgba(31,31,34,.96),rgba(18,18,20,.98));box-shadow:0 18px 50px rgba(0,0,0,.20)}
.agenda-premium-kicker{display:block;color:var(--yellow);font-size:10px;font-weight:900;letter-spacing:.12em;margin-bottom:7px}
.agenda-premium-hero h2{margin:0;color:var(--text-dark);font-size:22px;line-height:1.15}
.agenda-premium-hero p{margin:7px 0 0;color:var(--text-muted);font-size:13px}
.agenda-premium-stats{display:grid;grid-template-columns:repeat(3,minmax(72px,1fr));gap:8px;flex:0 0 auto}
.agenda-premium-stats>div{min-width:76px;padding:11px 12px;border:1px solid var(--border-soft);border-radius:14px;background:rgba(255,255,255,.025);text-align:center}
.agenda-premium-stats strong{display:block;color:var(--text-dark);font-size:19px;line-height:1}
.agenda-premium-stats span{display:block;color:var(--text-muted);font-size:10px;margin-top:5px}
.agenda-premium-stats .has-overdue{border-color:rgba(255,74,74,.35);background:rgba(255,74,74,.06)}
.agenda-premium-stats .has-overdue strong{color:#ff5a5f}
.agenda-view-switch{padding:4px;background:rgba(255,255,255,.025);border:1px solid var(--border-soft);border-radius:15px;width:max-content}
#agenda-tabs{margin:12px 0 14px}
#agenda-lista .workday-item-card,#agenda-cal-dia-lista .workday-item-card{border-radius:18px;padding:16px 17px;margin-bottom:10px;transition:transform .16s ease,border-color .16s ease;background:linear-gradient(145deg,rgba(30,30,33,.98),rgba(23,23,25,.98))}
#agenda-lista .workday-item-card:hover,#agenda-cal-dia-lista .workday-item-card:hover{transform:translateY(-1px);border-color:rgba(255,215,0,.22)}
#agenda-lista .workday-item-title,#agenda-cal-dia-lista .workday-item-title{font-size:15px}
#agenda-lista .workday-item-meta,#agenda-cal-dia-lista .workday-item-meta{margin-top:5px}
.agenda-modal-premium{border:1px solid rgba(255,215,0,.15)!important;box-shadow:0 30px 90px rgba(0,0,0,.55)!important}
.agenda-modal-head{display:flex;gap:12px;align-items:center;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border-soft)}
.agenda-modal-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--yellow);color:#111;font-weight:1000;font-size:18px;flex:0 0 auto}
.agenda-modal-sub{margin:4px 0 0;color:var(--text-muted);font-size:11.5px;line-height:1.35}
.agenda-field-hint{font-size:10px;color:var(--text-muted);margin:5px 2px 0}
.agenda-more-options{border:1px solid var(--border-soft);border-radius:14px;background:rgba(255,255,255,.018);overflow:hidden}
.agenda-more-options summary{cursor:pointer;list-style:none;padding:12px 13px;color:var(--text-dark);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:10px}
.agenda-more-options summary::-webkit-details-marker{display:none}
.agenda-more-options summary:after{content:'+';color:var(--yellow);font-size:18px;font-weight:500}
.agenda-more-options[open] summary:after{content:'–'}
.agenda-more-options summary span{font-size:9.5px;color:var(--text-muted);font-weight:500;margin-left:auto}
.agenda-more-options-body{padding:0 12px 12px;display:flex;flex-direction:column;gap:12px}
@media(max-width:640px){.agenda-premium-hero{align-items:flex-start;flex-direction:column;padding:18px}.agenda-premium-stats{width:100%;grid-template-columns:repeat(3,1fr)}.agenda-premium-stats>div{min-width:0}.agenda-premium-hero h2{font-size:20px}#page-agenda-nf24 #agenda-nueva-tarea-btn span{display:none}.agenda-modal-premium{max-height:92vh!important}}


/* v11.31 — Cuotas de Mi centro: resumen premium y legible */
.centro-cuotas-kpis {
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:4px 0 14px;
}
.centro-cuotas-kpi {
  min-height:78px; padding:13px 14px; border:1px solid var(--w-border); border-radius:16px;
  background:linear-gradient(145deg,var(--w-surface),rgba(255,212,0,.035));
  display:flex; flex-direction:column; justify-content:space-between; gap:8px;
}
.centro-cuotas-kpi-label { color:var(--w-text-muted); font-size:11px; font-weight:700; line-height:1.2; }
.centro-cuotas-kpi strong { color:var(--w-text); font-size:22px; line-height:1; letter-spacing:-.02em; }
.centro-cuotas-kpi--money { border-color:rgba(255,212,0,.28); background:linear-gradient(145deg,var(--w-surface),rgba(255,212,0,.09)); }
.centro-cuotas-kpi--money strong { color:var(--w-accent); }
@media (max-width:760px){
  .centro-cuotas-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  .centro-cuotas-kpi--money{grid-column:1/-1;}
}
/* Natural Fitness: KPI Pausa/Ausentes accionable + lista WhatsApp */
.gnf-kpi-click{cursor:pointer;transition:filter .15s ease,transform .15s ease}.gnf-kpi-click:hover{filter:brightness(1.18);transform:translateY(-1px)}
.gnf-pausas-overlay{position:fixed;inset:0;z-index:10050;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:20px}.gnf-pausas-overlay.hidden{display:none}.gnf-pausas-card{width:min(620px,96vw);max-height:82vh;overflow:auto;background:#151515;border:1px solid #333;border-radius:18px;padding:20px}.gnf-pausas-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.gnf-pausas-head h3{margin:0 0 4px}.gnf-pausas-head p{margin:0;color:#999}.gnf-pausas-head button{border:0;background:#292929;color:#fff;width:36px;height:36px;border-radius:10px;font-size:24px;cursor:pointer}.gnf-pausa-persona{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-top:1px solid #2b2b2b}.gnf-pausa-persona small{display:block;color:#999;margin-top:3px}
.gnf-acciones-menu .gnf-menu-link{display:block;width:100%;padding:10px 12px;color:inherit;text-decoration:none;white-space:nowrap}.gnf-acciones-menu .gnf-menu-link:hover{background:rgba(255,255,255,.07)}

/* v87 — Facturación Natural Fitness: cuotas + otros ingresos + visión anual */
.gnf-facturacion-extra{margin-top:10px;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(300px,1.2fr);gap:10px}.gnf-facturacion-total,.gnf-otros-detalle{border:1px solid rgba(255,212,0,.22);background:rgba(255,212,0,.045);border-radius:14px;padding:12px 14px}.gnf-facturacion-total{display:flex;flex-direction:column;gap:3px}.gnf-facturacion-total small,.gnf-facturacion-total span,.gnf-otros-detalle small{color:var(--text-muted);font-size:10.5px}.gnf-facturacion-total strong{font-size:22px;color:var(--yellow)}.gnf-otros-detalle summary{cursor:pointer;font-size:12px;font-weight:800}.gnf-otros-detalle summary small{display:block;margin-top:4px;font-weight:500}.gnf-otros-detalle>div{display:grid;gap:6px;margin-top:10px}.gnf-otros-detalle>div span{display:flex;justify-content:space-between;gap:12px;font-size:11px;border-top:1px solid rgba(255,255,255,.06);padding-top:6px}.gnf-grafica-anual{margin:12px 0 18px;border:1px solid var(--w-border);border-radius:16px;padding:14px;background:var(--w-surface)}.gnf-grafica-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:12px}.gnf-grafica-head small{color:var(--text-muted);font-size:10px}.gnf-grafica-barras{height:150px;display:grid;grid-template-columns:repeat(12,minmax(34px,1fr));gap:6px;align-items:end;overflow-x:auto}.gnf-bar-col{height:135px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:34px}.gnf-bar{width:70%;max-width:28px;background:var(--yellow);border-radius:6px 6px 2px 2px;min-height:0}.gnf-bar-col small{font-size:9px;color:var(--text-muted);margin-top:5px}.gnf-bar-valor{font-size:8px;color:var(--text-muted);margin-bottom:3px;white-space:nowrap}@media(max-width:700px){.gnf-facturacion-extra{grid-template-columns:1fr}.gnf-grafica-barras{grid-template-columns:repeat(12,38px)}}
/* v88 · Ficha editable Natural Fitness */
.gnf-cliente-link{background:none;border:0;padding:0;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer}.gnf-cliente-link:hover{text-decoration:underline;text-decoration-color:#ffd400}.gnf-ficha-overlay{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:24px}.gnf-ficha-card{width:min(980px,96vw);max-height:92vh;overflow:auto;background:#171717;border:1px solid #343434;border-radius:20px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.5)}.gnf-ficha-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid #303030;padding-bottom:16px;margin-bottom:18px}.gnf-ficha-head h2{margin:0 0 5px}.gnf-ficha-head p{margin:0;color:#999}.gnf-ficha-x{border:0;border-radius:12px;background:#303030;color:#fff;font-size:26px;width:42px;height:42px;cursor:pointer}.gnf-ficha-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.gnf-ficha-campo{display:flex;flex-direction:column;gap:6px;color:#aaa;font-size:12px}.gnf-ficha-campo input,.gnf-ficha-campo textarea{width:100%;box-sizing:border-box;background:#0e0e0e;color:#fff;border:1px solid #363636;border-radius:10px;padding:11px 12px;font:inherit}.gnf-ficha-campo input:focus,.gnf-ficha-campo textarea:focus{outline:1px solid #ffd400;border-color:#ffd400}.gnf-ficha-ancho{grid-column:1/-1}.gnf-ficha-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}@media(max-width:760px){.gnf-ficha-grid{grid-template-columns:1fr}.gnf-ficha-ancho{grid-column:auto}.gnf-ficha-overlay{padding:10px}.gnf-ficha-card{padding:16px}}
/* v89 estabilizacion Gestion Natural Fitness */
#gnf-facturacion-extra,#gnf-grafica-anual{display:none!important}
.gnf-celda-backdrop{position:fixed;inset:0;z-index:99990;background:rgba(0,0,0,.72)}
#gnf-celda-form.gnf-celda-modal{display:block!important;position:fixed;z-index:99991;left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,94vw);max-height:88vh;overflow:auto;margin:0!important;background:#171717;border:1px solid #343434;border-radius:20px;padding:20px;box-shadow:0 24px 80px rgba(0,0,0,.6)}
.gnf-fila-otro td{background:rgba(255,212,0,.035)}.gnf-fila-otro .gnf-col-cliente{color:#ffd400;font-weight:800}.gnf-fila-anadir td{text-align:left;padding:14px!important;border-top:1px solid rgba(255,212,0,.25)}
.gnf-hist-detalle{font-size:14px;line-height:1.55}.gnf-hist-aviso{margin-top:18px;padding:12px;border-radius:10px;background:#101010;color:#999;font-size:12px}

/* v90 — búsqueda rápida Natural Fitness */
.gnf-buscador-wrap{display:flex;align-items:center;gap:10px;margin:10px 0 12px;}
.gnf-buscador-wrap .input{max-width:430px;margin:0;}
.gnf-buscador-contador{font-size:12px;color:var(--text-muted);white-space:nowrap;}
@media(max-width:640px){.gnf-buscador-wrap{align-items:stretch;flex-direction:column}.gnf-buscador-wrap .input{max-width:none}.gnf-buscador-contador{padding-left:2px}}
/* v93 — base histórica Natural Fitness */
.gnf-bd-lista{display:grid;gap:7px;margin:10px 0 18px}.gnf-bd-fila{margin:0!important;padding:10px 12px!important;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.gnf-bd-info{min-width:220px;flex:1}.gnf-bd-meta{font-size:12px;color:var(--text-muted);margin-top:3px}.gnf-bd-actions{display:flex;gap:7px;flex-wrap:wrap}.gnf-bd-actions .btn-secondary,.gnf-bd-actions .btn-primary{padding:7px 10px;text-decoration:none}
/* v93 — base histórica Natural Fitness */
.gnf-bd-lista{display:grid;gap:7px;margin:10px 0 18px}.gnf-bd-fila{margin:0!important;padding:10px 12px!important;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.gnf-bd-info{min-width:220px;flex:1}.gnf-bd-meta{font-size:12px;color:var(--text-muted);margin-top:3px}.gnf-bd-actions{display:flex;gap:7px;flex-wrap:wrap}.gnf-bd-actions .btn-secondary,.gnf-bd-actions .btn-primary{padding:7px 10px;text-decoration:none}
/* v93.1 — accesos visibles Natural Fitness + WhatsApp inline en plazas */
.gnf-nav-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 8px}.gnf-nav-tab{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:9px 13px;font-weight:800;cursor:pointer}.gnf-nav-tab:hover,.gnf-nav-tab.active{border-color:var(--accent);color:var(--accent)}.gnf-cliente-nombre-wa{display:flex;align-items:center;gap:7px}.gnf-wa-inline{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;padding:0 6px;border-radius:7px;background:#25D366;color:#07150b!important;font-size:10px;font-weight:900;text-decoration:none;line-height:1}.gnf-wa-inline:hover{filter:brightness(1.08)}
/* v94 — estadísticas Natural Fitness */
#gnf-grafica-anual{display:block!important}
.gnf-comparativa-anual{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:14px}.gnf-comparativa-anual>div{border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:9px 10px;display:flex;justify-content:space-between;gap:8px}.gnf-comparativa-anual span{color:var(--text-muted);font-size:11px}.gnf-comparativa-anual strong{font-size:12px;color:var(--yellow)}
/* v95 — estadísticas Natural Fitness compactas */
#gnf-grafica-anual{margin:12px 0 18px!important;padding:14px 16px!important;background:rgba(255,255,255,.018)!important}
.gnf-stats-top{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:12px}.gnf-stats-top>div:first-child{display:flex;flex-direction:column;gap:2px}.gnf-stats-top strong{font-size:16px}.gnf-stats-top small{font-size:11px;color:var(--text-muted)}.gnf-stats-kpis{display:flex;gap:8px}.gnf-stats-kpis>div{min-width:110px;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:7px 10px;display:flex;flex-direction:column}.gnf-stats-kpis span{font-size:9px;color:var(--text-muted);text-transform:uppercase}.gnf-stats-kpis b{font-size:15px;color:var(--yellow)}
.gnf-bars-clean{height:178px;display:grid;grid-template-columns:repeat(12,minmax(48px,1fr));gap:8px;align-items:end;overflow-x:auto;padding-top:4px}.gnf-bar-clean-col{height:170px;display:grid;grid-template-rows:22px 128px 20px;align-items:end;text-align:center;min-width:48px}.gnf-bar-clean-col>span{font-size:10px;color:var(--text-muted);white-space:nowrap}.gnf-bar-clean-track{height:128px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid rgba(255,255,255,.12);background:linear-gradient(to top,rgba(255,255,255,.025),transparent)}.gnf-bar-clean-track i{display:block;width:64%;max-width:38px;background:#ffd400;border-radius:7px 7px 2px 2px;box-shadow:0 0 0 1px rgba(255,212,0,.08)}.gnf-bar-clean-col small{font-size:10px;color:var(--text-muted);padding-top:5px}.gnf-years-clean{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.gnf-years-clean>button{appearance:none;background:transparent;color:inherit;border:1px solid rgba(255,255,255,.10);border-radius:9px;padding:8px 11px;display:flex;gap:12px;align-items:center;cursor:pointer;font:inherit}.gnf-years-clean>button:hover{border-color:rgba(255,212,0,.65);background:rgba(255,212,0,.04)}.gnf-years-clean>button.actual{border-color:rgba(255,212,0,.55);background:rgba(255,212,0,.05)}.gnf-years-clean span{font-size:10px;color:var(--text-muted)}.gnf-years-clean b{font-size:11px}.gnf-years-clean .actual b{color:var(--yellow)}
@media(max-width:700px){.gnf-stats-kpis{width:100%}.gnf-stats-kpis>div{flex:1}.gnf-bars-clean{grid-template-columns:repeat(12,46px)}}

/* v97 — pulido visual Gestión Natural Fitness. Solo presentación + borrar fila de otros ingresos. */
.gnf-tabla{border-collapse:separate;border-spacing:0;overflow:hidden;border-radius:14px}
.gnf-tabla thead th{position:sticky;top:0;z-index:3;background:#151515;box-shadow:0 1px 0 rgba(255,255,255,.08);letter-spacing:.03em}
.gnf-tabla tbody tr{transition:background .15s ease}
.gnf-tabla tbody tr:not(.gnf-fila-otro):hover td{background:rgba(255,255,255,.025)}
.gnf-fila-otro td{background:rgba(255,212,0,.028);border-color:rgba(255,212,0,.10)}
.gnf-fila-otro:hover td{background:rgba(255,212,0,.055)!important}
.gnf-otro-nombre{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.gnf-otro-nombre>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gnf-otro-eliminar{flex:0 0 25px;width:25px;height:25px;border-radius:8px;border:1px solid rgba(255,255,255,.10);background:#1d1d1d;color:#8d8d8d;font-size:18px;line-height:20px;cursor:pointer;opacity:.55;transition:.15s ease}
.gnf-fila-otro:hover .gnf-otro-eliminar,.gnf-otro-eliminar:focus{opacity:1}
.gnf-otro-eliminar:hover{border-color:#d85858;color:#ff7474;background:rgba(216,88,88,.08)}
.gnf-fila-anadir td{background:#151515!important}
.gnf-fila-anadir button{color:#d7d7d7!important;font-weight:700;cursor:pointer;padding:2px 0!important}
.gnf-fila-anadir button:hover{color:#ffd400!important}
.gnf-ficha-card{scrollbar-width:thin;scrollbar-color:#555 #171717}
.gnf-ficha-head{position:sticky;top:-22px;z-index:5;background:#171717;padding-top:4px}
.gnf-ficha-actions{position:sticky;bottom:-22px;z-index:5;background:linear-gradient(to top,#171717 75%,rgba(23,23,23,.90));padding-top:12px;padding-bottom:4px}
.gnf-stats-top strong{font-size:18px}.gnf-stats-kpis>div{background:rgba(255,255,255,.018)}
.gnf-bar-clean-track i{transition:height .25s ease,filter .15s ease}.gnf-bar-clean-col:hover i{filter:brightness(1.12)}
.gnf-bar-clean-col:hover>span{color:#fff}
#gnf-tabla-wrap{padding-bottom:92px}
@media(max-width:760px){.gnf-ficha-head{top:-16px}.gnf-ficha-actions{bottom:-16px}.gnf-otro-eliminar{opacity:1}}

/* ============================================================
   v98 — NF24FIT LIQUID GLASS · Gestión Natural Fitness
   EXCLUSIVAMENTE VISUAL. No modifica HTML, JS, datos ni comportamiento.
   ============================================================ */
#page-admin-gestion-nf{
  --gnf-glass:rgba(25,25,27,.58);
  --gnf-glass-strong:rgba(30,30,33,.72);
  --gnf-glass-soft:rgba(255,255,255,.045);
  --gnf-line:rgba(255,255,255,.105);
  --gnf-line-hi:rgba(255,255,255,.18);
  --gnf-shadow:0 22px 65px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.055);
  position:relative;
}
#page-admin-gestion-nf:before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background:
    radial-gradient(700px 420px at 76% 7%,rgba(255,212,0,.055),transparent 65%),
    radial-gradient(520px 360px at 8% 52%,rgba(255,255,255,.025),transparent 70%);
}
#page-admin-gestion-nf .header-row h1{letter-spacing:-.025em;font-weight:850}
#page-admin-gestion-nf .gnf-anio-nav{gap:16px;margin:18px auto 14px}
#page-admin-gestion-nf .gnf-anio-nav .btn-secondary{
  background:linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.035))!important;
  border:1px solid var(--gnf-line-hi)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 22px rgba(0,0,0,.22);
  backdrop-filter:blur(18px) saturate(145%);-webkit-backdrop-filter:blur(18px) saturate(145%);
}
#page-admin-gestion-nf .gnf-resumen-card,
#page-admin-gestion-nf #gnf-grafica-anual{
  position:relative;overflow:hidden;
  background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.018))!important;
  border:1px solid var(--gnf-line)!important;border-radius:22px!important;
  box-shadow:var(--gnf-shadow)!important;
  backdrop-filter:blur(28px) saturate(155%);-webkit-backdrop-filter:blur(28px) saturate(155%);
}
#page-admin-gestion-nf .gnf-resumen-card:before,
#page-admin-gestion-nf #gnf-grafica-anual:before{
  content:"";position:absolute;left:3%;right:3%;top:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.26),transparent);
}
#page-admin-gestion-nf .gnf-resumen-card{padding:13px 14px!important}
#page-admin-gestion-nf .gnf-resumen-mes-picker .input,
#page-admin-gestion-nf .gnf-buscador-wrap .input{
  background:rgba(255,255,255,.065)!important;border:1px solid rgba(255,255,255,.13)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 8px 20px rgba(0,0,0,.10);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
#page-admin-gestion-nf .admin-kpi-banda{
  overflow:hidden;border:1px solid rgba(255,255,255,.075)!important;border-radius:15px!important;
  background:rgba(0,0,0,.12)!important;
}
#page-admin-gestion-nf .admin-kpi-banda>*{
  background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.005))!important;
  border-color:rgba(255,255,255,.075)!important;
}
#page-admin-gestion-nf .gnf-stats-kpis>div,
#page-admin-gestion-nf .gnf-years-clean>button{
  background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.018))!important;
  border-color:rgba(255,255,255,.11)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
#page-admin-gestion-nf .gnf-years-clean>button.actual{
  border-color:rgba(255,212,0,.48)!important;background:linear-gradient(145deg,rgba(255,212,0,.12),rgba(255,212,0,.025))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 24px rgba(255,212,0,.045);
}
#page-admin-gestion-nf .gnf-bar-clean-track{background:linear-gradient(to top,rgba(255,255,255,.025),transparent)!important;border-bottom-color:rgba(255,255,255,.10)!important}
#page-admin-gestion-nf .gnf-bar-clean-track i{box-shadow:0 8px 26px rgba(255,212,0,.12),inset 0 1px 0 rgba(255,255,255,.30)!important}
#page-admin-gestion-nf .gnf-nav-tabs{gap:7px;margin-top:18px}
#page-admin-gestion-nf .gnf-nav-tab{
  border-radius:999px!important;padding:9px 15px!important;background:rgba(255,255,255,.035)!important;
  border:1px solid rgba(255,255,255,.08)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:.18s ease;
}
#page-admin-gestion-nf .gnf-nav-tab:hover{background:rgba(255,255,255,.065)!important;border-color:rgba(255,255,255,.15)!important}
#page-admin-gestion-nf .gnf-nav-tab.active{color:#111!important;background:linear-gradient(180deg,#ffe34e,#ffd400)!important;border-color:rgba(255,224,68,.9)!important;box-shadow:0 7px 22px rgba(255,212,0,.12),inset 0 1px 0 rgba(255,255,255,.55)}
#page-admin-gestion-nf .gnf-tabla-wrap{border-radius:20px;filter:drop-shadow(0 18px 38px rgba(0,0,0,.16))}
#page-admin-gestion-nf .gnf-tabla{
  background:rgba(20,20,22,.48)!important;border:1px solid rgba(255,255,255,.09)!important;border-radius:18px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);backdrop-filter:blur(20px) saturate(135%);-webkit-backdrop-filter:blur(20px) saturate(135%);
}
#page-admin-gestion-nf .gnf-tabla thead th{background:rgba(31,31,34,.82)!important;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-color:rgba(255,255,255,.08)!important}
#page-admin-gestion-nf .gnf-tabla tbody td{border-color:rgba(255,255,255,.065)!important}
#page-admin-gestion-nf .gnf-tabla tbody tr:not(.gnf-fila-otro):hover td{background:rgba(255,255,255,.045)!important}
#page-admin-gestion-nf .gnf-fila-otro td{background:rgba(255,212,0,.035)!important}
#page-admin-gestion-nf .gnf-fila-otro:hover td{background:rgba(255,212,0,.065)!important}
#page-admin-gestion-nf .gnf-celda-estado,
#page-admin-gestion-nf .gnf-tabla button:not(.gnf-otro-eliminar){box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 5px 13px rgba(0,0,0,.11)}
#page-admin-gestion-nf .gnf-bd-fila,
#page-admin-gestion-nf #gnf-interesados-wrap .workday-item-card{
  background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018))!important;
  border:1px solid rgba(255,255,255,.09)!important;border-radius:16px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
/* Modales Natural Fitness: cristal profundo, sin alterar estructura/controles */
.gnf-ficha-overlay,.gnf-pausas-overlay,.gnf-celda-backdrop{background:rgba(3,3,5,.66)!important;backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%)}
.gnf-ficha-card,.gnf-pausas-card,#gnf-celda-form.gnf-celda-modal{
  background:linear-gradient(145deg,rgba(36,36,39,.82),rgba(17,17,19,.76))!important;
  border:1px solid rgba(255,255,255,.14)!important;border-radius:24px!important;
  box-shadow:0 32px 100px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.09)!important;
  backdrop-filter:blur(34px) saturate(155%);-webkit-backdrop-filter:blur(34px) saturate(155%);
}
.gnf-ficha-head{background:linear-gradient(to bottom,rgba(28,28,31,.97) 70%,rgba(28,28,31,.76))!important;border-bottom-color:rgba(255,255,255,.09)!important}
.gnf-ficha-actions{background:linear-gradient(to top,rgba(24,24,27,.98) 72%,rgba(24,24,27,.70))!important}
.gnf-ficha-x,.gnf-pausas-head button{background:rgba(255,255,255,.095)!important;border:1px solid rgba(255,255,255,.08)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.gnf-ficha-campo input,.gnf-ficha-campo textarea,.gnf-ficha-campo select{
  background:rgba(0,0,0,.24)!important;border-color:rgba(255,255,255,.12)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
.gnf-ficha-campo input:focus,.gnf-ficha-campo textarea:focus,.gnf-ficha-campo select:focus{border-color:rgba(255,212,0,.72)!important;box-shadow:0 0 0 3px rgba(255,212,0,.07)!important;outline:none!important}
@media(max-width:760px){
  #page-admin-gestion-nf .gnf-resumen-card,#page-admin-gestion-nf #gnf-grafica-anual{border-radius:18px!important}
  #page-admin-gestion-nf .gnf-tabla-wrap{border-radius:16px}
}

/* ============================================================
   v98.1 — LIQUID GLASS OPTIMIZADO
   SOLO RENDIMIENTO VISUAL: reduce blur/filtros en superficies grandes.
   No modifica HTML, JS, datos ni comportamiento.
   ============================================================ */
/* Superficies grandes: apariencia glass simulada sin backdrop-filter */
#page-admin-gestion-nf .gnf-resumen-card,
#page-admin-gestion-nf #gnf-grafica-anual{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  background:linear-gradient(145deg,rgba(31,31,34,.88),rgba(18,18,20,.82))!important;
  box-shadow:0 16px 44px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.055)!important;
}
#page-admin-gestion-nf .gnf-tabla-wrap{
  filter:none!important;
}
#page-admin-gestion-nf .gnf-tabla{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  background:rgba(20,20,22,.94)!important;
}
#page-admin-gestion-nf .gnf-tabla thead th{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  background:rgba(31,31,34,.97)!important;
}
#page-admin-gestion-nf .gnf-bd-fila,
#page-admin-gestion-nf #gnf-interesados-wrap .workday-item-card{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  background:linear-gradient(145deg,rgba(31,31,34,.90),rgba(21,21,23,.88))!important;
}
/* Controles pequeños: conservan cristal, con blur más ligero */
#page-admin-gestion-nf .gnf-anio-nav .btn-secondary{
  backdrop-filter:blur(8px) saturate(125%)!important;
  -webkit-backdrop-filter:blur(8px) saturate(125%)!important;
}
#page-admin-gestion-nf .gnf-resumen-mes-picker .input,
#page-admin-gestion-nf .gnf-buscador-wrap .input,
#page-admin-gestion-nf .gnf-stats-kpis>div,
#page-admin-gestion-nf .gnf-years-clean>button,
#page-admin-gestion-nf .gnf-nav-tab{
  backdrop-filter:blur(6px)!important;
  -webkit-backdrop-filter:blur(6px)!important;
}
/* Modales: mantienen efecto premium pero reducen recomposición */
.gnf-ficha-overlay,.gnf-pausas-overlay,.gnf-celda-backdrop{
  backdrop-filter:blur(6px)!important;
  -webkit-backdrop-filter:blur(6px)!important;
}
.gnf-ficha-card,.gnf-pausas-card,#gnf-celda-form.gnf-celda-modal{
  backdrop-filter:blur(14px) saturate(125%)!important;
  -webkit-backdrop-filter:blur(14px) saturate(125%)!important;
}

/* ============================================================
   NF24 v99 — Ficha Natural Fitness compacta + modal cuota móvil
   SOLO PRESENTACIÓN / RESPONSIVE. Sin cambios en lógica económica.
   ============================================================ */
#gnf-ficha-modal .gnf-ficha-card{
  width:min(900px,95vw);
  max-height:88vh;
  padding:16px 18px;
  border-radius:18px;
}
#gnf-ficha-modal .gnf-ficha-head{
  padding-bottom:10px;
  margin-bottom:12px;
  align-items:center;
}
#gnf-ficha-modal .gnf-ficha-head h2{font-size:24px;margin-bottom:2px}
#gnf-ficha-modal .gnf-ficha-head p{font-size:12px}
#gnf-ficha-modal .gnf-ficha-x{width:36px;height:36px;font-size:22px}
#gnf-ficha-modal .gnf-ficha-grid{gap:9px 11px}
#gnf-ficha-modal .gnf-ficha-campo{gap:4px;font-size:11px}
#gnf-ficha-modal .gnf-ficha-campo input,
#gnf-ficha-modal .gnf-ficha-campo textarea{padding:8px 10px;border-radius:9px;min-height:36px}
#gnf-ficha-modal .gnf-ficha-campo textarea{min-height:52px;resize:vertical}
#gnf-ficha-modal .gnf-ficha-grid + div{margin:10px 0!important;padding:10px 12px!important}
#gnf-ficha-modal .gnf-ficha-actions{gap:7px;margin-top:10px;align-items:stretch}
#gnf-ficha-modal .gnf-ficha-actions .btn-secondary,
#gnf-ficha-modal .gnf-ficha-actions .btn-primary{min-height:40px;padding:8px 12px}

@media(max-width:760px){
  /* En iOS el blur del backdrop podía quedar por encima visualmente del editor. */
  .gnf-celda-backdrop{
    z-index:9998!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    background:rgba(0,0,0,.78)!important;
  }
  #gnf-celda-form.gnf-celda-modal{
    z-index:2147483646!important;
    left:10px!important;
    right:10px!important;
    bottom:10px!important;
    top:auto!important;
    transform:none!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(100dvh - 20px)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:16px!important;
    border-radius:20px!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    background:rgba(25,25,27,.98)!important;
  }
  #gnf-ficha-modal.gnf-ficha-overlay{padding:8px;align-items:flex-end}
  #gnf-ficha-modal .gnf-ficha-card{width:100%;max-height:calc(100dvh - 16px);padding:14px;border-radius:20px}
  #gnf-ficha-modal .gnf-ficha-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  #gnf-ficha-modal .gnf-ficha-ancho{grid-column:1/-1}
  #gnf-ficha-modal .gnf-ficha-head h2{font-size:20px}
  #gnf-ficha-modal .gnf-ficha-head p{font-size:11px}
  #gnf-ficha-modal .gnf-ficha-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  #gnf-ficha-modal .gnf-ficha-actions #gnf-ficha-guardar{grid-column:1/-1}
  #gnf-ficha-modal .gnf-ficha-actions #gnf-ficha-eliminar{margin-right:0!important}
}
@media(max-width:430px){
  #gnf-ficha-modal .gnf-ficha-grid{grid-template-columns:1fr 1fr}
  #gnf-ficha-modal .gnf-ficha-campo{font-size:10px}
  #gnf-ficha-modal .gnf-ficha-campo input{font-size:12px}
}

/* Modal cuota: por encima del backdrop y navegación al trasladarse a body. */
body > #gnf-celda-backdrop.gnf-celda-backdrop{z-index:2147483000!important;}
body > #gnf-celda-form.gnf-celda-modal{z-index:2147483001!important;isolation:isolate;color:#f5f5f5!important;opacity:1!important;filter:none!important;}
body > #gnf-celda-form.gnf-celda-modal label,
body > #gnf-celda-form.gnf-celda-modal p,
body > #gnf-celda-form.gnf-celda-modal h3,
body > #gnf-celda-form.gnf-celda-modal h4{color:#f5f5f5!important;}
@media(max-width:760px){
  body > #gnf-celda-form.gnf-celda-modal{top:10px!important;bottom:10px!important;left:10px!important;right:10px!important;max-height:none!important;height:auto!important;overflow-y:auto!important;box-sizing:border-box!important;padding-bottom:calc(22px + env(safe-area-inset-bottom,0px))!important;}
}

/* ============================================================
   NF24 — Pulido visual Gestión Natural Fitness (contraste + tarjetas
   compactas Base de Datos/Interesados + modal Pausa/Ausentes compacto)
   SOLO PRESENTACIÓN. Todo el bloque queda deliberadamente acotado a
   IDs/clases exclusivos de Gestión Natural Fitness — no se toca
   ninguna regla global (.input, .btn-primary, .field, etc.) ni
   ninguna otra pantalla de la app. No cambia consultas, permisos,
   lógica de negocio ni el comportamiento de ningún botón.
   ============================================================ */

/* 1) Contraste en modo oscuro — los dos buscadores (Plazas y Base de
   Datos) y el selector de mes del resumen usan class="input" sin
   envolver en .field, así que no heredaban ningún color de texto
   explícito y el navegador aplicaba negro por defecto sobre un fondo
   oscuro/semitransparente: prácticamente ilegible. */
#page-admin-gestion-nf .gnf-buscador-wrap .input,
#page-admin-gestion-nf .gnf-resumen-mes-picker .input {
  color: #fff !important;
}
#page-admin-gestion-nf .gnf-buscador-wrap .input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}
#page-admin-gestion-nf .gnf-resumen-mes-picker .input option {
  background: #171717;
  color: #fff;
}

/* 2) Base de Datos / Interesados — la causa de la altura excesiva era
   que "Reactivar"/"Dar de alta" son .btn-primary, y esa clase global
   trae width:100%, así que siempre rompían a su propia línea entera
   dentro de la fila. Aquí se anula ESE width SOLO dentro de estas dos
   listas — .btn-primary en el resto de la app no se toca. */
#gnf-bd-wrap .btn-primary,
#gnf-interesados-wrap .btn-primary {
  width: auto;
  margin-top: 0;
}
#gnf-bd-wrap .gnf-bd-fila {
  padding: 9px 12px !important;
  gap: 9px 12px;
}
#gnf-bd-wrap .gnf-bd-info {
  min-width: 200px;
}
#gnf-interesados-wrap .workday-item-card {
  padding: 9px 12px !important;
}
#gnf-bd-wrap .gnf-bd-actions .btn-secondary,
#gnf-bd-wrap .gnf-bd-actions .btn-primary,
#gnf-interesados-wrap .btn-secondary,
#gnf-interesados-wrap .btn-primary {
  padding: 6px 10px;
  font-size: 12.5px;
}
@media (max-width: 640px) {
  /* En móvil el nombre nunca debe cortarse: pasa a ocupar toda la
     fila y las acciones se colocan debajo, en vez de intentar
     comprimirlo junto a los botones. */
  #gnf-bd-wrap .gnf-bd-fila,
  #gnf-interesados-wrap .workday-item-card {
    flex-direction: column;
    align-items: stretch !important;
  }
  #gnf-bd-wrap .gnf-bd-info {
    min-width: 0;
  }
}

/* 3) Modal "Pausa / Ausentes" compacto, con cabecera y botón de cierre
   siempre visibles. Antes el overflow/scroll estaba en TODA la
   tarjeta (cabecera incluida), así que al bajar por la lista el
   título y la "×" podían desaparecer de la vista. Ahora el scroll
   queda únicamente dentro de la lista de personas. */
.gnf-pausas-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.gnf-pausas-head {
  position: sticky;
  top: 0;
  background: #151515;
  flex-shrink: 0;
  padding-bottom: 8px;
  margin-bottom: 4px;
  z-index: 2;
}
.gnf-pausas-lista {
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}
.gnf-pausa-persona {
  padding: 9px 0;
}
.gnf-pausa-persona .btn-secondary {
  padding: 6px 10px;
  font-size: 12.5px;
  flex-shrink: 0;
}
@media (max-width: 480px) {
  .gnf-pausa-persona {
    flex-wrap: wrap;
    row-gap: 6px;
  }
}

/* Pulido visual — segunda pasada: aún más compacto en Base de
   Datos/Interesados, a petición explícita tras revisar la primera
   versión. Mismo alcance (solo estos dos listados, solo
   presentación), simplemente se aprietan más los márgenes, la
   tipografía y los botones. */
#gnf-bd-wrap .gnf-bd-fila,
#gnf-interesados-wrap .workday-item-card {
  padding: 6px 10px !important;
  margin-bottom: 5px !important;
}
#gnf-bd-wrap .gnf-cliente-link {
  font-size: 13px;
}
#gnf-bd-wrap .gnf-bd-meta {
  font-size: 11px;
  margin-top: 1px;
}
#gnf-interesados-wrap .workday-item-card strong {
  font-size: 13px;
}
#gnf-interesados-wrap .workday-item-card > div:first-child > div {
  font-size: 11px;
  margin-top: 1px !important;
}
#gnf-bd-wrap .gnf-bd-actions,
#gnf-interesados-wrap .workday-item-card > div:last-child {
  gap: 5px !important;
}
#gnf-bd-wrap .gnf-bd-actions .btn-secondary,
#gnf-bd-wrap .gnf-bd-actions .btn-primary,
#gnf-interesados-wrap .btn-secondary,
#gnf-interesados-wrap .btn-primary {
  padding: 4px 8px !important;
  font-size: 11px !important;
  border-radius: 8px;
}

/* ============================================================
   NF24 — Visual System V3: LIQUID GLASS (aplicación)
   Extiende (no sustituye) el Visual System V2 ya existente. Cambios
   SOLO de presentación: ningún selector aquí toca id/clase generada
   por lógica de negocio, ningún atributo funcional, ninguna consulta.
   Principio de rendimiento: el cristal (backdrop-filter) se aplica
   SOLO a superficies flotantes/overlay que aparecen una vez por
   pantalla (nav, modales, botones flotantes, bandas de resumen) —
   nunca a filas repetidas de listas/tablas/históricos.
   ============================================================ */

/* Utilidad reutilizable + fallback para navegadores sin soporte de
   backdrop-filter (degrada a superficie sólida opaca, nunca a
   transparente-sin-blur, para que el contraste no se resienta). */
.lg-glass {
  background: var(--glass-bg-strong);
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  backdrop-filter: blur(var(--glass-blur)) saturate(150%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(150%);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .lg-glass { background: var(--card-white); }
}

/* ---- 1) Dock de navegación inferior — cristal flotante ----
   Solo se toca el ::before decorativo (el fondo visual de la isla);
   los .nav-btn reales no cambian de posición/tamaño/hit-area. */
#bottom-nav::before {
  background: var(--glass-bg-strong);
  border-color: var(--glass-border);
  backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%);
}
[data-theme="dark"] #bottom-nav::before {
  background: var(--glass-bg-strong);
  border-color: var(--glass-border);
  backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  #bottom-nav::before { background: var(--card-white); }
  [data-theme="dark"] #bottom-nav::before { background: var(--surface-3); }
}

/* ---- 2) Menú "Más" (nav-more-menu) — mismo cristal que el dock ---- */
.nav-more-menu {
  background: var(--glass-bg-strong);
  border-color: var(--glass-border);
  backdrop-filter: blur(var(--glass-blur)) saturate(150%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(150%);
}
[data-theme="dark"] .nav-more-menu {
  background: var(--glass-bg-strong);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(var(--glass-blur)) saturate(150%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(150%);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .nav-more-menu { background: var(--card-white); }
  [data-theme="dark"] .nav-more-menu { background: var(--surface-2); }
}

/* ---- 3) Botones flotantes redondos (tema/perfil) — chip de cristal ---- */
.theme-toggle, .profile-toggle {
  background: var(--glass-bg-strong);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(var(--glass-blur)) saturate(150%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(150%);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .theme-toggle, .profile-toggle { background: var(--card-white); }
}

/* ---- 4) Modal genérico de la app (.modal-box) — cristal ----
   Usado en avisos/confirmaciones puntuales por toda la app (no es
   una lista repetida, aparece de una en una), buen candidato a
   cristal con impacto visual alto y coste bajo. */
.modal-box {
  background: var(--glass-bg-strong);
  border-color: var(--glass-border);
  box-shadow: var(--glass-shadow);
  backdrop-filter: blur(var(--glass-blur)) saturate(150%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(150%);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .modal-box { background: var(--card-white); }
}

/* ---- 5) Banda de indicadores (.admin-kpi-banda) — cristal sutil ----
   Aparece 1-2 veces por pantalla (resúmenes), nunca como fila
   repetida, así que el coste de blur es asumible. La versión ya
   existente y más específica dentro de Gestión Natural Fitness
   (#page-admin-gestion-nf .admin-kpi-banda) sigue ganando ahí por
   especificidad — esto solo afecta a las demás pantallas que usan
   la misma banda. */
.admin-kpi-banda {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(calc(var(--glass-blur) * 0.6)) saturate(140%);
  -webkit-backdrop-filter: blur(calc(var(--glass-blur) * 0.6)) saturate(140%);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .admin-kpi-banda { background: var(--surface-1); }
}

/* ---- 6) Tarjetas repetidas (.tracker-card, .workday-item-card) ----
   NUNCA cristal aquí (aparecen decenas de veces por pantalla) — solo
   un toque de profundidad barato: un reflejo superior sutil vía
   box-shadow inset, que no añade ningún coste de renderizado real. */
.tracker-card, .workday-item-card {
  box-shadow: var(--shadow-sm), inset 0 1px 0 var(--surface-highlight);
  transition: box-shadow 0.15s ease, transform 0.1s ease;
}

/* ---- 7) Botones — reflejo superior barato (gradiente, sin blur) ----
   .btn-primary/.btn-secondary se usan 200+ veces en total: cualquier
   backdrop-filter aquí sería inasumible. En su lugar, un gradiente
   superpuesto sobre el color ya existente (mismo color base, mismo
   texto, mismo contraste) da la sensación de superficie pulida sin
   coste de blur. */
.btn-primary {
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.32) 0%, rgba(255, 255, 255, 0) 55%);
  background-color: var(--gold);
  background-blend-mode: overlay;
}
.btn-secondary {
  background-image: linear-gradient(180deg, var(--surface-highlight) 0%, rgba(255, 255, 255, 0) 60%);
  background-color: var(--surface-3);
}



/* ============================================================
   NF24FIT · LIQUID GLASS GLOBAL V2 — presentación únicamente
   Extensión de V3: profundidad consistente sin blur en listas.
   ============================================================ */
:root {
  --lg-v2-edge: rgba(255,255,255,.72);
  --lg-v2-glow: rgba(255,215,0,.075);
  --lg-v2-inset: rgba(255,255,255,.8);
}
[data-theme="dark"] {
  --lg-v2-edge: rgba(255,255,255,.12);
  --lg-v2-glow: rgba(255,215,0,.065);
  --lg-v2-inset: rgba(255,255,255,.075);
}
/* Unificar la profundidad de las superficies sin alterar su fondo
   ni imponer transparencia sobre formularios o tablas. */
.page-header, .admin-kpi-banda, .modal-box, .nav-more-menu {
  box-shadow: var(--shadow-md), inset 0 1px 0 var(--lg-v2-inset);
}
/* Los controles conservan sus colores, estados y tamaños originales. */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
select, textarea {
  box-shadow: inset 0 1px 0 var(--surface-highlight);
  transition: border-color .16s ease, box-shadow .16s ease;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus-visible,
select:focus-visible, textarea:focus-visible {
  box-shadow: 0 0 0 3px var(--lg-v2-glow), inset 0 1px 0 var(--surface-highlight);
}
/* Micro-reflejo barato: no se aplica backdrop-filter a cada botón. */
.btn-primary, .btn-secondary {
  box-shadow: inset 0 1px 0 var(--lg-v2-inset), var(--shadow-sm);
}
/* Respeto a quienes prefieren reducir las animaciones. */
@media (prefers-reduced-motion: reduce) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
  select, textarea { transition: none; }
}

/* NF24FIT: navegación guiada sobre el registro de series existente */
.nf-guia-iniciar{display:block;width:100%;margin:8px 0 16px;padding:14px;border:1px solid rgba(126,200,173,.65);border-radius:14px;background:rgba(34,145,111,.18);color:inherit;font-weight:700;cursor:pointer}
.nf-guia-entreno{margin:12px 0 16px;padding:14px;border:1px solid rgba(126,200,173,.5);border-radius:16px;background:rgba(60,145,123,.12)}
.nf-guia-entreno p{font-size:13px;line-height:1.45;margin:8px 0 12px;opacity:.85}
.nf-guia-botones{display:flex;flex-wrap:wrap;gap:8px}
.nf-guia-botones button{flex:1;min-width:135px;padding:11px;border-radius:11px;border:1px solid rgba(126,200,173,.55);background:rgba(60,145,123,.18);color:inherit;font-weight:600;cursor:pointer}
.nf-guia-botones button:disabled{opacity:.35;cursor:default}

/* NF24FIT — Entrenamiento guiado V2: progreso y registro simplificado */
.nf-guia-progreso{display:flex;align-items:center;gap:10px;margin:10px 0 2px}
.nf-guia-progreso-barra{flex:1;height:7px;border-radius:999px;background:rgba(255,255,255,.10);overflow:hidden}
.nf-guia-progreso-barra span{display:block;height:100%;border-radius:inherit;background:#ffd400;transition:width .2s ease}
.nf-guia-progreso small{white-space:nowrap;font-size:12px;opacity:.8}
.entreno-hoy-row{grid-template-columns:42px minmax(0,1fr) minmax(0,1fr) auto !important}
@media(max-width:520px){.entreno-hoy-row{grid-template-columns:42px minmax(0,1fr) minmax(0,1fr) auto !important}}

/* NF24FIT Seguimiento V2 — Mi Transformación */
#page-transformacion #transformacion-hitos{display:grid;gap:14px;margin-top:18px}
#page-transformacion .hito-card{position:relative;display:flex;align-items:center;gap:16px;padding:18px;border:1px solid rgba(255,215,0,.20);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));box-shadow:0 12px 32px rgba(0,0,0,.18);overflow:hidden}
#page-transformacion .hito-card::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:4px;background:var(--gold,#ffd700)}
#page-transformacion .hito-card.pendiente{opacity:.58;border-color:rgba(255,255,255,.08)}
#page-transformacion .hito-card.pendiente::before{background:rgba(255,255,255,.18)}
#page-transformacion .hito-card img{width:76px;height:92px;object-fit:cover;border-radius:16px;background:#111;border:1px solid rgba(255,255,255,.08);flex:0 0 auto}
#page-transformacion .hito-info{min-width:0;flex:1}
#page-transformacion .hito-titulo{font-size:20px;font-weight:800;color:var(--gold,#ffd700);margin-bottom:4px}
#page-transformacion .hito-fecha{font-size:13px;color:var(--text-muted,#999);margin-bottom:9px}
#page-transformacion .hito-datos{font-size:14px;line-height:1.55;color:var(--text,#fff)}
#page-transformacion .hito-badge{display:inline-flex;margin-top:10px;padding:6px 10px;border-radius:999px;background:rgba(255,215,0,.10);color:var(--gold,#ffd700);font-size:11px;font-weight:800}
#page-transformacion .transformacion-resumen{margin:14px 0 4px;padding:18px;border-radius:22px;background:linear-gradient(135deg,rgba(255,215,0,.12),rgba(255,255,255,.035));border:1px solid rgba(255,215,0,.25)}
#page-transformacion .transformacion-resumen-titulo{font-weight:800;font-size:18px;margin-bottom:12px}
#page-transformacion .transformacion-resumen-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#page-transformacion .transformacion-resumen-item{padding:12px;border-radius:15px;background:rgba(0,0,0,.20);border:1px solid rgba(255,255,255,.06)}
#page-transformacion .transformacion-resumen-item small{display:block;color:var(--text-muted,#999);margin-bottom:4px}
#page-transformacion .transformacion-resumen-item strong{font-size:18px}
@media(max-width:430px){#page-transformacion .hito-card{padding:15px;gap:13px}#page-transformacion .hito-card img{width:66px;height:82px}#page-transformacion .hito-titulo{font-size:18px}}


/* ============================================================
   NF Assistant V1 — estado visible en Mensajes / chat
   ============================================================ */
.nf-assistant-panel{margin:12px 0 14px;padding:14px;border:1px solid rgba(255,213,0,.32);border-radius:16px;background:linear-gradient(135deg,rgba(255,213,0,.075),rgba(255,255,255,.025))}
.nf-assistant-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.nf-assistant-panel-head>div{display:flex;flex-direction:column;gap:3px}.nf-assistant-panel-head strong{font-size:14px}.nf-assistant-panel-head span{font-size:10.5px;color:var(--text-muted)}
#nf-assistant-global-toggle{border:1px solid rgba(255,213,0,.42);background:var(--gold);color:#111;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:900;cursor:pointer}
#nf-assistant-global-toggle.paused{background:transparent;color:var(--text-muted);border-color:var(--border-soft)}
.nf-assistant-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.nf-assistant-stats>div{border:1px solid var(--border-soft);border-radius:12px;padding:9px;background:rgba(0,0,0,.14)}
.nf-assistant-stats strong{display:block;color:var(--gold);font-size:18px}.nf-assistant-stats span{display:block;color:var(--text-muted);font-size:9.5px;font-weight:700;margin-top:3px}
.nf-assistant-panel p{font-size:10.5px;color:var(--text-muted);line-height:1.45;margin:10px 0 0}
.nf-assistant-row-status{flex-shrink:0;border-radius:999px;padding:5px 7px;font-size:9px;font-weight:900;white-space:nowrap;border:1px solid var(--border-soft)}
.nf-assistant-row-status.auto{color:#75e7a5;border-color:rgba(55,200,115,.35);background:rgba(55,200,115,.09)}
.nf-assistant-row-status.revisar{color:var(--gold);border-color:rgba(255,213,0,.35);background:rgba(255,213,0,.08)}
.nf-assistant-row-status.necesita_paco{color:#ff7474;border-color:rgba(255,80,80,.38);background:rgba(255,80,80,.08)}
.nf-assistant-row-status.manual{color:var(--text-muted)}
.nf-assistant-chat-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid var(--border-soft);background:rgba(255,213,0,.055)}
.nf-assistant-chat-bar>div{display:flex;flex-direction:column;gap:2px;min-width:0}.nf-assistant-chat-bar strong{font-size:11px;color:var(--gold)}.nf-assistant-chat-bar span{font-size:9.5px;color:var(--text-muted)}
#nf-assistant-chat-action{border:1px solid rgba(255,213,0,.35);background:transparent;color:var(--gold);border-radius:999px;padding:6px 9px;font-size:9.5px;font-weight:900;white-space:nowrap;cursor:pointer}
.chat-bubble .nf-assistant-msg-label{display:block;font-size:9px;font-weight:900;color:var(--gold);margin-bottom:4px;letter-spacing:.01em}
@media(max-width:520px){.nf-assistant-row-status{font-size:8px;padding:4px 6px}.nf-assistant-panel{padding:12px}.nf-assistant-stats strong{font-size:16px}}


/* ============================================================
   Herbalife — buscador de productos (v Packs)
   ============================================================ */
.herbalife-search-wrap{position:relative;margin:16px 0 4px;}
.herbalife-product-search{width:100%;box-sizing:border-box;border:1px solid var(--border-soft);background:var(--card-white);color:var(--text-dark);border-radius:16px;padding:14px 44px 14px 44px;font-size:15px;font-weight:600;outline:none;transition:border-color .2s,box-shadow .2s;}
.herbalife-product-search:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(255,215,0,.10);}
.herbalife-product-search::placeholder{color:var(--text-muted);font-weight:500;}
.herbalife-search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:22px;color:var(--text-muted);pointer-events:none;}
.herbalife-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;border-radius:50%;background:var(--surface-3);color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer;}
.herbalife-search-result-block{margin-bottom:12px;}
.herbalife-search-result-cat{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--yellow);margin:0 0 6px 6px;}
.herbalife-search-empty{border:1px dashed var(--border-soft);border-radius:16px;padding:22px 16px;text-align:center;color:var(--text-muted);font-size:14px;background:var(--card-white);}
@media(max-width:640px){.herbalife-product-search{font-size:16px;padding-top:13px;padding-bottom:13px;}}

/* v11.28 — Recomendador de packs Herbalife */
.herbalife-pack-result-card{overflow:hidden;border:1px solid rgba(255,215,0,.25);border-radius:18px;background:var(--surface-2);margin:8px 0 12px;box-shadow:var(--shadow-sm)}
.herbalife-pack-result-media{background:#10150f;min-height:170px;display:flex;align-items:center;justify-content:center;font-size:36px}
.herbalife-pack-result-media img{width:100%;height:210px;object-fit:cover;display:block}
.herbalife-pack-result-body{padding:15px}
.herbalife-pack-result-kicker{font-size:9.5px;font-weight:900;letter-spacing:.8px;color:var(--gold)}
.herbalife-pack-result-body h3{font-size:20px;line-height:1.2;color:var(--text-dark);margin:5px 0 8px}
.herbalife-pack-result-body p{font-size:12.5px;line-height:1.5;color:var(--text-muted);margin:0 0 10px}
.herbalife-pack-result-incluye{font-size:11.5px;line-height:1.45;color:var(--text-dark);background:var(--surface-1);border:1px solid var(--border-soft);border-radius:11px;padding:9px 10px;margin-bottom:12px}
.herbalife-pack-add-btn{width:100%;margin:0}
.herbalife-pack-alt-btn{width:100%;border:1px solid var(--border-soft);background:transparent;border-radius:13px;padding:11px 12px;text-align:left;color:var(--text-dark);font-family:inherit;cursor:pointer;margin:0 0 8px}
.herbalife-pack-alt-btn span{display:block;font-size:10px;color:var(--text-muted);margin-bottom:3px}
.herbalife-pack-alt-btn strong{display:block;font-size:12.5px;color:var(--gold)}
@media(max-width:520px){.herbalife-pack-result-media img{height:185px}.herbalife-pack-result-body h3{font-size:18px}}

/* Paquete 8, punto 1/4 -- Ideas y Recordatorios: estado visual cuando
   una idea esta marcada como completada (title semi-transparente,
   igual de discreto que el resto de la app; nunca oculta la tarjeta). */
.idea-card--completada .workday-item-title { opacity: .55; text-decoration: line-through; }

/* Paquete 8, punto 7 -- iconos de redes sociales en el perfil deportivo.
   Solo se pintan los que el usuario tiene configurados; mismo tamano
   tactil (44px) que el resto de botones de icono de la app. */
.pd-redes-row { display: flex; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.pd-red-icon {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--surface-2); border: 1px solid var(--border-soft);
  font-size: 18px; text-decoration: none; cursor: pointer;
}

/* Ajustes finales Paquete 8 -- galeria de fotos del perfil deportivo
   (ahora hasta 30, independiente de la foto de perfil y de las fotos
   de progreso corporal). Cuadricula tipo galeria social, 3 columnas en
   movil (antes era un carrusel horizontal). */
.pd-galeria-carrusel {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px;
  padding: 4px 0 10px;
}
.pd-galeria-foto {
  width: 100%; aspect-ratio: 1 / 1; border-radius: 10px;
  object-fit: cover; cursor: pointer; background: var(--surface-2);
}
@media (min-width: 520px) {
  .pd-galeria-carrusel { grid-template-columns: repeat(4, 1fr); gap: 8px; }
}

/* Ajustes finales Paquete 8 -- Bienestar: temporizador con mas
   protagonismo (numero mas grande y centrado, frase de guia debajo),
   controles mas grandes y tactiles en movil. */
.bienestar-timer-vista { text-align: center; padding-top: 6px; }
.bienestar-timer-numero {
  position: relative; isolation: isolate;
  font-size: 84px; font-weight: 800; color: var(--gold); letter-spacing: 1px;
  margin: 10px 0 4px; line-height: 1;
}
/* ---- Onda/resplandor zen detrás del número -- puro CSS (radial-gradient
   + una animación ligera de transform/opacity, sin JS ni imágenes), así
   que no añade coste de rendimiento real. isolation:isolate mantiene el
   resplandor (z-index:-1) contenido dentro de este elemento, sin que se
   escape por detrás de otras tarjetas. ---- */
.bienestar-timer-numero::before {
  content: ""; position: absolute; z-index: -1; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 230px; height: 230px; max-width: 90vw; border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 215, 0, 0.32) 0%, rgba(255, 215, 0, 0) 70%);
  pointer-events: none;
  animation: bienestarTimerPulse 3.6s ease-in-out infinite;
}
@keyframes bienestarTimerPulse {
  0%, 100% { transform: translate(-50%, -50%) scale(0.92); opacity: 0.7; }
  50% { transform: translate(-50%, -50%) scale(1.05); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .bienestar-timer-numero::before { animation: none; }
}
.bienestar-timer-frase {
  font-size: 14.5px; color: var(--text-muted); min-height: 20px;
  margin: 0 0 20px; transition: opacity .4s ease;
}
.bienestar-timer-control-btn { padding: 15px 22px; font-size: 15.5px; border-radius: 16px; min-width: 130px; }
@media (max-width: 400px) { .bienestar-timer-numero { font-size: 68px; } }

/* ================================================================
   Ajustes finales Paquete 8 -- Cardio/Kilometros: segunda pasada
   visual (solo estilos, la logica de GPS/manual no se toca). Metricas
   mas grandes y legibles, jerarquia mas clara (distancia como
   protagonista), controles mas grandes en movil, historial mas claro.
   Mismas clases de siempre (.km-live-stats, .km-row...), asi que esto
   mejora a la vez la pantalla en vivo Y el resumen final, que ya
   reutiliza las mismas clases.
   ================================================================ */
.km-live-stats {
  background: var(--surface-2, var(--bg)); border-radius: 16px; padding: 16px 8px;
  border: 1px solid var(--border-soft);
}
.km-live-stat { background: transparent; padding: 6px 4px; }
.km-live-stat .val { font-size: 30px; font-weight: 800; letter-spacing: .2px; }
.km-live-stat .lbl { font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .3px; margin-top: 4px; }
/* La primera métrica (distancia) es la protagonista, un poco más
   grande que tiempo/ritmo -- misma jerarquía en vivo y en el resumen. */
.km-live-stat:first-child .val { font-size: 38px; color: var(--gold); }

.km-mode-tab { padding: 13px 14px; font-size: 14px; border-radius: 13px; }
.km-gps-actions button, #km-add-btn, #km-gps-start-btn { padding: 16px; font-size: 15.5px; border-radius: 16px; font-weight: 800; }
.km-gps-actions { gap: 12px; }

.km-map { height: 240px; }

/* Historial más claro: se mantiene la tarjeta por fila (mismo lenguaje
   visual que el resto de la app), solo se refuerza la jerarquía --
   tipo de actividad más legible arriba, distancia como dato principal
   más grande a la derecha. */
.km-row { padding: 13px 15px; gap: 10px; }
.km-row .km-tipo-lbl { font-size: 13.5px; }
.km-row .km-dist { font-size: 17px; }

#km-resumen-modal .modal-box::before {
  content: "🎉"; display: block; font-size: 38px; margin-bottom: 4px;
}

/* Ajustes finales Paquete 8 -- feedback visual claro cuando un +/- de
   "Hacer crecer tu negocio" está deshabilitado (límite alcanzado o
   guardado en curso), para que nunca parezca que "no responde". */
.workday-action:disabled { opacity: .35; cursor: default; }

/* ================================================================
   Paquete final -- Cardio/Kilometros: TERCERA pasada visual (A5).
   Solo estilos, cero cambios de logica GPS/manual. Objetivo: que la
   pantalla en vivo se sienta como un tracker deportivo (tipo Strava,
   sin copiar su interfaz), no como un formulario -- mapa protagonista
   arriba del todo, distancia como unico gran numero, controles aun
   mas grandes y diferenciados.
   ================================================================ */
/* Reordena SOLO visualmente (flex order) los hijos ya existentes de la
   vista en vivo: mapa primero (protagonista), luego metricas, estado y
   controles -- el HTML no cambia de orden, por lo que la inicializacion
   del mapa (que busca #km-live-map por id) no se ve afectada. */
#km-gps-running { display: flex; flex-direction: column; gap: 14px; }
#km-gps-running .km-map { order: -2; height: 260px; }
#km-gps-running .km-live-stats { order: -1; }
@media (min-width: 420px) { #km-gps-running .km-map { height: 300px; } }

.km-live-stat:first-child .val { font-size: 46px; }
.km-live-stat .val { font-size: 32px; }
.km-live-stats { padding: 18px 8px 16px; }

/* Boton de finalizar con acento propio -- "stop" siempre reconocible a
   simple vista, distinto del resto de botones primarios de la app. */
#km-gps-parar-btn { box-shadow: 0 0 0 2px rgba(255, 90, 90, .35) inset; }

/* Resumen final -- metricas del resumen (misma tarjeta .km-live-stats
   reutilizada) con un poco mas de aire, y titulo del modal mas visible. */
#km-resumen-modal .modal-box h2, #km-resumen-modal .modal-box .section-title {
  text-align: center;
}

/* Historial -- separacion mas clara entre actividades consecutivas del
   mismo dia, sin abandonar la tarjeta ya establecida en toda la app. */
#km-history .km-row + .km-row { margin-top: 2px; }

/* ================================================================
   Paquete final -- B5: tarjetas compactas de "Mis clientes" (Paco y
   Coach comparten estas mismas clases). Foto grande a la izquierda,
   info a la derecha, mucha menos altura que el formato anterior.
   ================================================================ */
.cliente-card-compacta {
  display: flex; align-items: flex-start; gap: 12px; padding: 12px;
}
.cliente-card-compacta-avatar {
  width: 56px; height: 56px; border-radius: 50%; object-fit: cover;
  flex: 0 0 auto; background: var(--bg);
}
.cliente-card-compacta-info { flex: 1; min-width: 0; }
.cliente-card-compacta-top {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.cliente-card-compacta-nombre {
  font-size: 14.5px; font-weight: 800; color: var(--text-dark);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cliente-card-compacta-badges:empty { display: none; }
.cliente-card-compacta-detalle {
  font-size: 12px; color: var(--text-muted); margin-top: 3px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cliente-card-compacta-acciones {
  display: flex; gap: 8px; margin-top: 8px;
}
.cliente-card-compacta-acciones .workday-action {
  padding: 7px 10px; font-size: 12.5px;
}

/* Responsive: 1 columna en móvil, 2 en pantallas más anchas (tablet /
   escritorio) si el ancho disponible lo permite -- listas de "Mis
   clientes" de Paco y Coach. */
#paco-clientes-lista, #coach-mis-clientes-lista {
  display: grid; grid-template-columns: 1fr; gap: 10px;
}
@media (min-width: 720px) {
  #paco-clientes-lista, #coach-mis-clientes-lista { grid-template-columns: 1fr 1fr; }
}

/* ================================================================
   Paquete final -- B6: aviso global de nuevos seguidores/solicitudes.
   Arriba a la derecha (nunca sobre la barra inferior), discreto, con
   contador solo cuando hay algo pendiente.
   ================================================================ */
.social-aviso-fab {
  position: fixed; top: max(14px, env(safe-area-inset-top)); right: 14px; z-index: 160;
  width: 42px; height: 42px; border-radius: 50%; background: var(--surface-2, var(--bg));
  color: var(--text-dark); border: 1px solid var(--border-soft); font-size: 19px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.25); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.social-aviso-fab-badge {
  position: absolute; top: -3px; right: -3px; background: var(--danger); color: #fff;
  font-size: 10px; font-weight: 700; min-width: 18px; height: 18px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center; padding: 0 4px;
}
.social-aviso-fila {
  display: flex; align-items: center; gap: 10px; padding: 10px 0;
  border-bottom: 1px solid var(--border-soft);
}
.social-aviso-fila:last-child { border-bottom: none; }
.social-aviso-fila img {
  width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: 0 0 auto;
}
.social-aviso-fila-nombre { font-size: 14px; font-weight: 700; color: var(--text-dark); flex: 1; min-width: 0; }
.social-aviso-fila-acciones { display: flex; gap: 6px; flex: 0 0 auto; }


/* ================================================================
   AJUSTE FINAL -- Workday: bloques plegables (accordion nativo
   <details>/<summary>). Reutiliza las variables --w-* ya definidas
   en .workday-shell para que el bloque se vea parte del mismo
   sistema visual (misma superficie, mismo borde, mismo acento).
   ================================================================ */
.workday-accordion {
  border: 1px solid var(--w-border);
  border-radius: 16px;
  background: var(--w-surface);
  margin: 0 0 12px;
  overflow: hidden;
}
.workday-accordion:last-child { margin-bottom: 0; }
.workday-accordion.is-empty { display: none; }
.workday-accordion-summary {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 14px 16px; cursor: pointer; list-style: none; user-select: none;
  font-size: 14.5px; font-weight: 800; color: var(--w-text);
}
.workday-accordion-summary::-webkit-details-marker { display: none; }
.workday-accordion-summary::marker { content: ""; }
.workday-accordion-summary-title { display: flex; align-items: center; gap: 8px; min-width: 0; }
.workday-accordion-chevron {
  flex-shrink: 0; color: var(--w-text-muted); display: flex; transition: transform .2s ease;
}
.workday-accordion-chevron svg { width: 17px; height: 17px; }
.workday-accordion[open] > .workday-accordion-summary .workday-accordion-chevron { transform: rotate(90deg); }
.workday-accordion-body {
  padding: 2px 14px 14px; border-top: 1px solid var(--w-border); padding-top: 12px;
}
.workday-accordion-body .workday-grid:first-child,
.workday-accordion-body > div:first-child { margin-top: 0; }

/* ================================================================
   Ajuste UI premium (mockups) -- Kilometros y Bienestar. Cuarta
   pasada visual de Kilometros (las tres anteriores ya dejaron el
   modo GPS en vivo casi listo) y primera pasada "zen" de Bienestar.
   Solo estilos + los pequenos fragmentos de contenido nuevo que
   trajo su HTML/JS (mini indicador semanal, tarjeta descriptiva de
   sesion): NINGUNA logica de guardado, GPS, temporizador, sonido o
   navegacion se toca aqui.
   ================================================================ */

/* ---- Kilometros: tarjeta de resumen semanal con jerarquia clara -- */
#page-kilometros #km-goal-card.dash-card {
  background: linear-gradient(155deg, var(--surface-2, var(--card-white)) 0%, var(--surface-1, var(--card-white)) 100%);
  border-radius: var(--radius-lg, 20px);
  padding: 20px;
  box-shadow: var(--shadow-md);
  cursor: default;
}
#page-kilometros #km-goal-card .dash-card-title { font-size: 12.5px; text-transform: uppercase; letter-spacing: .4px; }
#page-kilometros #km-goal-card .dash-card-main { font-size: 27px; font-weight: 800; color: var(--text-dark); margin-top: 2px; }
#page-kilometros #km-goal-card .dash-card-sub { font-size: 12.5px; margin-top: 5px; }
#page-kilometros .km-resumen-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
#page-kilometros .km-resumen-sesiones { text-align: center; flex-shrink: 0; }
#page-kilometros .km-resumen-sesiones-num { font-size: 20px; font-weight: 800; color: var(--gold); line-height: 1; }
#page-kilometros .km-resumen-sesiones-lbl {
  font-size: 10px; color: var(--text-muted); text-transform: uppercase; letter-spacing: .3px; margin: 2px 0 8px;
}
#page-kilometros .km-semana-dias { display: flex; gap: 4px; }
#page-kilometros .km-semana-dia {
  width: 18px; height: 18px; border-radius: 5px; background: var(--surface-3, var(--input-bg));
  color: var(--text-muted); font-size: 9px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
#page-kilometros .km-semana-dia.activo { background: var(--gold); color: var(--black); }

/* ---- Kilometros: pestanas GPS/manual como segmented control ---- */
#page-kilometros .km-mode-tabs {
  background: var(--surface-1, var(--input-bg)); border: 1px solid var(--border-soft);
  border-radius: 16px; padding: 4px;
}
#page-kilometros .km-mode-tab:not(.active) { border: none; background: transparent; color: var(--text-muted); }
#page-kilometros .km-mode-tab.active { background: var(--gold); color: var(--black); border-color: var(--gold); box-shadow: var(--shadow-sm); }

/* ---- Kilometros: selector de periodo Semana | Mes | Año ---- */
.km-periodo-tabs { display: flex; gap: 6px; margin-bottom: 10px; }
.km-periodo-tab {
  flex: 1; padding: 8px 10px; border-radius: 10px; border: none; background: transparent;
  color: var(--text-muted); font-size: 12.5px; font-weight: 700; cursor: pointer; transition: background .15s ease, color .15s ease;
}
.km-periodo-tab.active { background: var(--gold); color: var(--black); }
.km-objetivo-cta-btn {
  margin-top: 12px; width: 100%; background: transparent; border: 1px dashed var(--gold);
  color: var(--gold); font-weight: 700; font-size: 12.5px; padding: 10px; border-radius: 12px; cursor: pointer;
}

/* ---- Kilometros: tarjeta de actividad unica -- mapa protagonista
   siempre visible (o su placeholder), metricas grandes debajo, y una
   fila inferior que solo cambia entre "config" y "en marcha" (misma
   logica GPS de siempre, solo su composicion visual cambia). ---- */
.km-activity-card { padding: 16px; }
#page-kilometros .km-activity-card .km-live-stats { margin-bottom: 12px; }
.km-activity-map-wrap {
  position: relative; width: 100%; height: 220px; border-radius: 14px; overflow: hidden;
  background: var(--bg); margin-bottom: 12px;
}
/* Mismo fondo "premium" que el placeholder mientras cargan las teselas
   del mapa (antes heredaba var(--bg), un gris/negro plano que se veia
   como una caja rota si la red iba lenta) -- puramente cosmetico, no
   afecta al mapa real una vez cargado. */
.km-activity-map-wrap .km-map {
  height: 100%; margin: 0; border-radius: 0;
  background: linear-gradient(155deg, var(--surface-2, var(--card-white)) 0%, var(--surface-1, var(--card-white)) 100%);
}
.km-map-placeholder {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 8px; color: var(--text-muted); font-size: 12.5px; text-align: center; padding: 0 20px;
  background: linear-gradient(155deg, var(--surface-2, var(--card-white)) 0%, var(--surface-1, var(--card-white)) 100%);
}
.km-map-placeholder-icon { font-size: 26px; }
.km-activity-bottom { margin-top: 2px; }
.km-activity-tipo-label {
  display: block; font-size: 10.5px; color: var(--text-muted); text-transform: uppercase; letter-spacing: .4px;
  margin-bottom: 7px; font-weight: 700;
}
/* ---- Fila Tipo + Empezar -- antes el boton (heredaba un padding
   pensado para ir solo en la fila) se comia todo el ancho y el
   <select> quedaba colapsado a solo su flechita nativa. min-width:0 es
   la clave para que flex:1 reparta el espacio de verdad en un
   <select>; el boton pasa a un tamano compacto y fijo, misma altura
   que el selector -- como en el mockup. No toca el listener ni el
   comportamiento del boton, solo su tamano. ---- */
.km-activity-bottom-row { display: flex; gap: 10px; align-items: stretch; }
.km-activity-bottom-row select {
  flex: 1 1 0%; min-width: 0; height: 46px;
  background-color: var(--surface-1, var(--input-bg));
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%23999999' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat; background-position: right 14px center;
  border: 1px solid var(--border-soft); color: var(--text-dark);
  padding: 0 30px 0 14px; border-radius: 14px; font-size: 13.5px; font-weight: 600;
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
}
.km-activity-bottom-row #km-gps-start-btn {
  /* .btn-primary trae width:100% (pensado para botones a ancho
     completo); en flex, un flex-basis "auto" hereda ese width como su
     tamano de partida, asi que sin anularlo aqui el boton reclama todo
     el ancho de la fila y no deja sitio al select. width:auto lo
     devuelve a un tamano por contenido, compacto, como en el mockup. */
  width: auto; flex: 0 0 auto; min-width: 0; height: 46px; white-space: nowrap;
  padding: 0 20px; font-size: 13.5px; border-radius: 14px; margin-top: 0;
}
.km-activity-hint { font-size: 10.5px; color: var(--text-muted); margin-top: 8px; line-height: 1.4; }
.km-gps-actions { display: flex; gap: 10px; }
.km-gps-actions button { flex: 1; }

/* ---- Historial compacto compartido (Kilometros y Bienestar) -- fila
   con icono circular, tipo+fecha, metrica/valor y accion o chevron. ---- */
.historial-row-premium {
  display: flex; align-items: center; gap: 12px; padding: 10px 4px;
  border-bottom: 1px solid var(--border-soft);
}
.historial-row-premium:last-child { border-bottom: none; }
.historial-row-icono {
  width: 38px; height: 38px; flex-shrink: 0; border-radius: 50%; background: var(--surface-1, var(--input-bg));
  display: flex; align-items: center; justify-content: center; font-size: 17px;
}
.historial-row-info { flex: 1; min-width: 0; }
.historial-row-tipo { font-weight: 700; font-size: 13.5px; }
.historial-row-fecha { font-size: 11px; color: var(--text-muted); margin-top: 1px; }
.historial-row-metricas { text-align: right; }
.historial-row-valor { font-weight: 700; color: var(--gold); font-size: 14px; }
.historial-row-sub { font-size: 10.5px; color: var(--text-muted); margin-top: 1px; }
.historial-row-acciones { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.historial-row-acciones button { background: none; border: none; font-size: 15px; cursor: pointer; padding: 2px; }
.historial-row-chevron { color: var(--text-muted); font-size: 16px; padding-left: 2px; flex-shrink: 0; }

/* ---- Kilometros: tarjeta "nueva actividad" (config GPS) mas clara -- */
#page-kilometros #km-gps-config .section-title { display: flex; align-items: center; gap: 8px; font-size: 16px; }
/* select#km-gps-tipo ya no fuerza width:100% -- ahora vive dentro de
   .km-activity-bottom-row (fila Tipo + Empezar) y es esa regla, mas
   especifica en la practica para este contexto, la que gobierna su
   tamano; aqui solo se mantiene el color/tipografia base. El select
   del formulario manual (#km-tipo) no cambia. */
#page-kilometros #km-gps-config select#km-gps-tipo {
  background: var(--surface-1, var(--input-bg)); border: 1px solid var(--border-soft);
  color: var(--text-dark); font-weight: 600;
}
#page-kilometros #km-manual-wrap select#km-tipo {
  width: 100%; background: var(--surface-1, var(--input-bg)); border: 1px solid var(--border-soft);
  color: var(--text-dark); padding: 12px 14px; border-radius: 12px; font-size: 14px; font-weight: 600;
}

/* ---- Bienestar: mas aire arriba ---- */
#page-bienestar { padding-top: max(24px, env(safe-area-inset-top)); }

/* ---- Bienestar: UNA tarjeta horizontal con los 3 KPIs (antes eran
   tres pills sueltas "flotando" por la pantalla) ---- */
.bienestar-kpi-card {
  display: flex; align-items: stretch; justify-content: space-between;
  background: linear-gradient(155deg, var(--surface-2, var(--card-white)) 0%, var(--surface-1, var(--card-white)) 100%);
  border-radius: var(--radius-lg, 20px); padding: 16px 8px; box-shadow: var(--shadow-md); margin-bottom: 18px;
}
.bienestar-kpi-item { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; text-align: center; }
.bienestar-kpi-icon { font-size: 16px; }
.bienestar-kpi-item b { font-size: 17px; font-weight: 800; color: var(--text-dark); line-height: 1; }
.bienestar-kpi-item span { font-size: 9px; color: var(--text-muted); text-transform: uppercase; letter-spacing: .3px; }
.bienestar-kpi-divider { width: 1px; background: var(--border-soft); margin: 2px 2px; }

/* ---- Bienestar: chips de sesion, mas "zen" que los admin-chip genericos ---- */
.bienestar-tipos-selector { gap: 10px; margin-bottom: 18px; }
#bienestar-tipos-grid .admin-chip {
  background: var(--surface-1, var(--card-white)); border: 1px solid var(--border-soft);
  border-radius: 16px; padding: 12px 18px; font-size: 13px; font-weight: 700; color: var(--text-dark);
}
#bienestar-tipos-grid .admin-chip:active { background: var(--surface-3, var(--input-bg)); }

/* ---- Bienestar: tarjeta ZEN principal -- fusiona lo que antes eran
   dos "paginas" (duracion / timer) en una unica tarjeta protagonista:
   arriba una atmosfera oscura con el badge/headline/descripcion/
   beneficios, abajo un panel claro con los chips de duracion o el
   temporizador (nunca las dos pantallas a la vez, nunca vacia). ---- */
.bienestar-zen-card {
  position: relative; border-radius: var(--radius-lg, 22px); overflow: hidden;
  box-shadow: var(--shadow-md); margin-bottom: 22px;
}
/* ---- Boton de salir de la sesion -- antes era una flecha "←" en la
   esquina superior IZQUIERDA, justo donde tambien empieza el badge de
   sesion (RESPIRACIÓN/MEDITACIÓN/DESCONEXIÓN), asi que visualmente
   parecian una sola cosa ("← RESPIRACIÓN"). Se mueve a la esquina
   superior DERECHA como un cierre "✕", lejos del badge -- mismo id,
   mismo listener/confirmacion de siempre, solo cambia su icono y
   posicion. ---- */
.bienestar-zen-atras {
  position: absolute; top: 14px; right: 14px; left: auto; z-index: 3;
  width: 32px; height: 32px; border-radius: 50%; border: none;
  background: rgba(0,0,0,0.38); color: #fff; font-size: 15px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
/* ---- Atmosfera por tipo -- imagen local (SVG propio, sin ninguna URL
   remota fragil) + una capa de degradado oscuro superpuesta para que
   el texto siga siendo legible. La imagen es vectorial (unos pocos KB,
   ligera para movil) y vive dentro de la propia entrega en
   assets/bienestar/. ---- */
.bienestar-zen-fondo {
  position: relative; padding: 26px 20px 24px; color: #fff;
  background-image: linear-gradient(160deg, rgba(20, 24, 32, 0.55) 0%, rgba(12, 15, 20, 0.8) 100%);
  background-size: cover; background-position: center; background-repeat: no-repeat;
}
.bienestar-zen-fondo::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 85% 0%, rgba(255,255,255,0.10), transparent 55%);
  pointer-events: none;
}
.bienestar-zen-fondo--respiracion {
  background-image: linear-gradient(160deg, rgba(45, 27, 12, 0.5) 0%, rgba(20, 11, 5, 0.82) 100%), url("../assets/bienestar/respiracion-zen.svg");
}
.bienestar-zen-fondo--meditacion {
  background-image: linear-gradient(160deg, rgba(16, 22, 38, 0.55) 0%, rgba(8, 11, 20, 0.82) 100%), url("../assets/bienestar/meditacion-zen.svg");
}
.bienestar-zen-fondo--desconexion {
  background-image: linear-gradient(160deg, rgba(5, 8, 16, 0.55) 0%, rgba(2, 4, 9, 0.85) 100%), url("../assets/bienestar/desconexion-zen.svg");
}
.bienestar-zen-fondo .bienestar-duracion-etiqueta {
  background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.22); color: #fff;
  position: relative; margin-right: 40px;
}
.bienestar-zen-fondo .bienestar-sesion-card { background: transparent; border: none; box-shadow: none; padding: 0; margin: 0; position: relative; }
.bienestar-zen-fondo .bienestar-sesion-headline { color: #fff; text-shadow: 0 2px 10px rgba(0,0,0,0.4); }
.bienestar-zen-fondo .bienestar-sesion-desc { color: rgba(255,255,255,0.82); text-shadow: 0 1px 6px rgba(0,0,0,0.35); }
.bienestar-zen-fondo .bienestar-beneficio-chip { background: rgba(255,255,255,0.16); color: #fff; backdrop-filter: blur(2px); }
.bienestar-zen-panel { background: var(--surface-1, var(--card-white)); padding: 22px 20px; }
/* ---- Pulido de sombras/bordes: la tarjeta zen gana mas profundidad y
   un borde muy sutil (coherente en claro y oscuro), en vez del
   box-shadow generico compartido con el resto de tarjetas. ---- */
.bienestar-zen-card {
  border: 1px solid var(--border-soft);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28), var(--shadow-sm);
}

.bienestar-duracion-etiqueta {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--surface-1, var(--card-white)); border: 1px solid var(--border-soft);
  border-radius: 20px; padding: 6px 14px; font-size: 12px; font-weight: 700;
  color: var(--gold); letter-spacing: .3px; text-transform: uppercase; margin-bottom: 14px;
}
.bienestar-sesion-card {
  background: linear-gradient(160deg, var(--surface-2, var(--card-white)) 0%, var(--surface-1, var(--card-white)) 100%);
  border: 1px solid var(--border-soft); border-radius: var(--radius-lg, 20px);
  padding: 22px 20px; margin-bottom: 22px; box-shadow: var(--shadow-md);
}
.bienestar-sesion-headline { font-size: 21px; font-weight: 800; margin: 0 0 8px; color: var(--text-dark); }
.bienestar-sesion-desc { font-size: 13.5px; line-height: 1.55; color: var(--text-muted); margin: 0 0 16px; }
.bienestar-beneficios-row { display: flex; gap: 8px; flex-wrap: wrap; }
.bienestar-beneficio-chip {
  background: var(--surface-3, var(--input-bg)); border-radius: 12px; padding: 8px 12px;
  font-size: 11.5px; font-weight: 600; color: var(--text-dark);
  display: inline-flex; align-items: center; gap: 5px;
}
.bienestar-duracion-subtitulo { font-size: 14px; margin: 0 0 12px; color: var(--text-muted); font-weight: 700; }

/* ---- Bienestar: vista de temporizador -- el nombre de la sesion
   como badge pequeno sobre el numero grande, en vez de un titulo de
   seccion generico (el numero/frase/barra/botones ya estaban bien
   desde el ajuste anterior; esto solo afina la etiqueta de arriba). -- */
.bienestar-timer-vista #bienestar-timer-titulo {
  font-size: 12px; font-weight: 700; color: var(--gold);
  text-transform: uppercase; letter-spacing: .4px; margin-bottom: 4px;
}

/* ============================================================
   RONDA 5 -- Reconstruccion premium Kilometros (tipo Strava) y
   Bienestar (ZEN). Todo lo de aqui abajo es aditivo sobre las
   rondas anteriores: no se ha borrado ni renombrado ninguna clase
   ya existente, solo se anaden piezas nuevas del mockup que aun
   no estaban (cabecera "Nueva actividad", metricas secundarias,
   mini-grafico de barras real, "Ver todo", chips de duracion).
   ============================================================ */

/* ---- Kilometros: cabecera "Nueva actividad" + boton Ajustes,
   tal cual el mockup -- encima del mapa, dentro de la misma
   tarjeta de actividad. ---- */
.km-activity-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 12px; margin-bottom: 14px;
}
.km-activity-header-title { font-size: 17px; font-weight: 800; color: var(--text-dark); margin: 0; }
.km-activity-header-sub { font-size: 12px; color: var(--text-muted); margin: 3px 0 0; }
.km-ajustes-btn {
  flex-shrink: 0; background: var(--surface-1, var(--input-bg)); border: 1px solid var(--border-soft);
  color: var(--text-dark); font-size: 12px; font-weight: 700; padding: 8px 14px;
  border-radius: 20px; cursor: pointer; white-space: nowrap;
}
.km-ajustes-btn:active { background: var(--surface-3, var(--input-bg)); }

/* ---- Kilometros: fila de metricas secundarias (calorias, desnivel,
   FC media, FC max). Todas en "--" real: ninguna de estas cuatro
   metricas tiene logica de calculo real en la app (no hay altimetro
   ni pulsometro conectado), asi que mostrar un numero aqui seria
   inventar un dato -- exactamente lo que el brief pide evitar. ---- */
.km-live-stats-secundarias {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px;
  margin: 0 0 14px; padding-top: 12px; border-top: 1px solid var(--border-soft);
}
.km-live-stat-sec { text-align: center; }
.km-live-stat-sec-icon { font-size: 13px; display: block; margin-bottom: 2px; }
.km-live-stat-sec .val { font-size: 14px; font-weight: 700; color: var(--text-dark); }
.km-live-stat-sec .lbl {
  font-size: 8.5px; color: var(--text-muted); text-transform: uppercase;
  letter-spacing: .3px; margin-top: 1px;
}

/* ---- Kilometros: mini-grafico de barras por dia (L M X J V S D) --
   sustituye los cuadraditos planos por una barra con altura real
   proporcional a los km de ese dia, coronada por la letra. ---- */
#page-kilometros .km-semana-dias { display: flex; gap: 5px; align-items: flex-end; height: 40px; }
#page-kilometros .km-semana-dia-col {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
  gap: 3px; width: 16px; height: 100%;
}
#page-kilometros .km-semana-dia-barra-wrap {
  flex: 1; width: 6px; display: flex; align-items: flex-end; justify-content: center;
}
#page-kilometros .km-semana-dia-barra {
  width: 100%; min-height: 3px; border-radius: 3px; background: var(--surface-3, var(--input-bg));
  transition: height .25s ease;
}
#page-kilometros .km-semana-dia-barra.activo { background: var(--gold); }
#page-kilometros .km-semana-dia {
  width: auto; height: auto; background: none; border-radius: 0;
  color: var(--text-muted); font-size: 9px; font-weight: 700;
}
#page-kilometros .km-semana-dia.activo { color: var(--gold); }

/* ---- Historial (Kilometros y Bienestar): cabecera con "Ver todo" ---- */
.historial-cabecera { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.historial-ver-todo-btn {
  background: none; border: none; color: var(--gold); font-size: 12.5px; font-weight: 700;
  cursor: pointer; padding: 4px 0;
}

/* ---- Bienestar: chips de duracion -- antes reutilizaban .btn-secondary
   generico con un style inline; ahora son un componente propio, mas
   grande y redondeado, coherente con el resto de botones "zen". ---- */
.bienestar-duracion-btn {
  flex: 1; min-width: 90px; padding: 16px 12px; border-radius: 16px;
  background: var(--surface-1, var(--input-bg)); border: 1px solid var(--border-soft);
  color: var(--text-dark); font-size: 14.5px; font-weight: 700; cursor: pointer;
  transition: background .15s ease, border-color .15s ease;
}
.bienestar-duracion-btn:active { background: var(--gold); color: var(--black); border-color: var(--gold); }

/* ============================================================
   RONDA 6 -- Rediseño premium de la pantalla Entreno (page-ejercicios).
   Todo lo de aqui abajo va scopeado a #page-ejercicios (o a clases que
   SOLO existen en esta pantalla, como .entreno-muscle-card o
   .entreno-tool-card-destacada) precisamente porque .entreno-tool-card /
   .entreno-tools son clases COMPARTIDAS con Admin y Workday -- nunca se
   toca la regla base sin scope, solo se añade encima para esta pantalla.
   Mismo lenguaje visual que Kilometros/Bienestar: negro/gris oscuro,
   dorado NF24FIT, bordes redondeados, glow sutil, profundidad.
   ============================================================ */

/* ---- 1) Hero compacto sobre el saludo -- glow muy sutil detras del
   texto ya existente (renderEntrenoGreeting no se toca).
   RONDA 7 -- pulido: menos alto/padding, y una imagen local muy sutil de
   fondo (assets/entreno/hero-entreno.svg) con overlay oscuro fuerte
   encima (el mismo degradado de superficie de siempre, ahora
   semi-transparente para dejar entrever la imagen). El texto sigue
   siendo protagonista y el glow dorado existente se conserva igual. ---- */
.entreno-hero {
  position: relative; overflow: hidden; border-radius: 18px;
  padding: 13px 16px 12px; margin-bottom: 16px;
  background:
    linear-gradient(155deg, rgba(21,21,21,0.90) 0%, rgba(10,10,10,0.95) 100%),
    url("../assets/entreno/hero-entreno.svg");
  background-size: cover; background-position: center 35%;
  border: 1px solid var(--e-border);
}
.entreno-hero::before {
  content: ""; position: absolute; top: -40%; right: -20%; width: 65%; height: 180%;
  background: radial-gradient(circle, rgba(255, 209, 0, 0.16) 0%, rgba(255, 209, 0, 0) 70%);
  pointer-events: none;
}
.entreno-hero .entreno-greeting { position: relative; margin-bottom: 0; }

/* ---- 2) Tarjetas principales (Cronometro/Tabla/Entrenamientos/
   Kilometros/Bienestar) -- SOLO dentro de #page-ejercicios. Cada una
   define su propio --tool-accent (misma familia dorada/ambar/cobre,
   nunca un color fuera de la paleta NF24) usado por el badge del icono
   y un acento lateral fino. ---- */
#page-ejercicios .entreno-tools { gap: 12px; }
#page-ejercicios .entreno-tool-card {
  position: relative; overflow: hidden; border-radius: 18px; padding: 16px 18px;
  background: linear-gradient(155deg, var(--e-surface) 0%, var(--bg) 130%);
  border: 1px solid rgba(255,255,255,0.055);
  box-shadow: 0 10px 22px rgba(0,0,0,0.26);
  transition: transform .12s ease, box-shadow .15s ease;
}
#page-ejercicios .entreno-tool-card::before {
  /* Acento lateral fino -- el "mini acento visual unico por tarjeta". */
  content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 3px;
  border-radius: 3px; background: var(--tool-accent, var(--e-accent));
}
#page-ejercicios .entreno-tool-card::after {
  /* RONDA 7 -- pulido: se reduce la opacidad y el % de mezcla del lavado
     de color de esquina (antes cubria toda la tarjeta y, sumado a los
     tonos khaki/ambar oscuros, se leia "marron sucio"). Ahora es un
     brillo de esquina mas contenido y limpio; la textura de lineas
     sigue igual. Fallback plano antes de color-mix() por si el
     navegador no lo soporta. */
  content: ""; position: absolute; inset: 0; opacity: 0.38; pointer-events: none;
  background: radial-gradient(circle at 100% 0%, rgba(255,209,0,0.08) 0%, transparent 50%), url("../assets/entreno/patron-lineas.svg");
  background:
    radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--tool-accent, var(--e-accent)) 14%, transparent) 0%, transparent 50%),
    url("../assets/entreno/patron-lineas.svg");
  background-size: auto, 64px 64px;
}
#page-ejercicios .entreno-tool-card:active { transform: scale(0.985); }
#page-ejercicios .entreno-tool-icon {
  position: relative; width: 48px; height: 48px; border-radius: 14px;
  background: rgba(255,209,0,0.14);
  background: linear-gradient(155deg, color-mix(in srgb, var(--tool-accent, var(--e-accent)) 22%, transparent) 0%, color-mix(in srgb, var(--tool-accent, var(--e-accent)) 8%, transparent) 100%);
  border: 1px solid rgba(255,209,0,0.3);
  border-color: color-mix(in srgb, var(--tool-accent, var(--e-accent)) 30%, transparent);
}
[data-theme="dark"] #page-ejercicios .entreno-tool-icon { color: var(--tool-accent, var(--e-accent)); }
#page-ejercicios .entreno-tool-icon svg { width: 22px; height: 22px; }
#page-ejercicios .entreno-tool-title { font-size: 15px; }
#page-ejercicios .entreno-tool-arrow { position: relative; }

/* RONDA 7 -- pulido: paleta con mas variedad perceptible entre tarjetas
   (antes las 3 ultimas eran variaciones muy cercanas de ambar/khaki que
   se leian "marron"). Se mantiene la misma familia calida/premium NF24
   (dorado-ambar-cobre-champan), nunca un tono ajeno (azul/verde/rojo). */
#page-ejercicios .entreno-tool-card--cronometro { --tool-accent: #FFD100; }
#page-ejercicios .entreno-tool-card--tabla { --tool-accent: #F5C84C; }
#page-ejercicios .entreno-tool-card--clases { --tool-accent: #FF7A45; }
#page-ejercicios .entreno-tool-card--km { --tool-accent: #E3C88A; }
#page-ejercicios .entreno-tool-card--bienestar { --tool-accent: #C98A4B; }

/* ---- 3) Tarjeta "destacada" de Entrena con Paco Montes -- hero vertical
   cinematografico. CAMBIO PRINCIPAL de la Ronda 7: cada categoria de
   clase destacada usa su propia imagen de fondo local (en vez de la
   misma generica para todas), via el atributo [data-fondo] que pone
   renderEntrenamientosPaco() en js/app.js (normalizarCategoriaReproductor
   ya existente). Fondo por defecto = el generico de siempre, para
   cualquier categoria sin imagen propia todavia. Overlay oscuro mas
   fuerte abajo para que titulo/subtitulo sigan legibles sobre imagenes
   mas cargadas, y borde dorado fino + glow en el boton play. ---- */
#page-ejercicios .entreno-tool-card-destacada {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end;
  gap: 6px; min-height: 168px; padding: 18px; border-radius: 20px;
  background: linear-gradient(180deg, rgba(20,16,12,0.20) 0%, rgba(10,8,6,0.92) 100%), url("../assets/entreno/destacada-generico.svg");
  background-size: cover; background-position: center;
  border: 1px solid rgba(255, 209, 0, 0.32);
  box-shadow: 0 14px 30px rgba(0,0,0,0.34);
}
/* RONDA 9 -- sistema de fondos por FAMILIA visual (hiit / militar /
   fuerza / movilidad / cardio). La regla de arriba (sin atributo) es el
   fallback "generico" para cualquier categoria no reconocida -- nunca
   se queda sin fondo. La familia la decide js/app.js
   (familiaFondoDestacado()) a partir de la categoria real de la clase,
   NUNCA del titulo. Cada imagen vive en su propio archivo
   assets/entreno/destacada-<familia>.svg: para sustituirla en el futuro
   por una foto real basta con reemplazar ese archivo por el mismo
   nombre, sin tocar este CSS ni el JS. */
#page-ejercicios .entreno-tool-card-destacada[data-fondo="hiit"] {
  background: linear-gradient(180deg, rgba(20,16,12,0.16) 0%, rgba(9,7,5,0.94) 100%), url("../assets/entreno/destacada-hiit.svg");
  background-size: cover; background-position: center;
}
#page-ejercicios .entreno-tool-card-destacada[data-fondo="militar"] {
  background: linear-gradient(180deg, rgba(16,13,10,0.18) 0%, rgba(8,6,5,0.95) 100%), url("../assets/entreno/destacada-militar.svg");
  background-size: cover; background-position: center;
}
#page-ejercicios .entreno-tool-card-destacada[data-fondo="fuerza"] {
  background: linear-gradient(180deg, rgba(18,15,11,0.18) 0%, rgba(9,7,5,0.94) 100%), url("../assets/entreno/destacada-fuerza.svg");
  background-size: cover; background-position: center;
}
#page-ejercicios .entreno-tool-card-destacada[data-fondo="movilidad"] {
  background: linear-gradient(180deg, rgba(24,21,16,0.24) 0%, rgba(13,11,9,0.88) 100%), url("../assets/entreno/destacada-movilidad.svg");
  background-size: cover; background-position: center;
}
#page-ejercicios .entreno-tool-card-destacada[data-fondo="cardio"] {
  background: linear-gradient(180deg, rgba(20,15,10,0.18) 0%, rgba(10,7,5,0.94) 100%), url("../assets/entreno/destacada-cardio.svg");
  background-size: cover; background-position: center;
}
#page-ejercicios .entreno-tool-card-destacada::before,
#page-ejercicios .entreno-tool-card-destacada::after { content: none; }
.entreno-tool-badge-destacado {
  display: inline-flex; align-items: center; background: rgba(255, 209, 0, 0.16);
  border: 1px solid rgba(255, 209, 0, 0.4); color: var(--gold, #FFD100);
  font-size: 10px; font-weight: 800; letter-spacing: .4px;
  padding: 5px 10px; border-radius: 20px; margin-bottom: 4px;
}
.entreno-tool-destacada-titulo {
  font-size: 18px; font-weight: 800; color: #fff; line-height: 1.2;
  text-shadow: 0 2px 10px rgba(0,0,0,0.6);
}
.entreno-tool-destacada-sub {
  font-size: 12.5px; color: rgba(255,255,255,0.78); margin-bottom: 4px;
  text-shadow: 0 1px 6px rgba(0,0,0,0.5);
}
.entreno-tool-destacada-play {
  position: absolute; right: 16px; bottom: 16px; width: 46px; height: 46px;
  border-radius: 50%; background: var(--gold, #FFD100); color: #171310;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 18px rgba(255, 209, 0, 0.45), 0 0 0 5px rgba(255, 209, 0, 0.10);
}
.entreno-tool-destacada-play svg { width: 20px; height: 20px; }
@media (min-width: 760px) {
  #page-ejercicios .entreno-tool-card-destacada { min-height: 190px; }
}

/* ---- 4) Grupos musculares -- prioridad alta del rediseño. Icono en
   badge grande, glow de esquina y acento sutil por categoria (misma
   familia dorada, matices distintos via --m-accent), mas contraste
   entre titulo y subtitulo. Sigue en grid de 2 columnas en movil. ---- */
/* RONDA 7 -- pulido: tarjetas mas compactas (menos padding/alto) para
   reducir scroll, mismos iconos/colores, mismo grid de 2 columnas. */
#page-ejercicios .entreno-muscle-grid { gap: 10px; }
#page-ejercicios .entreno-muscle-card {
  position: relative; overflow: hidden; border-radius: 16px; padding: 11px 12px 10px;
  gap: 6px; min-height: 82px;
  background: linear-gradient(155deg, var(--e-surface) 0%, var(--bg) 140%);
  transition: transform .12s ease;
}
/* RONDA 8 -- ajuste fino: se baja ~13% la intensidad del lavado
   marron/sepia de las tarjetas (mix% y opacidad del glow de esquina y
   del fondo del icono), mismo diseño/colores base, solo mas integrado
   con el resto de la app. */
#page-ejercicios .entreno-muscle-card::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.87;
  background: radial-gradient(circle at 100% 100%, rgba(255,209,0,0.09) 0%, transparent 60%);
  background: radial-gradient(circle at 100% 100%, color-mix(in srgb, var(--m-accent, var(--e-accent)) 14%, transparent) 0%, transparent 60%);
}
#page-ejercicios .entreno-muscle-card:active { transform: scale(0.97); }
#page-ejercicios .entreno-muscle-icon {
  position: relative; width: 40px; height: 40px; border-radius: 12px;
  background: rgba(255,209,0,0.14);
  background: linear-gradient(155deg, color-mix(in srgb, var(--m-accent, var(--e-accent)) 21%, transparent) 0%, color-mix(in srgb, var(--m-accent, var(--e-accent)) 7%, transparent) 100%);
  border: 1px solid rgba(255,209,0,0.32);
  border-color: color-mix(in srgb, var(--m-accent, var(--e-accent)) 28%, transparent);
}
[data-theme="dark"] #page-ejercicios .entreno-muscle-icon { color: var(--m-accent, var(--e-accent)); }
#page-ejercicios .entreno-muscle-icon svg { width: 20px; height: 20px; }
#page-ejercicios .entreno-muscle-title { position: relative; font-size: 14.5px; font-weight: 800; }
#page-ejercicios .entreno-muscle-sub { position: relative; color: var(--e-text-muted); opacity: 0.85; }

#page-ejercicios .entreno-muscle-card--pecho { --m-accent: #FFD100; }
#page-ejercicios .entreno-muscle-card--espalda { --m-accent: #FFC247; }
#page-ejercicios .entreno-muscle-card--piernas-gluteos { --m-accent: #FF9D2E; }
#page-ejercicios .entreno-muscle-card--hombro { --m-accent: #E8B84B; }
#page-ejercicios .entreno-muscle-card--biceps { --m-accent: #F2A93C; }
#page-ejercicios .entreno-muscle-card--triceps { --m-accent: #D9A441; }
#page-ejercicios .entreno-muscle-card--abdominales { --m-accent: #C9962C; }
#page-ejercicios .entreno-muscle-card--estiramiento { --m-accent: #F0C86E; }
#page-ejercicios .entreno-muscle-card--cardio { --m-accent: #FF7A45; }

/* ---- 5) Favoritos como accion premium (pill), sin afectar al link
   "Ver todos →" de Entrena con Paco Montes, que comparte la clase base
   .entreno-fav-link pero NO lleva el modificador --pill. ---- */
.entreno-fav-link--pill {
  background: var(--e-surface); border: 1px solid var(--e-border);
  padding: 6px 14px; border-radius: 20px; color: var(--e-text);
  line-height: 1; /* RONDA 7 -- ajuste fino de alineacion vs. "GRUPOS MUSCULARES" */
}
.entreno-fav-link--pill:active { background: rgba(255, 209, 0, 0.14); border-color: rgba(255, 209, 0, 0.4); color: var(--e-accent); }
[data-theme="dark"] .entreno-fav-link--pill svg { color: var(--e-accent); }

@media (min-width: 760px) {
  #page-ejercicios .entreno-tools { flex-direction: row; flex-wrap: wrap; }
  #page-ejercicios .entreno-tool-card:not(.entreno-tool-card-destacada) { flex: 1 1 30%; }
}

/* ============================================================
   RONDA 11 — Rediseño premium completo de Comunidad / NF24 Connect
   (#page-comunidad, #page-perfil-deportivo, #page-buscar-deportistas,
   #page-listado-social), reproduciendo el mockup de referencia con el
   mismo lenguaje visual ya usado en Entreno/Seguimiento/Kilómetros/
   Bienestar: negro/gris carbón, dorado NF24FIT, cards oscuras con
   borde fino, glow sutil, sombras suaves. TODO va scopeado a estos
   IDs (o a IDs propios como #comunidad-tabs/#pd-tabs) precisamente
   porque .seguimiento-tab / .tracker-card / .dash-card / .km-row /
   .btn-secondary / .coach-badge son clases COMPARTIDAS con Seguimiento,
   Dashboard, Kilómetros, Admin y Planes — nunca se toca la regla base
   sin scope, solo se añade encima para estas pantallas. No se toca
   HTML estructural más allá de dos añadidos puramente decorativos
   (iconos del compositor) ni ningún ID/listener/función: seguir,
   dejar de seguir, solicitudes, publicar, borrar, likes, comentarios,
   fotos, galería, compartir y navegación quedan intactos (js/app.js
   no se ha tocado en esta ronda).
   ============================================================ */

/* ---- 10) Campana + modo claro/oscuro: arreglo real del solapamiento.
   Antes: .theme-toggle era position:absolute (anclado al documento,
   se movía con el scroll) con top/right heredados de su declaración
   base (16px/16px, z-index 60); .social-aviso-fab (la campana) era
   position:fixed con top ~14px/right 14px y z-index 160 — es decir,
   los dos controles caían prácticamente en las mismas coordenadas de
   pantalla en cuanto la página estaba arriba del todo, con la campana
   tapando siempre al toggle por su z-index mayor. Solución real (no un
   parche de z-index): ambos pasan a ser position:fixed, con el MISMO
   modelo de posicionamiento, el mismo tamaño, el mismo lenguaje visual
   de "botón de acción de cabecera" y colocados uno junto al otro en
   una franja de acciones a la derecha — nunca las mismas coordenadas.
   Ninguno de los dos cambia de id/onclick/listener. ---- */
.theme-toggle {
  position: fixed;
  top: max(14px, env(safe-area-inset-top));
  right: 62px; /* a la izquierda de la campana (42px + 6px de aire) */
  left: auto;
  z-index: 160;
  width: 42px; height: 42px;
  background: var(--surface-2, var(--bg));
  border: 1px solid var(--border-soft);
  box-shadow: 0 4px 14px rgba(0,0,0,0.25);
}
.social-aviso-fab { top: max(14px, env(safe-area-inset-top)); right: 14px; }
/* En pantallas muy estrechas, si algún día hubiera un tercer control,
   ambos siguen cabiendo con su mismo tamaño — no se reduce su área
   táctil, solo se ajusta el aire disponible del contenido debajo. */

/* ---- 1) Cabecera "NF24 Connect" + selector Inicio/Descubrir/Mi
   perfil: mismas clases .seguimiento-tabs/.seguimiento-tab que
   Seguimiento, pero con SU PROPIO scope por id (#comunidad-tabs) para
   no pisar #page-seguimiento ni #admin-ficha-tabs. ---- */
#comunidad-tabs { margin-bottom: 14px; gap: 8px; }
#comunidad-tabs .seguimiento-tab {
  background: var(--surface-1); border: 1px solid var(--border-soft);
  color: var(--text-muted); border-radius: 13px; padding: 11px 8px;
  font-size: 13px; font-weight: 700; transition: background .15s ease, box-shadow .15s ease, color .15s ease;
}
#comunidad-tabs .seguimiento-tab.active {
  background: linear-gradient(135deg, #FFD100, #ffb700); color: #171310;
  border-color: #FFD100; box-shadow: 0 6px 16px rgba(255, 209, 0, 0.30);
}

/* ---- 3) Compositor "Comparte tu entrenamiento": card premium
   compacta con icono + título + subtítulo + acciones visuales (foto/
   vídeo/+) a la derecha, tal como en el mockup. Mismo botón, mismo
   click → abrirCompositorComunidad, mismo modal de 4 pasos sin tocar. ---- */
#page-comunidad .comunidad-compositor {
  background: var(--surface-2); border: 1px solid rgba(255,209,0,0.22);
  border-top: 2px solid var(--gold); border-radius: 18px; padding: 14px 16px;
}
#page-comunidad .comunidad-compositor-icon {
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 12px; flex-shrink: 0; font-size: 18px;
  background: linear-gradient(155deg, rgba(255,209,0,0.22), rgba(255,209,0,0.05));
  border: 1px solid rgba(255,209,0,0.3);
}
.sr-only-comunidad {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap;
}
.comunidad-compositor-acciones { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.comunidad-compositor-accion-icon {
  display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 9px; font-size: 14px;
  background: var(--surface-1); border: 1px solid var(--border-soft);
}
.comunidad-compositor-accion-plus {
  display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 50%; font-size: 16px; font-weight: 800;
  background: var(--gold); color: #171310; box-shadow: 0 4px 10px rgba(255,209,0,0.4);
}

/* ---- 4) Feed: posts premium — cabecera autor/fecha/badge, cuerpo
   (actividad/texto/foto/video), barra de acciones. Mismas funciones
   (pintarEventosComunidad, toggleComentarios, likes, borrar, share). ---- */
#page-comunidad .comunidad-card {
  background: var(--surface-2); border: 1px solid var(--border-soft);
  border-radius: 18px; box-shadow: var(--shadow-sm);
}
#page-comunidad .comunidad-autor-foto {
  width: 40px; height: 40px; border: 2px solid rgba(255,209,0,0.35);
}
#page-comunidad .comunidad-actividad-card {
  background: var(--surface-1); border: 1px solid var(--border-soft);
  border-radius: 14px; position: relative; padding-right: 34px;
}
#page-comunidad .comunidad-actividad-icono {
  display: flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0;
  background: rgba(255,209,0,0.14); font-size: 20px;
}
#page-comunidad .comunidad-actividad-card::after {
  content: "›"; position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  font-size: 20px; color: var(--gold); font-weight: 700;
}
#page-comunidad .comunidad-actions-bar { padding: 10px 16px 12px; }
#page-comunidad .comunidad-like-btn,
#page-comunidad .comunidad-comment-btn,
#page-comunidad .comunidad-share-btn { font-weight: 700; }
#page-comunidad .comunidad-categoria-badge {
  border: 1px solid rgba(255,209,0,0.3);
}

/* ---- 5) "Buscar deportistas": cabecera + card de búsqueda premium +
   "Personas que quizá conozcas". Mismo #bd-query/#bd-buscar-btn, misma
   RPC buscar_perfiles_deportivos_publicos / descubrir_deportistas. ---- */
#page-buscar-deportistas .tracker-card {
  background: var(--surface-2); border-radius: 18px; box-shadow: var(--shadow-sm);
}
#page-buscar-deportistas #bd-query {
  padding-left: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239a9a9e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: 12px center; background-size: 18px 18px;
}
#page-buscar-deportistas #bd-buscar-btn {
  border-radius: 15px; padding: 15px; box-shadow: 0 8px 20px rgba(255, 209, 0, 0.26);
}
#page-buscar-deportistas #pqc-wrap h2 { font-size: 15px; font-weight: 800; color: var(--text-dark); }
#page-buscar-deportistas .km-row,
#page-listado-social .km-row {
  background: var(--surface-2); border-radius: 16px; padding: 12px 14px;
  box-shadow: var(--shadow-sm);
}
#page-buscar-deportistas .km-row img,
#page-listado-social .km-row img { border: 2px solid rgba(255,209,0,0.25); }
#page-buscar-deportistas .km-row .btn-secondary,
#page-listado-social .km-row .btn-secondary {
  background: linear-gradient(135deg, var(--gold), #ffb700); color: #171310;
  border: none; box-shadow: 0 4px 10px rgba(255,209,0,0.3);
}

/* ---- 6) Perfil deportivo: hero con anillo dorado, stats en mini
   cards, tabs Progreso/Actividades/Fotos/Más, racha con glow cálido,
   gráfica de kilómetros al nivel de Seguimiento, galería de fotos. ---- */
#page-perfil-deportivo .perfil-resumen-header .profile-photo {
  width: 92px; height: 92px; border-width: 3px;
  box-shadow: 0 0 0 4px rgba(255,209,0,0.12);
}
#page-perfil-deportivo #pd-privacidad { margin-top: 4px; }
#page-perfil-deportivo #pd-follow-btn.btn-primary { border-radius: 15px; }
#page-perfil-deportivo .dash-card {
  background: var(--surface-2); border-radius: 16px; padding: 14px 8px;
  box-shadow: var(--shadow-sm); text-align: center;
}
#page-perfil-deportivo .dash-card-title { font-size: 10.5px; }
#page-perfil-deportivo .dash-card-main { font-size: 18px; color: var(--gold); }
#pd-tabs { margin: 4px 0 16px; gap: 8px; }
#pd-tabs .seguimiento-tab {
  background: var(--surface-1); border: 1px solid var(--border-soft);
  color: var(--text-muted); border-radius: 13px; padding: 11px 8px;
  font-size: 12.5px; font-weight: 700;
}
#pd-tabs .seguimiento-tab.active {
  background: linear-gradient(135deg, #FFD100, #ffb700); color: #171310;
  border-color: #FFD100; box-shadow: 0 6px 16px rgba(255, 209, 0, 0.30);
}
#page-perfil-deportivo #pd-tab-progreso .tracker-card:first-child {
  background: linear-gradient(155deg, rgba(255,140,0,0.10), var(--surface-2) 60%);
  border: 1px solid rgba(255,159,10,0.28); border-radius: 18px;
  box-shadow: 0 10px 24px rgba(255,140,0,0.10);
}
#page-perfil-deportivo #pd-racha { color: var(--gold); }
#page-perfil-deportivo #pd-tab-progreso .tracker-card:nth-child(2) {
  background: var(--surface-2); border-radius: 18px; box-shadow: var(--shadow-md);
  border-color: rgba(255,209,0,0.14);
}
#page-perfil-deportivo .pd-galeria-foto { border: 1px solid var(--border-soft); }

@media (min-width: 600px) {
  .theme-toggle, .social-aviso-fab { width: 44px; height: 44px; }
  .theme-toggle { right: 66px; }
}

/* ============================================================
   RONDA 12 — "Análisis NF24" (#page-seguimiento → Mi evolución)
   Reutiliza --sg-accent/--sg-accent-ink ya definidos en #page-seguimiento
   (RONDA 10) y los tokens globales (--surface-*, --border-soft,
   --shadow-*, --gold, --gold-glow) — nunca un amarillo nuevo. Los tres
   bloques nuevos (#analisis-nf24-card, .rango-grasa-card,
   #apoyo-recomendado-card) van scopeados a #page-seguimiento; sus
   clases internas (.nf24-*, .grasa-*, .apoyo-producto-*) son exclusivas
   de esta pantalla y no existen en ninguna otra, así que no hace falta
   repetir el prefijo #page-seguimiento en cada una — de todas formas se
   listan aquí bajo ese scope para que quede explícito que solo viven
   dentro de Seguimiento.
   ============================================================ */

/* ---- 1) Card "🧠 Análisis NF24" ---- */
#page-seguimiento .nf24-analisis-card {
  background: var(--surface-2); border: 1px solid rgba(255,209,0,0.22);
  border-radius: 18px; box-shadow: var(--shadow-md); padding: 16px;
}
#page-seguimiento .nf24-analisis-header {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px;
}
#page-seguimiento .nf24-analisis-badge {
  font-size: 10.5px; font-weight: 800; color: var(--sg-accent-ink);
  background: linear-gradient(135deg, var(--sg-accent), #ffb700);
  border-radius: 20px; padding: 4px 10px; white-space: nowrap; flex-shrink: 0;
  box-shadow: 0 3px 10px rgba(255,209,0,0.28);
}
#page-seguimiento .nf24-analisis-row {
  display: flex; align-items: flex-start; gap: 11px; padding: 11px 0;
  border-top: 1px solid var(--border-soft);
}
#page-seguimiento .nf24-analisis-row:first-of-type { border-top: none; padding-top: 2px; }
#page-seguimiento .nf24-analisis-icon {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 32px; height: 32px; border-radius: 10px; font-size: 15px;
  background: rgba(255,209,0,0.12); border: 1px solid rgba(255,209,0,0.28);
}
#page-seguimiento .nf24-icon-cambio { color: #4ade80; background: rgba(74,222,128,0.12); border-color: rgba(74,222,128,0.3); }
#page-seguimiento .nf24-analisis-row-body { flex: 1; min-width: 0; }
#page-seguimiento .nf24-analisis-row-title {
  display: block; font-size: 12px; font-weight: 800; color: var(--text-muted);
  text-transform: uppercase; letter-spacing: 0.3px; margin-bottom: 3px;
}
#page-seguimiento .nf24-analisis-row-texto {
  display: block; font-size: 13.5px; line-height: 1.5; color: var(--text-dark);
}

/* ---- 2) Card "📊 Rango visual de grasa corporal" ---- */
#page-seguimiento .rango-grasa-card {
  background: var(--surface-2); border: 1px solid var(--border-soft);
  border-radius: 18px; box-shadow: var(--shadow-sm); padding: 16px;
}
#page-seguimiento .rango-grasa-header {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px;
}
#page-seguimiento .rango-grasa-orientativo {
  font-size: 10.5px; font-weight: 700; color: var(--text-muted);
  background: var(--surface-1); border: 1px solid var(--border-soft);
  border-radius: 20px; padding: 3px 9px; white-space: nowrap; flex-shrink: 0; cursor: help;
}
#page-seguimiento .grasa-fila { margin-bottom: 14px; }
#page-seguimiento .grasa-fila:last-child { margin-bottom: 0; }
#page-seguimiento .grasa-fila-titulo {
  font-size: 11px; font-weight: 800; letter-spacing: 0.6px; color: var(--text-muted); margin: 0 0 8px;
}
#page-seguimiento .grasa-fila-scroll {
  display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch;
}
#page-seguimiento .grasa-item {
  position: relative; flex-shrink: 0; width: 58px; display: flex; flex-direction: column;
  align-items: center; gap: 4px; padding: 8px 4px 6px; border-radius: 12px;
  background: var(--surface-1); border: 1px solid var(--border-soft);
}
#page-seguimiento .grasa-item img { width: 40px; height: auto; display: block; }
#page-seguimiento .grasa-item-pct { font-size: 10px; font-weight: 700; color: var(--text-muted); white-space: nowrap; }
#page-seguimiento .grasa-item.activo {
  border-color: var(--sg-accent); box-shadow: 0 0 0 2px rgba(255,209,0,0.18), 0 8px 18px rgba(255,209,0,0.18);
  background: linear-gradient(180deg, rgba(255,209,0,0.10), var(--surface-1) 70%);
}
#page-seguimiento .grasa-item.activo .grasa-item-pct { color: var(--sg-accent-ink, var(--text-dark)); font-weight: 800; }
#page-seguimiento .grasa-item-tu-rango {
  position: absolute; top: -9px; left: 50%; transform: translateX(-50%);
  font-size: 8px; font-weight: 800; color: var(--sg-accent-ink);
  background: linear-gradient(135deg, var(--sg-accent), #ffb700);
  border-radius: 20px; padding: 2px 6px; white-space: nowrap;
  box-shadow: 0 2px 8px rgba(255,209,0,0.35);
}
#page-seguimiento .rango-grasa-disclaimer {
  font-size: 10.5px; color: var(--text-muted); line-height: 1.5; margin: 12px 0 0;
}

/* ---- 3) Card "🌿 Apoyo recomendado" (condicional) ---- */
#page-seguimiento .apoyo-recomendado-card {
  background: var(--surface-2); border: 1px solid rgba(120,200,140,0.22);
  border-radius: 18px; box-shadow: var(--shadow-sm); padding: 16px;
}
#page-seguimiento .apoyo-recomendado-header {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px;
}
#page-seguimiento .apoyo-recomendado-ver-link {
  background: none; border: none; color: var(--sg-accent); font-size: 12.5px;
  font-weight: 700; cursor: pointer; font-family: inherit; padding: 0; white-space: nowrap; flex-shrink: 0;
}
#page-seguimiento .apoyo-recomendado-texto {
  font-size: 13px; line-height: 1.5; color: var(--text-dark); margin: 0 0 12px;
}
#page-seguimiento .apoyo-recomendado-productos { display: flex; gap: 10px; flex-wrap: wrap; }
#page-seguimiento .apoyo-producto-item {
  display: flex; align-items: center; gap: 9px; background: var(--surface-1);
  border: 1px solid var(--border-soft); border-radius: 13px; padding: 8px 10px; flex: 1; min-width: 160px;
}
#page-seguimiento .apoyo-producto-media {
  width: 34px; height: 34px; border-radius: 9px; overflow: hidden; flex-shrink: 0;
  background: rgba(255,209,0,0.08); display: flex; align-items: center; justify-content: center; font-size: 16px;
}
#page-seguimiento .apoyo-producto-media img { width: 100%; height: 100%; object-fit: contain; }
#page-seguimiento .apoyo-producto-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
#page-seguimiento .apoyo-producto-nombre {
  font-size: 12px; font-weight: 700; color: var(--text-dark); white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; max-width: 140px;
}
#page-seguimiento .apoyo-producto-ver {
  background: none; border: none; color: var(--sg-accent); font-size: 11.5px;
  font-weight: 700; cursor: pointer; font-family: inherit; padding: 0; text-align: left;
}

@media (min-width: 600px) {
  #page-seguimiento .grasa-item { width: 66px; }
  #page-seguimiento .grasa-item img { width: 46px; }
}

/* ============================================================
   RONDA 13 — Mi evolución: rango visual de grasa premium + apoyo
   recomendado dinámico. TODO scopeado a #page-seguimiento; solo se
   añade encima de RONDA 12 (no se toca ninguna regla base compartida).
   ============================================================ */

/* ---- Rango visual de grasa corporal ---- */
#page-seguimiento .grasa-resumen {
  display: flex; align-items: center; gap: 8px;
  font-size: 12px; line-height: 1.4; color: var(--text-dark);
  background: rgba(255,209,0,0.07); border: 1px solid rgba(255,209,0,0.24);
  border-radius: 12px; padding: 8px 11px; margin: 0 0 12px;
}
#page-seguimiento .grasa-resumen b { font-weight: 800; }
#page-seguimiento .grasa-resumen-dot {
  width: 7px; height: 7px; border-radius: 50%; background: var(--sg-accent);
  box-shadow: 0 0 0 3px rgba(255,209,0,0.18); flex-shrink: 0;
}
#page-seguimiento .grasa-fila-scroll {
  gap: 10px; padding: 12px 2px 8px; scroll-snap-type: x proximity; scrollbar-width: none;
}
#page-seguimiento .grasa-fila-scroll::-webkit-scrollbar { display: none; }
#page-seguimiento .grasa-item {
  width: 76px; padding: 5px 5px 8px; gap: 3px; border-radius: 15px; scroll-snap-align: center;
  background: var(--surface-1); border: 1px solid var(--border-soft);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
#page-seguimiento .grasa-item img {
  width: 64px; height: auto; aspect-ratio: 100 / 190; border-radius: 11px; display: block;
  transition: opacity .2s ease;
}
#page-seguimiento .grasa-fila-scroll:has(.grasa-item.activo) .grasa-item:not(.activo) img { opacity: 0.72; }
#page-seguimiento .grasa-item-pct { font-size: 11.5px; font-weight: 800; color: var(--text-dark); margin-top: 3px; }
#page-seguimiento .grasa-item-hint {
  font-size: 9.5px; font-weight: 600; color: var(--text-muted); white-space: nowrap; line-height: 1.2;
}
#page-seguimiento .grasa-item.activo {
  border-color: var(--sg-accent); transform: translateY(-2px);
  background: linear-gradient(180deg, rgba(255,209,0,0.14), var(--surface-1) 75%);
  box-shadow: 0 0 0 1px rgba(255,209,0,0.55), 0 10px 26px rgba(255,209,0,0.22);
}
#page-seguimiento .grasa-item.activo img { box-shadow: 0 0 16px rgba(255,209,0,0.28); }
#page-seguimiento .grasa-item.activo .grasa-item-pct { color: var(--sg-accent); }
#page-seguimiento .grasa-item.activo .grasa-item-hint { color: var(--text-dark); }
#page-seguimiento .grasa-item-tu-rango { top: -10px; font-size: 8.5px; padding: 2px 7px; z-index: 1; }

@media (min-width: 600px) {
  #page-seguimiento .grasa-item { width: 86px; }
  #page-seguimiento .grasa-item img { width: 74px; }
}

/* ---- Apoyo recomendado (dinámico) ---- */
#page-seguimiento .apoyo-recomendado-card {
  position: relative; overflow: hidden;
  border: 1px solid rgba(255,209,0,0.24);
  box-shadow: var(--shadow-md), 0 0 28px rgba(255,209,0,0.07);
}
#page-seguimiento .apoyo-recomendado-card::before {
  content: ""; position: absolute; top: -60px; right: -60px; width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(255,209,0,0.13), rgba(255,209,0,0) 70%);
  pointer-events: none;
}
#page-seguimiento .apoyo-recomendado-card > * { position: relative; }
#page-seguimiento .apoyo-recomendado-header { margin-bottom: 10px; gap: 6px; flex-wrap: wrap; }
#page-seguimiento .apoyo-recomendado-ver-link { font-size: 11px; margin-left: auto; }
#page-seguimiento .apoyo-recomendado-titulo { display: flex; align-items: center; gap: 9px; white-space: nowrap; font-size: 15px; min-width: 0; gap: 7px; }
#page-seguimiento .apoyo-recomendado-icono {
  display: inline-flex; align-items: center; justify-content: center; width: 27px; height: 27px;
  border-radius: 9px; font-size: 14px; flex-shrink: 0;
  background: rgba(120,200,140,0.12); border: 1px solid rgba(120,200,140,0.3);
}
#page-seguimiento .apoyo-recomendado-texto { font-size: 13.5px; margin-bottom: 14px; }
#page-seguimiento .apoyo-recomendado-productos {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
#page-seguimiento .apoyo-recomendado-productos.tres .apoyo-producto-item.principal { grid-column: 1 / -1; }
/* Tarjetas en columna (imagen arriba, texto debajo) salvo la principal
   cuando ocupa todo el ancho (caso de 3 productos). */
#page-seguimiento .apoyo-recomendado-productos .apoyo-producto-item { flex-direction: column; align-items: flex-start; }
#page-seguimiento .apoyo-recomendado-productos.tres .apoyo-producto-item.principal { flex-direction: row; align-items: center; }
#page-seguimiento .apoyo-producto-item {
  min-width: 0; gap: 10px; padding: 10px; border-radius: 14px; cursor: pointer;
  background: var(--surface-1); border: 1px solid var(--border-soft);
  transition: border-color .2s ease, transform .15s ease, box-shadow .2s ease;
  -webkit-tap-highlight-color: transparent;
}
#page-seguimiento .apoyo-producto-item:active { transform: scale(0.98); }
#page-seguimiento .apoyo-producto-item:focus-visible { outline: 2px solid var(--sg-accent); outline-offset: 2px; }
#page-seguimiento .apoyo-producto-item.principal {
  border-color: rgba(255,209,0,0.5);
  background: linear-gradient(135deg, rgba(255,209,0,0.10), var(--surface-1) 65%);
  box-shadow: 0 6px 18px rgba(255,209,0,0.10);
}
#page-seguimiento .apoyo-producto-media {
  width: 52px; height: 52px; border-radius: 12px; font-size: 20px;
  background: radial-gradient(circle at 50% 40%, rgba(255,255,255,0.16), rgba(255,255,255,0.03) 70%);
  border: 1px solid var(--border-soft);
}
#page-seguimiento .apoyo-producto-item.principal .apoyo-producto-media { width: 64px; height: 64px; }
#page-seguimiento .apoyo-producto-media img { padding: 3px; }
#page-seguimiento .apoyo-producto-info { gap: 1px; flex: 1; }
#page-seguimiento .apoyo-producto-tag {
  align-self: flex-start; font-size: 8.5px; font-weight: 800; letter-spacing: 0.5px; text-transform: uppercase;
  color: var(--sg-accent-ink); background: linear-gradient(135deg, var(--sg-accent), #ffb700);
  border-radius: 20px; padding: 2px 7px; margin-bottom: 3px;
}
#page-seguimiento .apoyo-producto-nombre {
  font-size: 13px; font-weight: 800; max-width: none; white-space: normal; line-height: 1.25;
}
#page-seguimiento .apoyo-producto-rol { font-size: 11px; color: var(--text-muted); line-height: 1.3; }
#page-seguimiento .apoyo-producto-ver {
  margin-top: 3px; color: var(--sg-accent); font-size: 11.5px; font-weight: 700; white-space: nowrap;
}
#page-seguimiento .apoyo-recomendado-nota {
  font-size: 10.5px; color: var(--text-muted); line-height: 1.45; margin: 12px 0 0;
}
@media (max-width: 359px) {
  #page-seguimiento .apoyo-recomendado-productos { grid-template-columns: 1fr; }
}

/* ---- "Complementa tu nutrición": se oculta SOLO en la pestaña
   "Mi evolución" cuando ya hay un apoyo personalizado visible (evita
   mensaje duplicado). En "Registrar" y cuando no hay apoyo, sigue igual. ---- */
#page-seguimiento.nf24-apoyo-activo #seguimiento-tab-registrar.hidden ~ #supplement-promo { display: none; }

/* ---- Tema claro: el dorado puro (#FFD100) apenas contrasta sobre blanco;
   solo en estos textos nuevos se usa un dorado más profundo. ---- */
[data-theme="light"] #page-seguimiento .grasa-item.activo .grasa-item-pct,
[data-theme="light"] #page-seguimiento .apoyo-producto-ver,
[data-theme="light"] #page-seguimiento .apoyo-recomendado-ver-link { color: #a87f00; }
[data-theme="light"] #page-seguimiento .grasa-item { border-color: rgba(0,0,0,0.07); }
[data-theme="light"] #page-seguimiento .apoyo-producto-item { border-color: rgba(0,0,0,0.08); }
[data-theme="light"] #page-seguimiento .apoyo-producto-item.principal { border-color: rgba(214,166,0,0.55); }

/* ============================================================
   RONDA 14 — Planes de Alimentación (rediseño según mockup)
   Todo scopeado a #page-planes con clases pl-* nuevas. Reutiliza los
   tokens globales (--surface-*, --border-soft, --text-*, --shadow-*) y el
   mismo dorado que Entreno/Seguimiento. No toca reglas compartidas.
   ============================================================ */
#page-planes {
  --pl-gold: #FFD100;
  --pl-gold-ink: #171310;
  --pl-gold-border: rgba(255,209,0,0.55);
  --pl-card-bg: var(--surface-2);
  --pl-inner-bg: var(--surface-1);
}
#page-planes .pl-card {
  background: var(--pl-card-bg); border: 1px solid var(--border-soft);
  border-radius: 20px; box-shadow: var(--shadow-md); padding: 16px; margin-bottom: 14px;
}
#page-planes .pl-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
#page-planes .pl-card-title { margin: 0; font-size: 17px; font-weight: 800; color: var(--text-dark); letter-spacing: -0.2px; }
#page-planes .pl-link {
  background: none; border: none; padding: 0; font-family: inherit; cursor: pointer;
  color: var(--pl-gold); font-size: 12.5px; font-weight: 700; white-space: nowrap;
}
#page-planes .pl-chev { font-size: 18px; line-height: 1; margin-left: 2px; }
#page-planes .pl-muted { color: var(--text-muted); font-weight: 600; }
#page-planes .pl-sep { opacity: .7; margin: 0 2px; }
#page-planes .pl-flash { animation: plFlash 1.2s ease; }
@keyframes plFlash { 0%, 100% { box-shadow: var(--shadow-md); } 30% { box-shadow: 0 0 0 2px var(--pl-gold), 0 0 26px rgba(255,209,0,0.35); } }

/* ---- Objetivo diario / Qué te queda ---- */
#page-planes .pl-objetivo-card,
#page-planes .pl-queda-card {
  display: flex; align-items: center; gap: 12px; border: 1.5px solid var(--pl-gold-border);
  box-shadow: var(--shadow-md), 0 0 22px rgba(255,209,0,0.06);
}
#page-planes .pl-objetivo-icono {
  width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  font-size: 21px; background: radial-gradient(circle at 40% 35%, rgba(255,255,255,0.10), rgba(255,255,255,0.02) 70%);
  border: 1px solid var(--border-soft);
}
#page-planes .pl-objetivo-info, #page-planes .pl-queda-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
#page-planes .pl-objetivo-titulo, #page-planes .pl-queda-titulo { font-size: 13.5px; font-weight: 800; color: var(--text-dark); line-height: 1.25; }
#page-planes .pl-objetivo-valor { font-size: 13.5px; font-weight: 800; color: var(--pl-gold); line-height: 1.3; }
#page-planes .pl-nowrap { white-space: nowrap; }
#page-planes .pl-queda-texto { font-size: 12px; color: var(--text-dark); line-height: 1.4; }
#page-planes .pl-queda-texto b { color: var(--pl-gold); font-weight: 800; }
#page-planes .pl-pill-btn {
  display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; cursor: pointer; font-family: inherit;
  background: rgba(255,209,0,0.06); border: 1px solid var(--pl-gold-border); color: var(--pl-gold);
  font-size: 11.5px; font-weight: 800; padding: 7px 10px; border-radius: 999px; white-space: nowrap;
}
#page-planes .pl-pill-btn svg { width: 13px; height: 13px; }
#page-planes .pl-cta-btn {
  flex-shrink: 0; cursor: pointer; font-family: inherit; border: none; white-space: nowrap;
  background: linear-gradient(135deg, var(--pl-gold), #ffb700); color: var(--pl-gold-ink);
  font-size: 11.5px; font-weight: 800; padding: 9px 11px; border-radius: 999px;
  box-shadow: 0 6px 16px rgba(255,209,0,0.28);
}

/* ---- Calculadora (bloque existente, solo coherencia visual) ---- */
#page-planes .pl-calc-card { border-radius: 20px; margin-top: 0; }

/* ---- Tu nutrición de hoy ---- */
#page-planes .pl-nutricion-card { border: 1.5px solid var(--pl-gold-border); }
#page-planes .pl-nutricion-body { display: flex; align-items: center; gap: 16px; }
#page-planes .pl-donut { position: relative; width: 132px; height: 132px; flex-shrink: 0; }
#page-planes .pl-donut svg { width: 100%; height: 100%; transform: rotate(-90deg); }
#page-planes .pl-donut-track { fill: none; stroke: rgba(128,128,128,0.22); stroke-width: 11; }
#page-planes .pl-donut-fill {
  fill: none; stroke: var(--pl-gold); stroke-width: 11; stroke-linecap: round;
  filter: drop-shadow(0 0 5px rgba(255,209,0,0.45)); transition: stroke-dasharray .6s ease;
}
#page-planes .pl-donut.over .pl-donut-fill { stroke: #ff9f43; filter: drop-shadow(0 0 5px rgba(255,159,67,0.45)); }
#page-planes .pl-donut-center {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
}
#page-planes .pl-donut-fuego { font-size: 15px; line-height: 1; }
#page-planes .pl-donut-kcal { font-size: 27px; font-weight: 900; color: var(--pl-gold); line-height: 1.1; letter-spacing: -0.5px; }
#page-planes .pl-donut-obj { font-size: 11px; color: var(--text-dark); opacity: .85; }
#page-planes .pl-donut-pct { font-size: 11.5px; font-weight: 800; color: var(--text-muted); margin-top: 2px; }
#page-planes .pl-macros { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
#page-planes .pl-macro { display: flex; align-items: center; gap: 10px; }
#page-planes .pl-macro-icono { font-size: 20px; width: 26px; text-align: center; flex-shrink: 0; }
#page-planes .pl-macro-body { flex: 1; min-width: 0; position: relative; }
#page-planes .pl-macro-top { display: flex; justify-content: space-between; gap: 6px; font-size: 12.5px; margin-bottom: 6px; }
#page-planes .pl-macro-nombre { font-weight: 800; color: var(--text-dark); }
#page-planes .pl-macro-valor { color: var(--text-dark); white-space: nowrap; }
#page-planes .pl-macro-valor b { font-weight: 800; }
#page-planes .pl-macro-bar { height: 8px; border-radius: 99px; background: rgba(128,128,128,0.22); overflow: hidden; margin-right: 34px; }
#page-planes .pl-macro-bar span { display: block; height: 100%; border-radius: 99px; background: #4ade80; transition: width .6s ease; }
#page-planes .pl-macro.carbos .pl-macro-bar span { background: var(--pl-gold); }
#page-planes .pl-macro.grasas .pl-macro-bar span { background: #3b9dff; }
#page-planes .pl-macro-pct { position: absolute; right: 0; bottom: -3px; font-size: 10.5px; color: var(--text-muted); }
#page-planes .pl-macro-sinobj { font-size: 11px; color: var(--text-muted); }
#page-planes .pl-mini-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
#page-planes .pl-mini-stat {
  background: var(--pl-inner-bg); border: 1px solid var(--border-soft); border-radius: 12px;
  padding: 7px 4px; text-align: center; display: flex; flex-direction: column; gap: 1px; min-width: 0;
}
#page-planes .pl-mini-val { font-size: 14px; font-weight: 900; color: var(--text-dark); line-height: 1.2; }
#page-planes .pl-mini-val small { font-size: 10px; font-weight: 700; }
#page-planes .pl-mini-lbl { font-size: 9.5px; color: var(--text-muted); line-height: 1.2; }
#page-planes .pl-macro-nota { font-size: 10.5px; color: var(--text-muted); margin: -2px 0 0; line-height: 1.4; }
@media (max-width: 370px) {
  #page-planes .pl-nutricion-body { flex-direction: column; align-items: stretch; }
  #page-planes .pl-donut { margin: 0 auto; }
}

/* ---- Tabs Recientes / Favoritos / Frecuentes ---- */
#page-planes .pl-tabs { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 8px; margin: 4px 0 10px; }
#page-planes .pl-tab {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px; cursor: pointer; font-family: inherit;
  padding: 10px 8px; border-radius: 999px; font-size: 13px; font-weight: 700; white-space: nowrap;
  background: var(--pl-card-bg); color: var(--text-dark); border: 1px solid var(--border-soft);
}
#page-planes .pl-tab svg { width: 17px; height: 17px; flex-shrink: 0; opacity: .85; }
#page-planes .pl-tab.active {
  color: var(--pl-gold); border-color: var(--pl-gold-border);
  background: linear-gradient(180deg, rgba(255,209,0,0.14), rgba(255,209,0,0.05));
  box-shadow: 0 0 16px rgba(255,209,0,0.15);
}
#page-planes .pl-rapidos { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 12px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
#page-planes .pl-rapidos::-webkit-scrollbar { display: none; }
#page-planes .pl-rapidos-vacio { font-size: 12px; color: var(--text-muted); margin: 0; padding: 4px 2px 2px; }
#page-planes .pl-rapido {
  flex-shrink: 0; display: flex; align-items: stretch; max-width: 220px;
  background: var(--pl-card-bg); border: 1px solid var(--border-soft); border-radius: 14px; overflow: hidden;
}
#page-planes .pl-rapido-add {
  display: flex; flex-direction: column; align-items: flex-start; gap: 1px; min-width: 0; cursor: pointer; font-family: inherit;
  background: none; border: none; padding: 8px 6px 8px 12px; text-align: left; color: var(--text-dark);
}
#page-planes .pl-rapido-nombre { font-size: 12.5px; font-weight: 700; max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#page-planes .pl-rapido-kcal { font-size: 11px; color: var(--pl-gold); font-weight: 700; }
#page-planes .pl-rapido-fav {
  background: none; border: none; border-left: 1px solid var(--border-soft); cursor: pointer;
  color: var(--text-muted); font-size: 16px; padding: 0 10px;
}
#page-planes .pl-rapido-fav.on { color: var(--pl-gold); }

/* ---- Mis comidas de hoy ---- */
#page-planes .pl-comidas-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
#page-planes .pl-comidas-card { padding: 14px 10px 10px; }
#page-planes .pl-comidas-card .pl-card-head { padding: 0 6px; }
#page-planes .pl-comida {
  display: grid; grid-template-columns: 50px 1fr; grid-template-areas: "img info" "desc desc" "btn btn";
  column-gap: 8px; row-gap: 6px; padding: 8px; border-radius: 16px; min-width: 0;
  background: var(--pl-inner-bg); border: 1px solid var(--border-soft);
}
#page-planes .pl-comida-img { grid-area: img; }
#page-planes .pl-comida-img img { width: 50px; height: 50px; object-fit: cover; border-radius: 12px; display: block; }
#page-planes .pl-comida.pendiente .pl-comida-img img { opacity: .6; filter: saturate(.7); }
#page-planes .pl-comida-info { display: contents; }
#page-planes .pl-comida-cab { grid-area: info; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 3px; }
#page-planes .pl-comida-tipo { display: flex; align-items: center; gap: 4px; white-space: nowrap; font-size: 12px; font-weight: 800; color: var(--text-dark); }
#page-planes .pl-comida-tipo svg { width: 14px; height: 14px; flex-shrink: 0; }
#page-planes .pl-comida-kcal { font-size: 16px; font-weight: 900; color: var(--pl-gold); line-height: 1.15; white-space: nowrap; }
#page-planes .pl-comida.pendiente .pl-comida-kcal { color: var(--text-muted); font-size: 15px; }
#page-planes .pl-comida-desc {
  grid-area: desc; font-size: 11px; color: var(--text-muted); line-height: 1.3; min-height: 2.6em;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
#page-planes .pl-comida .pl-add-btn { grid-area: btn; }
#page-planes .pl-add-btn {
  margin-top: auto; align-self: stretch; display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  cursor: pointer; font-family: inherit; font-size: 12px; font-weight: 800; padding: 7px 8px; border-radius: 999px;
  background: rgba(255,209,0,0.06); border: 1px solid var(--pl-gold-border); color: var(--pl-gold); white-space: nowrap;
}
#page-planes .pl-add-btn span { font-size: 15px; line-height: 1; }
@media (max-width: 370px) {
  #page-planes .pl-comidas-grid { grid-template-columns: 1fr; }
}

/* ---- Sugerencias ---- */
#page-planes .pl-sugerencias { border: 1px solid var(--pl-gold-border); }
#page-planes .pl-sug-cerrar { background: none; border: none; color: var(--text-muted); font-size: 15px; cursor: pointer; padding: 2px 4px; }
#page-planes .pl-sug-sub { font-size: 12px; color: var(--text-muted); margin: -6px 0 10px; line-height: 1.4; }
#page-planes .pl-sug-vacio { font-size: 12.5px; color: var(--text-dark); line-height: 1.45; margin: 0; }
#page-planes .pl-sug-item {
  display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--border-soft);
}
#page-planes .pl-sug-item:first-of-type { border-top: none; }
#page-planes .pl-sug-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
#page-planes .pl-sug-nombre { font-size: 13px; font-weight: 800; color: var(--text-dark); line-height: 1.3; }
#page-planes .pl-sug-ing { font-size: 11px; color: var(--text-muted); line-height: 1.3; }
#page-planes .pl-sug-der { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex-shrink: 0; }
#page-planes .pl-sug-kcal { font-size: 13px; font-weight: 900; color: var(--pl-gold); }
#page-planes .pl-sug-der .pl-add-btn { padding: 6px 12px; }

/* ---- Añadir alimento (bloque existente) ---- */
#page-planes .pl-anadir-card { border-radius: 20px; }
#page-planes .pl-anadir-card .section-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
#page-planes .pl-anadir-meal {
  font-size: 11px; font-weight: 800; color: var(--pl-gold-ink); padding: 3px 9px; border-radius: 999px;
  background: linear-gradient(135deg, var(--pl-gold), #ffb700);
}
#page-planes .pl-food-total-legacy { display: none !important; }
#page-planes .pl-registro-label { font-size: 12px; font-weight: 800; color: var(--text-muted); letter-spacing: .3px; text-transform: uppercase; margin: 16px 0 6px; }
#page-planes .pl-registro-label:has(+ #food-list:empty) { display: none; }

/* ---- Herramientas ---- */
#page-planes .pl-herramientas-label { margin: 6px 0 10px; font-size: 15px; font-weight: 800; color: var(--text-muted); }
#page-planes .pl-herramientas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 16px; }
#page-planes .pl-tool-card {
  display: flex; flex-direction: column; align-items: stretch; gap: 8px; text-align: left; cursor: pointer; font-family: inherit;
  background: var(--pl-card-bg); border: 1px solid var(--border-soft); border-radius: 16px; padding: 12px 10px;
  color: var(--text-dark); box-shadow: var(--shadow-sm); min-width: 0; margin: 0; width: auto;
}
#page-planes .pl-tool-card.pl-tool-destacada { border: 1.5px solid var(--pl-gold-border); }
#page-planes .pl-tool-head { display: flex; align-items: flex-start; gap: 7px; }
#page-planes .pl-tool-icono { font-size: 19px; line-height: 1.1; flex-shrink: 0; }
#page-planes .pl-tool-titulo { flex: 1; min-width: 0; font-size: 12px; font-weight: 800; line-height: 1.3; color: var(--text-dark); }
#page-planes .pl-tool-titulo b { font-weight: 800; }
#page-planes .pl-tool-head .pl-chev { color: var(--pl-gold); }
#page-planes .pl-tool-sub { font-size: 11px; color: var(--text-muted); line-height: 1.35; }
@media (max-width: 380px) {
  #page-planes .pl-herramientas { grid-template-columns: 1fr; }
}

/* ---- Tema claro: dorado más profundo en textos sobre blanco ---- */
[data-theme="light"] #page-planes .pl-objetivo-valor,
[data-theme="light"] #page-planes .pl-donut-kcal,
[data-theme="light"] #page-planes .pl-comida-kcal,
[data-theme="light"] #page-planes .pl-queda-texto b,
[data-theme="light"] #page-planes .pl-link,
[data-theme="light"] #page-planes .pl-pill-btn,
[data-theme="light"] #page-planes .pl-add-btn,
[data-theme="light"] #page-planes .pl-tab.active,
[data-theme="light"] #page-planes .pl-rapido-kcal,
[data-theme="light"] #page-planes .pl-sug-kcal,
[data-theme="light"] #page-planes .pl-tool-head .pl-chev { color: #a87f00; }
[data-theme="light"] #page-planes .pl-donut-fill { stroke: #f2c200; }

/* ---- Impresión: las tarjetas nuevas viven dentro de .no-print ---- */
@media print { #page-planes .pl-card, #page-planes .pl-tabs, #page-planes .pl-rapidos, #page-planes .pl-herramientas { display: none !important; } }
@media (max-width: 440px) {
  #page-planes .pl-queda-card { flex-wrap: wrap; row-gap: 10px; }
  #page-planes .pl-queda-card .pl-queda-info { flex: 1 1 calc(100% - 56px); }
  #page-planes .pl-queda-card .pl-queda-titulo { white-space: nowrap; }
  #page-planes .pl-queda-card .pl-cta-btn { margin-left: 54px; }
}
#page-planes .pl-tool-card { position: relative; padding: 12px 10px 12px 11px; gap: 6px; }
#page-planes .pl-tool-head { flex-direction: column; align-items: flex-start; gap: 6px; padding-right: 10px; }
#page-planes .pl-tool-head .pl-chev { position: absolute; top: 10px; right: 9px; }
#page-planes .pl-tool-titulo { font-size: 11.5px; hyphens: auto; -webkit-hyphens: auto; overflow-wrap: anywhere; }
#page-planes .pl-tool-sub {
  font-size: 10.5px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
#page-planes .pl-tool-head { padding-right: 0; }
#page-planes .pl-tool-titulo { font-size: 11px; overflow-wrap: normal; hyphens: manual; -webkit-hyphens: manual; letter-spacing: -0.1px; }
#page-planes .pl-herramientas-label { text-transform: none; letter-spacing: 0; }
#page-planes .pl-objetivo-titulo { white-space: nowrap; }

/* ============================================================
   RONDA 15 — Planes: comida activa, repetir / habitual, sugerencias,
   apoyo opcional y "Resumen de hoy". Solo elementos nuevos, mismo estilo.
   ============================================================ */
#page-planes .pl-comida { position: relative; transition: border-color .2s ease, box-shadow .2s ease; }
#page-planes .pl-comida.activa {
  border-color: var(--pl-gold); background: linear-gradient(180deg, rgba(255,209,0,0.10), var(--pl-inner-bg) 70%);
  box-shadow: 0 0 0 1px rgba(255,209,0,0.55), 0 8px 22px rgba(255,209,0,0.20);
}
#page-planes .pl-activa-badge {
  position: absolute; top: -9px; left: 50%; transform: translateX(-50%); z-index: 2; white-space: nowrap;
  display: inline-flex; align-items: center; gap: 5px; cursor: pointer; font-family: inherit; border: none;
  font-size: 9.5px; font-weight: 800; color: var(--pl-gold-ink); padding: 3px 9px; border-radius: 999px;
  background: linear-gradient(135deg, var(--pl-gold), #ffb700); box-shadow: 0 3px 10px rgba(255,209,0,0.35);
}
#page-planes .pl-activa-badge span { font-size: 9px; opacity: .75; }
#page-planes .pl-comida.activa .pl-add-btn { background: rgba(255,209,0,0.16); }
#page-planes .pl-comida-acciones { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 2px; margin-top: -1px; }
#page-planes .pl-accion {
  background: none; border: none; padding: 3px 2px; font-family: inherit; cursor: pointer; text-align: center;
  font-size: 10.5px; font-weight: 700; color: var(--text-muted); line-height: 1.3;
}
#page-planes .pl-accion b { color: var(--pl-gold); font-weight: 800; margin-left: 3px; white-space: nowrap; }
#page-planes .pl-accion-repetir { color: var(--pl-gold); }
#page-planes .pl-comidas-grid { row-gap: 14px; padding-top: 6px; }

/* Sugerencias: etiqueta y proteína estimada */
#page-planes .pl-sug-tag {
  align-self: flex-start; margin-top: 3px; font-size: 9.5px; font-weight: 800; color: var(--pl-gold);
  border: 1px solid var(--pl-gold-border); border-radius: 999px; padding: 1px 7px;
}
#page-planes .pl-sug-prot { font-size: 10.5px; color: #4ade80; font-weight: 700; margin-top: -4px; }
#page-planes .pl-sug-nota { font-size: 10px; color: var(--text-muted); margin: 8px 0 0; }

/* Apoyo opcional */
#page-planes .pl-apoyo { display: flex; align-items: center; gap: 12px; border: 1px solid rgba(120,200,140,0.28); padding: 12px 14px; }
#page-planes .pl-apoyo.hidden { display: none; }
#page-planes .pl-apoyo-media {
  width: 52px; height: 52px; flex-shrink: 0; border-radius: 12px; overflow: hidden; display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle at 50% 40%, rgba(255,255,255,0.16), rgba(255,255,255,0.03) 70%); border: 1px solid var(--border-soft);
}
#page-planes .pl-apoyo-media img { width: 100%; height: 100%; object-fit: contain; padding: 3px; }
#page-planes .pl-apoyo-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
#page-planes .pl-apoyo-tag { font-size: 9.5px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase; color: #7fd49a; }
#page-planes .pl-apoyo-texto { font-size: 12px; line-height: 1.4; color: var(--text-dark); }

/* Modal de Planes */
#page-planes .pl-modal-box { background: var(--pl-card-bg); border: 1px solid var(--pl-gold-border); border-radius: 20px; box-shadow: 0 20px 50px rgba(0,0,0,0.5); }
#page-planes .pl-modal-titulo { font-size: 17px; font-weight: 800; color: var(--text-dark); margin: 0 0 4px; }
#page-planes .pl-modal-sub { font-size: 12px; color: var(--text-muted); margin: 0 0 12px; }
#page-planes .pl-modal-lista { display: flex; flex-direction: column; border-top: 1px solid var(--border-soft); }
#page-planes .pl-modal-fila { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--border-soft); font-size: 13px; color: var(--text-dark); }
#page-planes .pl-modal-fila b { color: var(--pl-gold); white-space: nowrap; }
#page-planes .pl-modal-total { display: flex; justify-content: space-between; padding: 10px 0 4px; font-size: 13px; font-weight: 800; color: var(--text-dark); }
#page-planes .pl-modal-total b { color: var(--pl-gold); }
#page-planes .pl-modal-box .modal-actions { margin-top: 14px; }
#page-planes .pl-modal-box .btn-primary[disabled] { opacity: .6; }
#page-planes .pl-cierre-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0 10px; }
#page-planes .pl-cierre-stat { background: var(--pl-inner-bg); border: 1px solid var(--border-soft); border-radius: 14px; padding: 10px; display: flex; flex-direction: column; gap: 5px; }
#page-planes .pl-cierre-lbl { font-size: 11px; font-weight: 800; color: var(--text-muted); text-transform: uppercase; letter-spacing: .3px; }
#page-planes .pl-cierre-val { font-size: 20px; font-weight: 900; color: var(--pl-gold); line-height: 1.1; }
#page-planes .pl-cierre-val small { font-size: 11px; font-weight: 700; color: var(--text-muted); }
#page-planes .pl-cierre-bar { height: 7px; border-radius: 99px; background: rgba(128,128,128,0.22); overflow: hidden; }
#page-planes .pl-cierre-bar span { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--pl-gold), #ffb700); }
#page-planes .pl-cierre-pct { font-size: 10.5px; color: var(--text-muted); }
#page-planes .pl-cierre-comidas { font-size: 12.5px; color: var(--text-dark); margin: 0 0 10px; }
#page-planes .pl-cierre-msg { font-size: 13px; line-height: 1.45; margin: 0; padding: 11px 12px; border-radius: 12px; color: var(--text-dark); background: var(--pl-inner-bg); border: 1px solid var(--border-soft); }
#page-planes .pl-cierre-msg.ok { border-color: rgba(74,222,128,0.4); }
#page-planes .pl-cierre-msg.aviso { border-color: var(--pl-gold-border); }
[data-theme="light"] #page-planes .pl-accion b,
[data-theme="light"] #page-planes .pl-accion-repetir,
[data-theme="light"] #page-planes .pl-sug-tag,
[data-theme="light"] #page-planes .pl-modal-fila b,
[data-theme="light"] #page-planes .pl-modal-total b,
[data-theme="light"] #page-planes .pl-cierre-val { color: #a87f00; }

/* ============================================================
   RONDA 16 — Tabla Semanal: buscador por nombre + pulido según mockup
   Todo con prefijo #page-tabla-semanal. No afecta a otras pantallas.
   ============================================================ */
#page-tabla-semanal {
  --ts-card: var(--e-surface);
  --ts-field: rgba(128,128,128,0.07);
  --ts-line: var(--e-border);
  --ts-gold: var(--e-accent);
  --ts-gold-soft: rgba(255,209,0,0.45);
  --ts-glow: 0 0 0 1px rgba(255,209,0,0.10), 0 8px 26px rgba(255,209,0,0.10);
  --ts-teal: #2f9e7c;
  --ts-teal-line: rgba(47,158,124,0.55);
  --ts-teal-bg: linear-gradient(135deg, rgba(47,158,124,0.12), rgba(47,158,124,0.05));
}
[data-theme="dark"] #page-tabla-semanal {
  --ts-card: #121212;
  --ts-field: #0d0d0d;
  --ts-line: rgba(255,255,255,0.10);
  --ts-gold-soft: rgba(255,209,0,0.55);
  --ts-glow: 0 0 0 1px rgba(255,209,0,0.10), 0 0 28px rgba(255,209,0,0.13);
  --ts-teal: #4fd1a5;
  --ts-teal-line: rgba(79,209,165,0.50);
  --ts-teal-bg: linear-gradient(135deg, rgba(20,70,58,0.55), rgba(12,32,28,0.55));
}

/* Título */
#page-tabla-semanal .header-row h1 { font-size: 26px !important; font-weight: 800; letter-spacing: -0.3px; }

/* Botón "Generar rutina automática": destello + flecha */
#page-tabla-semanal #generador-rutina-btn.ranking-shortcut {
  display: flex; align-items: center; justify-content: center; gap: 10px; position: relative;
  width: 100%; min-height: 50px; border-radius: 14px; font-size: 15.5px; margin: 0 0 12px;
  box-shadow: 0 6px 20px rgba(255,209,0,0.18);
}
#page-tabla-semanal #generador-rutina-btn.ranking-shortcut::before {
  content: ""; width: 20px; height: 20px; flex-shrink: 0; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 3l1.8 5.2L17 10l-5.2 1.8L10 17l-1.8-5.2L3 10l5.2-1.8z'/%3E%3Cpath d='M18 13l.9 2.1L21 16l-2.1.9L18 19l-.9-2.1L15 16l2.1-.9z'/%3E%3Cpath d='M18 2l.7 1.6L20.3 4.3l-1.6.7L18 6.6l-.7-1.6L15.7 4.3l1.6-.7z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 3l1.8 5.2L17 10l-5.2 1.8L10 17l-1.8-5.2L3 10l5.2-1.8z'/%3E%3Cpath d='M18 13l.9 2.1L21 16l-2.1.9L18 19l-.9-2.1L15 16l2.1-.9z'/%3E%3Cpath d='M18 2l.7 1.6L20.3 4.3l-1.6.7L18 6.6l-.7-1.6L15.7 4.3l1.6-.7z'/%3E%3C/svg%3E") center/contain no-repeat;
}
#page-tabla-semanal #generador-rutina-btn.ranking-shortcut::after {
  content: ""; position: absolute; right: 16px; top: 50%; width: 9px; height: 9px; margin-top: -5px;
  border-right: 2.5px solid currentColor; border-top: 2.5px solid currentColor; transform: rotate(45deg);
}

/* Barra "Continuar / Comenzar entrenamiento" */
#page-tabla-semanal .nf-guia-iniciar.tabla-guia-barra {
  display: flex; align-items: center; gap: 11px; text-align: left;
  margin: 0 0 12px; padding: 12px 12px 12px 12px; border-radius: 16px;
  border: 1px solid var(--ts-teal-line); background: var(--ts-teal-bg); color: var(--e-text);
}
#page-tabla-semanal .tabla-guia-barra .tg-play {
  width: 44px; height: 44px; flex-shrink: 0; border-radius: 50%; border: 2px solid var(--ts-teal);
  color: var(--ts-teal); display: grid; place-items: center;
}
#page-tabla-semanal .tabla-guia-barra .tg-play svg { width: 22px; height: 22px; margin-left: 3px; }
#page-tabla-semanal .tabla-guia-barra .tg-texto { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
#page-tabla-semanal .tabla-guia-barra .tg-texto strong {
  font-size: 14.5px; font-weight: 800; line-height: 1.2; letter-spacing: -0.2px;
}
#page-tabla-semanal .tabla-guia-barra .tg-texto small {
  font-size: 12.5px; color: var(--e-text-muted); font-weight: 500;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#page-tabla-semanal .tabla-guia-barra .tg-anillo {
  --p: 0; width: 38px; height: 38px; flex-shrink: 0; border-radius: 50%; display: grid; place-items: center;
  background: conic-gradient(var(--ts-teal) calc(var(--p) * 1%), rgba(128,128,128,0.28) 0);
}
#page-tabla-semanal .tabla-guia-barra .tg-anillo > span {
  width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
  background: var(--ts-card); font-size: 10px; font-weight: 800; color: var(--e-text);
}
#page-tabla-semanal .tabla-guia-barra .tg-chev { width: 18px; height: 18px; flex-shrink: 0; color: var(--ts-teal); }

/* Tarjetas de ejercicios del día */
#page-tabla-semanal .tabla-ejercicio-row {
  gap: 9px; padding: 9px 8px 9px 10px; border-radius: 16px; margin-bottom: 9px;
  background: var(--ts-card); border-color: var(--ts-line);
}
#page-tabla-semanal .tabla-ejercicio-row .tabla-num {
  width: 24px; height: 24px; flex-shrink: 0; border-radius: 50%; display: grid; place-items: center;
  background: rgba(128,128,128,0.18); color: var(--e-text); font-size: 12px; font-weight: 800;
}
#page-tabla-semanal .tabla-ejercicio-row img { width: 58px; height: 46px; border-radius: 9px; }
#page-tabla-semanal .tabla-ejercicio-row .nombre { font-size: 13.5px; font-weight: 800; -webkit-line-clamp: 3; }
#page-tabla-semanal .tabla-ejercicio-row .reps { font-size: 12px; -webkit-line-clamp: 1; word-break: break-all; }
#page-tabla-semanal .tabla-ejercicio-row .tabla-registrar-btn {
  font-size: 12px; padding: 9px 11px; border-radius: 20px; min-height: 36px;
}
#page-tabla-semanal .tabla-ejercicio-row .tabla-del { font-size: 19px; padding: 8px 3px; font-weight: 700; }

/* Bloque "Añadir ejercicio a este día" */
#page-tabla-semanal .tracker-card.tabla-add-card {
  border: 1.5px solid var(--ts-gold-soft); border-radius: 20px; box-shadow: var(--ts-glow);
  padding: 16px 14px 16px; margin-top: 14px; background: var(--ts-card);
}
#page-tabla-semanal .tabla-add-card.tabla-add-ok { animation: ts-ok 0.9s ease; }
@keyframes ts-ok { 0% { box-shadow: 0 0 0 2px var(--ts-gold), 0 0 32px rgba(255,209,0,0.35); } 100% { box-shadow: var(--ts-glow); } }
#page-tabla-semanal .tabla-add-head { display: flex; align-items: center; gap: 11px; margin-bottom: 14px; }
#page-tabla-semanal .tabla-add-head .section-title { margin: 0 !important; font-size: 18px; font-weight: 800; color: var(--e-text); }
#page-tabla-semanal .tabla-add-icon {
  width: 32px; height: 32px; flex-shrink: 0; border-radius: 50%; border: 2px solid var(--ts-gold);
  color: var(--ts-gold); display: grid; place-items: center;
}
#page-tabla-semanal .tabla-add-icon svg { width: 18px; height: 18px; }

/* Buscador */
#page-tabla-semanal .tabla-buscar { margin-bottom: 14px; }
#page-tabla-semanal .tabla-buscar-label {
  display: block; font-size: 14px; font-weight: 800; color: var(--e-text); margin: 0 0 8px;
}
#page-tabla-semanal .tabla-buscar-field { position: relative; }
#page-tabla-semanal .tabla-buscar-lupa {
  position: absolute; left: 14px; top: 50%; width: 20px; height: 20px; margin-top: -10px;
  color: var(--e-text-muted); pointer-events: none;
}
#page-tabla-semanal #tabla-buscar-input {
  width: 100%; box-sizing: border-box; min-height: 50px; padding: 12px 40px 12px 42px;
  border-radius: 14px; border: 1px solid var(--ts-line); background: var(--ts-field); color: var(--e-text);
  font-size: 16px; /* 16px evita el zoom automático de iOS */ -webkit-appearance: none; appearance: none; outline: none;
}
#page-tabla-semanal #tabla-buscar-input::placeholder { color: var(--e-text-muted); opacity: 0.85; font-size: 13.5px; }
#page-tabla-semanal #tabla-buscar-input:placeholder-shown { padding-right: 12px; }
#page-tabla-semanal #tabla-buscar-input::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
#page-tabla-semanal #tabla-buscar-input:focus { border-color: var(--ts-gold); box-shadow: 0 0 0 3px rgba(255,209,0,0.14); }
#page-tabla-semanal .tabla-buscar-limpiar {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; border: none; border-radius: 50%; background: transparent;
  color: var(--e-text-muted); font-size: 15px; cursor: pointer;
}
#page-tabla-semanal .tabla-buscar-limpiar.hidden { display: none; }
#page-tabla-semanal .tabla-buscar-resultados { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
#page-tabla-semanal .tabla-buscar-resultados:empty { display: none; }
#page-tabla-semanal .tabla-buscar-msg { margin: 2px 2px 0; font-size: 12.5px; color: var(--e-text-muted); line-height: 1.45; }
#page-tabla-semanal .tabla-buscar-item {
  display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; cursor: pointer;
  padding: 7px 12px 7px 7px; border-radius: 14px; border: 1px solid var(--ts-line);
  background: var(--ts-field); color: var(--e-text); font: inherit;
  transition: border-color .15s ease, transform .1s ease;
}
#page-tabla-semanal .tabla-buscar-item:active { transform: scale(0.985); border-color: var(--ts-gold-soft); }
@media (hover: hover) { #page-tabla-semanal .tabla-buscar-item:hover { border-color: var(--ts-gold-soft); } }
#page-tabla-semanal .tabla-buscar-thumb {
  width: 78px; height: 50px; flex-shrink: 0; border-radius: 9px; overflow: hidden;
  background: rgba(128,128,128,0.15); display: grid; place-items: center;
}
#page-tabla-semanal .tabla-buscar-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
#page-tabla-semanal .tabla-buscar-thumb.sin-imagen::before {
  content: ""; width: 26px; height: 26px; background: var(--e-text-muted); opacity: 0.7;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6.5 6.5v11M17.5 6.5v11M3.5 9v6M20.5 9v6M6.5 12h11'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6.5 6.5v11M17.5 6.5v11M3.5 9v6M20.5 9v6M6.5 12h11'/%3E%3C/svg%3E") center/contain no-repeat;
}
#page-tabla-semanal .tabla-buscar-nombre {
  flex: 1; min-width: 0; font-size: 14.5px; font-weight: 700; line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
#page-tabla-semanal .tabla-buscar-chev { width: 20px; height: 20px; flex-shrink: 0; color: var(--ts-gold); }

/* Formulario manual */
#page-tabla-semanal .tabla-add-card .tracker-grid {
  display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.45fr); gap: 0 10px;
}
#page-tabla-semanal .tabla-add-card .tracker-grid .field { min-width: 0; }
#page-tabla-semanal .tabla-add-card .tracker-grid .field:nth-child(3) { grid-column: 1 / -1; }
#page-tabla-semanal .tabla-add-card .tracker-grid .field input,
#page-tabla-semanal .tabla-add-card .tracker-grid .field select {
  min-height: 50px; border-radius: 13px; background-color: var(--ts-field); font-size: 16px; padding-left: 14px;
}
#page-tabla-semanal .tabla-add-card .tracker-grid .field select {
  padding-right: 36px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%23c9c9c9' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat; background-position: right 13px center;
}
#page-tabla-semanal .tabla-add-card #tabla-add-btn {
  min-height: 54px; border-radius: 14px; font-size: 17px; font-weight: 800; margin-top: 4px;
  box-shadow: 0 6px 20px rgba(255,209,0,0.18);
}
@media (max-width: 380px) {
  #page-tabla-semanal .tabla-ejercicio-row { gap: 7px; }
  #page-tabla-semanal .tabla-ejercicio-row img { width: 50px; height: 40px; }
  #page-tabla-semanal .tabla-ejercicio-row .tabla-num { width: 22px; height: 22px; font-size: 11px; }
  #page-tabla-semanal .tabla-ejercicio-row .tabla-registrar-btn { padding: 8px 10px; font-size: 11.5px; }
  #page-tabla-semanal .tabla-buscar-thumb { width: 64px; height: 44px; }
}
@media (max-width: 360px) {
  #page-tabla-semanal .tabla-add-card .tracker-grid { grid-template-columns: 1fr; }
  #page-tabla-semanal #generador-rutina-btn.ranking-shortcut { font-size: 14px; padding-left: 12px; padding-right: 34px; gap: 8px; }
  #page-tabla-semanal .tabla-ejercicio-row img { width: 44px; height: 36px; }
  #page-tabla-semanal .tabla-ejercicio-row .tabla-num { display: none; }
}

/* ============================================================
   RONDA 17 — Workday tipo dashboard (mockup). Todo con prefijo
   #page-workday: no afecta a las subpáginas de Workday ni a nada más.
   ============================================================ */
#page-workday {
  --wd-card: var(--w-surface);
  --wd-tile: rgba(128,128,128,0.07);
  --wd-line: var(--w-border);
  --wd-gold: #FFD100;
  --wd-gold-text: #a87f00;
  --wd-gold-line: rgba(214,170,0,0.55);
  --wd-glow: 0 6px 22px rgba(214,170,0,0.10);
  --wd-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
[data-theme="dark"] #page-workday {
  --wd-card: #111111;
  --wd-tile: #181818;
  --wd-line: rgba(255,255,255,0.08);
  --wd-gold-text: #FFD100;
  --wd-gold-line: rgba(255,209,0,0.60);
  --wd-glow: 0 0 0 1px rgba(255,209,0,0.06), 0 0 26px rgba(255,209,0,0.10);
  --wd-shadow: 0 6px 20px rgba(0,0,0,0.35);
}
#page-workday .hidden { display: none !important; }

/* Cabecera */
#page-workday .wd-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin: 2px 0 16px; }
#page-workday .wd-head-text { min-width: 0; }
#page-workday .wd-head .header-row { margin: 0; }
#page-workday .wd-head .back-btn { display: none; } /* el logo de la cabecera ya lleva al inicio */
#page-workday .wd-head h1 { font-size: 31px !important; font-weight: 800; letter-spacing: -0.6px; line-height: 1.1; color: var(--w-text); }
#page-workday .wd-head .workday-greeting { margin: 4px 0 0; }
#page-workday .wd-head .workday-greeting p { font-size: 13px !important; line-height: 1.35; }
#page-workday .wd-fecha-card {
  flex-shrink: 0; display: flex; align-items: center; gap: 10px; cursor: pointer;
  padding: 9px 8px 9px 11px; border-radius: 16px; border: 1px solid var(--wd-line); margin-top: 4px;
  background: var(--wd-card); color: var(--w-text); font-family: inherit; text-align: left; box-shadow: var(--wd-shadow);
}
#page-workday .wd-fecha-cal { width: 22px; height: 22px; flex-shrink: 0; color: var(--w-text); }
#page-workday .wd-fecha-txt { display: flex; flex-direction: column; line-height: 1.2; }
#page-workday .wd-fecha-txt strong { font-size: 14px; font-weight: 800; }
#page-workday .wd-fecha-txt small { font-size: 11px; color: var(--w-text-muted); font-weight: 600; white-space: nowrap; }
#page-workday .wd-fecha-chev { display: flex; color: var(--w-text-muted); }
#page-workday .wd-fecha-chev svg { width: 16px; height: 16px; }

/* Tarjetas base */
#page-workday .wd-card {
  background: var(--wd-card); border: 1px solid var(--wd-line); border-radius: 20px;
  padding: 14px 12px 12px; margin-bottom: 14px; box-shadow: var(--wd-shadow);
}
#page-workday .wd-card--gold { border: 1.5px solid var(--wd-gold-line); box-shadow: var(--wd-glow); }
#page-workday .wd-card.wd-flash { animation: wd-flash 1s ease; }
@keyframes wd-flash { 0% { box-shadow: 0 0 0 2px var(--wd-gold), 0 0 30px rgba(255,209,0,0.35); } 100% { box-shadow: var(--wd-glow); } }
#page-workday .wd-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 4px 12px; }
#page-workday .wd-card-title {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0;
  font-size: 17px; font-weight: 800; letter-spacing: -0.2px; color: var(--w-text);
}
#page-workday .wd-link {
  flex-shrink: 0; border: none; background: none; cursor: pointer; padding: 6px 0 6px 6px; font-family: inherit;
  font-size: 13px; font-weight: 800; color: var(--wd-gold-text); white-space: nowrap;
}
#page-workday .wd-link span { font-size: 16px; margin-left: 1px; }
#page-workday .wd-pill {
  display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; white-space: nowrap;
  background: var(--wd-gold); color: #171310; font-size: 11.5px; font-weight: 800; letter-spacing: 0;
}
#page-workday .wd-pill--ok { background: rgba(34,197,94,0.16); color: #16a34a; }
[data-theme="dark"] #page-workday .wd-pill--ok { color: #4ade80; }
#page-workday .wd-vacio { font-size: 13px; color: var(--w-text-muted); margin: 6px 4px; line-height: 1.45; }

/* Resumen de hoy */
#page-workday .wd-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
#page-workday .wd-stats.wd-stats--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#page-workday .wd-stat {
  display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; cursor: pointer;
  padding: 11px 5px 10px; border-radius: 14px; border: 1px solid var(--wd-line); background: var(--wd-tile);
  color: var(--w-text); font-family: inherit;
}
#page-workday .wd-stat:active, #page-workday .wd-prio-main:active, #page-workday .wd-fecha-card:active { transform: scale(0.98); }
#page-workday .wd-stat-icon { font-size: 19px; line-height: 1; display: none; }
#page-workday .wd-stat-txt { display: flex; flex-direction: column; align-items: center; min-width: 0; width: 100%; }
#page-workday .wd-stat-num {
  display: flex; align-items: center; gap: 6px; font-size: 21px; font-weight: 800; line-height: 1.1;
  color: var(--wd-gold-text); white-space: nowrap;
}
#page-workday .wd-stat-lbl {
  font-size: 10.5px; font-weight: 600; letter-spacing: -0.1px; color: var(--w-text); opacity: 0.9;
  max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 3px;
}
/* icono + número en la misma línea (como el mockup) */
#page-workday .wd-stat { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; justify-content: center; align-items: center; column-gap: 6px; row-gap: 3px; }
#page-workday .wd-stat .wd-stat-icon { display: flex; grid-row: 1; grid-column: 1; }
#page-workday .wd-stat .wd-stat-txt { display: contents; }
#page-workday .wd-stat .wd-stat-num { grid-row: 1; grid-column: 2; }
#page-workday .wd-stat .wd-stat-lbl { grid-row: 2; grid-column: 1 / -1; justify-self: center; text-align: center; }
#page-workday .wd-stat-icon svg { width: 20px; height: 20px; }
#page-workday .wd-stat-icon--bars { color: #2bb7a0; }
#page-workday .wd-stat-icon--check {
  width: 21px; height: 21px; border-radius: 50%; background: #dbe7f5; color: #2563eb; align-items: center; justify-content: center;
}
#page-workday .wd-stat-icon--check svg { width: 13px; height: 13px; }

/* Prioridades de hoy */
#page-workday .wd-prio-list { display: flex; flex-direction: column; gap: 7px; }
#page-workday .wd-prio-skel { height: 50px; border-radius: 14px; background: var(--wd-tile); animation: wd-skel 1.2s ease-in-out infinite alternate; }
@keyframes wd-skel { from { opacity: 0.45; } to { opacity: 1; } }
#page-workday .wd-prio {
  display: flex; align-items: center; gap: 2px; border-radius: 14px; border: 1px solid var(--wd-line);
  background: var(--wd-tile); min-height: 52px; padding-left: 10px;
}
#page-workday .wd-prio-check { position: relative; flex-shrink: 0; width: 34px; height: 44px; display: grid; place-items: center; cursor: pointer; }
#page-workday .wd-prio-check input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
#page-workday .wd-prio-check span {
  width: 22px; height: 22px; border-radius: 6px; background: #fff; border: 1.5px solid rgba(0,0,0,0.18);
  display: grid; place-items: center; transition: background .15s ease;
}
[data-theme="dark"] #page-workday .wd-prio-check span { border-color: transparent; }
#page-workday .wd-prio-check input:checked + span { background: var(--wd-gold); border-color: var(--wd-gold); }
#page-workday .wd-prio-check input:checked + span::after {
  content: ""; width: 10px; height: 5px; border-left: 2.5px solid #171310; border-bottom: 2.5px solid #171310; transform: rotate(-45deg) translate(1px, -1px);
}
#page-workday .wd-prio-check input:focus-visible + span { box-shadow: 0 0 0 3px rgba(255,209,0,0.4); }
#page-workday .wd-prio-main {
  flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 9px 10px 9px 6px; cursor: pointer;
  border: none; background: none; color: var(--w-text); font-family: inherit; text-align: left;
  border-left: 1px solid var(--wd-line); margin-left: 4px;
}
#page-workday .wd-prio-icono { flex-shrink: 0; width: 26px; text-align: center; font-size: 19px; line-height: 1; }
#page-workday .wd-prio-txt { flex: 1; min-width: 0; font-size: 14.5px; font-weight: 600; line-height: 1.3; }
#page-workday .wd-prio-cont {
  flex-shrink: 0; min-width: 30px; text-align: center; padding: 4px 9px; border-radius: 999px;
  background: rgba(128,128,128,0.16); font-size: 13px; font-weight: 800; color: var(--w-text);
}
#page-workday .wd-prio-chev { flex-shrink: 0; display: flex; color: var(--w-text-muted); }
#page-workday .wd-prio-chev svg { width: 18px; height: 18px; }
#page-workday .wd-prio.is-hecha .wd-prio-main { opacity: 0.5; }
#page-workday .wd-prio.is-hecha .wd-prio-txt { text-decoration: line-through; }

/* Hacer crecer tu negocio */
#page-workday .wd-negocio-emoji { font-size: 22px; line-height: 1; }
#page-workday .wd-progreso { display: flex; align-items: center; gap: 10px; margin: -2px 4px 12px; }
#page-workday .wd-progreso-lbl { font-size: 13.5px; font-weight: 700; color: var(--w-text); white-space: nowrap; }
#page-workday .wd-progreso-barra { flex: 1; height: 9px; border-radius: 999px; background: rgba(128,128,128,0.22); overflow: hidden; }
#page-workday .wd-progreso-barra span { display: block; height: 100%; border-radius: inherit; background: var(--wd-gold); transition: width .3s ease; }
#page-workday .wd-progreso-num { font-size: 13.5px; font-weight: 800; color: var(--w-text); white-space: nowrap; }
#page-workday .wd-acciones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
#page-workday .wd-accion {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0;
  padding: 10px 6px 8px; border-radius: 14px; border: 1px solid var(--wd-line); background: var(--wd-tile);
}
#page-workday .wd-accion.is-completa { border-color: rgba(34,197,94,0.45); }
#page-workday .wd-accion-top { display: flex; align-items: center; gap: 6px; }
#page-workday .wd-accion-icono { font-size: 18px; line-height: 1; }
#page-workday .wd-accion-top strong { font-size: 21px; font-weight: 800; color: var(--wd-gold-text); line-height: 1; }
#page-workday .wd-accion-lbl {
  font-size: 10.5px; font-weight: 600; letter-spacing: -0.15px; color: var(--w-text); text-align: center; line-height: 1.25;
  max-width: 100%; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; word-break: keep-all;
}
#page-workday .wd-accion-auto {
  position: absolute; top: 5px; right: 6px; font-style: normal; font-size: 8.5px; font-weight: 800; letter-spacing: 0.3px;
  color: var(--w-text-muted); text-transform: uppercase;
}
#page-workday .wd-accion-ctrl { display: flex; align-items: center; justify-content: space-between; gap: 4px; width: 100%; margin-top: auto; padding-top: 4px; }
#page-workday .wd-accion-btn {
  width: 30px; height: 30px; flex-shrink: 0; border-radius: 9px; border: none; cursor: pointer;
  background: rgba(128,128,128,0.18); color: var(--w-text); display: grid; place-items: center; padding: 0;
}
#page-workday .wd-accion-btn svg { width: 14px; height: 14px; }
#page-workday .wd-accion-btn--mas { background: var(--wd-gold); color: #171310; }
#page-workday .wd-accion-btn:disabled { opacity: 0.35; cursor: default; }
#page-workday .wd-accion-cont { font-size: 13px; font-weight: 800; color: var(--w-text); white-space: nowrap; }
#page-workday .wd-plan-detalle { margin: 12px 4px 2px; padding-top: 10px; border-top: 1px solid var(--wd-line); }
#page-workday .wd-plan-detalle p { margin: 0 0 7px; font-size: 13px; color: var(--w-text); line-height: 1.4; }
#page-workday .wd-plan-detalle p b { color: var(--wd-gold-text); margin-left: 4px; }
#page-workday .wd-plan-detalle p em { font-style: normal; font-size: 11px; color: var(--w-text-muted); margin-left: 4px; }
#page-workday .wd-plan-detalle p.is-completa { opacity: 0.55; text-decoration: line-through; }
#page-workday .wd-plan-detalle .wd-plan-nota { font-size: 11.5px; color: var(--w-text-muted); margin-top: 8px; }

/* Módulos (los plegables de siempre, con aspecto de tarjeta) */
#page-workday .wd-modulos .workday-accordion {
  border-radius: 18px; border: 1px solid var(--wd-line); background: var(--wd-card); box-shadow: var(--wd-shadow); margin-bottom: 10px;
}
#page-workday .wd-modulos .workday-accordion[open] { border-color: var(--wd-gold-line); }
#page-workday .workday-accordion-summary.wd-mod { gap: 12px; padding: 13px 14px 13px 12px; }
#page-workday .wd-mod-icon {
  flex-shrink: 0; width: 46px; height: 46px; display: grid; place-items: center; font-size: 26px; line-height: 1;
  border-right: 1px solid var(--wd-line); padding-right: 10px; width: 50px;
}
#page-workday .wd-mod-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
#page-workday .wd-mod-title { font-size: 16.5px; font-weight: 800; color: var(--w-text); line-height: 1.2; }
#page-workday .wd-mod-sub { font-size: 12.5px; font-weight: 500; color: var(--w-text-muted); line-height: 1.3; }
#page-workday .wd-mod-badge {
  flex-shrink: 0; display: flex; align-items: center; gap: 8px; max-width: 46%;
  padding: 8px 10px; border-radius: 13px; border: 1px solid var(--wd-line); background: var(--wd-tile);
}
#page-workday .wd-mod-badge > svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--wd-gold-text); }
#page-workday .wd-mod-badge span { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
#page-workday .wd-mod-badge strong { display: flex; align-items: center; gap: 4px; font-size: 13.5px; font-weight: 800; color: var(--w-text); white-space: nowrap; }
#page-workday .wd-mod-badge small { font-size: 10.5px; font-weight: 600; color: var(--w-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#page-workday .wd-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
#page-workday .wd-dot--rojo { background: #ef4444; margin-top: -8px; }
#page-workday .wd-dot--verde { background: #22c55e; }
#page-workday .wd-dot--grande { width: 12px; height: 12px; box-shadow: 0 0 0 3px rgba(34,197,94,0.18); }
#page-workday .wd-modulos .workday-accordion-body { padding: 12px 12px 14px; }

/* Agenda de hoy dentro de "Plan de hoy" */
#page-workday .wd-agenda-fila {
  display: flex; align-items: center; gap: 10px; width: 100%; margin-bottom: 7px; cursor: pointer; text-align: left;
  padding: 10px 12px; border-radius: 12px; border: 1px solid var(--wd-line); background: var(--wd-tile);
  color: var(--w-text); font-family: inherit;
}
#page-workday .wd-agenda-hora { flex-shrink: 0; min-width: 42px; font-size: 12.5px; font-weight: 800; color: var(--wd-gold-text); }
#page-workday .wd-agenda-titulo { flex: 1; min-width: 0; font-size: 13.5px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#page-workday .wd-agenda-abrir { margin-top: 4px; }

/* Pantallas estrechas */
@media (max-width: 400px) {
  #page-workday .wd-head h1 { font-size: 28px !important; }
  #page-workday .wd-stat { padding: 10px 3px 9px; column-gap: 4px; }
  #page-workday .wd-stat-num { font-size: 19px; }
  #page-workday .wd-stat-icon { font-size: 16px; }
  #page-workday .wd-stat-icon svg { width: 17px; height: 17px; }
  #page-workday .wd-stat-lbl { font-size: 10px; letter-spacing: -0.2px; }
  #page-workday .wd-prio-txt { font-size: 14px; }
  #page-workday .wd-mod-title { font-size: 15.5px; }
  #page-workday .wd-mod-icon { width: 44px; height: 42px; font-size: 23px; padding-right: 8px; }
}
@media (max-width: 360px) {
  #page-workday .wd-head { flex-direction: column; }
  #page-workday .wd-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-workday .wd-acciones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-workday .wd-mod-badge { display: none; }
}
@media (min-width: 640px) {
  #page-workday .wd-acciones { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
#page-workday .wd-negocio .wd-card-title { flex-wrap: nowrap; min-width: 0; }
@media (max-width: 400px) {
  #page-workday .wd-card-title { font-size: 16px; }
  #page-workday .wd-negocio-emoji { font-size: 19px; }
}
@media (max-width: 400px) {
  #page-workday .wd-accion-lbl { font-size: 10px; letter-spacing: -0.3px; }
  #page-workday .wd-mod-sub { font-size: 12px; }
  #page-workday .wd-mod-badge { padding: 7px 9px; gap: 6px; }
  #page-workday .wd-mod-badge > svg { display: none; }
  #page-workday .wd-mod-badge strong { font-size: 13px; }
  #page-workday .workday-accordion-summary.wd-mod { gap: 10px; padding: 12px 12px 12px 10px; }
}
@media (max-width: 400px) {
  #page-workday .wd-accion { padding: 10px 3px 8px; }
  #page-workday .wd-acciones { gap: 6px; }
}

/* RONDA 18 — Workday sin repeticiones */
#page-workday .wd-agenda-label {
  margin: 0 2px 8px; font-size: 11.5px; font-weight: 800; letter-spacing: 0.5px; text-transform: uppercase; color: var(--wd-gold-text);
}
#page-workday #workday-plan-hoy-wrap:not(:empty) { margin-bottom: 12px; padding-bottom: 4px; border-bottom: 1px solid var(--wd-line); }
#page-workday #wd-prioridades.wd-flash { animation: wd-flash 1s ease; }

/* ============================================================
   RONDA 19 — Oportunidad según mockup. Todo con prefijo #page-trabaja.
   ============================================================ */
#page-trabaja {
  --op-bg: #0b0b0b;
  --op-card: var(--card-white);
  --op-tile: rgba(128,128,128,0.07);
  --op-line: var(--border-soft);
  --op-text: var(--text-dark);
  --op-muted: var(--text-muted);
  --op-gold: #FFD100;
  --op-gold-text: #a87f00;
  --op-gold-line: rgba(214,170,0,0.55);
  --op-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
[data-theme="dark"] #page-trabaja {
  --op-card: #111111;
  --op-tile: #161616;
  --op-line: rgba(255,255,255,0.09);
  --op-text: #ffffff;
  --op-muted: rgba(255,255,255,0.62);
  --op-gold-text: #FFD100;
  --op-gold-line: rgba(255,209,0,0.55);
  --op-shadow: 0 6px 20px rgba(0,0,0,0.35);
}
#page-trabaja .hidden { display: none !important; }
#page-trabaja .page-header { margin-bottom: 14px; }
#page-trabaja .page-header .nf24-title-icon { display: none; }
#page-trabaja .page-header h1 { font-size: 32px; font-weight: 800; letter-spacing: -0.6px; color: var(--op-text); }

/* Botones */
#page-trabaja .op-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; cursor: pointer;
  min-height: 48px; padding: 12px 18px; border-radius: 13px; border: none; font-family: inherit;
  font-size: 15.5px; font-weight: 800; letter-spacing: -0.1px;
}
#page-trabaja .op-btn svg { width: 22px; height: 22px; flex-shrink: 0; }
#page-trabaja .op-btn--oro { background: var(--op-gold); color: #171310; box-shadow: 0 6px 18px rgba(255,209,0,0.22); }
#page-trabaja .op-btn:active { transform: scale(0.98); }
#page-trabaja .op-btn:disabled { opacity: 0.6; }

/* 1. Hero (siempre oscuro: es una foto) */
#page-trabaja .op-hero {
  position: relative; overflow: hidden; border-radius: 22px; margin-bottom: 14px;
  border: 1.5px solid rgba(255,209,0,0.6); background: var(--op-bg); color: #fff;
  min-height: 360px; box-shadow: 0 0 0 1px rgba(255,209,0,0.08), 0 10px 34px rgba(255,209,0,0.12);
}
#page-trabaja .op-hero-foto {
  position: absolute; top: 0; right: 0; bottom: 0; width: 66%;
  background: url("../assets/oportunidad/hero-paco.jpg") 62% 18% / cover no-repeat;
}
#page-trabaja .op-hero-foto::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(90deg, var(--op-bg) 0%, rgba(11,11,11,0.85) 22%, rgba(11,11,11,0.15) 60%, rgba(11,11,11,0) 100%),
    linear-gradient(0deg, rgba(11,11,11,0.75) 0%, rgba(11,11,11,0) 45%);
}
#page-trabaja .op-hero-texto { position: relative; z-index: 1; width: 60%; padding: 22px 0 20px 18px; }
#page-trabaja .op-eyebrow {
  margin: 0 0 12px; font-size: 11px; font-weight: 800; letter-spacing: 4px; text-transform: uppercase; color: var(--op-gold);
}
#page-trabaja .op-hero-titulo { margin: 0 0 12px; font-size: 29px; line-height: 1.05; font-weight: 800; letter-spacing: -0.8px; color: #fff; }
#page-trabaja .op-hero-titulo span { color: var(--op-gold); }
#page-trabaja .op-hero-sub { margin: 0 0 18px; font-size: 13.5px; line-height: 1.45; color: rgba(255,255,255,0.86); }
#page-trabaja .op-hero-sub b { color: #fff; }
#page-trabaja .op-hero-cta { width: calc(100% + 30px); max-width: 290px; }
#page-trabaja .op-hero-cita {
  position: absolute; z-index: 1; right: 16px; bottom: 16px; margin: 0; text-align: right;
  font-family: "Snell Roundhand", "Segoe Script", "Brush Script MT", cursive; font-style: italic;
  font-size: 17px; line-height: 1.15; color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,0.8);
}
#page-trabaja .op-hero-cita small {
  display: block; margin-top: 8px; font-family: inherit; font-style: normal; font-size: 9.5px; font-weight: 800;
  letter-spacing: 4px; text-transform: uppercase; font-family: system-ui, sans-serif; color: rgba(255,255,255,0.85);
}

/* Tarjetas */
#page-trabaja .op-card {
  background: var(--op-card); border: 1px solid var(--op-line); border-radius: 20px;
  padding: 16px 14px; margin-bottom: 14px; box-shadow: var(--op-shadow);
}
#page-trabaja .op-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 12px; flex-wrap: wrap; margin: 0 2px 14px; }
#page-trabaja .op-card-head h2 { margin: 0; font-size: 19px; font-weight: 800; letter-spacing: -0.3px; color: var(--op-text); }
#page-trabaja .op-kicker { font-size: 9.5px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: var(--op-muted); }

/* 2. Beneficios */
#page-trabaja .op-beneficios { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
#page-trabaja .op-beneficio { min-width: 0; }
#page-trabaja .op-bicon {
  width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--op-gold-line);
  display: grid; place-items: center; color: var(--op-gold-text); margin-bottom: 10px;
}
#page-trabaja .op-bicon svg { width: 22px; height: 22px; }
#page-trabaja .op-beneficio strong { display: block; font-size: 15px; font-weight: 800; color: var(--op-text); margin-bottom: 4px; }
#page-trabaja .op-beneficio p { margin: 0; font-size: 12.5px; line-height: 1.4; color: var(--op-muted); }

/* 3. Para quién es */
#page-trabaja .op-paraquien { display: grid; grid-template-columns: 1fr; gap: 14px; }
#page-trabaja .op-lista, #page-trabaja .op-bullets { list-style: none; margin: 0; padding: 0; }
#page-trabaja .op-lista li { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 11px; font-size: 13.5px; line-height: 1.4; color: var(--op-text); opacity: 0.92; }
#page-trabaja .op-check { flex-shrink: 0; width: 21px; height: 21px; color: var(--op-gold); margin-top: 0; }
#page-trabaja .op-check svg { width: 100%; height: 100%; display: block; }
#page-trabaja .op-videos { display: flex; flex-direction: column; gap: 8px; }
#page-trabaja .op-video {
  position: relative; display: block; width: 100%; padding: 0; border: none; cursor: pointer; overflow: hidden;
  border-radius: 14px; background: #1b1b1b; font-family: inherit; color: #fff;
}
#page-trabaja .op-video img { display: block; width: 100%; height: 100%; object-fit: cover; }
#page-trabaja .op-video--destacado { aspect-ratio: 16 / 9.4; }
#page-trabaja .op-video-sombra { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.25) 55%, rgba(0,0,0,0.15) 100%); }
#page-trabaja .op-video-play {
  position: absolute; left: 50%; top: 40%; transform: translate(-50%, -50%); width: 54px; height: 54px; border-radius: 50%;
  background: rgba(255,255,255,0.22); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); display: grid; place-items: center;
}
#page-trabaja .op-video-play svg { width: 26px; height: 26px; margin-left: 3px; color: #fff; }
#page-trabaja .op-video-texto { position: absolute; left: 10px; right: 10px; bottom: 10px; text-align: center; line-height: 1; }
#page-trabaja .op-video-texto b {
  display: block; font-size: 21px; font-weight: 900; letter-spacing: -0.5px; text-transform: uppercase; font-stretch: condensed;
  text-shadow: 0 2px 8px rgba(0,0,0,0.7);
}
#page-trabaja .op-video-texto em { display: block; margin-top: 3px; font-size: 22px; font-weight: 800; font-style: italic; text-shadow: 0 2px 8px rgba(0,0,0,0.7); }
#page-trabaja .op-video-texto strong { color: var(--op-gold); font-weight: 900; }
#page-trabaja .op-video--mini { display: flex; align-items: center; gap: 10px; height: 52px; background: var(--op-tile); border: 1px solid var(--op-line); color: var(--op-text); text-align: left; }
#page-trabaja .op-video--mini img { width: 84px; height: 100%; flex-shrink: 0; }
#page-trabaja .op-video--mini .op-video-sombra { display: none; }
#page-trabaja .op-video--mini .op-video-play { left: 42px; top: 50%; width: 30px; height: 30px; }
#page-trabaja .op-video--mini .op-video-play svg { width: 15px; height: 15px; }
#page-trabaja .op-video-mini-txt { font-size: 13px; font-weight: 700; }
#page-trabaja .op-video.sin-imagen { background: linear-gradient(135deg, #1d1d1d, #2a2310); min-height: 150px; }

/* 4. Elige tu camino */
#page-trabaja .op-caminos { display: grid; grid-template-columns: 1fr; gap: 12px; }
#page-trabaja .op-camino {
  display: flex; flex-direction: column; min-width: 0; padding: 14px 13px 13px; border-radius: 16px;
  border: 1.5px solid var(--op-gold-line); background: var(--op-tile);
  box-shadow: 0 0 22px rgba(255,209,0,0.06);
}
#page-trabaja .op-camino-top { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
#page-trabaja .op-camino-icon { display: flex; color: var(--op-gold-text); flex-shrink: 0; }
#page-trabaja .op-camino-icon svg { width: 28px; height: 28px; }
#page-trabaja .op-camino h3 { margin: 0; flex: 1; min-width: 0; font-size: 18px; font-weight: 800; color: var(--op-text); letter-spacing: -0.3px; }
#page-trabaja .op-etiqueta {
  flex-shrink: 0; padding: 4px 9px; border-radius: 999px; border: 1px solid var(--op-gold-line);
  font-size: 9.5px; font-weight: 800; letter-spacing: 0.8px; text-transform: uppercase; color: var(--op-gold-text); white-space: nowrap;
}
#page-trabaja .op-camino-desc { margin: 0 0 12px; font-size: 13.5px; line-height: 1.45; color: var(--op-muted); }
#page-trabaja .op-bullets {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 10px;
  padding-top: 12px; margin-bottom: 14px; border-top: 1px solid var(--op-line);
}
#page-trabaja .op-bullets li { display: flex; align-items: flex-start; gap: 7px; font-size: 12.5px; line-height: 1.3; color: var(--op-text); }
#page-trabaja .op-bullets .op-check { width: 17px; height: 17px; }
#page-trabaja .op-camino .op-btn { width: 100%; margin-top: auto; }
#page-trabaja .op-estado { margin: 10px 0 0; text-align: center; font-size: 12.5px; font-weight: 700; color: var(--op-gold-text); }

/* 5. CTA WhatsApp flotante sobre el menú inferior */
#page-trabaja .op-wa {
  position: sticky; z-index: 5; bottom: calc(var(--nav-height, 72px) + env(safe-area-inset-bottom) + 12px);
  display: flex; align-items: center; justify-content: center; gap: 12px; margin: 18px 0 6px;
  min-height: 56px; padding: 12px 18px; border-radius: 18px; text-decoration: none; cursor: pointer;
  background: linear-gradient(180deg, #2fd46f, #1fb95a); color: #fff; font-size: 16.5px; font-weight: 800;
  box-shadow: 0 10px 26px rgba(31,185,90,0.35), 0 2px 0 rgba(255,255,255,0.15) inset;
}
#page-trabaja .op-wa svg { width: 28px; height: 28px; flex-shrink: 0; }
#page-trabaja .op-wa .op-wa-chev { width: 18px; height: 18px; }
#page-trabaja .op-wa span { min-width: 0; }

/* Pantallas anchas (iPhone Pro Max y superiores): como el mockup */
@media (min-width: 420px) {
  #page-trabaja .op-beneficios { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
  #page-trabaja .op-beneficio { padding: 0 10px; border-left: 1px solid var(--op-line); }
  #page-trabaja .op-beneficio:first-child { padding-left: 2px; border-left: none; }
  #page-trabaja .op-beneficio strong { font-size: 14px; }
  #page-trabaja .op-beneficio p { font-size: 11.5px; }
  #page-trabaja .op-paraquien { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
  #page-trabaja .op-lista li { font-size: 12.5px; }
  #page-trabaja .op-caminos { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
  #page-trabaja .op-camino-top { flex-wrap: wrap; gap: 6px 8px; }
  #page-trabaja .op-camino h3 { font-size: 16px; }
  #page-trabaja .op-camino-desc { font-size: 12.5px; }
  #page-trabaja .op-bullets { gap: 7px 6px; }
  #page-trabaja .op-bullets li { font-size: 11.5px; }
  #page-trabaja .op-hero-titulo { font-size: 31px; }
}
@media (max-width: 360px) {
  #page-trabaja .op-hero-texto { width: 68%; }
  #page-trabaja .op-hero-titulo { font-size: 25px; }
  #page-trabaja .op-hero-cita { display: none; }
  #page-trabaja .op-wa { font-size: 15px; }
}
/* RONDA 19 — ajustes finos tras la revisión visual */
#page-trabaja.page { padding-left: 14px; padding-right: 14px; }
#page-trabaja .op-hero { min-height: 340px; }
#page-trabaja .op-hero-foto { width: 64%; background-position: 68% 12%; }
#page-trabaja .op-hero-foto::after {
  background:
    linear-gradient(90deg, var(--op-bg) 0%, rgba(11,11,11,0.7) 18%, rgba(11,11,11,0.1) 50%, rgba(11,11,11,0) 100%),
    linear-gradient(0deg, rgba(11,11,11,0.7) 0%, rgba(11,11,11,0) 40%);
}
#page-trabaja .op-hero-texto { width: 58%; padding: 20px 0 18px 16px; }
#page-trabaja .op-hero-titulo { font-size: 27px; }
#page-trabaja .op-hero-sub { font-size: 13px; }
#page-trabaja .op-hero-cta { width: auto; max-width: none; white-space: nowrap; font-size: 14.5px; padding: 12px 16px; }
#page-trabaja .op-hero-cita { font-size: 15px; right: 14px; bottom: 14px; max-width: 40%; }
#page-trabaja .op-camino-top { justify-content: space-between; margin-bottom: 6px; }
#page-trabaja .op-camino h3 { flex: none; margin-bottom: 8px; }
#page-trabaja .op-bullets { grid-template-columns: 1fr; }
#page-trabaja .op-camino .op-btn { white-space: nowrap; font-size: 14.5px; padding: 11px 10px; min-height: 46px; }
#page-trabaja .op-video-texto b { font-size: 17px; }
#page-trabaja .op-video-texto em { font-size: 17px; }
#page-trabaja .op-video-play { width: 46px; height: 46px; top: 36%; }
@media (min-width: 420px) {
  #page-trabaja .op-card { padding: 16px 12px; }
  #page-trabaja .op-card-head h2 { font-size: 18px; }
  #page-trabaja .op-bicon { width: 40px; height: 40px; }
  #page-trabaja .op-bicon svg { width: 19px; height: 19px; }
  #page-trabaja .op-beneficio { padding: 0 8px; }
  #page-trabaja .op-beneficio strong { font-size: 13px; }
  #page-trabaja .op-beneficio p { font-size: 11px; }
  #page-trabaja .op-lista li { font-size: 12px; margin-bottom: 9px; }
  #page-trabaja .op-camino h3 { font-size: 16.5px; }
  #page-trabaja .op-bullets li { font-size: 12px; }
}
#page-trabaja .op-beneficio p, #page-trabaja .op-camino-desc { -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
#page-trabaja .op-wa { font-size: 15px; letter-spacing: -0.2px; gap: 10px; }
#page-trabaja .op-wa span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 419px) {
  #page-trabaja .op-hero-cita { display: none; }
  #page-trabaja .op-hero-texto { width: 64%; }
  #page-trabaja .op-hero-foto { width: 70%; }
  #page-trabaja .op-wa .op-wa-chev { display: none; }
  #page-trabaja .op-wa span { white-space: normal; text-align: center; font-size: 14.5px; line-height: 1.25; }
}
/* El CTA de WhatsApp flota sobre el menú inferior (como el mockup). Se usa
   position: fixed porque un ancestro con overflow impide "sticky". */
#page-trabaja.active .op-wa {
  position: fixed; left: 14px; right: 14px; margin: 0 auto; max-width: 692px;
  bottom: calc(var(--nav-height, 72px) + env(safe-area-inset-bottom) + 12px);
  z-index: 90;
}
#page-trabaja.active { padding-bottom: calc(var(--nav-height, 72px) + env(safe-area-inset-bottom) + 96px); }

/* ============================================================
   RONDA 20 — NutriAlumno / Curso de Nutrición según mockup.
   Todo con prefijo #page-premium-curso-nutricion (prefijo cn-).
   ============================================================ */
#page-premium-curso-nutricion {
  --cn-bg: #0b0b0b;
  --cn-card: var(--card-white);
  --cn-line: var(--border-soft);
  --cn-text: var(--text-dark);
  --cn-muted: var(--text-muted);
  --cn-gold: #FFD100;
  --cn-gold-text: #a87f00;
  --cn-gold-line: rgba(214,170,0,0.6);
  --cn-track: rgba(0,0,0,0.08);
  --cn-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
[data-theme="dark"] #page-premium-curso-nutricion {
  --cn-card: #111111;
  --cn-line: rgba(255,255,255,0.09);
  --cn-text: #ffffff;
  --cn-muted: rgba(255,255,255,0.62);
  --cn-gold-text: #FFD100;
  --cn-gold-line: rgba(255,209,0,0.6);
  --cn-track: rgba(255,255,255,0.1);
  --cn-shadow: 0 6px 20px rgba(0,0,0,0.35);
}
#page-premium-curso-nutricion.page { padding-left: 14px; padding-right: 14px; }
#page-premium-curso-nutricion .hidden { display: none !important; }

/* Cabecera */
#page-premium-curso-nutricion .cn-header { margin-bottom: 10px; gap: 12px; }
#page-premium-curso-nutricion .cn-header .back-btn { font-size: 24px; color: var(--cn-text); padding: 4px 6px 4px 2px; }
#page-premium-curso-nutricion .cn-titulo { margin: 0; font-size: 28px; font-weight: 800; letter-spacing: -0.6px; color: var(--cn-text); line-height: 1.1; }
#page-premium-curso-nutricion .cn-underline { width: 92px; margin: 0 0 16px 4px; background: var(--cn-gold); }

/* 1. Hero (siempre oscuro, como el mockup) */
#page-premium-curso-nutricion .cn-hero {
  position: relative; overflow: hidden; border-radius: 22px; margin-bottom: 14px;
  border: 1.5px solid rgba(255,209,0,0.55); color: #fff;
  background: radial-gradient(120% 90% at 0% 0%, #2a2410 0%, #121110 45%, var(--cn-bg) 100%);
  box-shadow: 0 0 0 1px rgba(255,209,0,0.06), 0 10px 34px rgba(255,209,0,0.1);
}
#page-premium-curso-nutricion .cn-hero-bowl {
  position: absolute; top: -34px; right: -58px; width: 250px; height: 250px;
  background: url("../assets/nutricion/hero-bowl.svg") center / contain no-repeat;
  filter: drop-shadow(0 12px 22px rgba(0,0,0,0.55));
}
#page-premium-curso-nutricion .cn-hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(11,11,11,0.55) 0%, rgba(11,11,11,0.25) 48%, rgba(11,11,11,0) 70%);
}
#page-premium-curso-nutricion .cn-hero-texto { position: relative; z-index: 1; width: 64%; padding: 18px 0 0 16px; }
#page-premium-curso-nutricion .cn-badge {
  display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px 5px 10px; border-radius: 999px;
  border: 1.5px solid var(--cn-gold); background: rgba(255,209,0,0.08);
  font-size: 12.5px; font-weight: 800; letter-spacing: 0.4px; text-transform: uppercase; color: var(--cn-gold);
}
#page-premium-curso-nutricion .cn-badge svg { width: 17px; height: 17px; }
#page-premium-curso-nutricion .cn-hero-titulo { margin: 14px 0 10px; font-size: 27px; line-height: 1.08; font-weight: 800; letter-spacing: -0.7px; color: #fff; }
#page-premium-curso-nutricion .cn-hero-titulo span { color: var(--cn-gold); }
#page-premium-curso-nutricion .cn-hero-sub { margin: 0; font-size: 13.5px; line-height: 1.45; color: rgba(255,255,255,0.8); }
#page-premium-curso-nutricion .cn-hero-sub b { color: #fff; }
#page-premium-curso-nutricion .cn-hero-feats {
  position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px; padding: 16px 12px 16px 14px;
}
#page-premium-curso-nutricion .cn-feat { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 12px; line-height: 1.25; color: rgba(255,255,255,0.88); }
#page-premium-curso-nutricion .cn-feat b { font-weight: 600; }
#page-premium-curso-nutricion .cn-ficon {
  flex-shrink: 0; width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--cn-gold);
  display: grid; place-items: center; color: var(--cn-gold);
}
#page-premium-curso-nutricion .cn-ficon svg { width: 19px; height: 19px; }

/* 2. Progreso */
#page-premium-curso-nutricion .cn-progreso {
  display: flex; align-items: center; gap: 14px; margin-bottom: 14px; padding: 14px;
  background: var(--cn-card); border: 1px solid var(--cn-line); border-radius: 18px; box-shadow: var(--cn-shadow);
}
#page-premium-curso-nutricion .cn-anillo { position: relative; flex-shrink: 0; width: 70px; height: 70px; }
#page-premium-curso-nutricion .cn-anillo svg { width: 100%; height: 100%; transform: rotate(-90deg); }
#page-premium-curso-nutricion .cn-anillo circle { fill: none; stroke-width: 7; }
#page-premium-curso-nutricion .cn-anillo-fondo { stroke: var(--cn-track); }
#page-premium-curso-nutricion .cn-anillo-valor { stroke: var(--cn-gold); stroke-linecap: round; transition: stroke-dashoffset .5s ease; }
#page-premium-curso-nutricion .cn-anillo b { position: absolute; inset: 0; display: grid; place-items: center; font-size: 17px; font-weight: 800; color: var(--cn-text); }
#page-premium-curso-nutricion .cn-progreso-info { flex: 1; min-width: 0; }
#page-premium-curso-nutricion .cn-progreso-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
#page-premium-curso-nutricion .cn-progreso-txt { min-width: 0; }
#page-premium-curso-nutricion .cn-progreso-txt strong { display: block; font-size: 15px; font-weight: 800; color: var(--cn-text); }
#page-premium-curso-nutricion .cn-progreso-txt span { display: block; margin-top: 2px; font-size: 12.5px; color: var(--cn-muted); }
#page-premium-curso-nutricion .cn-pill {
  flex-shrink: 0; display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 999px;
  border: 1.5px solid var(--cn-gold-line); font-size: 12px; font-weight: 800; color: var(--cn-gold-text); white-space: nowrap;
}
#page-premium-curso-nutricion .cn-pill svg { width: 15px; height: 15px; }
#page-premium-curso-nutricion .cn-barra { height: 7px; border-radius: 999px; background: var(--cn-track); overflow: hidden; }
#page-premium-curso-nutricion .cn-barra i { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--cn-gold); transition: width .5s ease; }

/* 3. Lecciones */
#page-premium-curso-nutricion .cn-lecciones { display: flex; flex-direction: column; gap: 10px; }
#page-premium-curso-nutricion .cn-leccion {
  display: flex; align-items: center; gap: 12px; width: 100%; padding: 8px 12px 8px 8px; text-align: left; cursor: pointer;
  font-family: inherit; color: var(--cn-text); background: var(--cn-card); border: 1px solid var(--cn-line);
  border-radius: 16px; box-shadow: var(--cn-shadow);
}
#page-premium-curso-nutricion .cn-leccion:active { transform: scale(0.99); }
#page-premium-curso-nutricion .cn-thumb {
  position: relative; flex-shrink: 0; width: 38%; max-width: 190px; aspect-ratio: 16 / 9.4;
  border-radius: 11px; overflow: hidden; background: #1c1c1c;
}
#page-premium-curso-nutricion .cn-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
#page-premium-curso-nutricion .cn-thumb.sin-imagen img { visibility: hidden; }
#page-premium-curso-nutricion .cn-thumb-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 30px; height: 30px;
  display: grid; place-items: center; color: #fff; filter: drop-shadow(0 2px 6px rgba(0,0,0,0.7));
}
#page-premium-curso-nutricion .cn-thumb-play svg { width: 26px; height: 26px; }
#page-premium-curso-nutricion .cn-thumb-visto {
  position: absolute; right: 5px; bottom: 5px; padding: 2px 7px; border-radius: 6px;
  background: rgba(0,0,0,0.78); color: var(--cn-gold); font-size: 10.5px; font-weight: 800;
}
#page-premium-curso-nutricion .cn-leccion-info { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
#page-premium-curso-nutricion .cn-etiqueta {
  display: inline-block; margin-bottom: 5px; padding: 2px 9px; border-radius: 999px; border: 1.3px solid var(--cn-gold-line);
  font-size: 11px; font-weight: 700; color: var(--cn-gold-text);
}
#page-premium-curso-nutricion .cn-leccion-info strong { font-size: 14.5px; font-weight: 800; line-height: 1.2; letter-spacing: -0.2px; }
#page-premium-curso-nutricion .cn-leccion-info small {
  margin-top: 3px; font-size: 12px; line-height: 1.3; color: var(--cn-muted);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
#page-premium-curso-nutricion .cn-leccion-btn {
  flex-shrink: 0; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center;
  background: var(--cn-gold); color: #151210; box-shadow: 0 4px 14px rgba(255,209,0,0.25);
}
#page-premium-curso-nutricion .cn-leccion-btn svg { width: 20px; height: 20px; margin-left: 2px; }
#page-premium-curso-nutricion .cn-leccion.is-vista .cn-leccion-btn {
  background: transparent; color: var(--cn-gold-text); border: 2px solid var(--cn-gold-line); box-shadow: none;
}
#page-premium-curso-nutricion .cn-leccion.is-vista .cn-leccion-btn svg { margin-left: 0; }

/* 4. CTA WhatsApp — flota sobre el menú inferior (igual que Oportunidad) */
#page-premium-curso-nutricion .cn-wa {
  display: flex; align-items: center; justify-content: center; gap: 10px; margin: 18px 0 6px;
  min-height: 56px; padding: 12px 18px; border-radius: 18px; text-decoration: none; cursor: pointer;
  background: linear-gradient(180deg, #2fd46f, #1fb95a); color: #fff; font-size: 16px; font-weight: 800; letter-spacing: -0.2px;
  box-shadow: 0 10px 26px rgba(31,185,90,0.35), 0 2px 0 rgba(255,255,255,0.15) inset;
}
#page-premium-curso-nutricion .cn-wa svg { width: 28px; height: 28px; flex-shrink: 0; }
#page-premium-curso-nutricion .cn-wa .cn-wa-chev { width: 18px; height: 18px; }
#page-premium-curso-nutricion .cn-wa span { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#page-premium-curso-nutricion.active .cn-wa {
  position: fixed; left: 14px; right: 14px; margin: 0 auto; max-width: 692px; z-index: 90;
  bottom: calc(var(--nav-height, 72px) + env(safe-area-inset-bottom) + 12px);
}
#page-premium-curso-nutricion.active { padding-bottom: calc(var(--nav-height, 72px) + env(safe-area-inset-bottom) + 96px); }

/* Pantallas anchas */
@media (min-width: 420px) {
  #page-premium-curso-nutricion .cn-hero-bowl { width: 280px; height: 280px; top: -40px; right: -60px; }
  #page-premium-curso-nutricion .cn-hero-titulo { font-size: 30px; }
  #page-premium-curso-nutricion .cn-hero-texto { width: 60%; padding: 20px 0 0 18px; }
  #page-premium-curso-nutricion .cn-feat { font-size: 12.5px; }
  #page-premium-curso-nutricion .cn-leccion-info strong { font-size: 15.5px; }
}
/* iPhone estándar y pequeños */
@media (max-width: 400px) {
  #page-premium-curso-nutricion .cn-hero-bowl { width: 210px; height: 210px; top: -24px; right: -70px; }
  #page-premium-curso-nutricion .cn-hero-texto { width: 70%; }
  #page-premium-curso-nutricion .cn-hero-titulo { font-size: 25px; }
  #page-premium-curso-nutricion .cn-hero-sub { font-size: 13px; }
  #page-premium-curso-nutricion .cn-ficon { width: 32px; height: 32px; }
  #page-premium-curso-nutricion .cn-ficon svg { width: 16px; height: 16px; }
  #page-premium-curso-nutricion .cn-feat { gap: 6px; font-size: 11px; }
  #page-premium-curso-nutricion .cn-hero-feats { padding: 14px 10px; gap: 6px; }
  #page-premium-curso-nutricion .cn-progreso { gap: 12px; padding: 12px; }
  #page-premium-curso-nutricion .cn-anillo { width: 60px; height: 60px; }
  #page-premium-curso-nutricion .cn-anillo b { font-size: 15px; }
  #page-premium-curso-nutricion .cn-progreso-top { flex-direction: column; gap: 6px; }
  #page-premium-curso-nutricion .cn-leccion { gap: 10px; padding-right: 10px; }
  #page-premium-curso-nutricion .cn-thumb { width: 36%; }
  #page-premium-curso-nutricion .cn-leccion-info strong { font-size: 13.5px; }
  #page-premium-curso-nutricion .cn-leccion-info small { font-size: 11.5px; }
  #page-premium-curso-nutricion .cn-leccion-btn { width: 36px; height: 36px; }
  #page-premium-curso-nutricion .cn-leccion-btn svg { width: 17px; height: 17px; }
  #page-premium-curso-nutricion .cn-wa { font-size: 15px; }
}
@media (max-width: 360px) {
  #page-premium-curso-nutricion .cn-titulo { font-size: 24px; }
  #page-premium-curso-nutricion .cn-hero-titulo { font-size: 23px; }
  #page-premium-curso-nutricion .cn-wa .cn-wa-chev { display: none; }
  #page-premium-curso-nutricion .cn-feat { font-size: 10.5px; }
}

/* RONDA 20 — ajustes tras revisión visual */
#page-premium-curso-nutricion .cn-hero-bowl { width: 235px; height: 235px; top: -30px; right: -62px; }
#page-premium-curso-nutricion .cn-hero-texto { width: 60%; }
#page-premium-curso-nutricion .cn-hero-titulo { font-size: 27px; }
#page-premium-curso-nutricion .cn-feat-txt { white-space: nowrap; }
#page-premium-curso-nutricion .cn-ficon { width: 34px; height: 34px; }
#page-premium-curso-nutricion .cn-ficon svg { width: 17px; height: 17px; }
#page-premium-curso-nutricion .cn-feat { gap: 7px; font-size: 12px; }
#page-premium-curso-nutricion .cn-hero-feats { padding: 16px 12px; }
#page-premium-curso-nutricion .cn-progreso-top { align-items: center; margin-bottom: 2px; flex-direction: row; }
#page-premium-curso-nutricion .cn-progreso-tit { min-width: 0; font-size: 14.5px; font-weight: 800; color: var(--cn-text); }
#page-premium-curso-nutricion .cn-progreso-sub { display: block; margin-bottom: 10px; font-size: 12.5px; color: var(--cn-muted); }
#page-premium-curso-nutricion .cn-pill { padding: 5px 10px; font-size: 11.5px; }
@media (min-width: 420px) {
  #page-premium-curso-nutricion .cn-hero-bowl { width: 250px; height: 250px; top: -34px; right: -58px; }
  #page-premium-curso-nutricion .cn-hero-titulo { font-size: 28px; }
}
@media (max-width: 400px) {
  #page-premium-curso-nutricion .cn-hero-bowl { width: 200px; height: 200px; top: -22px; right: -72px; }
  #page-premium-curso-nutricion .cn-hero-texto { width: 66%; }
  #page-premium-curso-nutricion .cn-hero-titulo { font-size: 24px; }
  #page-premium-curso-nutricion .cn-ficon { width: 30px; height: 30px; }
  #page-premium-curso-nutricion .cn-ficon svg { width: 15px; height: 15px; }
  #page-premium-curso-nutricion .cn-feat { gap: 5px; font-size: 10.8px; }
  #page-premium-curso-nutricion .cn-hero-feats { padding: 14px 10px; gap: 4px; }
  #page-premium-curso-nutricion .cn-progreso-top { flex-wrap: wrap; gap: 4px 8px; }
  #page-premium-curso-nutricion .cn-progreso-tit { font-size: 14px; }
  #page-premium-curso-nutricion .cn-pill { padding: 3px 8px; font-size: 11px; }
  #page-premium-curso-nutricion .cn-pill svg { width: 13px; height: 13px; }
}
@media (max-width: 360px) {
  #page-premium-curso-nutricion .cn-feat { font-size: 10px; }
  #page-premium-curso-nutricion .cn-ficon { width: 26px; height: 26px; }
  #page-premium-curso-nutricion .cn-hero-titulo { font-size: 22px; }
}
#page-premium-curso-nutricion .cn-progreso-tit { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 400px) {
  #page-premium-curso-nutricion .cn-wa { gap: 8px; padding: 12px 14px; font-size: 14.5px; }
  #page-premium-curso-nutricion .cn-wa svg { width: 24px; height: 24px; }
  #page-premium-curso-nutricion .cn-wa .cn-wa-chev { display: none; }
}
@media (max-width: 340px) {
  #page-premium-curso-nutricion .cn-wa span { white-space: normal; text-align: center; line-height: 1.2; }
}

/* ============================================================
   RONDA 21 — Maderoterapia según mockup. Prefijo #page-premium-maderoterapia (md-).
   ============================================================ */
#page-premium-maderoterapia {
  --md-bg: #0b0b0b;
  --md-card: var(--card-white);
  --md-tile: rgba(0,0,0,0.035);
  --md-line: var(--border-soft);
  --md-text: var(--text-dark);
  --md-muted: var(--text-muted);
  --md-gold: #FFD100;
  --md-gold-text: #a87f00;
  --md-gold-line: rgba(214,170,0,0.45);
  --md-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
[data-theme="dark"] #page-premium-maderoterapia {
  --md-card: #0f0f0f;
  --md-tile: #151515;
  --md-line: rgba(255,255,255,0.1);
  --md-text: #ffffff;
  --md-muted: rgba(255,255,255,0.62);
  --md-gold-text: #FFD100;
  --md-gold-line: rgba(255,209,0,0.35);
  --md-shadow: 0 6px 20px rgba(0,0,0,0.35);
}
#page-premium-maderoterapia.page { padding-left: 14px; padding-right: 14px; }
#page-premium-maderoterapia .hidden { display: none !important; }

/* Cabecera */
#page-premium-maderoterapia .md-header { margin-bottom: 14px; }
#page-premium-maderoterapia .md-header h1 { display: flex; align-items: center; gap: 12px; margin: 0 0 8px; font-size: 30px; font-weight: 800; letter-spacing: -0.6px; color: var(--md-text); }
#page-premium-maderoterapia .md-title-icon { display: inline-flex; color: var(--md-gold-text); }
#page-premium-maderoterapia .md-title-icon svg { width: 40px; height: 30px; }
#page-premium-maderoterapia .md-header .underline { width: 92px; }

/* 1. Hero (siempre oscuro: es una foto) */
#page-premium-maderoterapia .md-hero {
  position: relative; overflow: hidden; margin-bottom: 14px; border-radius: 22px; color: #fff;
  background: var(--md-bg); border: 1px solid rgba(255,209,0,0.28);
  box-shadow: 0 10px 30px rgba(0,0,0,0.25);
}
#page-premium-maderoterapia .md-hero-foto {
  position: absolute; top: 0; right: 0; bottom: 0; width: 58%;
  background: url("../assets/maderoterapia/hero.jpg") 40% center / cover no-repeat;
}
#page-premium-maderoterapia .md-hero-foto::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, var(--md-bg) 0%, rgba(11,11,11,0.75) 18%, rgba(11,11,11,0.1) 55%, rgba(11,11,11,0) 100%);
}
#page-premium-maderoterapia .md-hero-texto { position: relative; z-index: 1; width: 64%; padding: 22px 0 0 18px; }
#page-premium-maderoterapia .md-hero-titulo {
  margin: 0 0 8px; font-size: 34px; line-height: 1; font-weight: 900; letter-spacing: -0.8px;
  text-transform: uppercase; color: var(--md-gold); white-space: nowrap;
}
#page-premium-maderoterapia .md-hero-sub { margin: 0; font-size: 14px; line-height: 1.45; color: rgba(255,255,255,0.88); }
#page-premium-maderoterapia .md-chips { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; padding: 16px 18px 18px; }
#page-premium-maderoterapia .md-chip {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px 8px 10px; border-radius: 12px;
  background: rgba(20,20,20,0.72); border: 1px solid rgba(255,255,255,0.12);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  font-size: 11px; line-height: 1.25; color: rgba(255,255,255,0.88);
}
#page-premium-maderoterapia .md-chip svg { width: 24px; height: 24px; flex-shrink: 0; color: var(--md-gold); }

/* 2. Combo */
#page-premium-maderoterapia .md-card {
  margin-bottom: 14px; padding: 18px 14px 16px; border-radius: 20px;
  background: var(--md-card); border: 1px solid var(--md-gold-line); box-shadow: var(--md-shadow);
}
#page-premium-maderoterapia .md-card-titulo { margin: 0 4px 6px; font-size: 25px; font-weight: 800; letter-spacing: -0.5px; color: var(--md-text); }
#page-premium-maderoterapia .md-card-titulo span { color: var(--md-gold-text); }
#page-premium-maderoterapia .md-card-sub { margin: 0 4px 14px; font-size: 13.5px; line-height: 1.4; color: var(--md-muted); }
#page-premium-maderoterapia .md-combo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-bottom: 16px; }
#page-premium-maderoterapia .md-item {
  position: relative; min-width: 0; display: flex; flex-direction: column; align-items: center; text-align: center;
  padding: 8px 6px 10px; border-radius: 14px; background: var(--md-tile); border: 1px solid var(--md-line);
}
#page-premium-maderoterapia .md-item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; border-radius: 9px; margin-bottom: 6px; }
#page-premium-maderoterapia .md-item strong { font-size: 12.5px; font-weight: 800; line-height: 1.15; color: var(--md-text); }
#page-premium-maderoterapia .md-item small { margin-top: 4px; font-size: 9.5px; font-weight: 600; line-height: 1.25; letter-spacing: 0.5px; text-transform: uppercase; color: var(--md-muted); }
#page-premium-maderoterapia .md-item.is-principal {
  border: 2px solid var(--md-gold); box-shadow: 0 0 16px rgba(255,209,0,0.28), inset 0 0 14px rgba(255,209,0,0.06);
}
#page-premium-maderoterapia .md-item.is-principal strong { color: var(--md-gold-text); }
#page-premium-maderoterapia .md-item.is-principal small { color: var(--md-gold-text); font-weight: 800; }
#page-premium-maderoterapia .md-corona { margin-top: 3px; color: var(--md-gold-text); }
#page-premium-maderoterapia .md-corona svg { width: 18px; height: 18px; display: block; }
#page-premium-maderoterapia .md-beneficios {
  list-style: none; margin: 0; padding: 0 4px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 14px;
}
#page-premium-maderoterapia .md-beneficios li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; line-height: 1.3; color: var(--md-text); }
#page-premium-maderoterapia .md-check { flex-shrink: 0; width: 28px; height: 28px; color: var(--md-gold-text); }
#page-premium-maderoterapia .md-check svg { width: 100%; height: 100%; display: block; }

/* 3. Vídeo */
#page-premium-maderoterapia .md-video {
  position: relative; display: block; width: 100%; padding: 0; margin-bottom: 14px; overflow: hidden; cursor: pointer;
  aspect-ratio: 16 / 7; border-radius: 20px; border: 1px solid var(--md-line);
  background: #1b1410 url("../assets/maderoterapia/video.jpg") center / cover no-repeat;
}
#page-premium-maderoterapia .md-video img { display: block; width: 100%; height: 100%; object-fit: cover; }
#page-premium-maderoterapia .md-video img.sin-imagen { visibility: hidden; }
#page-premium-maderoterapia .md-video-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 70px; height: 70px; border-radius: 50%;
  display: grid; place-items: center; color: #fff; background: rgba(255,255,255,0.18);
  border: 2px solid rgba(255,255,255,0.8); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
#page-premium-maderoterapia .md-video-play svg { width: 32px; height: 32px; margin-left: 4px; }
#page-premium-maderoterapia .md-video:active { transform: scale(0.99); }

/* 4. WhatsApp flotante (como Oportunidad y NutriAlumno) */
#page-premium-maderoterapia .md-wa {
  display: flex; align-items: center; justify-content: center; gap: 12px; margin: 18px 0 6px;
  min-height: 56px; padding: 12px 18px; border-radius: 18px; text-decoration: none; cursor: pointer;
  background: linear-gradient(180deg, #2fd46f, #1fb95a); color: #fff; font-size: 16.5px; font-weight: 800; letter-spacing: -0.2px;
  box-shadow: 0 10px 26px rgba(31,185,90,0.35), 0 2px 0 rgba(255,255,255,0.15) inset;
}
#page-premium-maderoterapia .md-wa svg { width: 30px; height: 30px; flex-shrink: 0; }
#page-premium-maderoterapia .md-wa span { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#page-premium-maderoterapia.active .md-wa {
  position: fixed; left: 14px; right: 14px; margin: 0 auto; max-width: 692px; z-index: 90;
  bottom: calc(var(--nav-height, 72px) + env(safe-area-inset-bottom) + 12px);
}
#page-premium-maderoterapia.active { padding-bottom: calc(var(--nav-height, 72px) + env(safe-area-inset-bottom) + 96px); }

/* iPhone estándar y pequeños */
@media (max-width: 400px) {
  #page-premium-maderoterapia .md-header h1 { font-size: 26px; }
  #page-premium-maderoterapia .md-hero-titulo { font-size: 28px; }
  #page-premium-maderoterapia .md-hero-texto { width: 66%; padding: 18px 0 0 16px; }
  #page-premium-maderoterapia .md-hero-sub { font-size: 13px; }
  #page-premium-maderoterapia .md-hero-foto { width: 60%; }
  #page-premium-maderoterapia .md-chips { gap: 6px; padding: 14px 12px 14px 16px; }
  #page-premium-maderoterapia .md-chip { padding: 6px 9px 6px 7px; gap: 6px; font-size: 10.5px; }
  #page-premium-maderoterapia .md-chip svg { width: 20px; height: 20px; }
  #page-premium-maderoterapia .md-card-titulo { font-size: 22px; }
  #page-premium-maderoterapia .md-combo { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  #page-premium-maderoterapia .md-item strong { font-size: 13.5px; }
  #page-premium-maderoterapia .md-item small { font-size: 10px; }
  #page-premium-maderoterapia .md-beneficios li { font-size: 13px; }
  #page-premium-maderoterapia .md-check { width: 24px; height: 24px; }
  #page-premium-maderoterapia .md-wa { font-size: 15px; gap: 9px; }
  #page-premium-maderoterapia .md-wa svg { width: 26px; height: 26px; }
  #page-premium-maderoterapia .md-video { aspect-ratio: 16 / 8; }
}
@media (max-width: 350px) {
  #page-premium-maderoterapia .md-hero-titulo { font-size: 24px; }
  #page-premium-maderoterapia .md-beneficios { grid-template-columns: 1fr; }
  #page-premium-maderoterapia .md-wa span { white-space: normal; text-align: center; line-height: 1.2; }
}
/* RONDA 21 — ajustes tras revisión visual */
#page-premium-maderoterapia .md-item strong { font-size: 11.5px; letter-spacing: -0.2px; }
#page-premium-maderoterapia .md-item small { font-size: 8.8px; letter-spacing: 0.3px; }
#page-premium-maderoterapia .md-beneficios { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
#page-premium-maderoterapia .md-beneficios li { font-size: 13px; }
@media (max-width: 400px) {
  #page-premium-maderoterapia .md-item strong { font-size: 13.5px; }
  #page-premium-maderoterapia .md-item small { font-size: 10px; }
  #page-premium-maderoterapia .md-beneficios { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (min-width: 401px) {
  #page-premium-maderoterapia .md-combo { gap: 6px; }
  #page-premium-maderoterapia .md-item { padding: 8px 3px 10px; }
  #page-premium-maderoterapia .md-item strong { font-size: 11px; }
  #page-premium-maderoterapia .md-item.is-principal strong { letter-spacing: -0.45px; }
}

/* ============================================================
   RONDA 22 — Menú "+" como bottom sheet premium (según mockup).
   Solo estilos: mismos IDs, mismos listeners, mismos destinos.
   ============================================================ */
#nav-more-menu {
  --nm-bg: rgba(255,255,255,0.9);
  --nm-card: rgba(0,0,0,0.035);
  --nm-card-line: rgba(0,0,0,0.08);
  --nm-text: var(--text-dark);
  --nm-muted: var(--text-muted);
  --nm-gold: #FFD100;
  --nm-gold-text: #a87f00;
  --nm-icon-bg: #151515;
  left: 12px; right: 12px; margin: 0 auto; max-width: 560px;
  bottom: calc(var(--nav-height, 72px) + 8px + env(safe-area-inset-bottom));
  max-height: calc(100vh - var(--nav-height, 72px) - 150px - env(safe-area-inset-bottom));
  max-height: calc(100dvh - var(--nav-height, 72px) - 150px - env(safe-area-inset-bottom));
  overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  padding: 10px 16px 18px; border-radius: 30px;
  background: var(--nm-bg);
  border: 1.5px solid rgba(214,170,0,0.75);
  box-shadow: 0 0 0 1px rgba(255,209,0,0.08), 0 0 28px rgba(255,209,0,0.22), 0 -10px 40px rgba(0,0,0,0.35);
  backdrop-filter: blur(22px) saturate(150%); -webkit-backdrop-filter: blur(22px) saturate(150%);
  scrollbar-width: none;
}
#nav-more-menu::-webkit-scrollbar { display: none; }
[data-theme="dark"] #nav-more-menu {
  --nm-bg: linear-gradient(180deg, rgba(34,32,26,0.9) 0%, rgba(18,18,18,0.9) 45%, rgba(14,13,10,0.92) 100%);
  --nm-card: linear-gradient(180deg, rgba(38,38,38,0.85), rgba(24,24,24,0.85));
  --nm-card-line: rgba(255,255,255,0.1);
  --nm-text: #ffffff;
  --nm-muted: rgba(255,255,255,0.7);
  --nm-gold-text: #FFD100;
  border: 1.5px solid rgba(255,209,0,0.8);
  box-shadow: 0 0 0 1px rgba(255,209,0,0.1), 0 0 34px rgba(255,209,0,0.28), 0 -10px 40px rgba(0,0,0,0.6);
}
#nav-more-menu:not(.hidden) { animation: nmSubir .22s cubic-bezier(.2,.8,.2,1); }
@keyframes nmSubir { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }

#nav-more-menu .nav-more-handle { width: 46px; height: 5px; border-radius: 3px; margin: 2px auto 14px; background: rgba(128,128,128,0.45); }
#nav-more-menu .nav-more-section-label {
  margin: 0 4px 12px; font-size: 11.5px; font-weight: 800; letter-spacing: 0.32em; color: var(--nm-muted);
}
#nav-more-menu .nav-more-underline {
  height: 1.5px; margin: 16px 6px 18px; border-radius: 2px;
  background: linear-gradient(90deg, rgba(255,209,0,0), rgba(255,209,0,0.7) 20%, rgba(255,209,0,0.7) 80%, rgba(255,209,0,0));
}

/* Acciones rápidas */
#nav-more-menu .nav-more-quickactions { gap: 10px; }
#nav-more-menu .nav-quickaction-btn {
  gap: 14px; min-height: 64px; padding: 10px 12px 10px 12px; border-radius: 18px;
  background: var(--nm-card); border: 1px solid var(--nm-card-line); color: var(--nm-text);
  font-size: 16.5px; font-weight: 800; letter-spacing: -0.2px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.05);
}
#nav-more-menu .qa-icon {
  flex-shrink: 0; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
  font-size: 23px; line-height: 1;
  background: linear-gradient(145deg, rgba(255,209,0,0.28), rgba(120,90,0,0.35));
  border: 1px solid rgba(255,209,0,0.45);
  box-shadow: 0 0 12px rgba(255,209,0,0.18), inset 0 1px 0 rgba(255,255,255,0.12);
}
#nav-more-menu .qa-text { flex: 1; min-width: 0; }
#nav-more-menu .qa-chev {
  flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center;
  color: var(--nm-gold-text); border: 1px solid rgba(214,170,0,0.45); background: rgba(0,0,0,0.12);
}
#nav-more-menu .qa-chev svg { width: 16px; height: 16px; }
#nav-more-menu .nav-quickaction-btn:active { transform: scale(0.985); background: rgba(255,215,0,0.12); }

/* Explorar NF24FIT */
#nav-more-menu .nav-more-explore-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
#nav-more-menu .nav-more-explore-grid .nav-btn {
  gap: 8px; min-height: 92px; padding: 10px 4px 11px; border-radius: 18px; justify-content: center;
  background: var(--nm-card); border: 1px solid var(--nm-card-line); color: var(--nm-text);
  box-shadow: 0 4px 14px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.05);
}
#nav-more-menu .nav-more-explore-grid .nav-btn.hidden { display: none; }
#nav-more-menu .nav-more-explore-grid .nav-btn .icon {
  width: 46px; height: 46px; border-radius: 50%; color: var(--nm-gold);
  background: radial-gradient(circle at 50% 35%, #232323, var(--nm-icon-bg));
  border: 1px solid rgba(255,209,0,0.35);
  box-shadow: 0 0 14px rgba(255,209,0,0.22), inset 0 1px 0 rgba(255,255,255,0.08);
}
#nav-more-menu .nav-more-explore-grid .nav-btn .icon svg { width: 22px; height: 22px; }
#nav-more-menu .nav-more-explore-grid .nav-btn > span:last-child,
#nav-more-menu .nav-more-explore-grid .nav-btn { font-size: 13.5px; font-weight: 700; letter-spacing: -0.1px; }
#nav-more-menu .nav-more-explore-grid .nav-btn.active {
  background: var(--nm-card); border-color: rgba(255,209,0,0.7); box-shadow: 0 0 14px rgba(255,209,0,0.25);
}
#nav-more-menu .nav-more-explore-grid .nav-btn:active { transform: scale(0.97); }

/* Botón X de cierre */
#nav-more-menu .nav-more-close {
  display: grid; place-items: center; margin: 18px auto 0; width: 60px; height: 60px; border-radius: 50%;
  border: none; cursor: pointer; color: #111; background: var(--nm-gold);
  box-shadow: 0 0 0 6px rgba(255,209,0,0.14), 0 0 26px rgba(255,209,0,0.45), 0 6px 16px rgba(0,0,0,0.4);
}
#nav-more-menu .nav-more-close svg { width: 24px; height: 24px; }
#nav-more-menu .nav-more-close:active { transform: scale(0.95); }

/* Fondo: app oscurecida y desenfocada */
.nav-more-overlay { background: rgba(0,0,0,0.55); }
#nav-more-menu:not(.hidden) + .nav-more-overlay {
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}

/* iPhone estándar y pequeños */
@media (max-width: 400px) {
  #nav-more-menu { padding: 8px 12px 16px; border-radius: 26px; }
  #nav-more-menu .nav-quickaction-btn { min-height: 58px; font-size: 15px; gap: 12px; }
  #nav-more-menu .qa-icon { width: 40px; height: 40px; font-size: 21px; }
  #nav-more-menu .qa-chev { width: 30px; height: 30px; }
  #nav-more-menu .nav-more-explore-grid { gap: 8px; }
  #nav-more-menu .nav-more-explore-grid .nav-btn { min-height: 84px; }
  #nav-more-menu .nav-more-explore-grid .nav-btn > span:last-child,
  #nav-more-menu .nav-more-explore-grid .nav-btn { font-size: 12.5px; }
  #nav-more-menu .nav-more-explore-grid .nav-btn .icon { width: 42px; height: 42px; }
  #nav-more-menu .nav-more-close { width: 54px; height: 54px; margin-top: 14px; }
}
@media (max-width: 350px) {
  #nav-more-menu .nav-more-explore-grid .nav-btn > span:last-child,
  #nav-more-menu .nav-more-explore-grid .nav-btn { font-size: 11px; }
  #nav-more-menu .nav-quickaction-btn { font-size: 14px; }
}
/* RONDA 22 — compactar para que entre sin scroll en iPhone */
#nav-more-menu {
  max-height: calc(100vh - var(--nav-height, 72px) - 96px - env(safe-area-inset-bottom));
  max-height: calc(100dvh - var(--nav-height, 72px) - 96px - env(safe-area-inset-bottom));
  padding-bottom: 14px;
}
#nav-more-menu .nav-more-handle { margin-bottom: 12px; }
#nav-more-menu .nav-more-section-label { margin-bottom: 10px; }
#nav-more-menu .nav-more-quickactions { gap: 8px; }
#nav-more-menu .nav-quickaction-btn { min-height: 56px; padding-top: 7px; padding-bottom: 7px; }
#nav-more-menu .nav-more-underline { margin: 14px 6px 14px; }
#nav-more-menu .nav-more-explore-grid { gap: 8px; }
#nav-more-menu .nav-more-explore-grid .nav-btn { min-height: 80px; padding: 9px 4px 9px; gap: 6px; }
#nav-more-menu .nav-more-explore-grid .nav-btn .icon { width: 42px; height: 42px; }
#nav-more-menu .nav-more-close { width: 56px; height: 56px; margin-top: 14px; }
@media (max-width: 400px) {
  #nav-more-menu .nav-quickaction-btn { min-height: 52px; }
  #nav-more-menu .qa-icon { width: 38px; height: 38px; font-size: 20px; }
  #nav-more-menu .nav-more-explore-grid .nav-btn { min-height: 74px; }
  #nav-more-menu .nav-more-explore-grid .nav-btn .icon { width: 38px; height: 38px; }
  #nav-more-menu .nav-more-explore-grid .nav-btn .icon svg { width: 19px; height: 19px; }
  #nav-more-menu .nav-more-close { width: 50px; height: 50px; margin-top: 12px; }
}

/* ============================================================
   RONDA 23 — Pulido del menú "+": más compacto, sin X duplicada,
   última fila repartida a lo ancho. Misma estética negro/dorado.
   ============================================================ */
#nav-more-menu { padding: 8px 14px 14px; border-radius: 28px; }
#nav-more-menu .nav-more-handle { width: 40px; height: 4px; margin: 2px auto 12px; }
#nav-more-menu .nav-more-section-label { margin: 0 4px 9px; font-size: 10.5px; letter-spacing: 0.28em; }

/* Acciones rápidas: filas más finas, jerarquía más clara */
#nav-more-menu .nav-more-quickactions { gap: 7px; }
#nav-more-menu .nav-quickaction-btn { min-height: 54px; padding: 7px 10px; gap: 12px; border-radius: 16px; font-size: 15.5px; }
#nav-more-menu .qa-icon { width: 38px; height: 38px; border-radius: 11px; font-size: 20px; }
#nav-more-menu .qa-chev { width: 28px; height: 28px; }
#nav-more-menu .qa-chev svg { width: 14px; height: 14px; }
#nav-more-menu .nav-more-underline { margin: 13px 8px 13px; }

/* Explorar: rejilla de 6 columnas (cada botón ocupa 2) para poder
   repartir la última fila sin dejar huecos. */
#nav-more-menu .nav-more-explore-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
#nav-more-menu .nav-more-explore-grid > .nav-btn { grid-column: span 2; min-height: 76px; padding: 9px 4px; gap: 6px; border-radius: 16px; }
#nav-more-menu .nav-more-explore-grid .nav-btn .icon { width: 40px; height: 40px; }
#nav-more-menu .nav-more-explore-grid .nav-btn .icon svg { width: 20px; height: 20px; }
/* Resto 2: los dos últimos a media fila cada uno */
#nav-more-menu .nav-more-explore-grid > .nav-btn.nm-fila-2 { grid-column: span 3; }
/* Resto 1 (p. ej. Admin): último a lo ancho, en horizontal y más bajo */
#nav-more-menu .nav-more-explore-grid > .nav-btn.nm-fila-1 {
  grid-column: 1 / -1; flex-direction: row; justify-content: center; gap: 12px; min-height: 52px; padding: 6px 14px;
}
#nav-more-menu .nav-more-explore-grid > .nav-btn.nm-fila-1 .icon { width: 34px; height: 34px; }
#nav-more-menu .nav-more-explore-grid > .nav-btn.nm-fila-1 .icon svg { width: 17px; height: 17px; }

@media (max-width: 400px) {
  #nav-more-menu { padding: 8px 12px 12px; }
  #nav-more-menu .nav-quickaction-btn { min-height: 50px; font-size: 14.5px; }
  #nav-more-menu .qa-icon { width: 34px; height: 34px; font-size: 18px; }
  #nav-more-menu .nav-more-explore-grid > .nav-btn { min-height: 70px; }
  #nav-more-menu .nav-more-explore-grid .nav-btn .icon { width: 36px; height: 36px; }
  #nav-more-menu .nav-more-explore-grid .nav-btn .icon svg { width: 18px; height: 18px; }
  #nav-more-menu .nav-more-explore-grid > .nav-btn.nm-fila-1 { min-height: 48px; }
}

/* ============================================================
   RONDA 24 — Reservas premium + actualización automática
   Cliente (#page-horarios) y gestión Admin/Coach (#page-admin-reservas /
   Mi centro). Mantiene la lógica existente; solo reorganiza jerarquía,
   disponibilidad y detalle seleccionado.
   ============================================================ */

#page-horarios .reservas-page-title-row { align-items:center; gap:12px; }
#page-horarios .reservas-page-title-row h1 { margin:0; font-size:clamp(25px,6vw,34px); line-height:1.05; }
#page-horarios .reservas-title-underline { margin:14px 0 22px; }

.reservas-toolbar,
.reservas-gestion-toolbar {
  display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px;
}
.reservas-week-nav { margin:0; flex:1; max-width:390px; justify-content:flex-start; }
.reservas-week-nav .week-label {
  flex:0 1 auto; min-width:150px; padding:11px 16px; border:1px solid var(--border-soft);
  border-radius:14px; background:var(--card-white); font-size:16px; font-weight:800;
}
.reservas-week-nav .week-nav-btn,
.reservas-admin-nav button {
  width:46px; height:46px; border-radius:14px; border:1px solid var(--border-soft);
  background:var(--card-white); color:var(--text-dark); font-size:25px; display:flex;
  align-items:center; justify-content:center; cursor:pointer; flex:0 0 auto;
}
.reservas-week-nav .week-nav-btn:disabled { opacity:.28; }
.reservas-secondary-btn {
  min-height:46px; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:0 15px; border-radius:14px; border:1px solid var(--border-soft);
  background:var(--card-white); color:var(--text-dark); font:inherit; font-size:12.5px;
  font-weight:800; cursor:pointer; white-space:nowrap;
}
.reservas-secondary-btn span { color:var(--gold); font-size:18px; line-height:1; }

.reservas-meta-row {
  display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;
  margin:0 0 14px;
}
.reservas-week-summary {
  min-height:42px; display:flex; align-items:center; gap:6px; padding:8px 13px;
  border:1px solid rgba(255,209,0,.28); border-radius:12px; background:rgba(255,209,0,.045);
  color:var(--text-muted); font-size:11.5px;
}
.reservas-week-summary strong { color:var(--gold); font-size:15px; }
.reservas-week-summary-icon { font-size:15px; }
.reservas-legend { display:flex; align-items:center; gap:12px; flex-wrap:wrap; color:var(--text-muted); font-size:10.5px; }
.reservas-legend span { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.reservas-dot { width:9px; height:9px; border-radius:50%; display:inline-block; box-shadow:0 0 9px currentColor; }
.reservas-dot.disponible { background:#38d85b; color:#38d85b; }
.reservas-dot.ultimas { background:#ffd100; color:#ffd100; }
.reservas-dot.completo { background:#ff4646; color:#ff4646; }
.reservas-live-pill {
  display:inline-flex; align-items:center; gap:6px; font-size:10.5px; color:var(--text-muted);
  padding:7px 10px; border-radius:999px; border:1px solid var(--border-soft); background:var(--card-white);
}
.reservas-live-pill i { width:8px; height:8px; border-radius:50%; background:#36d75c; box-shadow:0 0 9px rgba(54,215,92,.65); }

.reservas-mis-panel {
  margin:0 0 14px; padding:14px; border-radius:16px; border:1px solid var(--border-soft); background:var(--card-white);
}
.reservas-mis-title { font-size:14px; font-weight:800; margin-bottom:8px; }
.reservas-mis-row { display:grid; grid-template-columns:72px 1fr auto; gap:8px; align-items:center; padding:9px 0; border-top:1px solid var(--border-soft); font-size:11.5px; }
.reservas-mis-row:first-of-type { border-top:none; }
.reservas-mis-date { color:var(--gold); font-weight:800; }
.reservas-mis-row > span:last-child { color:var(--text-muted); }
.reservas-mis-empty { color:var(--text-muted); font-size:12px; text-align:center; padding:6px 0; }

.reservas-calendar-wrap { overflow-x:auto; padding-bottom:4px; scrollbar-width:none; }
.reservas-calendar-wrap::-webkit-scrollbar { display:none; }
.reservas-calendar-table { border-spacing:6px; min-width:560px; table-layout:fixed; }
.reservas-calendar-table thead th { height:54px; padding:0 2px 8px !important; }
.reservas-calendar-table thead th .day-name { font-size:12px !important; font-weight:800; color:var(--text-dark) !important; }
.reservas-calendar-table thead th .day-date { margin-top:3px; font-size:10px; color:var(--text-muted); }
.reservas-calendar-table tbody th {
  width:62px; min-width:62px; font-size:12px; font-weight:800; color:var(--text-muted); padding-right:5px;
}
.reservas-centro-corner { width:62px; min-width:62px; vertical-align:middle !important; }
.reservas-centro-corner img {
  display:block; width:38px; height:38px; margin:0 auto; object-fit:contain; border-radius:10px;
  background:rgba(255,255,255,.96); padding:3px; border:1px solid rgba(255,209,0,.32);
  box-shadow:0 0 16px rgba(255,209,0,.09);
}
.reservas-calendar-table .cal-cell,
.reservas-calendar-table .reserva-slot {
  min-width:78px; width:100%; height:66px; border-radius:12px; padding:7px 4px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  background:#15171a; border:1px solid rgba(255,255,255,.08); color:#fff;
  transition:transform .12s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.reservas-calendar-table .reserva-slot:active { transform:scale(.97); }
.reserva-slot-count { font-size:11px; font-weight:900; line-height:1.05; }
.reservas-calendar-table .reserva-slot small,
.reservas-calendar-table .cal-cell.empty small { display:block; font-size:9px; line-height:1.05; color:rgba(255,255,255,.7); max-width:72px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.reservas-calendar-table .reserva-slot.disponible { border-color:#31d24f; background:linear-gradient(180deg,rgba(49,210,79,.10),rgba(20,23,21,.96)); box-shadow:inset 0 0 0 1px rgba(49,210,79,.05); }
.reservas-calendar-table .reserva-slot.disponible .reserva-slot-count { color:#5ce676; }
.reservas-calendar-table .reserva-slot.ultimas { border-color:#ffd100; background:linear-gradient(180deg,rgba(255,209,0,.16),rgba(24,22,13,.96)); box-shadow:0 0 13px rgba(255,209,0,.10); }
.reservas-calendar-table .reserva-slot.ultimas .reserva-slot-count { color:#ffd100; }
.reservas-calendar-table .reserva-slot.completo { border-color:#ff4a4a; background:linear-gradient(180deg,rgba(255,74,74,.18),rgba(30,15,15,.95)); }
.reservas-calendar-table .reserva-slot.completo .reserva-slot-count { color:#ff6666; }
.reservas-calendar-table .reserva-slot.reservado { border-color:#ffd100; background:linear-gradient(180deg,rgba(255,209,0,.25),rgba(30,26,9,.97)); color:#fff; box-shadow:0 0 18px rgba(255,209,0,.16); }
.reservas-calendar-table .reserva-slot.reservado .reserva-slot-count { color:#ffd100; }
.reservas-calendar-table .reserva-slot.cancelada { border-color:rgba(255,90,90,.35); background:rgba(255,60,60,.05); opacity:.55; }
.reservas-calendar-table .reserva-slot.pasado { opacity:.34; border-style:solid; }
.reservas-calendar-table .cal-cell.empty { background:#141619; border:1px solid rgba(255,255,255,.06); color:var(--text-muted); }
.reservas-calendar-table .admin-cal-class.selected { outline:2px solid var(--gold); outline-offset:2px; box-shadow:0 0 22px rgba(255,209,0,.18); }

.reservas-selected-wrap,
.reservas-gestion-detalle { margin-top:14px; }
.reservas-selected-card {
  display:grid; grid-template-columns:64px minmax(0,1fr) auto; gap:14px; align-items:center;
  padding:16px; border-radius:18px; border:1px solid rgba(255,209,0,.28);
  background:linear-gradient(135deg,rgba(255,209,0,.065),rgba(17,17,17,.98));
  box-shadow:0 12px 30px rgba(0,0,0,.16);
}
.reservas-selected-icon {
  width:58px; height:58px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  font-size:25px; background:#202226; border:1px solid var(--border-soft);
}
.reservas-selected-info { min-width:0; display:flex; flex-direction:column; gap:3px; }
.reservas-selected-info strong { font-size:16px; }
.reservas-selected-info span { font-size:14px; font-weight:700; }
.reservas-selected-info small { font-size:10.5px; color:var(--text-muted); }
.reservas-selected-cta {
  min-height:52px; border:none; border-radius:15px; padding:0 18px; background:var(--gold); color:#111;
  font:inherit; font-size:13px; font-weight:900; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:10px;
  box-shadow:0 8px 22px rgba(255,209,0,.18);
}
.reservas-selected-cta span { font-size:20px; line-height:1; }

/* Gestión Admin / Coach */
#page-admin-reservas #admin-reservas-list { margin-top:2px; }
.reservas-gestion-toolbar { align-items:stretch; }
.reservas-admin-nav { display:flex; align-items:center; gap:8px; margin:0; }
.reservas-admin-nav strong {
  min-height:46px; display:flex; align-items:center; padding:0 15px; border-radius:14px;
  border:1px solid var(--border-soft); background:var(--card-white); font-size:14px; white-space:nowrap;
}
.reservas-gestion-actions { display:flex; gap:8px; margin-left:auto; }
.reservas-meta-admin { margin-top:4px; }
.reservas-admin-substats { display:flex; flex-wrap:wrap; gap:8px 14px; margin:-5px 0 12px; font-size:10.5px; color:var(--text-muted); }
.reservas-admin-substats strong { color:var(--text-dark); }
.reservas-cierres-panel {
  margin:0 0 13px; padding:12px; border-radius:14px; border:1px solid rgba(255,85,85,.16); background:rgba(255,70,70,.035);
}
.reservas-cierres-title { font-size:11px; font-weight:800; color:#ff7a7a; margin-bottom:8px; text-transform:uppercase; letter-spacing:.05em; }
.reservas-cierres-days { display:flex; gap:7px; flex-wrap:wrap; }
.reservas-cierres-days .admin-cal-cancelar-dia {
  border:1px solid rgba(255,90,90,.32); background:transparent; color:#ff7373; border-radius:10px;
  padding:7px 9px; font:inherit; font-size:10px; cursor:pointer;
}
.reservas-admin-selected { margin-bottom:10px; }
.reservas-asistentes-panel {
  margin-top:8px; padding:14px; border-radius:16px; border:1px solid var(--border-soft); background:var(--card-white);
}
.reservas-asistentes-title { font-size:13px; font-weight:800; margin-bottom:8px; }
.reservas-cliente-row { display:flex; align-items:center; gap:9px; padding:8px 0; border-top:1px solid var(--border-soft); font-size:12px; }
.reservas-cliente-row:first-of-type { border-top:none; }
.reservas-cliente-row img { width:36px; height:36px; border-radius:50%; object-fit:cover; border:1px solid rgba(255,209,0,.22); }
.reservas-cancelada-note { margin:8px 0; padding:10px 12px; border:1px solid rgba(255,209,0,.25); border-radius:12px; color:var(--gold); font-size:11px; font-weight:700; }
.reservas-cancel-single { width:100%; margin-top:12px; color:var(--danger); }

@media (max-width:620px) {
  .reservas-toolbar,
  .reservas-gestion-toolbar { align-items:stretch; }
  .reservas-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; }
  .reservas-week-nav .week-label { min-width:0; padding:10px 11px; font-size:14px; }
  .reservas-week-nav .week-nav-btn,
  .reservas-admin-nav button { width:42px; height:42px; }
  .reservas-secondary-btn { min-height:42px; padding:0 11px; font-size:11px; }
  .reservas-meta-row { align-items:flex-start; }
  .reservas-legend { width:100%; justify-content:flex-start; gap:10px; }
  .reservas-calendar-table { min-width:535px; border-spacing:5px; }
  .reservas-calendar-table tbody th,
  .reservas-centro-corner { width:56px; min-width:56px; }
  .reservas-calendar-table .cal-cell,
  .reservas-calendar-table .reserva-slot { min-width:74px; height:64px; }
  .reservas-selected-card { grid-template-columns:50px minmax(0,1fr); gap:10px; padding:13px; }
  .reservas-selected-icon { width:48px; height:48px; font-size:21px; }
  .reservas-selected-cta { grid-column:1 / -1; min-height:46px; width:100%; }
  .reservas-gestion-toolbar { display:block; }
  .reservas-admin-nav { width:100%; }
  .reservas-admin-nav strong { flex:1; justify-content:center; min-width:0; font-size:13px; }
  .reservas-gestion-actions { margin:8px 0 0; }
  .reservas-gestion-actions .reservas-secondary-btn { flex:1; }
  .reservas-live-pill { order:3; }
  .reservas-mis-row { grid-template-columns:66px 1fr auto; }
}

[data-theme="light"] .reservas-calendar-table .reserva-slot,
[data-theme="light"] .reservas-calendar-table .cal-cell.empty { color:#111; background:#fff; }
[data-theme="light"] .reservas-calendar-table .reserva-slot small,
[data-theme="light"] .reservas-calendar-table .cal-cell.empty small { color:rgba(0,0,0,.55); }
[data-theme="light"] .reservas-selected-card { background:linear-gradient(135deg,rgba(255,209,0,.08),#fff); }

/* Ajuste móvil final: cinco días visibles sin scroll horizontal. */
.reservas-calendar-table { min-width:100%; border-spacing:4px; }
.reservas-calendar-table .cal-cell,
.reservas-calendar-table .reserva-slot { min-width:0; }
.reservas-centro-corner img { width:32px; height:32px; padding:2px; }
@media (max-width:620px) {
  .reservas-calendar-table { min-width:100%; border-spacing:3px; }
  .reservas-calendar-table tbody th,
  .reservas-centro-corner { width:49px; min-width:49px; }
  .reservas-calendar-table .cal-cell,
  .reservas-calendar-table .reserva-slot { min-width:0; height:62px; padding:5px 2px; }
  .reservas-calendar-table .reserva-slot small,
  .reservas-calendar-table .cal-cell.empty small { max-width:52px; font-size:8px; }
  .reserva-slot-count { font-size:10px; }
}


/* ============================================================
   RONDA 25 — SKIN, GPS fullscreen, Maderoterapia pública y alta completa
   ============================================================ */

/* GPS: al empezar una actividad, la web se convierte en una vista de
   entrenamiento de pantalla completa. En iPhone esto evita depender de la
   Fullscreen API, que no siempre está disponible en Safari/PWA. */
body.km-gps-fullscreen { overflow: hidden !important; background:#090a0b; }
body.km-gps-fullscreen #app-header,
body.km-gps-fullscreen #bottom-nav,
body.km-gps-fullscreen #theme-toggle,
body.km-gps-fullscreen #profile-toggle,
body.km-gps-fullscreen #birthday-banner,
body.km-gps-fullscreen #nav-more-menu,
body.km-gps-fullscreen #nav-more-overlay { display:none !important; }
body.km-gps-fullscreen #page-kilometros {
  display:block !important; position:fixed !important; inset:0 !important; z-index:10020 !important;
  overflow:hidden !important; margin:0 !important; max-width:none !important;
  padding:calc(env(safe-area-inset-top) + 10px) 12px calc(env(safe-area-inset-bottom) + 10px) !important;
  background:#090a0b !important;
}
body.km-gps-fullscreen #page-kilometros > .header-row,
body.km-gps-fullscreen #page-kilometros > .underline,
body.km-gps-fullscreen #page-kilometros > .km-periodo-tabs,
body.km-gps-fullscreen #page-kilometros > #km-goal-card,
body.km-gps-fullscreen #page-kilometros > .km-mode-tabs,
body.km-gps-fullscreen #page-kilometros > #km-manual-wrap,
body.km-gps-fullscreen #page-kilometros > #km-history { display:none !important; }
body.km-gps-fullscreen #km-gps-wrap {
  height:100%; margin:0 !important; padding:12px !important; box-sizing:border-box;
  display:flex; flex-direction:column; border-radius:22px; border:1px solid rgba(255,209,0,.28);
  background:linear-gradient(180deg,#16181b,#0d0e10); box-shadow:0 0 35px rgba(255,209,0,.08);
}
body.km-gps-fullscreen .km-activity-header { margin-bottom:8px; }
body.km-gps-fullscreen .km-activity-header-title { font-size:19px; }
body.km-gps-fullscreen .km-activity-header-sub { font-size:11px; }
body.km-gps-fullscreen #km-ajustes-btn { display:none; }
body.km-gps-fullscreen .km-activity-map-wrap { flex:1 1 auto; min-height:0; height:auto; margin-bottom:8px; border-radius:18px; overflow:hidden; }
body.km-gps-fullscreen .km-map,
body.km-gps-fullscreen .km-map-placeholder { height:100% !important; min-height:34vh; }
body.km-gps-fullscreen .km-live-stats { flex:0 0 auto; padding:8px 0; margin:0; }
body.km-gps-fullscreen .km-live-stat .val { font-size:clamp(34px,10vw,54px); }
body.km-gps-fullscreen .km-live-stats-secundarias { flex:0 0 auto; margin-bottom:6px; padding-top:8px; }
body.km-gps-fullscreen #km-gps-status { min-height:18px; flex:0 0 auto; }
body.km-gps-fullscreen #km-gps-running { flex:0 0 auto; margin-top:4px; padding-top:6px; }
body.km-gps-fullscreen .km-gps-actions { display:grid; grid-template-columns:1fr 1.45fr; gap:10px; }
body.km-gps-fullscreen .km-gps-actions button { min-height:54px; border-radius:16px; font-size:14px; font-weight:800; }
@media(max-width:380px){
  body.km-gps-fullscreen .km-live-stats-secundarias { display:none; }
  body.km-gps-fullscreen .km-map, body.km-gps-fullscreen .km-map-placeholder { min-height:42vh; }
}

/* Maderoterapia — acceso directo a la landing pública compartible. */
#page-premium-maderoterapia .md-share-public {
  width:100%; min-height:48px; margin:0 0 14px; border-radius:15px; cursor:pointer;
  border:1px solid rgba(255,209,0,.42); background:rgba(255,209,0,.07); color:var(--md-gold-text);
  font:inherit; font-size:13px; font-weight:800; letter-spacing:.01em;
}
#page-premium-maderoterapia .md-share-public:active { transform:scale(.99); background:rgba(255,209,0,.13); }

/* Alta de cliente completa */
.gnf-ficha-new-note { margin:10px 0 14px; padding:10px 12px; border-radius:11px; border:1px solid rgba(255,209,0,.18); background:rgba(255,209,0,.045); color:var(--text-muted); font-size:11px; line-height:1.45; }
#gnf-ficha-nueva-modal .gnf-ficha-card { width:min(960px,96vw); }
@media(max-width:720px){
  #gnf-ficha-nueva-modal .gnf-ficha-card { width:96vw; max-height:91dvh; overflow:auto; }
  #gnf-ficha-nueva-modal .gnf-ficha-grid { grid-template-columns:1fr; }
  #gnf-ficha-nueva-modal .gnf-ficha-actions { position:sticky; bottom:0; background:var(--surface-2,#17181b); padding-top:10px; z-index:2; }
  #gnf-ficha-nueva-modal .gnf-ficha-actions .btn-primary { flex:1 1 100%; }
}


/* ============================================================
   NF24 · Embudo Colabora dentro de Workday > Mis enlaces y QR
   Tres rutas personalizadas usando el token de oportunidad ya existente.
   ============================================================ */
.captacion-colabora-card{border-color:rgba(255,209,0,.28);background:linear-gradient(145deg,rgba(255,209,0,.055),var(--card-white,#151515));}
.captacion-colabora-list{display:grid;gap:10px;margin-top:14px;}
.captacion-colabora-row{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--border-soft,rgba(255,255,255,.08));border-radius:14px;background:rgba(0,0,0,.16);}
.captacion-colabora-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.captacion-colabora-copy strong{font-size:13px;color:var(--text-dark,#fff);}
.captacion-colabora-copy span{font-size:11px;line-height:1.35;color:var(--text-muted,rgba(255,255,255,.55));}
.captacion-colabora-actions{margin-top:0;flex:0 0 auto;}
@media(max-width:640px){.captacion-colabora-row{align-items:flex-start;flex-direction:column}.captacion-colabora-actions{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.captacion-colabora-actions .workday-action{justify-content:center;min-width:0;padding-left:8px;padding-right:8px}}


/* ============================================================
   NF24 · Kit de contenido para Mis enlaces y QR (v27)
   ============================================================ */
.nf24-kit-overlay{position:fixed;inset:0;z-index:10020;background:rgba(0,0,0,.78);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;padding:12px;}
.nf24-kit-modal{width:min(720px,100%);max-height:92vh;overflow:auto;background:#0e0e0e;border:1px solid rgba(255,209,0,.24);border-radius:24px 24px 16px 16px;padding:18px;box-shadow:0 -24px 80px rgba(0,0,0,.5);}
.nf24-kit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:6px;}
.nf24-kit-head span{display:block;font-size:10px;font-weight:900;letter-spacing:.11em;color:#FFD100;}
.nf24-kit-head h2{margin:4px 0 0;color:#fff;font-size:22px;line-height:1.1;}
.nf24-kit-close{border:0;background:rgba(255,255,255,.08);color:#fff;width:38px;height:38px;border-radius:50%;font-size:26px;line-height:1;cursor:pointer;}
.nf24-kit-intro{font-size:12px;line-height:1.5;color:rgba(255,255,255,.58);margin:0 0 14px;}
.nf24-kit-visual{position:relative;overflow:hidden;min-height:245px;border-radius:20px;padding:24px 20px;display:flex;flex-direction:column;justify-content:flex-end;background:radial-gradient(circle at 80% 15%,rgba(255,209,0,.22),transparent 32%),linear-gradient(145deg,#1b1b1b,#050505);border:1px solid rgba(255,209,0,.28);margin-bottom:16px;}
.nf24-kit-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 55%,rgba(255,209,0,.06));pointer-events:none;}
.nf24-kit-brand{position:absolute;left:20px;top:18px;font-size:10px;font-weight:900;letter-spacing:.11em;color:#FFD100;}
.nf24-kit-visual strong{position:relative;color:#fff;font-size:27px;line-height:1.06;max-width:560px;letter-spacing:-.7px;}
.nf24-kit-visual span{position:relative;margin-top:12px;color:#FFD100;font-weight:800;font-size:13px;}
.nf24-kit-visual small{position:relative;margin-top:18px;color:rgba(255,255,255,.4);font-size:9px;word-break:break-all;}
.nf24-kit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.nf24-kit-grid section{background:#151515;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:14px;}
.nf24-kit-grid h3{margin:0 0 8px;color:#fff;font-size:13px;}
.nf24-kit-grid p{margin:0 0 12px;color:rgba(255,255,255,.62);font-size:11.5px;line-height:1.52;}
.nf24-kit-grid button{width:100%;border:1px solid rgba(255,209,0,.28);background:rgba(255,209,0,.09);color:#FFD100;border-radius:11px;padding:10px;font-weight:800;font-size:11px;cursor:pointer;}
.nf24-kit-prompt{grid-column:1/-1;background:linear-gradient(145deg,rgba(255,209,0,.07),#151515)!important;border-color:rgba(255,209,0,.2)!important;}
@media(max-width:640px){.nf24-kit-overlay{padding:0;align-items:flex-end}.nf24-kit-modal{border-radius:24px 24px 0 0;padding:17px 14px calc(20px + env(safe-area-inset-bottom));max-height:94vh}.nf24-kit-grid{grid-template-columns:1fr}.nf24-kit-prompt{grid-column:auto}.nf24-kit-visual{min-height:220px}.nf24-kit-visual strong{font-size:24px}.captacion-colabora-actions{grid-template-columns:repeat(2,1fr)!important}}

/* ============================================================
   v28 — AGENDA PREMIUM V2
   Rediseño visual + ordenación + plantillas rápidas. Sin SQL nuevo.
   ============================================================ */
#page-agenda-nf24{
  --agenda-card:#171719;
  --agenda-card-2:#111113;
  --agenda-line:rgba(255,255,255,.09);
  --agenda-gold:#ffd400;
  --agenda-muted:rgba(255,255,255,.58);
  padding-bottom:104px;
}
#page-agenda-nf24 .header-row{
  position:relative;
  align-items:center;
  margin-bottom:18px;
}
#page-agenda-nf24 .header-row h1{
  font-size:25px!important;
  letter-spacing:-.035em;
}
#page-agenda-nf24 #agenda-nueva-tarea-btn{
  width:48px;height:48px;padding:0!important;border-radius:16px;
  display:grid;place-items:center;box-shadow:0 12px 30px rgba(255,212,0,.18);
}
#page-agenda-nf24 #agenda-nueva-tarea-btn svg{width:22px;height:22px}
#page-agenda-nf24 #agenda-nueva-tarea-btn span{display:none!important}

#page-agenda-nf24 .agenda-premium-hero{
  position:relative;isolation:isolate;overflow:hidden;
  display:block;padding:24px 24px 20px;margin-bottom:18px;
  min-height:210px;border-radius:24px;
  border:1px solid rgba(255,212,0,.28);
  background:linear-gradient(100deg,rgba(12,12,13,.98) 0%,rgba(18,18,19,.91) 52%,rgba(18,16,7,.75) 100%);
  box-shadow:0 22px 60px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.03);
}
#page-agenda-nf24 .agenda-premium-hero::before{
  content:"";position:absolute;z-index:-2;inset:0 0 0 48%;
  background:linear-gradient(90deg,#171719 0%,rgba(23,23,25,.20) 45%,rgba(23,23,25,.70) 100%),url("../assets/entreno/hero-entreno.svg") center 35%/cover no-repeat;
  opacity:.58;filter:saturate(.75) contrast(1.04);
}
#page-agenda-nf24 .agenda-premium-hero::after{
  content:"";position:absolute;z-index:-1;inset:0;
  background:radial-gradient(circle at 92% 6%,rgba(255,212,0,.18),transparent 35%),linear-gradient(180deg,transparent 40%,rgba(0,0,0,.54) 100%);
  pointer-events:none;
}
#page-agenda-nf24 .agenda-premium-kicker{color:var(--agenda-gold);font-size:10px;font-weight:950;letter-spacing:.17em;margin-bottom:8px}
#page-agenda-nf24 .agenda-premium-hero h2{max-width:460px;font-size:29px;letter-spacing:-.035em;line-height:1.05}
#page-agenda-nf24 .agenda-premium-hero p{max-width:500px;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.65)}
#page-agenda-nf24 .agenda-premium-stats{
  margin-top:22px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;width:min(650px,100%);
}
#page-agenda-nf24 .agenda-premium-stat{
  appearance:none;font:inherit;color:inherit;cursor:pointer;
  display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon value" "icon label";align-items:center;column-gap:9px;
  min-width:0;padding:11px 12px;border-radius:15px;border:1px solid rgba(255,255,255,.10);
  background:rgba(12,12,14,.64);backdrop-filter:blur(9px);text-align:left;
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}
#page-agenda-nf24 .agenda-premium-stat:active{transform:scale(.98)}
#page-agenda-nf24 .agenda-premium-stat:hover{border-color:rgba(255,212,0,.32);background:rgba(30,28,18,.72)}
#page-agenda-nf24 .agenda-stat-icon{grid-area:icon;width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:rgba(255,212,0,.09);color:var(--agenda-gold);font-size:13px;font-weight:950}
#page-agenda-nf24 .agenda-premium-stat strong{grid-area:value;font-size:20px;line-height:1.05;color:#fff}
#page-agenda-nf24 .agenda-premium-stat>span:last-child{grid-area:label;margin-top:2px;font-size:9.5px;color:var(--agenda-muted)}
#page-agenda-nf24 .agenda-premium-stat.has-overdue{border-color:rgba(255,72,78,.48);background:rgba(106,24,29,.25)}
#page-agenda-nf24 .agenda-premium-stat.has-overdue .agenda-stat-icon{background:rgba(255,72,78,.16);color:#ff585e}
#page-agenda-nf24 .agenda-premium-stat.has-overdue strong{color:#ff5b61}

#page-agenda-nf24 .agenda-view-switch{
  margin:0 0 12px!important;padding:4px;width:max-content;border-radius:16px;background:#111113;border:1px solid var(--agenda-line);
}
#page-agenda-nf24 .agenda-view-switch .workday-tab{padding:9px 17px;border-radius:12px;border:0}

#page-agenda-nf24 .agenda-list-topline{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;
}
#page-agenda-nf24 #agenda-tabs{margin:0;min-width:0}
#page-agenda-nf24 #agenda-tabs .workday-tab{padding:8px 13px;background:#0f0f11;border-color:var(--agenda-line)}
#page-agenda-nf24 #agenda-tabs .workday-tab.active{background:rgba(255,212,0,.13);color:var(--agenda-gold);border-color:rgba(255,212,0,.55);box-shadow:none}
#page-agenda-nf24 .agenda-sort-wrap{display:flex;align-items:center;gap:7px;flex:0 0 auto;color:var(--agenda-muted);font-size:10px;font-weight:700}
#page-agenda-nf24 .agenda-sort-wrap select{height:34px;padding:0 29px 0 10px;border-radius:11px;border:1px solid var(--agenda-line);background:#101012;color:#fff;font:inherit;font-size:10px;appearance:auto}
#page-agenda-nf24 .agenda-list-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:16px 2px 10px}
#page-agenda-nf24 .agenda-list-eyebrow{display:block;color:var(--agenda-gold);font-size:9px;font-weight:950;letter-spacing:.13em;margin-bottom:4px}
#page-agenda-nf24 .agenda-list-heading h3{margin:0;font-size:18px;letter-spacing:-.02em;color:#fff}
#page-agenda-nf24 .agenda-list-count{min-width:31px;height:31px;padding:0 9px;border-radius:11px;display:grid;place-items:center;background:rgba(255,212,0,.10);border:1px solid rgba(255,212,0,.24);color:var(--agenda-gold);font-size:12px;font-weight:900}

/* Tarjetas de tareas */
#page-agenda-nf24 .agenda-task-card{
  position:relative;display:grid;grid-template-columns:40px 82px minmax(0,1fr);gap:12px;
  padding:16px 15px;margin-bottom:10px;border-radius:19px;
  background:linear-gradient(145deg,#19191c,#121214);border:1px solid var(--agenda-line);
  box-shadow:0 12px 30px rgba(0,0,0,.14);overflow:hidden;
}
#page-agenda-nf24 .agenda-task-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--agenda-gold);opacity:.9}
#page-agenda-nf24 .agenda-task-card.is-overdue{border-color:rgba(255,72,78,.38);background:linear-gradient(145deg,rgba(71,22,26,.36),#151517)}
#page-agenda-nf24 .agenda-task-card.is-overdue::before{background:#ff4d55}
#page-agenda-nf24 .agenda-task-card.priority-alta:not(.is-overdue)::before{background:#ffb000}
#page-agenda-nf24 .agenda-task-card.priority-baja:not(.is-overdue)::before{background:#56aeea}
#page-agenda-nf24 .agenda-task-card.is-done{opacity:.72}
#page-agenda-nf24 .agenda-task-card.is-done::before{background:#35c66b}
#page-agenda-nf24 .agenda-task-check{width:34px;height:34px;border-radius:11px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.02);color:#111;font-size:17px;font-weight:950;cursor:pointer;align-self:start}
#page-agenda-nf24 .agenda-task-check.checked{background:#35c66b;border-color:#35c66b;color:#08150d}
#page-agenda-nf24 .agenda-task-time{padding-top:1px}
#page-agenda-nf24 .agenda-task-time strong{display:block;color:#fff;font-size:14px;font-weight:900;line-height:1.2}
#page-agenda-nf24 .agenda-task-card.is-overdue .agenda-task-time strong{color:#ff5a61}
#page-agenda-nf24 .agenda-task-time span{display:block;margin-top:5px;color:var(--agenda-muted);font-size:9.5px}
#page-agenda-nf24 .agenda-task-main{min-width:0}
#page-agenda-nf24 .agenda-task-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
#page-agenda-nf24 .agenda-task-title-row h4{margin:0;color:#fff;font-size:15px;line-height:1.25;letter-spacing:-.012em;overflow-wrap:anywhere}
#page-agenda-nf24 .agenda-priority-badge{flex:0 0 auto;padding:4px 8px;border-radius:20px;font-size:8.5px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(255,212,0,.22);color:var(--agenda-gold);background:rgba(255,212,0,.07)}
#page-agenda-nf24 .agenda-priority-badge.priority-alta{color:#ffc13c;border-color:rgba(255,176,0,.35);background:rgba(255,176,0,.10)}
#page-agenda-nf24 .agenda-priority-badge.priority-baja{color:#71bdf0;border-color:rgba(86,174,234,.35);background:rgba(86,174,234,.09)}
#page-agenda-nf24 .agenda-task-card.is-overdue .agenda-priority-badge{color:#ff6167;border-color:rgba(255,72,78,.42);background:rgba(255,72,78,.10)}
#page-agenda-nf24 .agenda-task-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px;margin-top:7px;color:var(--agenda-muted);font-size:10.5px}
#page-agenda-nf24 .agenda-task-link{padding:0;border:0;background:none;color:rgba(255,255,255,.76);font:inherit;font-weight:700;cursor:pointer;text-align:left}
#page-agenda-nf24 .agenda-task-mini-chip{padding:2px 6px;border-radius:8px;background:rgba(255,255,255,.06);font-size:8.5px;color:rgba(255,255,255,.62)}
#page-agenda-nf24 .agenda-task-note{margin:7px 0 0;color:rgba(255,255,255,.53);font-size:10.5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#page-agenda-nf24 .agenda-task-footer{display:flex;justify-content:flex-end;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.055)}
#page-agenda-nf24 .agenda-task-icon-action{width:30px;height:30px;border-radius:9px;border:1px solid var(--agenda-line);background:rgba(255,255,255,.025);display:grid;place-items:center;color:#fff;text-decoration:none;font-size:13px;cursor:pointer;font-family:inherit}
#page-agenda-nf24 .agenda-task-icon-action.danger{color:#ff6268}
#page-agenda-nf24 .agenda-task-whatsapp{color:#43d67b}
#page-agenda-nf24 #agenda-lista .empty-state,#page-agenda-nf24 #agenda-cal-dia-lista .empty-state{padding:34px 18px;border:1px dashed rgba(255,255,255,.10);border-radius:18px;background:rgba(255,255,255,.015);color:var(--agenda-muted);text-align:center}

/* CTA plantillas */
#page-agenda-nf24 .agenda-template-cta{width:100%;margin:15px 0 0;padding:14px 15px;border-radius:18px;border:1px solid rgba(255,212,0,.30);background:linear-gradient(110deg,rgba(255,212,0,.09),rgba(18,18,20,.98));color:#fff;display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;text-align:left;cursor:pointer;font:inherit}
#page-agenda-nf24 .agenda-template-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:rgba(255,212,0,.12);border:1px solid rgba(255,212,0,.25);font-size:20px}
#page-agenda-nf24 .agenda-template-cta small{display:block;color:var(--agenda-gold);font-size:8px;font-weight:950;letter-spacing:.13em}
#page-agenda-nf24 .agenda-template-cta strong{display:block;margin-top:2px;font-size:13px}
#page-agenda-nf24 .agenda-template-cta em{display:block;margin-top:2px;color:var(--agenda-muted);font-size:9.5px;font-style:normal}
#page-agenda-nf24 .agenda-template-cta b{font-size:10px;color:#fff;white-space:nowrap}

/* Calendario premium */
#page-agenda-nf24 #agenda-vista-calendario{padding:14px;border-radius:20px;border:1px solid var(--agenda-line);background:linear-gradient(145deg,#151517,#0d0d0f)}
#page-agenda-nf24 .workday-calendario-cabecera{margin-bottom:14px}
#page-agenda-nf24 .workday-calendario-mes{font-size:17px;letter-spacing:-.02em}
#page-agenda-nf24 .workday-calendario-dow{font-size:9.5px;margin-bottom:8px}
#page-agenda-nf24 .workday-calendario-grid{gap:6px}
#page-agenda-nf24 .workday-calendario-dia{font-size:13px;font-weight:800;transition:.15s ease}
#page-agenda-nf24 .workday-calendario-dia.seleccionado{box-shadow:0 8px 24px rgba(255,212,0,.18)}
#page-agenda-nf24 .workday-calendario-dia .workday-calendario-punto{width:5px;height:5px;bottom:1px;background:var(--agenda-gold)}
#page-agenda-nf24 .workday-calendario-dia .workday-calendario-punto.is-overdue{background:#ff4d55}
#page-agenda-nf24 .workday-calendario-dia .workday-calendario-punto.is-done{background:#35c66b}
#page-agenda-nf24 .workday-calendario-dia.seleccionado .workday-calendario-punto{background:#111}

/* Modal premium */
.agenda-modal-premium{border-radius:22px!important;background:linear-gradient(145deg,#19191c,#111113)!important;border:1px solid rgba(255,212,0,.24)!important;padding:20px!important}
.agenda-modal-head{margin-bottom:13px!important}
.agenda-modal-icon{background:rgba(255,212,0,.11)!important;border:1px solid rgba(255,212,0,.25);color:var(--yellow)!important;font-size:22px!important}
.agenda-modal-quick-row{display:flex;gap:7px;overflow-x:auto;padding:0 0 13px;margin:0 0 13px;border-bottom:1px solid rgba(255,255,255,.07);scrollbar-width:none}
.agenda-modal-quick-row::-webkit-scrollbar{display:none}
.agenda-modal-quick{flex:0 0 auto;min-width:92px;border-radius:12px;border:1px solid rgba(255,255,255,.09);background:#101012;color:#fff;padding:8px 10px;font:inherit;font-size:9.5px;font-weight:750;cursor:pointer}
.agenda-modal-quick span{display:block;font-size:15px;margin-bottom:3px}
.agenda-modal-premium input,.agenda-modal-premium select,.agenda-modal-premium textarea{background:#0f0f11!important;border-color:rgba(255,255,255,.10)!important;outline:none}
.agenda-modal-premium input:focus,.agenda-modal-premium select:focus,.agenda-modal-premium textarea:focus{border-color:rgba(255,212,0,.60)!important;box-shadow:0 0 0 2px rgba(255,212,0,.07)}
.agenda-more-options{background:#111113!important;border-color:rgba(255,255,255,.09)!important}

/* Plantillas overlay */
.agenda-templates-overlay{position:fixed;inset:0;z-index:10060;padding:18px;background:rgba(0,0,0,.76);display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(6px)}
.agenda-templates-panel{width:min(560px,100%);max-height:78vh;overflow:auto;padding:18px;border-radius:24px 24px 18px 18px;background:linear-gradient(145deg,#1b1b1e,#101012);border:1px solid rgba(255,212,0,.24);box-shadow:0 30px 90px rgba(0,0,0,.6)}
.agenda-templates-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}
.agenda-templates-head small{color:var(--yellow);font-size:8.5px;font-weight:950;letter-spacing:.14em}
.agenda-templates-head h3{margin:4px 0 2px;color:#fff;font-size:20px}
.agenda-templates-head p{margin:0;color:rgba(255,255,255,.55);font-size:10.5px}
.agenda-templates-close{width:36px;height:36px;border-radius:11px;border:1px solid rgba(255,255,255,.10);background:#111;color:#fff;font-size:24px;cursor:pointer}
.agenda-templates-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.agenda-template-option{min-height:106px;border-radius:16px;border:1px solid rgba(255,255,255,.09);background:#111113;color:#fff;padding:13px;text-align:left;cursor:pointer;font:inherit;transition:.15s ease}
.agenda-template-option:hover{border-color:rgba(255,212,0,.36);background:rgba(255,212,0,.055)}
.agenda-template-option>span{display:block;font-size:20px;margin-bottom:9px}
.agenda-template-option strong{display:block;font-size:12px;line-height:1.25}
.agenda-template-option small{display:block;margin-top:5px;color:rgba(255,255,255,.48);font-size:9px}

@media(max-width:640px){
  #page-agenda-nf24 .agenda-premium-hero{min-height:0;padding:20px 17px 17px}
  #page-agenda-nf24 .agenda-premium-hero::before{inset:0 0 0 54%;opacity:.34}
  #page-agenda-nf24 .agenda-premium-hero h2{font-size:24px;max-width:75%}
  #page-agenda-nf24 .agenda-premium-hero p{max-width:72%;font-size:11.5px}
  #page-agenda-nf24 .agenda-premium-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:17px}
  #page-agenda-nf24 .agenda-list-topline{display:block}
  #page-agenda-nf24 .agenda-sort-wrap{justify-content:flex-end;margin-top:8px}
  #page-agenda-nf24 #agenda-tabs{margin:0;overflow-x:auto}
  #page-agenda-nf24 .agenda-task-card{grid-template-columns:34px 63px minmax(0,1fr);gap:9px;padding:14px 12px}
  #page-agenda-nf24 .agenda-task-check{width:31px;height:31px;border-radius:10px}
  #page-agenda-nf24 .agenda-task-time strong{font-size:12px}
  #page-agenda-nf24 .agenda-task-title-row h4{font-size:13px}
  #page-agenda-nf24 .agenda-priority-badge{font-size:7.5px;padding:3px 6px}
  #page-agenda-nf24 .agenda-task-meta-row{font-size:9px;gap:4px 7px}
  #page-agenda-nf24 .agenda-task-note{font-size:9.5px}
  #page-agenda-nf24 .agenda-template-cta{grid-template-columns:38px 1fr;padding:12px}
  #page-agenda-nf24 .agenda-template-cta>b{grid-column:2;font-size:9px;color:var(--agenda-gold)}
  .agenda-templates-grid{grid-template-columns:1fr}
  .agenda-modal-premium{max-height:92vh!important;padding:16px!important}
}

/* ============================================================
   NF24FIT · IDEAS Y RECORDATORIOS PREMIUM V1 · v29_0
   Rediseño visual + filtros + resumen + bottom sheet + plantillas.
   Scopeado para no alterar otros módulos de Workday.
   ============================================================ */
#page-ideas-recordatorios.ideas-premium-page {
  --ideas-gold: #ffd400;
  --ideas-surface: #151515;
  --ideas-surface-2: #1b1b1d;
  --ideas-border: rgba(255,255,255,.10);
  --ideas-muted: rgba(255,255,255,.58);
  padding-bottom: 115px;
}
.ideas-premium-head { margin-bottom: 16px; }
.ideas-premium-title-row { display:flex; align-items:flex-start; gap:10px; }
.ideas-premium-title-row .back-btn { margin-top: 3px; flex:0 0 auto; }
.ideas-premium-title-copy { flex:1; min-width:0; }
.ideas-premium-title-copy h1 { margin:0; font-size:clamp(24px,5.8vw,34px); line-height:1.08; letter-spacing:-.6px; color:var(--w-text); }
.ideas-premium-title-copy p { margin:6px 0 0; color:var(--w-text-muted); font-size:12.5px; line-height:1.45; }
.ideas-new-main { margin-left:auto; padding:10px 14px; border-radius:14px; font-size:12.5px; min-height:42px; box-shadow:0 8px 26px rgba(255,212,0,.12); }
.ideas-new-main svg { width:16px; height:16px; }

.ideas-summary-card {
  display:grid; grid-template-columns:1fr 1px 1fr 1px 1.35fr; align-items:stretch;
  background:linear-gradient(145deg,rgba(28,28,29,.98),rgba(15,15,16,.98));
  border:1px solid var(--ideas-border); border-radius:20px; padding:14px 12px; margin-bottom:14px;
  box-shadow:0 12px 34px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.025);
}
.ideas-summary-stat { min-width:0; display:grid; grid-template-columns:34px 1fr; grid-template-rows:auto auto; align-items:center; column-gap:9px; padding:2px 7px; }
.ideas-summary-icon { grid-row:1/3; width:34px; height:34px; border-radius:11px; display:grid; place-items:center; color:var(--ideas-gold); background:rgba(255,212,0,.10); border:1px solid rgba(255,212,0,.16); font-size:16px; }
.ideas-summary-icon--done { color:#4ade80; background:rgba(74,222,128,.09); border-color:rgba(74,222,128,.12); }
.ideas-summary-stat strong { font-size:23px; line-height:1; color:#fff; }
.ideas-summary-stat > span:last-child { color:var(--ideas-muted); font-size:11.5px; margin-top:3px; white-space:nowrap; }
.ideas-summary-sep { width:1px; background:rgba(255,255,255,.08); }
.ideas-summary-progress { padding:2px 9px; display:flex; flex-direction:column; justify-content:center; }
.ideas-summary-progress-top { display:flex; flex-direction:column; gap:2px; }
.ideas-summary-progress-top strong { color:#fff; font-size:19px; }
.ideas-summary-progress-top span { color:var(--ideas-muted); font-size:11.5px; }
.ideas-progress-track { height:7px; background:rgba(255,255,255,.08); border-radius:999px; overflow:hidden; margin-top:9px; }
.ideas-progress-track span { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#ffcf00,#ffe36d); box-shadow:0 0 14px rgba(255,212,0,.28); transition:width .25s ease; }

.ideas-filter-row { display:flex; gap:7px; overflow-x:auto; padding:1px 1px 7px; margin-bottom:8px; scrollbar-width:none; }
.ideas-filter-row::-webkit-scrollbar { display:none; }
.ideas-filter { flex:0 0 auto; border:1px solid var(--ideas-border); background:#101011; color:var(--ideas-muted); border-radius:999px; padding:8px 13px; font:700 11.5px/1 inherit; display:inline-flex; align-items:center; gap:6px; cursor:pointer; }
.ideas-filter b { font-size:10px; font-weight:800; opacity:.75; }
.ideas-filter.active { color:#16130a; background:var(--ideas-gold); border-color:var(--ideas-gold); box-shadow:0 7px 22px rgba(255,212,0,.14); }

.ideas-premium-list { display:flex; flex-direction:column; gap:9px; }
.idea-card {
  position:relative; background:linear-gradient(145deg,rgba(25,25,26,.98),rgba(15,15,16,.98));
  border:1px solid var(--ideas-border); border-radius:17px; padding:13px 12px; cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.16); transition:transform .14s ease,border-color .14s ease;
}
.idea-card:active { transform:scale(.993); }
.idea-card:hover { border-color:rgba(255,212,0,.22); }
.ideas-card-main-row { display:flex; align-items:flex-start; gap:10px; }
.ideas-card-check { flex:0 0 auto; padding-top:1px; }
.ideas-complete-btn { width:30px; height:30px; border:2px solid rgba(255,255,255,.38); background:transparent; color:transparent; border-radius:9px; cursor:pointer; display:grid; place-items:center; font-size:17px; }
.ideas-complete-btn:hover { border-color:var(--ideas-gold); color:var(--ideas-gold); }
.ideas-complete-btn.is-return { width:auto; height:auto; padding:6px 9px; color:#fff; border:1px solid var(--ideas-border); font-size:11px; gap:5px; display:inline-flex; }
.ideas-card-content { min-width:0; flex:1; }
.ideas-card-topline { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.ideas-card-title { color:#fff; font-size:14px; line-height:1.3; font-weight:800; }
.ideas-progress-count { flex:0 0 auto; color:var(--ideas-muted); background:rgba(255,255,255,.06); border-radius:999px; padding:4px 7px; font-size:9.5px; font-weight:800; }
.ideas-card-badges { display:flex; gap:5px; flex-wrap:wrap; margin-top:7px; }
.ideas-card-badge { display:inline-flex; align-items:center; gap:3px; padding:4px 7px; border-radius:999px; background:rgba(255,255,255,.05); color:var(--ideas-muted); font-size:9.5px; font-weight:700; }
.ideas-card-badge--gold { color:var(--ideas-gold); background:rgba(255,212,0,.09); }
.ideas-priority-badge { display:inline-flex; padding:4px 8px; border-radius:999px; font-size:9px; font-weight:900; text-transform:capitalize; }
.ideas-priority-alta { color:#ff6269; background:rgba(255,76,85,.10); }
.ideas-priority-media { color:#ffc83d; background:rgba(255,200,61,.10); }
.ideas-priority-baja { color:#71c7ff; background:rgba(83,184,255,.10); }
.ideas-card-desc { color:var(--ideas-muted); font-size:11.5px; line-height:1.45; margin-top:7px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ideas-card-progress { height:4px; background:rgba(255,255,255,.07); border-radius:999px; margin-top:9px; overflow:hidden; }
.ideas-card-progress span { display:block; height:100%; border-radius:inherit; background:var(--ideas-gold); }
.ideas-card-chevron { color:rgba(255,255,255,.45); font-size:26px; line-height:1; flex:0 0 auto; padding-top:3px; }
.idea-checklist-mini { margin-top:9px; gap:5px; }
.idea-checklist-mini-item { font-size:11.5px; color:rgba(255,255,255,.76); }
.idea-checklist-mini-item input[type="checkbox"] { accent-color:var(--ideas-gold); }
.idea-checklist-mini-item .is-done { opacity:.48; text-decoration:line-through; }
.ideas-checklist-more { font-size:10px; color:var(--ideas-muted); padding-left:25px; }
.idea-card--completada { opacity:.74; }
.idea-card--completada .ideas-card-title { text-decoration:line-through; opacity:.65; }
.ideas-empty-premium { min-height:210px; border:1px dashed rgba(255,255,255,.12); border-radius:18px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; text-align:center; padding:22px; color:var(--ideas-muted); }
.ideas-empty-premium > span { font-size:30px; }
.ideas-empty-premium strong { font-size:13px; font-weight:700; color:rgba(255,255,255,.68); }
.ideas-empty-premium button { margin-top:4px; border:0; background:var(--ideas-gold); color:#17130a; font-weight:800; border-radius:12px; padding:9px 14px; cursor:pointer; }

/* Bottom sheet Ideas */
.ideas-modal-overlay { align-items:flex-end; padding:0; background:rgba(0,0,0,.72); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.ideas-modal-box { width:100%; max-width:720px; max-height:88dvh; overflow-y:auto; margin:0 auto; border-radius:26px 26px 0 0; padding:10px 16px calc(18px + env(safe-area-inset-bottom)); background:linear-gradient(155deg,#1b1b1d 0%,#101011 80%); border:1px solid rgba(255,255,255,.13); border-bottom:0; box-shadow:0 -24px 60px rgba(0,0,0,.50), inset 0 1px 0 rgba(255,255,255,.03); }
.ideas-sheet-handle { width:54px; height:5px; border-radius:999px; background:rgba(255,255,255,.24); margin:0 auto 12px; }
.ideas-modal-head { display:flex; align-items:center; gap:11px; margin-bottom:15px; }
.ideas-modal-icon { width:48px; height:48px; border-radius:14px; display:grid; place-items:center; font-size:22px; background:rgba(255,212,0,.10); border:1px solid rgba(255,212,0,.34); box-shadow:0 0 24px rgba(255,212,0,.08); }
.ideas-modal-head-copy { flex:1; min-width:0; }
.ideas-modal-head-copy .section-title { color:#fff; margin:0; font-size:20px; }
.ideas-modal-head-copy span { color:var(--ideas-muted); font-size:11.5px; display:block; margin-top:3px; }
.ideas-modal-head .close-btn { flex:0 0 auto; width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.09); }
.ideas-form-field { margin-bottom:10px; }
.ideas-field-label { display:flex; justify-content:space-between; gap:8px; align-items:center; margin:0 3px 6px; color:rgba(255,255,255,.76); font-size:11px; }
.ideas-field-label em { font-style:normal; color:var(--ideas-muted); }
.ideas-field-label small { color:rgba(255,255,255,.34); font-size:9.5px; }
.ideas-form-field input,.ideas-form-field textarea,.ideas-expand-panel input { width:100%; box-sizing:border-box; background:#0c0c0d; color:#fff; border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:12px 13px; font:inherit; font-size:13px; outline:none; }
.ideas-form-field textarea { resize:vertical; min-height:84px; }
.ideas-form-field input:focus,.ideas-form-field textarea:focus,.ideas-expand-panel input:focus { border-color:rgba(255,212,0,.62); box-shadow:0 0 0 3px rgba(255,212,0,.07); }
.ideas-option-row { display:flex; gap:7px; overflow-x:auto; padding:2px 0 7px; scrollbar-width:none; }
.ideas-option-row::-webkit-scrollbar { display:none; }
.ideas-option-chip { flex:0 0 auto; border:1px solid rgba(255,255,255,.14); border-radius:999px; background:#171719; color:rgba(255,255,255,.82); padding:8px 11px; font:700 10.5px/1 inherit; cursor:pointer; }
.ideas-option-chip.active { color:#fff; border-color:rgba(255,212,0,.72); background:rgba(255,212,0,.09); box-shadow:0 0 18px rgba(255,212,0,.07); }
.ideas-expand-panel { margin:2px 0 10px; background:rgba(255,255,255,.025); border:1px solid rgba(255,255,255,.08); border-radius:14px; padding:11px; }
.ideas-expand-panel label,.ideas-expand-label { display:block; color:var(--ideas-muted); font-size:10.5px; margin-bottom:7px; }
.ideas-priority-pills { display:flex; gap:7px; }
.ideas-priority-pills button { flex:1; border:1px solid rgba(255,255,255,.11); background:#111; color:rgba(255,255,255,.70); border-radius:10px; padding:8px; font:700 10.5px/1 inherit; cursor:pointer; }
.ideas-priority-pills button.active { border-color:var(--ideas-gold); color:var(--ideas-gold); background:rgba(255,212,0,.08); }
.ideas-quick-section { margin:3px 0 11px; }
.ideas-quick-title { display:flex; align-items:center; justify-content:space-between; color:#fff; font-size:11px; font-weight:800; margin:0 2px 7px; }
.ideas-quick-title span { color:var(--ideas-gold); }
.ideas-quick-title small { color:var(--ideas-muted); font-weight:600; }
.ideas-quick-row { display:flex; gap:7px; overflow-x:auto; scrollbar-width:none; }
.ideas-quick-row::-webkit-scrollbar { display:none; }
.ideas-quick-row button { flex:0 0 auto; border:1px solid rgba(255,212,0,.32); background:rgba(255,212,0,.035); color:rgba(255,255,255,.82); border-radius:999px; padding:7px 11px; font:650 10.5px/1 inherit; cursor:pointer; }
.ideas-checklist-panel { border-top:1px solid rgba(255,255,255,.07); padding-top:10px; margin-top:4px; }
.ideas-checklist-title { color:#fff; font-size:11px; font-weight:800; margin-bottom:7px; }
.idea-checklist-editor-fila { background:#0e0e0f; border:1px solid rgba(255,255,255,.09); border-radius:11px; padding:6px 7px; }
.idea-checklist-editor-fila input[type="checkbox"] { accent-color:var(--ideas-gold); }
.idea-checklist-editor-fila input[type="text"] { background:transparent; border:0; padding:7px 6px; color:#fff; }
.idea-checklist-editor-fila .close-btn { width:28px; height:28px; border-radius:9px; font-size:12px; }
.ideas-add-point { width:100%; margin-top:7px; border:1px solid rgba(255,255,255,.13); background:linear-gradient(145deg,#242426,#18181a); color:#fff; border-radius:13px; padding:11px 12px; display:flex; align-items:center; gap:8px; font:800 11.5px/1 inherit; cursor:pointer; }
.ideas-add-point span { width:26px; height:26px; display:grid; place-items:center; border-radius:50%; color:var(--ideas-gold); border:1px solid rgba(255,212,0,.45); }
.ideas-add-point b { margin-left:auto; color:var(--ideas-muted); font-size:20px; }
.ideas-modal-actions { display:flex; gap:8px; margin-top:14px; position:sticky; bottom:-1px; padding-top:8px; background:linear-gradient(to bottom,transparent 0,#111 22%); }
.ideas-modal-actions button { min-height:46px; border-radius:13px; margin:0; }
.ideas-modal-actions #idea-eliminar-btn { flex:0 0 auto; padding-inline:13px; color:#ff656b; }
.ideas-modal-actions #idea-cancelar-btn { flex:1; }
.ideas-modal-actions #idea-guardar-btn { flex:1.45; background:var(--ideas-gold); color:#17130a; box-shadow:0 10px 25px rgba(255,212,0,.12); }

@media (max-width:520px) {
  .ideas-premium-title-copy p { display:none; }
  .ideas-new-main span { font-size:11px; }
  .ideas-summary-card { grid-template-columns:1fr 1px 1fr 1px 1.15fr; padding-inline:7px; }
  .ideas-summary-stat { grid-template-columns:28px 1fr; column-gap:6px; padding-inline:5px; }
  .ideas-summary-icon { width:28px; height:28px; font-size:13px; border-radius:9px; }
  .ideas-summary-stat strong { font-size:19px; }
  .ideas-summary-stat > span:last-child,.ideas-summary-progress-top span { font-size:9.5px; }
  .ideas-summary-progress { padding-inline:6px; }
  .ideas-summary-progress-top strong { font-size:16px; }
  .ideas-card-title { font-size:13.5px; }
}

/* ============================================================
   NF24FIT · CAMPAÑAS PREMIUM V1
   Rediseño visual de Workday > Campañas. Scoped a la página.
   ============================================================ */
#page-workday-campanas.campanas-premium-page {
  --camp-gold:#FFD100;
  --camp-gold-2:#ffb800;
  --camp-panel:#151515;
  --camp-panel-2:#101010;
  --camp-border:rgba(255,255,255,.09);
  --camp-muted:rgba(255,255,255,.58);
  padding-bottom:118px;
}
#page-workday-campanas .campanas-premium-head { margin-bottom:14px; }
#page-workday-campanas .campanas-premium-title-row { gap:10px; margin-bottom:2px; }
#page-workday-campanas .campanas-premium-title-row h1 { margin:0; font-size:30px; line-height:1.05; letter-spacing:-.8px; }
#page-workday-campanas .campanas-premium-sub { margin:8px 0 0; color:var(--camp-muted); font-size:14px; line-height:1.45; }
#page-workday-campanas .campanas-create-hero {
  width:100%; min-height:66px; margin:6px 0 16px; border:1px solid rgba(255,209,0,.78); border-radius:18px;
  background:linear-gradient(145deg,#ffe500 0%,#ffcc00 65%,#ffb800 100%); color:#101010;
  display:flex; align-items:center; justify-content:center; gap:12px; font:inherit; font-size:19px; font-weight:900; cursor:pointer;
  box-shadow:0 10px 34px rgba(255,209,0,.18), inset 0 1px 0 rgba(255,255,255,.5); position:relative; overflow:hidden;
}
#page-workday-campanas .campanas-create-hero::after { content:""; position:absolute; inset:auto -10% -45% 10%; height:90%; background:radial-gradient(ellipse,rgba(255,255,255,.28),transparent 65%); pointer-events:none; }
#page-workday-campanas .campanas-create-hero > * { position:relative; z-index:1; }
#page-workday-campanas .campanas-premium-filtros { display:flex; gap:8px; overflow-x:auto; padding:0 0 8px; scrollbar-width:none; margin-bottom:6px; }
#page-workday-campanas .campanas-premium-filtros::-webkit-scrollbar { display:none; }
#page-workday-campanas .campanas-premium-filtros .workday-tab { flex:0 0 auto; border-radius:999px; padding:10px 16px; min-height:42px; background:#111; border:1px solid var(--camp-border); color:rgba(255,255,255,.65); }
#page-workday-campanas .campanas-premium-filtros .workday-tab.active { background:var(--camp-gold); color:#111; border-color:var(--camp-gold); box-shadow:0 8px 24px rgba(255,209,0,.15); }

#page-workday-campanas .campanas-summary-premium { margin:12px 0 18px; }
#page-workday-campanas .campanas-summary-title { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
#page-workday-campanas .campanas-summary-title strong { font-size:18px; }
#page-workday-campanas .campanas-period-pill { margin-left:auto; font-size:11px; color:var(--camp-muted); border:1px solid var(--camp-border); border-radius:999px; padding:7px 10px; background:#111; }
#page-workday-campanas .campanas-summary-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
#page-workday-campanas .campanas-summary-kpi {
  min-width:0; min-height:104px; padding:12px 8px; border:1px solid var(--camp-border); border-radius:16px;
  background:linear-gradient(160deg,#171717,#111); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
#page-workday-campanas .campanas-summary-kpi span { font-size:21px; line-height:1; margin-bottom:6px; }
#page-workday-campanas .campanas-summary-kpi strong { font-size:22px; line-height:1; }
#page-workday-campanas .campanas-summary-kpi small { font-size:10.5px; color:var(--camp-muted); margin-top:5px; }
#page-workday-campanas .kpi-visits { border-color:rgba(59,130,246,.32); }
#page-workday-campanas .kpi-leads { border-color:rgba(251,146,60,.28); }
#page-workday-campanas .kpi-clients { border-color:rgba(34,197,94,.28); }
#page-workday-campanas .kpi-conv { border-color:rgba(255,209,0,.28); }

#page-workday-campanas .campanas-funnel-premium { margin-top:10px; padding:13px; background:#121212; border:1px solid var(--camp-border); border-radius:17px; }
#page-workday-campanas .campanas-funnel-title { font-size:13px; font-weight:800; margin-bottom:10px; }
#page-workday-campanas .campanas-funnel-grid { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:center; gap:6px; }
#page-workday-campanas .campanas-funnel-grid > em { color:rgba(255,255,255,.36); font-size:22px; font-style:normal; }
#page-workday-campanas .campanas-funnel-step { display:flex; align-items:center; gap:7px; min-width:0; padding:9px; border-radius:13px; background:#171717; border:1px solid var(--camp-border); }
#page-workday-campanas .campanas-funnel-step > span { font-size:18px; }
#page-workday-campanas .campanas-funnel-step > div { min-width:0; flex:1; }
#page-workday-campanas .campanas-funnel-step small { display:block; color:var(--camp-muted); font-size:9.5px; }
#page-workday-campanas .campanas-funnel-step strong { display:block; font-size:17px; line-height:1.1; margin:2px 0 5px; }
#page-workday-campanas .campanas-funnel-step i { display:block; height:5px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; }
#page-workday-campanas .campanas-funnel-step i b { display:block; height:100%; border-radius:inherit; background:var(--camp-gold); }
#page-workday-campanas .step-visits i b { background:#3b82f6; }
#page-workday-campanas .step-leads i b { background:#fb923c; }
#page-workday-campanas .step-clients i b { background:#22c55e; }

#page-workday-campanas .campanas-insight-premium {
  width:100%; margin-top:10px; padding:13px; border-radius:16px; border:1px solid rgba(255,209,0,.45);
  background:linear-gradient(135deg,rgba(255,209,0,.11),rgba(255,209,0,.035)); color:inherit; text-align:left;
  display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; font:inherit; cursor:pointer;
}
#page-workday-campanas .campanas-insight-icon { width:38px; height:38px; border-radius:50%; background:rgba(255,209,0,.12); display:grid; place-items:center; font-size:19px; }
#page-workday-campanas .campanas-insight-premium strong { display:block; color:var(--camp-gold); font-size:12px; line-height:1.35; }
#page-workday-campanas .campanas-insight-premium small { display:block; color:var(--camp-muted); font-size:10.5px; line-height:1.35; margin-top:3px; }
#page-workday-campanas .campanas-insight-premium > b { color:var(--camp-gold); font-size:24px; }

#page-workday-campanas .campanas-lista-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:8px 0 10px; }
#page-workday-campanas .campanas-lista-head h2 { margin:0; font-size:18px; }
#page-workday-campanas .campanas-search-wrap { width:min(46%,220px); height:40px; display:flex; align-items:center; gap:7px; padding:0 11px; border-radius:999px; background:#111; border:1px solid var(--camp-border); }
#page-workday-campanas .campanas-search-wrap span { color:var(--camp-muted); }
#page-workday-campanas .campanas-search-wrap input { min-width:0; width:100%; background:transparent; color:#fff; border:none; outline:none; font:inherit; font-size:11px; }
#page-workday-campanas .campanas-search-wrap input::placeholder { color:rgba(255,255,255,.38); }

#page-workday-campanas .campana-premium-card {
  margin-bottom:14px; padding:14px; border-radius:19px; border:1px solid var(--camp-border);
  background:linear-gradient(160deg,#171717 0%,#111 100%); box-shadow:0 14px 32px rgba(0,0,0,.18);
}
#page-workday-campanas .campana-premium-card.is-active { border-color:rgba(255,209,0,.22); }
#page-workday-campanas .campana-premium-top { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
#page-workday-campanas .campana-premium-identity { display:flex; gap:10px; min-width:0; align-items:center; }
#page-workday-campanas .campana-premium-icon { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; background:rgba(255,209,0,.09); border:1px solid rgba(255,209,0,.18); font-size:20px; }
#page-workday-campanas .campana-premium-maincopy { min-width:0; }
#page-workday-campanas .campana-premium-name { font-size:16px; font-weight:900; line-height:1.22; }
#page-workday-campanas .campana-premium-meta { font-size:10.5px; color:var(--camp-muted); margin-top:4px; }
#page-workday-campanas .campana-premium-status { flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; padding:6px 9px; border-radius:999px; font-size:10.5px; font-weight:800; background:rgba(255,255,255,.06); color:var(--camp-muted); }
#page-workday-campanas .campana-premium-status span { width:7px; height:7px; border-radius:50%; background:#777; }
#page-workday-campanas .campana-premium-status.is-active { background:rgba(34,197,94,.10); color:#4ade80; border:1px solid rgba(34,197,94,.24); }
#page-workday-campanas .campana-premium-status.is-active span { background:#22c55e; box-shadow:0 0 12px rgba(34,197,94,.55); }
#page-workday-campanas .campana-premium-status.is-paused { color:#fbbf24; border:1px solid rgba(251,191,36,.18); }
#page-workday-campanas .campana-premium-status.is-paused span { background:#f59e0b; }

#page-workday-campanas .campana-premium-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin:12px 0 10px; }
#page-workday-campanas .campana-premium-metrics > div { min-width:0; padding:9px 4px; border-radius:13px; border:1px solid var(--camp-border); background:#151515; text-align:center; display:flex; flex-direction:column; align-items:center; }
#page-workday-campanas .campana-metric-icon { font-size:15px; margin-bottom:3px; }
#page-workday-campanas .campana-premium-metrics strong { font-size:17px; line-height:1; }
#page-workday-campanas .campana-premium-metrics small { font-size:9.5px; color:var(--camp-muted); margin-top:3px; }

#page-workday-campanas .campana-performance-block { padding:10px 11px; border:1px solid var(--camp-border); border-radius:14px; background:#101010; margin-bottom:11px; }
#page-workday-campanas .campana-performance-head { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:8px; }
#page-workday-campanas .campana-performance-head strong { font-size:12px; }
#page-workday-campanas .campana-performance-head span { color:var(--camp-muted); font-size:9.5px; }
#page-workday-campanas .campana-performance-row { display:grid; grid-template-columns:78px 1fr 36px; gap:7px; align-items:center; margin-top:6px; }
#page-workday-campanas .campana-performance-row > span { font-size:9.5px; color:var(--camp-muted); }
#page-workday-campanas .campana-performance-row > b { font-size:10px; text-align:right; color:var(--camp-gold); }
#page-workday-campanas .campana-performance-track { height:6px; border-radius:999px; background:rgba(255,255,255,.07); overflow:hidden; }
#page-workday-campanas .campana-performance-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#FFD100,#ffb800); }

#page-workday-campanas .campana-premium-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
#page-workday-campanas .campana-premium-actions button { min-width:0; min-height:42px; padding:7px 5px; border-radius:11px; border:1px solid var(--camp-border); background:#151515; color:#fff; font:inherit; font-size:10.5px; font-weight:750; display:flex; align-items:center; justify-content:center; gap:4px; cursor:pointer; }
#page-workday-campanas .campana-premium-actions button:active { transform:translateY(1px); }
#page-workday-campanas .campana-premium-actions .action-promote { color:var(--camp-gold); border-color:rgba(255,209,0,.25); background:rgba(255,209,0,.055); }
#page-workday-campanas .campana-premium-actions .action-delete { grid-column:1 / -1; justify-self:start; min-height:34px; padding:5px 7px; border-color:transparent; background:transparent; color:#ff5a62; }
#page-workday-campanas .campanas-empty-premium { padding:18px; margin:12px 0; border:1px dashed rgba(255,209,0,.25); border-radius:16px; color:var(--camp-muted); text-align:center; font-size:12px; }

@media (max-width:520px) {
  #page-workday-campanas .campanas-premium-title-row h1 { font-size:27px; }
  #page-workday-campanas .campanas-summary-kpis { gap:6px; }
  #page-workday-campanas .campanas-summary-kpi { min-height:94px; padding:10px 4px; }
  #page-workday-campanas .campanas-summary-kpi strong { font-size:20px; }
  #page-workday-campanas .campanas-funnel-grid { gap:4px; }
  #page-workday-campanas .campanas-funnel-step { padding:7px 5px; gap:4px; }
  #page-workday-campanas .campanas-funnel-step > span { font-size:15px; }
  #page-workday-campanas .campanas-funnel-step strong { font-size:15px; }
  #page-workday-campanas .campanas-lista-head { align-items:center; }
  #page-workday-campanas .campanas-search-wrap { width:47%; }
}


/* ============================================================
   NF24FIT · MIS ENLACES Y QR — PREMIUM V1 (v31_0)
   Rediseño visual del hub de enlaces. Sin contadores superiores ni
   acciones rápidas globales: se mantiene foco en cada recurso.
   ============================================================ */
#page-workday-enlaces.enlaces-premium-page{
  --enl-gold:#ffd400;
  --enl-card:#141416;
  --enl-card-2:#101011;
  --enl-border:rgba(255,255,255,.10);
  --enl-muted:rgba(255,255,255,.58);
  padding-bottom:calc(108px + env(safe-area-inset-bottom));
}
#page-workday-enlaces .enlaces-premium-header{
  align-items:flex-start;
  gap:12px;
  margin-bottom:5px;
}
#page-workday-enlaces .enlaces-premium-header > div{min-width:0;flex:1}
#page-workday-enlaces .enlaces-premium-header h1{
  margin:0;
  font-size:clamp(28px,7vw,38px);
  line-height:1.02;
  letter-spacing:-.04em;
  color:#fff;
}
#page-workday-enlaces .enlaces-premium-header p{
  margin:7px 0 0;
  color:var(--enl-muted);
  font-size:13px;
  line-height:1.45;
}
#page-workday-enlaces .enlaces-premium-note{
  font-size:11.5px;
  line-height:1.45;
  color:rgba(255,255,255,.42);
  margin:0 0 16px 46px;
}
#page-workday-enlaces #captacion-enlaces,
#page-workday-enlaces #enlaces-qr-mi-centro-wrap,
#page-workday-enlaces #enlaces-qr-skin-wrap,
#page-workday-enlaces #enlaces-qr-maderoterapia-wrap,
#page-workday-enlaces #enlaces-qr-invitar-wrap{
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
}
#page-workday-enlaces #captacion-enlaces{display:grid;gap:10px}
#page-workday-enlaces .enlaces-premium-card,
#page-workday-enlaces #captacion-enlaces > .workday-item-card{
  position:relative;
  overflow:hidden;
  padding:14px;
  margin:0;
  border:1px solid var(--enl-border);
  border-radius:18px;
  background:
    radial-gradient(circle at 8% 0%,rgba(255,212,0,.055),transparent 27%),
    linear-gradient(145deg,rgba(25,25,27,.98),rgba(14,14,15,.98));
  box-shadow:0 9px 24px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.025);
}
#page-workday-enlaces .enlaces-premium-card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,.015),transparent 36%);
}
#page-workday-enlaces .enlaces-premium-top,
#page-workday-enlaces .enlaces-premium-card > .workday-item-top{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:11px;
}
#page-workday-enlaces .enlaces-premium-copy,
#page-workday-enlaces .enlaces-premium-card > .workday-item-top > div{flex:1;min-width:0}
#page-workday-enlaces .workday-item-title{
  color:#fff;
  font-size:15.5px;
  font-weight:850;
  line-height:1.25;
  letter-spacing:-.015em;
}
#page-workday-enlaces .workday-item-meta{
  margin-top:4px;
  color:var(--enl-muted);
  font-size:11.5px;
  line-height:1.4;
}
#page-workday-enlaces .enlaces-premium-chevron{
  flex:0 0 auto;
  color:rgba(255,255,255,.82);
  font-size:27px;
  line-height:1;
  transform:translateY(-1px);
}
#page-workday-enlaces .enlaces-premium-chevron-open{font-size:18px;color:#d9d9d9}
#page-workday-enlaces .enlaces-premium-actions,
#page-workday-enlaces .enlaces-premium-card > .opportunity-actions{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin-top:0;
}
#page-workday-enlaces .enlaces-premium-card .workday-action{
  min-width:0;
  min-height:42px;
  padding:8px 7px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.11);
  background:rgba(0,0,0,.18);
  color:#f7f7f7;
  font-size:11.5px;
  font-weight:780;
  line-height:1.05;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  box-shadow:none;
}
#page-workday-enlaces .enlaces-premium-card .workday-action:active{
  transform:scale(.985);
  background:rgba(255,212,0,.08);
  border-color:rgba(255,212,0,.36);
}
#page-workday-enlaces .enlaces-premium-card .workday-action--primary{
  color:#111;
  background:linear-gradient(135deg,#ffe21a,#ffc800);
  border-color:#ffd400;
  box-shadow:0 6px 18px rgba(255,212,0,.14);
}
#page-workday-enlaces .enlaces-premium-colabora,
#page-workday-enlaces .captacion-colabora-card{
  border-color:rgba(255,212,0,.48);
  background:
    radial-gradient(circle at 15% -10%,rgba(255,212,0,.13),transparent 38%),
    linear-gradient(145deg,rgba(26,24,14,.98),rgba(14,14,14,.99));
  box-shadow:0 14px 34px rgba(0,0,0,.25),0 0 0 1px rgba(255,212,0,.045) inset;
}
#page-workday-enlaces .captacion-colabora-list{
  display:grid;
  gap:8px;
  margin-top:10px;
}
#page-workday-enlaces .captacion-colabora-row{
  padding:12px;
  border-radius:15px;
  border:1px solid rgba(255,255,255,.085);
  background:rgba(5,5,5,.28);
  display:block;
}
#page-workday-enlaces .captacion-colabora-copy{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-bottom:10px;
}
#page-workday-enlaces .captacion-colabora-copy strong{
  color:#fff;
  font-size:14px;
  font-weight:850;
}
#page-workday-enlaces .captacion-colabora-copy span{
  color:var(--enl-muted);
  font-size:11px;
  line-height:1.35;
}
#page-workday-enlaces .captacion-colabora-actions{
  width:100%;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:6px;
}
#page-workday-enlaces .enlaces-premium-centro{
  border-color:rgba(255,255,255,.11);
}
#page-workday-enlaces .enlaces-premium-madero .workday-action--primary,
#page-workday-enlaces .enlaces-premium-amigo .workday-action--primary{
  color:#111;
  background:linear-gradient(135deg,#ffe21a,#ffc800);
  border-color:#ffd400;
}
#page-workday-enlaces #enlaces-qr-mi-centro-wrap,
#page-workday-enlaces #enlaces-qr-skin-wrap,
#page-workday-enlaces #enlaces-qr-maderoterapia-wrap,
#page-workday-enlaces #enlaces-qr-invitar-wrap{
  margin-top:10px!important;
}
#page-workday-enlaces .loading-state,
#page-workday-enlaces .empty-state{
  border:1px solid var(--enl-border);
  border-radius:16px;
  background:var(--enl-card);
  color:var(--enl-muted);
}
@media(max-width:640px){
  #page-workday-enlaces .enlaces-premium-note{margin-left:0;margin-bottom:14px}
  #page-workday-enlaces .enlaces-premium-card{padding:13px}
  #page-workday-enlaces .enlaces-premium-actions,
  #page-workday-enlaces .enlaces-premium-card > .opportunity-actions,
  #page-workday-enlaces .captacion-colabora-actions{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  #page-workday-enlaces .enlaces-premium-card .workday-action{min-height:44px;font-size:12px}
  #page-workday-enlaces .captacion-colabora-row{padding:11px}
}

/* ============================================================
   NF24FIT · CONTACTOS DIARIOS PREMIUM · v32
   Rediseño de la antigua pantalla de "Seguimiento comercial".
   La función principal aquí es GUARDAR CONTACTOS DEL DÍA A DÍA.
   Recordatorios y estados comerciales se conservan como apoyo, no como
   eje principal. Scopeado a #page-admin-prospectos para no afectar otras vistas.
   ============================================================ */
#page-admin-prospectos.contactos-premium-page {
  --contact-card: #151619;
  --contact-card-2: #101113;
  --contact-border: rgba(255,255,255,.09);
  --contact-gold: #ffd400;
  --contact-muted: rgba(255,255,255,.56);
  padding-bottom: 122px;
}
#page-admin-prospectos .contactos-premium-head {
  position: relative;
  margin: -2px -2px 14px;
  padding: 4px 2px 0;
}
#page-admin-prospectos .contactos-premium-head::before {
  content: "";
  position: absolute;
  inset: -22px -16px 18px;
  background: radial-gradient(circle at 82% 0%, rgba(255,212,0,.13), transparent 34%);
  pointer-events: none;
}
#page-admin-prospectos .contactos-premium-title-row {
  position: relative;
  align-items: flex-start;
  gap: 10px;
}
#page-admin-prospectos .contactos-premium-title-copy {
  min-width: 0;
  flex: 1;
}
#page-admin-prospectos .contactos-premium-title-copy h1 {
  margin: 1px 0 5px;
  font-size: clamp(25px, 6vw, 34px);
  line-height: 1.06;
  letter-spacing: -.75px;
  color: #fff;
}
#page-admin-prospectos .contactos-premium-title-copy p {
  margin: 0;
  max-width: 560px;
  color: var(--contact-muted);
  font-size: 12.5px;
  line-height: 1.45;
}
#page-admin-prospectos .contactos-premium-add {
  flex: 0 0 auto;
  min-height: 45px;
  border: 0;
  border-radius: 15px;
  padding: 0 15px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: linear-gradient(135deg, #ffe01a, #ffc800);
  color: #111;
  font: 800 12.5px/1 inherit;
  box-shadow: 0 8px 24px rgba(255,212,0,.2);
}
#page-admin-prospectos .contactos-premium-add-plus { font-size: 21px; font-weight: 500; }

#page-admin-prospectos .contactos-premium-insight {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  padding: 13px 14px;
  border: 1px solid rgba(255,212,0,.34);
  border-radius: 17px;
  background: linear-gradient(105deg, rgba(255,212,0,.12), rgba(21,22,25,.95) 72%);
  box-shadow: inset 0 0 0 1px rgba(255,212,0,.025);
}
#page-admin-prospectos .contactos-premium-insight-icon {
  width: 38px; height: 38px; flex: 0 0 38px;
  border-radius: 13px;
  display: grid; place-items: center;
  background: rgba(255,212,0,.13);
  color: var(--contact-gold);
  font-size: 19px;
}
#page-admin-prospectos .contactos-premium-insight strong,
#page-admin-prospectos .contactos-premium-insight span:not(.contactos-premium-insight-icon) { display: block; }
#page-admin-prospectos .contactos-premium-insight strong { color: #fff; font-size: 13px; line-height: 1.25; }
#page-admin-prospectos .contactos-premium-insight div > span { margin-top: 2px; color: var(--contact-muted); font-size: 11.5px; line-height: 1.4; }

#page-admin-prospectos .contactos-premium-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 8px;
  margin: 14px 0 15px;
}
#page-admin-prospectos .contactos-premium-kpi {
  min-width: 0;
  min-height: 88px;
  border: 1px solid var(--contact-border);
  border-radius: 17px;
  background: linear-gradient(145deg, #191a1e, #121315);
  color: #fff;
  padding: 11px 8px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-align: left;
  font-family: inherit;
}
#page-admin-prospectos .contactos-premium-kpi:active { transform: translateY(1px); border-color: rgba(255,212,0,.35); }
#page-admin-prospectos .contactos-premium-kpi-icon {
  width: 29px; height: 29px; border-radius: 10px;
  display: grid; place-items: center;
  background: rgba(255,212,0,.1); color: var(--contact-gold);
  font-size: 15px; margin-bottom: 7px;
}
#page-admin-prospectos .contactos-premium-kpi strong { font-size: 23px; line-height: 1; letter-spacing: -.5px; }
#page-admin-prospectos .contactos-premium-kpi > span:last-child { color: var(--contact-muted); font-size: 10.5px; margin-top: 5px; }
#page-admin-prospectos .contactos-premium-kpi--interest { border-color: rgba(86,156,255,.22); }
#page-admin-prospectos .contactos-premium-kpi--interest .contactos-premium-kpi-icon { color:#7ab2ff; background:rgba(71,136,255,.11); }
#page-admin-prospectos .contactos-premium-kpi--total { border-color: rgba(255,212,0,.18); }

#page-admin-prospectos .contactos-premium-tools { margin-bottom: 13px; }
#page-admin-prospectos .contactos-premium-search {
  height: 50px;
  display: flex; align-items: center; gap: 9px;
  border: 1px solid var(--contact-border);
  border-radius: 16px;
  padding: 0 14px;
  background: #131416;
}
#page-admin-prospectos .contactos-premium-search > span { color: rgba(255,255,255,.5); font-size: 26px; transform: translateY(-1px); }
#page-admin-prospectos .contactos-premium-search input {
  width: 100%; min-width: 0; height: 100%; border: 0; outline: 0;
  background: transparent; color: #fff; font: 500 13px/1 inherit;
}
#page-admin-prospectos .contactos-premium-search input::placeholder { color: rgba(255,255,255,.38); }
#page-admin-prospectos .contactos-premium-tabs {
  margin-top: 10px;
  padding-bottom: 4px;
  overflow-x: auto;
  flex-wrap: nowrap;
  scrollbar-width: none;
}
#page-admin-prospectos .contactos-premium-tabs::-webkit-scrollbar { display:none; }
#page-admin-prospectos .contactos-premium-tabs .workday-tab {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 9px 14px;
  min-height: 38px;
  background: #111214;
  border: 1px solid var(--contact-border);
  color: rgba(255,255,255,.62);
  font-size: 11.5px;
}
#page-admin-prospectos .contactos-premium-tabs .workday-tab.active {
  background: var(--contact-gold);
  color: #111;
  border-color: var(--contact-gold);
  box-shadow: 0 6px 18px rgba(255,212,0,.14);
}

#page-admin-prospectos .contactos-premium-list { scroll-margin-top: 84px; }
#page-admin-prospectos .contactos-premium-card {
  position: relative;
  border: 1px solid var(--contact-border);
  border-radius: 20px;
  padding: 14px;
  margin-bottom: 11px;
  overflow: hidden;
  background: linear-gradient(145deg, #18191c 0%, #111214 100%);
  box-shadow: 0 10px 26px rgba(0,0,0,.14);
}
#page-admin-prospectos .contactos-premium-card::before {
  content: ""; position:absolute; inset:0 auto 0 0; width:2px;
  background: linear-gradient(to bottom, rgba(255,212,0,.7), rgba(255,212,0,0));
}
#page-admin-prospectos .contactos-premium-card-main { display:flex; align-items:flex-start; gap:11px; min-width:0; }
#page-admin-prospectos .contactos-premium-avatar {
  width: 44px; height: 44px; flex: 0 0 44px; border-radius: 50%;
  display:grid; place-items:center;
  background: radial-gradient(circle at 30% 25%, rgba(255,212,0,.24), rgba(255,212,0,.08));
  border:1px solid rgba(255,212,0,.2); color:#ffe05a; font-weight:900; font-size:17px;
}
#page-admin-prospectos .contactos-premium-card-copy { flex:1; min-width:0; }
#page-admin-prospectos .contactos-premium-name-row { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
#page-admin-prospectos .contactos-premium-name-row h3 { margin:0; color:#fff; font-size:15px; line-height:1.2; }
#page-admin-prospectos .contactos-premium-state {
  padding: 3px 8px; border-radius:999px; font-size:9px; font-weight:800;
  color:#d8d8d8; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.07);
}
#page-admin-prospectos .contactos-premium-state--interesado { color:#8ebfff; background:rgba(63,132,255,.1); border-color:rgba(63,132,255,.22); }
#page-admin-prospectos .contactos-premium-state--convertido { color:#56e884; background:rgba(33,201,95,.1); border-color:rgba(33,201,95,.22); }
#page-admin-prospectos .contactos-premium-state--contactado { color:#ffd95a; background:rgba(255,212,0,.08); border-color:rgba(255,212,0,.18); }
#page-admin-prospectos .contactos-premium-state--no-interesado { opacity:.6; }
#page-admin-prospectos .contactos-premium-meta { margin-top:4px; color:var(--contact-muted); font-size:11px; line-height:1.35; }
#page-admin-prospectos .contactos-premium-details { margin-top:6px; display:flex; gap:10px; flex-wrap:wrap; color:rgba(255,255,255,.66); font-size:10.5px; }
#page-admin-prospectos .contactos-premium-reminder {
  flex:0 0 auto; max-width:115px; padding:5px 9px; border-radius:999px;
  color:#ffd95a; border:1px solid rgba(255,212,0,.3); background:rgba(255,212,0,.07);
  font-size:9.5px; font-weight:800; text-align:center;
}
#page-admin-prospectos .contactos-premium-reminder--late { color:#ff7777; border-color:rgba(255,78,78,.35); background:rgba(255,78,78,.08); }
#page-admin-prospectos .contactos-premium-note {
  margin: 11px 0 0 55px; color:rgba(255,255,255,.72); font-size:11.5px; line-height:1.45;
}
#page-admin-prospectos .contactos-premium-last {
  display:flex; align-items:center; gap:6px; margin:11px 0 0 55px;
  padding:7px 9px; border-radius:11px; background:rgba(255,255,255,.035);
  color:rgba(255,255,255,.48); font-size:9.5px;
}
#page-admin-prospectos .contactos-premium-last strong { color:#79b5ff; font-weight:700; }
#page-admin-prospectos .contactos-premium-actions {
  display:grid; grid-template-columns:minmax(98px,1.15fr) minmax(125px,1.55fr) 42px 42px 42px;
  gap:7px; margin-top:11px;
}
#page-admin-prospectos .contactos-premium-actions > * {
  min-width:0; min-height:40px; border-radius:12px; font:800 10.5px/1 inherit;
  text-decoration:none; display:flex; align-items:center; justify-content:center;
}
#page-admin-prospectos .contactos-premium-wa { border:0; background:#1fd36f; color:#fff; }
#page-admin-prospectos .contactos-premium-action { border:1px solid var(--contact-border); background:#121315; color:#fff; }
#page-admin-prospectos .contactos-premium-action--main { color:#fff; }
#page-admin-prospectos .contactos-premium-action--icon { font-size:17px; font-weight:500; padding:0; }
#page-admin-prospectos .empty-state { border:1px dashed rgba(255,255,255,.1); border-radius:16px; padding:22px 14px; color:var(--contact-muted); }

@media (max-width: 620px) {
  #page-admin-prospectos .contactos-premium-title-row { flex-wrap:wrap; }
  #page-admin-prospectos .contactos-premium-title-copy { flex:1 1 calc(100% - 50px); }
  #page-admin-prospectos .contactos-premium-add { margin-left:46px; margin-top:8px; }
  #page-admin-prospectos .contactos-premium-summary { grid-template-columns: repeat(2, minmax(0,1fr)); }
  #page-admin-prospectos .contactos-premium-kpi { min-height:78px; }
  #page-admin-prospectos .contactos-premium-card-main { flex-wrap:wrap; }
  #page-admin-prospectos .contactos-premium-reminder { margin-left:55px; max-width:none; }
  #page-admin-prospectos .contactos-premium-actions { grid-template-columns:1fr 1.35fr repeat(3,40px); }
}
@media (max-width: 410px) {
  #page-admin-prospectos .contactos-premium-actions { grid-template-columns:1fr 1fr repeat(3,38px); gap:5px; }
  #page-admin-prospectos .contactos-premium-actions > * { font-size:9.7px; }
  #page-admin-prospectos .contactos-premium-add { width:calc(100% - 46px); justify-content:center; }
}


/* ============================================================
   NF24 · OPORTUNIDADES PREMIUM COMPACTAS · v33
   Más densidad visual, pipeline comercial y acciones claras.
   ============================================================ */
#page-workday-oportunidades{--op-gold:#ffd100;--op-green:#34e27a;--op-blue:#53a7ff;--op-red:#ff5757;}
#page-workday-oportunidades .op-premium-head{margin-bottom:14px}
#page-workday-oportunidades .op-premium-title-row{gap:10px;margin-bottom:4px}
#page-workday-oportunidades .op-premium-title-row h1{font-size:clamp(26px,7vw,38px);margin:0;letter-spacing:-.035em}
#page-workday-oportunidades .op-premium-sub{font-size:14px;line-height:1.45;color:var(--text-muted);margin:0}
#page-workday-oportunidades .op-premium-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0 14px}
#page-workday-oportunidades .op-kpi{min-width:0;border:1px solid var(--border-soft);background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018));border-radius:16px;padding:11px 7px 10px;color:var(--text-dark);font:inherit;text-align:center;box-shadow:0 8px 22px rgba(0,0,0,.12)}
#page-workday-oportunidades .op-kpi-icon{display:block;font-size:18px;line-height:1;margin-bottom:5px;color:var(--op-gold)}
#page-workday-oportunidades .op-kpi strong{display:block;font-size:20px;line-height:1.05}
#page-workday-oportunidades .op-kpi small{display:block;font-size:9.5px;color:var(--text-muted);margin-top:4px;line-height:1.1}
#page-workday-oportunidades .op-kpi--total{border-color:rgba(255,209,0,.5);background:linear-gradient(145deg,rgba(255,209,0,.10),rgba(255,255,255,.015))}
#page-workday-oportunidades .op-kpi--follow .op-kpi-icon{color:var(--op-blue)}
#page-workday-oportunidades .op-kpi--closed .op-kpi-icon{color:var(--op-green)}
#page-workday-oportunidades .op-premium-tabs{display:flex;gap:7px;overflow-x:auto;padding:0 0 6px;margin:0 0 12px;scrollbar-width:none}
#page-workday-oportunidades .op-premium-tabs::-webkit-scrollbar{display:none}
#page-workday-oportunidades .op-premium-tabs .workday-tab{flex:0 0 auto;padding:9px 14px;border-radius:999px;white-space:nowrap}
#page-workday-oportunidades .op-premium-list{display:grid;gap:10px}
#page-workday-oportunidades .op-card-compact{position:relative;padding:13px;border:1px solid var(--border-soft);border-radius:20px;background:linear-gradient(150deg,rgba(25,25,25,.98),rgba(13,13,13,.98));box-shadow:0 12px 32px rgba(0,0,0,.20);overflow:hidden}
#page-workday-oportunidades .op-card-compact::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--op-gold);opacity:.85}
#page-workday-oportunidades .op-card--closed::before{background:var(--op-green)}
#page-workday-oportunidades .op-card--lost::before{background:#777}
#page-workday-oportunidades .op-card--hot::before{background:#ff9f1a}
#page-workday-oportunidades .op-card-head{display:flex;align-items:center;gap:10px;min-width:0}
#page-workday-oportunidades .op-avatar{width:42px;height:42px;border-radius:50%;flex:0 0 42px;display:flex;align-items:center;justify-content:center;font-size:22px;background:rgba(255,209,0,.08);border:1px solid rgba(255,209,0,.22)}
#page-workday-oportunidades .op-card-person{flex:1;min-width:0}
#page-workday-oportunidades .op-card-name{font-size:16px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#page-workday-oportunidades .op-card-meta{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:11px;margin-top:3px;min-width:0}
#page-workday-oportunidades .op-source{font-weight:700}.op-source--nutricion{color:#4be28a}.op-source--herbalife{color:#7bc2ff}.op-source--negocio{color:#d5a4ff}
#page-workday-oportunidades .op-state-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 9px;font-size:10.5px;font-weight:850;border:1px solid rgba(255,209,0,.35);color:var(--op-gold);background:rgba(255,209,0,.08);white-space:nowrap}
#page-workday-oportunidades .op-state-chip i{width:7px;height:7px;border-radius:50%;background:currentColor;display:block}
#page-workday-oportunidades .op-state--hot{color:#ffad33;border-color:rgba(255,173,51,.35);background:rgba(255,173,51,.08)}
#page-workday-oportunidades .op-state--follow{color:#62b0ff;border-color:rgba(98,176,255,.35);background:rgba(98,176,255,.08)}
#page-workday-oportunidades .op-state--closed{color:#41df83;border-color:rgba(65,223,131,.35);background:rgba(65,223,131,.08)}
#page-workday-oportunidades .op-state--lost{color:#aaa;border-color:rgba(170,170,170,.25);background:rgba(170,170,170,.06)}
#page-workday-oportunidades .op-card-core{display:grid;grid-template-columns:minmax(0,.9fr) minmax(180px,1.25fr);gap:10px;align-items:center;margin-top:11px;padding:10px;border:1px solid rgba(255,209,0,.14);border-radius:14px;background:rgba(255,209,0,.025)}
#page-workday-oportunidades .op-interest{display:flex;align-items:center;gap:9px;min-width:0}
#page-workday-oportunidades .op-interest-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:var(--op-gold);background:rgba(255,209,0,.08);font-weight:900;flex:0 0 32px}
#page-workday-oportunidades .op-interest small{display:block;color:var(--text-muted);font-size:9.5px;margin-bottom:2px}
#page-workday-oportunidades .op-interest strong{display:block;font-size:12.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#page-workday-oportunidades .op-stage-mini{display:flex;align-items:flex-start;min-width:0;padding-top:2px}
#page-workday-oportunidades .op-stage-mini em{height:2px;background:rgba(255,255,255,.18);flex:1;margin:7px -1px 0}
#page-workday-oportunidades .op-stage-dot{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:38px;color:var(--text-muted)}
#page-workday-oportunidades .op-stage-dot b{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.28);background:#171717;z-index:1}
#page-workday-oportunidades .op-stage-dot small{font-size:8px;white-space:nowrap}
#page-workday-oportunidades .op-stage-dot.current{color:var(--op-gold);font-weight:800}.op-stage-dot.current b{border-color:var(--op-gold);box-shadow:0 0 0 4px rgba(255,209,0,.10)}
#page-workday-oportunidades .op-stage-dot.done b{background:var(--op-gold);border-color:var(--op-gold)}
#page-workday-oportunidades .op-card-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:9px}
#page-workday-oportunidades .op-card-actions .workday-action,#page-workday-oportunidades .op-move-stage{min-width:0;height:42px;margin:0;border-radius:12px;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
#page-workday-oportunidades .op-move-stage{position:relative;border:1px solid var(--border-soft);background:rgba(255,255,255,.025);overflow:hidden;color:var(--text-dark)}
#page-workday-oportunidades .op-move-stage span{pointer-events:none;z-index:1}
#page-workday-oportunidades .op-move-stage select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
#page-workday-oportunidades .op-card-secondary{display:flex;gap:8px;margin-top:7px;padding-top:7px;border-top:1px solid rgba(255,255,255,.055)}
#page-workday-oportunidades .op-card-secondary button{flex:1;border:0;background:transparent;color:var(--text-muted);font:700 10.5px/1.2 inherit;padding:5px;cursor:pointer}
#page-workday-oportunidades .op-card-secondary button:active{color:var(--op-gold)}
#page-workday-oportunidades .op-empty{border:1px dashed var(--border-soft);border-radius:16px;padding:22px;text-align:center}
@media(max-width:560px){
  #page-workday-oportunidades .op-premium-kpis{gap:6px}
  #page-workday-oportunidades .op-kpi{padding:9px 4px}.op-kpi strong{font-size:18px}.op-kpi small{font-size:8.5px}
  #page-workday-oportunidades .op-card-core{grid-template-columns:1fr;gap:8px}
  #page-workday-oportunidades .op-stage-mini{padding:2px 2px 0}
  #page-workday-oportunidades .op-card-actions{grid-template-columns:1fr 1fr 1fr}
}
\n\n/* ============================================================\n   NF24 · MENSAJES PREMIUM v1 · Workday\n   Bandeja compacta tipo CRM/WhatsApp con filtros, búsqueda y\n   NF Assistant en una sola pantalla. Solo afecta page-workday-mensajes.\n   ============================================================ */\n#page-workday-mensajes.mensajes-premium-page{padding-bottom:118px}\n#page-workday-mensajes .mensajes-premium-head{margin-bottom:12px}\n#page-workday-mensajes .mensajes-premium-title-row{display:flex;align-items:center;gap:12px}\n#page-workday-mensajes .mensajes-premium-title-row h1{margin:0;font-size:27px;line-height:1.05;letter-spacing:-.55px}\n#page-workday-mensajes .mensajes-premium-head>p{margin:8px 0 0;color:var(--text-muted);font-size:13px;line-height:1.45}\n#page-workday-mensajes .mensajes-premium-main-tabs{margin:14px 0 12px;gap:9px}\n#page-workday-mensajes .mensajes-premium-main-tabs .workday-tab{min-height:45px;padding:0 21px;border-radius:23px;font-weight:800}\n#page-workday-mensajes .mensajes-search-wrap{display:flex;align-items:center;gap:10px;width:100%;height:50px;padding:0 15px;border:1px solid rgba(255,255,255,.10);border-radius:17px;background:linear-gradient(180deg,rgba(28,29,32,.96),rgba(18,19,21,.96));box-shadow:inset 0 1px 0 rgba(255,255,255,.025);margin:0 0 11px}\n#page-workday-mensajes .mensajes-search-icon{font-size:25px;color:rgba(255,255,255,.66);line-height:1;transform:rotate(-18deg)}\n#page-workday-mensajes #mensajes-search-input{width:100%;border:0!important;outline:0!important;background:transparent!important;color:#fff!important;font-size:14px;padding:0!important;box-shadow:none!important}\n#page-workday-mensajes #mensajes-search-input::placeholder{color:rgba(255,255,255,.43)}\n#page-workday-mensajes .mensajes-filter-row{display:flex;gap:7px;overflow-x:auto;padding:1px 0 6px;scrollbar-width:none;margin-bottom:5px}\n#page-workday-mensajes .mensajes-filter-row::-webkit-scrollbar{display:none}\n#page-workday-mensajes .mensajes-filter{flex:0 0 auto;min-height:36px;border:1px solid rgba(255,255,255,.10);border-radius:19px;background:#111214;color:rgba(255,255,255,.68);padding:0 13px;font:inherit;font-size:11px;font-weight:750;white-space:nowrap}\n#page-workday-mensajes .mensajes-filter.active{color:#151515;background:#ffd400;border-color:#ffd400;box-shadow:0 7px 22px rgba(255,212,0,.16)}\n#page-workday-mensajes .nf-assistant-panel-premium{margin:8px 0 13px;padding:14px;border-radius:18px;background:radial-gradient(circle at 0 0,rgba(255,212,0,.12),transparent 38%),linear-gradient(160deg,#171711,#121315 62%);border:1px solid rgba(255,212,0,.42);box-shadow:0 13px 32px rgba(0,0,0,.18)}\n#page-workday-mensajes .nf-assistant-title-wrap{display:flex!important;flex-direction:row!important;align-items:center;gap:10px!important}\n#page-workday-mensajes .nf-assistant-robot{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:rgba(255,212,0,.12);font-size:21px;flex:0 0 auto}\n#page-workday-mensajes .nf-assistant-panel-head strong{font-size:15px}\n#page-workday-mensajes .nf-assistant-panel-head span{font-size:10px}\n#page-workday-mensajes #nf-assistant-global-toggle{border:1px solid rgba(38,212,114,.32);background:rgba(38,212,114,.10);color:#51e590;border-radius:18px;padding:7px 12px;font-size:10.5px;font-weight:900}\n#page-workday-mensajes #nf-assistant-global-toggle.paused{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:rgba(255,255,255,.55)}\n#page-workday-mensajes .nf-assistant-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px}\n#page-workday-mensajes .nf-assistant-stats>div{min-width:0;padding:9px 7px;text-align:left;background:rgba(0,0,0,.18);border-color:rgba(255,255,255,.075)}\n#page-workday-mensajes .nf-assistant-stats strong{font-size:17px;line-height:1}\n#page-workday-mensajes .nf-assistant-stats span{font-size:8.5px;line-height:1.15}\n#page-workday-mensajes .nf-assistant-panel-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.07)}\n#page-workday-mensajes .nf-assistant-panel-foot>span{font-size:9.5px;line-height:1.35;color:var(--text-muted);max-width:64%}\n#page-workday-mensajes #nf-assistant-ver-pendientes{flex:0 0 auto;border:0;border-radius:13px;background:#ffd400;color:#111;padding:9px 12px;font-size:10px;font-weight:900}\n#page-workday-mensajes .mensajes-premium-list{margin-top:7px}\n#page-workday-mensajes .mensajes-premium-row{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:76px;margin-bottom:8px;padding:11px 12px;background:linear-gradient(150deg,#191a1d,#141517);border:1px solid rgba(255,255,255,.085);border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.10);transition:transform .12s ease,border-color .12s ease}\n#page-workday-mensajes .mensajes-premium-row:active{transform:scale(.992);border-color:rgba(255,212,0,.30)}\n#page-workday-mensajes .mensajes-avatar-wrap{position:relative;width:46px;height:46px}\n#page-workday-mensajes .mensajes-avatar-wrap img{width:46px;height:46px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.14)}\n#page-workday-mensajes .mensajes-presence{position:absolute;right:-1px;bottom:1px;width:10px;height:10px;border-radius:50%;background:#6a6d72;border:2px solid #17181b}\n#page-workday-mensajes .mensajes-presence.unread{background:#2bd477}\n#page-workday-mensajes .mensajes-name-line{display:flex;align-items:center;gap:7px;min-width:0}\n#page-workday-mensajes .workday-message-name{font-size:14px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n#page-workday-mensajes .workday-message-role{display:inline-flex;width:max-content;margin:0;padding:2px 7px;border-radius:11px;font-size:8.5px;font-weight:850;color:#ffd400;background:rgba(255,212,0,.10);border:1px solid rgba(255,212,0,.14)}\n#page-workday-mensajes .workday-message-role.coach{color:#b995ff;background:rgba(159,105,255,.12);border-color:rgba(159,105,255,.18)}\n#page-workday-mensajes .workday-message-role.soporte{color:#66d9ff;background:rgba(58,191,236,.10);border-color:rgba(58,191,236,.17)}\n#page-workday-mensajes .workday-message-preview{font-size:11.5px;margin-top:5px;line-height:1.3;color:rgba(255,255,255,.54)}\n#page-workday-mensajes .mensajes-row-side{display:flex;align-items:center;gap:6px;flex:0 0 auto}\n#page-workday-mensajes .nf-assistant-row-status{max-width:105px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n#page-workday-mensajes .mensajes-chevron{font-size:24px;line-height:1;color:rgba(255,255,255,.46);margin-left:1px}\n#page-workday-mensajes .mensajes-empty{display:flex;min-height:180px;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-muted);gap:5px}\n#page-workday-mensajes .mensajes-empty>span{font-size:29px;opacity:.8}\n#page-workday-mensajes .mensajes-empty>strong{font-size:14px;color:var(--text-dark)}\n#page-workday-mensajes .mensajes-empty>small{font-size:11px}\n@media(max-width:430px){\n #page-workday-mensajes .nf-assistant-stats{grid-template-columns:repeat(4,minmax(58px,1fr));overflow:hidden}\n #page-workday-mensajes .nf-assistant-stats>div{padding:8px 5px}\n #page-workday-mensajes .nf-assistant-stats strong{font-size:15px}\n #page-workday-mensajes .nf-assistant-stats span{font-size:7.7px}\n #page-workday-mensajes .nf-assistant-panel-foot>span{display:none}\n #page-workday-mensajes #nf-assistant-ver-pendientes{width:100%}\n #page-workday-mensajes .mensajes-premium-row{grid-template-columns:43px minmax(0,1fr) auto;padding:10px;gap:9px}\n #page-workday-mensajes .mensajes-avatar-wrap,#page-workday-mensajes .mensajes-avatar-wrap img{width:43px;height:43px}\n #page-workday-mensajes .nf-assistant-row-status{max-width:92px;font-size:7.5px;padding:4px 6px}\n}\n
/* ============================================================
   NF24 · MIS CLIENTES PREMIUM V1 · v35_0
   Cartera + ficha de cliente. Solo presentación; conserva lógica/RPC.
   ============================================================ */
.clients-premium-page,
.client-detail-premium-page {
  --client-gold:#ffd400;
  --client-surface:#151617;
  --client-surface-2:#1b1c1f;
  --client-border:rgba(255,255,255,.09);
}
.clients-premium-page .header-row,
.client-detail-premium-page .header-row { margin-bottom: 12px; }
.clients-premium-page .header-row h1,
.client-detail-premium-page .header-row h1 { font-size: 25px !important; letter-spacing:-.5px; }

/* KPI servicios = filtros visuales compactos */
.clients-premium-page .workday-kpi-row { gap:8px; flex-wrap:nowrap; overflow-x:auto; padding:2px 0 4px; scrollbar-width:none; }
.clients-premium-page .workday-kpi-row::-webkit-scrollbar { display:none; }
.clients-premium-page .workday-kpi-pill--service,
.clients-premium-page .workday-kpi-service-btn {
  min-width:96px; min-height:62px; flex:0 0 auto; border-radius:16px;
  background:linear-gradient(155deg,#1b1c1f,#121315); border:1px solid var(--client-border);
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
  padding:10px 13px; gap:2px; color:var(--text-muted); box-shadow:none;
}
.clients-premium-page .workday-kpi-service-btn b { font-size:21px; line-height:1; color:#fff; }
.clients-premium-page .workday-kpi-service-btn.active { border-color:rgba(255,212,0,.7); background:linear-gradient(145deg,rgba(255,212,0,.15),#171717); box-shadow:0 0 24px rgba(255,212,0,.08); color:var(--client-gold); }

/* Buscador */
.clients-premium-page .field input { height:50px; border-radius:15px; background:#111214; border:1px solid var(--client-border); padding-left:16px; }
.clients-premium-page .workday-tabs { gap:7px; overflow-x:auto; flex-wrap:nowrap; padding-bottom:3px; scrollbar-width:none; }
.clients-premium-page .workday-tab { flex:0 0 auto; min-height:38px; border-radius:999px; padding:8px 14px; }

/* Tarjeta cartera */
.clients-premium-page .cliente-card-compacta {
  position:relative; display:grid; grid-template-columns:58px minmax(0,1fr); gap:12px;
  padding:13px; border-radius:18px; background:linear-gradient(145deg,#18191b,#121315);
  border:1px solid var(--client-border); box-shadow:0 9px 28px rgba(0,0,0,.18);
}
.clients-premium-page .cliente-card-compacta:hover { border-color:rgba(255,212,0,.28); }
.clients-premium-page .cliente-card-compacta-avatar { width:58px; height:58px; border:2px solid rgba(255,212,0,.18); }
.clients-premium-page .cliente-card-compacta-nombre { font-size:16px; letter-spacing:-.2px; }
.clients-premium-page .cliente-card-compacta-badges { display:flex; gap:5px; margin-top:5px; }
.clients-premium-page .cliente-card-compacta-detalle { margin-top:5px; font-size:12.5px; }
.clients-premium-page .cliente-card-compacta-acciones { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr auto; gap:7px; margin-top:5px; }
.clients-premium-page .cliente-card-compacta-acciones .workday-action { justify-content:center; min-height:38px; border-radius:11px; }
.clients-premium-page .cliente-card-ver-ficha { width:40px; padding:7px !important; }
.clients-premium-page .workday-card-arrow { opacity:.55; }

/* Ficha hero */
.client-detail-premium-page .client-premium-hero {
  position:relative; border-radius:20px; padding:16px; margin-bottom:13px;
  background:radial-gradient(circle at 100% 0,rgba(255,212,0,.11),transparent 35%),linear-gradient(145deg,#1a1b1d,#121315);
  border:1px solid rgba(255,212,0,.16); overflow:hidden;
}
.client-detail-premium-page .client-premium-identity { display:flex; align-items:center; gap:13px; }
.client-detail-premium-page .client-premium-avatar img,
.client-detail-premium-page .client-premium-avatar > div { width:68px !important; height:68px !important; border:2px solid rgba(255,212,0,.45); }
.client-detail-premium-page .client-premium-name { font-size:21px; font-weight:850; color:#fff; margin:0; letter-spacing:-.4px; }
.client-detail-premium-page .client-premium-objective { font-size:12.5px; color:var(--text-muted); margin:3px 0 0; }
.client-detail-premium-page .client-premium-meta { margin-top:12px; padding-top:11px; border-top:1px solid var(--client-border); display:flex; gap:7px; flex-wrap:wrap; align-items:center; }
.client-detail-premium-page .client-premium-data { font-size:12.5px; color:#fff; font-weight:700; }
.client-detail-premium-page .client-premium-subdata { font-size:11.5px; color:var(--text-muted); }
.client-detail-premium-page .client-premium-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px; }
.client-detail-premium-page .client-premium-actions .workday-action { min-height:42px; justify-content:center; border-radius:12px; }

/* Tabs ficha */
.client-detail-premium-page > .header-row + div .workday-tabs,
.client-detail-premium-page .workday-tabs[id^="ficha-"] { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin:0 0 13px; }
.client-detail-premium-page .workday-tabs[id^="ficha-"] .workday-tab { min-width:0; padding:9px 5px; font-size:11.5px; border-radius:999px; }

/* Tarjetas de Resumen / secciones */
.client-detail-premium-page .workday-item-card,
.client-detail-premium-page .tracker-card { border-radius:17px; background:linear-gradient(145deg,#18191b,#131416); border:1px solid var(--client-border); }
.client-detail-premium-page .workday-section-label { margin-top:16px; font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:rgba(255,255,255,.58); }
.client-detail-premium-page .workday-section-line { width:38px; height:3px; border-radius:9px; background:var(--client-gold); border:0; margin:5px 0 10px; }

/* Progreso: resumen de medidas en mosaico compacto */
.client-metrics-premium { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:0 0 10px; }
.client-metric-premium { min-height:72px; padding:10px; border-radius:14px; border:1px solid var(--client-border); background:#17181a; }
.client-metric-premium small { display:block; color:var(--text-muted); font-size:10px; line-height:1.15; }
.client-metric-premium strong { display:block; color:#fff; font-size:17px; margin-top:5px; line-height:1.1; }
.client-metric-premium.is-primary { border-color:rgba(255,212,0,.45); background:linear-gradient(145deg,rgba(255,212,0,.12),#17181a); }
.client-detail-premium-page .reg-shell { padding:13px; }
.client-detail-premium-page .reg-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:10px !important; }
.client-detail-premium-page .metric-input-wrap input { min-height:48px; }
.client-detail-premium-page .reg-block { margin-bottom:14px; }
.client-detail-premium-page .reg-section-title { font-size:14px; }

/* Entreno / Nutrición */
.client-detail-premium-page [id$="tab-entreno"] .workday-item-card,
.client-detail-premium-page [id$="tab-nutricion"] .workday-item-card { padding:14px; }
.client-detail-premium-page [id$="tabla-semanal-btn"] { min-height:40px; }

@media (min-width:720px){
  .clients-premium-page #paco-clientes-lista,.clients-premium-page #coach-mis-clientes-lista{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:390px){
  .client-metrics-premium{grid-template-columns:repeat(2,minmax(0,1fr))}
  .clients-premium-page .cliente-card-compacta-acciones{grid-template-columns:1fr 1fr}
  .clients-premium-page .cliente-card-ver-ficha{display:none}
}


/* =====================================================================
   NF24FIT — SEGUIMIENTO PREMIUM V1 (v36)
   Compacto, priorizado y alineado con Mis clientes Premium.
   ===================================================================== */
.tracking-premium-page{--trk-gold:#ffd400;--trk-border:rgba(255,255,255,.095);--trk-card:#17181a;}
.tracking-premium-head{margin-bottom:14px}.tracking-premium-head .header-row{margin-bottom:0}.tracking-premium-head h1{font-size:23px!important;margin:0!important;letter-spacing:-.45px}.tracking-premium-head p{font-size:13px;color:var(--text-muted);margin:7px 0 0;line-height:1.45}
.tracking-premium-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 13px}.tracking-premium-kpi{appearance:none;border:1px solid var(--trk-border);background:linear-gradient(145deg,#1a1b1e,#141517);border-radius:16px;padding:11px 9px;display:flex;align-items:center;gap:8px;text-align:left;color:#fff;min-width:0}.tracking-premium-kpi-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-weight:900;font-size:15px;background:rgba(255,255,255,.06);flex:0 0 auto}.tracking-premium-kpi span:last-child{min-width:0;display:flex;flex-direction:column}.tracking-premium-kpi strong{font-size:18px;line-height:1;font-weight:900}.tracking-premium-kpi small{font-size:10.5px;color:var(--text-muted);margin-top:4px;font-weight:700}.tracking-premium-kpi--pending{border-color:rgba(255,72,78,.24)}.tracking-premium-kpi--pending .tracking-premium-kpi-icon{color:#ff5d63;background:rgba(255,72,78,.10)}.tracking-premium-kpi--update{border-color:rgba(255,183,0,.24)}.tracking-premium-kpi--update .tracking-premium-kpi-icon{color:#ffb300;background:rgba(255,183,0,.10)}.tracking-premium-kpi--ok{border-color:rgba(40,205,112,.20)}.tracking-premium-kpi--ok .tracking-premium-kpi-icon{color:#31d17d;background:rgba(40,205,112,.10)}.tracking-premium-kpi.active{border-color:var(--trk-gold);box-shadow:0 0 0 1px rgba(255,212,0,.15),0 8px 24px rgba(255,212,0,.08)}
.tracking-premium-toolbar{display:flex;flex-direction:column;gap:9px;margin-bottom:11px}.tracking-premium-search{position:relative}.tracking-premium-search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#8b8b90}.tracking-premium-search input{width:100%;padding:12px 13px 12px 41px!important;min-height:48px;border-radius:15px!important;background:#111214!important;border:1px solid var(--trk-border)!important;font-size:14px!important}
#page-paco-seguimiento .tracking-premium-search input,#page-coach-seguimiento .tracking-premium-search input{color:#fff!important;caret-color:#fff!important}
#page-paco-seguimiento .tracking-premium-search input::placeholder,#page-coach-seguimiento .tracking-premium-search input::placeholder{color:rgba(255,255,255,.52)!important;opacity:1}
#page-paco-seguimiento .tracking-premium-tabs .workday-tab:not(.active),#page-coach-seguimiento .tracking-premium-tabs .workday-tab:not(.active){color:rgba(255,255,255,.78)!important}
#page-paco-seguimiento .tracking-premium-tabs .workday-tab.active,#page-coach-seguimiento .tracking-premium-tabs .workday-tab.active{color:#171310!important}.tracking-premium-tabs{display:flex!important;overflow-x:auto;gap:7px;padding-bottom:2px;scrollbar-width:none}.tracking-premium-tabs::-webkit-scrollbar{display:none}.tracking-premium-tabs .workday-tab{flex:0 0 auto!important;min-height:36px!important;padding:8px 13px!important;border-radius:999px!important;font-size:11.5px!important}.tracking-premium-list-head{display:flex;align-items:center;justify-content:space-between;margin:2px 2px 8px}.tracking-premium-list-head span{font-size:12px;font-weight:800;color:#fff}.tracking-premium-list-head small{font-size:10.5px;color:var(--text-muted)}
.tracking-premium-list{display:grid;gap:9px;padding-bottom:100px}.tracking-client-card{position:relative;background:linear-gradient(145deg,#18191b,#131416);border:1px solid var(--trk-border);border-radius:18px;padding:12px;overflow:hidden}.tracking-client-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#5e626a;opacity:.9}.tracking-client-card--pendiente::before{background:#ff4c55}.tracking-client-card--actualizar::before{background:#ffb000}.tracking-client-card--al_dia::before{background:#2ed27b}.tracking-client-main{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px}.tracking-client-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#222;border:1px solid rgba(255,255,255,.12)}.tracking-client-info{min-width:0}.tracking-client-name-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0}.tracking-client-name-row strong{font-size:14px;color:#fff;line-height:1.15;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tracking-client-metrics{font-size:11.5px;color:var(--text-muted);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracking-client-status{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 8px;font-size:10px;font-weight:850;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);white-space:nowrap}.tracking-client-status i{font-style:normal;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.07)}.tracking-client-card--pendiente .tracking-client-status{color:#ff656b;border-color:rgba(255,76,85,.2);background:rgba(255,76,85,.08)}.tracking-client-card--actualizar .tracking-client-status{color:#ffb71b;border-color:rgba(255,183,27,.20);background:rgba(255,183,27,.08)}.tracking-client-card--al_dia .tracking-client-status{color:#37d987;border-color:rgba(55,217,135,.20);background:rgba(55,217,135,.08)}
.tracking-client-reason{margin:10px 0 0;padding:9px 10px;border-radius:12px;background:rgba(255,255,255,.035);display:flex;align-items:center;gap:10px;min-width:0}.tracking-client-reason span{font-size:11.5px;font-weight:800;color:#fff;white-space:nowrap}.tracking-client-reason small{font-size:10.5px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tracking-client-actions{display:grid;grid-template-columns:1.15fr 1fr .9fr;gap:7px;margin-top:9px}.tracking-action{appearance:none;text-decoration:none;min-height:37px;border-radius:11px;border:1px solid rgba(255,255,255,.09);background:#151618;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;padding:7px 8px}.tracking-action--wa{background:#20d568;border-color:#20d568;color:#fff}.tracking-action--ghost{color:#d0d1d4;background:#101113}.tracking-client-card:hover{border-color:rgba(255,212,0,.25)}
@media(min-width:760px){.tracking-premium-list{grid-template-columns:repeat(2,minmax(0,1fr))}.tracking-premium-kpis{max-width:620px}.tracking-premium-toolbar{max-width:720px}}
@media(max-width:390px){.tracking-premium-kpi{padding:10px 7px}.tracking-premium-kpi-icon{display:none}.tracking-client-main{grid-template-columns:38px minmax(0,1fr)}.tracking-client-avatar{width:38px;height:38px}.tracking-client-status{grid-column:2;justify-self:start;margin-top:4px}.tracking-client-reason{display:block}.tracking-client-reason small{display:block;margin-top:3px}.tracking-client-actions{grid-template-columns:1fr 1fr}.tracking-action--ghost{grid-column:1/-1}}


/* ==================================================================
   v37_0 — Biblioteca premium Clases / Entrenamientos
   ================================================================== */
#page-admin-clases-lista.ace-premium-page { padding-bottom: 118px; }
#page-admin-clases-lista .underline { width: 54px; height: 4px; border-radius: 99px; margin-top: 10px; }
#page-admin-clases-lista .ace-create-workout-btn { width:100%; min-height:54px; border-radius:16px; font-size:16px; font-weight:900; margin: 14px 0 14px; box-shadow:0 10px 30px rgba(255,209,0,.13); }
#page-admin-clases-lista .ace-back-folders-btn { margin:0 0 12px; width:auto; padding:10px 14px; border-radius:12px; }
.ace-premium-intro { color:var(--text-muted); font-size:13px; line-height:1.5; margin:-2px 0 12px; }
.ace-folder-search { display:flex; align-items:center; gap:10px; background:var(--input-bg); border:1px solid var(--border-soft); border-radius:14px; padding:0 13px; margin-bottom:10px; }
.ace-folder-search span { color:var(--text-muted); font-size:22px; transform:rotate(-15deg); }
.ace-folder-search input { flex:1; min-width:0; background:transparent; border:0!important; box-shadow:none!important; color:var(--text-dark); padding:13px 0!important; font-size:14px!important; outline:0; }
.ace-folder-chips { display:flex; gap:7px; overflow-x:auto; padding:0 0 10px; scrollbar-width:none; }
.ace-folder-chips::-webkit-scrollbar{display:none}
.ace-filter-chip { border:1px solid var(--border-soft); background:var(--card-white); color:var(--text-muted); border-radius:999px; padding:8px 14px; font-weight:800; font-size:12px; white-space:nowrap; }
.ace-filter-chip.active { background:var(--gold); color:#15120a; border-color:var(--gold); box-shadow:0 6px 18px rgba(255,209,0,.12); }
.ace-library-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0 0 18px; }
.ace-library-stats>div { background:linear-gradient(145deg,var(--card-white),var(--input-bg)); border:1px solid var(--border-soft); border-radius:15px; padding:12px 9px; min-width:0; }
.ace-library-stats .ace-stat-icon { display:block; font-size:16px; margin-bottom:6px; }
.ace-library-stats strong { display:block; font-size:20px; color:var(--gold); line-height:1; }
.ace-library-stats small { display:block; font-size:10.5px; color:var(--text-muted); margin-top:5px; }
.ace-library-title-row { display:flex; align-items:end; justify-content:space-between; gap:10px; margin:0 0 10px; }
.ace-library-title-row h2 { margin:0; font-size:17px; color:var(--text-dark); }
.ace-library-title-row span { color:var(--text-muted); font-size:10.5px; }
.ace-carpetas-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.ace-carpeta-card--premium { position:relative; overflow:hidden; padding:0; min-height:168px; display:flex; flex-direction:column; align-items:stretch; border-radius:16px; text-align:left; background:linear-gradient(145deg,#181818,#111); border:1px solid var(--border-soft); }
[data-theme="light"] .ace-carpeta-card--premium { background:linear-gradient(145deg,#fff,#f4f4f4); }
.ace-carpeta-card--premium:active { transform:scale(.985); border-color:var(--gold); }
.ace-folder-visual { height:84px; display:flex; align-items:center; justify-content:center; font-size:38px; background:radial-gradient(circle at 70% 20%,rgba(255,209,0,.2),transparent 48%),linear-gradient(145deg,#242424,#101010); border-bottom:1px solid rgba(255,255,255,.05); }
.ace-folder-visual--trx,.ace-folder-visual--bodystick,.ace-folder-visual--mixto { background:radial-gradient(circle at 60% 20%,rgba(255,209,0,.22),transparent 50%),linear-gradient(145deg,#202016,#0d0d0d); }
.ace-folder-visual--hiit,.ace-folder-visual--cardiobox,.ace-folder-visual--emom,.ace-folder-visual--tabatas { background:radial-gradient(circle at 65% 20%,rgba(255,92,64,.2),transparent 50%),linear-gradient(145deg,#221512,#0d0d0d); }
.ace-folder-visual--entreno-militar,.ace-folder-visual--full-body,.ace-folder-visual--kettlefit { background:radial-gradient(circle at 60% 20%,rgba(90,190,100,.18),transparent 50%),linear-gradient(145deg,#142015,#0d0d0d); }
.ace-folder-meta { padding:10px 11px 12px; display:flex; flex-direction:column; gap:3px; min-width:0; }
.ace-carpeta-card--premium .ace-carpeta-nombre { font-size:13.5px; font-weight:900; color:var(--text-dark); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ace-folder-count-text { color:var(--text-muted); font-size:10.8px; }
.ace-folder-tag { align-self:flex-start; margin-top:4px; border:1px solid var(--border-soft); border-radius:999px; padding:3px 7px; color:var(--text-muted); font-size:9.5px; font-weight:800; }
.ace-folder-menu { position:absolute; top:8px; right:9px; padding:1px 5px; border-radius:8px; background:rgba(0,0,0,.45); color:#fff; letter-spacing:1px; font-size:13px; }
.ace-folder-hero { display:flex; align-items:center; gap:12px; min-height:112px; padding:16px; border:1px solid rgba(255,209,0,.26); border-radius:18px; margin:2px 0 10px; background:radial-gradient(circle at 85% 0%,rgba(255,209,0,.17),transparent 42%),linear-gradient(145deg,var(--card-white),var(--input-bg)); overflow:hidden; }
.ace-folder-hero-icon { width:66px; height:66px; display:grid; place-items:center; flex:0 0 66px; border-radius:16px; background:rgba(255,209,0,.09); border:1px solid rgba(255,209,0,.18); font-size:31px; }
.ace-folder-hero-kicker { color:var(--gold); font-size:9px; font-weight:900; letter-spacing:.16em; }
.ace-folder-hero h2 { color:var(--text-dark); font-size:20px; margin:3px 0 2px; }
.ace-folder-hero p { color:var(--text-muted); font-size:11.5px; margin:0; }
.ace-folder-tabs { display:flex; gap:4px; border-bottom:1px solid var(--border-soft); margin-bottom:10px; overflow-x:auto; }
.ace-folder-tabs button { border:0; background:transparent; color:var(--text-muted); padding:9px 10px 10px; font-size:11.5px; font-weight:800; white-space:nowrap; border-bottom:2px solid transparent; }
.ace-folder-tabs button.active { color:var(--gold); border-bottom-color:var(--gold); }
.ace-folder-tabs button:disabled { opacity:.45; }
.ace-add-in-folder { width:100%; margin:0 0 10px; padding:12px; border-radius:13px; font-size:13px; }
.ace-workout-list { display:flex; flex-direction:column; gap:9px; }
.ace-workout-card { display:grid; grid-template-columns:64px minmax(0,1fr); gap:10px; background:linear-gradient(145deg,var(--card-white),var(--input-bg)); border:1px solid var(--border-soft); border-radius:15px; padding:9px; }
.ace-workout-thumb { min-height:92px; border-radius:11px; display:grid; place-items:center; font-size:29px; background:radial-gradient(circle at 50% 15%,rgba(255,209,0,.14),transparent 60%),#111; border:1px solid rgba(255,255,255,.05); }
.ace-workout-main { min-width:0; }
.ace-workout-head { display:flex; align-items:flex-start; gap:7px; justify-content:space-between; }
.ace-workout-head h3 { margin:1px 0 0; color:var(--text-dark); font-size:13px; line-height:1.22; }
.ace-workout-status { flex-shrink:0; display:flex; align-items:center; gap:4px; font-size:9.5px; color:var(--text-muted); }
.ace-workout-status i { width:7px; height:7px; border-radius:50%; background:#777; }
.ace-workout-status.is-active i { background:#22d45f; box-shadow:0 0 9px rgba(34,212,95,.45); }
.ace-workout-meta,.ace-workout-submeta { color:var(--text-muted); font-size:10.2px; line-height:1.35; margin-top:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ace-workout-submeta { margin-top:2px; font-size:9.8px; }
.ace-workout-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 38px; gap:6px; margin-top:8px; align-items:stretch; }
.ace-workout-actions>.btn-secondary,.ace-workout-actions>.btn-primary { padding:7px 6px; font-size:10.5px; border-radius:9px; min-width:0; }
.ace-more-menu { position:relative; min-width:0; }
.ace-more-menu summary { height:100%; min-height:32px; display:grid; place-items:center; list-style:none; border:1px solid var(--border-soft); border-radius:9px; color:var(--text-dark); cursor:pointer; background:var(--input-bg); font-weight:900; }
.ace-more-menu summary::-webkit-details-marker{display:none}
.ace-more-popover { position:absolute; right:0; bottom:calc(100% + 6px); z-index:12; width:160px; border:1px solid var(--border-soft); border-radius:12px; background:var(--card-white); box-shadow:0 16px 40px rgba(0,0,0,.35); padding:6px; display:grid; gap:4px; }
.ace-more-popover button { width:100%; border:0; background:transparent; color:var(--text-dark); text-align:left; padding:9px 10px; border-radius:8px; font-size:11px; font-weight:700; }
.ace-more-popover button:active { background:var(--input-bg); }
.ace-more-popover button.danger { color:var(--danger); }
@media (max-width:380px){ .ace-carpetas-grid{gap:8px}.ace-carpeta-card--premium{min-height:158px}.ace-workout-card{grid-template-columns:54px minmax(0,1fr)}.ace-workout-thumb{min-height:86px}.ace-workout-head h3{font-size:12px} }


/* ======================================================================
   v38.0 — NF24FIT ICONOS PRO
   Sustituye la iconografia emoji de la interfaz por SVG lineales, sin
   alterar IDs, eventos, consultas ni logica funcional. El contenido que
   escriben los usuarios (posts, chats, notas) queda fuera del decorador.
   ====================================================================== */
.nf-pro-icon{
  width:1.08em;height:1.08em;display:inline-flex;align-items:center;justify-content:center;
  vertical-align:-0.16em;flex:0 0 auto;color:currentColor;
}
.nf-pro-icon svg{width:100%;height:100%;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.nf-pro-icon--gold{color:var(--gold,#FFD100)}
.nf-pro-status-dot{display:inline-block;width:.62em;height:.62em;border-radius:999px;vertical-align:.04em;margin-right:.3em;background:currentColor;flex:0 0 auto}
.nf-pro-status-dot--red{color:#ff5358}.nf-pro-status-dot--amber{color:#ffb31a}.nf-pro-status-dot--green{color:#24d66b}.nf-pro-status-dot--blue{color:#4ca3ff}.nf-pro-status-dot--muted{color:#72757a}
/* Los SVG sustituyen al emoji sin agrandar botones/cards existentes. */
button>.nf-pro-icon:first-child,a>.nf-pro-icon:first-child,.workday-action>.nf-pro-icon:first-child{margin-right:.34em}
.section-title>.nf-pro-icon:first-child,.workday-section-label>.nf-pro-icon:first-child,.workday-card-title>.nf-pro-icon:first-child{margin-right:.36em}
.comunidad-tipo-icono .nf-pro-icon,.dash-chat-card-icon .nf-pro-icon,.reg-header-icon .nf-pro-icon,.nf24-analisis-icon .nf-pro-icon,.pl-tool-icono .nf-pro-icon,.herbalife-eval-icon .nf-pro-icon,.herbalife-trust-icon .nf-pro-icon{width:1.2em;height:1.2em}
/* Evita el aspecto multicolor de emoji en badges/acciones recurrentes. */
[data-theme="dark"] .nf-pro-icon{filter:none}


/* ---- v11.40: Enlace / QR del centro -> landing publica como destino principal ---- */
.centro-share-card{position:relative;overflow:hidden;border:1px solid rgba(255,209,0,.22)!important;background:linear-gradient(155deg,rgba(255,209,0,.055),var(--card-white) 34%,var(--card-white))!important}
.centro-share-card::before{content:"";position:absolute;right:-70px;top:-90px;width:210px;height:210px;border-radius:50%;background:rgba(255,209,0,.065);pointer-events:none}
.centro-share-kicker{position:relative;font-size:10.5px;letter-spacing:1.6px;font-weight:800;color:var(--gold);margin-bottom:5px}
.centro-share-title{position:relative;font-size:20px;margin:0 0 7px;color:var(--text-dark)}
.centro-share-help{position:relative;font-size:12px;line-height:1.55;color:var(--text-muted);margin:0 0 15px;max-width:680px}
.centro-share-qr{position:relative;background:#fff;padding:12px;border-radius:16px;width:max-content;max-width:100%;margin:0 auto 14px;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.centro-share-qr img,.centro-share-qr canvas{display:block;max-width:100%;height:auto}
.centro-share-url{position:relative;font-size:11px;word-break:break-all;color:var(--text-muted);padding:10px 12px;border:1px solid var(--border-soft);border-radius:11px;background:rgba(0,0,0,.12)}
.centro-share-actions{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:8px;margin-top:11px}
.centro-share-actions button{min-width:0}
.centro-directo-box{position:relative;margin-top:14px;border-top:1px solid var(--border-soft);padding-top:12px}
.centro-directo-box summary{cursor:pointer;list-style:none;font-size:12px;font-weight:700;color:var(--text-muted);display:flex;align-items:center;justify-content:space-between;gap:8px}
.centro-directo-box summary::-webkit-details-marker{display:none}
.centro-directo-box summary::after{content:"+";font-size:17px;color:var(--gold);font-weight:500}
.centro-directo-box[open] summary::after{content:"−"}
.centro-directo-box p{font-size:11px;line-height:1.5;color:var(--text-muted);margin:9px 0}
.centro-share-url--secondary{font-size:10px;opacity:.78}
.centro-directo-copy{width:100%;margin-top:8px}
@media(max-width:520px){.centro-share-actions{grid-template-columns:1fr 1fr}.centro-share-actions .btn-primary{grid-column:1/-1}.centro-share-qr{padding:10px}.centro-share-title{font-size:18px}}


/* v41.0 — Invitación personal Prueba NF24FIT 10 días */
.enlaces-premium-trial {
  border-color: rgba(255,209,0,.34);
  background: linear-gradient(145deg, rgba(255,209,0,.075), rgba(18,18,20,.98) 42%);
}
.enlaces-premium-trial .workday-item-title { color: var(--text-dark); }

/* ============================================================
   NF24FIT · Compartir Kilómetros estilo historia
   ============================================================ */
.share-cardio-personaliza{margin:0 0 14px;padding:12px;border:1px solid rgba(255,209,0,.24);border-radius:16px;background:linear-gradient(145deg,rgba(255,209,0,.075),rgba(255,255,255,.025));text-align:left}
.share-cardio-personaliza-head{display:flex;align-items:center;gap:12px}
.share-cardio-personaliza-head>div:first-child{flex:1;min-width:0}
.share-cardio-personaliza-head strong{display:block;color:var(--text-dark);font-size:13px;margin-bottom:2px}
.share-cardio-personaliza-head span{display:block;color:var(--text-muted);font-size:11px;line-height:1.35}
.share-cardio-foto-thumb{width:54px;height:54px;border-radius:14px;flex:0 0 54px;display:flex;align-items:center;justify-content:center;border:1px dashed rgba(255,209,0,.55);background:rgba(0,0,0,.22);color:var(--gold);font-size:25px;font-weight:700;background-size:cover;background-position:center}
.share-cardio-foto-thumb.has-photo{border-style:solid;color:transparent}
.share-cardio-foto-actions{display:flex;gap:8px;margin-top:10px}
.share-cardio-foto-actions .btn-secondary{flex:1;padding:9px 10px;font-size:11.5px}
.share-cardio-tip{font-size:10px;color:var(--text-muted);margin:9px 0 0;text-align:center}

/* ============================================================
   EMAIL MARKETING · REDISEÑO PREMIUM + PREVIEW + HISTORIAL
   ============================================================ */
#page-workday-email-marketing.emailm-page{max-width:1280px;padding-bottom:110px}
.emailm-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px 22px 20px;border:1px solid rgba(255,209,0,.18);border-radius:22px;background:radial-gradient(circle at 8% 0%,rgba(255,209,0,.16),transparent 36%),linear-gradient(135deg,rgba(20,20,21,.98),rgba(11,12,13,.98));box-shadow:0 18px 50px rgba(0,0,0,.16);margin-bottom:14px;overflow:hidden;position:relative}
.emailm-hero::after{content:"";position:absolute;right:-60px;top:-80px;width:240px;height:240px;border-radius:50%;background:rgba(255,209,0,.06);filter:blur(6px);pointer-events:none}
.emailm-hero-main{display:flex;align-items:center;gap:14px;min-width:0}.emailm-back{flex:0 0 auto}.emailm-hero-icon{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;border:1px solid rgba(255,209,0,.34);background:rgba(255,209,0,.07);color:#ffd100;font-size:30px;box-shadow:inset 0 0 22px rgba(255,209,0,.04)}
.emailm-hero h1{font-size:30px;line-height:1;margin:0 0 8px;color:var(--w-text)}.emailm-hero p{font-size:13px;line-height:1.45;color:var(--text-muted);margin:0;max-width:680px}
.emailm-kpis{display:grid;grid-template-columns:repeat(3,minmax(125px,1fr));gap:10px;position:relative;z-index:1}.emailm-kpi{min-width:135px;padding:12px 13px;border:1px solid var(--w-border);border-radius:16px;background:rgba(16,17,18,.78);display:flex;gap:10px;align-items:center}.emailm-kpi-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:rgba(255,209,0,.1);color:#ffd100}.emailm-kpi strong{display:block;font-size:20px;color:var(--w-text);line-height:1}.emailm-kpi span:not(.emailm-kpi-icon){display:block;font-size:11px;font-weight:700;color:var(--w-text);margin-top:3px}.emailm-kpi small{display:block;font-size:9px;color:var(--text-muted);margin-top:2px}
.emailm-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:7px;border:1px solid var(--w-border);background:var(--surface-1,#111);border-radius:16px;margin-bottom:12px}.emailm-step{min-width:0;display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:11px;position:relative}.emailm-step.active{background:linear-gradient(90deg,rgba(255,209,0,.11),transparent)}.emailm-step.active::after{content:"";position:absolute;left:8px;right:8px;bottom:-7px;height:3px;border-radius:3px;background:#ffd100}.emailm-step b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#34373d;color:#d8dbe1;font-size:12px}.emailm-step.active b{background:#ffd100;color:#111}.emailm-step strong,.emailm-step small{display:block}.emailm-step strong{font-size:12px;color:var(--w-text)}.emailm-step small{font-size:9px;color:var(--text-muted);margin-top:2px}
.emailm-grid{display:grid;grid-template-columns:minmax(280px,.95fr) minmax(320px,1.08fr) minmax(320px,1.1fr);gap:12px;align-items:start}.emailm-panel,.emailm-history-section{border:1px solid var(--w-border);background:linear-gradient(145deg,rgba(25,26,28,.98),rgba(17,18,20,.98));border-radius:18px;padding:14px;box-shadow:0 15px 40px rgba(0,0,0,.12)}.emailm-panel-title{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}.emailm-panel-title>span{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:rgba(255,209,0,.09);border:1px solid rgba(255,209,0,.14);color:#ffd100;font-size:14px}.emailm-panel-title h2{font-size:14px;margin:0;color:var(--w-text)}.emailm-panel-title p{font-size:10px;color:var(--text-muted);margin:3px 0 0;line-height:1.35}
.emailm-segments{display:flex;flex-direction:column;gap:7px}.emailm-segment{display:grid;grid-template-columns:20px 34px minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--w-border);border-radius:13px;padding:9px;background:rgba(12,13,14,.45);cursor:pointer;transition:.16s ease}.emailm-segment:hover{border-color:rgba(255,209,0,.25);transform:translateY(-1px)}.emailm-segment:has(input:checked){border-color:rgba(255,209,0,.55);background:linear-gradient(90deg,rgba(255,209,0,.1),rgba(255,209,0,.025));box-shadow:inset 0 0 0 1px rgba(255,209,0,.05)}.emailm-segment input{width:16px;height:16px;accent-color:#ffd100}.emailm-segment-icon{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:#252830;color:#ffd100;font-size:13px}.emailm-segment-copy strong{display:block;font-size:12px;color:var(--w-text)}.emailm-segment-copy small{display:block;font-size:9px;color:var(--text-muted);margin-top:2px;line-height:1.25}.emailm-segment-count{text-align:right}.emailm-segment-count b{display:block;font-size:13px;color:var(--w-text)}.emailm-segment-count small{display:block;font-size:8px;color:var(--text-muted)}.emailm-recipient-summary{margin-top:10px;padding:10px 11px;border-radius:12px;background:rgba(255,255,255,.035);border:1px solid var(--w-border);font-size:10px;line-height:1.4;color:var(--text-muted)}
.emailm-field{margin-bottom:11px}.emailm-field label{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-muted);margin-bottom:5px}.emailm-field label em{color:#ff6b6b;font-style:normal}.emailm-field label small{font-size:9px}.emailm-input-wrap{position:relative}.emailm-input-wrap input,.emailm-input-wrap textarea,.emailm-field>input{width:100%;box-sizing:border-box;padding-right:58px;background:#101113;border:1px solid rgba(255,255,255,.12);color:var(--w-text);border-radius:11px;min-height:42px}.emailm-input-wrap textarea{min-height:120px;padding-top:11px;resize:vertical}.emailm-input-wrap>span{position:absolute;right:10px;bottom:8px;font-size:8px;color:var(--text-muted);pointer-events:none}.emailm-textarea-wrap>span{bottom:8px}.emailm-form-state{min-height:16px;font-size:9px;color:var(--text-muted);line-height:1.35;margin:2px 0 9px}.emailm-editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.emailm-editor-actions .workday-action{justify-content:center;margin:0;min-height:39px}
.emailm-mail-preview{border:1px solid rgba(255,255,255,.11);background:#202328;border-radius:14px;padding:11px;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.emailm-mail-meta{display:flex;justify-content:space-between;gap:8px;font-size:8px;color:#aab0ba}.emailm-mail-to{font-size:8px;color:#8e949e;margin-top:3px}.emailm-mail-subject{font-size:13px;font-weight:800;color:#fff;margin:10px 0}.emailm-mail-body{overflow:hidden;border-radius:12px;background:#fff;color:#242424;border:1px solid rgba(0,0,0,.08)}.emailm-mail-brand{background:#0d0e10;color:#fff;padding:17px 18px;text-align:left}.emailm-mail-logo{font-size:22px;font-weight:900;letter-spacing:-1px}.emailm-mail-logo span{color:#ffd100}.emailm-mail-brand small{display:block;margin-top:3px;color:#a7a7a7;font-size:8px}.emailm-mail-content{padding:18px}.emailm-mail-eyebrow{font-size:8px;letter-spacing:.6px;text-transform:uppercase;color:#9a8200;font-weight:900;margin-bottom:6px}.emailm-mail-body-title{font-size:17px;line-height:1.25;font-weight:900;color:#181818;margin-bottom:10px}.emailm-mail-message{font-size:12px;line-height:1.6;white-space:pre-wrap;min-height:62px;color:#3f3f46}.emailm-mail-cta{display:block;margin:16px 0 8px;background:#ffd100;color:#111!important;text-decoration:none;text-align:center;font-size:11px;font-weight:900;padding:11px;border-radius:9px}.emailm-mail-signature{margin-top:17px;padding-top:13px;border-top:1px solid #ededed;font-size:9px;line-height:1.55;color:#444}.emailm-mail-signature span{color:#777}.emailm-mail-footer{background:#f7f7f7;border-top:1px solid #e6e6e6;padding:12px 18px;text-align:center;color:#858585;font-size:7.5px;line-height:1.55}.emailm-mail-footer span{display:block;margin-top:5px}.emailm-deliverability-note{font-size:9px;line-height:1.45;color:#bdbdbd;background:rgba(255,209,0,.045);border:1px solid rgba(255,209,0,.11);border-radius:10px;padding:9px 10px;margin:8px 0 2px}.emailm-send-main{width:100%;border:0;border-radius:12px;background:#ffd100;color:#111;font-weight:900;font-size:12px;padding:12px 14px;margin-top:10px;display:flex;justify-content:center;gap:8px;align-items:center;box-shadow:0 8px 25px rgba(255,209,0,.15);cursor:pointer}.emailm-send-main:disabled{opacity:.38;cursor:not-allowed;box-shadow:none}.emailm-send-main span{font-size:18px;line-height:.8}
.emailm-history-section{margin-top:12px}.emailm-history-wrap{overflow:hidden;border:1px solid var(--w-border);border-radius:13px;background:rgba(10,11,12,.36)}.emailm-history-head,.emailm-history-row{display:grid;grid-template-columns:minmax(220px,1.4fr) 145px 105px minmax(130px,.8fr) 105px 46px;gap:10px;align-items:center}.emailm-history-head{padding:8px 11px;background:rgba(255,255,255,.035);font-size:8px;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.emailm-history-row{padding:10px 11px;border-top:1px solid var(--w-border);cursor:pointer;transition:.15s ease}.emailm-history-row:hover{background:rgba(255,209,0,.035)}.emailm-history-row:first-of-type{border-top:0}.emailm-history-subject strong{display:block;font-size:11px;color:var(--w-text)}.emailm-history-subject small,.emailm-history-cell small{display:block;font-size:8px;color:var(--text-muted);margin-top:2px}.emailm-history-cell{font-size:10px;color:var(--w-text)}.emailm-history-badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;border:1px solid rgba(255,209,0,.16);background:rgba(255,209,0,.07);font-size:8px;color:var(--w-text);white-space:nowrap}.emailm-history-status{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:rgba(30,180,90,.12);color:#6ee7a1;font-size:8px;font-weight:800}.emailm-history-status.error{background:rgba(255,70,70,.12);color:#ff8a8a}.emailm-history-more{border:0;background:transparent;color:var(--text-muted);font-size:18px;cursor:pointer}.emailm-history-empty{padding:18px;color:var(--text-muted);font-size:11px;text-align:center}
.emailm-detail-overlay{position:fixed;inset:0;background:rgba(0,0,0,.76);z-index:13000;display:grid;place-items:center;padding:18px}.emailm-detail-modal{width:min(560px,100%);max-height:88vh;overflow:auto;border:1px solid rgba(255,255,255,.12);border-radius:20px;background:linear-gradient(145deg,#1c1d20,#111214);box-shadow:0 30px 90px rgba(0,0,0,.5);padding:18px}.emailm-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.emailm-detail-head h3{font-size:18px;margin:0;color:var(--w-text)}.emailm-detail-close{border:1px solid var(--w-border);background:#22252a;color:#fff;border-radius:10px;width:34px;height:34px;cursor:pointer}.emailm-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.emailm-detail-stat{border:1px solid var(--w-border);border-radius:12px;padding:10px;background:rgba(255,255,255,.025)}.emailm-detail-stat small{display:block;font-size:8px;color:var(--text-muted)}.emailm-detail-stat strong{display:block;font-size:17px;color:var(--w-text);margin-top:3px}.emailm-detail-meta{border-top:1px solid var(--w-border);padding-top:12px;display:grid;gap:8px;font-size:10px;color:var(--text-muted)}.emailm-detail-meta strong{color:var(--w-text)}
@media(max-width:1050px){.emailm-hero{grid-template-columns:1fr}.emailm-kpis{grid-template-columns:repeat(3,1fr)}.emailm-grid{grid-template-columns:1fr 1fr}.emailm-panel-preview{grid-column:1/-1}.emailm-history-head,.emailm-history-row{grid-template-columns:minmax(180px,1.4fr) 130px 90px 110px 90px 32px}}
@media(max-width:720px){#page-workday-email-marketing.emailm-page{padding-left:10px;padding-right:10px}.emailm-hero{padding:15px;border-radius:17px}.emailm-hero-main{align-items:flex-start}.emailm-hero-icon{width:48px;height:48px;font-size:23px}.emailm-hero h1{font-size:23px}.emailm-kpis{grid-template-columns:1fr 1fr 1fr}.emailm-kpi{min-width:0;padding:9px;display:block}.emailm-kpi-icon{width:28px;height:28px;margin-bottom:6px}.emailm-kpi strong{font-size:16px}.emailm-kpi span:not(.emailm-kpi-icon){font-size:9px}.emailm-kpi small{display:none}.emailm-stepper{grid-template-columns:repeat(4,minmax(64px,1fr));overflow:auto}.emailm-step{display:block;padding:8px}.emailm-step b{width:24px;height:24px;margin-bottom:5px}.emailm-step small{display:none}.emailm-step strong{font-size:9px}.emailm-grid{grid-template-columns:1fr}.emailm-panel-preview{grid-column:auto}.emailm-history-wrap{overflow:auto}.emailm-history-head,.emailm-history-row{min-width:750px}.emailm-detail-grid{grid-template-columns:1fr 1fr}.emailm-editor-actions{grid-template-columns:1fr}}

/* Email Marketing V3 · plantillas editables premium */
.emailm-template-label{font-size:10px;font-weight:900;letter-spacing:.12em;color:#9b9b9b;margin:4px 0 8px;text-transform:uppercase}.emailm-template-label span{font-weight:600;letter-spacing:0;text-transform:none;color:var(--text-muted)}
.emailm-template-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.emailm-template-card{appearance:none;border:1px solid var(--w-border);background:rgba(11,12,13,.7);color:var(--w-text);border-radius:13px;padding:10px;display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer;transition:.18s ease}.emailm-template-card:hover{transform:translateY(-1px);border-color:rgba(255,209,0,.28)}.emailm-template-card.active{border-color:#ffd100;background:linear-gradient(135deg,rgba(255,209,0,.11),rgba(255,209,0,.03));box-shadow:0 0 0 1px rgba(255,209,0,.09)}.emailm-template-card>b{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:rgba(255,209,0,.08);font-size:14px}.emailm-template-card span{display:flex;flex-direction:column;min-width:0}.emailm-template-card strong{font-size:11px;line-height:1.2}.emailm-template-card small{font-size:9px;color:var(--text-muted);margin-top:3px}
.emailm-inline-fields{display:grid;grid-template-columns:.7fr 1.3fr;gap:8px}.emailm-help{font-size:9px;color:var(--text-muted);margin-top:5px;line-height:1.35}.emailm-benefits-editor{display:grid;gap:7px;margin:12px 0}.emailm-benefits-editor input{width:100%;box-sizing:border-box;background:var(--surface-2);border:1px solid var(--w-border);color:var(--w-text);border-radius:10px;padding:10px 11px;font:inherit;font-size:11px;outline:none}.emailm-benefits-editor input:focus{border-color:#ffd100;box-shadow:0 0 0 2px rgba(255,209,0,.08)}
.emailm-mail-logo-img{display:block;width:150px;max-width:58%;height:auto;object-fit:contain}.emailm-preview-hero{display:block;width:100%;max-height:210px;object-fit:cover;border-bottom:1px solid #ececec}.emailm-preview-benefits{margin:17px 0 3px;display:grid;gap:8px}.emailm-preview-benefits>div{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.4;color:#303036}.emailm-preview-benefits span{flex:0 0 20px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#fff4b6;color:#806900;font-weight:900}
@media(max-width:720px){.emailm-template-grid{grid-template-columns:1fr}.emailm-inline-fields{grid-template-columns:1fr}}
.emailm-image-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}.emailm-image-input-row .workday-action{white-space:nowrap;padding:10px 12px;font-size:10px}@media(max-width:520px){.emailm-image-input-row{grid-template-columns:1fr}.emailm-image-input-row .workday-action{justify-content:center}}

/* EMAIL MARKETING V4 — layouts visualmente distintos por plantilla */
.emailm-template-preview{transition:background .22s ease,color .22s ease}.emailm-template-preview .emailm-mail-content{transition:.22s ease}.emailm-template-preview .emailm-preview-benefits>div b{font-weight:600}.emailm-template-preview .emailm-mail-brand{transition:.22s ease}

/* 1 · ESTUDIO NUTRICIONAL — limpio, clínico-premium, foco en valoración */
.emailm-template-preview.template-nutrition_study{background:linear-gradient(180deg,#fff 0,#fff 70%,#fafafa 100%)}
.emailm-template-preview.template-nutrition_study .emailm-mail-brand{background:linear-gradient(135deg,#101112,#191b1c);border-bottom:4px solid #ffd100}
.emailm-template-preview.template-nutrition_study .emailm-mail-content{padding-top:22px}
.emailm-template-preview.template-nutrition_study .emailm-mail-eyebrow{display:inline-flex;background:#fff7cc;border:1px solid #f1df75;color:#7d6800;border-radius:999px;padding:5px 9px}
.emailm-template-preview.template-nutrition_study .emailm-mail-body-title{max-width:92%;font-size:22px}
.emailm-template-preview.template-nutrition_study .emailm-preview-benefits>div{background:#fbfbf8;border:1px solid #ece9dc;border-radius:10px;padding:9px 10px}
.emailm-template-preview.template-nutrition_study .emailm-mail-cta{border-radius:10px}

/* 2 · PROMOCIÓN — hero oscuro, alto contraste y oferta visual */
.emailm-template-preview.template-promotion_offer{background:#0b0c0d}
.emailm-template-preview.template-promotion_offer .emailm-mail-brand{background:#ffd100;color:#111;border:0;text-align:center;padding:18px 22px}
.emailm-template-preview.template-promotion_offer .emailm-mail-brand img{margin:auto;filter:brightness(0)}
.emailm-template-preview.template-promotion_offer .emailm-mail-brand small{color:#3c3300;font-weight:800}
.emailm-template-preview.template-promotion_offer .emailm-mail-content{background:radial-gradient(circle at 95% 0,rgba(255,209,0,.13),transparent 38%),#111315;color:#fff;padding:24px 20px 22px}
.emailm-template-preview.template-promotion_offer .emailm-mail-eyebrow{display:inline-flex;background:#ffd100;color:#111;border-radius:6px;padding:5px 8px;font-weight:950}
.emailm-template-preview.template-promotion_offer .emailm-mail-body-title{color:#fff;font-size:24px;letter-spacing:-.3px}
.emailm-template-preview.template-promotion_offer .emailm-mail-message{color:#d5d5d7}
.emailm-template-preview.template-promotion_offer .emailm-preview-benefits{grid-template-columns:repeat(3,1fr);gap:6px}
.emailm-template-preview.template-promotion_offer .emailm-preview-benefits>div{display:block;text-align:center;border:1px solid #343536;background:#191b1d;border-radius:10px;padding:10px 6px;color:#eee}
.emailm-template-preview.template-promotion_offer .emailm-preview-benefits span{margin:0 auto 6px;background:#ffd100;color:#111}
.emailm-template-preview.template-promotion_offer .emailm-preview-benefits b{display:block;font-size:9px}
.emailm-template-preview.template-promotion_offer .emailm-mail-cta{display:block!important;text-align:center;background:#ffd100;color:#111;border-radius:6px;font-size:13px;padding:12px}
.emailm-template-preview.template-promotion_offer .emailm-mail-signature{color:#aaa;border-color:#2c2d2e}.emailm-template-preview.template-promotion_offer .emailm-mail-signature strong{color:#fff}
.emailm-template-preview.template-promotion_offer .emailm-mail-footer{background:#08090a;color:#777;border-top-color:#222}

/* 3 · BIENVENIDA — centrada, amable y por pasos */
.emailm-template-preview.template-welcome{background:linear-gradient(180deg,#fffdf2,#fff 42%)}
.emailm-template-preview.template-welcome .emailm-mail-brand{text-align:center;background:#fff;padding:25px 22px 16px;border-bottom:0}
.emailm-template-preview.template-welcome .emailm-mail-brand img{margin:auto}.emailm-template-preview.template-welcome .emailm-mail-brand small{color:#7d7d7d}
.emailm-template-preview.template-welcome .emailm-mail-content{text-align:center;padding:18px 22px 24px}
.emailm-template-preview.template-welcome .emailm-mail-eyebrow{display:inline-flex;border:1px solid #ead46b;border-radius:999px;padding:5px 10px;color:#8b7400;background:#fff9dc}
.emailm-template-preview.template-welcome .emailm-mail-body-title{font-size:25px}
.emailm-template-preview.template-welcome .emailm-mail-message{max-width:92%;margin:10px auto 0;color:#555}
.emailm-template-preview.template-welcome .emailm-preview-benefits{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:20px}
.emailm-template-preview.template-welcome .emailm-preview-benefits>div{display:block;background:#fff;border:1px solid #ececec;border-radius:12px;padding:11px 6px;box-shadow:0 6px 18px rgba(0,0,0,.035)}
.emailm-template-preview.template-welcome .emailm-preview-benefits span{margin:0 auto 7px;background:#111;color:#ffd100}.emailm-template-preview.template-welcome .emailm-preview-benefits b{display:block;font-size:9px}
.emailm-template-preview.template-welcome .emailm-mail-cta{border-radius:999px;padding-left:20px;padding-right:20px}.emailm-template-preview.template-welcome .emailm-mail-signature{text-align:left}

/* 4 · REACTIVACIÓN — carta de regreso con acento lateral */
.emailm-template-preview.template-reactivation{background:#f1f2f3;padding:12px}
.emailm-template-preview.template-reactivation .emailm-mail-brand{border-radius:12px 12px 0 0;background:#111315;border-bottom:0}
.emailm-template-preview.template-reactivation .emailm-mail-content{background:#fff;border-left:5px solid #ffd100;padding:23px 20px;margin:0;border-radius:0 0 10px 10px}
.emailm-template-preview.template-reactivation .emailm-mail-eyebrow{color:#8e7600}.emailm-template-preview.template-reactivation .emailm-mail-body-title{font-size:22px}
.emailm-template-preview.template-reactivation .emailm-preview-benefits>div{background:#f6f7f8;border-radius:9px;padding:9px 10px;border:0}
.emailm-template-preview.template-reactivation .emailm-preview-benefits span{background:#111;color:#ffd100}
.emailm-template-preview.template-reactivation .emailm-mail-cta{background:#111;color:#fff!important;border-radius:8px}.emailm-template-preview.template-reactivation .emailm-mail-footer{margin:0 -12px -12px}

/* 5 · CONSEJO SEMANAL — newsletter/editorial */
.emailm-template-preview.template-weekly_tips{background:#fff}
.emailm-template-preview.template-weekly_tips .emailm-mail-brand{background:#f7f4e8;border-bottom:1px solid #e8dfbc}.emailm-template-preview.template-weekly_tips .emailm-mail-brand small{color:#696450}
.emailm-template-preview.template-weekly_tips .emailm-mail-content{padding:24px 22px}
.emailm-template-preview.template-weekly_tips .emailm-mail-eyebrow{color:#8c7500;letter-spacing:.14em}
.emailm-template-preview.template-weekly_tips .emailm-mail-body-title{font-family:Georgia,'Times New Roman',serif;font-size:26px;font-weight:700;line-height:1.08}
.emailm-template-preview.template-weekly_tips .emailm-mail-message{font-size:12px;line-height:1.65;color:#555;border-left:3px solid #ffd100;padding-left:12px}
.emailm-template-preview.template-weekly_tips .emailm-preview-benefits{gap:0;border-top:1px solid #ece7d2;margin-top:20px}
.emailm-template-preview.template-weekly_tips .emailm-preview-benefits>div{border-bottom:1px solid #ece7d2;border-radius:0;padding:11px 0;background:none;align-items:center}
.emailm-template-preview.template-weekly_tips .emailm-preview-benefits span{background:transparent;color:#b09400;width:30px;font-size:10px}.emailm-template-preview.template-weekly_tips .emailm-preview-benefits b{font-size:11px;color:#2c2c2c}
.emailm-template-preview.template-weekly_tips .emailm-mail-cta{background:transparent;color:#111;border:1px solid #111;border-radius:0}.emailm-template-preview.template-weekly_tips .emailm-mail-footer{background:#f7f4e8}

/* 6 · NOVEDADES DEL CENTRO — newsletter modular */
.emailm-template-preview.template-gym_updates{background:#eef0f2}
.emailm-template-preview.template-gym_updates .emailm-mail-brand{background:#0d0f10;border-bottom:5px solid #ffd100}
.emailm-template-preview.template-gym_updates .emailm-mail-content{background:#fff;padding:22px 20px}
.emailm-template-preview.template-gym_updates .emailm-mail-eyebrow{display:inline-flex;background:#111;color:#ffd100;padding:5px 8px;border-radius:4px}
.emailm-template-preview.template-gym_updates .emailm-mail-body-title{font-size:23px}
.emailm-template-preview.template-gym_updates .emailm-preview-benefits{grid-template-columns:1fr;gap:8px}
.emailm-template-preview.template-gym_updates .emailm-preview-benefits>div{position:relative;background:#f6f7f8;border:1px solid #e3e5e7;border-radius:10px;padding:11px 12px 11px 50px;min-height:40px;align-items:center}
.emailm-template-preview.template-gym_updates .emailm-preview-benefits span{position:absolute;left:10px;top:9px;background:#111;color:#ffd100;border-radius:7px;width:30px;height:30px;font-size:9px}
.emailm-template-preview.template-gym_updates .emailm-preview-benefits b{font-size:11px}.emailm-template-preview.template-gym_updates .emailm-mail-cta{border-radius:8px}

@media(max-width:720px){.emailm-template-preview.template-promotion_offer .emailm-preview-benefits,.emailm-template-preview.template-welcome .emailm-preview-benefits{grid-template-columns:1fr}.emailm-template-preview.template-reactivation{padding:7px}.emailm-template-preview.template-reactivation .emailm-mail-footer{margin:0 -7px -7px}}


/* ---- Email Marketing V5 · Producto / Oferta ---- */
.emailm-template-card-product{grid-column:1/-1;background:linear-gradient(135deg,rgba(255,209,0,.07),rgba(255,255,255,.015))}.emailm-template-card-product>b{background:linear-gradient(135deg,#ffd100,#9f8300);color:#111}
.emailm-product-editor{margin:14px 0 16px;padding:14px;border:1px solid rgba(255,209,0,.2);border-radius:14px;background:linear-gradient(145deg,rgba(255,209,0,.045),rgba(255,255,255,.015))}.emailm-product-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.emailm-product-editor-head>div:first-child{display:flex;flex-direction:column}.emailm-product-editor-head strong{font-size:12px}.emailm-product-editor-head small{font-size:9px;color:var(--text-muted);margin-top:4px;line-height:1.4}.emailm-product-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.emailm-product-actions button{font-size:10px;white-space:nowrap}.emailm-product-selected{display:grid;grid-template-columns:58px 1fr auto;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.08);background:var(--surface-2);border-radius:12px;padding:8px;margin-bottom:12px}.emailm-product-selected img{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:9px}.emailm-product-selected>div{display:flex;flex-direction:column;min-width:0}.emailm-product-selected span{font-size:8px;font-weight:900;color:#d2b100;letter-spacing:.09em}.emailm-product-selected strong{font-size:11px;margin-top:3px}.emailm-product-selected small{font-size:9px;color:var(--text-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emailm-product-selected button{border:0;background:transparent;color:#ffd100;font-size:10px;font-weight:800;cursor:pointer}.emailm-product-price-row input{font-weight:800}
.emailm-product-picker-overlay{position:fixed;inset:0;z-index:16000;background:rgba(0,0,0,.78);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(5px)}.emailm-product-picker{width:min(760px,96vw);max-height:86vh;background:#151617;border:1px solid #36383a;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 90px rgba(0,0,0,.5)}.emailm-product-picker-head{display:flex;justify-content:space-between;gap:15px;padding:20px 22px 13px;border-bottom:1px solid #292a2b}.emailm-product-picker-head small{font-size:9px;color:#d6b600;font-weight:900;letter-spacing:.12em}.emailm-product-picker-head h3{font-size:20px;margin:3px 0 2px}.emailm-product-picker-head p{font-size:10px;color:var(--text-muted);margin:0}.emailm-product-picker-head button{width:36px;height:36px;border-radius:10px;border:1px solid #333;background:#222;color:#fff;font-size:22px;cursor:pointer}.emailm-product-search{margin:12px 20px;display:flex;align-items:center;gap:8px;border:1px solid #343638;background:#0e0f10;border-radius:11px;padding:0 12px}.emailm-product-search input{border:0!important;background:transparent!important;padding:11px 0!important;width:100%;outline:none;color:#fff}.emailm-product-picker-list{overflow:auto;padding:0 12px 16px}.emailm-product-picker-item{width:100%;display:grid;grid-template-columns:70px 1fr auto;gap:12px;align-items:center;text-align:left;background:#1b1c1e;border:1px solid #2c2e30;border-radius:13px;padding:9px;margin:7px 0;color:#fff;cursor:pointer;transition:.15s}.emailm-product-picker-item:hover{border-color:#887300;transform:translateY(-1px);background:#202123}.emailm-product-picker-item img{width:70px;height:70px;object-fit:contain;background:#fff;border-radius:10px}.emailm-product-picker-item span{display:flex;flex-direction:column;min-width:0}.emailm-product-picker-item strong{font-size:12px}.emailm-product-picker-item small{font-size:9px;color:#aaa;line-height:1.4;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.emailm-product-picker-item em{font-style:normal;color:#ffd100;font-size:10px;font-weight:800;white-space:nowrap}
.emailm-preview-product-card{margin:17px 0 3px;border:1px solid #e5e5e5;border-radius:14px;overflow:hidden;background:#fff}.emailm-preview-product-media{position:relative;background:linear-gradient(145deg,#fafafa,#f0f0f0);min-height:170px;display:grid;place-items:center;padding:15px}.emailm-preview-product-media img{display:block;width:100%;height:190px;object-fit:contain}.emailm-preview-product-media>span{position:absolute;top:12px;left:12px;background:#ffd100;color:#111;font-size:9px;font-weight:950;padding:6px 8px;border-radius:999px;box-shadow:0 5px 15px rgba(0,0,0,.13)}.emailm-preview-product-copy{padding:15px 16px 14px}.emailm-preview-product-copy h3{font-size:20px;line-height:1.15;margin:0;color:#161616}.emailm-preview-product-copy>p{font-size:11px;line-height:1.55;color:#555;margin:8px 0}.emailm-preview-product-purpose{margin:12px 0;padding:10px 11px;background:#f7f7f7;border-left:3px solid #ffd100;border-radius:7px}.emailm-preview-product-purpose small{display:block;font-size:8px;font-weight:950;color:#8c7500;letter-spacing:.1em}.emailm-preview-product-purpose p{font-size:10px;line-height:1.45;color:#333;margin:5px 0 0}.emailm-preview-product-offer-text{font-size:10px;font-weight:750;color:#7c6800;background:#fff8d2;border:1px solid #efdf86;padding:8px 9px;border-radius:8px;margin:10px 0}.emailm-preview-product-prices{display:flex;align-items:baseline;gap:9px;margin-top:12px}.emailm-preview-product-prices del{font-size:12px;color:#969696}.emailm-preview-product-prices strong{font-size:23px;color:#111}
.emailm-template-preview.template-product_offer{background:#eef0f2}.emailm-template-preview.template-product_offer .emailm-mail-brand{background:#0b0c0d;border-bottom:4px solid #ffd100}.emailm-template-preview.template-product_offer .emailm-mail-content{background:#fff;padding:22px 20px}.emailm-template-preview.template-product_offer .emailm-mail-eyebrow{display:inline-flex;background:#111;color:#ffd100;border-radius:999px;padding:5px 9px}.emailm-template-preview.template-product_offer .emailm-mail-body-title{font-size:23px}.emailm-template-preview.template-product_offer .emailm-mail-message{font-size:11px;color:#555}.emailm-template-preview.template-product_offer .emailm-preview-benefits{grid-template-columns:1fr;gap:6px}.emailm-template-preview.template-product_offer .emailm-preview-benefits>div{background:#fafafa;border:1px solid #ececec;border-radius:9px;padding:8px 9px}.emailm-template-preview.template-product_offer .emailm-mail-cta{display:block!important;text-align:center;border-radius:9px;background:#ffd100;color:#111;padding:12px;margin-top:16px}.emailm-template-preview.template-product_offer .emailm-mail-footer{background:#f4f4f4}
/* refinamientos V5 */
.emailm-template-preview.template-nutrition_study .emailm-mail-content{background:radial-gradient(circle at 100% 0,rgba(255,209,0,.07),transparent 38%),#fff}.emailm-template-preview.template-nutrition_study .emailm-preview-benefits>div{box-shadow:0 4px 12px rgba(20,20,20,.025)}
.emailm-template-preview.template-gym_updates .emailm-mail-content{background:linear-gradient(180deg,#fff,#fbfbfb)}.emailm-template-preview.template-gym_updates .emailm-preview-benefits>div{box-shadow:0 5px 14px rgba(0,0,0,.035)}
@media(max-width:720px){.emailm-product-editor-head{flex-direction:column}.emailm-product-actions{justify-content:flex-start}.emailm-product-picker-item{grid-template-columns:58px 1fr}.emailm-product-picker-item img{width:58px;height:58px}.emailm-product-picker-item em{display:none}}

/* ===== Admin · Centros V1 ===== */
.admin-centros-block{margin:0 0 16px;padding:14px;border:1px solid rgba(255,209,0,.20);border-radius:16px;background:linear-gradient(180deg,rgba(255,209,0,.045),rgba(255,255,255,.015));}
.admin-centros-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;}
.admin-centros-kicker{font-size:10px;letter-spacing:.12em;font-weight:900;color:#FFD100;margin-bottom:4px;}
.admin-centros-title{font-size:15px;font-weight:900;color:var(--text-dark);}
.admin-centros-sub{font-size:11px;line-height:1.45;color:var(--text-muted);margin-top:3px;max-width:620px;}
.admin-centros-summary{min-width:76px;text-align:right;display:flex;flex-direction:column;gap:1px;}
.admin-centros-summary b{font-size:22px;line-height:1;color:#FFD100;}
.admin-centros-summary span{font-size:9px;color:var(--text-muted);white-space:nowrap;}
.admin-centros-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;}
.admin-centro-card{appearance:none;border:1px solid var(--border);background:rgba(255,255,255,.025);color:inherit;border-radius:12px;padding:11px 12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:.15s ease;}
.admin-centro-card:hover{border-color:rgba(255,209,0,.45);transform:translateY(-1px);}
.admin-centro-card.active{border-color:#FFD100;background:rgba(255,209,0,.10);box-shadow:inset 0 0 0 1px rgba(255,209,0,.08);}
.admin-centro-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.admin-centro-card-name{font-size:13px;font-weight:900;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-centro-card-count{font-size:20px;font-weight:900;color:#FFD100;line-height:1;}
.admin-centro-card-meta{font-size:10px;color:var(--text-muted);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.admin-centro-card-stats{display:flex;gap:8px;flex-wrap:wrap;font-size:9px;color:var(--text-muted);}
.admin-centro-card-stats strong{color:var(--text-dark);}
.admin-centro-badge{display:inline-flex;align-items:center;gap:5px;font-size:9px;font-weight:800;color:#FFD100;border:1px solid rgba(255,209,0,.34);border-radius:999px;padding:2px 7px;margin-top:4px;width:max-content;max-width:100%;}
@media(max-width:640px){.admin-centros-head{flex-direction:column}.admin-centros-summary{text-align:left;flex-direction:row;align-items:baseline;gap:5px}.admin-centros-grid{grid-template-columns:1fr 1fr}.admin-centro-card{padding:10px}.admin-centro-card-name{font-size:12px}}

/* ===== Reservas V2 · invitados y plazas extra ===== */
.reserva-invitado-box{margin-top:16px;padding:13px;border:1px solid rgba(255,209,0,.28);border-radius:14px;background:linear-gradient(135deg,rgba(255,209,0,.07),rgba(255,255,255,.02));display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.reserva-invitado-box>div:first-child{display:flex;flex-direction:column;min-width:0}.reserva-invitado-box small{font-size:9px;letter-spacing:.1em;font-weight:900;color:#ffd100}.reserva-invitado-box strong{font-size:13px;margin-top:3px}.reserva-invitado-box span{font-size:10px;color:var(--text-muted);line-height:1.4;margin-top:3px}.reserva-invitado-box.disabled{opacity:.65;border-color:var(--border)}.reserva-invitado-form{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:2px}.reserva-invitado-form.hidden{display:none}.reserva-invitado-centro{margin:12px 0 2px}.reservas-cliente-row{position:relative}.reserva-invitado-remove{margin-left:auto;width:28px;height:28px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:var(--text-muted);cursor:pointer;font-weight:900}.reserva-invitado-remove:hover{border-color:#ff6767;color:#ff6767}.reservas-cliente-row span{min-width:0;flex:1}.reservas-cliente-row:has(.reserva-invitado-remove) span{font-weight:700;color:#ffd100}
@media(max-width:640px){.reserva-invitado-box{grid-template-columns:1fr}.reserva-invitado-box>button{width:100%}.reserva-invitado-form{grid-template-columns:1fr}.reserva-invitado-form button{width:100%}}


/* ===== Email Marketing · Coaches + Prospectos Gym V1 ===== */
.emailm-segment-prospectos{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;cursor:default}
.emailm-segment-prospectos>input{cursor:pointer}
.emailm-prospectos-manage{display:block;margin-top:6px;padding:0;border:0;background:none;color:var(--accent,#ffd100);font:inherit;font-size:11px;font-weight:800;cursor:pointer;text-align:left}
.emailm-prospectos-manage:hover{text-decoration:underline}
.emailm-prospectos-modal{max-width:620px}
.emailm-prospectos-intro{margin:6px 0 0;color:var(--muted,#999);font-size:13px;line-height:1.45}
.emailm-prospectos-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 20px}
#email-prospectos-msg{font-size:12px;color:var(--muted,#999)}
.emailm-prospectos-list-head{display:flex;justify-content:space-between;align-items:center;padding:12px 0 8px;border-top:1px solid rgba(255,255,255,.08)}
.emailm-prospectos-list-head span{min-width:28px;text-align:center;border-radius:999px;background:rgba(255,209,0,.12);color:var(--accent,#ffd100);padding:5px 8px;font-size:11px;font-weight:900}
.emailm-prospectos-list{max-height:320px;overflow:auto;display:grid;gap:7px}
.emailm-prospecto-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.025)}
.emailm-prospecto-row strong{display:block;font-size:13px;overflow-wrap:anywhere}
.emailm-prospecto-row small{display:block;margin-top:3px;color:var(--muted,#999)}
.emailm-prospecto-row button{width:30px;height:30px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:transparent;color:inherit;font-size:20px;cursor:pointer}
.emailm-prospecto-row button:hover{border-color:var(--accent,#ffd100);color:var(--accent,#ffd100)}


/* ===== NF24FIT · Básculas recomendadas / Afiliación V1 ===== */

/* ===== NF24FIT · BÁSCULAS AFILIADOS V2 ===== */
.nf24-affiliate-nudge{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin:14px 0;padding:14px 16px;border:1px solid rgba(255,209,0,.26);border-radius:16px;background:linear-gradient(135deg,rgba(255,209,0,.07),rgba(255,209,0,.015));}
.nf24-affiliate-nudge-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#ffd100;color:#111;font-size:20px;font-weight:900;box-shadow:0 8px 24px rgba(255,209,0,.12)}
.nf24-affiliate-nudge-copy{min-width:0}.nf24-affiliate-nudge-kicker{display:block;margin-bottom:4px;font-size:9px;line-height:1.2;font-weight:900;letter-spacing:.9px;color:#c5a500}.nf24-affiliate-nudge h3{margin:0;font-size:15px;line-height:1.25;color:var(--text,#f4f4f4)}.nf24-affiliate-nudge p{margin:5px 0 0;font-size:12px;line-height:1.45;color:var(--text-muted,#999);max-width:680px}.nf24-affiliate-nudge-btn{min-height:38px;padding:0 14px;border:1px solid rgba(255,209,0,.42);border-radius:11px;background:rgba(255,209,0,.12);color:#ffd100;font-size:12px;font-weight:900;white-space:nowrap;cursor:pointer;transition:.15s ease}.nf24-affiliate-nudge-btn:hover{background:#ffd100;color:#111;transform:translateY(-1px)}
body.nf24-modal-open{overflow:hidden}.nf24-affiliate-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:18px}.nf24-affiliate-modal.open{display:flex}.nf24-affiliate-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(5px)}.nf24-affiliate-modal-card{position:relative;width:min(760px,100%);max-height:min(86vh,760px);overflow:auto;border:1px solid rgba(255,209,0,.24);border-radius:22px;background:#131416;box-shadow:0 28px 80px rgba(0,0,0,.45);padding:22px}.nf24-affiliate-modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border:0;border-radius:11px;background:#25272b;color:#fff;font-size:22px;line-height:1;cursor:pointer}.nf24-affiliate-modal-head{padding-right:44px;margin-bottom:16px}.nf24-affiliate-kicker{display:block;font-size:10px;line-height:1.2;font-weight:900;letter-spacing:.9px;color:#c5a500;margin-bottom:6px}.nf24-affiliate-modal-head h3{margin:0;font-size:22px;line-height:1.18;color:#fff}.nf24-affiliate-modal-head p{margin:7px 0 0;font-size:13px;line-height:1.5;color:#9b9da3}.nf24-affiliate-modal-list{display:grid;gap:10px}.nf24-affiliate-row{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:13px;border:1px solid #2b2d31;border-radius:15px;background:#181a1d}.nf24-affiliate-row.is-featured{border-color:#d8b600;background:linear-gradient(135deg,rgba(255,209,0,.08),rgba(255,209,0,.02))}.nf24-affiliate-row-rank{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#24262b;color:#ffd100;font-weight:900;font-size:12px}.nf24-affiliate-row.is-featured .nf24-affiliate-row-rank{background:#ffd100;color:#111}.nf24-affiliate-row-copy{min-width:0}.nf24-affiliate-row-topline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nf24-affiliate-row-topline strong{font-size:14px;color:#fff}.nf24-affiliate-row-topline span{font-size:9px;font-weight:900;color:#c5a500;border:1px solid rgba(255,209,0,.28);border-radius:999px;padding:3px 7px}.nf24-affiliate-row.is-featured .nf24-affiliate-row-topline span{background:#ffd100;color:#111;border-color:#ffd100}.nf24-affiliate-row-copy p{margin:5px 0 0;font-size:12px;line-height:1.4;color:#9b9da3}.nf24-affiliate-row-btn{min-height:38px;padding:0 13px;border:0;border-radius:10px;background:#292c31;color:#fff;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap}.nf24-affiliate-row.is-featured .nf24-affiliate-row-btn{background:#ffd100;color:#111}.nf24-affiliate-row-btn:disabled{opacity:.6;cursor:wait}.nf24-affiliate-modal-note{margin-top:14px;padding-top:13px;border-top:1px solid #2a2c30;font-size:10px;line-height:1.45;color:#7f8187}
@media(max-width:700px){.nf24-affiliate-nudge{grid-template-columns:auto 1fr;gap:11px;padding:13px}.nf24-affiliate-nudge-btn{grid-column:1/-1;width:100%}.nf24-affiliate-modal{padding:10px;align-items:flex-end}.nf24-affiliate-modal-card{border-radius:20px 20px 12px 12px;padding:18px;max-height:88vh}.nf24-affiliate-row{grid-template-columns:34px 1fr}.nf24-affiliate-row-rank{width:32px;height:32px}.nf24-affiliate-row-btn{grid-column:1/-1;width:100%}.nf24-affiliate-modal-head h3{font-size:19px}}

/* ===== NF24FIT · Catálogo afiliado contextual V1 ===== */
.nf24-context-reco{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;margin:16px 0 20px;padding:14px 15px;border:1px solid rgba(255,209,0,.22);border-radius:16px;background:linear-gradient(135deg,rgba(255,209,0,.055),rgba(255,255,255,.018));color:inherit;text-align:left;cursor:pointer;transition:.16s ease}
.nf24-context-reco:hover{border-color:rgba(255,209,0,.42);transform:translateY(-1px);background:linear-gradient(135deg,rgba(255,209,0,.08),rgba(255,255,255,.024))}
.nf24-context-reco-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(255,209,0,.13);font-size:19px}
.nf24-context-reco-copy{display:flex;flex-direction:column;min-width:0}
.nf24-context-reco-kicker{font-size:9px;line-height:1.2;font-weight:900;letter-spacing:.75px;color:#c9aa00;margin-bottom:3px}
.nf24-context-reco-copy strong{font-size:14px;line-height:1.25;color:var(--text,#fff)}
.nf24-context-reco-copy small{font-size:11px;line-height:1.4;color:var(--text-muted,#92949a);margin-top:4px}
.nf24-context-reco-cta{font-size:11px;font-weight:900;color:#ffd100;white-space:nowrap}

.nf24-catalog-modal-card{width:min(820px,100%)}
.nf24-catalog-groups{display:grid;gap:18px}
.nf24-catalog-group{display:grid;gap:9px}
.nf24-catalog-group h4{margin:0;padding:0 2px;font-size:11px;line-height:1.2;text-transform:uppercase;letter-spacing:.75px;color:#a8abb2}
.nf24-catalog-group-list{display:grid;gap:8px}
.nf24-catalog-product{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;padding:11px 12px;border:1px solid #2a2d31;border-radius:13px;background:#181a1d}
.nf24-catalog-product.is-featured{border-color:rgba(255,209,0,.5);background:linear-gradient(135deg,rgba(255,209,0,.075),rgba(255,209,0,.015))}
.nf24-catalog-product-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#25282d;font-size:17px}
.nf24-catalog-product-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.nf24-catalog-product-title{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.nf24-catalog-product-title strong{font-size:13px;color:#fff}
.nf24-catalog-product-title span{font-size:8px;line-height:1;font-weight:900;padding:4px 6px;border-radius:999px;background:rgba(255,209,0,.12);color:#ddbc00;border:1px solid rgba(255,209,0,.22)}
.nf24-catalog-product-copy small{font-size:11px;line-height:1.35;color:#94969c}
.nf24-catalog-product-btn{min-height:34px;padding:0 11px;border:0;border-radius:9px;background:#292c31;color:#fff;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap}
.nf24-catalog-product.is-featured .nf24-catalog-product-btn{background:#ffd100;color:#111}
.nf24-catalog-product-btn:disabled,.nf24-catalog-variant-btn:disabled{opacity:.6;cursor:wait}
.nf24-catalog-family{padding:12px;border:1px solid #2a2d31;border-radius:13px;background:#181a1d}
.nf24-catalog-family-head{display:grid;grid-template-columns:38px 1fr;gap:11px;align-items:center}
.nf24-catalog-family-head strong{display:block;font-size:13px;color:#fff}
.nf24-catalog-family-head small{display:block;margin-top:4px;font-size:11px;line-height:1.35;color:#94969c}
.nf24-catalog-variants{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 0 49px}
.nf24-catalog-variant-btn{min-height:32px;padding:0 11px;border:1px solid rgba(255,209,0,.27);border-radius:9px;background:rgba(255,209,0,.07);color:#ffd100;font-size:11px;font-weight:900;cursor:pointer}
.nf24-catalog-variant-btn:hover{background:#ffd100;color:#111}

@media(max-width:700px){
  .nf24-context-reco{grid-template-columns:auto 1fr;padding:12px 13px;gap:10px}
  .nf24-context-reco-cta{grid-column:2;font-size:10px}
  .nf24-context-reco-copy small{font-size:10.5px}
  .nf24-catalog-product{grid-template-columns:34px 1fr}
  .nf24-catalog-product-icon{width:32px;height:32px}
  .nf24-catalog-product-btn{grid-column:2;width:max-content}
  .nf24-catalog-variants{margin-left:45px}
}


/* ===== NF24FIT · Catálogo afiliado contextual V2 · compacto + tabs ===== */
.nf24-catalog-tabs{display:flex;gap:7px;overflow-x:auto;padding:1px 1px 10px;margin:-2px 0 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.nf24-catalog-tabs::-webkit-scrollbar{display:none}
.nf24-catalog-tab{flex:0 0 auto;min-height:34px;padding:0 12px;border:1px solid #2d3034;border-radius:999px;background:#1b1d20;color:#a9abb0;font-size:10px;font-weight:900;cursor:pointer;white-space:nowrap}
.nf24-catalog-tab.active{border-color:rgba(255,209,0,.52);background:rgba(255,209,0,.12);color:#ffd100}
.nf24-catalog-group.is-hidden{display:none}
.nf24-catalog-groups.has-tabs{gap:0}
.nf24-catalog-groups.has-tabs .nf24-catalog-group{gap:0}
.nf24-catalog-modal-card .nf24-affiliate-modal-head{margin-bottom:13px}
.nf24-catalog-product-btn{padding:0 12px}

@media(max-width:700px){
  .nf24-catalog-modal-card{padding:16px;max-height:89vh}
  .nf24-catalog-modal-card .nf24-affiliate-modal-head{padding-right:42px;margin-bottom:11px}
  .nf24-catalog-modal-card .nf24-affiliate-modal-head h3{font-size:18px;line-height:1.16}
  .nf24-catalog-modal-card .nf24-affiliate-modal-head p{font-size:12px;line-height:1.42;margin-top:6px}
  .nf24-catalog-tabs{margin-top:0;padding-bottom:9px}
  .nf24-catalog-product{grid-template-columns:30px minmax(0,1fr) auto;gap:9px;padding:9px 10px}
  .nf24-catalog-product-icon{width:30px;height:30px;border-radius:9px;font-size:15px}
  .nf24-catalog-product-title{gap:5px}
  .nf24-catalog-product-title strong{font-size:12px}
  .nf24-catalog-product-title span{font-size:7.5px;padding:3px 5px}
  .nf24-catalog-product-copy small{font-size:10px;line-height:1.3}
  .nf24-catalog-product-btn{grid-column:auto;min-height:32px;padding:0 9px;font-size:9.5px}
  .nf24-catalog-family{padding:10px}
  .nf24-catalog-family-head{grid-template-columns:30px 1fr;gap:9px}
  .nf24-catalog-family-head strong{font-size:12px}
  .nf24-catalog-family-head small{font-size:10px;line-height:1.3;margin-top:3px}
  .nf24-catalog-variants{margin:8px 0 0 39px;gap:6px}
  .nf24-catalog-variant-btn{min-height:31px;padding:0 10px;font-size:10px}
  .nf24-catalog-group-list{gap:7px}
  .nf24-catalog-group h4{font-size:10px}
  .nf24-affiliate-modal-note{font-size:9.5px;margin-top:12px;padding-top:11px}
}


/* ===== NF24FIT · Catálogo afiliados V3 · modal estable + métricas Workday ===== */
.nf24-catalog-modal-card.has-catalog-tabs{height:min(680px,86vh);max-height:86vh;overflow:hidden;display:flex;flex-direction:column}
.nf24-catalog-modal-card.has-catalog-tabs .nf24-affiliate-modal-head,.nf24-catalog-modal-card.has-catalog-tabs .nf24-catalog-tabs,.nf24-catalog-modal-card.has-catalog-tabs .nf24-affiliate-modal-note{flex:0 0 auto}
.nf24-catalog-modal-card.has-catalog-tabs .nf24-catalog-groups{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}
.nf24-catalog-modal-card.has-catalog-tabs .nf24-catalog-group{min-height:100%;align-content:start}
.nf24-aff-admin-page{padding-bottom:100px}.nf24-aff-admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 18px}.nf24-aff-admin-kpi{padding:14px;border:1px solid #2a2c30;border-radius:16px;background:#17191c}.nf24-aff-admin-kpi span{display:block;font-size:10px;color:#92959b;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.nf24-aff-admin-kpi strong{display:block;margin-top:5px;font-size:24px;color:#ffd100;line-height:1}.nf24-aff-admin-section{margin-top:18px}.nf24-aff-admin-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}.nf24-aff-admin-section-head span{font-size:9px;color:#c5a500;font-weight:900;letter-spacing:.8px}.nf24-aff-admin-section-head h2{font-size:17px;margin:3px 0 0;color:#fff}.nf24-aff-admin-section-head button{border:1px solid #34373c;background:#1b1d20;color:#fff;border-radius:10px;padding:8px 10px;font-size:10px;font-weight:800}.nf24-aff-admin-list{display:grid;gap:8px}.nf24-aff-admin-row,.nf24-aff-admin-recent{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;border:1px solid #2a2c30;border-radius:14px;background:#17191c}.nf24-aff-admin-rank{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:rgba(255,209,0,.10);color:#ffd100;font-size:11px;font-weight:900}.nf24-aff-admin-row-copy{min-width:0}.nf24-aff-admin-row-copy strong{display:block;color:#fff;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nf24-aff-admin-row-copy span{display:block;margin-top:3px;color:#8f9298;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nf24-aff-admin-count{text-align:right;color:#fff;font-size:17px;font-weight:900}.nf24-aff-admin-count small{display:block;color:#777b82;font-size:8px;font-weight:700}.nf24-aff-admin-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.nf24-aff-admin-section-chip{padding:12px;border:1px solid #2a2c30;border-radius:13px;background:#17191c}.nf24-aff-admin-section-chip strong{display:block;font-size:12px;color:#fff}.nf24-aff-admin-section-chip span{display:block;margin-top:3px;font-size:9.5px;color:#8f9298}.nf24-aff-admin-recent-dot{width:9px;height:9px;border-radius:50%;background:#ffd100;box-shadow:0 0 0 4px rgba(255,209,0,.08)}.nf24-aff-admin-recent time{font-size:8.5px;color:#777b82;text-align:right;max-width:72px}
@media(max-width:700px){.nf24-catalog-modal-card.has-catalog-tabs{height:78vh;max-height:78vh}.nf24-catalog-modal-card.has-catalog-tabs .nf24-catalog-groups{margin-right:-4px;padding-right:4px}.nf24-aff-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.nf24-aff-admin-kpi strong{font-size:21px}}


/* v96 — estado APP visible en Gestión Natural Fitness */
.gnf-app-filtros{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-2px 0 12px}.gnf-app-filtro{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--card);color:var(--text-muted);border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer}.gnf-app-filtro span{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.06);font-size:10px}.gnf-app-filtro:hover,.gnf-app-filtro.active{border-color:var(--accent);color:var(--accent);background:rgba(255,212,0,.06)}
.gnf-app-badge{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 7px;border-radius:7px;font-size:9px;font-weight:900;letter-spacing:.15px;white-space:nowrap;line-height:1;border:1px solid transparent}.gnf-app-badge.is-linked{background:rgba(39,209,127,.14);border-color:rgba(39,209,127,.35);color:#38dc8a}.gnf-app-badge.is-unlinked{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.10);color:#92969d}.gnf-cliente-nombre-wa{flex-wrap:nowrap}
@media(max-width:760px){.gnf-app-filtros{overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}.gnf-app-filtro{flex:0 0 auto}.gnf-app-badge{font-size:8px;padding:0 5px;height:22px}}

/* ===== NF24FIT · MIS ENLACES Y QR — MOBILE HUB V2 ===== */
#page-workday-enlaces.linkhub-v2{--lh-yellow:#ffd400;--lh-border:rgba(255,255,255,.10);--lh-muted:rgba(255,255,255,.60);max-width:980px;margin:0 auto}
#page-workday-enlaces .linkhub-loading{max-width:760px;margin:12px auto;padding:13px 15px;border:1px solid var(--lh-border);border-radius:14px;color:var(--lh-muted);background:#151517}
#page-workday-enlaces .linkhub-section{max-width:760px;margin:22px auto 0}
#page-workday-enlaces .linkhub-section:first-of-type{margin-top:16px}
#page-workday-enlaces .linkhub-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 2px 10px}
#page-workday-enlaces .linkhub-section-title{display:flex;align-items:center;gap:8px;min-width:0}
#page-workday-enlaces .linkhub-section-title h2{margin:0;color:#fff;font-size:19px;line-height:1.1;letter-spacing:-.02em}
#page-workday-enlaces .linkhub-section-icon{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;font-size:15px;font-weight:900;background:rgba(255,212,0,.12);color:#ffd400;border:1px solid rgba(255,212,0,.22)}
#page-workday-enlaces .linkhub-section-head>p{margin:0;max-width:48%;text-align:right;font-size:10.5px;line-height:1.35;color:rgba(255,255,255,.42)}
#page-workday-enlaces .linkhub-grid{display:grid;grid-template-columns:1fr;gap:10px}
#page-workday-enlaces .linkhub-card{--lh-accent:#ffd400;--lh-rgb:255,212,0;position:relative;overflow:hidden;padding:13px!important;border:1px solid rgba(var(--lh-rgb),.40)!important;border-radius:18px!important;background:radial-gradient(circle at 92% 14%,rgba(var(--lh-rgb),.19),transparent 38%),linear-gradient(145deg,rgba(var(--lh-rgb),.085),rgba(18,18,20,.98) 52%,rgba(11,11,12,.99))!important;box-shadow:0 12px 28px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.025)!important}
#page-workday-enlaces .linkhub-card::before{content:"";position:absolute;width:130px;height:130px;right:-34px;top:-52px;border-radius:50%;background:rgba(var(--lh-rgb),.08);filter:blur(2px);pointer-events:none}
#page-workday-enlaces .linkhub-theme-gold{--lh-accent:#ffd400;--lh-rgb:255,212,0}
#page-workday-enlaces .linkhub-theme-green{--lh-accent:#48d94d;--lh-rgb:72,217,77}
#page-workday-enlaces .linkhub-theme-purple{--lh-accent:#bd55ff;--lh-rgb:189,85,255}
#page-workday-enlaces .linkhub-theme-orange{--lh-accent:#ff9f2f;--lh-rgb:255,159,47}
#page-workday-enlaces .linkhub-theme-cyan{--lh-accent:#39cceb;--lh-rgb:57,204,235}
#page-workday-enlaces .linkhub-theme-red{--lh-accent:#ff526f;--lh-rgb:255,82,111}
#page-workday-enlaces .linkhub-theme-blue{--lh-accent:#3d91ff;--lh-rgb:61,145,255}
#page-workday-enlaces .linkhub-theme-violet{--lh-accent:#a95cff;--lh-rgb:169,92,255}
#page-workday-enlaces .linkhub-theme-brown{--lh-accent:#c9853d;--lh-rgb:201,133,61}
#page-workday-enlaces .linkhub-card-secondary{opacity:.88}
#page-workday-enlaces .linkhub-card-top{position:relative;z-index:1;display:grid;grid-template-columns:45px minmax(0,1fr) auto;gap:11px;align-items:center;margin-bottom:11px}
#page-workday-enlaces .linkhub-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:13px;font-size:20px;font-weight:950;color:#fff;border:1px solid rgba(var(--lh-rgb),.35);background:linear-gradient(145deg,rgba(var(--lh-rgb),.38),rgba(var(--lh-rgb),.13));box-shadow:0 8px 22px rgba(var(--lh-rgb),.10)}
#page-workday-enlaces .linkhub-copy{min-width:0}
#page-workday-enlaces .linkhub-copy .workday-item-title{font-size:15px!important;line-height:1.18;font-weight:900}
#page-workday-enlaces .linkhub-copy .workday-item-meta{max-width:520px;font-size:11px!important;line-height:1.38;color:rgba(255,255,255,.62)!important}
#page-workday-enlaces .linkhub-chevron{color:rgba(255,255,255,.88);font-size:26px;line-height:1}
#page-workday-enlaces .linkhub-actions{position:relative;z-index:1;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}
#page-workday-enlaces .linkhub-actions-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
#page-workday-enlaces .linkhub-card .workday-action{min-height:38px!important;padding:7px 5px!important;border-radius:10px!important;font-size:10.5px!important;font-weight:850!important;background:rgba(5,5,6,.52)!important;border:1px solid rgba(255,255,255,.14)!important}
#page-workday-enlaces .linkhub-card .workday-action--primary{color:#111!important;background:linear-gradient(135deg,#ffe41b,#ffca00)!important;border-color:#ffd400!important;box-shadow:0 5px 16px rgba(255,212,0,.12)!important}
#page-workday-enlaces .linkhub-content-btn{position:relative;z-index:1;width:100%;margin-top:7px;padding:5px 2px 0;border:0;background:transparent;color:rgba(255,255,255,.52);font-size:10px;font-weight:750;text-align:left;cursor:pointer}
#page-workday-enlaces .linkhub-content-btn:hover{color:var(--lh-accent)}
#page-workday-enlaces #enlaces-qr-mi-centro-wrap,#page-workday-enlaces #enlaces-qr-skin-wrap,#page-workday-enlaces #enlaces-qr-maderoterapia-wrap,#page-workday-enlaces #enlaces-qr-invitar-wrap{max-width:none!important;margin:0!important}
#page-workday-enlaces #enlaces-colabora-slot{display:grid;gap:10px}
#page-workday-enlaces .hidden{display:none!important}
@media(min-width:760px){
  #page-workday-enlaces .linkhub-grid-featured{grid-template-columns:repeat(3,minmax(0,1fr))}
  #page-workday-enlaces .linkhub-grid:not(.linkhub-grid-featured){grid-template-columns:repeat(2,minmax(0,1fr))}
  #page-workday-enlaces #enlaces-colabora-slot{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}
  #page-workday-enlaces .linkhub-card{height:100%}
  #page-workday-enlaces .linkhub-card-top{grid-template-columns:42px minmax(0,1fr) auto}
  #page-workday-enlaces .linkhub-icon{width:42px;height:42px}
}
@media(max-width:520px){
  #page-workday-enlaces.linkhub-v2{padding-left:12px!important;padding-right:12px!important}
  #page-workday-enlaces .enlaces-premium-header h1{font-size:29px!important}
  #page-workday-enlaces .enlaces-premium-note{margin-left:0!important;font-size:10.5px}
  #page-workday-enlaces .linkhub-section{margin-top:20px}
  #page-workday-enlaces .linkhub-section-head{align-items:flex-start;flex-direction:column;gap:4px;margin-bottom:8px}
  #page-workday-enlaces .linkhub-section-title h2{font-size:18px}
  #page-workday-enlaces .linkhub-section-head>p{max-width:none;text-align:left;padding-left:35px;font-size:10px}
  #page-workday-enlaces .linkhub-card{border-radius:16px!important;padding:11px!important}
  #page-workday-enlaces .linkhub-card-top{grid-template-columns:40px minmax(0,1fr) auto;gap:9px;margin-bottom:9px}
  #page-workday-enlaces .linkhub-icon{width:40px;height:40px;border-radius:11px;font-size:18px}
  #page-workday-enlaces .linkhub-copy .workday-item-title{font-size:14px!important}
  #page-workday-enlaces .linkhub-copy .workday-item-meta{font-size:10.3px!important;line-height:1.34}
  #page-workday-enlaces .linkhub-card .workday-action{min-height:36px!important;font-size:9.5px!important;padding:6px 3px!important}
  #page-workday-enlaces .linkhub-content-btn{font-size:9.5px;text-align:center}
}
@media(max-width:360px){#page-workday-enlaces .linkhub-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}}


/* ============================================================
   NF24FIT · INSTALACIÓN EN PANTALLA DE INICIO V1
   ============================================================ */


.install-profile-card{
  border:1px solid rgba(255,212,0,.22)!important;
  background:
    radial-gradient(circle at 90% 10%,rgba(255,212,0,.10),transparent 38%),
    linear-gradient(145deg,rgba(255,212,0,.04),rgba(20,20,22,.96))!important;
}
.install-profile-head{display:flex;align-items:center;gap:12px}
.install-profile-icon{
  width:48px;height:48px;flex:0 0 48px;border-radius:15px;
  display:grid;place-items:center;font-size:24px;
  background:rgba(255,212,0,.11);
  border:1px solid rgba(255,212,0,.25)
}
.install-profile-sub{margin:5px 0 0;color:var(--text-muted);font-size:12px;line-height:1.45}
.install-profile-status{
  margin-top:10px;padding:10px 12px;border-radius:11px;
  background:rgba(35,200,100,.08);border:1px solid rgba(35,200,100,.22);
  color:#6fe7a3;font-size:12px;font-weight:800
}

body.install-guide-open{overflow:hidden}
#install-banner.install-guide-sheet{
  position:fixed!important;inset:0!important;z-index:99999!important;
  display:grid;place-items:end center;
  padding:18px!important;
  background:transparent!important;
  border:0!important;
  max-width:none!important;
  box-shadow:none!important
}
#install-banner.install-guide-sheet.hidden{display:none!important}
.install-guide-backdrop{
  position:absolute;inset:0;background:rgba(0,0,0,.72);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)
}
.install-guide-card{
  position:relative;z-index:1;width:min(100%,460px);
  padding:22px 18px 18px;border-radius:24px;
  background:
    radial-gradient(circle at 82% 8%,rgba(255,212,0,.12),transparent 34%),
    linear-gradient(160deg,#1c1c1f,#111113 72%);
  border:1px solid rgba(255,212,0,.28);
  box-shadow:0 28px 80px rgba(0,0,0,.58)
}
.install-guide-close{
  position:absolute;right:14px;top:14px;width:38px;height:38px;
  border:1px solid rgba(255,255,255,.10);border-radius:12px;
  background:#292a2e;color:#fff;font-size:18px;font-weight:800
}
.install-guide-app-icon{
  width:58px;height:58px;border-radius:16px;overflow:hidden;
  box-shadow:0 10px 28px rgba(255,212,0,.13);margin-bottom:13px
}
.install-guide-app-icon img{width:100%;height:100%;display:block}
.install-guide-kicker{
  color:#ffd400;font-size:10px;font-weight:950;letter-spacing:.12em;margin-bottom:5px
}
.install-guide-card h2{
  margin:0 46px 7px 0;font-size:24px;line-height:1.08;letter-spacing:-.03em;color:#fff
}
.install-guide-card>p#install-guide-text{
  margin:0 0 16px;color:rgba(255,255,255,.64);font-size:13px;line-height:1.45
}
.install-guide-platform{display:grid;gap:8px;margin:12px 0 17px}
.install-guide-step{
  display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:center;
  padding:11px 12px;border-radius:13px;
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07)
}
.install-guide-step>b{
  width:30px;height:30px;border-radius:10px;display:grid;place-items:center;
  background:rgba(255,212,0,.13);color:#ffd400;font-size:13px
}
.install-guide-step>span{font-size:12px;line-height:1.4;color:rgba(255,255,255,.78)}
.install-share-icon{color:#ffd400;font-weight:900}
.install-guide-primary,
.install-guide-secondary{
  width:100%;min-height:48px;border-radius:14px;font-size:14px;font-weight:950;cursor:pointer
}
.install-guide-primary{
  border:1px solid #ffd400;background:#ffd400;color:#111;
  box-shadow:0 8px 24px rgba(255,212,0,.16)
}
.install-guide-secondary{
  border:1px solid rgba(255,255,255,.13);background:#292a2e;color:#fff
}
.install-guide-note{
  margin:10px 3px 0!important;text-align:center;
  font-size:10px!important;line-height:1.35!important;color:rgba(255,255,255,.40)!important
}
@media(min-width:700px){
  #install-banner.install-guide-sheet{place-items:center}
}


/* ============================================================
   NF24FIT · AVISO GUIADO DE NOTIFICACIONES V7
   ============================================================ */
body.push-permission-open{overflow:hidden}

#push-prompt-banner.push-permission-sheet{
  position:fixed!important;
  inset:0!important;
  z-index:100000!important;
  display:grid!important;
  place-items:end center!important;
  padding:18px!important;
  background:transparent!important;
  border:0!important;
  max-width:none!important;
  box-shadow:none!important;
}
#push-prompt-banner.push-permission-sheet.hidden{display:none!important}

.push-permission-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}

.push-permission-card{
  position:relative;
  z-index:1;
  width:min(100%,460px);
  padding:22px 18px 18px;
  border-radius:24px;
  background:
    radial-gradient(circle at 83% 6%,rgba(255,212,0,.13),transparent 35%),
    linear-gradient(160deg,#1d1d20,#111113 72%);
  border:1px solid rgba(255,212,0,.27);
  box-shadow:0 28px 80px rgba(0,0,0,.60);
}

.push-permission-close{
  position:absolute;
  right:14px;
  top:14px;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:#292a2e;
  color:#fff;
  font-size:18px;
  font-weight:800;
}

.push-permission-icon{
  width:58px;
  height:58px;
  border-radius:17px;
  display:grid;
  place-items:center;
  margin-bottom:13px;
  font-size:27px;
  background:rgba(255,212,0,.11);
  border:1px solid rgba(255,212,0,.25);
  box-shadow:0 10px 28px rgba(255,212,0,.10);
}

.push-permission-kicker{
  margin-bottom:5px;
  color:#ffd400;
  font-size:10px;
  font-weight:950;
  letter-spacing:.12em;
}

.push-permission-card h2{
  margin:0 48px 7px 0;
  color:#fff;
  font-size:23px;
  line-height:1.09;
  letter-spacing:-.03em;
}

.push-permission-card>p{
  margin:0 0 15px;
  color:rgba(255,255,255,.64);
  font-size:12.5px;
  line-height:1.48;
}

.push-permission-benefits{
  display:grid;
  gap:7px;
  margin:13px 0 17px;
}

.push-permission-benefits>div{
  display:grid;
  grid-template-columns:29px minmax(0,1fr);
  column-gap:9px;
  padding:10px 11px;
  border-radius:13px;
  background:rgba(255,255,255,.042);
  border:1px solid rgba(255,255,255,.07);
}

.push-permission-benefits span{
  grid-row:1/3;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:rgba(255,212,0,.12);
  color:#ffd400;
  font-size:13px;
  font-weight:950;
}

.push-permission-benefits b{
  color:#fff;
  font-size:11.5px;
  line-height:1.25;
}

.push-permission-benefits small{
  margin-top:2px;
  color:rgba(255,255,255,.49);
  font-size:9.5px;
  line-height:1.35;
}

.push-permission-primary,
.push-permission-secondary{
  width:100%;
  min-height:47px;
  border-radius:14px;
  font-size:13.5px;
  font-weight:950;
  cursor:pointer;
}

.push-permission-primary{
  border:1px solid #ffd400;
  background:#ffd400;
  color:#111;
  box-shadow:0 8px 24px rgba(255,212,0,.15);
}

.push-permission-primary:disabled{opacity:.65}

.push-permission-secondary{
  margin-top:7px;
  border:1px solid rgba(255,255,255,.11);
  background:#26272a;
  color:rgba(255,255,255,.82);
}

.push-permission-note{
  margin:9px 2px 0!important;
  text-align:center;
  color:rgba(255,255,255,.36)!important;
  font-size:9.5px!important;
  line-height:1.35!important;
}

@media(min-width:700px){
  #push-prompt-banner.push-permission-sheet{place-items:center!important}
}


/* ============================================================
   NF24FIT · HOME · AGENDA RÁPIDA V9
   ============================================================ */
.dash-agenda-mini{
  width:100%;
  margin:10px 0 14px;
  padding:11px 13px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr) auto 18px;
  align-items:center;
  gap:10px;
  border-radius:16px;
  border:1px solid rgba(255,212,0,.22);
  background:
    radial-gradient(circle at 86% 20%,rgba(255,212,0,.08),transparent 35%),
    linear-gradient(145deg,#171719,#111113);
  color:#fff;
  text-align:left;
  cursor:pointer;
  box-shadow:0 10px 28px rgba(0,0,0,.16);
}
.dash-agenda-mini:hover{border-color:rgba(255,212,0,.42)}
.dash-agenda-mini-icon{
  width:40px;height:40px;border-radius:12px;
  display:grid;place-items:center;
  background:rgba(255,212,0,.10);
  border:1px solid rgba(255,212,0,.18);
  font-size:20px;
}
.dash-agenda-mini-main{min-width:0;display:flex;flex-direction:column;gap:2px}
.dash-agenda-mini-kicker{
  color:#ffd400;font-size:9px;line-height:1;font-weight:950;letter-spacing:.10em
}
.dash-agenda-mini-main strong{
  font-size:13px;line-height:1.2;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.dash-agenda-mini-main small{
  font-size:10.5px;line-height:1.3;color:var(--text-muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.dash-agenda-mini-count{
  min-width:30px;height:30px;padding:0 7px;border-radius:10px;
  display:grid;place-items:center;
  background:#ffd400;color:#111;font-size:12px;font-weight:950
}
.dash-agenda-mini-arrow{font-size:23px;color:rgba(255,255,255,.55)}
@media(max-width:520px){
  .dash-agenda-mini{grid-template-columns:38px minmax(0,1fr) auto 14px;padding:10px 11px;gap:8px}
  .dash-agenda-mini-icon{width:38px;height:38px}
  .dash-agenda-mini-main strong{font-size:12.5px}
  .dash-agenda-mini-main small{font-size:10px}
}


/* ============================================================
   NF24FIT V11 · PREVIEW FOTO ONBOARDING ROBUSTO
   ============================================================ */
#onb-foto-preview.onb-foto-preview{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border-radius:50%;
  opacity:1;
  visibility:visible;
  background:transparent;
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
}
#onb-foto-preview.onb-foto-preview.hidden{display:none!important}


/* ============================================================
   NF24FIT V12 · GESTIÓN NF + RESERVAS LIMPIAS + FIX BANNER
   ============================================================ */

/* Nombres completos en Gestión Natural Fitness:
   damos más ancho a Cliente y permitimos que el nombre use todo el espacio.
   La tabla ya tiene scroll horizontal propio, así que no comprimimos nombres. */
#page-admin-gestion-nf .gnf-col-cliente{
  min-width:300px!important;
  max-width:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
#page-admin-gestion-nf .gnf-cliente-nombre-wa{
  min-width:0;
  flex-wrap:nowrap;
  align-items:center;
}
#page-admin-gestion-nf .gnf-cliente-link{
  display:inline-block;
  min-width:max-content;
  max-width:none;
  overflow:visible;
  text-overflow:clip;
  white-space:nowrap;
}

/* Reservas cliente: solo calendario y controles.
   Eliminamos cualquier marca/logo residual en la zona superior. */
#page-horarios #reservas-centro-brand{
  display:none!important;
}
#page-horarios .reservas-centro-corner img{
  display:none!important;
}
#page-horarios .reservas-centro-corner{
  background:transparent!important;
}

/* Protección adicional contra el antiguo mini-banner huérfano.
   El modal nuevo de notificaciones conserva sus estilos propios. */
body > #push-prompt-btn,
body > #push-prompt-close{
  display:none!important;
}


/* ============================================================
   NF24FIT V13 · NOMBRE/APELLIDOS + VINCULAR APP EN WORKDAY
   ============================================================ */
.auth-name-grid,
.onb-name-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.auth-name-grid-full,
.onb-name-grid-full{grid-column:1/-1}
.field-optional{font-size:.82em;color:var(--text-muted);font-weight:500}
@media(max-width:560px){
  .auth-name-grid,.onb-name-grid{grid-template-columns:1fr}
  .auth-name-grid-full,.onb-name-grid-full{grid-column:auto}
}

.paco-vincular-card{width:min(680px,95vw)!important;max-height:84vh!important}
.paco-vincular-info{
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid rgba(255,212,0,.18);
  background:rgba(255,212,0,.055);
  border-radius:12px;
  color:var(--text-muted);
  font-size:12px;
  line-height:1.45;
}
.paco-vincular-resultados{
  display:grid;
  gap:8px;
  max-height:48vh;
  overflow:auto;
  margin-top:12px;
  padding-right:3px;
}
.paco-vincular-candidato{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:13px;
  background:#171719;
  color:#fff;
  text-align:left;
  cursor:pointer;
}
.paco-vincular-candidato:hover{border-color:rgba(255,212,0,.42)}
.paco-vincular-candidato span{display:flex;flex-direction:column;gap:3px;min-width:0}
.paco-vincular-candidato strong{font-size:13px}
.paco-vincular-candidato small{
  color:var(--text-muted);
  font-size:10.5px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.paco-vincular-candidato em{
  flex:0 0 auto;
  font-style:normal;
  font-size:10px;
  font-weight:900;
  color:#111;
  background:#ffd400;
  padding:5px 8px;
  border-radius:999px;
}
.paco-vincular-candidato i{
  flex:0 0 auto;
  font-style:normal;
  color:#ffd400;
  font-size:11px;
  font-weight:800;
}
.tracking-action--link,
.paco-cliente-vincular-btn{
  border-color:rgba(255,212,0,.32)!important;
  color:#ffd400!important;
}


/* ============================================================
   V16 — Catálogo comercial NF24FIT
   ============================================================ */
.nf24-catalogo-card{
  margin:14px 0 16px;padding:16px;border-radius:18px;
  border:1px solid rgba(255,214,0,.34);
  background:linear-gradient(135deg,rgba(255,214,0,.12),rgba(255,255,255,.025) 52%,rgba(255,214,0,.05));
  box-shadow:0 14px 34px rgba(0,0,0,.16);
}
.nf24-catalogo-card-main{display:flex;align-items:center;gap:13px;}
.nf24-catalogo-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;background:#ffd600;color:#111;font-size:23px;font-weight:900;}
.nf24-catalogo-copy{display:flex;flex-direction:column;min-width:0;gap:2px;}
.nf24-catalogo-kicker{font-size:10px;letter-spacing:.16em;font-weight:900;color:#ffd600;}
.nf24-catalogo-copy strong{font-size:15px;line-height:1.25;color:var(--text-dark,#fff);}
.nf24-catalogo-copy small{font-size:11.5px;color:var(--text-muted,#999);line-height:1.35;}
.nf24-catalogo-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;}
.nf24-catalogo-actions .btn-primary,.nf24-catalogo-actions .btn-secondary{width:100%;margin:0;min-height:42px;}
@media(max-width:430px){.nf24-catalogo-card{padding:14px}.nf24-catalogo-actions{grid-template-columns:1fr 1fr}}

/* Email Marketing V20 · destinos rápidos del CTA */
.emailm-cta-destino-field select{
  width:100%;min-height:48px;border:1px solid rgba(255,255,255,.12);border-radius:12px;
  background:#17181b;color:#fff;padding:0 14px;font:inherit;font-weight:700;outline:none;
}
.emailm-cta-destino-field select:focus{border-color:rgba(255,209,0,.75);box-shadow:0 0 0 3px rgba(255,209,0,.10)}
.emailm-cta-help{display:block;margin-top:7px;color:var(--text-muted);font-size:12px;line-height:1.4}


/* WhatsApp Marketing V22 */
.wam-hero{border-color:rgba(37,211,102,.24);background:radial-gradient(circle at 8% 0%,rgba(37,211,102,.13),transparent 36%),linear-gradient(135deg,rgba(20,20,21,.98),rgba(11,12,13,.98))}
.wam-hero-icon{color:#25d366;border-color:rgba(37,211,102,.36);background:rgba(37,211,102,.08)}
.wam-select{width:100%;min-height:42px;border:1px solid rgba(255,255,255,.12);border-radius:11px;background:#101113;color:var(--w-text);padding:0 12px;font:inherit}
.wam-variables{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:-2px 0 11px;font-size:9px;color:var(--text-muted)}
.wam-variables button{border:1px solid rgba(37,211,102,.22);background:rgba(37,211,102,.07);color:#8df0b0;border-radius:999px;padding:5px 8px;font-size:9px;cursor:pointer}
.wam-note{font-size:9px;line-height:1.45;color:#bfc3c8;background:rgba(37,211,102,.045);border:1px solid rgba(37,211,102,.12);border-radius:10px;padding:9px 10px}
.wam-phone{border-radius:24px;background:#0b141a;border:5px solid #25282d;box-shadow:0 18px 45px rgba(0,0,0,.28);overflow:hidden;max-width:360px;margin:0 auto}
.wam-phone-head{height:58px;background:#202c33;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;padding:0 12px;color:#fff}
.wam-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#111;color:#ffd100;font-size:11px;font-weight:900}.wam-phone-head strong{display:block;font-size:11px}.wam-phone-head small{display:block;color:#adb8bd;font-size:8px;margin-top:2px}.wam-chat-bg{min-height:270px;padding:18px 12px;background-color:#0b141a;background-image:radial-gradient(rgba(255,255,255,.03) 1px,transparent 1px);background-size:18px 18px}.wam-bubble{margin-left:auto;max-width:84%;white-space:pre-wrap;background:#005c4b;color:#f1f5f4;border-radius:10px 2px 10px 10px;padding:9px 10px 16px;font-size:11px;line-height:1.45;position:relative;box-shadow:0 1px 1px rgba(0,0,0,.2)}.wam-bubble::after{content:"17:52 ✓✓";position:absolute;right:7px;bottom:4px;font-size:6.5px;color:#91c8bc}.wam-queue-status{margin:11px 0 0;padding:9px 10px;border-radius:10px;border:1px solid var(--w-border);background:rgba(255,255,255,.03);font-size:9px;color:var(--text-muted);line-height:1.4}.wam-queue-actions{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}.wam-open-btn{border:0;border-radius:11px;background:#25d366;color:#07130b;font-weight:900;min-height:42px;padding:9px 12px;cursor:pointer}.wam-open-btn:disabled{opacity:.4;cursor:not-allowed}.wam-history-head,.wam-history-row{display:grid;grid-template-columns:minmax(220px,1.5fr) 150px 120px 130px;gap:10px;align-items:center}.wam-history-head{padding:8px 11px;background:rgba(255,255,255,.035);font-size:8px;font-weight:800;color:var(--text-muted);text-transform:uppercase}.wam-history-row{padding:11px;border-top:1px solid var(--w-border);font-size:10px;color:var(--w-text)}.wam-history-row strong{display:block;font-size:11px}.wam-history-row small{display:block;color:var(--text-muted);font-size:8px;margin-top:2px}
@media(max-width:980px){.wam-grid{grid-template-columns:1fr}.wam-phone{max-width:390px}.wam-history-head,.wam-history-row{grid-template-columns:1.5fr 1fr 1fr 1fr}}
@media(max-width:620px){.wam-history-head{display:none}.wam-history-row{grid-template-columns:1fr 1fr;gap:8px}.wam-queue-actions{grid-template-columns:1fr}.wam-open-btn,.wam-queue-actions .workday-action{width:100%;justify-content:center}}


/* WhatsApp Marketing Fase 2 · V23 */
.wam-v23-modebar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:14px 16px;border:1px solid rgba(37,211,102,.18);border-radius:16px;background:linear-gradient(135deg,rgba(37,211,102,.07),rgba(255,255,255,.02))}.wam-v23-modecopy{display:flex;align-items:center;gap:11px}.wam-v23-modecopy strong{display:block;color:var(--w-text);font-size:13px}.wam-v23-modecopy small{display:block;color:var(--text-muted);font-size:9px;margin-top:3px;max-width:650px;line-height:1.4}.wam-v23-badge{font-size:8px;font-weight:900;letter-spacing:.8px;color:#082313;background:#25d366;border-radius:999px;padding:6px 8px;white-space:nowrap}.wam-v23-modes{display:flex;gap:7px}.wam-mode-btn{min-height:38px;padding:0 12px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#17191c;color:#bfc3c8;font:inherit;font-size:9px;font-weight:800;cursor:pointer}.wam-mode-btn.active{background:#25d366;color:#07130b;border-color:#25d366}.wam-api-panel{margin-bottom:15px}.wam-api-status-card{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:15px 16px;border-radius:15px;border:1px solid rgba(255,255,255,.1);background:#111315;margin-bottom:12px}.wam-api-status-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:rgba(37,211,102,.08);color:#25d366;font-size:20px}.wam-api-status-kicker{display:block;color:#25d366;font-size:8px;font-weight:900;letter-spacing:.8px;margin-bottom:3px}.wam-api-status-card strong{display:block;color:#fff;font-size:13px}.wam-api-status-card small{display:block;color:#9da3a8;font-size:9px;margin-top:3px;line-height:1.4}.wam-api-pill{font-size:8px;font-weight:900;border-radius:999px;padding:6px 9px;background:rgba(255,193,7,.1);color:#ffd24d;border:1px solid rgba(255,193,7,.2)}.wam-api-pill.ok{background:rgba(37,211,102,.1);color:#7bf0a7;border-color:rgba(37,211,102,.22)}.wam-api-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:12px}.wam-api-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wam-v23-manual-muted{opacity:.42;filter:saturate(.7);pointer-events:none}.emailm-field small{display:block;color:var(--text-muted);font-size:8px;margin-top:4px;line-height:1.35}
@media(max-width:860px){.wam-v23-modebar{align-items:flex-start;flex-direction:column}.wam-v23-modes{width:100%}.wam-mode-btn{flex:1}.wam-api-grid{grid-template-columns:1fr}}
@media(max-width:560px){.wam-v23-modecopy{align-items:flex-start}.wam-v23-badge{margin-top:1px}.wam-api-status-card{grid-template-columns:38px 1fr}.wam-api-pill{grid-column:2;justify-self:start}.wam-api-two{grid-template-columns:1fr}}

/* ============================================================
   WHATSAPP MARKETING · V24 MULTI-COACH
   ============================================================ */
.wam-own-connection{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 18px;padding:14px 16px;border:1px solid rgba(255,209,0,.22);border-radius:14px;background:linear-gradient(180deg,rgba(255,209,0,.055),rgba(255,255,255,.015))}
.wam-own-connection-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.wam-own-connection-copy>span{font-size:10px;font-weight:900;letter-spacing:.9px;color:var(--yellow,#ffd100)}
.wam-own-connection-copy>strong{font-size:15px;color:var(--text,#fff)}
.wam-own-connection-copy>small{font-size:12px;color:var(--text-muted,#969696)}
.wam-own-connection-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.wam-connect-modal{width:min(620px,calc(100vw - 28px));max-height:88vh;overflow:auto}
.wam-connect-intro{color:var(--text-muted);font-size:13px;line-height:1.55;margin:8px 0 16px}
.wam-connect-advanced{border:1px solid var(--border);border-radius:14px;background:var(--surface-2);padding:0 14px 14px}
.wam-connect-advanced>summary{cursor:pointer;list-style:none;padding:14px 0;font-size:13px;font-weight:800;color:var(--text)}
.wam-connect-advanced>summary::-webkit-details-marker{display:none}
@media(max-width:720px){
  .wam-own-connection{align-items:flex-start;flex-direction:column}
  .wam-own-connection-actions{width:100%}
  .wam-own-connection-actions .workday-action{flex:1}
}


/* V25 — Formación de Coaches */
.coach-training-hero{margin:16px 0 22px;padding:20px;border:1px solid rgba(255,214,0,.34);border-radius:22px;background:linear-gradient(135deg,rgba(255,214,0,.12),rgba(255,255,255,.025));display:flex;gap:18px;align-items:center;justify-content:space-between}
.coach-training-hero h2{margin:5px 0 7px;font-size:25px;line-height:1.05}.coach-training-hero p{margin:0;color:var(--text-muted);font-size:13px;line-height:1.55;max-width:650px}
.coach-training-kicker{font-size:10px;font-weight:900;letter-spacing:.13em;color:#ffd600}.coach-training-progress-ring{min-width:104px;height:104px;border:7px solid rgba(255,214,0,.22);border-top-color:#ffd600;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.coach-training-progress-ring strong{font-size:23px}.coach-training-progress-ring span{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}
.coach-training-section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:22px 0 12px}.coach-training-section-head h3{margin:4px 0 0;font-size:20px}.coach-training-pill{font-size:10px;font-weight:800;padding:7px 10px;border-radius:999px;background:#202125;color:#cfd0d2}
.coach-training-modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.coach-training-module{position:relative;border:1px solid #2a2b2f;border-radius:18px;background:#151618;padding:17px;text-align:left;color:inherit;min-height:165px}.coach-training-module.active{border-color:rgba(255,214,0,.45)}.coach-training-module-icon{font-size:27px;margin-bottom:13px}.coach-training-module h4{font-size:17px;margin:0 0 6px}.coach-training-module p{font-size:12px;color:var(--text-muted);line-height:1.45;margin:0 0 13px}.coach-training-module-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;font-weight:800}.coach-training-module-status{color:#ffd600}.coach-training-module.locked{opacity:.72}.coach-training-module-progress{height:5px;border-radius:9px;background:#2a2b2f;overflow:hidden;margin-top:12px}.coach-training-module-progress span{display:block;height:100%;background:#ffd600}
.coach-training-admin{margin:18px 0;padding:16px;border-radius:18px;background:#151618;border:1px solid #2a2b2f}.coach-training-team-list{display:grid;gap:8px}.coach-training-team-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#101113;border-radius:13px;padding:11px 12px}.coach-training-team-row strong{font-size:12px}.coach-training-team-row small{display:block;color:var(--text-muted);font-size:10px;margin-top:2px}.coach-training-team-score{font-size:12px;font-weight:900;color:#ffd600}.coach-training-muted{color:var(--text-muted);font-size:12px;margin:0}
.coach-training-lesson-card{background:#151618;border:1px solid #2a2b2f;border-radius:20px;padding:18px;margin-top:16px}.coach-training-lesson-card h2{font-size:24px;line-height:1.12;margin:4px 0 8px}.coach-training-lesson-card>p{color:var(--text-muted);font-size:13px;line-height:1.55}.coach-training-plan-image{width:100%;display:block;border-radius:16px;margin:16px 0;border:1px solid #2b2c31}.coach-training-keypoints{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0}.coach-training-keypoint{background:#101113;border:1px solid #28292d;border-radius:13px;padding:12px}.coach-training-keypoint b{display:block;font-size:12px;margin-bottom:4px}.coach-training-keypoint span{font-size:11px;color:var(--text-muted);line-height:1.4}.coach-training-quiz{margin-top:18px}.coach-training-question{background:#101113;border:1px solid #292a2e;border-radius:15px;padding:14px;margin:10px 0}.coach-training-question>strong{font-size:13px;display:block;margin-bottom:10px}.coach-training-option{display:flex;align-items:flex-start;gap:9px;padding:8px 0;font-size:12px;color:#e7e7e9}.coach-training-option input{margin-top:2px;accent-color:#ffd600}.coach-training-submit{width:100%;border:0;border-radius:14px;padding:14px;background:#ffd600;color:#0a0a0b;font-weight:900;font-size:14px;margin-top:10px}.coach-training-result{margin-top:13px;padding:14px;border-radius:14px;background:#101113;border:1px solid #2d2e31;font-size:12px;line-height:1.5}.coach-training-result.good{border-color:rgba(30,200,110,.45)}.coach-training-result.retry{border-color:rgba(255,170,0,.45)}
@media(max-width:720px){.coach-training-hero{align-items:flex-start}.coach-training-progress-ring{min-width:82px;height:82px;border-width:6px}.coach-training-progress-ring strong{font-size:18px}.coach-training-modules{grid-template-columns:1fr}.coach-training-keypoints{grid-template-columns:1fr}.coach-training-hero h2{font-size:21px}}

/* V26 — Formación productos + MLM */
.coach-training-module-intro{margin-top:16px;padding:20px;border:1px solid rgba(255,214,0,.35);border-radius:20px;background:linear-gradient(135deg,rgba(255,214,0,.10),rgba(255,255,255,.025));position:relative}.coach-training-module-intro h2{font-size:25px;margin:5px 0 7px}.coach-training-module-intro p{font-size:13px;color:var(--text-muted);line-height:1.55;max-width:760px}.coach-training-module-summary{display:flex;gap:7px;align-items:baseline;margin-top:14px}.coach-training-module-summary strong{font-size:22px;color:#ffd600}.coach-training-module-summary span{font-size:11px;color:var(--text-muted)}
.coach-training-lesson-list{display:grid;gap:9px;margin-top:14px}.coach-training-lesson-row{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;text-align:left;background:#151618;border:1px solid #2a2b2f;border-radius:15px;padding:12px;color:inherit}.coach-training-lesson-row:hover{border-color:rgba(255,214,0,.5)}.coach-training-lesson-num{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#242528;font-weight:900;color:#ffd600}.coach-training-lesson-row strong{display:block;font-size:13px}.coach-training-lesson-row small{display:block;margin-top:3px;color:var(--text-muted);font-size:10px;line-height:1.35}.coach-training-lesson-state{font-size:10px;font-weight:900;color:#ffd600;white-space:nowrap}
.coach-product-training-note,.coach-mlm-practice{display:flex;flex-direction:column;gap:4px;margin:14px 0;padding:13px 14px;border-radius:14px;background:rgba(255,214,0,.08);border:1px solid rgba(255,214,0,.24)}.coach-product-training-note strong,.coach-mlm-practice strong{font-size:11px;color:#ffd600}.coach-product-training-note span,.coach-mlm-practice span{font-size:11px;color:var(--text-muted);line-height:1.45}
.coach-product-training-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.coach-product-training-card{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;background:#101113;border:1px solid #292a2e;border-radius:16px;padding:11px;min-height:160px}.coach-product-training-card img{width:90px;height:112px;object-fit:contain;border-radius:11px;background:#f6f6f6}.coach-product-training-card h3{font-size:13px;margin:1px 0 5px}.coach-product-training-card p{font-size:10.5px;color:var(--text-muted);line-height:1.4;margin:0 0 7px}.coach-product-training-card ul{margin:7px 0 0;padding-left:17px;color:#d6d6d8;font-size:10px;line-height:1.45}.coach-product-ideal,.coach-product-includes{font-size:10px;line-height:1.4;margin-top:6px;color:#dedee0}.coach-product-ideal b,.coach-product-includes b{color:#ffd600}
@media(max-width:720px){.coach-product-training-grid{grid-template-columns:1fr}.coach-product-training-card{grid-template-columns:76px minmax(0,1fr)}.coach-product-training-card img{width:76px;height:96px}.coach-training-lesson-row{grid-template-columns:34px minmax(0,1fr) auto;padding:10px}.coach-training-module-intro h2{font-size:21px}}

/* ===== V28 · Ruta recomendada + progreso Admin ===== */
.coach-training-next{margin:0 0 18px}
.coach-training-next-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:13px;align-items:center;padding:15px 16px;border-radius:17px;border:1px solid rgba(255,214,0,.38);background:linear-gradient(135deg,rgba(255,214,0,.10),rgba(255,255,255,.02));color:inherit;text-align:left;width:100%}
.coach-training-next-card.done{border-color:rgba(46,204,113,.42);background:linear-gradient(135deg,rgba(46,204,113,.10),rgba(255,255,255,.02))}
.coach-training-next-icon{width:44px;height:44px;border-radius:13px;background:#24230d;display:grid;place-items:center;font-size:21px}
.coach-training-next-card.done .coach-training-next-icon{background:rgba(46,204,113,.13)}
.coach-training-next-copy span{display:block;font-size:9px;letter-spacing:.11em;font-weight:900;color:#ffd600;margin-bottom:4px}.coach-training-next-card.done .coach-training-next-copy span{color:#4bd587}
.coach-training-next-copy strong{display:block;font-size:14px}.coach-training-next-copy small{display:block;color:var(--text-muted);font-size:10px;margin-top:3px;line-height:1.35}
.coach-training-next-action{font-size:11px;font-weight:900;color:#ffd600;white-space:nowrap}.coach-training-next-card.done .coach-training-next-action{color:#4bd587}
.coach-training-section-head p{margin:4px 0 0;color:var(--text-muted);font-size:10px;line-height:1.4}
.coach-training-team-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 13px}
.coach-training-team-stat{padding:11px;border-radius:13px;background:#101113;border:1px solid #292a2e}.coach-training-team-stat strong{display:block;font-size:18px;color:#ffd600}.coach-training-team-stat span{display:block;font-size:9px;color:var(--text-muted);margin-top:2px}
.coach-training-team-row{align-items:flex-start}.coach-training-team-main{min-width:0;flex:1}.coach-training-team-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.coach-training-team-status{font-size:8px;font-weight:900;padding:4px 7px;border-radius:999px;background:#25262a;color:#d8d8da}.coach-training-team-status.active{background:rgba(255,214,0,.13);color:#ffd600}.coach-training-team-status.stale{background:rgba(255,159,67,.13);color:#ffb04d}.coach-training-team-status.done{background:rgba(46,204,113,.13);color:#4bd587}
.coach-training-team-modules{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.coach-training-team-module{font-size:8px;font-weight:800;padding:4px 6px;border-radius:7px;background:#202125;color:#a9aaad}.coach-training-team-module.complete{color:#4bd587;background:rgba(46,204,113,.10)}
.coach-training-team-score{min-width:100px;text-align:right}.coach-training-team-score strong{display:block;font-size:15px;color:#ffd600}.coach-training-team-score small{display:block;font-size:9px;color:var(--text-muted);margin-top:3px}
@media(max-width:720px){.coach-training-next-card{grid-template-columns:40px minmax(0,1fr) auto;padding:13px}.coach-training-next-icon{width:40px;height:40px}.coach-training-next-action{font-size:10px}.coach-training-team-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.coach-training-team-row{display:block}.coach-training-team-score{text-align:left;margin-top:9px;min-width:0}.coach-training-team-score strong,.coach-training-team-score small{display:inline;margin-right:7px}}


/* ===== V29 · AUDIOLIBROS Y RECURSOS ===== */
.coach-audio-hero{margin:14px 0 16px;padding:22px;border:1px solid rgba(255,214,0,.38);border-radius:22px;background:radial-gradient(circle at 92% 12%,rgba(255,214,0,.16),transparent 29%),linear-gradient(135deg,#16170f,#121315 60%);display:flex;align-items:center;justify-content:space-between;gap:18px;overflow:hidden}.coach-audio-hero h2{font-size:26px;margin:5px 0 8px;line-height:1.08}.coach-audio-hero p{margin:0;max-width:680px;color:var(--text-muted);font-size:13px;line-height:1.55}.coach-audio-hero-icon{font-size:54px;filter:drop-shadow(0 8px 20px rgba(255,214,0,.18))}
.coach-audio-continue{margin:0 0 16px}.coach-audio-continue-card{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:13px;padding:15px 16px;border:1px solid #2d2e32;border-radius:17px;background:#151618;color:inherit;text-align:left}.coach-audio-continue-card.has-progress{border-color:rgba(255,214,0,.42);background:linear-gradient(135deg,rgba(255,214,0,.08),#151618)}.coach-audio-continue-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#24230d;font-size:22px}.coach-audio-continue-copy span{display:block;font-size:9px;font-weight:900;letter-spacing:.1em;color:#ffd600;margin-bottom:4px}.coach-audio-continue-copy strong{display:block;font-size:14px}.coach-audio-continue-copy small{display:block;margin-top:3px;color:var(--text-muted);font-size:10px}.coach-audio-continue-action{font-size:11px;color:#ffd600;font-weight:900;white-space:nowrap}
.coach-audio-collections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.coach-audio-collection-card{position:relative;text-align:left;color:inherit;border:1px solid #292a2e;background:#151618;border-radius:19px;padding:17px;min-height:176px;display:flex;flex-direction:column}.coach-audio-collection-card:hover{border-color:rgba(255,214,0,.48)}.coach-audio-collection-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.coach-audio-collection-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#24230d;font-size:23px}.coach-audio-collection-card h4{font-size:17px;margin:14px 0 5px}.coach-audio-collection-card p{font-size:11px;color:var(--text-muted);line-height:1.4;margin:0 0 15px}.coach-audio-collection-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;font-size:10px;font-weight:800}.coach-audio-collection-meta span:last-child{color:#ffd600}.coach-audio-progress{height:5px;border-radius:999px;background:#292a2e;overflow:hidden;margin-top:10px}.coach-audio-progress span{display:block;height:100%;background:#ffd600}.coach-audio-upload-state{font-size:8px;font-weight:900;border-radius:999px;padding:5px 7px;background:#242529;color:#a6a7aa}.coach-audio-upload-state.ready{background:rgba(46,204,113,.12);color:#4bd587}
.coach-audio-admin{margin:17px 0;padding:16px;border-radius:18px;background:#151618;border:1px solid #2b2c30}.coach-audio-admin-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.coach-audio-admin-head h3{font-size:17px;margin:4px 0}.coach-audio-admin-head p{font-size:10px;color:var(--text-muted);margin:0;max-width:620px}.coach-audio-upload-btn{border:0;background:#ffd600;color:#0b0b0b;border-radius:12px;padding:11px 13px;font-size:11px;font-weight:900;white-space:nowrap}.coach-audio-admin-actions{display:flex;gap:10px;align-items:center;margin-top:12px;font-size:10px;color:var(--text-muted)}.coach-audio-link-btn{border:1px solid #34353a;background:#202125;color:#f2f2f3;border-radius:10px;padding:8px 10px;font-weight:800;font-size:10px}.coach-audio-upload-progress{height:6px;background:#292a2e;border-radius:999px;overflow:hidden;margin-top:11px}.coach-audio-upload-progress span{display:block;height:100%;width:0;background:#ffd600;transition:width .2s ease}
.coach-audio-collection-hero{margin:14px 0 16px;padding:19px;border-radius:20px;border:1px solid rgba(255,214,0,.34);background:linear-gradient(135deg,rgba(255,214,0,.09),#151618);display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:15px;align-items:center}.coach-audio-collection-hero-icon{width:58px;height:58px;border-radius:17px;background:#24230d;display:grid;place-items:center;font-size:30px}.coach-audio-collection-hero h2{font-size:23px;margin:0 0 5px}.coach-audio-collection-hero p{font-size:11px;color:var(--text-muted);margin:0}.coach-audio-collection-hero button{border:0;background:#ffd600;color:#080808;border-radius:13px;padding:11px 14px;font-weight:900;font-size:11px}.coach-audio-section-title{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#ffd600;font-weight:900;margin:19px 3px 8px}.coach-audio-track-list{display:grid;gap:7px}.coach-audio-track{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #292a2e;border-radius:14px;background:#151618;padding:10px 11px;color:inherit;text-align:left}.coach-audio-track.playing{border-color:rgba(255,214,0,.55);background:linear-gradient(90deg,rgba(255,214,0,.08),#151618)}.coach-audio-track.done .coach-audio-track-num{color:#4bd587}.coach-audio-track-num{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#242529;color:#ffd600;font-size:10px;font-weight:900}.coach-audio-track-copy strong{display:block;font-size:12px}.coach-audio-track-copy small{display:block;margin-top:3px;color:var(--text-muted);font-size:9px}.coach-audio-track-side{display:flex;align-items:center;gap:8px}.coach-audio-track-duration{font-size:9px;color:var(--text-muted)}.coach-audio-track-play{font-size:14px;color:#ffd600}.coach-audio-track-resume{height:3px;background:#2b2c30;border-radius:999px;overflow:hidden;margin-top:5px;max-width:220px}.coach-audio-track-resume span{display:block;height:100%;background:#ffd600}
.coach-audio-mini-player{position:fixed;left:50%;transform:translateX(-50%);bottom:82px;width:min(900px,calc(100% - 28px));z-index:1200;border:1px solid rgba(255,214,0,.45);border-radius:18px;background:rgba(18,19,21,.96);backdrop-filter:blur(16px);box-shadow:0 12px 35px rgba(0,0,0,.38);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px 13px}.coach-audio-mini-info{min-width:0;border:0;background:transparent;color:inherit;display:flex;align-items:center;gap:10px;text-align:left;padding:0}.coach-audio-mini-art{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;background:#24230d;font-size:19px;flex:0 0 auto}.coach-audio-mini-copy{min-width:0}.coach-audio-mini-copy strong,.coach-audio-mini-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coach-audio-mini-copy strong{font-size:11px}.coach-audio-mini-copy small{font-size:8px;color:var(--text-muted);margin-top:3px}.coach-audio-mini-controls{display:flex;align-items:center;gap:6px}.coach-audio-mini-controls button{width:32px;height:32px;border-radius:10px;border:1px solid #33343a;background:#232428;color:#f5f5f5;font-weight:900}.coach-audio-mini-controls .coach-audio-play-main{background:#ffd600;color:#080808;border-color:#ffd600}.coach-audio-mini-controls select{height:31px;border-radius:9px;border:1px solid #33343a;background:#232428;color:#f5f5f5;font-size:9px;padding:0 5px}.coach-audio-mini-progress{position:absolute;left:13px;right:13px;bottom:6px;height:3px;border-radius:999px;background:#2a2b2f;overflow:hidden}.coach-audio-mini-progress span{display:block;width:0;height:100%;background:#ffd600}
body.coach-audio-playing #bottom-nav{box-shadow:0 -8px 25px rgba(0,0,0,.18)}
@media(max-width:720px){.coach-audio-hero{padding:17px}.coach-audio-hero h2{font-size:21px}.coach-audio-hero-icon{font-size:40px}.coach-audio-collections{grid-template-columns:1fr}.coach-audio-admin-head{display:block}.coach-audio-upload-btn{margin-top:12px;width:100%}.coach-audio-admin-actions{align-items:flex-start;flex-direction:column}.coach-audio-collection-hero{grid-template-columns:48px minmax(0,1fr);padding:15px}.coach-audio-collection-hero-icon{width:48px;height:48px}.coach-audio-collection-hero h2{font-size:19px}.coach-audio-collection-hero button{grid-column:1/-1;width:100%}.coach-audio-mini-player{bottom:80px;width:calc(100% - 18px);grid-template-columns:minmax(0,1fr) auto;padding:9px 10px 12px}.coach-audio-mini-controls button:nth-child(1),.coach-audio-mini-controls button:nth-child(3){display:none}.coach-audio-mini-controls select{display:none}.coach-audio-mini-art{width:36px;height:36px}.coach-audio-continue-card{grid-template-columns:42px minmax(0,1fr) auto;padding:13px}.coach-audio-continue-icon{width:42px;height:42px}.coach-audio-track{grid-template-columns:34px minmax(0,1fr) auto}.coach-audio-track-side{gap:5px}}
body.coach-audio-playing .page.active{padding-bottom:155px}

/* V30 · Gestor de biblioteca y temas */
.coach-audio-manager{margin-top:16px;border-top:1px solid #2d2e32;padding-top:12px}.coach-audio-manager summary{cursor:pointer;color:#ffd600;font-weight:900;font-size:12px;list-style:none}.coach-audio-manager summary::-webkit-details-marker{display:none}.coach-audio-manager-intro{font-size:10px!important;line-height:1.5;margin:8px 0 12px!important}.coach-audio-manager-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.coach-audio-manager-box{border:1px solid #2d2e32;background:#111214;border-radius:14px;padding:12px;display:grid;gap:8px}.coach-audio-manager-box h4{margin:0 0 2px;font-size:12px}.coach-audio-manager-wide{grid-column:1/-1}.coach-audio-manager-box input,.coach-audio-manager-box select{width:100%;box-sizing:border-box;background:#1c1d20;border:1px solid #34353a;color:#f5f5f5;border-radius:10px;padding:9px 10px;font-size:10px}.coach-audio-manager-box button{border:0;background:#ffd600;color:#080808;border-radius:10px;padding:9px 11px;font-size:10px;font-weight:900}.coach-audio-manager-box button.secondary{background:#242529;color:#eee;border:1px solid #393a40}.coach-audio-manager-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.coach-audio-manager-actions{display:flex;gap:8px;flex-wrap:wrap}.coach-audio-manager-label{display:block;color:#aeb0b5;font-size:9px;margin-bottom:6px}.coach-audio-manager-topics{display:flex;gap:6px;flex-wrap:wrap}.coach-audio-manager-topics label{font-size:9px;padding:6px 8px;border:1px solid #33343a;border-radius:999px;background:#1d1e21}.coach-audio-manager-topics input{width:auto;vertical-align:middle}.coach-audio-manager-box small{color:var(--text-muted);font-size:9px}.coach-audio-topics{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 12px}.coach-audio-topic-chip{border:1px solid #303137;background:#17181b;color:#f4f4f4;border-radius:999px;padding:8px 11px;font-size:10px;font-weight:800}.coach-audio-topic-chip small{display:inline-grid;place-items:center;min-width:17px;height:17px;border-radius:999px;background:#2a2b2f;color:#ffd600;margin-left:4px}.coach-audio-topic-results{margin-bottom:14px}.coach-audio-topic-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid rgba(255,214,0,.25);border-radius:12px 12px 0 0;background:#17181b}.coach-audio-topic-head button{border:0;background:transparent;color:#ffd600;font-size:10px}.coach-audio-topic-list{display:grid;gap:6px;padding:8px;border:1px solid #2d2e32;border-top:0;border-radius:0 0 12px 12px}.coach-audio-topic-list button{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:center;text-align:left;border:0;background:#111214;color:inherit;padding:8px;border-radius:10px}.coach-audio-topic-list strong,.coach-audio-topic-list small{display:block}.coach-audio-topic-list strong{font-size:10px}.coach-audio-topic-list small{font-size:8px;color:var(--text-muted);margin-top:2px}.coach-audio-topic-empty{font-size:10px;color:var(--text-muted);padding:10px;border:1px dashed #34353a;border-radius:10px}
@media(max-width:720px){.coach-audio-manager-grid{grid-template-columns:1fr}.coach-audio-manager-wide{grid-column:auto}.coach-audio-manager-row{grid-template-columns:1fr}.coach-audio-manager-actions button{flex:1}}
