/* Capa propia de la app de cursos sobre el sistema del prototipo. Solo lee tokens. */
a { color: var(--acento-tinta); }
.btn--primario { color: #000; }
.saltar { position: absolute; left: -9999px; }
.saltar:focus { left: 12px; top: 12px; z-index: 200; background: var(--superficie); padding: 8px 12px; border-radius: var(--r-1); }
h1 { font-weight: 800; }

/* Logo MM: color en claro, negativo en oscuro. Proporción 11,76 : 1 */
.marca-mm { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 7px; text-decoration: none !important; }
.marca-mm__logo { display: block; width: 164px; height: 14px; background: url(/assets/morgansmedia_color.svg) left center / contain no-repeat; }
.marca-mm__sub { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--tinta-3); font-weight: 500; }
.marca-mm--neg .marca-mm__logo { background-image: url(/assets/morgansmedia_negativo.svg); }
.marca-mm--neg .marca-mm__sub { color: #8a929b; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .marca-mm__logo { background-image: url(/assets/morgansmedia_negativo.svg); } }
:root[data-tema="oscuro"] .marca-mm__logo { background-image: url(/assets/morgansmedia_negativo.svg); }
.al__lado .logo { padding: 2px 12px 26px; }
.al__lado .marca-mm__logo { width: 176px; height: 15px; }
.lado-yo { margin-top: auto; display: flex; align-items: center; gap: 10px; padding: 10px 8px 0; border-top: 1px solid var(--hilo); font-size: .9375rem; }
.lado-yo small { display: block; color: var(--tinta-3); font-size: .8125rem; }
.al__barra .btn-icono[data-tema-cambiar], .al__barra .avatar { display: none; }
@media (max-width: 900px) { .al__barra .btn-icono[data-tema-cambiar], .al__barra .avatar { display: inline-grid; } .al__barra .marca-mm { flex-direction: row; align-items: center; gap: 10px; } .al__barra .marca-mm__logo { width: 140px; height: 12px; } }
.volver { margin-left: -10px; }
.toast-fijo { margin-bottom: var(--e-5); }

/* ---------- Acceso (ingresar / unirse) ---------- */
body.acceso { background: var(--superficie); }
.acceso__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100vh; }
.acceso__lado { background: #000; color: #fff; padding: 48px clamp(24px, 5vw, 72px); display: flex; flex-direction: column; justify-content: space-between; gap: 48px; position: relative; overflow: hidden; }
.acceso__lado::after { content: ""; position: absolute; right: -90px; bottom: -90px; width: 320px; height: 320px; border-radius: 50%; background: var(--acento); }
.acceso__lado .marca-mm__logo { width: 210px; height: 18px; }
.acceso__mensaje { max-width: 30rem; position: relative; z-index: 1; }
.acceso__mensaje h1 { color: #fff; font-size: clamp(2.25rem, 4.4vw, 3.5rem); line-height: .92; letter-spacing: -0.03em; margin-bottom: 20px; }
.acceso__mensaje p { color: #c9ced4; font-size: 1.0625rem; }
.acceso__rotulo { font-family: var(--font-mono); font-size: 12px !important; letter-spacing: .14em; text-transform: uppercase; color: var(--acento) !important; margin-bottom: 18px; }
.acceso__pie { font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #8a929b; position: relative; z-index: 1; }
.acceso__form { display: flex; flex-direction: column; justify-content: center; padding: 48px clamp(20px, 6vw, 96px); gap: 20px; max-width: 560px; width: 100%; }
.acceso__form h2 { font-size: 1.75rem; line-height: 1.05; }
.acceso__form .btn { min-height: 50px; font-size: 1rem; }
@media (max-width: 860px) {
  .acceso__in { grid-template-columns: 1fr; min-height: 0; }
  .acceso__lado { padding: 28px 20px 32px; gap: 28px; }
  .acceso__lado::after { width: 120px; height: 120px; right: -50px; top: -50px; bottom: auto; }
  .acceso__mensaje h1 { font-size: 2rem; margin-bottom: 12px; }
  .acceso__mensaje p:not(.acceso__rotulo) { font-size: 1rem; }
  .acceso__pie { display: none; }
  .acceso__form { padding: 28px 20px 48px; max-width: none; }
}
.ojo { position: relative; }
.ojo .entrada { padding-right: 48px; }
.ojo button { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); }
.campo__ayuda { font-size: var(--t-micro); color: var(--tinta-3); }

/* ---------- Inicio ---------- */
.saludo h1 { font-size: clamp(2rem, 4vw, 2.75rem); line-height: .94; letter-spacing: -0.03em; }
.seguir { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 0; background: #000; color: #fff; border-radius: var(--r-3); overflow: hidden; text-decoration: none !important; }
.seguir__img { background: #000 center / cover no-repeat; position: relative; min-height: 170px; aspect-ratio: 16 / 9; }
.seguir__img .cod { font-family: var(--font-titulo); font-weight: 800; font-size: 4.5rem; letter-spacing: -0.04em; color: var(--acento); line-height: 1; }
.seguir__img .play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 0 6px rgba(0,0,0,.35); width: 48px; height: 48px; border-radius: 50%; background: var(--acento); color: #000; display: grid; place-items: center; }
.seguir__txt { padding: 24px 28px; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.seguir__txt h2 { color: #fff; font-size: 1.5rem; line-height: 1.08; }
.seguir__txt .t-2 { color: #b9bfc7; }
.seguir__txt .rotulo { color: var(--acento); font-family: var(--font-mono); letter-spacing: .12em; text-transform: uppercase; }
.seguir:hover .play { background: var(--acento-hover); }
@media (max-width: 720px) { .seguir { grid-template-columns: 1fr; } .seguir__img { min-height: 0; } .seguir__txt { padding: 18px 20px 22px; } .seguir__txt h2 { font-size: 1.25rem; } }
.cifra { font-family: var(--font-titulo); font-weight: 800; font-size: 2.5rem; line-height: .9; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.cifra small { font-size: 1rem; color: var(--tinta-3); font-weight: 600; letter-spacing: 0; }
.modulos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-4); }
@media (max-width: 720px) { .modulos { grid-template-columns: 1fr; } }
.modulo-t { display: flex; flex-direction: column; gap: 10px; }
.modulo-t .barra { height: 5px; }

/* ---------- Programa ---------- */
.mod-cabeza { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.mod-cabeza .t-mono { color: var(--acento-tinta); font-size: .8125rem; letter-spacing: .1em; }
.lista .leccion-fila { display: flex; align-items: center; gap: 14px; padding: 14px 18px; }
.leccion-fila b { font-weight: 600; }
.leccion-fila .cod { font-family: var(--font-mono); font-size: .8125rem; color: var(--tinta-3); width: 44px; flex: none; }
.leccion-fila .dur { font-family: var(--font-mono); font-size: .8125rem; color: var(--tinta-3); flex: none; }
.leccion-fila .mini { width: 64px; flex: none; }
@media (max-width: 720px) { .leccion-fila .cod { display: none; } .leccion-fila .mini { display: none; } .lista .leccion-fila { padding: 14px; } }

/* ---------- Lección ---------- */
.video-caja { position: relative; background: #000; border-radius: var(--r-3); overflow: hidden; aspect-ratio: 16 / 9; }
.video-caja video { width: 100%; height: 100%; display: block; background: #000; }
.leccion-cab .t-mono { color: var(--acento-tinta); letter-spacing: .1em; font-size: .8125rem; }
.leccion-cab h1 { font-size: clamp(1.625rem, 3vw, 2.25rem); line-height: 1.02; letter-spacing: -0.025em; }
.estado-vista { display: inline-flex; align-items: center; gap: 8px; font-size: .9375rem; color: var(--tinta-2); }
.estado-vista--ok { color: var(--ok); font-weight: 600; }
.bloque { display: flex; flex-direction: column; gap: 14px; }
.bloque > h2 { font-size: 1.25rem; line-height: 1.15; }
.prosa p { margin-bottom: 12px; color: var(--tinta-2); }
.prosa ul { margin: 0 0 12px; padding-left: 20px; color: var(--tinta-2); }
.prosa b { color: var(--tinta); }
.capitulos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; }
.capitulos li { display: flex; gap: 10px; color: var(--tinta-2); font-size: 1rem; line-height: 1.4; }
.capitulos li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--acento); flex: none; margin-top: 8px; }
@media (max-width: 720px) { .capitulos { grid-template-columns: 1fr; } }
.prompt { border: 1px solid var(--hilo); border-radius: var(--r-2); background: var(--superficie); overflow: hidden; }
.prompt__cab { display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 16px; border-bottom: 1px solid var(--hilo); background: var(--superficie-2); }
.prompt__cab b { font-size: .9375rem; flex: 1; min-width: 0; }
.prompt pre { margin: 0; padding: 14px 16px; white-space: pre-wrap; word-break: break-word; font-family: var(--font-texto); font-size: .9375rem; line-height: 1.6; color: var(--tinta); }
.reto { background: #000; color: #fff; border-radius: var(--r-3); padding: 26px 28px; display: flex; flex-direction: column; gap: 14px; }
.reto h2 { color: #fff; }
.reto .rotulo { color: var(--acento); font-family: var(--font-mono); letter-spacing: .12em; text-transform: uppercase; }
.reto p { color: #d5d9de; font-size: 1.0625rem; }
.reto textarea.entrada { background: #14181d; border-color: #343b45; color: #e8eaed; min-height: 150px; }
.reto textarea.entrada:focus { border-color: var(--acento); box-shadow: 0 0 0 3px rgba(0,174,240,.25); }
.reto .t-3 { color: #8a929b; }
.reto .btn--secundario { background: transparent; color: #fff; border-color: #343b45; }
.comentario-profe { background: #0b2633; border-radius: var(--r-2); padding: 14px 16px; color: #e8eaed; }
.comentario-profe b { color: var(--acento); }
@media (max-width: 720px) { .reto { padding: 20px 18px; border-radius: var(--r-2); } }
.recordar { border-left: 3px solid var(--acento); padding: 4px 0 4px 18px; display: flex; flex-direction: column; gap: 6px; color: var(--tinta-2); }
.recordar b { color: var(--tinta); }
.archivo { display: flex; align-items: center; gap: 14px; padding: 14px 16px; color: inherit; text-decoration: none !important; }
.archivo:hover { background: var(--superficie-2); }
.archivo__ico { width: 40px; height: 40px; border-radius: 12px; background: var(--acento-suave); color: var(--acento-tinta); display: grid; place-items: center; flex: none; }
.archivo__ico svg { width: 20px; height: 20px; }
.archivo b { font-weight: 600; display: block; }
.archivo .fila-meta { font-size: .875rem; }
.pasos-nav { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-4); }
.pasos-nav a { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border: 1px solid var(--hilo); border-radius: var(--r-2); color: inherit; text-decoration: none !important; background: var(--superficie); }
.pasos-nav a:hover { border-color: var(--hilo-fuerte); }
.pasos-nav a small { color: var(--tinta-3); font-family: var(--font-mono); font-size: .75rem !important; letter-spacing: .08em; text-transform: uppercase; }
.pasos-nav .sig { text-align: right; grid-column: 2; }
@media (max-width: 720px) { .pasos-nav { grid-template-columns: 1fr; } .pasos-nav .sig { grid-column: 1; } }
.nota-estado { font-size: .8125rem; color: var(--tinta-3); min-height: 1.2em; }
.lado-leccion { position: sticky; top: 16px; }
@media (max-width: 1100px) { .lado-leccion { position: static; } }

/* ---------- Tarjeta ---------- */
.tarjeta-plan { border: 2px solid var(--tinta); border-radius: var(--r-3); padding: 26px; background: var(--superficie); }
.tarjeta-plan .t-mono { letter-spacing: .1em; font-size: .8125rem; color: var(--acento-tinta); }
.metas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border: 1px solid var(--hilo); border-radius: var(--r-3); background: var(--superficie); }
.metas > div { padding: 18px 20px; border-left: 1px solid var(--hilo); }
.metas > div:first-child { border-left: 0; }
@media (max-width: 720px) { .metas > div { padding: 14px 12px; } .metas .cifra { font-size: 1.75rem; } .tarjeta-plan { padding: 18px; } }
.puntos3 { display: flex; gap: 8px; }
.puntos3 i { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--hilo-fuerte); }
.puntos3 i.si { background: var(--acento); border-color: var(--acento); }
.plan-grilla { align-items: start; gap: var(--e-6); }
.dos-col { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-4); }
@media (max-width: 720px) { .dos-col { grid-template-columns: 1fr; } }

/* ---------- Admin ---------- */
.copiar-enlace { display: flex; gap: 8px; align-items: center; }
.copiar-enlace input { font-family: var(--font-mono); font-size: .8125rem; }
.mini-barra { display: inline-block; width: 80px; height: 6px; border-radius: 99px; background: var(--hilo); overflow: hidden; vertical-align: middle; margin-right: 8px; }
.mini-barra i { display: block; height: 100%; background: var(--acento); }
.reto-item { border: 1px solid var(--hilo); border-radius: var(--r-2); background: var(--superficie); padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.reto-item blockquote { margin: 0; white-space: pre-wrap; color: var(--tinta); font-size: .9375rem; background: var(--superficie-2); border-radius: var(--r-1); padding: 12px 14px; max-height: 280px; overflow: auto; }
.tabla td .t-mono, .tabla td small { color: var(--tinta-3); }
@media (max-width: 720px) {
  .tabla--apila thead { display: none; }
  .tabla--apila tr { display: block; border-bottom: 1px solid var(--hilo); padding: 8px 0; }
  .tabla--apila td { display: flex; justify-content: space-between; gap: 12px; border: 0; padding: 6px 16px; }
  .tabla--apila td::before { content: attr(data-rotulo); color: var(--tinta-3); font-size: .8125rem; }
}
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .reto, :root:not([data-tema="claro"]) .seguir { border: 1px solid var(--hilo-fuerte); } }
:root[data-tema="oscuro"] .reto, :root[data-tema="oscuro"] .seguir { border: 1px solid var(--hilo-fuerte); }
.pista-movil { margin: 0; } .pista-movil svg { display: inline-block; vertical-align: -3px; margin-right: 4px; }

/* ---------- Contrata tus cuentas ---------- */
.planes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-5); align-items: start; }
@media (max-width: 900px) { .planes { grid-template-columns: 1fr; } }
.plan { background: var(--superficie); border: 1px solid var(--hilo); border-radius: var(--r-3); padding: 28px; display: flex; flex-direction: column; gap: 18px; }
.plan--destacado { border: 2px solid var(--acento); }
.plan__cab { display: flex; gap: 14px; align-items: center; }
.plan__cab h2 { font-size: 1.375rem; line-height: 1.1; margin-top: 2px; }
.plan__marca { width: 48px; height: 48px; border-radius: 16px; background: var(--acento); color: #000; display: grid; place-items: center; flex: none; }
.plan__marca--negro { background: #000; color: var(--acento); }
.plan__precio { margin: 0; font-size: 1rem; color: var(--tinta-2); }
.plan__precio b { font-family: var(--font-titulo); font-size: 1.75rem; color: var(--tinta); letter-spacing: -0.02em; margin-right: 4px; }
.incluye { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.incluye li { display: flex; gap: 10px; align-items: flex-start; color: var(--tinta-2); line-height: 1.45; }
.incluye li svg { color: var(--ok); flex: none; margin-top: 3px; }
.incluye b { color: var(--tinta); font-weight: 600; }
.codigo-ref { background: var(--acento-suave); border-radius: var(--r-2); padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.codigo-ref__fila { display: flex; gap: 10px; align-items: center; }
.codigo-ref code { font-family: var(--font-mono); font-size: 1.0625rem; font-weight: 500; letter-spacing: .06em; flex: 1; color: var(--tinta); }
@media (max-width: 720px) { .plan { padding: 20px; } }

/* ---------- Ronda de diseño (QA 1-oct) ---------- */
.al [id] { scroll-margin-top: 80px; }
.al .btn--chico { min-height: 42px; font-size: .9375rem; }
.al__pestanas a { font-size: 13px !important; }
.avatar.a2 { background: #000; color: #fff; }
.video-caja { position: relative; }
.video-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 76px; height: 76px; border-radius: 50%; border: 0; background: var(--acento); color: #000; display: grid; place-items: center; cursor: pointer; box-shadow: 0 0 0 8px rgba(0,0,0,.35); }
.video-play svg { width: 32px; height: 32px; fill: #000; margin-left: 4px; }
.video-play:hover { background: var(--acento-hover); }
.estado-fila #btn-siguiente { min-height: 46px; }
.archivos-reto { display: flex; flex-direction: column; gap: 6px; }
.archivo-reto { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: var(--r-2); background: #14181d; color: #e8eaed !important; text-decoration: none !important; border: 1px solid #252b33; }
.archivo-reto:hover { border-color: var(--acento); }
.archivo-reto svg { color: var(--acento); flex: none; }
.archivo-reto .t-mono { font-size: .75rem; color: #8a929b; }
.reto .rotulo { font-size: .8125rem; }
.reto-editar summary, .mas-prompts summary { cursor: pointer; font-weight: 600; font-size: .9375rem; display: inline-flex; align-items: center; gap: 6px; padding: 8px 0; list-style: none; }
.reto-editar summary::-webkit-details-marker, .mas-prompts summary::-webkit-details-marker { display: none; }
.reto .reto-editar summary { color: #c9ced4; }
.mas-prompts summary { color: var(--acento-tinta); }
.mas-prompts[open] summary svg { transform: rotate(180deg); }
.mas-prompts > .pila-3 { margin-top: 8px; }
.mod-fila { display: flex; align-items: center; gap: 16px; padding: 16px 18px !important; }
.mod-fila b { display: block; font-weight: 600; }
.mod-fila__barra { width: 32%; flex: none; }
.avance3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.avance3 > div { display: flex; flex-direction: column; gap: 6px; }
.avance3 .cifra { font-size: 2rem; }
.avance3 span:not(.cifra) { font-size: .875rem; color: var(--tinta-2); line-height: 1.25; }
.plan-dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; }
.plan-dl dt { font-size: .8125rem; color: var(--tinta-3); }
.plan-dl dd { margin: 2px 0 0; font-weight: 600; }
.tarjeta-plan .reto-editar summary { color: var(--acento-tinta); }
.kpi--link { color: inherit !important; text-decoration: none !important; }
.kpi--link .t-chico { color: var(--acento-tinta); font-weight: 600; }
.kpi--link:hover { background: var(--superficie-2); }
@media (max-width: 720px) {
  .pasos-nav .sig { text-align: left; }
  .estado-fila { flex-direction: column; align-items: stretch; }
  .estado-fila > .fila { justify-content: space-between; }
  .estado-fila #btn-siguiente { width: 100%; order: 3; }
  .mod-fila__barra { width: 28%; }
  .plan-dl { grid-template-columns: 1fr; }
  .video-play { width: 60px; height: 60px; }
}
/* En oscuro, el reto pasa a celeste con texto negro (un protagonista por pantalla) */
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .reto { background: var(--acento); color: #000; border: 0; } }
:root[data-tema="oscuro"] .reto { background: var(--acento); color: #000; border: 0; }
:root[data-tema="oscuro"] .reto h2, :root[data-tema="oscuro"] .reto p, :root[data-tema="oscuro"] .reto .rotulo, :root[data-tema="oscuro"] .reto .reto-editar summary { color: #000; }
:root[data-tema="oscuro"] .reto .btn--primario { background: #000; color: #fff; }
:root[data-tema="oscuro"] .reto textarea.entrada { background: #fff; color: #000; border-color: #000; }
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .reto h2, :root:not([data-tema="claro"]) .reto p, :root:not([data-tema="claro"]) .reto .rotulo, :root:not([data-tema="claro"]) .reto .reto-editar summary { color: #000; }
  :root:not([data-tema="claro"]) .reto .btn--primario { background: #000; color: #fff; }
  :root:not([data-tema="claro"]) .reto textarea.entrada { background: #fff; color: #000; border-color: #000; }
}
.leccion, .leccion-cuerpo, .prosa, .recordar, .reto, .prompt { min-width: 0; overflow-wrap: break-word; }
.prosa .t-mono, .recordar .t-mono, .prompt pre { overflow-wrap: anywhere; }
