:root{--ink:#302326;--muted:#776c6f;--line:#e8e1de;--paper:#fff;--wash:#f8f5f1;--accent:#9b3d5c;--accent-dark:#6a263e;--soft:#f5e9ed;--success:#2f6f55;--shadow:0 18px 50px rgba(48,35,38,.07);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--wash)}
*{box-sizing:border-box}body{margin:0;background:var(--wash)}img{display:block;max-width:100%}a{color:inherit}button{font:inherit}.aula-layout{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}.aula-sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column;z-index:30}.aula-logo{width:150px;margin:0 8px}.aula-group{margin:17px 8px 26px;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em}.aula-nav{display:grid;gap:3px}.aula-nav a{text-decoration:none;padding:11px 13px;border-radius:7px;color:#504649;font-weight:650}.aula-nav a:hover,.aula-nav a.active{background:var(--soft);color:var(--accent-dark)}.aula-sidebar-bottom{margin-top:auto;padding:18px 10px 0;border-top:1px solid var(--line);display:grid;gap:9px}.aula-sidebar-bottom a{font-size:.8rem;text-decoration:none;color:var(--muted)}.aula-logout-link{font-size:.8rem;text-decoration:none;color:var(--muted);background:none;border:0;padding:0;text-align:left;cursor:pointer;font-family:inherit}.aula-logout-link:hover{color:var(--accent-dark)}.close-menu{display:none}.aula-main{min-width:0}.aula-topbar{height:64px;padding:0 clamp(24px,5vw,70px);border-bottom:1px solid var(--line);background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.crumb{font-size:.82rem;color:var(--muted)}.aula-topbar strong{font-family:Georgia,"Times New Roman",serif;font-size:1rem;font-weight:500}.aula-mobile-menu{display:none;border:0;background:transparent;color:var(--accent);font-weight:800}.aula-content{max-width:1160px;margin:0 auto;padding:clamp(34px,6vw,76px) clamp(22px,5vw,70px) 90px}.page-intro{max-width:800px;margin-bottom:36px}.eyebrow{margin:0 0 9px;color:var(--accent);font-weight:800;text-transform:uppercase;letter-spacing:.15em;font-size:.72rem}.page-intro h1,.current-header h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(2.25rem,5vw,4.2rem);line-height:1.06;margin:0 0 14px}.page-intro p{max-width:680px;margin:0;color:var(--muted);font-size:1.03rem;line-height:1.7}
.current-panel{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:clamp(24px,5vw,54px)}.current-header{padding-bottom:28px;border-bottom:1px solid var(--line)}.current-header h1{font-size:clamp(2rem,4vw,3.5rem);margin-bottom:8px}.current-header>p:last-child{margin:0;color:var(--muted);font-size:.9rem}.current-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 46px}.current-group{padding:28px 0;border-bottom:1px solid var(--line)}.current-group h2{margin:0 0 16px;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.current-resource{display:block;text-decoration:none;padding:13px 0;border-top:1px solid #f0ebe8}.current-resource:first-of-type{border-top:0}.current-resource span,.current-resource small{display:block}.current-resource span{font-family:Georgia,"Times New Roman",serif;font-size:1.08rem}.current-resource small{margin-top:5px;color:var(--muted)}.current-resource:hover span{color:var(--accent)}
.topic-list{display:grid;gap:9px}.topic-row,.topic-accordion{background:#fff;border:1px solid var(--line)}.topic-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px}.topic-row strong{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:1.05rem}.topic-row span{color:#9a9193;font-size:.78rem}.topic-accordion>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 20px;cursor:pointer}.topic-accordion>summary::-webkit-details-marker{display:none}.topic-accordion>summary:hover{background:#fcfaf8}.topic-accordion>summary strong{font-family:Georgia,"Times New Roman",serif;font-size:1.12rem;font-weight:500}.topic-accordion>summary>span:last-child{color:var(--accent);font-weight:750;font-size:.78rem}.topic-accordion[open]>summary{background:var(--soft)}.topic-content{border-top:1px solid var(--line);padding:clamp(18px,4vw,34px);display:grid;gap:24px}.practice-section{margin-top:58px}.section-heading{margin-bottom:20px}.section-heading h2{font-family:Georgia,"Times New Roman",serif;font-size:2rem;font-weight:500;margin:0 0 7px}.section-heading p{margin:0;color:var(--muted)}.practice-accordion summary small,.practice-accordion summary strong{display:block}.practice-accordion summary small{margin-bottom:4px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.65rem}
.resource-block{border:1px solid var(--line);border-radius:10px;padding:22px;background:#fff}.resource-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.resource-label{display:block;color:var(--accent);font-size:.67rem;font-weight:850;text-transform:uppercase;letter-spacing:.12em;margin-bottom:5px}.resource-heading h3{font-family:Georgia,"Times New Roman",serif;font-size:1.35rem;font-weight:500;margin:0}.resource-block>p{color:var(--muted);line-height:1.6}.resource-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.resource-status{display:inline-flex;align-items:center;border-radius:99px;padding:7px 10px;font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.resource-status.available{background:#e9f3ed;color:var(--success)}.resource-status.pending{background:#f5e9ed;color:var(--accent-dark)}.download-link{display:inline-flex;align-items:center;text-decoration:none;border:1px solid #d9ceca;border-radius:6px;padding:8px 12px;background:#fff;color:var(--accent);font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.download-link:hover{border-color:var(--accent)}.download-link:disabled{opacity:.6;cursor:wait}.viewer-loading{display:grid;place-items:center;min-height:120px;color:var(--muted);font-size:.9rem}.viewer-error{padding:28px;text-align:center;color:var(--muted)}.viewer-error strong{display:block;color:var(--ink);font-family:Georgia,"Times New Roman",serif;font-size:1.2rem;font-weight:500}.viewer-error p{margin:8px 0 16px}.file-fallback{margin-top:18px;padding:22px;border:1px dashed var(--line);background:var(--wash)}.file-fallback p{margin:0 0 12px;color:var(--muted)}
/* Los dos botones del aviso del móvil. A partir de 540px .download-link pasa a ancho
   completo, así que ahí se apilan solos. */
.file-fallback-acciones{display:flex;flex-wrap:wrap;gap:10px}
/* El PDF dibujado pagina a pagina para el movil: cada pagina es un canvas que ocupa el
   ancho disponible y guarda su proporcion con height:auto. */
.pdf-paginas{display:grid;gap:10px;margin-top:18px}

/* Calendario mes a mes. El anclaje lo hace el navegador: se desliza con el dedo y cada
   mes encaja solo en su sitio, sin quedarse nunca a medias entre dos. */
.pdf-meses{margin-top:18px}
.pdf-meses-barra{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px}
.pdf-meses-barra strong{min-width:12ch;text-align:center;font-size:.86rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-dark,#6a263e)}
.pdf-mes-nota{margin:0 0 12px;text-align:center;font-size:.82rem;line-height:1.45;color:var(--accent-dark,#6a263e);background:rgba(154,44,84,.08);border-radius:10px;padding:8px 12px}
.pdf-mes-flecha{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--accent,#983b5a);font-size:.8rem;cursor:pointer;display:grid;place-content:center}
.pdf-mes-flecha:hover:not(:disabled){border-color:var(--accent,#983b5a);background:var(--soft,#f5e9ed)}
.pdf-mes-flecha:disabled{opacity:.3;cursor:default}
.pdf-meses-pista{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;gap:12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pdf-meses-pista::-webkit-scrollbar{display:none}
.pdf-meses-pista:focus-visible{outline:2px solid var(--accent,#983b5a);outline-offset:3px}
/* Cada mes ocupa el ancho entero y se ancla por el principio, no por el centro: con
   páginas de distinta altura, centrar deja el mes anterior asomando por un lado. */
.pdf-mes{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.pdf-mes canvas{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:8px;background:#fff}
/* El calendario usa todo el ancho que haya. El resto del Aula se lee como un texto y por
   eso va en una columna de 1160px, pero un calendario no se lee: se consulta, y en un
   monitor grande encajarlo en la columna de lectura deja los días a letra de hormiga. El
   titular sigue acotado por .page-intro, así que no se estira la tipografía. */
body[data-page="calendar"] .aula-content{max-width:none}
@media(prefers-reduced-motion:reduce){.pdf-meses-pista{scroll-behavior:auto}}
.pdf-paginas canvas{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:8px;background:#fff}/* El visor de PDF necesita altura propia: al renombrarse el contenedor de .pdf-viewer a
   .resource-viewer se quedó sin ninguna regla, y un iframe sin altura se planta en los
   150px por defecto del navegador. Alto en vez de apaisado, que es lo que pide un A4. */
.resource-viewer iframe{display:block;width:100%;height:clamp(420px,78vh,960px);border:1px solid var(--line);border-radius:8px;background:#fff}
.video-player{display:block;width:100%;max-height:600px;margin-top:18px;background:#171315}.locked-resource{border-style:dashed;background:#faf8f6}.locked-resource>p{margin:12px 0 0}.no-resources{margin:0;color:var(--muted)}
.current-resource{padding:0}.current-resource>summary{display:block;list-style:none;cursor:pointer;padding:13px 0}.current-resource>summary::-webkit-details-marker{display:none}.current-resource>summary span,.current-resource>summary small{display:block}.current-resource>summary span{font-family:Georgia,"Times New Roman",serif;font-size:1.08rem}.current-resource>summary small{margin-top:5px;color:var(--muted)}.current-resource>summary:hover span{color:var(--accent)}.current-resource-content{padding:4px 0 20px}.current-resource-content .resource-block{margin:0}
.empty-state{background:#fff;border:1px solid var(--line);padding:40px;text-align:center}.empty-state strong{font-family:Georgia,"Times New Roman",serif;font-size:1.35rem;font-weight:500}.empty-state p{margin:9px auto 0;color:var(--muted);max-width:560px;line-height:1.6}.empty-state.compact{padding:28px;grid-column:1/-1}.calendar-card{background:#fff;border:1px solid var(--line);padding:clamp(20px,4vw,36px);box-shadow:var(--shadow)}.calendar-card h2{font-family:Georgia,"Times New Roman",serif;font-size:1.8rem;font-weight:500;margin:0}
@media(max-width:820px){.aula-layout{grid-template-columns:1fr}.aula-sidebar{position:fixed;inset:0 auto 0 0;width:270px;transform:translateX(-105%);transition:transform .2s;box-shadow:var(--shadow)}.aula-sidebar.open{transform:translateX(0)}.close-menu{display:block;position:absolute;right:14px;top:14px;border:0;background:transparent;color:var(--accent);font-weight:800}.aula-topbar{padding:0 18px}.aula-mobile-menu{display:block}.aula-content{padding-left:18px;padding-right:18px}.current-groups{grid-template-columns:1fr}.current-group{padding:22px 0}}
@media(max-width:540px){.aula-content{padding-top:30px}.page-intro{margin-bottom:24px}.current-panel{padding:24px 16px}.topic-row,.topic-accordion>summary{padding:16px 14px}.topic-row,.topic-accordion>summary,.resource-heading{align-items:flex-start}.topic-row span{white-space:nowrap}.topic-content{padding:20px 14px}.resource-heading{flex-direction:column}.download-link{width:100%;justify-content:center}.resource-viewer iframe{height:min(70vh,560px)}.calendar-card{padding:18px 12px}}
.subject-section{margin-top:38px}.material-search{display:grid;gap:7px;max-width:620px;margin-top:24px}.material-search span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.material-search input{border:1px solid var(--line);border-radius:7px;padding:12px 14px;background:#fff}.topic-accordion>summary>span:first-child{display:grid;gap:4px}.topic-accordion>summary small{color:var(--muted);font-size:.74rem;font-weight:500}.topic-accordion[hidden],.topic-row[hidden]{display:none}
.subject-progress{margin:0 0 22px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:#fff}
.subject-progress .progress-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:.86rem}
.subject-progress .progress-head strong{font-size:1.35rem;font-variant-numeric:tabular-nums}
.subject-progress .progress-track{margin-top:10px;height:9px;border-radius:99px;background:#efe7ea;overflow:hidden}
.subject-progress .progress-fill{height:100%;border-radius:99px;background:var(--accent,#983b5a);transition:width .3s}
.subject-progress small{display:block;margin-top:8px;color:var(--muted);font-size:.76rem}
.resource-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.view-link{border:1px solid #d9ceca;background:#fff;border-radius:7px;padding:8px 13px;font-weight:750;cursor:pointer}
.view-link:hover{border-color:var(--accent,#983b5a);color:var(--accent,#983b5a)}
/* El círculo de "Completado". Por dentro sigue siendo un <input type="checkbox"> de
   verdad: se le quita la apariencia del sistema y se pinta a mano, así que teclado y
   lector de pantalla siguen funcionando igual. La zona de toque mide 44px aunque el
   círculo se vea de 30: en el móvil un círculo de 30 es imposible de acertar con el dedo. */
.resource-tick{display:flex;align-items:center;justify-content:center;width:44px;height:44px;cursor:pointer}
.resource-tick-texto{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.resource-tick input{appearance:none;-webkit-appearance:none;margin:0;width:30px;height:30px;border:2px solid var(--line);border-radius:50%;background:#fff;cursor:pointer;display:grid;place-content:center;transition:background .18s,border-color .18s,transform .18s}
.resource-tick input::before{content:"";width:13px;height:8px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg) scale(.4);opacity:0;transition:opacity .15s,transform .18s}
.resource-tick input:hover{border-color:var(--accent,#983b5a)}
.resource-tick input:focus-visible{outline:2px solid var(--accent,#983b5a);outline-offset:3px}
.resource-tick input:checked{background:var(--accent,#983b5a);border-color:var(--accent,#983b5a)}
.resource-tick input:checked::before{opacity:1;transform:rotate(-45deg) scale(1) translateY(-1px)}
.resource-tick input:active{transform:scale(.88)}
@media(prefers-reduced-motion:reduce){.resource-tick input,.resource-tick input::before{transition:none}.resource-tick input:active{transform:none}}

/* "Nuevo" lo calcula el servidor comparando con el último día que entró la alumna. Se
   distingue a propósito del círculo: otra forma, otro sitio y otro color, porque uno lo
   maneja ella y se queda, y el otro se va solo. */
.marca-nueva{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:99px;background:var(--soft,#f5e9ed);color:var(--accent-dark,#6a263e);font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}
/* Dentro del desplegable, la cabecera es una rejilla y la pastilla se estiraba de lado
   a lado como una barra. Aqui va suelta bajo el titulo, con su ancho propio. */
.topic-accordion summary .marca-nueva{justify-self:start;margin-left:0}
.nav-novedades{display:inline-grid;place-content:center;min-width:20px;height:20px;margin-left:auto;padding:0 6px;border-radius:99px;background:var(--accent,#983b5a);color:#fff;font-size:.68rem;font-weight:800;font-variant-numeric:tabular-nums}
.aula-nav a{display:flex;align-items:center;gap:8px}
.resource-block.is-completed{border-color:#bcd9c9}
.resource-block.is-highlighted{outline:3px solid var(--accent,#983b5a);outline-offset:3px;transition:outline-color .3s}
.resource-viewer[hidden]{display:none}
.resource-viewer{margin-top:14px}
.current-resource-link{display:grid;gap:3px;padding:13px 15px;border:1px solid var(--line);border-radius:9px;background:#fff;text-decoration:none;color:inherit;margin-bottom:9px}
.current-resource-link:hover{border-color:var(--accent,#983b5a)}
.current-resource-link small{color:var(--muted);font-size:.76rem}
.period-card{margin-bottom:30px}
.period-card.is-previous{opacity:.92}
.period-card.is-previous .current-header .eyebrow{color:var(--muted)}
.preview-bar{position:sticky;top:0;z-index:60;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;padding:11px 20px;background:#2d2024;color:#fff;font-size:.82rem}
.preview-bar strong{color:#f1cbd7;letter-spacing:.06em}
.preview-bar a{margin-left:auto;color:#fff;text-decoration:underline}
body.is-preview .aula-sidebar-bottom a[href="/"]{display:none}
/* "Aula de María" y, debajo, su grupo de preparación. */
.aula-group strong{display:block;color:var(--ink);font-size:.9rem;font-weight:650;letter-spacing:0;text-transform:none}
.aula-group small{display:block;margin-top:5px;font-size:.64rem;letter-spacing:.12em}

/* Portada antes de que arranque el curso. Se lleva el color de la marca porque es lo
   primero que ve una alumna al entrar, y un recuadro gris ahi parece una averia. */
.waiting-room{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(150deg,var(--accent-dark) 0%,var(--accent) 62%,#b5567a 100%);color:#fff;border-radius:3px;padding:clamp(40px,8vw,84px) clamp(22px,6vw,68px);text-align:center;box-shadow:0 26px 70px rgba(106,38,62,.28)}
.waiting-glow{position:absolute;z-index:-1;inset:auto -20% -60% -20%;height:78%;background:radial-gradient(ellipse at 50% 100%,rgba(255,255,255,.28),transparent 68%);pointer-events:none}
.waiting-eyebrow{margin:0 0 16px;font-size:.74rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.waiting-eyebrow span{font-size:.95rem;letter-spacing:0;margin-right:5px}
.waiting-room strong{display:block;font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(2rem,5.4vw,3.4rem);line-height:1.08;text-wrap:balance}
.waiting-date{margin:4px 0 0;font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(2.4rem,7.5vw,4.6rem);line-height:1.04;text-wrap:balance;text-shadow:0 6px 26px rgba(48,18,28,.28)}
.waiting-detail{margin:clamp(22px,4vw,32px) auto 0;max-width:44ch;font-size:1.02rem;line-height:1.7;color:rgba(255,255,255,.93)}
.waiting-detail b{font-weight:600;white-space:nowrap;box-shadow:inset 0 -.5em 0 rgba(255,255,255,.16)}
.aula-heart{vertical-align:-.12em}
.page-intro .simulation-contact{margin-top:14px}
.simulation-contact a{color:var(--accent);overflow-wrap:anywhere}
.waiting-cta{display:inline-block;margin-top:clamp(24px,4vw,34px);padding:13px 26px;border-radius:99px;background:#fff;color:var(--accent-dark);text-decoration:none;font-weight:750;font-size:.94rem;box-shadow:0 10px 26px rgba(48,18,28,.22);transition:transform .16s,box-shadow .16s}
.waiting-cta:hover,.waiting-cta:focus-visible{transform:translateY(-2px);box-shadow:0 14px 32px rgba(48,18,28,.3)}
.waiting-note{margin:26px auto 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.22);max-width:40ch;font-size:.86rem;line-height:1.6;color:rgba(255,255,255,.72)}
@media(prefers-reduced-motion:no-preference){
  .waiting-room>*{animation:waiting-in .55s cubic-bezier(.22,.61,.36,1) backwards}
  .waiting-eyebrow{animation-delay:.05s}.waiting-room strong{animation-delay:.13s}
  .waiting-date{animation-delay:.22s}.waiting-lead{animation-delay:.2s}.waiting-detail{animation-delay:.31s}.waiting-cta{animation-delay:.38s}.waiting-note{animation-delay:.46s}
  @keyframes waiting-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
}

/* Sus correcciones. Es lo mas personal que recibe: su nombre, su nota y lo que le dice
   su profesora, con el texto respetado tal cual se escribio. */
.mis-notas{margin-bottom:44px}
.mis-notas-title{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:1.9rem;margin:0 0 16px}
.nota-card{background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent);box-shadow:var(--shadow);padding:clamp(20px,4vw,32px);margin-bottom:14px}
.nota-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:16px}
.nota-card .eyebrow{margin:0 0 4px}
.nota-card strong{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:500;line-height:1;font-variant-numeric:tabular-nums}
.nota-card>header small{color:var(--muted);font-size:.78rem;white-space:nowrap}
.nota-texto{white-space:pre-wrap;line-height:1.7;font-size:.95rem}
.waiting-lead{margin:18px 0 0;font-size:1rem;color:rgba(255,255,255,.82);letter-spacing:.02em}
.pdf-pagina-pendiente{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.pdf-paginas .pdf-pagina-pendiente canvas{border:0;border-radius:0}
.video-resume{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.simulation-intro,.literature-intro{margin-bottom:24px}
/* Práctica: tests de repaso */
.practica-reglas{margin:18px 0 20px;padding:14px 16px;background:var(--wash);border-radius:10px;max-width:640px}.practica-reglas>p{margin:10px 0 0;color:var(--ink);line-height:1.5;font-size:.92rem}.practica-reglas-mas{margin-top:8px}.practica-reglas-mas summary{cursor:pointer;color:var(--accent);font-weight:700;font-size:.85rem}.practica-reglas-mas p{margin:8px 0 0;color:var(--muted);line-height:1.6;font-size:.88rem}.practica-reglas-mas p strong{color:var(--ink)}
.practica-puntos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}.practica-puntos li{display:flex;align-items:baseline;gap:8px;background:#fff;border-radius:8px;padding:9px 14px}.practica-puntos strong{font-family:Georgia,"Times New Roman",serif;font-size:1.25rem;font-weight:500;font-variant-numeric:tabular-nums}.practica-puntos span{color:var(--muted);font-size:.85rem}
.practica-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.practica-test{background:#fff;border:1px solid var(--line);padding:22px;display:flex;flex-direction:column;gap:16px}.practica-test h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:1.3rem;line-height:1.25;margin:0}.practica-test .eyebrow{margin-bottom:6px}.practica-meta,.practica-sin-intentos{margin:6px 0 0;color:var(--muted);font-size:.82rem}.practica-test .practica-acciones{margin-top:auto}
.practica-datos{display:flex;flex-wrap:wrap;gap:8px;margin:0}.practica-datos div{flex:1 1 80px;background:var(--wash);border-radius:8px;padding:10px 12px}.practica-datos dt{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800}.practica-datos dd{margin:4px 0 0;font-family:Georgia,"Times New Roman",serif;font-size:1.45rem;font-variant-numeric:tabular-nums}
.practica-acciones{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.practica-boton{border:0;border-radius:6px;background:var(--accent);color:#fff;font-weight:800;font-size:.85rem;padding:11px 18px;cursor:pointer}.practica-boton:hover{background:var(--accent-dark)}.practica-boton:disabled{opacity:.6;cursor:default}
.practica-historial summary{cursor:pointer;color:var(--accent);font-weight:750;font-size:.82rem}.practica-historial ol{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.practica-intento{width:100%;display:grid;grid-template-columns:1fr auto;gap:2px 12px;text-align:left;background:var(--wash);border:1px solid transparent;border-radius:8px;padding:9px 12px;cursor:pointer;color:inherit}.practica-intento:hover{border-color:var(--line);background:#fff}.practica-intento span{font-size:.82rem}.practica-intento strong{grid-row:span 2;align-self:center;font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:1.3rem}.practica-intento small{color:var(--muted);font-size:.74rem}
.practica-nota{color:var(--muted);font-size:.85rem;line-height:1.6;margin:18px 0 0}
.practica-form,.practica-revision{display:grid;gap:14px;max-width:860px}.practica-cabecera{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.practica-cabecera h2,.practica-revision>h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(1.5rem,3vw,2rem);margin:0}.practica-contador{margin:0;background:var(--soft);color:var(--accent-dark);border-radius:99px;padding:7px 12px;font-size:.78rem;font-weight:800;font-variant-numeric:tabular-nums}.practica-recordatorio{margin:0;color:var(--muted);font-size:.85rem}
.practica-pregunta{background:#fff;border:1px solid var(--line);border-radius:10px;padding:clamp(16px,4vw,24px);margin:0;min-width:0}.practica-pregunta legend,.practica-pregunta>header{display:flex;align-items:center;gap:10px;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800;padding:0;float:left;width:100%;margin-bottom:12px}.practica-pregunta legend+*{clear:both}.practica-nivel{font-style:normal;background:var(--wash);border-radius:99px;padding:4px 9px;letter-spacing:.06em;color:var(--accent-dark)}
.practica-enunciado{white-space:pre-line;line-height:1.65;margin:0 0 14px;font-size:1rem;overflow-wrap:anywhere}.practica-opciones{display:grid;gap:8px;list-style:none;margin:0;padding:0}
.practica-opcion{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:8px;padding:12px 14px;cursor:pointer;line-height:1.5;overflow-wrap:anywhere}.practica-opcion:hover{border-color:#d9ceca;background:#fcfaf8}.practica-opcion input{position:absolute;opacity:0;pointer-events:none}.practica-opcion.elegida,.practica-opcion:has(input:checked){border-color:var(--accent);background:var(--soft)}.practica-opcion:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.practica-letra{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid #d9ceca;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:800;color:var(--muted);text-transform:uppercase}.practica-opcion.elegida .practica-letra,.practica-opcion:has(input:checked) .practica-letra{background:var(--accent);border-color:var(--accent);color:#fff}
.practica-quitar{margin-top:10px;background:none;border:0;padding:4px 0;color:var(--muted);font-size:.8rem;text-decoration:underline;cursor:pointer}.practica-quitar:hover{color:var(--accent-dark)}
.practica-entrega{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:8px 0}.practica-ayuda{flex-basis:100%;margin:0;color:var(--muted);font-size:.8rem}
.practica-resultado{background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent);box-shadow:var(--shadow);padding:clamp(20px,4vw,34px);display:grid;gap:18px;max-width:860px;margin-bottom:34px}.practica-resultado>header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.practica-fecha{margin:0;color:var(--muted);font-size:.82rem}.practica-nota-grande{text-align:right}.practica-nota-grande span{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800}.practica-nota-grande strong{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(2.6rem,7vw,3.6rem);line-height:1;font-variant-numeric:tabular-nums}
.practica-mensaje{margin:0;background:var(--soft);border-radius:10px;padding:16px 18px}.practica-mensaje p{margin:0;font-size:1.02rem;line-height:1.6}.practica-mensaje footer{margin-top:8px;color:var(--muted);font-size:.72rem}
.practica-mejora{margin:0;background:#e9f3ed;color:var(--success);border-radius:8px;padding:10px 14px;font-weight:700;font-size:.9rem}.practica-descuento{margin:0;color:var(--muted);font-size:.9rem;line-height:1.6}.practica-descuento strong{color:var(--ink)}
.practica-niveles{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.practica-niveles li{display:flex;gap:8px;align-items:baseline;border:1px solid var(--line);border-radius:99px;padding:6px 12px;font-size:.82rem}.practica-niveles span{color:var(--muted)}
.practica-pregunta.revision{border-left-width:3px}.practica-pregunta.revision.acierto{border-left-color:var(--success)}.practica-pregunta.revision.error{border-left-color:#b4443c}.practica-pregunta.revision.blanco{border-left-color:#c9a14a}
.practica-opcion-revision{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:8px;padding:10px 14px;line-height:1.5;overflow-wrap:anywhere}.practica-opcion-revision small{display:block;margin-top:3px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.practica-opcion-revision.correcta{border-color:#9cc9b0;background:#eef6f1}.practica-opcion-revision.correcta small{color:var(--success)}.practica-opcion-revision.correcta .practica-letra{background:var(--success);border-color:var(--success);color:#fff}.practica-opcion-revision.fallada{border-color:#e2b3ae;background:#fbf0ef}.practica-opcion-revision.fallada small{color:#9c3a33}.practica-opcion-revision.fallada .practica-letra{background:#b4443c;border-color:#b4443c;color:#fff}
.practica-explicacion{margin-top:14px;background:var(--wash);border-radius:8px;padding:12px 14px}.practica-explicacion strong{display:block;font-size:.92rem}.practica-explicacion p{margin:6px 0 0;line-height:1.6;color:#4d4245;font-size:.93rem;white-space:pre-line}
@media(max-width:540px){.practica-lista{grid-template-columns:1fr}.practica-test{padding:18px}.practica-acciones .practica-boton,.practica-entrega .practica-boton{width:100%}.practica-resultado>header{flex-direction:column-reverse}.practica-nota-grande{text-align:left}.practica-opcion,.practica-opcion-revision{padding:11px 12px}}
.practica [hidden]{display:none!important}body[data-practica-vista]:not([data-practica-vista="lista"]) .page-intro{display:none}
.practica-resumen{max-width:860px;margin-bottom:30px}.practica-resumen h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:1.7rem;margin:0}.practica-resumen>.practica-nota{margin:4px 0 16px}
.practica-pestanas{display:flex;gap:6px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:12px}.practica-pestanas button{border:0;background:none;padding:10px 14px;font-weight:750;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.practica-pestanas button[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)}
.practica-filas{list-style:none;margin:0;padding:0;display:grid;gap:6px}.practica-fila{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 16px}.practica-fila:hover{border-color:var(--accent)}.practica-fila-tema{font-weight:750;min-width:0}.practica-fila-tema small{display:block;font-weight:400;color:var(--muted);font-size:.82rem;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.practica-fila-notas{color:var(--muted);font-size:.82rem;white-space:nowrap}.practica-fila-notas strong{color:var(--ink);font-variant-numeric:tabular-nums}.practica-fila-ir{color:var(--accent);font-weight:800}
.practica-volver{margin:0 0 14px}.text-volver{background:none;border:0;padding:4px 0;color:var(--accent);font-weight:750;cursor:pointer;font-size:.85rem}.text-volver:hover{color:var(--accent-dark)}
.practica-portada{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:clamp(20px,4vw,34px);display:grid;gap:16px;max-width:860px;margin-bottom:22px}.practica-portada h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.1;margin:0}.practica-portada>p:not(.eyebrow){margin:0;color:var(--muted);line-height:1.65}.practica-portada .eyebrow{margin:0}
.practica-mapa{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.practica-mapa button{width:36px;height:36px;border-radius:50%;border:1px solid #d9ceca;background:#fff;color:var(--muted);font-weight:800;font-size:.82rem;cursor:pointer;font-variant-numeric:tabular-nums}.practica-mapa button.respondida{background:var(--soft);border-color:var(--soft);color:var(--accent-dark)}.practica-mapa button.actual{border:2px solid var(--accent);color:var(--accent-dark)}.practica-mapa button.acierto{background:#e9f3ed;border-color:#9cc9b0;color:var(--success)}.practica-mapa button.error{background:#fbf0ef;border-color:#e2b3ae;color:#9c3a33}.practica-mapa button.blanco{background:#fbf5e6;border-color:#e3cd94;color:#7d5f1c}.practica-mapa button.actual.acierto,.practica-mapa button.actual.error,.practica-mapa button.actual.blanco{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--accent)}
.practica-flechas{display:flex;justify-content:space-between;gap:10px}.practica-flecha{border:1px solid #d9ceca;border-radius:6px;background:#fff;color:var(--accent);font-weight:800;font-size:.9rem;padding:12px 18px;cursor:pointer;min-width:132px}.practica-flecha:hover:not(:disabled){border-color:var(--accent)}.practica-flecha:disabled{opacity:.4;cursor:default}.practica-flecha.siguiente{margin-left:auto;background:var(--accent);border-color:var(--accent);color:#fff}.practica-flecha.siguiente:hover:not(:disabled){background:var(--accent-dark)}.practica-flecha.siguiente:disabled{background:#fff;color:var(--accent)}
.practica-entrega{justify-content:flex-end}.practica-recordatorio .text-volver{margin-left:6px}
@media(max-width:540px){.practica-fila{grid-template-columns:minmax(0,1fr) auto;padding:11px 13px}.practica-fila-notas{grid-column:1;grid-row:2;white-space:normal}.practica-fila-ir{grid-row:1/3;grid-column:2}.practica-mapa button{width:34px;height:34px}.practica-flecha{min-width:0;flex:1}.practica-entrega .practica-boton{width:100%}}
.practica-enlace{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px dashed #d9b9c5;border-radius:10px;padding:18px 22px;background:var(--soft)}.practica-enlace h3{font-family:Georgia,"Times New Roman",serif;font-size:1.2rem;font-weight:500;margin:0}.practica-enlace p{margin:6px 0 0;color:var(--muted);font-size:.88rem;line-height:1.5}.practica-enlace p strong{color:var(--ink)}.practica-enlace-boton{flex:none;text-decoration:none;border-radius:6px;background:var(--accent);color:#fff;font-weight:800;font-size:.85rem;padding:11px 18px}.practica-enlace-boton:hover{background:var(--accent-dark)}
@media(max-width:540px){.practica-enlace{flex-direction:column;align-items:stretch;padding:16px}.practica-enlace-boton{text-align:center}}
.practica-flechas{position:sticky;bottom:0;z-index:5;background:linear-gradient(to bottom,rgba(248,245,241,0),var(--wash) 14px);padding:16px 0 calc(10px + env(safe-area-inset-bottom))}
@media(max-width:540px){.practica-cabecera h2{font-size:1.3rem}.practica-cabecera{gap:8px}.practica-mapa{gap:4px;flex-wrap:nowrap}.practica-mapa li{flex:1 1 0;min-width:0}.practica-mapa button{width:100%;max-width:34px;height:30px;border-radius:15px;font-size:.75rem;padding:0}.practica-enunciado{font-size:.98rem}}
.aula-nav a[hidden]{display:none}.practica-oculta-aviso{background:#f8edd7;color:#7d5f1c;border-radius:8px;padding:10px 14px;font-size:.85rem;font-weight:700;margin:0 0 16px}
.practica-figura{margin:0 0 14px;clear:both}.practica-figura a{display:block}.practica-figura img{display:block;max-width:100%;max-height:420px;width:auto;height:auto;margin:0 auto;border:1px solid var(--line);border-radius:8px;background:#fff}.practica-figura figcaption{text-align:center;color:var(--muted);font-size:.72rem;margin-top:5px}@media(max-width:540px){.practica-figura img{max-height:300px}}
.simulation-intro{display:grid;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:clamp(14px,3vw,20px)}.simulation-intro .intro-heading{margin:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.simulation-intro .resource-block{padding:16px 18px}.simulation-intro .resource-block>p{margin:8px 0 0;font-size:.92rem}

/* Cambiar contraseña: diálogo junto a «Cerrar sesión». */
.password-dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-radius:14px;padding:0;background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}
.password-dialog::backdrop{background:rgba(48,35,38,.45)}
.password-form{display:flex;flex-direction:column;gap:14px;padding:24px}
.password-form h2{margin:0 0 4px;font-size:1.25rem}
.password-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.9rem}
.password-form label[hidden]{display:none}
.password-form small{font-weight:400;color:var(--muted)}
.password-form input{padding:11px 13px;border:1px solid #d7cfcc;border-radius:9px;font:inherit;font-weight:400}
.password-form input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.password-form .password-mostrar{flex-direction:row;align-items:center;gap:8px;font-weight:400;cursor:pointer;width:max-content}
.password-form .password-mostrar input{width:18px;height:18px;margin:0;padding:0;accent-color:var(--accent)}
.password-error{margin:0;color:#b42318;font-size:.9rem}
.password-ok{margin:0;padding:12px 14px;border-radius:10px;background:var(--soft);line-height:1.5}
.password-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.password-primary,.password-secondary{border-radius:8px;padding:11px 16px;font:inherit;font-weight:700;cursor:pointer}
.password-primary{border:1px solid var(--accent);background:var(--accent);color:#fff}
.password-primary[disabled]{opacity:.6;cursor:default}
.password-secondary{border:1px solid #d9ceca;background:#fff;color:var(--ink)}
.password-secondary[hidden]{display:none}
.password-hint{margin:0;font-size:.82rem;color:var(--muted);line-height:1.5}
.practica-calculadora{margin:18px 0 -6px;max-width:640px;padding:12px 16px;border-radius:10px;background:var(--soft);color:var(--accent-dark);line-height:1.5;font-size:.92rem}.practica-calculadora strong{font-weight:800}
.practica-calculadora+.practica-comprobar{margin-top:8px}
