/* Aula Virtual Oposiciones - estilos del front (alineados con el tema azul) */
.avo-aula,.avo-tienda,.avo-login-wrap{
	/* Si el tema Super Habilitado Nacional está activo, se cogen sus colores;
	   si no, los mismos valores por defecto. */
	/* --avo-azul2 es el color de acción del campus. En la identidad de
	   Súper Habilitado Nacional la acción es la terracota del escudo, y el
	   azul noche queda para cabeceras y textos. */
	--avo-azul:var(--azul-800,#123d58);
	--avo-azul2:var(--terra,#a94728);
	--avo-azul-osc:var(--azul-900,#0b2a3e);
	--avo-oro:var(--oro,#d9a441);
	--avo-oro-osc:var(--oro-osc,#a9761f);
	--avo-verde:var(--verde,#3f7d55);
	--avo-rojo:var(--rojo,#b33a2b);
	--avo-gris:var(--gris-300,#c8bca7);
	--avo-gris-l:var(--gris-100,#ece1cd);
	--avo-gris-t:var(--gris-500,#7e7466);
	--avo-gris-f:var(--crema-2,#f5ebda);
	--avo-azul-cl:var(--terra-50,#fbf0e7);
	--avo-papel:var(--papel,#fdfaf3);
	--avo-crema:var(--crema,#fbf6ee);
	--avo-radio:var(--radio,14px);
	font-family:var(--fuente,'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif);
	color:var(--gris-700,#554d42);
}

.avo-aula h1,.avo-aula h2,.avo-aula h3,.avo-aula h4,
.avo-tienda h2,.avo-tienda h3,.avo-login-wrap h2,.avo-login-wrap h3{
	font-family:var(--fuente-titulo,Georgia,serif);
	color:var(--azul-800,#123d58);
}

/* Botones */
.avo-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.75rem 1.3rem;border-radius:9px;font-weight:600;cursor:pointer;border:2px solid transparent;font-size:1rem;transition:transform .12s,background .15s;text-decoration:none;line-height:1.2}
.avo-btn:hover{transform:translateY(-2px)}
.avo-btn-primario{background:var(--avo-azul2);color:#fff}
.avo-btn-primario:hover{background:var(--avo-azul);color:#fff}
.avo-btn-oro{background:var(--avo-oro);color:#3a2a06}
.avo-btn-outline{background:transparent;color:var(--avo-azul);border-color:var(--avo-azul2)}
.avo-btn-outline:hover{background:var(--avo-azul2);color:#fff}
.avo-btn-bloque{display:flex;width:100%;margin-top:.6rem}
.avo-card-test .avo-btn-bloque{margin-top:auto}
.avo-btn[disabled]{cursor:not-allowed;transform:none;background:var(--avo-gris-l);color:var(--avo-gris-t);border-color:transparent;box-shadow:none}
.avo-btn[disabled]:hover{transform:none;background:var(--avo-gris-l);color:var(--avo-gris-t)}

/* Avisos */
.avo-aviso{padding:1rem 1.2rem;border-radius:var(--avo-radio);margin-bottom:1.5rem;font-weight:500}
.avo-ok{background:#e6f7ef;color:#0d6b45;border:1px solid #b6e6cf}
.avo-info{background:var(--avo-azul-cl,#fbf0e7);color:var(--avo-azul,#123d58);border:1px solid #c5dbf5}

/* Login */
.avo-login-wrap{display:grid;grid-template-columns:1fr 1fr;gap:2rem;max-width:900px;margin:2rem auto}
.avo-login-card{background:var(--avo-papel,#fdfaf3);border:1px solid var(--avo-gris-l,#ece1cd);border-radius:16px;padding:2rem;box-shadow:0 6px 24px rgba(90,62,34,.08)}
.avo-login-card h2{margin-top:0;color:var(--avo-azul-osc)}
.avo-login-card label{display:block;font-weight:600;margin:.8rem 0 .3rem}
.avo-login-card input[type=text],.avo-login-card input[type=password]{width:100%;padding:.7rem;border:1px solid var(--avo-gris);border-radius:8px}
.avo-login-card .login-submit input{background:var(--avo-azul2);color:#fff;border:0;padding:.8rem 1.4rem;border-radius:9px;font-weight:600;cursor:pointer;margin-top:1rem;width:100%}
.avo-login-links{display:flex;justify-content:space-between;margin-top:1rem;font-size:.9rem}
.avo-login-info{background:var(--avo-azul,#123d58);color:#fff;border-radius:16px;padding:2rem}
.avo-login-info h3{color:#fff}
.avo-login-info ul{list-style:none;padding:0;font-size:1.05rem}
.avo-login-info li{padding:.5rem 0}

/* Bienvenida */
.avo-bienvenida{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--avo-azul,#123d58);color:#fff;padding:1.6rem 1.8rem;border-radius:16px;margin-bottom:1.5rem;flex-wrap:wrap}
.avo-bienvenida h2{color:#fff;margin:0}
.avo-bienvenida p{margin:.3rem 0 0;color:#dbe7f7}
.avo-bienvenida .avo-btn-outline{color:#fff;border-color:rgba(255,255,255,.6)}
.avo-bienvenida .avo-btn-outline:hover{background:var(--avo-papel,#fdfaf3);color:var(--avo-azul)}

.avo-selector-opo{margin-bottom:1.2rem}
.avo-selector-opo select{padding:.6rem;border-radius:8px;border:1px solid var(--avo-gris);min-width:280px}

/* KPIs */
.avo-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}
.avo-kpi{background:var(--avo-papel,#fdfaf3);border:1px solid var(--avo-gris-l,#ece1cd);border-radius:14px;padding:1.1rem;display:flex;align-items:center;gap:.9rem;box-shadow:0 2px 8px rgba(90,62,34,.06)}
.avo-kpi-ic{font-size:1.7rem;background:var(--avo-gris-f);width:52px;height:52px;border-radius:12px;display:grid;place-items:center}
.avo-kpi b{display:block;font-size:1.5rem;color:var(--avo-azul-osc)}
.avo-kpi span{font-size:.82rem;color:var(--avo-gris-t,#7e7466)}

/* Pestañas */
.avo-tabs{display:flex;gap:.4rem;border-bottom:2px solid var(--avo-gris-l,#ece1cd);margin-bottom:1.5rem;flex-wrap:wrap}
.avo-tab{background:none;border:0;padding:.8rem 1.2rem;font-weight:600;cursor:pointer;color:var(--avo-gris-t,#7e7466);border-bottom:3px solid transparent;margin-bottom:-2px;font-size:1rem}
.avo-tab.activa{color:var(--avo-azul2);border-bottom-color:var(--avo-azul2)}
.avo-panel{display:none}
.avo-panel.activa{display:block}

/* Lanzador de test */
/* ==================================================== LANZADOR
   Las cuatro tarjetas de la pestaña Practicar. Misma altura y el botón
   siempre abajo del todo, así que quedan alineados entre sí.
   ============================================================== */

.avo-lanzador{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr;gap:1.1rem;align-items:stretch}

.avo-card-test{
	--ct-tinte:var(--avo-azul2);
	--ct-fondo:var(--avo-azul-cl);
	position:relative;display:flex;flex-direction:column;
	background:var(--avo-papel,#fdfaf3);border:1px solid var(--avo-gris-l);border-radius:16px;
	padding:1.5rem 1.5rem 1.4rem;overflow:hidden;
	box-shadow:0 1px 2px rgba(90,62,34,.04),0 8px 24px rgba(90,62,34,.05);
	transition:transform .18s var(--ease,ease),box-shadow .18s var(--ease,ease),border-color .18s
}
.avo-card-test::before{
	content:'';position:absolute;inset:0 0 auto 0;height:3px;
	background:var(--ct-tinte);opacity:0;transition:opacity .18s
}
.avo-card-test:hover{transform:translateY(-3px);border-color:var(--ct-tinte);box-shadow:0 2px 4px rgba(90,62,34,.05),0 16px 38px rgba(90,62,34,.11)}
.avo-card-test:hover::before{opacity:1}

.avo-card-test--azul{--ct-tinte:var(--avo-azul2);--ct-fondo:var(--avo-azul-cl)}
.avo-card-test--oro{--ct-tinte:var(--avo-oro-osc);--ct-fondo:var(--oro-100,#fbf1dd)}
.avo-card-test--verde{--ct-tinte:var(--avo-verde);--ct-fondo:#e6f7ef}
.avo-card-test--gris{--ct-tinte:var(--avo-gris-t);--ct-fondo:var(--avo-gris-l)}

.ct-cab{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:1.1rem}

.ct-icono{
	display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;
	border-radius:13px;background:var(--ct-fondo);color:var(--ct-tinte)
}
.ct-icono svg{width:23px;height:23px;display:block}

.ct-dato{
	font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
	color:var(--avo-gris-t);background:var(--avo-gris-l);
	padding:.28rem .65rem;border-radius:20px;white-space:nowrap
}
.ct-dato--alerta{background:#fbe9e9;color:var(--avo-rojo)}

.avo-card-test h3{margin:0 0 .3rem;font-size:1.16rem;line-height:1.25;color:var(--avo-azul-osc)}
.avo-card-test p{margin:0;color:var(--avo-gris-t);font-size:.92rem;line-height:1.5}

/* El hueco de los campos empuja el botón al fondo de la tarjeta. */
.ct-campos{display:flex;gap:.7rem;flex-wrap:wrap;margin:1.2rem 0 1.1rem;flex:1 1 auto;align-items:flex-end}
.ct-campos--vacio{align-items:center}

.ct-campo{display:flex;flex-direction:column;gap:.3rem;flex:0 0 auto}
.ct-campo--ancho{flex:1 1 100%}
.ct-campo span{font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--avo-gris-t)}
.ct-campo select,.ct-campo .avo-num{
	font:inherit;font-size:.94rem;padding:.55rem .7rem;
	border:1px solid var(--avo-gris);border-radius:9px;background:var(--avo-papel,#fdfaf3);color:inherit;width:100%
}
.ct-campo .avo-num{width:5.5rem;font-variant-numeric:tabular-nums}
.ct-campo select:focus,.ct-campo .avo-num:focus{outline:2px solid var(--ct-tinte);outline-offset:1px;border-color:var(--ct-tinte)}

.ct-nota{font-size:.84rem;color:var(--avo-gris-t);font-style:italic}

/* Lista de tres puntos, para las tarjetas que no tienen campos que rellenar. */
.ct-lista{list-style:none;margin:1.2rem 0 1.1rem;padding:0;flex:1 1 auto;display:flex;flex-direction:column;gap:.45rem;align-content:flex-start}
.ct-lista li{position:relative;padding-left:1.35rem;font-size:.89rem;color:var(--avo-gris-t);line-height:1.4}
.ct-lista li::before{content:'';position:absolute;left:0;top:.45rem;width:7px;height:7px;border-radius:50%;background:var(--ct-tinte);opacity:.55}

.avo-card-test .avo-btn{margin-top:0}


/* Área de test */
.avo-test-area{margin-top:1.5rem}
/* ============================================================ TEST
   Una pregunta por pantalla. Cabecera fija con contador y cronómetro,
   barra de progreso, opciones grandes y justificación al corregir.
   ================================================================= */

.avo-modos{background:var(--avo-papel,#fdfaf3);border:1px solid var(--avo-gris-l);border-radius:var(--avo-radio);padding:1.1rem 1.3rem;margin-bottom:1.2rem}
.avo-modos-tit{display:block;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--avo-gris-t);margin-bottom:.7rem}
.avo-modos-ops{display:flex;gap:.7rem;flex-wrap:wrap}
.avo-modo{flex:1 1 240px;display:flex;gap:.6rem;align-items:flex-start;border:2px solid var(--avo-gris-l);border-radius:10px;padding:.75rem .9rem;cursor:pointer;transition:border-color .12s,background .12s}
.avo-modo:hover{border-color:var(--avo-azul2)}
.avo-modo:has(input:checked){border-color:var(--avo-azul2);background:var(--avo-azul-cl)}
.avo-modo input{margin-top:.35rem;accent-color:var(--avo-azul2)}
.avo-modo b{display:block;font-size:.98rem;color:var(--avo-azul-osc)}
.avo-modo small{display:block;color:var(--avo-gris-t);font-size:.84rem;line-height:1.35}

.avo-test{background:var(--avo-papel,#fdfaf3);border:1px solid var(--avo-gris-l);border-radius:var(--avo-radio);overflow:hidden;box-shadow:var(--sombra-sm,0 2px 8px rgba(90,62,34,.08))}
.avo-test-cab{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;background:var(--avo-azul,#123d58);color:#fff;padding:.9rem 1.3rem}
.avo-test-cab b{font-size:1.02rem}
.avo-test-modo{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.16);padding:.2rem .6rem;border-radius:20px}
.avo-test-cuenta{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:600;opacity:.85}
.avo-test-cuenta b{font-size:1.02rem;opacity:1}
.avo-cronometro{background:rgba(255,255,255,.16);padding:.28rem .75rem;border-radius:20px;font-weight:700;font-variant-numeric:tabular-nums;font-size:.92rem}

.avo-progreso{height:4px;background:var(--avo-gris-l)}
.avo-progreso-barra{height:100%;width:0;background:linear-gradient(90deg,var(--avo-azul2),var(--avo-oro));transition:width .35s var(--ease,ease)}

.avo-test-body{padding:1.6rem 1.5rem 0}
.avo-pregunta{padding:0}

.avo-preg-etiquetas{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.8rem}
.avo-chip{display:inline-block;background:var(--avo-azul-cl);color:var(--avo-azul);font-size:.72rem;font-weight:700;letter-spacing:.03em;padding:.2rem .6rem;border-radius:20px}
.avo-chip-suave{background:transparent;border:1px solid var(--avo-gris);color:var(--avo-gris-t);font-weight:600}

.avo-preg-enun{font-weight:700;font-size:1.2rem;line-height:1.4;margin:0 0 1.2rem;color:var(--avo-azul-osc)}

.avo-opciones{display:flex;flex-direction:column;gap:.6rem}
.avo-opcion{display:grid;grid-template-columns:2rem 1fr;gap:.85rem;align-items:start;width:100%;text-align:left;font:inherit;font-size:1rem;line-height:1.45;color:inherit;background:var(--avo-papel,#fdfaf3);border:2px solid var(--avo-gris-l);border-radius:10px;padding:.8rem 1rem;cursor:pointer;transition:border-color .12s,background .12s,transform .1s}
.avo-opcion:hover:not(:disabled){border-color:var(--avo-azul2);background:var(--avo-gris-f)}
.avo-opcion:active:not(:disabled){transform:translateY(1px)}
.avo-opcion:disabled{cursor:default}
.avo-opcion .letra{display:grid;place-items:center;width:2rem;height:2rem;border-radius:6px;background:var(--avo-azul-cl);color:var(--avo-azul);font-weight:800;font-size:.9rem}
.avo-opcion.sel{border-color:var(--avo-azul2);background:var(--avo-azul-cl)}
.avo-opcion.sel .letra{background:var(--avo-azul2);color:#fff}
.avo-opcion.correcta{border-color:var(--avo-verde);background:#e6f7ef}
.avo-opcion.correcta .letra{background:var(--avo-verde);color:#fff}
.avo-opcion.fallo{border-color:var(--avo-rojo);background:#fbe9e9}
.avo-opcion.fallo .letra{background:var(--avo-rojo);color:#fff}
.avo-opcion.apagada{opacity:.55}

.avo-explica{margin-top:1.2rem;background:var(--avo-gris-f);border-left:4px solid var(--avo-azul2);padding:.9rem 1.1rem;border-radius:0 8px 8px 0}
.avo-explica b{display:block;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--avo-azul-osc);margin-bottom:.25rem}
.avo-explica p{margin:0;font-size:.96rem;color:var(--avo-gris-t);line-height:1.55}
.avo-explica.es-bien{border-left-color:var(--avo-verde)}
.avo-explica.es-bien b{color:var(--avo-verde)}
.avo-explica.es-mal{border-left-color:var(--avo-rojo)}
.avo-explica.es-mal b{color:var(--avo-rojo)}

.avo-test-pie{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:1.4rem 1.5rem;margin-top:1.4rem;border-top:1px solid var(--avo-gris-l);background:var(--avo-gris-f)}
.avo-pie-nota{font-size:.88rem;color:var(--avo-gris-t)}
.avo-test-pie .avo-btn-primario{margin-left:auto}

/* --------------------------------------------------------- RESULTADO */

.avo-resultado{background:var(--avo-papel,#fdfaf3);border:1px solid var(--avo-gris-l);border-radius:var(--avo-radio);padding:1.8rem;margin-bottom:1.2rem;box-shadow:var(--sombra-sm,0 2px 8px rgba(90,62,34,.08))}
.avo-res-cab{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}
.avo-res-nota{font-size:3.2rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.avo-res-nota.aprob{color:var(--avo-verde)}
.avo-res-nota.susp{color:var(--avo-rojo)}
.avo-res-datos{display:flex;gap:1.8rem;flex-wrap:wrap}
.avo-res-datos span{display:block;font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--avo-gris-t)}
.avo-res-datos b{display:block;font-size:1.5rem;font-variant-numeric:tabular-nums;color:var(--avo-azul-osc)}
.avo-res-datos .es-verde{color:var(--avo-verde)}
.avo-res-datos .es-rojo{color:var(--avo-rojo)}
.avo-res-barra{height:10px;background:var(--avo-gris-l);border-radius:8px;overflow:hidden;margin:1.3rem 0}
.avo-res-barra>div{height:100%;background:linear-gradient(90deg,var(--avo-azul2),var(--avo-oro))}

.avo-res-bloque{margin-top:1.6rem}
.avo-res-bloque h4{margin:0 0 .8rem;font-size:.73rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--avo-gris-t)}
.avo-res-temas{display:flex;flex-direction:column;gap:.7rem}
.avo-res-tema{display:grid;grid-template-columns:1fr 3.2rem;gap:.2rem .8rem;align-items:center}
.avo-res-tema-nom{font-size:.9rem;grid-column:1}
.avo-res-tema-pista{grid-column:1;height:7px;background:var(--avo-gris-l);border-radius:20px;overflow:hidden}
.avo-res-tema-pista>div{height:100%;background:var(--avo-azul2);border-radius:20px}
.avo-res-tema-cifra{grid-column:2;grid-row:1/3;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;font-size:.9rem}

.avo-res-botones{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.4rem}

.avo-repaso{display:flex;flex-direction:column;gap:.8rem}
.avo-repaso-item{border:1px solid var(--avo-gris-l);border-left:4px solid var(--avo-rojo);border-radius:0 10px 10px 0;padding:1rem 1.2rem}
.avo-repaso-item.es-bien{border-left-color:var(--avo-verde)}
.avo-repaso-q{margin:0 0 .5rem;font-weight:700;color:var(--avo-azul-osc)}
.avo-repaso-l{margin:0 0 .2rem;font-size:.92rem;font-weight:600}
.avo-repaso-l.es-verde{color:var(--avo-verde)}
.avo-repaso-l.es-rojo{color:var(--avo-rojo)}
.avo-repaso-exp{margin:.5rem 0 0;font-size:.93rem;color:var(--avo-gris-t);line-height:1.55}

@media (max-width:600px){
	.avo-test-body{padding:1.2rem 1rem 0}
	.avo-test-pie{padding:1.1rem 1rem}
	.avo-test-pie .avo-btn{flex:1 1 100%}
	.avo-test-pie .avo-btn-primario{margin-left:0}
	.avo-preg-enun{font-size:1.08rem}
	.avo-res-nota{font-size:2.6rem}
}

@media (prefers-reduced-motion:reduce){
	.avo-progreso-barra,.avo-opcion,.avo-modo{transition:none}
}

/* Cargando */
.avo-cargando{text-align:center;padding:2rem;color:var(--avo-gris-t,#7e7466)}
.avo-spinner{width:38px;height:38px;border:4px solid var(--avo-gris-l,#ece1cd);border-top-color:var(--avo-azul2);border-radius:50%;margin:0 auto 1rem;animation:avo-spin .8s linear infinite}
@keyframes avo-spin{to{transform:rotate(360deg)}}

/* Acordeón temario */
.avo-acordeon{border:1px solid var(--avo-gris-l,#ece1cd);border-radius:12px;overflow:hidden}
.avo-acc-item{border-bottom:1px solid var(--avo-gris-l,#ece1cd)}
.avo-acc-item:last-child{border-bottom:0}
.avo-acc-cab{width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--avo-papel,#fdfaf3);border:0;padding:1.1rem 1.3rem;font-weight:600;font-size:1.02rem;cursor:pointer;color:var(--avo-azul-osc);text-align:left}
.avo-acc-cab:hover{background:var(--avo-gris-f)}
.avo-acc-flecha{transition:transform .2s}
.avo-acc-item.abierto .avo-acc-flecha{transform:rotate(180deg)}
.avo-acc-cuerpo{display:none;padding:0 1.3rem 1.3rem;color:var(--gris-700,#554d42);line-height:1.7}
.avo-acc-item.abierto .avo-acc-cuerpo{display:block}

/* Grid oposiciones (tienda / sin matrícula) */
.avo-grid-ops{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.avo-op-card{background:var(--avo-papel,#fdfaf3);border:1px solid var(--avo-gris-l,#ece1cd);border-radius:14px;padding:1.5rem;box-shadow:0 2px 8px rgba(90,62,34,.06);display:flex;flex-direction:column}
.avo-op-grupo{font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;color:var(--avo-azul2);font-weight:700}
.avo-op-card h3{margin:.3rem 0 .6rem;color:var(--avo-azul-osc)}
.avo-op-datos{list-style:none;padding:0;margin:0 0 1rem}
.avo-op-datos li{padding:.28rem 0;color:var(--gris-700,#554d42);font-size:.92rem}
.avo-op-datos li:before{content:"✔ ";color:var(--avo-verde);font-weight:700}
.avo-op-precio{font-size:1.6rem;font-weight:800;color:var(--avo-azul-osc);margin-bottom:.4rem}
.avo-op-precio small{font-size:.8rem;color:var(--avo-gris-t,#7e7466);font-weight:500}
.avo-op-card form{margin-top:auto}
.avo-nota-wc{background:#fff8ec;border:1px solid #f2dcae;border-radius:12px;padding:1rem 1.2rem;margin-top:1.5rem;font-size:.92rem;color:#7a5c17}

/* Progreso */
.avo-progreso-lista{display:flex;flex-direction:column;gap:1rem}
.avo-prog-item .avo-prog-top{display:flex;justify-content:space-between;font-size:.95rem;margin-bottom:.35rem}
.avo-prog-barra{height:10px;background:var(--avo-gris-l,#ece1cd);border-radius:6px;overflow:hidden}
.avo-prog-barra>div{height:100%}
.avo-prog-item small{color:var(--avo-gris-t,#7e7466);font-size:.8rem}

/* Tabla */
.avo-tabla{width:100%;border-collapse:collapse;background:var(--avo-papel,#fdfaf3);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(90,62,34,.06)}
.avo-tabla th{background:var(--avo-azul-osc);color:#fff;text-align:left;padding:.8rem 1rem;font-size:.9rem}
.avo-tabla td{padding:.75rem 1rem;border-bottom:1px solid var(--avo-gris-l,#ece1cd);font-size:.92rem}

@media(max-width:820px){
	.avo-login-wrap,.avo-lanzador{grid-template-columns:1fr}
	.avo-kpis{grid-template-columns:repeat(2,1fr)}
	.avo-grid-ops{grid-template-columns:1fr}
	.avo-login-info{order:-1}
}

/* ============================================================
   AULA DE CURSOS
   ============================================================ */

.avo-curso {
	background:var(--avo-papel,#fdfaf3);
	border: 1px solid var(--avo-gris-l,#ece1cd);
	border-radius: 14px;
	padding: 1.6rem;
	margin-bottom: 1.5rem;
	box-shadow: 0 2px 8px rgba(90,62,34,.08);
}
.avo-curso > h3 { margin-top: 0; color: var(--avo-azul-osc,#0b2a3e); }

.avo-recursos { list-style: none; padding: 0; margin: .8rem 0; }
.avo-recursos li {
	padding: .6rem .2rem;
	border-bottom: 1px solid var(--avo-gris-l,#ece1cd);
	font-size: .95rem;
}
.avo-recursos li:last-child { border-bottom: 0; }

.avo-unidad {
	border: 1px solid var(--avo-gris-l,#ece1cd);
	border-radius: 9px;
	margin-bottom: .7rem;
	background: var(--avo-gris-f,#f5ebda);
}
.avo-unidad > summary {
	cursor: pointer;
	padding: .9rem 1.1rem;
	list-style: none;
	color: var(--avo-azul-osc,#0b2a3e);
}
.avo-unidad > summary::-webkit-details-marker { display: none; }
.avo-unidad > summary::before { content: '▸ '; color: var(--avo-azul2,#a94728); font-weight: 700; }
.avo-unidad[open] > summary::before { content: '▾ '; }
.avo-unidad > *:not(summary) { padding: 0 1.1rem; }
.avo-unidad > *:last-child { padding-bottom: .9rem; }

.avo-indice { font-size: .93rem; color: var(--gris-700,#554d42); }
.avo-indice ul { margin: .4rem 0 .4rem 1.1rem; }

.avo-grabaciones { margin: .8rem 0; }
.avo-grabaciones > summary { cursor: pointer; font-weight: 600; color: var(--avo-azul,#123d58); }
.avo-grabaciones ul { margin: .6rem 0 0 1.1rem; font-size: .92rem; }

.avo-chip {
	display: inline-block; padding: .1rem .55rem;
	background: var(--avo-azul-cl,#fbf0e7); color: var(--avo-azul,#123d58);
	border-radius: 20px; font-size: .72rem; font-weight: 700;
}
.avo-mini { color: var(--avo-gris-t,#7e7466); font-size: .85rem; }

/* ============================================================
   SUPUESTOS PRÁCTICOS DEL ALUMNO
   ============================================================ */

.avo-supuestos { margin-top: 2rem; }
.avo-supuestos > h3 { color: var(--avo-azul-osc,#0b2a3e); }

.avo-supuesto {
	background:var(--avo-papel,#fdfaf3);
	border: 1px solid var(--avo-gris-l,#ece1cd);
	border-left: 4px solid var(--avo-azul2,#a94728);
	border-radius: 9px;
	padding: 1.2rem 1.4rem;
	margin-bottom: 1rem;
	box-shadow: 0 2px 8px rgba(90,62,34,.08);
}
.avo-supuesto header { margin-bottom: .6rem; }
.avo-supuesto__mes {
	display: inline-block;
	font-size: .72rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: .6px;
	color: var(--avo-oro-osc,#a9761f); background: #fbf1dd;
	padding: .15rem .6rem; border-radius: 20px;
}
.avo-supuesto h4 { margin: .4rem 0 0; color: var(--avo-azul-osc,#0b2a3e); font-size: 1.1rem; }
.avo-supuesto__notas { color: var(--gris-700,#554d42); font-size: .93rem; font-style: italic; }
.avo-supuesto__estado { font-size: .92rem; color: var(--gris-700,#554d42); }

.avo-supuesto__nota {
	background: #ddf3e9; border-radius: 9px;
	padding: .9rem 1.1rem; margin-top: .6rem;
	color: #14654a;
}
.avo-supuesto__nota strong { font-size: 1.05rem; }
.avo-supuesto__nota p { margin: .4rem 0 0; font-size: .93rem; }

.avo-entrega {
	display: flex; flex-wrap: wrap; align-items: center; gap: .7rem;
	background: var(--avo-gris-f,#f5ebda); border-radius: 9px;
	padding: .9rem 1.1rem; margin-top: .7rem;
}
.avo-entrega label { display: flex; flex-direction: column; gap: .25rem; }
.avo-entrega label > span { font-size: .8rem; font-weight: 600; color: var(--avo-azul-osc,#0b2a3e); }

.avo-aviso.avo-error { background: #fbe4e4; color: #a12f2f; }

/* ==================================================== EN DIRECTO
   La clase ocurre dentro del aula: cabecera con el punto rojo cuando
   está en vivo, el marco de la sala y las clases anteriores.
   ============================================================== */

.avo-directo{
	background:var(--avo-papel,#fdfaf3);border:1px solid var(--avo-gris-l);border-left:4px solid var(--avo-azul2);
	border-radius:0 var(--avo-radio) var(--avo-radio) 0;
	padding:1.3rem 1.5rem;margin:1.2rem 0
}

.avo-directo-cab{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.5rem}
.avo-directo-cab b{font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--avo-gris-t)}

.avo-directo-punto{width:9px;height:9px;border-radius:50%;background:var(--avo-gris);flex-shrink:0}
.avo-directo-punto.es-vivo{
	background:var(--avo-rojo);
	box-shadow:0 0 0 0 rgba(214,69,69,.55);
	animation:avo-latido 1.8s infinite
}
@keyframes avo-latido{
	70%{box-shadow:0 0 0 9px rgba(214,69,69,0)}
	100%{box-shadow:0 0 0 0 rgba(214,69,69,0)}
}
@media (prefers-reduced-motion:reduce){ .avo-directo-punto.es-vivo{animation:none} }

.avo-directo-tit{margin:0 0 .2rem;font-size:1.2rem;color:var(--avo-azul-osc)}
.avo-directo-cuando{margin:0 0 1rem;color:var(--avo-gris-t);font-size:.95rem}
.avo-directo-desc{margin-bottom:1rem;color:var(--avo-gris-t);font-size:.95rem}

/* La sala en directo vive en sala.css: se carga también en el panel. */

.avo-directo-fuera{
	background:var(--avo-gris-f);border:1px dashed var(--avo-gris);
	border-radius:var(--avo-radio-sm,10px);padding:1.2rem;text-align:center
}
.avo-directo-fuera p{margin:0 0 .8rem;color:var(--avo-gris-t);font-size:.92rem}

.avo-cuenta{
	display:inline-flex;align-items:baseline;gap:.5rem;
	background:var(--avo-azul-cl);color:var(--avo-azul);
	padding:.6rem 1.1rem;border-radius:var(--avo-radio-sm,10px)
}
.avo-cuenta span{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.75}
.avo-cuenta b{font-size:1.35rem;font-variant-numeric:tabular-nums}

.avo-grabaciones{margin-top:1.2rem;border-top:1px solid var(--avo-gris-l);padding-top:1rem}
.avo-grabaciones summary{cursor:pointer;font-weight:700;color:var(--avo-azul-osc);font-size:.95rem}
.avo-grabaciones summary span{
	display:inline-block;background:var(--avo-gris-l);color:var(--avo-gris-t);
	border-radius:20px;padding:.05rem .5rem;font-size:.78rem;margin-left:.35rem
}
.avo-grabaciones ul{list-style:none;padding:0;margin:.9rem 0 0}
.avo-grabaciones li{
	display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;
	padding:.65rem 0;border-bottom:1px solid var(--avo-gris-l)
}
.avo-grabaciones li:last-child{border-bottom:0}
.avo-grab-fecha{font-size:.85rem;color:var(--avo-gris-t);min-width:190px}
.avo-grab-tit{flex:1;font-weight:600;color:var(--avo-azul-osc)}
.avo-btn-mini{padding:.35rem .8rem;font-size:.85rem;margin-left:auto}

/* ======================================================== FORO
   Un foro por espacio. Lista de hilos, hilo abierto con sus
   respuestas y formularios de alta y de respuesta.
   ============================================================ */

.avo-bienvenida__acciones{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.avo-btn-pill{
	display:inline-grid;place-items:center;min-width:1.4rem;height:1.4rem;padding:0 .35rem;
	border-radius:99px;background:rgba(0,0,0,.16);font-size:.8rem;font-weight:800;
	font-variant-numeric:tabular-nums;margin-left:.35rem
}

/* --- Selector de espacio --- */
.avo-foro-espacios{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.8rem;margin-bottom:1.4rem}
.avo-foro-espacio{
	display:block;background:var(--avo-papel,#fdfaf3);border:2px solid var(--avo-gris-l);border-radius:var(--avo-radio);
	padding:.9rem 1.1rem;text-decoration:none;color:inherit;position:relative;
	transition:border-color .15s,transform .15s
}
.avo-foro-espacio:hover{border-color:var(--avo-azul2);transform:translateY(-2px)}
.avo-foro-espacio.es-activo{border-color:var(--avo-azul2);background:var(--avo-azul-cl)}
.avo-foro-espacio__tipo{
	display:block;font-size:.68rem;font-weight:800;letter-spacing:.1em;
	text-transform:uppercase;color:var(--avo-gris-t)
}
.avo-foro-espacio__nom{display:block;font-weight:700;color:var(--avo-azul-osc);margin-top:.15rem;line-height:1.3}
.avo-foro-espacio__n{
	position:absolute;top:.9rem;right:1rem;font-size:.8rem;font-weight:800;
	color:var(--avo-gris-t);font-variant-numeric:tabular-nums
}

/* --- Barra de filtros --- */
.avo-foro-barra{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.avo-foro-filtros{display:flex;gap:.4rem;flex-wrap:wrap;flex:1}
.avo-foro-filtros a{
	padding:.35rem .8rem;border-radius:99px;font-size:.86rem;font-weight:600;
	color:var(--avo-gris-t);text-decoration:none;border:1px solid transparent
}
.avo-foro-filtros a:hover{background:var(--avo-gris-f)}
.avo-foro-filtros a.es-activo{background:var(--avo-azul-cl);color:var(--avo-azul);border-color:var(--avo-azul2)}

/* --- Lista de hilos --- */
.avo-foro-lista{list-style:none;margin:0;padding:0;background:var(--avo-papel,#fdfaf3);border:1px solid var(--avo-gris-l);border-radius:var(--avo-radio);overflow:hidden}
.avo-foro-hilo{
	display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 1.3rem;
	border-bottom:1px solid var(--avo-gris-l)
}
.avo-foro-hilo:last-child{border-bottom:0}
.avo-foro-hilo:hover{background:var(--avo-gris-f)}
.avo-foro-hilo.es-fijado{background:var(--oro-100,#fbf1dd)}
.avo-foro-hilo__avatar img,.avo-foro-post__avatar img{border-radius:50%;display:block}
.avo-foro-hilo__txt{flex:1;min-width:0}
.avo-foro-hilo__etq{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.3rem}
.avo-foro-hilo h3{margin:0 0 .2rem;font-size:1.05rem;line-height:1.35}
.avo-foro-hilo h3 a{color:var(--avo-azul-osc);text-decoration:none}
.avo-foro-hilo h3 a:hover{color:var(--avo-azul2)}
.avo-foro-hilo__n{
	flex-shrink:0;text-align:center;min-width:74px;font-size:.75rem;color:var(--avo-gris-t);line-height:1.2
}
.avo-foro-hilo__n b{display:block;font-size:1.25rem;color:var(--avo-azul);font-variant-numeric:tabular-nums}
.avo-foro-hilo__n.es-cero b{color:var(--avo-gris)}

.avo-chip--oro{background:var(--oro-100,#fbf1dd);color:#7a5a15}
.avo-chip--verde{background:#e6f7ef;color:#0d6b45}
.avo-chip--gris{background:var(--avo-gris-l);color:var(--avo-gris-t)}

.avo-foro-vacio{
	background:var(--avo-gris-f);border:2px dashed var(--avo-gris);border-radius:var(--avo-radio);
	padding:2rem;text-align:center;color:var(--avo-gris-t)
}
.avo-foro-vacio p{margin:.2rem 0}

/* --- Hilo abierto --- */
.avo-foro-volver{font-size:.9rem;font-weight:600;text-decoration:none;color:var(--avo-azul)}
.avo-foro-subtit{
	margin:1.8rem 0 .8rem;font-size:.78rem;font-weight:800;letter-spacing:.09em;
	text-transform:uppercase;color:var(--avo-gris-t)
}
.avo-foro-post{
	display:flex;gap:1rem;align-items:flex-start;background:var(--avo-papel,#fdfaf3);
	border:1px solid var(--avo-gris-l);border-radius:var(--avo-radio);
	padding:1.2rem 1.4rem;margin-bottom:.8rem
}
.avo-foro-post--raiz{border-left:4px solid var(--avo-azul2)}
.avo-foro-post.es-staff{background:#fbf1e6;border-color:#a94728;border-left-width:5px;box-shadow:0 2px 10px rgba(169,71,40,.12)}
.avo-foro-post.es-staff .avo-foro-post__avatar img{box-shadow:0 0 0 3px #a94728}
.avo-foro-post.es-staff .avo-foro-post__quien strong{color:#a94728}
.avo-foro-post__cuerpo{flex:1;min-width:0}
.avo-foro-post__cuerpo h2{margin:.1rem 0 .2rem;font-size:1.35rem;color:var(--avo-azul-osc)}
.avo-foro-post__quien{margin:0 0 .4rem;display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.avo-foro-post__quien strong{color:var(--avo-azul-osc)}
.avo-foro-texto{color:var(--avo-gris-t);line-height:1.65}
.avo-foro-texto p{margin:0 0 .8rem}
.avo-foro-texto p:last-child{margin-bottom:0}

.avo-foro-moderar{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--avo-gris-l)}
.avo-foro-moderar form{margin:0}
.avo-foro-moderar__btn{
	background:none;border:1px solid var(--avo-gris);border-radius:6px;
	padding:.3rem .7rem;font:inherit;font-size:.82rem;color:var(--avo-gris-t);cursor:pointer
}
.avo-foro-moderar__btn:hover{border-color:var(--avo-azul2);color:var(--avo-azul)}
.avo-foro-moderar__btn.es-peligro:hover{border-color:var(--avo-rojo);color:var(--avo-rojo)}

/* --- Formularios --- */
.avo-foro-nuevo{
	background:var(--avo-papel,#fdfaf3);border:1px solid var(--avo-gris-l);border-radius:var(--avo-radio);
	padding:1.4rem 1.5rem;margin-top:1.6rem
}
.avo-foro-nuevo h3{margin:0 0 1rem;font-size:1.1rem;color:var(--avo-azul-osc)}
.avo-campo{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}
.avo-campo label{font-size:.82rem;font-weight:700;color:var(--avo-azul-osc)}
.avo-campo input[type=text],.avo-campo select,.avo-campo textarea{
	width:100%;font:inherit;font-size:1rem;padding:.7rem .85rem;
	border:1px solid var(--avo-gris);border-radius:var(--avo-radio-sm,9px);background:var(--avo-papel,#fdfaf3);color:inherit
}
.avo-campo textarea{resize:vertical;line-height:1.6}
.avo-campo input:focus,.avo-campo select:focus,.avo-campo textarea:focus{
	outline:none;border-color:var(--avo-azul2);box-shadow:0 0 0 3px rgba(42,111,219,.14)
}
.avo-campo .avo-mini{margin:.1rem 0 0}

@media (max-width:600px){
	.avo-foro-hilo{flex-wrap:wrap}
	.avo-foro-hilo__n{min-width:0;text-align:left;display:flex;gap:.3rem;align-items:baseline}
	.avo-foro-hilo__n b{font-size:1rem}
}

/* =========================================================================
 * EXÁMENES
 *
 * Dos pantallas: la lista de exámenes convocados y el examen en marcha.
 * Durante el examen, todo lo que no sea el examen desaparece: sin ruido,
 * con la barra del reloj siempre a la vista.
 * ====================================================================== */

/* --- Lista ------------------------------------------------------------- */

.avo-examenes__tit { margin: 0 0 1.4rem; font-size: 1.5rem; }

.avo-exlista { display: grid; gap: 1rem; }

.avo-excard {
	border: 1px solid var(--avo-borde, var(--avo-gris-l,#ece1cd)); border-radius: var(--radio, 14px);
	background:var(--avo-papel,#fdfaf3); overflow: hidden;
}
.avo-excard__cab {
	display: flex; gap: 1rem; align-items: flex-start; justify-content: space-between;
	padding: 1.25rem 1.4rem;
}
.avo-excard__cab h3 { margin: 0 0 .35rem; font-size: 1.12rem; line-height: 1.3; }

.avo-excard__meta {
	display: flex; flex-wrap: wrap; gap: .3rem .9rem;
	margin: 0; font-size: .87rem; color: var(--avo-suave, var(--avo-gris-t,#7e7466));
}
.avo-excard__meta span { position: relative; }
.avo-excard__meta span + span::before {
	content: '·'; position: absolute; left: -.55rem; color: var(--avo-gris,#c8bca7);
}

.avo-extag {
	flex-shrink: 0; padding: .3rem .75rem; border-radius: 99px;
	background: var(--avo-gris-l,#ece1cd); color: #475569;
	font-size: .76rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
}
.avo-extag--ok    { background: #e6f6ee; color: #17784f; }
.avo-extag--vivo  { background: #fdecea; color: #b3261e; }
.avo-extag--nota  {
	background: var(--azul-500, var(--avo-azul2,#a94728)); color: #fff;
	font-size: .95rem; letter-spacing: 0; padding: .3rem .8rem;
}

.avo-excard__pie {
	display: flex; flex-wrap: wrap; gap: .85rem; align-items: center;
	padding: 1rem 1.4rem; border-top: 1px solid var(--avo-gris-l,#ece1cd); background:var(--avo-crema,#fbf6ee);
}
.avo-excard__nota { margin: 0; flex: 1 1 240px; font-size: .9rem; color: var(--avo-suave, var(--avo-gris-t,#7e7466)); }
.avo-excard__nota--urgente { color: #b3261e; font-weight: 600; }

/* --- Examen en marcha --------------------------------------------------- */

.avo-examen { position: relative; }

.avo-examen__barra {
	position: sticky; top: 0; z-index: 30;
	display: flex; gap: 1rem; align-items: center; justify-content: space-between;
	margin-bottom: 1.4rem; padding: .9rem 1.2rem;
	border-radius: var(--radio, 14px);
	background: var(--azul-800, #0a2540); color: #fff;
	box-shadow: 0 10px 30px rgba(90,62,34,.22);
}
.avo-examen__id strong { display: block; font-size: 1.02rem; line-height: 1.3; }
.avo-examen__rotulo {
	display: block; font-size: .68rem; font-weight: 800;
	letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.6);
}

.avo-examen__reloj {
	flex-shrink: 0; text-align: right;
	padding: .35rem .9rem; border-radius: 10px;
	background: rgba(255,255,255,.1);
	transition: background .3s, color .3s;
}
.avo-examen__cifra {
	display: block; font-size: 1.55rem; font-weight: 800; line-height: 1.1;
	font-variant-numeric: tabular-nums; letter-spacing: .01em;
}
.avo-examen__reloj.avisa { background: rgba(217,164,65,.24); }
.avo-examen__reloj.avisa .avo-examen__cifra { color: #f0c674; }
.avo-examen__reloj.urge { background: rgba(214,69,69,.3); animation: avo-late 1s ease-in-out infinite; }
.avo-examen__reloj.urge .avo-examen__cifra { color: #ffb4ac; }

@keyframes avo-late { 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) {
	.avo-examen__reloj.urge { animation: none; }
}

.avo-examen__progreso {
	display: flex; gap: 1rem; align-items: center;
	margin-bottom: 1.6rem;
}
.avo-examen__barrita {
	flex: 1; height: 7px; border-radius: 99px; background: #e6ebf2; overflow: hidden;
}
.avo-examen__barrita span {
	display: block; height: 100%; border-radius: 99px;
	background: var(--azul-500, var(--avo-azul2,#a94728)); transition: width .25s ease;
}
.avo-examen__cuenta { flex-shrink: 0; font-size: .87rem; color: var(--avo-suave, var(--avo-gris-t,#7e7466)); }

.avo-examen__form { display: grid; gap: 1rem; }

.avo-preg {
	margin: 0; padding: 1.4rem 1.5rem;
	border: 1px solid var(--avo-borde, var(--avo-gris-l,#ece1cd)); border-radius: var(--radio, 14px);
	background:var(--avo-papel,#fdfaf3);
	transition: border-color .2s;
}
.avo-preg.guardando { border-color: var(--azul-500, var(--avo-azul2,#a94728)); }

.avo-preg__num {
	padding: 0; margin-bottom: .6rem;
	font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase;
	color: var(--azul-500, var(--avo-azul2,#a94728));
}
.avo-preg__txt { margin: 0 0 1.1rem; font-size: 1.03rem; line-height: 1.55; font-weight: 600; }

.avo-preg__ops { display: grid; gap: .5rem; }

.avo-op {
	display: flex; gap: .8rem; align-items: flex-start;
	padding: .8rem 1rem; cursor: pointer;
	border: 1.5px solid var(--avo-gris-l,#ece1cd); border-radius: 11px; background:var(--avo-papel,#fdfaf3);
	transition: border-color .16s, background .16s;
}
.avo-op:hover { border-color: #b9cdeb; background:var(--avo-crema,#fbf6ee); }
.avo-op input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.avo-op__letra {
	flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%;
	display: grid; place-items: center;
	background: var(--avo-gris-l,#ece1cd); color: var(--avo-gris-t,#7e7466);
	font-size: .8rem; font-weight: 800;
	transition: background .16s, color .16s;
}
.avo-op__txt { line-height: 1.5; }
.avo-op.esta { border-color: var(--azul-500, var(--avo-azul2,#a94728)); background:var(--avo-azul-cl,#fbf0e7); }
.avo-op.esta .avo-op__letra { background: var(--azul-500, var(--avo-azul2,#a94728)); color: #fff; }
.avo-op input:focus-visible + .avo-op__letra { outline: 2px solid var(--azul-500, var(--avo-azul2,#a94728)); outline-offset: 2px; }

.avo-examen__entrega {
	margin-top: .6rem; padding: 1.5rem;
	border: 1px dashed var(--avo-gris,#c8bca7); border-radius: var(--radio, 14px);
	background: #f8fafc; text-align: center;
}
.avo-examen__entrega p { margin: 0 0 1rem; font-size: .92rem; color: var(--avo-suave, var(--avo-gris-t,#7e7466)); }
.avo-btn-grande { padding: .9rem 2.2rem; font-size: 1.02rem; }
.avo-btn-alerta { background: #b3261e; color: #fff; }
.avo-btn-alerta:hover { background: #8f1e18; color: #fff; }

/* Velo de entrega: bloquea la pantalla mientras se manda. */
.avo-examen__velo {
	position: fixed; inset: 0; z-index: 999;
	display: grid; place-items: center;
	background: rgba(90,62,34,.82); backdrop-filter: blur(3px);
}
.avo-examen__velo-caja {
	padding: 2rem 2.4rem; border-radius: 16px; background:var(--avo-papel,#fdfaf3); text-align: center;
	box-shadow: 0 24px 60px rgba(0,0,0,.3);
}
.avo-examen__velo-caja p { margin: 1rem 0 0; font-weight: 600; }
.avo-spinner {
	display: inline-block; width: 30px; height: 30px;
	border: 3px solid #dbe4ef; border-top-color: var(--azul-500, var(--avo-azul2,#a94728));
	border-radius: 50%; animation: avo-gira .8s linear infinite;
}
@keyframes avo-gira { to { transform: rotate(360deg); } }

/* --- Corrección ---------------------------------------------------------- */

.avo-corr__cab {
	padding: 2rem 1.5rem; margin-bottom: 1.5rem;
	border-radius: var(--radio, 14px); text-align: center;
	background: #8a2f22; color: #fff;
}
.avo-corr__cab.aprueba { background: #2f5f42; }
.avo-corr__rotulo { display: block; font-size: .95rem; opacity: .85; }
.avo-corr__nota {
	display: block; margin-top: .3rem;
	font-size: clamp(3rem, 11vw, 4.4rem); font-weight: 800; line-height: 1;
	font-variant-numeric: tabular-nums;
}
.avo-corr__sobre { display: block; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; opacity: .8; }
.avo-corr__aviso { margin: 1rem 0 0; font-size: .9rem; opacity: .9; }

.avo-corr__cifras {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem;
	margin-bottom: 2rem;
}
.avo-corr__cifras div {
	padding: 1rem; border-radius: 12px; background:var(--avo-gris-f,#f5ebda); text-align: center;
}
.avo-corr__cifras strong { display: block; font-size: 1.7rem; line-height: 1; color: var(--azul-800, #0a2540); }
.avo-corr__cifras span { font-size: .8rem; color: var(--avo-suave, var(--avo-gris-t,#7e7466)); }

.avo-corr__tit { margin: 0 0 1rem; font-size: 1.2rem; }
.avo-corr__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }

.avo-corr__item {
	padding: 1.3rem 1.4rem;
	border: 1px solid var(--avo-gris-l,#ece1cd); border-left: 4px solid var(--avo-gris,#c8bca7);
	border-radius: var(--radio, 14px); background:var(--avo-papel,#fdfaf3);
}
.avo-corr__item--bien   { border-left-color: #17784f; }
.avo-corr__item--mal    { border-left-color: #b3261e; }
.avo-corr__item--blanco { border-left-color: #d9a441; }

.avo-corr__preg { margin: 0 0 .9rem; font-weight: 600; line-height: 1.5; }
.avo-corr__ops { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.avo-corr__ops li {
	display: flex; gap: .65rem; align-items: baseline;
	padding: .5rem .75rem; border-radius: 9px; font-size: .95rem; line-height: 1.45;
}
.avo-corr__ops li.correcta { background: #e9f7f0; }
.avo-corr__ops li.tuya     { background: #fdecea; }
.avo-corr__letra { flex-shrink: 0; font-weight: 800; color: var(--avo-gris-t,#7e7466); }
.avo-corr__ops em {
	margin-left: auto; flex-shrink: 0; font-style: normal;
	font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase;
	color: var(--avo-gris-t,#7e7466);
}
.avo-corr__ops li.correcta em { color: #17784f; }
.avo-corr__ops li.tuya em     { color: #b3261e; }

.avo-corr__nota-blanco { margin: .7rem 0 0; font-size: .88rem; color: #8a6d1f; }
.avo-corr__expl {
	margin: .9rem 0 0; padding: .8rem 1rem;
	border-radius: 10px; background:var(--avo-gris-f,#f5ebda);
	font-size: .92rem; line-height: 1.55; color: #475569;
}
.avo-corr__volver { margin-top: 2rem; text-align: center; }

@media (max-width: 560px) {
	.avo-examen__barra { flex-direction: column; align-items: stretch; text-align: center; }
	.avo-examen__reloj { text-align: center; }
	.avo-corr__ops li { flex-wrap: wrap; }
	.avo-corr__ops em { margin-left: 0; }
}

/* Enlace al hilo de preguntas de una clase. */
.avo-directo-preguntas {
	display: flex; flex-wrap: wrap; gap: .6rem; align-items: center;
	margin: .9rem 0 0;
}
.avo-grab-preg {
	margin-left: .5rem; font-size: .85rem; font-weight: 600;
	color: var(--avo-azul2, var(--avo-azul2,#a94728)); text-decoration: none;
	border-bottom: 1px solid transparent;
}
.avo-grab-preg:hover { border-bottom-color: currentColor; }

/* =========================================================================
 * CHAT DE LA CLASE
 * ====================================================================== */

.avo-chat {
	margin-top: 1rem;
	border: 1px solid var(--avo-borde, var(--avo-gris-l,#ece1cd)); border-radius: var(--radio, 14px);
	background:var(--avo-papel,#fdfaf3); overflow: hidden;
}

.avo-chat__cab {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: .8rem 1.1rem; border-bottom: 1px solid var(--avo-gris-l,#ece1cd); background:var(--avo-crema,#fbf6ee);
}
.avo-chat__cab h4 { margin: 0; font-size: .98rem; }

.avo-chat__estado {
	display: inline-flex; align-items: center; gap: .4rem;
	font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
	color: var(--avo-gris-t,#7e7466);
}
.avo-chat__estado.vivo { color: #b3261e; }
.avo-chat__estado.vivo::before {
	content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor;
	animation: avo-pulso 1.6s ease-in-out infinite;
}
@keyframes avo-pulso { 50% { opacity: .3; } }
@media (prefers-reduced-motion: reduce) { .avo-chat__estado.vivo::before { animation: none; } }

/* El hilo tiene altura fija: si creciera, la página daría saltos. */
.avo-chat__hilo {
	height: 320px; overflow-y: auto;
	padding: .9rem 1.1rem;
	display: flex; flex-direction: column; gap: .7rem;
	overscroll-behavior: contain;
}
.avo-chat__vacio { margin: auto; text-align: center; color: var(--avo-suave, var(--avo-gris-t,#7e7466)); font-size: .9rem; }

.avo-msg { position: relative; max-width: 88%; }
.avo-msg__cab {
	display: block; margin-bottom: .15rem;
	font-size: .74rem; font-weight: 700; color: var(--avo-suave, var(--avo-gris-t,#7e7466));
}
.avo-msg__txt {
	margin: 0; padding: .55rem .8rem;
	border-radius: 12px 12px 12px 4px; background: #f1f5f9;
	font-size: .93rem; line-height: 1.5; overflow-wrap: anywhere;
}

.avo-msg--mio { align-self: flex-end; }
.avo-msg--mio .avo-msg__cab { text-align: right; }
.avo-msg--mio .avo-msg__txt { border-radius: 12px 12px 4px 12px; background: #e8f0fd; }

.avo-msg--profe .avo-msg__cab { color: var(--avo-azul2, var(--avo-azul2,#a94728)); }
.avo-msg--profe .avo-msg__txt {
	background: #fdf6e7; border-left: 3px solid var(--avo-oro, #d9a441);
}

.avo-msg--fuera .avo-msg__txt { background: #f4f4f5; color: #9ca3af; font-style: italic; }

.avo-msg__quitar {
	position: absolute; top: 0; right: -.2rem;
	padding: 0 .3rem; border: 0; background: none; cursor: pointer;
	font-size: .7rem; color: #9ca3af; opacity: 0; transition: opacity .15s;
}
.avo-msg:hover .avo-msg__quitar { opacity: 1; }
.avo-msg__quitar:hover { color: #b3261e; text-decoration: underline; }

.avo-chat__form {
	display: flex; gap: .5rem; align-items: flex-end;
	padding: .8rem 1.1rem; border-top: 1px solid var(--avo-gris-l,#ece1cd); background:var(--avo-crema,#fbf6ee);
}
.avo-chat__form textarea {
	flex: 1; min-height: 40px; max-height: 120px; resize: none;
	padding: .55rem .8rem;
	border: 1.5px solid #dfe5ec; border-radius: 10px;
	font: inherit; font-size: .93rem; line-height: 1.45;
}
.avo-chat__form textarea:focus {
	outline: none; border-color: var(--avo-azul2, var(--avo-azul2,#a94728));
	box-shadow: 0 0 0 3px rgba(42,111,219,.13);
}
/* El botón se pinta explícito: dentro del tema hay reglas de formulario que
   lo dejaban descolorido, y aquí no puede depender de la cascada. */
.avo-chat__form .avo-btn {
	flex-shrink: 0; margin-left: 0;
	padding: .58rem 1.1rem;
	background: var(--avo-azul2, var(--avo-azul2,#a94728)); color: #fff;
	border: 0; border-radius: 10px;
	font-weight: 700; font-size: .9rem; line-height: 1.2;
}
.avo-chat__form .avo-btn:hover { background: var(--avo-azul, #12304c); color: #fff; }

.avo-chat__pie {
	margin: 0; padding: .5rem 1.1rem .8rem;
	font-size: .82rem; color: var(--avo-suave, var(--avo-gris-t,#7e7466));
}
.avo-chat__pie:empty { display: none; }

@media (max-width: 560px) {
	.avo-chat__hilo { height: 260px; }
	.avo-msg { max-width: 96%; }
}

/* --- Grabaciones en Bunny ------------------------------------------------ */

/*
 * El desplegable de la grabación vive dentro de un <li> que es flex. Sin
 * decirle nada se queda del ancho de su propio botón, y el reproductor, que
 * pide el 100%, sale del tamaño de un sello. Ocupa su propia línea completa.
 */
.avo-grab-ver { flex: 0 0 100%; width: 100%; margin-top: .5rem; }

.avo-reproductor { max-width: 900px; }

.avo-video {
	position: relative; width: 100%; aspect-ratio: 16 / 9;
	margin: .55rem 0 0;
	border-radius: var(--radio, 14px); overflow: hidden; background: #0a1622;
}
.avo-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* En pantalla completa manda la pantalla, no la proporción del marco. */
.avo-video:fullscreen,
.avo-video:-webkit-full-screen {
	width: 100%; height: 100%; max-width: none;
	aspect-ratio: auto; border-radius: 0; margin: 0;
}

.avo-reproductor__pie {
	display: flex; align-items: center; justify-content: space-between;
	gap: .8rem; flex-wrap: wrap; margin-top: .45rem;
}
.avo-reproductor__nota {
	font-size: .78rem; color: var(--avo-gris-t, var(--avo-gris-t,#7e7466));
}
.avo-reproductor__ampliar {
	cursor: pointer; background: none;
	padding: .3rem .7rem; border-radius: 8px;
	border: 1px solid var(--avo-gris-l, var(--avo-gris-l,#ece1cd));
	color: var(--avo-gris-t, var(--avo-gris-t,#7e7466));
	font: inherit; font-size: .8rem; font-weight: 600;
}
.avo-reproductor__ampliar:hover {
	border-color: var(--avo-azul2, var(--avo-azul2,#a94728));
	color: var(--avo-azul2, var(--avo-azul2,#a94728));
}

.avo-grab-unidad {
	display: inline-block; padding: .12rem .5rem; border-radius: 99px;
	background: var(--avo-gris-l,#ece1cd); color: var(--avo-gris-t,#7e7466);
	font-size: .75rem; font-weight: 700;
}
.avo-grab-ver > summary {
	display: inline-block; cursor: pointer;
	padding: .35rem .8rem; border-radius: 9px;
	border: 2px solid var(--avo-azul2, var(--avo-azul2,#a94728)); color: var(--avo-azul2, var(--avo-azul2,#a94728));
	font-size: .85rem; font-weight: 600; list-style: none;
}
.avo-grab-ver > summary::-webkit-details-marker { display: none; }
.avo-grab-ver > summary:hover { background: var(--avo-azul2, var(--avo-azul2,#a94728)); color: #fff; }
.avo-grab-ver[open] > summary { background: var(--avo-azul2, var(--avo-azul2,#a94728)); color: #fff; }
/* El <span> del summary de arriba lleva pastilla gris; aquí no la queremos. */
.avo-grabaciones .avo-grab-ver > summary span {
	background: none; color: inherit; border-radius: 0;
	padding: 0; margin: 0; font-size: inherit;
}
.avo-grab-ver > summary .avo-grab-ver__cerrar,
.avo-grab-ver[open] > summary .avo-grab-ver__abrir { display: none; }
.avo-grab-ver[open] > summary .avo-grab-ver__cerrar { display: inline-block; }

@media (max-width: 640px) {
	.avo-grab-fecha { min-width: 0; }
}

/* --- Foro de debate y consulta (V37): tabla estilo Moodle --- */
.avo-foro-buscar{display:flex;gap:.5rem;align-items:center;flex:1;min-width:220px}
.avo-foro-buscar input[type=search]{flex:1;padding:.55rem .8rem;border:1px solid var(--avo-gris-l);border-radius:8px;font:inherit;background:#fff}
.avo-foro-tabla{width:100%;border-collapse:collapse;background:var(--avo-papel,#fdfaf3);border:1px solid var(--avo-gris-l);border-radius:var(--avo-radio);overflow:hidden;margin-bottom:1.5rem}
.avo-foro-tabla th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--avo-gris-t);padding:.7rem 1rem;border-bottom:1px solid var(--avo-gris-l);background:var(--avo-gris-f)}
.avo-foro-tabla td{padding:.8rem 1rem;border-bottom:1px solid var(--avo-gris-l);vertical-align:middle;font-size:.92rem}
.avo-foro-tabla tr:last-child td{border-bottom:0}
.avo-foro-tabla tbody tr:hover{background:var(--avo-gris-f)}
.avo-foro-tabla tr.es-fijado{background:var(--oro-100,#fbf1dd)}
.avo-foro-tabla__tema a{font-weight:700;color:var(--avo-azul-osc);text-decoration:none;margin-right:.4rem}
.avo-foro-tabla__tema a:hover{color:var(--avo-azul2)}
.avo-foro-tabla .avo-mini{display:block}
.avo-foro-tabla__n{text-align:center!important;width:1%;white-space:nowrap}
.avo-foro-tabla__quien{display:flex;gap:.6rem;align-items:center}
.avo-foro-tabla__quien img{border-radius:50%}
@media (max-width:700px){
	.avo-foro-tabla thead{display:none}
	.avo-foro-tabla,.avo-foro-tabla tbody,.avo-foro-tabla tr,.avo-foro-tabla td{display:block;width:100%}
	.avo-foro-tabla td{border:0;padding:.3rem 1rem}
	.avo-foro-tabla tr{border-bottom:1px solid var(--avo-gris-l);padding:.5rem 0}
	.avo-foro-tabla__n{text-align:left!important}
	.avo-foro-tabla__n:before{content:"Réplicas: ";font-weight:400}
}

/* Insignia de la profesora (V38) */
.avo-chip--docente{background:#a94728;color:#fff;border-color:#a94728;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.68rem;padding:.12rem .5rem;margin:0 .25rem}
.avo-foro-tabla tr.es-ultimo-docente td:last-child{box-shadow:inset -3px 0 0 #a94728}
.avo-pant__titulo { margin: 0 0 1.1rem; text-align: center; font-size: 1.3rem; letter-spacing: .04em; color: var(--cc-titulo, #12304c); }

/* Foro: borrar lo propio */
.avo-foro-borrar { margin: .6rem 0 0; }
.avo-foro-borrar__btn { background: none; border: 0; padding: 0; font: inherit; font-size: .85rem; color: #9a3412; text-decoration: underline; cursor: pointer; }
.avo-foro-borrar__btn:hover { color: #7c2d12; }
