/* Pantallas de compra y de cuenta del curso (venta, bloqueo, alta, entrada,
   recuperacion de contrasenya, perfil y area del alumno). Se carga SIEMPRE
   despues de temario.css, de la que hereda
   la paleta, las tipografias y los botones. Aqui solo lo propio de estas
   pantallas: formularios, avisos y el listado de modulos del alumno. */

.pagina{padding:clamp(34px,7vw,72px) 0 clamp(56px,9vw,96px)}
.pagina .shell{max-width:820px}
.pagina .eyebrow{margin-bottom:14px}
.pagina h1{font-family:var(--display);font-size:clamp(30px,6.2vw,50px);line-height:1.04;
  letter-spacing:-.028em;margin-bottom:14px}
.pagina .lead{max-width:62ch}
.pagina .panel + .panel{margin-top:20px}

.cuenta{display:inline-flex;flex-direction:column;gap:6px;padding:16px 22px;margin-top:6px;
  background:var(--soft);border:1px solid rgba(14,110,96,.30);border-radius:var(--radius)}
.cuenta small{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:700}
.cuenta b{font-family:var(--display);font-size:clamp(26px,5vw,34px);letter-spacing:.05em;line-height:1}
.cuenta b.mini{font-family:inherit;font-size:17px;font-weight:600;letter-spacing:0;word-break:break-all}

.datos{margin-top:18px;display:grid;gap:12px}
.datos>div{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline;
  padding-bottom:12px;border-bottom:1px solid var(--line-2)}
.datos>div:last-child{border-bottom:0;padding-bottom:0}
.datos dt{flex:none;min-width:150px;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);font-weight:700}
.datos dd{font-size:16px;color:var(--ink);word-break:break-word}

.form{margin-top:22px;display:grid;gap:12px;max-width:520px}
.form label{font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.form input[type=email],.form input[type=password],.form input[type=text]{width:100%;font:inherit;
  font-size:16px;color:var(--ink);background:var(--surface);border:1px solid rgba(21,24,28,.54);
  border-radius:var(--radius);padding:14px 16px}
.form input::placeholder{color:var(--ink-3)}
.form input:focus{outline:2px solid var(--accent-2);outline-offset:2px;border-color:transparent}
.form label+label{margin-top:4px}
.form .check{display:flex;align-items:center;gap:10px;text-transform:none;letter-spacing:0;
  font-size:14.5px;font-weight:400;color:var(--ink-2);cursor:pointer}
.form .check input{width:18px;height:18px;flex:none;accent-color:var(--accent);cursor:pointer}
.form button{font:inherit;cursor:pointer;border:0}
.form .fina{font-size:13.5px;color:var(--ink-3);line-height:1.55}
.form .fina a{color:var(--ink-2)}

.nota{margin-top:20px;padding:16px 18px;border-radius:var(--radius);font-size:15px;line-height:1.6;
  border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2)}
.nota.ok{border-color:rgba(14,110,96,.34);background:var(--soft);color:var(--ink)}
.nota.mal{border-color:rgba(176,42,26,.32);background:rgba(176,42,26,.06);color:var(--ink)}
.nota b{color:var(--ink)}

.listam{display:grid;gap:12px;margin-top:26px}
.itemm{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:18px 20px;
  background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-lg)}
.itemm .n{font-family:var(--display);font-size:24px;line-height:1;color:var(--ink-3);flex:none;width:2ch}
.itemm .t{flex:1 1 260px;min-width:0}
.itemm .t b{display:block;font-size:17px;font-weight:600;letter-spacing:-.012em}
.itemm .t span{display:block;font-size:14px;color:var(--ink-3);margin-top:2px}
.itemm .btn{flex:none}
.itemm.abierto{border-color:rgba(14,110,96,.30)}
.chip-estado{flex:none;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;
  color:var(--ink-3);border:1px solid var(--line-2);border-radius:var(--radius-pill);padding:7px 14px}
.chip-estado.libre{color:var(--accent);border-color:rgba(14,110,96,.34);background:var(--soft)}
/* Modulo cerrado hasta la compra: candado a la vista, ficha atenuada y sin
   enlace a la leccion (el boton lleva a la pagina de compra). */
.chip-estado.bloq{display:inline-flex;align-items:center;gap:7px;color:var(--ink-3);
  border-color:var(--line-2);background:var(--bg-2)}
.chip-estado.bloq svg{width:13px;height:13px;flex:none}
/* La palabra "gratis" dentro del boton de la muestra: verde de marca
   (--accent) y en mayusculas. El resto del texto del boton se queda
   con su color normal. */
.palabra-gratis{color:var(--accent);text-transform:uppercase;font-weight:700;letter-spacing:.05em}
.itemm.bloqueado{background:var(--bg-2);border-style:dashed}
.itemm.bloqueado .t b{color:var(--ink-2)}

.incluye{margin-top:22px;display:grid;gap:9px}
.incluye li{position:relative;padding-left:26px;color:var(--ink-2);font-size:15.5px;line-height:1.55}
.incluye li::before{content:"";position:absolute;left:2px;top:.42em;width:12px;height:7px;
  border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);
  transform:rotate(-45deg);border-radius:1px}

.ayuda{margin-top:clamp(34px,6vw,54px);padding:clamp(22px,4.4vw,32px);border-radius:var(--radius-lg);
  border:1px solid var(--line-2);background:var(--surface)}
.ayuda h2{font-family:var(--display);font-size:clamp(21px,3.6vw,27px);letter-spacing:-.02em}
.ayuda>p{margin-top:12px;color:var(--ink-2);font-size:15.5px;max-width:64ch}
.ayuda .svcs{display:grid;gap:14px;margin-top:20px}
.ayuda .svcs>div{padding:16px 18px;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--bg-2)}
.ayuda .svcs b{display:block;font-size:15.5px;font-weight:600}
.ayuda .svcs p{margin-top:6px;font-size:14.5px;color:var(--ink-3);line-height:1.6}
.ayuda .actions{margin-top:22px}
@media(min-width:760px){.ayuda .svcs{grid-template-columns:repeat(3,1fr)}}

/* ---------- cabecera del alumno identificado ---------- */
/* Acceso rapido (Mis cursos / Mi cuenta) a la izquierda del control de salida,
   que va SIEMPRE arriba a la derecha: icono de puerta en rojo y el rotulo
   «Cerrar sesión» debajo. El rojo es exclusivo de este control; el resto de la
   barra sigue en el verde legible (--accent, #0E6E60). */
.bar-nav{margin-left:auto;display:flex;flex-wrap:nowrap;align-items:center;gap:8px}
.bar-nav .bar-cta{margin-left:0}
.bar-nav .bar-cta.ghost{opacity:.86}
.bar-alumno{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:0}
.bar-alumno .bar-nav{margin-left:0}

.bar-salir{--salir:#A52A1B;--salir-2:#8A2214;
  margin-left:10px;flex:none;display:inline-flex;flex-direction:column;align-items:center;
  justify-content:center;gap:3px;line-height:1;text-decoration:none;color:var(--salir);
  padding:5px 8px;border-radius:12px;border:1px solid transparent;
  transition:color .2s,background .2s,border-color .2s}
.bar-salir svg{width:21px;height:21px;flex:none;display:block;color:currentColor}
.bar-salir .bar-salir-t{font-size:10px;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.bar-salir:hover{color:var(--salir-2);background:rgba(165,42,27,.07);border-color:rgba(165,42,27,.38)}
.bar-salir:focus-visible{outline:2px solid var(--salir-2);outline-offset:2px}
/* Movil: los enlaces de acceso rapido se quedan en icono y el control de
   salida conserva icono y rotulo; solo en pantallas muy estrechas cae el
   rotulo (el icono y el aria-label siguen ahi). */
@media(max-width:600px){.bar-nav .bar-cta span{display:none}.bar-nav .bar-cta{padding:9px 11px}}
@media(max-width:360px){.bar-salir .bar-salir-t{display:none}.bar-salir{padding:6px}}

.lema{margin-top:14px;font-size:14px;color:var(--ink-3)}
/* Lema oficial de marca: "Tu cuenta, siempre en verde." SOLO la palabra
   "verde" va en verde; "Tu cuenta, siempre en" toma el color de texto normal
   de la superficie. Aqui el lema es texto menudo (14px), asi que se pinta con
   --accent (#0E6E60, el mismo verde mas oscuro) para que tenga contraste
   suficiente sobre fondo claro. */
.lema em{font-style:normal;color:var(--accent);font-weight:700}

/* --------------------------- pantalla de descargas ---------------------------
   /curso/suspensiones/descargas: las plantillas de trabajo y los checklists.
   Solo la ve quien tiene la compra; la ruta lo comprueba contra la base de
   datos y, si no, redirige. */
.dl-lista{list-style:none;margin-top:16px;display:grid;gap:10px}
.dl-fila{display:flex;gap:14px;align-items:center;flex-wrap:wrap;
  padding:14px 16px;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--bg-2)}
.dl-fila .dl-n{flex:none;font-family:var(--display);font-size:19px;font-weight:600;
  color:var(--accent);min-width:1.6em;letter-spacing:-.02em}
.dl-fila .dl-t{flex:1 1 240px;min-width:0}
.dl-fila .dl-t b{display:block;font-size:15.5px;font-weight:650;line-height:1.35}
.dl-fila .dl-t span{display:block;margin-top:3px;font-size:13px;color:var(--ink-3)}
.dl-fila .dl-btns{flex:none;display:flex;gap:8px;flex-wrap:wrap}
.dl-fila .btn{padding:9px 13px;font-size:13.5px}
.dl-fila .btn svg{width:16px;height:16px}
@media(max-width:560px){.dl-fila .dl-btns{width:100%}.dl-fila .dl-btns .btn{flex:1 1 auto;justify-content:center}}
