/* =========================================================
   TITANES GLOBAL — Sistema Educativo Premium
   Paleta: Azul marino (#0B1F3A) · Dorado del logo (#C9A227)
           Rojo de acento (#C8102E, uso mínimo) · Gris perla (#F4F6F8)
   Tipografía: Montserrat
   Tema claro por defecto · Tema oscuro con [data-theme="dark"]
   ========================================================= */

:root{
  /* Marca */
  --navy:#0B1F3A;
  --navy-2:#13305A;
  --navy-3:#1B3F73;
  --gold:#C9A227;
  --gold-deep:#9A7414;
  --gold-light:#F3D57A;
  --gold-grad:linear-gradient(135deg,#F3D57A 0%,#D9B23F 40%,#C9A227 60%,#9A7414 100%);
  --red:#C8102E;

  /* Tema claro (por defecto) */
  --bg:#FFFFFF;
  --surface:#F4F6F8;
  --card:#FFFFFF;
  --card-2:#F9FAFB;
  --text:#0B1F3A;
  --text-2:#344054;
  --muted:#667085;
  --line:#E4E7EC;
  --line-2:#D0D5DD;
  --accent-text:#8A6A12;          /* dorado legible sobre blanco */
  --accent-soft:rgba(201,162,39,.12);
  --btn-bg:var(--navy);
  --btn-bg-hover:var(--navy-2);
  --btn-text:#FFFFFF;
  --header-bg:rgba(255,255,255,.82);
  --input-bg:#FFFFFF;
  --hero-glow:radial-gradient(700px 380px at 85% 10%, rgba(201,162,39,.16), transparent 65%),
              radial-gradient(600px 400px at 0% 0%, rgba(11,31,58,.06), transparent 60%);
  --shadow-sm:0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.07);
  --shadow:0 14px 34px -10px rgba(11,31,58,.16);
  --shadow-lg:0 30px 70px -18px rgba(11,31,58,.28);

  --radius:14px;
  --radius-lg:22px;
  --container:1200px;
  --header-h:72px;
  color-scheme:light;
}

[data-theme="dark"]{
  --bg:#060F1E;
  --surface:#0A1830;
  --card:#0E2140;
  --card-2:#11284D;
  --text:#F4F6F8;
  --text-2:#D0D7E2;
  --muted:#97A3B8;
  --line:rgba(255,255,255,.09);
  --line-2:rgba(255,255,255,.16);
  --accent-text:#E2BC52;
  --accent-soft:rgba(226,188,82,.12);
  --btn-bg:var(--gold-grad);
  --btn-bg-hover:linear-gradient(135deg,#F7DE90 0%,#E0BC4C 45%,#A97F17 100%);
  --btn-text:#0B1F3A;
  --header-bg:rgba(6,15,30,.78);
  --input-bg:#0A1830;
  --hero-glow:radial-gradient(700px 380px at 85% 10%, rgba(201,162,39,.14), transparent 65%),
              radial-gradient(700px 500px at 0% 0%, rgba(27,63,115,.45), transparent 60%);
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);
  --shadow:0 16px 40px -12px rgba(0,0,0,.55);
  --shadow-lg:0 30px 80px -20px rgba(0,0,0,.7);
  color-scheme:dark;
}

/* ---------- Base ---------- */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 12px); }
html,body{ margin:0; padding:0; }
body{
  font-family:"Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  transition:background-color .3s ease, color .3s ease;
  overflow-x:hidden;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
h1,h2,h3{ margin:0; letter-spacing:-.02em; color:var(--text); }
p{ margin:0; }
.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
.muted{ color:var(--muted); }
strong{ font-weight:700; }

.ico{
  width:18px; height:18px; flex:none;
  fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
#ctaTop .ico{ fill:currentColor; stroke:none; }

.goldText{
  background:var(--gold-grad);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent-text);
  margin-bottom:14px;
}
.eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:var(--red); box-shadow:0 0 0 4px rgba(200,16,46,.12); }
.eyebrow--light{ color:var(--gold-light); }

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:12px 20px; border-radius:12px;
  border:1px solid transparent;
  font-family:inherit; font-weight:700; font-size:14px; line-height:1.2;
  cursor:pointer; white-space:nowrap;
  transition:transform .12s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease, opacity .2s;
}
.btn:active{ transform:translateY(1px); }
.btn:disabled{ opacity:.45; cursor:not-allowed; transform:none; }
.btn--sm{ padding:9px 14px; font-size:13px; border-radius:10px; }
.btn--lg{ padding:15px 24px; font-size:15px; }
.btn--full{ width:100%; }

.btn--primary{ background:var(--btn-bg); color:var(--btn-text); box-shadow:var(--shadow-sm); }
.btn--primary:hover:not(:disabled){ background:var(--btn-bg-hover); box-shadow:var(--shadow); }

.btn--ghost{ background:var(--card); color:var(--text); border-color:var(--line-2); }
.btn--ghost:hover:not(:disabled){ border-color:var(--gold); color:var(--accent-text); }

.btn--gold{ background:var(--gold-grad); color:var(--navy); }
.btn--gold:hover{ filter:brightness(1.06); box-shadow:0 10px 30px -8px rgba(201,162,39,.6); }
.btn--outlineLight{ background:transparent; color:#fff; border-color:rgba(255,255,255,.35); }
.btn--outlineLight:hover{ border-color:var(--gold-light); color:var(--gold-light); }

.btn--done{ background:rgba(22,163,74,.1); color:#15803D; border-color:rgba(22,163,74,.35); }
[data-theme="dark"] .btn--done{ color:#4ADE80; background:rgba(74,222,128,.1); border-color:rgba(74,222,128,.3); }

.iconBtn{
  width:42px; height:42px; border-radius:12px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--card); color:var(--text);
  border:1px solid var(--line-2); cursor:pointer;
  transition:border-color .2s, color .2s, background .2s;
}
.iconBtn:hover{ border-color:var(--gold); color:var(--accent-text); }

/* Icono sol/luna según tema */
.ico--sun{ display:none; }
[data-theme="dark"] .ico--sun{ display:block; }
[data-theme="dark"] .ico--moon{ display:none; }

/* ---------- Top bar ---------- */
.topbar{
  position:sticky; top:0; z-index:50;
  background:var(--header-bg);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .2s, box-shadow .2s, background .3s;
}
.topbar.is-scrolled{ border-bottom-color:var(--line); box-shadow:var(--shadow-sm); }
.topbar__inner{ height:var(--header-h); display:flex; align-items:center; justify-content:space-between; gap:16px; }

.brand{ display:flex; align-items:center; gap:14px; min-width:0; }
.brand__logo{ height:40px; width:auto; }
.brand__divider{ width:1px; height:30px; background:var(--line-2); }
.brand__tag{ font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); line-height:1.3; }

.nav{ display:flex; gap:28px; align-items:center; }
.nav a{ font-size:14px; font-weight:600; color:var(--text-2); position:relative; padding:6px 0; }
.nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px; border-radius:2px;
  background:var(--gold-grad); transform:scaleX(0); transition:transform .2s ease;
}
.nav a:hover{ color:var(--text); }
.nav a:hover::after{ transform:scaleX(1); }

.topbar__actions{ display:flex; align-items:center; gap:10px; }
.hamburger{ display:none; }

.mobileNav{ display:none; padding:8px 24px 20px; border-top:1px solid var(--line); background:var(--bg); }
.mobileNav a:not(.btn){ display:block; padding:13px 0; font-weight:600; color:var(--text-2); border-bottom:1px solid var(--line); }
.mobileNav .btn{ margin-top:16px; }

/* ---------- Hero ---------- */
.hero{ position:relative; padding:72px 0 88px; background:var(--hero-glow); overflow:hidden; }
.hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 70% 60% at 50% 30%, #000 30%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 30%, #000 30%, transparent 75%);
  opacity:.5;
}
.hero__grid{ position:relative; display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center; }
h1{ font-size:clamp(34px, 5vw, 56px); line-height:1.06; font-weight:800; margin-bottom:20px; }
.lead{ font-size:18px; color:var(--text-2); max-width:56ch; }
.lead strong{ color:var(--text); }
.lead--sm{ font-size:16px; }
.hero__actions{ display:flex; gap:12px; flex-wrap:wrap; margin:32px 0 40px; }

.hero__stats{ display:flex; gap:0; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:24px; }
.stat{ padding-right:32px; margin-right:32px; border-right:1px solid var(--line); }
.stat:last-child{ border-right:none; margin-right:0; padding-right:0; }
.stat__num{ font-size:32px; font-weight:800; line-height:1; color:var(--text); }
.stat__label{ color:var(--muted); font-size:13px; font-weight:500; margin-top:6px; }

/* Vista previa del aula */
.hero__visual{ position:relative; }
.previewCard{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg); overflow:hidden;
  transform:perspective(1400px) rotateY(-6deg) rotateX(2deg);
  transition:transform .5s ease;
}
.hero__visual:hover .previewCard{ transform:none; }
.previewCard__video{
  position:relative; aspect-ratio:16/9;
  background:
    radial-gradient(400px 200px at 80% 0%, rgba(201,162,39,.35), transparent 60%),
    linear-gradient(135deg, var(--navy) 0%, var(--navy-3) 100%);
  display:flex; align-items:center; justify-content:center;
}
.previewCard__play{
  width:68px; height:68px; border-radius:50%;
  background:var(--gold-grad); display:flex; align-items:center; justify-content:center;
  box-shadow:0 0 0 10px rgba(201,162,39,.18);
}
.previewCard__play svg{ width:26px; height:26px; fill:var(--navy); margin-left:4px; }
.previewCard__chip{
  position:absolute; left:16px; top:16px;
  font-size:11px; font-weight:700; letter-spacing:.06em; color:#fff;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.2);
  padding:6px 10px; border-radius:999px; backdrop-filter:blur(6px);
}
.previewCard__body{ padding:20px; }
.previewCard__title{ font-weight:800; font-size:16px; margin-bottom:14px; }
.previewCard__meta{ display:flex; justify-content:space-between; font-size:12px; color:var(--muted); font-weight:600; margin:8px 0 16px; }
.miniProgress{ height:6px; border-radius:999px; background:var(--surface); overflow:hidden; }
.miniProgress span{ display:block; height:100%; background:var(--gold-grad); border-radius:999px; }
.previewList{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.previewList li{ display:flex; align-items:center; gap:10px; font-size:13px; font-weight:600; color:var(--text-2); padding:9px 10px; border-radius:10px; }
.previewList li i{ width:18px; height:18px; border-radius:50%; border:2px solid var(--line-2); flex:none; }
.previewList li.is-done i{ background:var(--navy); border-color:var(--navy); box-shadow:inset 0 0 0 3px var(--card); }
[data-theme="dark"] .previewList li.is-done i{ background:var(--gold); border-color:var(--gold); }
.previewList li.is-active{ background:var(--accent-soft); color:var(--text); }
.previewList li.is-active i{ border-color:var(--gold); }

.floatBadge{
  position:absolute; left:-22px; bottom:-22px;
  display:flex; align-items:center; gap:10px;
  background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:12px 16px; font-size:13px; font-weight:700; box-shadow:var(--shadow);
}
.floatBadge .ico{ width:22px; height:22px; padding:4px; border-radius:50%; background:var(--gold-grad); color:var(--navy); stroke-width:3; }

/* ---------- Secciones ---------- */
.section{ padding:96px 0; }
.section--surface{ background:var(--surface); }
.section__head{ max-width:680px; margin-bottom:44px; }
.section__head--center{ margin-left:auto; margin-right:auto; text-align:center; }
.section__head h2, .access h2, .mentor h2, .ctaBox h2{ font-size:clamp(28px, 3.4vw, 40px); font-weight:800; line-height:1.15; margin-bottom:14px; }
.section__head p{ font-size:16px; }
.arrow{ color:var(--accent-text); font-weight:600; }

/* Método */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:16px; }
.stepCard{
  position:relative; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:26px 24px; transition:transform .2s, box-shadow .2s, border-color .2s;
}
.stepCard:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--line-2); }
.stepCard__num{ font-size:13px; font-weight:800; letter-spacing:.1em; color:var(--accent-text); margin-bottom:18px; }
.stepCard__num::after{ content:""; display:block; width:28px; height:3px; border-radius:3px; background:var(--gold-grad); margin-top:10px; }
.stepCard h3{ font-size:17px; font-weight:700; margin-bottom:8px; }
.stepCard p{ color:var(--muted); font-size:14px; }

.grid3{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.feature{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px 24px;
}
.feature__icon{
  width:46px; height:46px; border-radius:12px; margin-bottom:18px;
  display:flex; align-items:center; justify-content:center;
  background:var(--navy); color:var(--gold-light);
}
.feature__icon .ico{ width:22px; height:22px; }
[data-theme="dark"] .feature__icon{ background:var(--accent-soft); border:1px solid rgba(226,188,82,.25); }
.feature h3{ font-size:17px; font-weight:700; margin-bottom:8px; }
.feature p{ color:var(--muted); font-size:14px; }

/* Mentor */
.mentor{ display:grid; grid-template-columns:.7fr 1.3fr; gap:56px; align-items:center; }
.mentor__badge{
  aspect-ratio:1; border-radius:28px; position:relative; overflow:hidden;
  background:
    radial-gradient(300px 200px at 80% 10%, rgba(201,162,39,.4), transparent 60%),
    linear-gradient(145deg, var(--navy) 0%, var(--navy-3) 100%);
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lg);
}
.mentor__badge::after{ content:""; position:absolute; inset:18px; border:1px solid rgba(243,213,122,.35); border-radius:20px; }
.mentor__mono{ font-size:clamp(64px, 9vw, 110px); font-weight:800; letter-spacing:-.04em; background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.mentor__facts{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:28px 0 22px; }
.mentor__facts div{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:18px; }
.mentor__facts strong{ display:block; font-size:26px; font-weight:800; line-height:1.1; }
.mentor__facts span{ display:block; font-size:13px; color:var(--muted); margin-top:6px; font-weight:500; }
.handle{ font-weight:700; color:var(--accent-text); }

/* ---------- Acceso ---------- */
.access{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.access .muted{ font-size:16px; }
.statusCard{
  display:flex; align-items:center; gap:14px; margin-top:28px;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:16px;
}
.statusCard__avatar{
  width:46px; height:46px; border-radius:50%; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:var(--navy); color:var(--gold-light); font-weight:800; font-size:18px; text-transform:uppercase;
}
.statusCard__info{ flex:1; min-width:0; }
.statusCard__label{ font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.statusCard__text{ font-weight:600; font-size:14px; overflow-wrap:anywhere; }
.statusActions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }

.tag{
  display:inline-flex; align-items:center; gap:6px; flex:none;
  padding:6px 11px; border-radius:999px; font-size:12px; font-weight:700;
  background:var(--card); border:1px solid var(--line-2); color:var(--muted);
}
.tag::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.tag--ok{ color:#15803D; background:rgba(22,163,74,.08); border-color:rgba(22,163,74,.3); }
.tag--wait{ color:#B54708; background:rgba(247,144,9,.1); border-color:rgba(247,144,9,.35); }
.tag--gold{ color:var(--accent-text); background:var(--accent-soft); border-color:rgba(201,162,39,.35); }
[data-theme="dark"] .tag--ok{ color:#4ADE80; }
[data-theme="dark"] .tag--wait{ color:#FDB022; }

.authCard{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow); padding:10px 28px 28px;
}
.tabs{ display:grid; grid-template-columns:1fr 1fr; gap:6px; background:var(--surface); border-radius:12px; padding:5px; margin:18px 0 24px; }
.tabs__btn{
  font-family:inherit; font-weight:700; font-size:14px; padding:11px; border:0; border-radius:9px;
  background:transparent; color:var(--muted); cursor:pointer; transition:all .2s;
}
.tabs__btn.is-active{ background:var(--card); color:var(--text); box-shadow:var(--shadow-sm); }
.authPanel{ display:grid; gap:8px; }
.authPanel .btn{ margin-top:10px; }

.label{ display:block; font-size:13px; font-weight:600; color:var(--text-2); margin-top:6px; }
.input{
  width:100%; padding:13px 14px; border-radius:11px;
  border:1px solid var(--line-2); background:var(--input-bg); color:var(--text);
  font-family:inherit; font-size:15px; outline:none;
  transition:border-color .2s, box-shadow .2s;
}
.input::placeholder{ color:var(--muted); opacity:.75; }
.input:focus{ border-color:var(--gold); box-shadow:0 0 0 4px rgba(201,162,39,.16); }
.formMsg{ min-height:18px; font-size:13px; font-weight:600; color:var(--muted); }
.formMsg.is-error{ color:var(--red); }
[data-theme="dark"] .formMsg.is-error{ color:#FF6B81; }
.formMsg.is-ok{ color:#15803D; }
[data-theme="dark"] .formMsg.is-ok{ color:#4ADE80; }

/* Admin */
.adminPanel{
  margin-top:40px; background:var(--card); border:1px solid var(--line); border-top:3px solid var(--gold);
  border-radius:var(--radius-lg); padding:26px; box-shadow:var(--shadow-sm);
}
.adminPanel__head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.adminPanel__head .eyebrow{ margin-bottom:6px; }
.adminPanel__head h3{ font-size:20px; font-weight:800; margin-bottom:4px; }
.pendingList{ display:grid; gap:10px; margin-bottom:10px; }
.pendingRow{
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:14px 16px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface);
}
.pendingRow__email{ font-weight:700; overflow-wrap:anywhere; }
.pendingRow__uid{ font-size:12px; color:var(--muted); overflow-wrap:anywhere; }
.emptyNote{ padding:18px; text-align:center; color:var(--muted); border:1px dashed var(--line-2); border-radius:var(--radius); }

/* ---------- Aula virtual ---------- */
.lockedBox{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px; box-shadow:var(--shadow-sm);
}
.lockedBox > div:nth-child(2){ flex:1; min-width:220px; }
.lockedBox h3{ font-size:18px; font-weight:800; margin-bottom:4px; }
.lockedBox__icon{ width:54px; height:54px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:var(--navy); color:var(--gold-light); flex:none; }
.lockedBox__icon .ico{ width:24px; height:24px; }

.courseGrid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:16px; margin-bottom:24px; }
.courseCard{
  text-align:left; font-family:inherit; color:inherit; cursor:pointer; padding:0;
  display:flex; flex-direction:column; overflow:hidden;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.courseCard:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.courseCard.is-active{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,162,39,.18), var(--shadow); }
.courseCard__cover{
  position:relative; padding:22px 22px 20px; min-height:116px;
  display:flex; flex-direction:column; justify-content:space-between; gap:18px;
  background:
    radial-gradient(260px 140px at 100% 0%, rgba(201,162,39,.38), transparent 65%),
    linear-gradient(135deg, var(--navy) 0%, var(--navy-3) 100%);
  color:#fff;
}
.courseCard__top{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
.courseCard__eyebrow{ font-size:11px; font-weight:800; letter-spacing:.16em; color:var(--gold-light); }
.courseCard__count{ font-size:12px; font-weight:700; padding:5px 10px; border-radius:999px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); }
.courseCard__name{ font-size:19px; font-weight:800; line-height:1.25; color:#fff; letter-spacing:-.01em; }
.courseCard__body{ padding:18px 22px 20px; display:grid; gap:12px; flex:1; align-content:start; }
.courseCard__desc{ font-size:14px; color:var(--muted); }
.courseCard__progress{ display:flex; align-items:center; gap:12px; font-size:12px; font-weight:700; color:var(--text-2); margin-top:auto; }
.courseCard__progress .miniProgress{ flex:1; }
.courseCard__cta{ font-size:13px; font-weight:700; color:var(--accent-text); display:flex; align-items:center; gap:6px; }

.classBar{
  display:flex; align-items:center; gap:24px; flex-wrap:wrap;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:18px 22px; margin-bottom:16px;
}
.classBar__info{ flex:1 1 260px; min-width:0; }
.classBar__title{ font-size:18px; font-weight:800; }
.classBar__info .muted{ font-size:13px; font-weight:500; }
.classBar__progress{ flex:1 1 220px; display:flex; align-items:center; gap:12px; }
.classBar__pct{ font-weight:800; font-size:15px; min-width:44px; text-align:right; }
.progressBar{ flex:1; height:10px; border-radius:999px; background:var(--surface); border:1px solid var(--line); overflow:hidden; }
.progressBar__fill{ height:100%; background:var(--gold-grad); border-radius:999px; width:0; transition:width .4s ease; }

.player{ display:grid; grid-template-columns:minmax(0, 1fr) 360px; gap:16px; align-items:start; }
.player__main{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm);
}
.videoFrame{ position:relative; aspect-ratio:16/9; background:#000; }
.videoFrame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.videoFrame--empty{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:#fff; text-align:center; padding:20px;
  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-3) 100%);
}
.videoFrame--empty strong{ font-size:17px; }
.videoFrame--empty span{ color:rgba(255,255,255,.7); font-size:14px; }

.lessonTabs{ display:flex; gap:8px; flex-wrap:wrap; padding:16px 24px 0; }
.lessonTab{
  font-family:inherit; font-size:13px; font-weight:700; cursor:pointer;
  padding:8px 14px; border-radius:999px; border:1px solid var(--line-2); background:var(--card); color:var(--text-2);
}
.lessonTab.is-active{ background:var(--navy); color:#fff; border-color:var(--navy); }
[data-theme="dark"] .lessonTab.is-active{ background:var(--gold); color:var(--navy); border-color:var(--gold); }

.player__info{ padding:22px 24px 24px; }
.player__eyebrow{ font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-text); margin-bottom:8px; }
.player__title{ font-size:clamp(20px, 2.4vw, 26px); font-weight:800; line-height:1.2; margin-bottom:8px; }
.player__summary{ color:var(--muted); font-size:15px; }
.player__actions{
  display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;
  margin-top:22px; padding-top:20px; border-top:1px solid var(--line);
}
.player__nav{ display:flex; gap:10px; }

.player__side{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden;
  position:sticky; top:calc(var(--header-h) + 16px);
  display:flex; flex-direction:column; max-height:calc(100vh - var(--header-h) - 32px);
}
.side__head{ padding:18px 18px 14px; border-bottom:1px solid var(--line); }
.side__title{ font-weight:800; font-size:15px; margin-bottom:12px; }
.searchBox{ position:relative; }
.searchBox .ico{ position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--muted); width:16px; height:16px; }
.input--search{ padding:10px 12px 10px 36px; font-size:14px; }

.moduleList{ list-style:none; margin:0; padding:8px; overflow-y:auto; display:grid; gap:2px; }
.moduleItem{
  width:100%; display:flex; align-items:center; gap:12px; text-align:left;
  padding:11px 12px; border-radius:12px; border:1px solid transparent;
  background:transparent; color:inherit; font-family:inherit; cursor:pointer;
  transition:background .15s, border-color .15s;
}
.moduleItem:hover{ background:var(--surface); }
.moduleItem.is-active{ background:var(--accent-soft); border-color:rgba(201,162,39,.4); }
.moduleItem__num{
  width:32px; height:32px; border-radius:10px; flex:none;
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:800; color:var(--text-2);
  background:var(--surface); border:1px solid var(--line);
}
.moduleItem.is-active .moduleItem__num{ background:var(--navy); color:var(--gold-light); border-color:var(--navy); }
.moduleItem.is-done .moduleItem__num{ background:#16A34A; color:#fff; border-color:#16A34A; }
.moduleItem.is-done .moduleItem__num .ico{ width:16px; height:16px; stroke-width:3; }
.moduleItem__text{ min-width:0; flex:1; }
.moduleItem__title{ display:block; font-size:14px; font-weight:600; line-height:1.35; color:var(--text); }
.moduleItem__meta{ display:block; font-size:12px; color:var(--muted); margin-top:2px; }
.moduleItem.is-done .moduleItem__meta{ color:#15803D; font-weight:600; }
[data-theme="dark"] .moduleItem.is-done .moduleItem__meta{ color:#4ADE80; }
.moduleList .emptyNote{ margin:8px; }

/* ---------- Testimonios ---------- */
.quote{
  margin:0; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px 26px;
  display:flex; flex-direction:column; gap:14px;
}
.quote__mark{ font-size:56px; line-height:.6; font-weight:800; height:28px; background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent; font-family:Georgia, serif; }
.quote blockquote{ margin:0; font-size:16px; font-weight:500; line-height:1.6; color:var(--text); flex:1; }
.quote figcaption{ font-size:13px; font-weight:700; color:var(--muted); }

/* ---------- CTA ---------- */
.section--cta{ padding-top:24px; }
.ctaBox{
  position:relative; overflow:hidden;
  display:grid; grid-template-columns:1.3fr .7fr; gap:40px; align-items:center;
  padding:52px; border-radius:28px; color:#fff;
  background:
    radial-gradient(500px 260px at 100% 0%, rgba(201,162,39,.35), transparent 65%),
    linear-gradient(135deg, var(--navy) 0%, var(--navy-3) 100%);
  box-shadow:var(--shadow-lg);
}
.ctaBox h2{ color:#fff; }
.ctaBox p{ color:rgba(255,255,255,.78); font-size:16px; }
.ctaActions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
.contactInfo{ background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:20px; padding:8px 20px; }
.contactInfo__row{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.12); font-size:14px; }
.contactInfo__row:last-child{ border-bottom:none; }
.contactInfo__row span{ color:rgba(255,255,255,.65); }
.contactInfo__row strong{ color:#fff; }

/* ---------- Footer ---------- */
.footer{ border-top:1px solid var(--line); padding:26px 0; font-size:13px; }
.footer__inner{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.footer__links{ display:flex; gap:20px; }
.footer__links a{ color:var(--muted); font-weight:600; }
.footer__links a:hover{ color:var(--accent-text); }

/* ---------- Responsive ---------- */
@media (max-width: 1080px){
  .nav{ gap:20px; }
  .player{ grid-template-columns:1fr; }
  .player__side{ position:static; max-height:none; }
  .moduleList{ max-height:460px; }
}
@media (max-width: 960px){
  .nav, .hideMobile{ display:none; }
  .hamburger{ display:inline-flex; }
  .mobileNav.open{ display:block; }
  .hero{ padding:48px 0 72px; }
  .hero__grid, .access, .mentor{ grid-template-columns:1fr; gap:40px; }
  .previewCard{ transform:none; }
  .floatBadge{ left:12px; bottom:-18px; }
  .steps{ grid-template-columns:repeat(2,1fr); }
  .grid3{ grid-template-columns:1fr; }
  .mentor__badge{ max-width:260px; }
  .ctaBox{ grid-template-columns:1fr; padding:36px 28px; }
  .section{ padding:72px 0; }
}
@media (max-width: 560px){
  .container{ padding:0 16px; }
  .mobileNav{ padding:8px 16px 20px; }
  .brand__divider, .brand__tag{ display:none; }
  .brand__logo{ height:34px; }
  .hero__stats{ display:grid; grid-template-columns:repeat(3,1fr); }
  .stat{ padding-right:12px; margin-right:12px; }
  .stat__num{ font-size:24px; }
  .stat__label{ font-size:12px; }
  .hero__actions .btn{ width:100%; }
  .steps{ grid-template-columns:1fr; }
  .mentor__facts{ grid-template-columns:1fr; }
  .authCard{ padding:6px 18px 22px; }
  .courseGrid{ grid-template-columns:1fr; }
  .classBar{ padding:16px; gap:14px; }
  .player__info{ padding:18px; }
  .lessonTabs{ padding:14px 18px 0; }
  .player__actions{ flex-direction:column-reverse; align-items:stretch; }
  .player__nav{ display:grid; grid-template-columns:1fr 1fr; }
  .player__actions > .btn{ width:100%; }
  .ctaBox{ padding:30px 20px; }
  .ctaActions .btn{ width:100%; }
  .footer__inner{ flex-direction:column; align-items:flex-start; }
}

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; scroll-behavior:auto !important; }
  .previewCard{ transform:none; }
}

/* ---------- Registro / validación de cuenta ---------- */
.authPanel[hidden], .modal[hidden]{ display:none !important; }
.footNote{
  margin-top:6px; padding:12px 14px; border-radius:11px;
  background:var(--accent-soft); border:1px solid rgba(201,162,39,.3);
  font-size:13px; line-height:1.5; color:var(--text-2);
}
.noticeOk{
  padding:12px 14px; border-radius:11px; margin-bottom:4px;
  font-size:14px; font-weight:600; line-height:1.45;
  color:#15803D; background:rgba(22,163,74,.08); border:1px solid rgba(22,163,74,.3);
}
[data-theme="dark"] .noticeOk{ color:#4ADE80; background:rgba(74,222,128,.08); border-color:rgba(74,222,128,.3); }

.alertBox{
  margin-top:18px; padding:18px; border-radius:var(--radius);
  background:rgba(200,16,46,.06); border:1px solid rgba(200,16,46,.35); border-left:4px solid var(--red);
  color:var(--red); display:grid; gap:8px;
}
.alertBox__title{ font-weight:800; font-size:16px; }
.alertBox p{ font-size:14px; font-weight:600; line-height:1.5; }
.alertBox .btn{ margin-top:6px; }
[data-theme="dark"] .alertBox{ color:#FF6B81; background:rgba(255,107,129,.08); border-color:rgba(255,107,129,.35); border-left-color:#FF6B81; }
.btn--danger{ background:var(--red); color:#fff; }
.btn--danger:hover{ filter:brightness(1.08); box-shadow:0 10px 26px -8px rgba(200,16,46,.55); }

.modal{
  position:fixed; inset:0; z-index:100; padding:16px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(6,15,30,.6); backdrop-filter:blur(4px);
}
.modal__card{
  width:100%; max-width:420px; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:28px 24px;
  display:grid; gap:12px; text-align:center;
}
.modal__card h3{ font-size:22px; font-weight:800; }
.modal__icon{ width:56px; height:56px; margin:0 auto; border-radius:50%; background:var(--gold-grad); color:var(--navy); display:flex; align-items:center; justify-content:center; }
.modal__icon .ico{ width:28px; height:28px; stroke-width:3; }
.modal__hint{ font-size:13px; }
.credBox{ display:grid; gap:8px; text-align:left; }
.credBox div{ display:flex; justify-content:space-between; gap:12px; padding:12px 14px; border-radius:11px; background:var(--surface); border:1px solid var(--line); }
.credBox span{ color:var(--muted); font-size:13px; font-weight:600; }
.credBox strong{ font-size:14px; overflow-wrap:anywhere; text-align:right; }
#mentor .mentor__facts div{ background:var(--surface); }

/* =========================================================
   v3 — Mi panel, kit de duplicación, comunidad, agenda, FAQ
   ========================================================= */
.small{ font-size:13px; }
.linkBtn{ background:none; border:0; padding:6px 0; font-family:inherit; font-size:13px; font-weight:700; color:var(--accent-text); cursor:pointer; text-align:center; }
.linkBtn:hover{ text-decoration:underline; }
.btn--wa{ background:#25D366; color:#fff; }
.btn--wa:hover{ filter:brightness(1.05); box-shadow:0 10px 26px -10px rgba(37,211,102,.7); }
.iconBtn--sm{ width:34px; height:34px; border-radius:10px; }
.iconBtn--sm .ico{ width:15px; height:15px; }
.formRow{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.formRow > div{ display:grid; gap:8px; }
select.input{ appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%); background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%; background-size:5px 5px; background-repeat:no-repeat; padding-right:34px; }
.inviteBanner{ display:flex; align-items:center; gap:10px; padding:12px 14px; border-radius:11px; background:var(--accent-soft); border:1px solid rgba(201,162,39,.35); font-size:14px; color:var(--text); }
.inviteBanner .ico{ color:var(--accent-text); }
.footNote ol{ margin:6px 0 0; padding-left:18px; display:grid; gap:4px; }
.forgotHead{ text-align:center; display:grid; gap:8px; justify-items:center; margin:12px 0 6px; }
.forgotHead h3{ font-size:20px; font-weight:800; }
.forgotHead p{ font-size:14px; }
.forgotHead__icon{ width:52px; height:52px; border-radius:14px; background:var(--navy); color:var(--gold-light); display:flex; align-items:center; justify-content:center; }
.forgotHead__icon .ico{ width:24px; height:24px; }

/* Toast */
.toast{ position:fixed; left:50%; bottom:24px; transform:translate(-50%,20px); opacity:0; pointer-events:none; z-index:120;
  background:var(--navy); color:#fff; padding:12px 18px; border-radius:12px; font-size:14px; font-weight:600; box-shadow:var(--shadow-lg); transition:all .25s ease; max-width:calc(100% - 32px); text-align:center; }
[data-theme="dark"] .toast{ background:var(--gold-grad); color:var(--navy); }
.toast.is-on{ opacity:1; transform:translate(-50%,0); }

/* WhatsApp flotante */
.waFloat{ position:fixed; right:20px; bottom:20px; z-index:90; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow:0 12px 30px -8px rgba(37,211,102,.7); transition:transform .2s; }
.waFloat:hover{ transform:scale(1.07); }
.waFloat svg{ width:28px; height:28px; fill:currentColor; }

/* Fotos con espacio de reserva */
.photo{ position:relative; overflow:hidden; background:var(--surface); border-radius:var(--radius); }
.photo img{ position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; display:block; }
.photo__ph{ display:flex; position:absolute; inset:0; flex-direction:column; align-items:center; justify-content:center; gap:6px; padding:12px; text-align:center;
  color:var(--muted); border:2px dashed var(--line-2); border-radius:inherit;
  background:repeating-linear-gradient(135deg, transparent 0 12px, var(--accent-soft) 12px 24px); }
.photo__ph .ico{ width:26px; height:26px; color:var(--accent-text); }
.photo__ph span{ font-size:13px; font-weight:700; color:var(--text-2); }
.photo__ph small{ font-size:11px; font-family:ui-monospace, Menlo, monospace; opacity:.8; overflow-wrap:anywhere; }
.script:last-child:nth-child(odd){ grid-column:span 2; }
@media (max-width:560px){ .script:last-child:nth-child(odd){ grid-column:auto; } }
.photo--portrait{ aspect-ratio:4/5; }
.photo--office{ aspect-ratio:16/9; border-radius:var(--radius) var(--radius) 0 0; }
.photo--fill{ position:absolute; inset:0; border-radius:inherit; }
.photo--avatar{ width:48px; height:48px; border-radius:50%; flex:none; }
.photo--avatar .photo__ph{ border-width:1px; }
.photo--avatar .photo__ph span, .photo--avatar .photo__ph small{ display:none; }
.photo--avatar .photo__ph .ico{ width:18px; height:18px; }

/* Respaldo */
.trust{ padding:40px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--bg); }
.trust__title{ text-align:center; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:22px; }
.trust__stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:22px; }
.trust__stat{ text-align:center; padding:6px 10px; border-right:1px solid var(--line); }
.trust__stat:last-child{ border-right:0; }
.trust__stat strong{ display:block; font-size:28px; font-weight:800; background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.trust__stat span{ font-size:13px; color:var(--muted); font-weight:500; }
.trust__logos{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.trust__logo{ height:58px; min-width:150px; padding:10px 18px; border-radius:12px; border:1px solid var(--line); background:var(--card); display:flex; align-items:center; justify-content:center; }
.trust__logo img{ max-height:38px; width:auto; }
.trust__logo span{ font-size:13px; font-weight:700; color:var(--muted); letter-spacing:.04em; }

/* Mi panel */
.dash{ display:grid; gap:16px; margin-bottom:40px; }
.dash__hello{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 26px; border-radius:var(--radius-lg); color:#fff;
  background:radial-gradient(420px 220px at 100% 0%, rgba(201,162,39,.35), transparent 65%), linear-gradient(135deg, var(--navy), var(--navy-3)); }
.dash__greet{ font-size:clamp(22px,3vw,30px); font-weight:800; color:#fff; }
.dash__hello .muted{ color:rgba(255,255,255,.75); margin-top:4px; }
.ring{ --p:0; width:92px; height:92px; flex:none; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:conic-gradient(var(--gold) calc(var(--p) * 1%), rgba(255,255,255,.14) 0); position:relative; }
.ring::before{ content:""; position:absolute; inset:9px; border-radius:50%; background:var(--navy-2); }
.ring span{ position:relative; font-weight:800; font-size:20px; color:#fff; }
.continueCard{ display:flex; align-items:center; gap:16px; padding:16px 20px; border-radius:var(--radius-lg); background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow-sm); transition:border-color .2s, box-shadow .2s; }
.continueCard:hover{ border-color:var(--gold); box-shadow:var(--shadow); }
.continueCard__play{ width:46px; height:46px; border-radius:50%; flex:none; background:var(--gold-grad); display:flex; align-items:center; justify-content:center; }
.continueCard__play svg{ width:18px; height:18px; fill:var(--navy); margin-left:3px; }
.continueCard__text{ flex:1; min-width:0; display:grid; gap:2px; }
.continueCard__label{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-text); }
.continueCard__text strong{ font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.profileCard{ display:grid; grid-template-columns:1.4fr 1fr 1fr auto; gap:10px; align-items:center; padding:16px 18px; border-radius:var(--radius-lg); background:var(--accent-soft); border:1px solid rgba(201,162,39,.35); }
.profileCard p{ font-size:13px; }
.dash__grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.dashCard{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:22px; display:grid; gap:14px; align-content:start; }
.dashCard__head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.dashCard__eyebrow{ font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-text); margin-bottom:4px; }
.dashCard h3{ font-size:18px; font-weight:800; }
.checklist{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.checkItem{ display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:11px; cursor:pointer; border:1px solid var(--line); transition:background .15s, border-color .15s; }
.checkItem:hover{ background:var(--surface); }
.checkItem input{ position:absolute; opacity:0; pointer-events:none; }
.checkItem__box{ width:22px; height:22px; border-radius:7px; border:2px solid var(--line-2); flex:none; display:flex; align-items:center; justify-content:center; color:transparent; }
.checkItem__box .ico{ width:14px; height:14px; stroke-width:3.2; }
.checkItem__text{ font-size:14px; font-weight:600; color:var(--text-2); }
.checkItem.is-done{ background:rgba(22,163,74,.06); border-color:rgba(22,163,74,.25); }
.checkItem.is-done .checkItem__box{ background:#16A34A; border-color:#16A34A; color:#fff; }
.checkItem.is-done .checkItem__text{ color:var(--muted); text-decoration:line-through; text-decoration-color:rgba(22,163,74,.6); }
.checkItem input:focus-visible + .checkItem__box{ outline:2px solid var(--gold); outline-offset:2px; }
.autoTag{ font-style:normal; font-size:11px; font-weight:700; color:#15803D; margin-left:4px; }
.linkBox{ display:flex; gap:8px; }
.linkBox .input{ font-size:13px; padding:10px 12px; }
.team{ border-top:1px solid var(--line); padding-top:14px; display:grid; gap:10px; }
.team__head{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
.team__list{ list-style:none; margin:0; padding:0; display:grid; gap:6px; max-height:260px; overflow-y:auto; }
.team__item{ display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:10px; background:var(--surface); }
.team__avatar{ width:32px; height:32px; border-radius:50%; flex:none; display:flex; align-items:center; justify-content:center; background:var(--navy); color:var(--gold-light); font-weight:800; font-size:13px; }
.team__name{ flex:1; min-width:0; font-size:14px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.team__name small{ display:block; font-size:12px; color:var(--muted); font-weight:500; }
.team__empty{ font-size:13px; color:var(--muted); padding:12px; text-align:center; border:1px dashed var(--line-2); border-radius:10px; }
.subhead{ margin:8px 0 18px; }
.subhead h3{ font-size:24px; font-weight:800; margin-bottom:4px; }
.courseCard.is-complete .courseCard__cta{ color:#15803D; }
.taskBox{ margin-top:16px; padding:14px 16px; border-radius:12px; background:var(--accent-soft); border-left:3px solid var(--gold); }
.taskBox strong{ font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-text); }
.taskBox p{ margin-top:4px; font-size:14px; color:var(--text-2); }
.modRes{ margin-top:14px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.modRes strong{ width:100%; font-size:13px; }
.modRes a{ display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:10px; border:1px solid var(--line-2); font-size:13px; font-weight:600; }
.modRes a:hover{ border-color:var(--gold); color:var(--accent-text); }

/* Kit de duplicación */
#kit{ margin-top:44px; }
.kit{ display:grid; grid-template-columns:1.5fr 1fr; gap:16px; align-items:start; }
.scripts{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.script{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:18px; display:flex; flex-direction:column; gap:10px; }
.script__title{ font-weight:800; font-size:15px; }
.script__use{ font-size:12px; color:var(--accent-text); font-weight:700; }
.script__text{ font-size:13.5px; line-height:1.6; color:var(--text-2); background:var(--surface); border-radius:10px; padding:12px; flex:1; }
.script__actions{ display:flex; gap:8px; }
.script__actions .btn{ flex:1; }
.resources{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:18px; position:sticky; top:calc(var(--header-h) + 16px); }
.resources__title{ font-weight:800; font-size:16px; margin-bottom:12px; }
.resources__list{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.resource{ display:flex; align-items:center; gap:12px; padding:10px; border-radius:11px; border:1px solid var(--line); }
.resource__icon{ width:38px; height:38px; border-radius:10px; flex:none; display:flex; align-items:center; justify-content:center; background:var(--navy); color:var(--gold-light); }
.resource.is-soon .resource__icon{ background:var(--surface); color:var(--muted); }
.resource__text{ flex:1; min-width:0; }
.resource__text strong{ display:block; font-size:13.5px; line-height:1.3; }
.resource__text small{ font-size:12px; color:var(--muted); }

/* Agenda */
.agenda{ display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:12px; margin-bottom:28px; }
.agendaCard{ display:flex; flex-direction:column; gap:14px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:18px; }
.agendaCard.is-today{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,162,39,.16); }
.agendaCard__day{ display:flex; align-items:center; gap:8px; }
.agendaCard__day span{ font-size:13px; font-weight:800; letter-spacing:.12em; padding:6px 10px; border-radius:8px; background:var(--navy); color:var(--gold-light); }
.agendaCard__day em{ font-style:normal; font-size:11px; font-weight:800; letter-spacing:.1em; color:#fff; background:var(--red); padding:4px 8px; border-radius:6px; }
.agendaCard__title{ font-weight:800; font-size:16px; }
.agendaCard__meta{ display:flex; align-items:center; gap:6px; font-size:13px; color:var(--text-2); font-weight:600; margin-top:4px; }
.agendaCard__meta .ico{ width:15px; height:15px; color:var(--accent-text); }
.agendaCard__mode{ font-size:12px; color:var(--muted); margin-top:2px; }
.agendaCard .btn{ margin-top:auto; }
.offices{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.office{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
.office__body{ padding:18px 20px 20px; display:grid; gap:8px; justify-items:start; }
.office__city{ font-size:18px; font-weight:800; }
.office__line{ display:flex; gap:8px; align-items:flex-start; font-size:14px; color:var(--text-2); }
.office__line .ico{ width:16px; height:16px; margin-top:2px; color:var(--accent-text); }

/* Comunidad */
.titans{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.titan{ position:relative; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:12px 12px 18px; text-align:center; }
.titan .photo{ margin-bottom:14px; }
.titan__rank{ position:absolute; top:20px; left:20px; z-index:2; font-size:13px; font-weight:800; padding:5px 10px; border-radius:999px; background:var(--gold-grad); color:var(--navy); }
.titan__name{ font-weight:800; font-size:16px; }
.titan__goal{ font-size:13px; color:var(--muted); margin-top:2px; }
.gallery__head{ margin-top:72px; }
.gallery{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:200px; gap:12px; }
.gallery__item{ position:relative; margin:0; border-radius:var(--radius-lg); overflow:hidden; background:var(--surface); }
.gallery__item--big{ grid-column:span 2; grid-row:span 2; }
.gallery__item figcaption{ position:absolute; left:10px; bottom:10px; z-index:2; font-size:12px; font-weight:700; color:#fff; background:rgba(11,31,58,.75); padding:6px 10px; border-radius:8px; }

/* Testimonios con foto */
.quote__by{ display:flex; align-items:center; gap:12px; }
.quote__by span{ display:grid; font-size:13px; color:var(--muted); font-weight:600; }
.quote__by strong{ color:var(--text); font-size:14px; }

/* FAQ */
.faqWrap{ display:grid; grid-template-columns:.8fr 1.2fr; gap:48px; align-items:start; }
.faq{ display:grid; gap:10px; }
.faq__item{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:0 18px; transition:border-color .2s; }
.faq__item[open]{ border-color:var(--gold); }
.faq__item summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:16px 0; font-weight:700; font-size:15px; }
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__icon .ico{ transition:transform .2s; color:var(--accent-text); }
.faq__item[open] .faq__icon .ico{ transform:rotate(45deg); }
.faq__item p{ padding:0 0 16px; color:var(--text-2); font-size:14px; line-height:1.6; }

/* Admin v3 */
.adminStats{ display:flex; gap:10px; }
.adminStats div{ min-width:96px; padding:10px 14px; border-radius:12px; background:var(--surface); border:1px solid var(--line); text-align:center; }
.adminStats strong{ display:block; font-size:22px; font-weight:800; }
.adminStats span{ font-size:12px; color:var(--muted); font-weight:600; }
.adminTools{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.adminSearch{ flex:1; min-width:220px; }
.segmented{ display:flex; gap:4px; padding:4px; border-radius:11px; background:var(--surface); }
.segmented__btn{ border:0; background:transparent; font-family:inherit; font-weight:700; font-size:13px; padding:8px 14px; border-radius:8px; color:var(--muted); cursor:pointer; }
.segmented__btn.is-active{ background:var(--card); color:var(--text); box-shadow:var(--shadow-sm); }
.pendingRow__info{ min-width:0; flex:1; }
.pendingRow__meta{ font-size:12px; color:var(--text-2); margin-top:6px; }
.pendingRow__actions{ display:flex; gap:8px; }

/* Mentor con foto */
.mentor__photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; }
.mentor__badge:has(.mentor__photo) .mentor__mono{ display:none; }

/* Responsive v3 */
@media (max-width: 1080px){
  .kit{ grid-template-columns:1fr; }
  .resources{ position:static; }
}
@media (max-width: 960px){
  .dash__grid, .offices, .faqWrap{ grid-template-columns:1fr; }
  .faqWrap{ gap:0; }
  .titans{ grid-template-columns:repeat(2,1fr); }
  .gallery{ grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; }
  .gallery__item--big{ grid-row:span 1; }
  .gallery__item:last-child:nth-child(even){ grid-column:span 2; }
  .trust__stats{ grid-template-columns:repeat(2,1fr); }
  .trust__stat:nth-child(2){ border-right:0; }
  .profileCard{ grid-template-columns:1fr; }
}
@media (max-width: 560px){
  .scripts{ grid-template-columns:1fr; }
  .formRow{ grid-template-columns:1fr; }
  .dash__hello{ padding:20px; }
  .ring{ width:76px; height:76px; }
  .ring span{ font-size:17px; }
  .continueCard__text strong{ white-space:normal; }
  .adminStats{ width:100%; }
  .adminStats div{ flex:1; min-width:0; }
  .pendingRow__actions{ width:100%; }
  .pendingRow__actions .btn{ flex:1; }
  .waFloat{ right:14px; bottom:14px; width:52px; height:52px; }
  .trust__logo{ min-width:0; flex:1 1 40%; }
}

/* v3.1 — logos sobre placa blanca y pruebas de respaldo */
.trust__logo{ background:#fff; border-color:var(--line); }
[data-theme="dark"] .trust__logo{ border-color:transparent; }
.trust__logo span{ color:#667085; }
.trust__proof{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:28px; }
.proof{ display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; transition:transform .2s, box-shadow .2s, border-color .2s; }
.proof:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--gold); }
.photo--proof{ aspect-ratio:16/9; border-radius:0; }
.proof__body{ padding:16px 18px 18px; display:grid; gap:4px; }
.proof__body strong{ font-size:16px; font-weight:800; }
.proof__body span{ font-size:14px; color:var(--muted); }
.proof__body em{ font-style:normal; font-size:13px; font-weight:700; color:var(--accent-text); margin-top:4px; }
@media (max-width: 760px){ .trust__proof{ grid-template-columns:1fr; } }

/* v3.2 — consentimiento y secciones que se ocultan solas */
.consent{ display:flex; gap:10px; align-items:flex-start; font-size:12.5px; line-height:1.5; color:var(--text-2); margin-top:6px; cursor:pointer; }
.consent input{ width:18px; height:18px; margin-top:2px; flex:none; accent-color:var(--navy); }
[data-theme="dark"] .consent input{ accent-color:var(--gold); }
.gallery__head--first{ margin-top:0; }
.kit--single{ grid-template-columns:1fr; }
.kit--single .scripts{ grid-template-columns:repeat(3,1fr); }
@media (max-width: 960px){ .kit--single .scripts{ grid-template-columns:1fr 1fr; } }
@media (max-width: 560px){ .kit--single .scripts{ grid-template-columns:1fr; } }

/* =========================================================
   v4 — Pantallas separadas: sitio público + plataforma tipo app
   ========================================================= */
/* Carga */
.splash{ position:fixed; inset:0; z-index:200; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px; background:var(--bg); }
.splash img{ height:46px; width:auto; }
.splash__bar{ width:160px; height:4px; border-radius:4px; background:var(--surface); overflow:hidden; }
.splash__bar span{ display:block; width:40%; height:100%; background:var(--gold-grad); border-radius:4px; animation:splash 1.1s ease-in-out infinite; }
@keyframes splash{ 0%{ transform:translateX(-100%);} 100%{ transform:translateX(260%);} }

/* Menú público activo */
.nav a.is-active{ color:var(--text); }
.nav a.is-active::after{ transform:scaleX(1); }

/* Encabezado de pantallas públicas */
.pageHead{ padding:56px 0 8px; background:var(--hero-glow); }
.pageTitle{ font-size:clamp(30px, 4.2vw, 46px); font-weight:800; line-height:1.1; margin-bottom:12px; }
.pageHead .muted{ font-size:17px; max-width:60ch; }
.section--tight{ padding:36px 0 88px; }
.blockTitle{ font-size:22px; font-weight:800; margin:44px 0 18px; }
.section--tight .container > .blockTitle:first-child, #titansBlock .blockTitle{ margin-top:8px; }
.container--narrow{ max-width:820px; }

/* Pantalla de acceso */
.authPage{ padding:56px 0 96px; background:var(--hero-glow); min-height:calc(100vh - var(--header-h)); }
.perks{ list-style:none; margin:26px 0 0; padding:0; display:grid; gap:12px; }
.perks li{ display:flex; gap:10px; align-items:center; font-size:15px; font-weight:600; color:var(--text-2); }
.perks .ico{ width:22px; height:22px; padding:4px; border-radius:50%; background:var(--accent-soft); color:var(--accent-text); stroke-width:3; flex:none; }

/* ---------- Plataforma ---------- */
.app{ --side:264px; min-height:100vh; background:var(--surface); }
.sidebar{ position:fixed; inset:0 auto 0 0; width:var(--side); z-index:60; display:flex; flex-direction:column;
  background:var(--card); border-right:1px solid var(--line); padding:22px 16px; }
.sidebar__brand img{ height:36px; width:auto; margin:0 8px 26px; }
.sidebar__nav{ display:grid; gap:4px; }
.sidebar__nav a{ display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:12px; font-size:14px; font-weight:600; color:var(--text-2); transition:background .15s, color .15s; }
.sidebar__nav a:hover{ background:var(--surface); color:var(--text); }
.sidebar__nav a.is-active{ background:var(--navy); color:#fff; }
.sidebar__nav a.is-active .ico{ color:var(--gold-light); }
[data-theme="dark"] .sidebar__nav a.is-active{ background:var(--gold-grad); color:var(--navy); }
[data-theme="dark"] .sidebar__nav a.is-active .ico{ color:var(--navy); }
.sidebar__nav .ico{ width:19px; height:19px; color:var(--muted); }
.navBadge{ margin-left:auto; min-width:22px; height:22px; padding:0 6px; border-radius:11px; background:var(--red); color:#fff; font-size:12px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; }
.sidebar__foot{ margin-top:auto; display:grid; gap:12px; padding-top:16px; border-top:1px solid var(--line); }
.userChip{ display:flex; align-items:center; gap:10px; min-width:0; }
.userChip__avatar{ width:38px; height:38px; border-radius:50%; flex:none; display:flex; align-items:center; justify-content:center; background:var(--navy); color:var(--gold-light); font-weight:800; }
.userChip__text{ min-width:0; display:grid; }
.userChip__text strong{ font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.userChip__text small{ font-size:12px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sidebar__actions{ display:flex; gap:8px; }
.sidebar__actions .iconBtn{ width:38px; height:38px; }

.app__main{ margin-left:var(--side); padding:32px 36px 60px; max-width:calc(1240px + var(--side)); }
.appView{ animation:viewIn .25s ease; }
@keyframes viewIn{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:none; } }
.view{ animation:viewIn .25s ease; }
.appHead{ margin-bottom:24px; }
.appHead .eyebrow{ margin-bottom:8px; }
.appTitle{ font-size:clamp(26px, 3vw, 34px); font-weight:800; margin-bottom:6px; }
.appHead .muted{ font-size:15px; max-width:70ch; }
.app .blockTitle{ margin-top:32px; }
.backLink{ display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:var(--accent-text); margin-bottom:16px; }
.backLink .ico{ width:16px; height:16px; }
.appTop, .tabbar{ display:none; }
.app .dash{ margin-bottom:0; }

/* Panel: accesos rápidos y avance por curso */
.quickGrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.quick{ display:grid; gap:4px; padding:16px; border-radius:var(--radius-lg); background:var(--card); border:1px solid var(--line); transition:border-color .2s, transform .2s, box-shadow .2s; }
.quick:hover{ border-color:var(--gold); transform:translateY(-2px); box-shadow:var(--shadow); }
.quick__icon{ width:40px; height:40px; border-radius:11px; display:flex; align-items:center; justify-content:center; background:var(--accent-soft); color:var(--accent-text); margin-bottom:8px; }
.quick strong{ font-size:15px; }
.quick small{ font-size:12px; color:var(--muted); }
.courseProgress{ display:grid; gap:10px; }
.cp{ display:grid; gap:8px; padding:14px; border-radius:12px; border:1px solid var(--line); transition:border-color .2s; }
.cp:hover{ border-color:var(--gold); }
.cp__top{ display:flex; justify-content:space-between; gap:10px; font-size:14px; }
.cp__top span{ font-weight:800; color:var(--accent-text); }
.cp small{ font-size:12px; color:var(--muted); }
a.courseCard{ color:inherit; }

/* Equipo */
.teamStats{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:16px; }
.teamStats div{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:18px 20px; }
.teamStats strong{ display:block; font-size:30px; font-weight:800; line-height:1.1; }
.teamStats span{ font-size:13px; color:var(--muted); font-weight:600; }
.dash__grid--team{ grid-template-columns:1fr 1.3fr; }
.team__list--tall{ max-height:520px; }

/* Perfil */
#profileForm, .app [data-view="app/perfil"] .dashCard{ gap:10px; }
.app [data-view="app/perfil"] .dashCard .btn{ justify-self:start; }

/* Admin dentro de la app */
.app .adminPanel{ margin-top:0; }

/* WhatsApp flotante en la plataforma */
body.is-app .waFloat{ bottom:24px; }

@media (max-width: 1080px){
  .app{ --side:228px; }
  .app__main{ padding:28px 24px 60px; }
}
@media (max-width: 900px){
  .sidebar{ display:none; }
  .app__main{ margin-left:0; padding:18px 16px calc(96px + env(safe-area-inset-bottom)); }
  .appTop{ display:flex; position:sticky; top:0; z-index:50; align-items:center; justify-content:space-between; gap:12px;
    padding:10px 16px; background:var(--header-bg); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
  .appTop img{ height:30px; width:auto; }
  .appTop .iconBtn{ width:38px; height:38px; }
  .tabbar{ display:grid; grid-template-columns:repeat(5,1fr); position:fixed; left:0; right:0; bottom:0; z-index:70;
    padding:6px 6px calc(6px + env(safe-area-inset-bottom)); background:var(--card); border-top:1px solid var(--line); box-shadow:0 -8px 24px -12px rgba(0,0,0,.18); }
  .tabbar a, .tabbar button{ display:flex; flex-direction:column; align-items:center; gap:3px; padding:6px 0; border:0; background:none; font-family:inherit;
    font-size:11px; font-weight:700; color:var(--muted); cursor:pointer; border-radius:12px; }
  .tabbar .ico{ width:22px; height:22px; }
  .tabbar a.is-active{ color:var(--text); }
  .tabbar a.is-active .ico{ color:var(--accent-text); }
  .sheet{ position:fixed; inset:0; z-index:80; background:rgba(6,15,30,.5); display:flex; align-items:flex-end; }
  .sheet__panel{ width:100%; background:var(--card); border-radius:22px 22px 0 0; padding:10px 14px calc(20px + env(safe-area-inset-bottom)); display:grid; gap:4px; animation:sheetIn .2s ease; }
  @keyframes sheetIn{ from{ transform:translateY(40px); opacity:0;} to{ transform:none; opacity:1; } }
  .sheet__grip{ width:44px; height:5px; border-radius:3px; background:var(--line-2); margin:4px auto 10px; }
  .sheet__panel a, .sheet__panel button{ display:flex; align-items:center; gap:14px; padding:14px 12px; border-radius:12px; border:0; background:none; font-family:inherit; font-size:15px; font-weight:600; color:var(--text); text-align:left; cursor:pointer; }
  .sheet__panel a:hover, .sheet__panel button:hover{ background:var(--surface); }
  .sheet__panel .ico{ width:20px; height:20px; color:var(--accent-text); }
  .sheet__danger{ color:var(--red) !important; }
  .sheet__danger .ico{ color:var(--red) !important; }
  body.is-app .waFloat{ bottom:calc(84px + env(safe-area-inset-bottom)); }
  .quickGrid{ grid-template-columns:1fr 1fr; }
  .dash__grid--team{ grid-template-columns:1fr; }
}
@media (min-width: 901px){ .sheet{ display:none !important; } }
@media (max-width: 560px){
  .pageHead{ padding-top:36px; }
  .authPage{ padding:32px 0 72px; }
  .teamStats strong{ font-size:24px; }
  .teamStats div{ padding:14px; }
}
/* v4.1 — dentro de la plataforma el soporte está en "Mi perfil" */
body.is-app .waFloat{ display:none; }

/* v4.2 — Presentación Flash */
.sidebar__nav a.navFlash:not(.is-active) .ico{ color:var(--accent-text); }
.flashBanner{ display:flex; align-items:center; gap:16px; padding:12px; padding-right:18px; border-radius:var(--radius-lg);
  background:linear-gradient(135deg, var(--navy), var(--navy-3)); color:#fff; border:1px solid rgba(243,213,122,.3); transition:transform .2s, box-shadow .2s; }
.flashBanner:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
.flashBanner img{ width:132px; aspect-ratio:16/9; object-fit:cover; border-radius:12px; flex:none; }
.flashBanner__text{ flex:1; min-width:0; display:grid; gap:3px; }
.flashBanner__tag{ display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-light); }
.flashBanner__tag .ico{ width:14px; height:14px; }
.flashBanner strong{ font-size:16px; }
.flashBanner small{ font-size:13px; color:rgba(255,255,255,.75); }
.flash{ display:grid; grid-template-columns:1.3fr 1fr; gap:16px; align-items:start; }
.flash__video{ border-radius:var(--radius-lg); overflow:hidden; background:#000; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.flash__video video{ width:100%; display:block; aspect-ratio:16/9; background:#000; }
.flash__share{ gap:12px; }
.flashWarn{ font-size:13px; line-height:1.5; padding:12px 14px; border-radius:11px; background:rgba(247,144,9,.1); border:1px solid rgba(247,144,9,.35); color:var(--text-2); }
.flashWarn a{ color:var(--accent-text); font-weight:700; text-decoration:underline; }
.flashMsg{ resize:vertical; font-size:14px; line-height:1.5; }
.flowSteps{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.flowSteps div{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:18px; display:grid; gap:6px; align-content:start; }
.flowSteps span{ width:32px; height:32px; border-radius:50%; background:var(--gold-grad); color:var(--navy); font-weight:800; display:flex; align-items:center; justify-content:center; margin-bottom:4px; }
.flowSteps strong{ font-size:15px; }
.flowSteps p{ font-size:13px; color:var(--muted); }
@media (max-width: 1080px){ .flash{ grid-template-columns:1fr; } }
@media (max-width: 900px){ .flowSteps{ grid-template-columns:1fr 1fr; } }
@media (max-width: 560px){
  .flashBanner{ flex-wrap:wrap; }
  .flashBanner img{ width:100%; }
  .flashBanner .btn{ width:100%; }
  .flowSteps{ grid-template-columns:1fr; }
}

/* v4.3 — Agenda tipo cronograma */
.agendaTop{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  padding:18px 20px; border-radius:var(--radius-lg); margin-bottom:16px; color:#fff;
  background:radial-gradient(420px 200px at 100% 0%, rgba(201,162,39,.35), transparent 65%), linear-gradient(135deg, var(--navy), var(--navy-3)); }
.agendaTop__title{ font-size:18px; font-weight:800; }
.agendaTop__week{ font-size:13px; font-weight:700; color:var(--gold-light); letter-spacing:.04em; margin-top:2px; }
.timeline{ display:grid; gap:12px; margin-bottom:8px; }
.ev{ display:grid; grid-template-columns:86px 1fr; gap:18px; padding:18px; border-radius:var(--radius-lg); background:var(--card); border:1px solid var(--line); }
.ev__date{ display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:2px; padding:12px 6px; border-radius:14px; background:var(--navy); color:#fff; align-self:start; }
.ev__dow{ font-size:11px; font-weight:800; letter-spacing:.14em; color:var(--gold-light); }
.ev__num{ font-size:30px; font-weight:800; line-height:1; }
.ev__mon{ font-size:11px; font-weight:700; letter-spacing:.12em; color:rgba(255,255,255,.7); }
.ev__body{ display:grid; gap:8px; min-width:0; align-content:start; }
.ev__chips{ display:flex; flex-wrap:wrap; gap:6px; }
.ev__chips span{ font-size:11px; font-weight:800; letter-spacing:.04em; padding:5px 10px; border-radius:999px; }
.ev__type{ background:var(--accent-soft); color:var(--accent-text); }
.ev__today{ background:var(--red); color:#fff; }
.ev__past{ background:var(--surface); color:var(--muted); border:1px solid var(--line); }
.ev__uni{ background:rgba(200,16,46,.08); color:var(--red); border:1px solid rgba(200,16,46,.25); }
[data-theme="dark"] .ev__uni{ color:#FF6B81; }
.ev__title{ font-size:19px; font-weight:800; line-height:1.25; }
.ev__theme{ font-size:16px; font-weight:800; background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ev__meta{ display:flex; flex-wrap:wrap; gap:8px 18px; font-size:14px; font-weight:600; color:var(--text-2); }
.ev__meta span{ display:inline-flex; align-items:center; gap:6px; }
.ev__meta a{ text-decoration:underline; text-decoration-color:var(--line-2); }
.ev .ico{ width:15px; height:15px; color:var(--accent-text); flex:none; }
.sedes{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:4px; }
.sede{ padding:12px 14px; border-radius:12px; background:var(--surface); border:1px solid var(--line); display:grid; gap:6px; }
.sede__city{ display:flex; align-items:center; gap:6px; font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.sede__who{ display:flex; align-items:flex-start; gap:6px; font-size:14px; font-weight:600; color:var(--text-2); }
.sede__who .ico{ margin-top:2px; }
.sede__map{ font-size:12px; font-weight:700; color:var(--accent-text); }
.ev__note{ font-size:14px; color:var(--muted); }
.ev .btn{ justify-self:start; }
.ev--quiet{ background:transparent; border-style:dashed; padding:14px 18px; }
.ev--quiet .ev__date{ background:var(--surface); color:var(--text); border:1px solid var(--line); }
.ev--quiet .ev__dow{ color:var(--muted); }
.ev--quiet .ev__mon{ color:var(--muted); }
.ev--quiet .ev__title{ font-size:16px; }
.ev--evento{ border-color:rgba(201,162,39,.5); box-shadow:0 0 0 3px rgba(201,162,39,.1); }
.ev.is-today{ border-color:var(--red); box-shadow:0 0 0 3px rgba(200,16,46,.12); }
.ev.is-past{ opacity:.55; }
@media (max-width: 640px){
  .ev{ grid-template-columns:64px 1fr; gap:12px; padding:14px; }
  .ev__num{ font-size:24px; }
  .sedes{ grid-template-columns:1fr; }
  .agendaTop .btn{ width:100%; }
}
.ev__theme{ background:none; -webkit-background-clip:initial; background-clip:initial; color:var(--accent-text); }

/* v5 — Mi CRM Profesional */
.navPro{ margin-left:auto; font-size:10px; font-weight:800; letter-spacing:.08em; padding:2px 6px; border-radius:6px; background:var(--gold-grad); color:var(--navy); }
.sidebar__nav a.navCrm:not(.is-active) .ico{ color:var(--accent-text); }
.crmGate{ display:flex; justify-content:center; }
.crmGate__card{ width:100%; max-width:640px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; display:grid; gap:14px; box-shadow:var(--shadow-sm); }
.crmGate__icon{ width:56px; height:56px; border-radius:16px; background:var(--navy); color:var(--gold-light); display:flex; align-items:center; justify-content:center; }
.crmGate__icon .ico{ width:28px; height:28px; }
.crmGate__card .eyebrow{ margin-bottom:0; }
.crmGate__price{ display:flex; align-items:baseline; gap:4px; margin:0; }
.crmGate__price strong{ font-size:40px; font-weight:800; line-height:1; }
.crmGate__price span{ font-size:16px; font-weight:700; color:var(--muted); }
.crmGate__alert{ margin-top:0; }
.crmGate__perks{ margin-top:0; }
.crmSteps{ margin:0; padding-left:20px; display:grid; gap:6px; color:var(--text-2); font-size:14px; }
.crmMail{ font-weight:700; color:var(--text); overflow-wrap:anywhere; }
.crmOn{ display:grid; gap:12px; }
.crmOn__bar{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.crmFrame{ width:100%; height:calc(100vh - 140px); min-height:560px; border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--card); display:block; }
.crmMobile{ display:none; }
.adminStats--crm{ background:var(--accent-soft) !important; border-color:rgba(201,162,39,.35) !important; }
.adminStats--crm b{ color:var(--accent-text); }
.pendingRow__crm{ margin-top:8px; }
.adminNotice{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:12px 14px; margin-bottom:12px; border-radius:12px; background:var(--accent-soft); border:1px solid rgba(201,162,39,.35); font-weight:600; font-size:14px; }
@media (max-width: 900px){
  .crmFrame{ display:none; }
  .crmMobile{ display:grid; gap:10px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:18px; }
  .crmGate__card{ padding:20px; }
}

/* v5.1 — Pago con QR Takenos */
.payBox{ display:grid; grid-template-columns:240px 1fr; gap:18px; align-items:center; padding:16px; border-radius:var(--radius-lg); background:var(--surface); border:1px solid var(--line); }
.payBox__qr{ display:grid; gap:8px; justify-items:center; }
.payBox__qr img{ width:100%; max-width:240px; border-radius:14px; box-shadow:var(--shadow-sm); background:#fff; }
.payBox__title, .payForm__title{ font-weight:800; font-size:16px; margin-bottom:8px; }
.payForm{ display:grid; gap:10px; padding:16px; border-radius:var(--radius-lg); border:1px solid var(--line); background:var(--card); }
.payStatus{ padding:14px 16px; border-radius:var(--radius); display:grid; gap:6px; font-size:14px; }
.payStatus p{ margin:0; }
.payStatus--wait{ background:rgba(247,144,9,.1); border:1px solid rgba(247,144,9,.35); color:var(--text); }
.payStatus--bad{ background:rgba(200,16,46,.07); border:1px solid rgba(200,16,46,.3); color:var(--text); }
.payQueue{ margin-bottom:16px; padding:14px; border-radius:var(--radius-lg); background:var(--accent-soft); border:1px solid rgba(201,162,39,.35); }
.payQueue__head{ display:flex; align-items:center; gap:10px; margin-bottom:10px; font-size:16px; }
.payRow{ background:var(--card) !important; }
@media (max-width: 560px){ .payBox{ grid-template-columns:1fr; justify-items:center; text-align:left; } .payBox__steps{ width:100%; } }
/* Planes del CRM */
.plans{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.plan{ position:relative; display:grid; gap:2px; padding:14px 12px 12px; border-radius:var(--radius); border:1px solid var(--line); background:var(--surface); text-align:center; }
.plan__name{ font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.plan strong{ font-size:22px; font-weight:800; }
.plan em{ font-style:normal; font-size:12px; font-weight:700; color:#15803D; }
[data-theme="dark"] .plan em{ color:#4ADE80; }
.plan--best{ border-color:var(--gold); box-shadow:0 0 0 2px rgba(201,162,39,.18); }
.plan__badge{ position:absolute; top:-10px; left:50%; transform:translateX(-50%); white-space:nowrap; font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:3px 8px; border-radius:999px; background:var(--gold-grad); color:var(--navy); }
@media (max-width: 480px){ .plan strong{ font-size:18px; } .plan{ padding:14px 6px 10px; } }
/* Ajuste celular: que la tarjeta de pago nunca sea más ancha que la pantalla */
.crmGate > *, .crmGate__card > *{ min-width:0; }
.crmGate__card{ min-width:0; }
.plans{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.payBox, .payForm, .payBox__steps{ min-width:0; }
@media (max-width: 480px){
  .plan__badge{ font-size:9px; padding:2px 6px; }
  .plan__name{ font-size:11px; letter-spacing:.02em; }
  .plan em{ font-size:11px; }
}
.payForm{ grid-template-columns:minmax(0,1fr); }
.payForm > *, .formRow > div{ min-width:0; }
.formRow{ grid-template-columns:repeat(2, minmax(0,1fr)); }
@media (max-width: 560px){ .formRow{ grid-template-columns:minmax(0,1fr); } }
.footer__links{ flex-wrap:wrap; }

/* v6 — CRM se abre en su propia pantalla */
.crmLaunch{ display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:22px; }
.crmLaunch h3{ margin:0 0 6px; }
.crmLaunch p{ margin:0; max-width:520px; }
@media (max-width:560px){ .crmLaunch .btn{ width:100%; } }

/* v7 — Plataformas oficiales Kalomai */
.tools{ display:grid; gap:12px; }
.tools__head h3{ margin:2px 0 0; }
.tools__grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.toolCard{ display:flex; align-items:center; gap:12px; min-width:0; padding:16px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); color:var(--text); text-decoration:none; transition:border-color .15s, transform .15s, box-shadow .15s; }
.toolCard:hover{ border-color:var(--accent-text, #C8102E); transform:translateY(-1px); box-shadow:0 6px 18px rgba(11,31,58,.08); }
.toolCard__icon{ flex:none; width:42px; height:42px; border-radius:12px; display:grid; place-items:center; background:#0B1F3A; color:#fff; }
.toolCard__icon .ico{ width:20px; height:20px; }
.toolCard__text{ display:grid; gap:2px; min-width:0; flex:1; }
.toolCard__text small{ color:var(--text-2); font-size:12.5px; }
.toolCard__go{ flex:none; width:18px; height:18px; color:var(--text-2); }
@media (max-width:900px){ .tools__grid{ grid-template-columns:minmax(0,1fr); } }

/* v8 — logos de marcas */
.trust__logo{ background:#fff; }
.trust__logo img{ max-height:40px; max-width:150px; object-fit:contain; }
.tools__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.tools__brands{ display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:8px 14px; }
.tools__brands img{ height:26px; width:auto; display:block; }
.toolCard__icon{ background:#fff; border:1px solid var(--line); }
.toolCard__icon img{ width:24px; height:auto; display:block; }
.toolCard__icon .ico{ color:#E52D3A; }

/* v9 — Cuaderno de trabajo en el Kit */
.workbook{ display:grid; grid-template-columns:170px minmax(0,1fr); gap:22px; align-items:center; padding:20px; margin-bottom:18px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); }
.workbook__cover{ width:100%; aspect-ratio:850/1100; object-fit:cover; border-radius:10px; box-shadow:0 10px 26px rgba(11,31,58,.22); }
.workbook__body{ display:grid; gap:8px; justify-items:start; min-width:0; }
.workbook__body h2{ margin:2px 0 0; font-size:clamp(20px,2.4vw,26px); }
.workbook__body p{ margin:0; }
.workbook__note{ font-weight:700; color:var(--text); }
.workbook__actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:6px; }
@media (max-width:620px){
  .workbook{ grid-template-columns:minmax(0,1fr); }
  .workbook__cover{ max-width:180px; justify-self:center; }
  .workbook__actions{ width:100%; } .workbook__actions .btn{ flex:1; }
}

/* v11 — Audio de la semana */
.audioEmpty{ display:grid; justify-items:center; text-align:center; gap:8px; padding:44px 20px; background:var(--card); border:1px dashed var(--line-2, var(--line)); border-radius:var(--radius-lg); }
.audioEmpty__icon{ width:56px; height:56px; border-radius:16px; display:grid; place-items:center; background:var(--accent-soft); color:var(--accent-text); }
.audioEmpty__icon .ico{ width:26px; height:26px; }
.audioEmpty p{ margin:0; }
.player{ display:grid; grid-template-columns:200px minmax(0,1fr); gap:22px 26px; padding:24px; border-radius:var(--radius-lg); color:#fff; margin-bottom:18px;
  background:radial-gradient(480px 260px at 100% 0%, rgba(201,162,39,.32), transparent 65%), linear-gradient(135deg, #0B1F3A, #16325A); }
.player__art{ grid-row:span 2; aspect-ratio:1; border-radius:18px; display:grid; place-items:center; padding:22px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); }
.player__art img{ width:100%; height:auto; }
.player__info{ display:grid; gap:6px; align-content:end; justify-items:start; min-width:0; }
.player__info .tag{ background:rgba(201,162,39,.18); color:#F3D57A; border-color:rgba(243,213,122,.35); }
.player__info h2{ margin:2px 0 0; color:#fff; font-size:clamp(20px,2.6vw,28px); line-height:1.2; }
.player__author{ margin:0; color:rgba(255,255,255,.75); font-weight:600; font-size:14px; }
.player__desc{ margin:0; color:rgba(255,255,255,.7) !important; font-size:14px; }
.player__controls{ display:grid; gap:8px; min-width:0; }
.player__seek{ --p:0%; -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:99px; cursor:pointer;
  background:linear-gradient(90deg,#E2BC52 var(--p), rgba(255,255,255,.2) var(--p)); }
.player__seek::-webkit-slider-thumb{ -webkit-appearance:none; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 2px 6px rgba(0,0,0,.35); }
.player__seek::-moz-range-thumb{ width:16px; height:16px; border:0; border-radius:50%; background:#fff; }
.player__time{ display:flex; justify-content:space-between; font-size:12px; font-weight:600; color:rgba(255,255,255,.7); font-variant-numeric:tabular-nums; }
.player__btns{ display:flex; align-items:center; justify-content:center; gap:22px; }
.pBtn{ position:relative; width:48px; height:48px; border-radius:50%; border:0; background:transparent; color:#fff; display:grid; place-items:center; cursor:pointer; }
.pBtn:hover{ background:rgba(255,255,255,.1); }
.pBtn .ico{ width:26px; height:26px; }
.pBtn small{ position:absolute; font-size:9px; font-weight:800; top:50%; left:50%; transform:translate(-50%,-38%); }
.pBtn--main{ width:66px; height:66px; background:#fff; color:#0B1F3A; box-shadow:0 8px 22px rgba(0,0,0,.3); }
.pBtn--main:hover{ background:#F3D57A; }
.pBtn--main .ico{ width:28px; height:28px; }
.player__extra{ display:flex; justify-content:space-between; align-items:center; }
.speedBtn{ border:1px solid rgba(255,255,255,.25); background:transparent; color:#fff; font:700 13px inherit; font-family:inherit; padding:6px 12px; border-radius:99px; cursor:pointer; min-width:56px; }
.speedBtn:hover{ border-color:#F3D57A; color:#F3D57A; }
.player .linkBtn{ color:rgba(255,255,255,.75); }
.audioList{ padding:20px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); margin-bottom:40px; }
.audioList h3{ margin:0 0 10px; }
.audioList ul{ list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.audioItem{ width:100%; display:flex; align-items:center; gap:12px; padding:10px; border:1px solid transparent; border-radius:12px; background:transparent; color:var(--text); text-align:left; cursor:pointer; font:inherit; }
.audioItem:hover{ background:var(--surface-2); }
.audioItem.is-on{ border-color:rgba(201,162,39,.45); background:var(--accent-soft); }
.audioItem__play{ flex:none; width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:#0B1F3A; color:#fff; }
.audioItem__play .ico{ width:16px; height:16px; }
.audioItem__text{ flex:1; min-width:0; display:grid; gap:2px; }
.audioItem__text strong{ font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.audioItem__text small{ font-size:12.5px; color:var(--text-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.audioItem .tag{ flex:none; }
@media (max-width:760px){
  .player{ grid-template-columns:minmax(0,1fr); padding:20px; }
  .player__art{ grid-row:auto; width:120px; padding:14px; justify-self:center; }
  .player__info{ justify-items:center; text-align:center; }
}
.audioList__sub{ margin:-6px 0 10px; }
.audioList ul{ max-height:560px; overflow:auto; }
