/* =========================================================
   LEGACY TRADERS — Campus (zona de miembros y administración)
   ========================================================= */

/* ---------- Acceso (ingresar / recuperar / nueva contraseña) ---------- */
.auth {
  min-height: 100svh; display: grid; place-items: center;
  padding: calc(var(--header-h) + 2.5rem) 1.25rem 4rem;
  background: radial-gradient(ellipse at 50% 0%, #2A2210 0%, var(--tinta) 60%);
}
.auth__card {
  width: min(100%, 440px); padding: clamp(1.8rem, 5vw, 2.6rem);
  background: linear-gradient(180deg, #151515, #0B0B0B); border: 1px solid var(--linea);
  border-radius: 18px; box-shadow: 0 30px 80px rgba(0,0,0,.55); text-align: center;
}
.auth__logo { width: 110px; height: auto; margin: 0 auto 1rem; }
.auth h1 { font-size: clamp(1.8rem, 5vw, 2.2rem); margin-bottom: .4rem; }
.auth__lead { color: var(--texto-suave); font-size: .95rem; }
.auth__form { display: grid; gap: 1rem; text-align: left; margin-top: 1.4rem; }
.auth__form .btn { width: 100%; margin-top: .3rem; }
.auth__links { display: grid; gap: .6rem; margin-top: 1.4rem; font-size: .9rem; justify-items: center; }
.auth__links a:not(.btn) { color: var(--oro-claro); }
.auth__secure { display: flex; align-items: center; justify-content: center; gap: .45rem; margin: 1.6rem 0 0; font-size: .78rem; color: var(--texto-suave); }
.auth__secure svg { width: 14px; height: 14px; fill: var(--oro); flex: none; }

.pw { position: relative; display: block; }
.pw input { padding-right: 5.2rem; }
.pw__toggle {
  position: absolute; right: .35rem; top: 50%; transform: translateY(-50%);
  background: transparent; border: 0; color: var(--oro-claro); font: 600 .8rem var(--sans);
  padding: .45rem .6rem; cursor: pointer; border-radius: var(--radio-s);
}
.pw__toggle:hover { background: rgba(212,169,76,.1); }

.pw-meter { height: 6px; border-radius: 99px; background: #222; overflow: hidden; margin-top: -.4rem; }
.pw-meter span { display: block; height: 100%; width: 0; transition: width .25s, background .25s; background: #8A3A36; }
.pw-meter span[data-nivel="media"] { background: #C9922E; }
.pw-meter span[data-nivel="alta"] { background: var(--degradado-oro); }
.pw-rules { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem .8rem; font-size: .8rem; color: var(--texto-suave); }
.pw-rules li { padding-left: 1.2rem; position: relative; }
.pw-rules li::before { content: "○"; position: absolute; left: 0; color: #666; }
.pw-rules li.ok { color: var(--oro-claro); }
.pw-rules li.ok::before { content: "●"; color: var(--oro); }

.notice {
  text-align: left; margin: 1.2rem 0 0; padding: .9rem 1rem; border-radius: var(--radio-s);
  background: rgba(212,169,76,.08); border: 1px solid rgba(212,169,76,.35); color: var(--texto); font-size: .88rem;
}
.notice strong { color: var(--oro-claro); }
.notice__title { display: block; margin-bottom: .2rem; }
.notice code { color: var(--oro-claro); font-size: .85em; }
.notice--warn { background: rgba(208,96,90,.08); border-color: rgba(208,96,90,.45); }
.notice--soft { background: transparent; border-style: dashed; color: var(--texto-suave); }

/* ---------- Panel ---------- */
.campus { padding: calc(var(--header-h) + 2.5rem) 0 5rem; min-height: 100svh; }
.wrap--wide { width: min(100% - 2.5rem, 1360px); margin-inline: auto; }
.campus__app { display: none; }
.campus-listo .campus__app { display: block; }
.campus-listo .campus__loading { display: none; }
.campus__loading { padding: 4rem 0; text-align: center; color: var(--texto-suave); }
.campus__loading::before { content: ""; display: block; width: 36px; height: 36px; margin: 0 auto 1rem; border-radius: 50%; border: 3px solid var(--linea); border-top-color: var(--oro); animation: girar 1s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }

.campus__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.2rem; margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--linea); }
.campus__head h1 { font-size: clamp(2rem, 4.5vw, 3rem); margin-bottom: .2rem; }
.campus__head p { margin: 0; }
.campus__tools { display: flex; flex-wrap: wrap; gap: .6rem; }
.muted { color: var(--texto-suave); }
.small { font-size: .82rem; }

.campus__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1.5rem; }
.card { background: var(--tinta-2); border: 1px solid var(--linea); border-radius: var(--radio-m); padding: clamp(1.3rem, 3vw, 2rem); min-width: 0; }
.card h2 { font-size: 1.4rem; margin-bottom: .5rem; }
.card--plan { grid-column: span 5; border-top: 2px solid var(--oro); display: flex; flex-direction: column; gap: .9rem; }
.card--route { grid-column: span 7; }
.card--history { grid-column: span 8; }
.card--help { grid-column: span 4; display: flex; flex-direction: column; gap: 1rem; }
.card__top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.card__top h2 { margin: 0; }
.card--plan .btn { margin-top: auto; }

.plan-days { display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; }
.plan-days span { min-width: 0; }
.plan-days strong { font-family: var(--marca); font-size: clamp(3rem, 7vw, 4rem); line-height: 1; background: var(--degradado-oro); -webkit-background-clip: text; background-clip: text; color: transparent; }
.plan-days span { color: var(--texto-suave); }
.progress { height: 8px; border-radius: 99px; background: #222; overflow: hidden; }
.progress span { display: block; height: 100%; width: 0; background: var(--degradado-oro); transition: width .6s; }

.badge { display: inline-block; padding: .28rem .75rem; border-radius: 99px; font-size: .75rem; font-weight: 700; letter-spacing: .04em; white-space: nowrap; border: 1px solid; }
.badge[data-estado="activa"] { color: #F1D38A; border-color: rgba(212,169,76,.5); background: rgba(212,169,76,.12); }
.badge[data-estado="por_vencer"] { color: #F3B35B; border-color: rgba(243,179,91,.5); background: rgba(243,179,91,.1); }
.badge[data-estado="vencida"], .badge[data-estado="suspendida"] { color: #F09A94; border-color: rgba(208,96,90,.5); background: rgba(208,96,90,.1); }
.badge[data-estado="sin_plan"] { color: var(--texto-suave); border-color: var(--linea); }

.niveles { display: grid; gap: .8rem; margin: 1.2rem 0; }
.nivel { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: 1rem 1.1rem; border-radius: var(--radio-m); border: 1px solid var(--linea); background: var(--tinta-3); }
.nivel h3 { font-size: 1.1rem; margin: 0 0 .2rem; }
.nivel p { margin: 0 0 .5rem; color: var(--texto-suave); font-size: .88rem; }
.nivel small { color: var(--texto-suave); font-size: .78rem; }
.nivel__num { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; font-family: var(--marca); background: #1A1A1A; color: var(--texto-suave); border: 1px solid var(--linea); }
.nivel__bar { height: 5px; border-radius: 99px; background: #222; overflow: hidden; margin-bottom: .35rem; }
.nivel__bar span { display: block; height: 100%; background: var(--degradado-oro); }
.nivel__icon { font-size: 1.1rem; color: var(--oro); }
.nivel.is-open { border-color: rgba(212,169,76,.55); }
.nivel.is-open .nivel__num { background: var(--degradado-oro); color: #0B0B0B; border: 0; }
.nivel.is-locked { opacity: .6; }

/* ---------- Tablas ---------- */
.table-wrap { overflow-x: auto; border-radius: var(--radio-s); }
.data-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.data-table th { text-align: left; font-weight: 600; color: var(--texto-suave); font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; padding: .7rem .6rem; border-bottom: 1px solid var(--linea); white-space: nowrap; }
.data-table td { padding: .85rem .6rem; border-bottom: 1px solid var(--linea); vertical-align: top; }
.data-table td > span, .data-table td > strong { display: block; }
.data-table .muted { font-size: .8rem; }
.data-table tbody tr:hover { background: rgba(255,255,255,.02); }
.empty { padding: 2rem; text-align: center; }

/* ---------- Administración ---------- */
.stats--admin { margin: 0 0 1.5rem; }
.stats--admin dd { font-size: clamp(1.8rem, 3.5vw, 2.4rem); }
.toolbar { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; margin-bottom: 1rem; }
.toolbar__search { flex: 1 1 280px; }
.toolbar label { font-size: .8rem; }
.row-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.btn--xs { padding: .4rem .7rem; font-size: .76rem; white-space: nowrap; }
.btn.is-danger { color: #F09A94; border-color: rgba(208,96,90,.45); }
.btn.is-danger:hover { background: rgba(208,96,90,.12); color: #fff; }
.btn[disabled] { opacity: .5; cursor: wait; }

/* ---------- Ventanas (dialog) ---------- */
.modal { width: min(100% - 2rem, 620px); max-height: calc(100dvh - 2rem); overflow-y: auto; padding: clamp(1.3rem, 4vw, 2rem); border: 1px solid var(--linea); border-radius: 18px; background: #111; color: var(--texto); box-shadow: 0 30px 80px rgba(0,0,0,.6); }
.modal::backdrop { background: rgba(0,0,0,.72); backdrop-filter: blur(3px); }
.modal__head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .4rem; }
.modal__head h2 { margin: 0; font-size: 1.5rem; }
.modal__x { background: none; border: 0; color: var(--texto-suave); font-size: 1.8rem; line-height: 1; cursor: pointer; padding: .2rem .5rem; }
.modal__x:hover { color: #fff; }
.modal__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1rem; margin: 1rem 0 .6rem; }
.modal__grid .span-2 { grid-column: span 2; }
.modal__foot { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.cred { display: grid; gap: .7rem; margin: 1rem 0; }
.cred div { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: .9rem 1rem; border-radius: var(--radio-s); background: #0A0A0A; border: 1px solid var(--linea); }
.cred span { color: var(--texto-suave); font-size: .85rem; }
.cred code { font-size: 1.15rem; color: var(--oro-claro); letter-spacing: .04em; word-break: break-all; user-select: all; }

.toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 90; max-width: calc(100% - 2rem); padding: .9rem 1.3rem; border-radius: var(--radio-s); background: #151515; border: 1px solid var(--oro); color: #fff; box-shadow: 0 12px 30px rgba(0,0,0,.5); font-size: .92rem; }
.toast[data-tipo="bad"] { border-color: #D0605A; }

/* ---------- Adaptación ---------- */
@media (max-width: 1024px) {
  .card--plan, .card--route, .card--history, .card--help { grid-column: span 12; }
}
@media (max-width: 860px) {
  /* Tabla de miembros como tarjetas */
  .data-table--members thead { display: none; }
  .data-table--members, .data-table--members tbody, .data-table--members tr, .data-table--members td { display: block; width: 100%; }
  .data-table--members tr { border: 1px solid var(--linea); border-radius: var(--radio-m); margin-bottom: .9rem; padding: .4rem .9rem; background: var(--tinta-2); }
  .data-table--members td { border: 0; padding: .5rem 0; display: grid; grid-template-columns: 7rem 1fr; gap: .6rem; }
  .data-table--members td::before { content: attr(data-label); color: var(--texto-suave); font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; padding-top: .15rem; }
  .data-table--members td > * { grid-column: 2; }
}
@media (max-width: 600px) {
  .modal__grid { grid-template-columns: 1fr; }
  .modal__grid .span-2 { grid-column: auto; }
  .modal__foot .btn { flex: 1 1 100%; }
  .campus__tools { width: 100%; }
  .campus__tools .btn { flex: 1 1 auto; }
  .pw-rules { grid-template-columns: 1fr; }
  .data-table--members td { grid-template-columns: 1fr; gap: .2rem; }
  .data-table--members td > * { grid-column: 1; }
  .data-table--history td { white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  .campus__loading::before { animation: none; }
}

/* En administración el botón flotante estorbaría las acciones */
body:has(.campus--admin) .wa-float { display: none; }

/* =========================================================
   FASE 2 — Academia: niveles, lecciones y exámenes
   ========================================================= */

/* ---------- Ruta de niveles ---------- */
.ruta { display: grid; gap: 1.5rem; }
.nivel-card {
  display: grid; grid-template-columns: auto 1fr; gap: 1.5rem;
  background: var(--tinta-2); border: 1px solid var(--linea); border-radius: var(--radio-m);
  padding: clamp(1.3rem, 3vw, 2rem); transition: border-color .25s, transform .25s;
}
.nivel-card.is-abierto { border-color: rgba(212,169,76,.45); }
.nivel-card.is-abierto:hover { transform: translateY(-3px); border-color: var(--oro); }
.nivel-card.is-completo { border-left: 3px solid var(--oro); }
.nivel-card.is-bloqueado { opacity: .62; }
.nivel-card__num {
  display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%;
  font-family: var(--marca); font-size: 1.4rem; background: #1A1A1A; color: var(--texto-suave);
  border: 1px solid var(--linea); flex: none;
}
.nivel-card.is-abierto .nivel-card__num { background: var(--degradado-oro); color: #0B0B0B; border: 0; }
.nivel-card.is-completo .nivel-card__num { background: var(--degradado-oro); color: #0B0B0B; border: 0; }
.nivel-card__body { display: grid; gap: .7rem; min-width: 0; }
.nivel-card__body h2 { margin: 0; font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.nivel-card__body p { margin: 0; }
.nivel-card__tags { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; }
.nivel-card .btn { justify-self: start; margin-top: .3rem; }

/* El panel también enlaza a los niveles */
.nivel > * { min-width: 0; }
.nivel__link { display: block; text-decoration: none; color: inherit; min-width: 0; }
.nivel__bar, .nivel h3, .nivel p, .nivel small { min-width: 0; max-width: 100%; }
.nivel__link:hover h3 { color: var(--oro-claro); }
.nivel.is-done { border-color: rgba(212,169,76,.4); }
.nivel.is-done .nivel__num { background: var(--degradado-oro); color: #0B0B0B; border: 0; }

/* ---------- Detalle del nivel ---------- */
.nivel-barra { display: grid; gap: .5rem; margin-bottom: 2.5rem; }
.seccion { margin-bottom: 2.5rem; }
.seccion__head { margin-bottom: 1rem; }
.seccion__head h2 { font-size: clamp(1.3rem, 2.4vw, 1.7rem); margin-bottom: .2rem; }
.seccion__head p { margin: 0; }
.lecciones { display: grid; gap: .6rem; }
.leccion-fila { border: 1px solid var(--linea); border-radius: var(--radio-m); background: var(--tinta-2); overflow: hidden; }
.leccion-fila__link {
  display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center;
  padding: 1rem 1.2rem; text-decoration: none; color: inherit;
}
a.leccion-fila__link:hover { background: rgba(212,169,76,.06); }
.leccion-fila__icon {
  display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
  background: #1A1A1A; border: 1px solid var(--linea); font-size: .9rem; color: var(--texto-suave); flex: none;
}
.leccion-fila.is-hecha .leccion-fila__icon { background: var(--degradado-oro); color: #0B0B0B; border: 0; }
.leccion-fila.is-abierta .leccion-fila__icon { color: var(--oro); border-color: rgba(212,169,76,.5); }
.leccion-fila.is-bloqueada { opacity: .55; }
.leccion-fila__body h3 { font-size: 1.05rem; margin: 0 0 .15rem; }
.leccion-fila__body p { margin: 0; }
.leccion-fila__accion { font-size: .85rem; font-weight: 600; color: var(--oro-claro); white-space: nowrap; }

.card--examen {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.2rem;
  background: linear-gradient(180deg, #1E180B, #0D0B06); border: 1px solid rgba(212,169,76,.45);
  border-radius: var(--radio-m); padding: clamp(1.3rem, 3vw, 2rem); margin-top: 1rem;
}
.card--examen h2 { margin: 0 0 .3rem; font-size: 1.4rem; }
.card--examen p { margin: 0; max-width: 60ch; }
.btn[aria-disabled="true"] { opacity: .5; pointer-events: none; }

/* ---------- Lección ---------- */
.campus--leccion .wrap { max-width: 900px; }
.leccion__head { margin-bottom: 1.5rem; }
.leccion__head h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); margin-bottom: .3rem; }
.video { position: relative; aspect-ratio: 16 / 9; background: #000; border-radius: var(--radio-m); overflow: hidden; border: 1px solid var(--linea); margin-bottom: 1.5rem; }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.leccion__texto { font-size: 1.05rem; line-height: 1.8; }
.leccion__texto p { color: #D6D4CE; margin: 0 0 1.1em; }
.leccion__texto .lista-num, .leccion__texto .lista-vin { display: grid; gap: .5rem; margin: 0 0 1.2em; padding-left: 1.4rem; color: #D6D4CE; }
.leccion__texto .lista-num { list-style: decimal; }
.leccion__texto .lista-vin { list-style: disc; }
.leccion__pie { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--linea); }
.leccion__pie .btn { flex: none; }
#lVolver { margin-left: auto; }

/* ---------- Examen ---------- */
.examen { display: grid; gap: 1.2rem; counter-reset: preg; margin: 1.5rem 0 2rem; }
.pregunta {
  counter-increment: preg; background: var(--tinta-2); border: 1px solid var(--linea);
  border-radius: var(--radio-m); padding: 1.3rem 1.4rem;
}
.pregunta.is-falta { border-color: #D0605A; }
.pregunta.is-ok { border-left: 3px solid var(--oro); }
.pregunta.is-mal { border-left: 3px solid #D0605A; }
.pregunta__texto { font-weight: 600; margin: 0 0 1rem; }
.pregunta__texto::before { content: counter(preg) ". "; color: var(--oro); font-family: var(--marca); }
.pregunta__falta { color: #F09A94; font-size: .85rem; margin: .6rem 0 0; }
.opciones-lista { display: grid; gap: .5rem; }
.opcion {
  display: flex; align-items: flex-start; gap: .7rem; padding: .75rem .9rem; cursor: pointer;
  border: 1px solid var(--linea); border-radius: var(--radio-s); background: var(--tinta-3);
  font-weight: 400; color: var(--texto); font-size: .97rem; transition: border-color .2s, background .2s;
}
.opcion:hover { border-color: rgba(212,169,76,.5); }
.opcion input { width: auto; margin: .15rem 0 0; accent-color: var(--oro); flex: none; }
.opcion:has(input:checked) { border-color: var(--oro); background: rgba(212,169,76,.08); }

.resultado { text-align: center; padding: clamp(1.5rem, 4vw, 2.5rem) 0; }
.resultado__nota { display: grid; place-items: center; width: 150px; height: 150px; margin: 0 auto 1.5rem; border-radius: 50%; border: 3px solid var(--linea); }
.resultado[data-estado="ok"] .resultado__nota { border-color: var(--oro); box-shadow: 0 0 40px rgba(212,169,76,.22); }
.resultado[data-estado="mal"] .resultado__nota { border-color: #D0605A; }
.resultado__nota strong { font-family: var(--marca); font-size: 2.6rem; line-height: 1; background: var(--degradado-oro); -webkit-background-clip: text; background-clip: text; color: transparent; }
.resultado[data-estado="mal"] .resultado__nota strong { background: none; color: #F09A94; }
.resultado__nota span { color: var(--texto-suave); font-size: .85rem; }
.resultado h2 { font-size: clamp(1.6rem, 3.5vw, 2.2rem); }
.resultado > p { margin-inline: auto; max-width: 55ch; }
.examen--revision { text-align: left; margin-top: 2rem; }
.examen--revision .pregunta__texto { margin-bottom: .4rem; }
.resultado__acciones { display: flex; flex-wrap: wrap; gap: .7rem; justify-content: center; margin-top: 2rem; }

/* ---------- Administración de cursos ---------- */
.arbol { display: grid; gap: 1.5rem; }
.arbol__nivel { border: 1px solid var(--linea); border-radius: var(--radio-m); background: var(--tinta-2); overflow: hidden; }
.arbol__head { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: flex-start; padding: 1.3rem 1.5rem; border-bottom: 1px solid var(--linea); background: linear-gradient(180deg, #1A1509, var(--tinta-2)); }
.arbol__head h2 { margin: 0 0 .2rem; font-size: 1.5rem; }
.arbol__head p { margin: 0; }
.arbol__secciones { display: grid; }
.arbol__seccion, .arbol__examen { padding: 1.2rem 1.5rem; border-bottom: 1px solid var(--linea); }
.arbol__examen { background: var(--tinta-3); border-bottom: 0; }
.arbol__seccion > header, .arbol__examen > header { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: space-between; align-items: flex-start; margin-bottom: .8rem; }
.arbol__seccion h3, .arbol__examen h3 { margin: 0; font-size: 1.15rem; }
.arbol__lecciones, .arbol__preguntas { display: grid; gap: .4rem; }
.arbol__lecciones li, .arbol__preguntas li {
  display: grid; grid-template-columns: auto 1fr auto; gap: .9rem; align-items: center;
  padding: .7rem .9rem; border: 1px solid var(--linea); border-radius: var(--radio-s); background: var(--tinta-3);
}
.arbol__preguntas li { grid-template-columns: 1fr auto; }
.arbol__preguntas { counter-reset: apreg; }
.arbol__preguntas li { counter-increment: apreg; }
.arbol__preguntas li > div:first-child strong::before { content: counter(apreg) ". "; color: var(--oro); }
.arbol__orden { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #1A1A1A; border: 1px solid var(--linea); font-size: .8rem; color: var(--texto-suave); }
.arbol__lecciones strong, .arbol__preguntas strong { display: block; font-weight: 600; }
.arbol__lecciones span.muted, .arbol__preguntas span.muted { display: block; }

.modal--ancho { width: min(100% - 2rem, 780px); }
.modal__grid .check { flex-direction: row; align-items: center; gap: .6rem; display: flex; }
.modal__grid .check input { width: auto; accent-color: var(--oro); }
.opciones { display: grid; gap: .6rem; margin: .5rem 0 1rem; }
.opcion-edit { display: grid; grid-template-columns: auto 1fr; gap: .8rem; align-items: center; }
.opcion-edit__radio { display: flex; align-items: center; gap: .4rem; white-space: nowrap; }
.opcion-edit__radio input { width: auto; accent-color: var(--oro); }
.opcion-edit__texto { margin: 0; }

@media (max-width: 760px) {
  .nivel-card { grid-template-columns: 1fr; }
  .nivel-card__num { width: 44px; height: 44px; font-size: 1.1rem; }
  .leccion-fila__link { grid-template-columns: auto 1fr; }
  .leccion-fila__accion { grid-column: 2; }
  .leccion__pie .btn { width: 100%; }
  #lVolver { margin-left: 0; }
  .card--examen .btn { width: 100%; }
  .arbol__lecciones li { grid-template-columns: auto 1fr; }
  .arbol__lecciones li .row-actions, .arbol__preguntas li .row-actions { grid-column: 1 / -1; }
  .opcion-edit { grid-template-columns: 1fr; }
  .resultado__acciones .btn { width: 100%; }
}

/* ---------- Pagos en línea (panel de administración) ---------- */
.ventas { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid var(--linea); }
.ventas .campus__head h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: .3rem; }
.ventas .notice { margin-bottom: 1.2rem; }
/* Son cinco cifras: se reparten solas sin dejar huecos */
.ventas .stats { margin-bottom: 1.4rem; grid-template-columns: repeat(5, 1fr); }
@media (max-width: 1100px) { .ventas .stats { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px)  { .ventas .stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px)  { .ventas .stats { grid-template-columns: 1fr; } }
.ventas .data-table td:last-child { white-space: nowrap; }
.ventas .data-table td:last-child .btn + .btn { margin-left: .4rem; }
@media (max-width: 860px) {
  .ventas .data-table td:last-child { white-space: normal; }
  .ventas .data-table td:last-child .btn { margin: .2rem .4rem .2rem 0; }
}
