:root{
  --crema:#F6F0E7; --crema-2:#EFE5D6; --papel:#FFFCF7;
  --espresso:#2B1D16; --tostado:#5A4032; --texto:#3A2C24; --suave:#7A6658;
  --terracota:#B5562E; --terracota-osc:#96441F; --verde:#4F5D3A; --oro:#E2A07E;
  --borde:#E2D5C3; --radio:14px;
  --serif:"Fraunces", Georgia, "Times New Roman", serif;
  --sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--crema);color:var(--texto);font-family:var(--sans);font-size:16px;line-height:1.6}
a{color:var(--terracota-osc)}
h1,h2,h3{font-family:var(--serif);color:var(--espresso);font-weight:600;line-height:1.2;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(1.6rem,4vw,2.2rem)} h2{font-size:1.35rem} h3{font-size:1.1rem}
.barra{background:var(--espresso);color:#FFF7EC}
.barra .cont{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px}
.marca{font-family:var(--serif);font-size:1.15rem;color:#FFF7EC;text-decoration:none;white-space:nowrap}
.barra nav{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.barra nav a,.barra nav button{color:#F3E6D6;background:none;border:0;font:inherit;font-size:.92rem;padding:6px 10px;border-radius:8px;cursor:pointer;text-decoration:none}
.barra nav a:hover,.barra nav button:hover{background:rgba(255,255,255,.1)}
.cont{max-width:980px;margin:0 auto;padding:0 16px}
main.cont{padding-top:28px;padding-bottom:64px}
.tarjeta{background:var(--papel);border:1px solid var(--borde);border-radius:var(--radio);padding:20px}
.pila>*+*{margin-top:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--terracota);color:#fff;border:0;border-radius:10px;padding:12px 20px;font:600 1rem var(--sans);cursor:pointer;text-decoration:none}
.btn:hover{background:var(--terracota-osc)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.sec{background:transparent;color:var(--espresso);border:1.5px solid var(--espresso)}
.btn.sec:hover{background:var(--crema-2)}
input[type=email],input[type=text],textarea{width:100%;font:inherit;padding:12px 14px;border:1.5px solid var(--borde);border-radius:10px;background:#fff;color:var(--texto)}
input:focus,textarea:focus,.btn:focus-visible{outline:3px solid var(--oro);outline-offset:1px}
label{display:block;font-weight:600;font-size:.92rem;margin-bottom:6px;color:var(--espresso)}
.suave{color:var(--suave)} .peq{font-size:.88rem}
.aviso{background:#FBEFE4;border:1px solid #F0CDB4;color:var(--tostado);border-radius:10px;padding:12px 14px}
.ok{background:#EEF2E6;border:1px solid #C9D5B5;color:var(--verde);border-radius:10px;padding:12px 14px}
.error{background:#FBE9E5;border:1px solid #EBB9AD;color:#8A2E1A;border-radius:10px;padding:12px 14px}
.oculto{display:none!important}

/* Panel */
.avance{height:10px;background:var(--crema-2);border-radius:99px;overflow:hidden}
.avance i{display:block;height:100%;background:var(--verde);border-radius:99px;transition:width .4s}
.niveles{display:grid;gap:14px}
.nivel{background:var(--papel);border:1px solid var(--borde);border-radius:var(--radio);overflow:hidden}
.nivel>header{display:flex;align-items:center;gap:14px;padding:16px 18px}
.nivel .num{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font:600 1.05rem var(--serif);background:var(--crema-2);color:var(--espresso)}
.nivel.aprobado .num{background:var(--verde);color:#fff}
.nivel.bloqueado{opacity:.7}
.nivel.bloqueado .num{background:#E9E1D6;color:var(--suave)}
.nivel h3{margin:0;font-size:1.05rem}
.nivel .estado{font-size:.85rem;color:var(--suave)}
.nivel ol{list-style:none;margin:0;padding:0 18px 8px;border-top:1px solid var(--borde)}
.nivel li{border-bottom:1px solid var(--crema-2)}
.nivel li:last-child{border-bottom:0}
.nivel li a,.nivel li span.l{display:flex;gap:12px;align-items:baseline;padding:11px 0;text-decoration:none;color:var(--texto)}
.nivel li a:hover .t{color:var(--terracota-osc)}
.nivel .marca-l{flex:none;width:20px;color:var(--verde);font-weight:700}
.nivel .t{flex:1}
.nivel .min{flex:none;font-size:.82rem;color:var(--suave)}
.nivel footer{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:12px 18px 16px;background:var(--crema)}
.premio{font-size:.85rem;color:var(--tostado)}
.premio::before{content:"🎁 "}

/* Lección */
.migas{font-size:.88rem;color:var(--suave);margin-bottom:10px}
.migas a{color:var(--suave)}
.video{aspect-ratio:16/9;background:var(--espresso);border-radius:var(--radio);display:grid;place-items:center;color:#F3E6D6;text-align:center;padding:20px;overflow:hidden}
.video iframe{width:100%;height:100%;border:0}
.apuntes{font-size:1.04rem;max-width:68ch}
.apuntes p{margin:0 0 1em}
.apuntes table{border-collapse:collapse;width:100%;font-size:.95rem;margin:1em 0;display:block;overflow-x:auto}
.apuntes th,.apuntes td{border:1px solid var(--borde);padding:8px 10px;text-align:left}
.apuntes th{background:var(--crema-2)}
.dos-col{display:grid;gap:22px}
@media(min-width:900px){.dos-col{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.lateral{position:sticky;top:16px}}
.acciones{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

/* Asistente */
.chat{display:flex;flex-direction:column;max-height:70vh}
.chat .msgs{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px 0 10px;min-height:120px}
.msg{padding:10px 12px;border-radius:12px;font-size:.95rem;white-space:pre-wrap;max-width:92%}
.msg.alumno{align-self:flex-end;background:var(--espresso);color:#FFF7EC}
.msg.asistente{align-self:flex-start;background:var(--crema-2)}
.chat form{display:flex;gap:8px}
.chat textarea{min-height:46px;max-height:140px;resize:vertical;font-size:.95rem}

/* Quiz */
.pregunta{border:1px solid var(--borde);border-radius:12px;padding:16px;background:var(--papel)}
.pregunta legend{font-weight:600;color:var(--espresso);padding:0 4px}
.opcion{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:8px;cursor:pointer;font-weight:400;color:var(--texto);margin:0}
.opcion:hover{background:var(--crema)}
.opcion input{margin-top:5px;accent-color:var(--terracota)}
.opcion.bien{background:#EEF2E6}
.opcion.mal{background:#FBE9E5}
.explica{font-size:.92rem;color:var(--tostado);margin:8px 10px 0}

/* Recompensas */
.premios{display:grid;gap:14px}
@media(min-width:700px){.premios{grid-template-columns:1fr 1fr}}
.premios .tarjeta.bloq{opacity:.6;border-style:dashed}
.codigo{font:600 1.1rem ui-monospace,Menlo,monospace;background:var(--crema-2);padding:8px 12px;border-radius:8px;display:inline-block;letter-spacing:.04em}

/* Celebración */
.celebra{position:fixed;inset:0;background:rgba(43,29,22,.55);display:grid;place-items:center;padding:16px;z-index:20}
.celebra .tarjeta{max-width:440px;width:100%;text-align:center}

/* Certificado */
.certificado{background:#FFFCF7;border:10px double var(--tostado);padding:48px 28px;text-align:center;max-width:820px;margin:0 auto}
.certificado .nombre{font:600 clamp(1.8rem,5vw,2.8rem) var(--serif);color:var(--espresso);margin:18px 0}
@media print{.barra,.no-imprimir{display:none!important}body{background:#fff}main.cont{padding:0}}

/* Teco, la mascota */
.teco-cabeza{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.teco-cabeza img{flex:none;width:56px;height:auto}
.teco-festeja{width:150px;height:auto;margin:-8px auto 0;display:block;animation:brinco .9s ease-out 1}
@keyframes brinco{0%{transform:translateY(16px) scale(.9);opacity:0}60%{transform:translateY(-6px) scale(1.03);opacity:1}100%{transform:none}}
@media (prefers-reduced-motion:reduce){.teco-festeja{animation:none}}
.insignia{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:#F4E3C1;color:#6B4423;font-size:.8rem;font-weight:600;white-space:nowrap}
.insignia.grande{margin:6px 0 10px;font-size:.95rem;padding:4px 12px}
