/* Aula del alumno: content first, persistent course navigation on desktop. */
.aula-layout { display: grid; gap: 1.5rem; align-items: start; }
.aula-contenido { min-width: 0; }
.aula-indice { display: none; border: 1px solid var(--gray-200); border-radius: 1rem; background: var(--color-white); overflow: hidden; }
.aula-indice[data-abierto="true"] { display: block; }
.aula-indice-cabecera { padding: 1.25rem; border-bottom: 1px solid var(--gray-200); }
.aula-progreso { width: 100%; height: .5rem; margin-top: .75rem; accent-color: var(--primary-500); }
.aula-modulo-titulo { cursor: pointer; padding: 1rem 1.25rem; font-weight: 600; }
.aula-modulos details + details { border-top: 1px solid var(--gray-200); }
.aula-actividad { width: 100%; display: flex; align-items: start; gap: .75rem; text-align: start; padding: .875rem 1.25rem; border-inline-start: 3px solid transparent; }
.aula-actividad:hover { background: color-mix(in srgb, var(--primary-500) 7%, transparent); }
.aula-actividad[aria-current="step"] { border-inline-start-color: var(--primary-500); background: color-mix(in srgb, var(--primary-500) 12%, transparent); }
.aula-actividad:focus-visible, .aula-modulo-titulo:focus-visible, .aula-indice-toggle:focus-visible { outline: 2px solid var(--primary-500); outline-offset: -2px; }
.aula-indice-toggle { text-align: start; padding: 1rem; border: 1px solid var(--gray-300); border-radius: .75rem; font-weight: 600; }
.dark .aula-indice { background: var(--gray-900); }
.dark .aula-indice, .dark .aula-indice-cabecera, .dark .aula-modulos details + details { border-color: var(--gray-700); }
@media (max-width: 1023px) { .aula-indice { grid-row: 2; } }
@media (min-width: 1024px) {
    .aula-layout { grid-template-columns: minmax(0, 1fr) 20rem; }
    .aula-indice { display: block; position: sticky; top: 6rem; max-height: calc(100dvh - 7rem); overflow-y: auto; }
    .aula-indice-toggle { display: none; }
}

/* Enrolled courses: artwork and cards shared by every panel. */
.academico-course-card { width:100%; white-space:normal; text-align:start; }
.academico-course-art { position:relative; aspect-ratio:16/9; overflow:hidden; border-radius:.85rem; isolation:isolate; background:#e0f2f1; color:#115e59; }
.academico-course-art--1 { background:#e0e7ff; color:#3730a3; }
.academico-course-art--2 { background:#fef3c7; color:#92400e; }
.academico-course-art--3 { background:#fce7f3; color:#9d174d; }
.academico-course-art img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2; }
.academico-course-art img[hidden] { display:none; }
.academico-course-art-fallback { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; background:linear-gradient(135deg, #ffffff90, transparent); }
.academico-course-art-orbit { position:absolute; width:75%; aspect-ratio:1; border:1px solid currentColor; border-radius:50%; opacity:.12; transform:translate(48%, -25%); box-shadow:0 0 0 2.5rem #ffffff40, 0 0 0 5rem #ffffff30; }
.academico-course-art-icon { width:4rem; height:4rem; transform:rotate(-8deg); }
.academico-course-art-caption { font-size:.6rem; letter-spacing:.2em; font-weight:700; }
.academico-course-art--hero { max-height:19rem; aspect-ratio:4/1; }
.academico-course-card-body { padding:1.1rem .15rem .25rem; display:flex; flex-direction:column; gap:.65rem; }
.academico-course-card h2 { font-size:1.15rem; line-height:1.4; font-weight:700; }
.academico-course-card-eyebrow { display:flex; flex-wrap:wrap; gap:.5rem; font-size:.7rem; font-weight:600; color:var(--primary-600); }
.academico-course-card-eyebrow span { padding:.2rem .55rem; border-radius:2rem; background:color-mix(in srgb, var(--primary-500) 10%, transparent); }
.academico-course-card-group { font-size:.875rem; font-weight:500; }
.academico-course-card-description { font-size:.875rem; line-height:1.6; opacity:.7; min-height:2.8rem; }
.academico-course-card-meta { font-size:.75rem; opacity:.7; }
.academico-course-card-notice { font-size:.8rem; padding:.65rem; background:color-mix(in srgb, var(--primary-500) 10%, transparent); border-radius:.5rem; }
.academico-course-progress { height:.35rem; overflow:hidden; border-radius:1rem; background:color-mix(in srgb, currentColor 12%, transparent); }
.academico-course-progress span { display:block; height:100%; background:var(--primary-500, #0d9488); border-radius:inherit; }
@media(max-width:640px) { .academico-course-art--hero { aspect-ratio:16/9; } }

/* Learner exam overview and submission states. */
.academico-exam-overview { padding:1.5rem; border:1px solid var(--gray-200); border-radius:1rem; background:var(--color-white, #fff); }
.academico-exam-heading { display:flex; align-items:center; gap:1rem; }
.academico-exam-emblem { padding:.9rem; border-radius:1rem; color:var(--primary-600); background:color-mix(in srgb, var(--primary-500) 12%, transparent); }
.academico-exam-heading h2 { font-size:1.5rem; font-weight:700; line-height:1.4; margin:.25rem 0; }
.academico-exam-eyebrow, .academico-exam-caption { font-size:.85rem; color:var(--gray-500); }
.academico-exam-stats { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:1rem; padding:1.25rem 0; margin:1.25rem 0 .75rem; border-block:1px solid var(--gray-200); }
.academico-exam-stats dt { font-size:.8rem; color:var(--gray-500); }
.academico-exam-stats dd { font-size:1.6rem; font-weight:600; margin-top:.25rem; }
.academico-exam-stats small, .academico-exam-score small { font-size:.85rem; font-weight:400; }
.academico-exam-status { display:flex; align-items:flex-start; gap:1rem; padding:1.25rem; border-radius:1rem; background:color-mix(in srgb, var(--primary-500) 8%, var(--color-white, #fff)); border:1px solid color-mix(in srgb, var(--primary-500) 25%, transparent); }
.academico-exam-status > svg { flex-shrink:0; color:var(--primary-600); }
.academico-exam-status h3 { font-weight:600; margin-bottom:.4rem; }
.academico-exam-status p { font-size:.875rem; line-height:1.7; }
.academico-exam-status .academico-exam-score { font-size:1.4rem; font-weight:600; }
.academico-exam-history-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0; }
.dark .academico-exam-overview { background:var(--gray-900); border-color:var(--gray-700); }
.dark .academico-exam-stats { border-color:var(--gray-700); }
.dark .academico-exam-status { background:color-mix(in srgb, var(--primary-500) 10%, var(--gray-900)); }
@media(max-width:640px) { .academico-exam-overview { padding:1rem; } .academico-exam-stats { gap:.5rem; } .academico-exam-stats dd { font-size:1.25rem; } .academico-exam-heading h2 { font-size:1.2rem; } }

/* Compact course reader header. */
.aula-course-header { padding:1.25rem 1.5rem; border:1px solid var(--gray-200); border-radius:1rem; background:var(--color-white, #fff); }
.aula-course-breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; font-size:.75rem; color:var(--gray-500); margin-bottom:1rem; }
.aula-course-breadcrumbs a { color:inherit; text-decoration:none; }
.aula-course-breadcrumbs a:hover { color:var(--primary-600); text-decoration:underline; }
.aula-course-header-main { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.aula-course-header-title { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; min-width:0; }
.aula-course-header-title h1 { font-size:1.5rem; font-weight:700; line-height:1.35; overflow-wrap:anywhere; }
.aula-course-header-progress { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; margin-top:1rem; font-size:.75rem; color:var(--gray-500); }
.aula-course-header-progress .aula-progreso { width:8rem; margin:0; }
.aula-course-header-note { margin-top:.75rem; font-size:.8rem; color:var(--gray-500); }
.dark .aula-course-header { background:var(--gray-900); border-color:var(--gray-700); }
@media(max-width:640px) { .aula-course-header { padding:1rem; } .aula-course-header-main { align-items:flex-start; flex-direction:column; } .aula-course-header-title h1 { font-size:1.25rem; } .aula-course-header-progress { align-items:flex-start; flex-direction:column; } .aula-course-header-progress .aula-progreso { width:100%; } }
.resultados-cabecera{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.resultados-cabecera h2{font-size:1.5rem;font-weight:750;line-height:1.3;margin:.35rem 0;overflow-wrap:anywhere}
.resultados-etiqueta{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.65}
.resultados-resumen{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}
.resultados-panel{border:1px solid #dbe5e1;border-radius:1.25rem;background:#fff;padding:1.5rem;color:#203e37;min-width:0}
.resultados-panel h3{font-size:1.2rem;font-weight:700;margin:.6rem 0}
.resultados-nota{background:linear-gradient(135deg,#e5f6ef,#f6fbf9);border-color:#b9ddd0}
.resultados-valor{font-size:3.25rem;font-weight:750;line-height:1.2;margin:1rem 0 .6rem;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.resultados-valor span{font-size:1.1rem;font-weight:500;opacity:.65;letter-spacing:normal}
.resultados-estado{font-weight:650;margin-bottom:.75rem}
.resultados-ayuda{font-size:.85rem;line-height:1.6;opacity:.72}
.resultados-panel progress{display:block;width:100%;height:8px;accent-color:#008d78;margin:.6rem 0;border-radius:1rem}
.resultados-requisitos{margin-top:1rem;font-size:.85rem}.resultados-requisitos summary,.resultados-feedback summary{cursor:pointer;color:#087d6a;font-weight:600}
.resultados-requisitos ul{list-style:none;padding:0;margin:.75rem 0}.resultados-requisitos li{display:flex;gap:.6rem;padding:.6rem 0;border-top:1px solid #dbe5e1}.resultados-requisitos li p{opacity:.72;font-size:.8rem;margin-top:.25rem}
.resultados-detalle{padding:0;overflow:hidden}.resultados-tabla-titulo{padding:1.25rem 1.5rem}.resultados-tabla-titulo h3{margin:0 0 .35rem}
.resultados-tabla-scroll{overflow-x:auto}.resultados-tabla{width:100%;border-collapse:collapse;text-align:left;font-size:.85rem}
.resultados-tabla th,.resultados-tabla td{padding:1rem 1.5rem;border-bottom:1px solid #e5ece8;vertical-align:top}.resultados-tabla tbody th{font-weight:550;min-width:230px}.resultados-tabla thead th{font-size:.72rem;letter-spacing:.03em;color:#61766d;background:#f7f9f8}.resultados-tabla .resultados-modulo th{background:#edf4f0;font-size:.8rem;font-weight:700;padding:.65rem 1.5rem}
.resultados-insignia{display:inline-block;border:1px solid #d6e4dd;border-radius:2rem;padding:.2rem .6rem;font-size:.75rem;white-space:nowrap}.resultados-cifra{white-space:nowrap;font-variant-numeric:tabular-nums}
.resultados-feedback{margin-top:.6rem;font-size:.8rem;font-weight:400}.resultados-feedback p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:.5rem;max-width:36rem}
.resultados-pie{padding:1rem 1.5rem;font-size:.78rem;line-height:1.6;opacity:.65}
.dark .resultados-panel{background:#14251f;color:#e3eee8;border-color:#334c41}.dark .resultados-nota{background:linear-gradient(135deg,#173f33,#14251f)}.dark .resultados-tabla thead th,.dark .resultados-tabla .resultados-modulo th{background:#1c3228;color:#c0d9cb}.dark .resultados-tabla td,.dark .resultados-tabla th,.dark .resultados-requisitos li,.dark .resultados-insignia{border-color:#334c41}.dark .resultados-feedback summary,.dark .resultados-requisitos summary{color:#66d9b6}
@media(max-width:700px){.resultados-resumen{grid-template-columns:1fr}.resultados-panel{padding:1.1rem}.resultados-detalle{padding:0}.resultados-cabecera h2{font-size:1.25rem}.resultados-tabla th,.resultados-tabla td{padding:.85rem 1rem}.resultados-valor{font-size:2.75rem}}
/* Student sessions share the academic results visual language. */
.sesiones-resumen{align-items:stretch}
.sesiones-metricas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.25rem 0}
.sesiones-metricas>div{padding:.85rem 1rem;border-radius:.85rem;background:#f1f7f4;display:flex;flex-direction:column;gap:.2rem}
.sesiones-metricas strong{font-size:1.8rem;font-weight:750;line-height:1.2;font-variant-numeric:tabular-nums}
.sesiones-metricas span{font-size:.8rem;opacity:.75}
.sesiones-lista-titulo h2{font-size:1.25rem;font-weight:700;margin-bottom:.3rem}
.sesiones-lista{display:grid;gap:1rem}
.sesion-tarjeta{padding:0;overflow:hidden}
.sesion-tarjeta-abierta{border-color:#59b99e;box-shadow:0 0 0 1px #59b99e33}
.sesion-contenido{display:flex;align-items:flex-start;gap:1.25rem;padding:1.4rem 1.5rem}
.sesion-fecha{flex:0 0 72px;text-align:center;display:flex;flex-direction:column;align-items:center;background:#edf7f2;border:1px solid #d5e9de;border-radius:1rem;padding:.65rem .4rem;color:#21604e}
.sesion-fecha>span{text-transform:uppercase;font-size:.7rem;font-weight:750;letter-spacing:.08em}
.sesion-fecha>strong{font-size:2rem;line-height:1.25;font-weight:750;font-variant-numeric:tabular-nums}
.sesion-fecha>small{font-size:.7rem;opacity:.65}
.sesion-info{min-width:0;flex:1}
.sesion-info h3{margin:.6rem 0;font-size:1.15rem;overflow-wrap:anywhere}
.sesion-insignias{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.sesion-momento{font-size:.73rem;font-weight:650;color:#60746c}
.sesion-en-vivo{color:#007b61;background:#e2f8ef;border-radius:2rem;padding:.3rem .65rem}
.sesion-dato{display:flex;align-items:center;gap:.45rem;font-size:.88rem;overflow-wrap:anywhere;line-height:1.5}
.sesion-dato svg{width:1rem;height:1rem;flex-shrink:0;opacity:.65}
.sesion-zona{font-size:.75rem;opacity:.65;margin:.15rem 0 .5rem 1.45rem}
.sesion-pie{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 1.5rem;border-top:1px solid #e4ece7;background:#fafcfb}
.sesion-asistencia{display:flex;flex-direction:column;gap:.3rem;align-items:flex-start}
.sesion-registro{font-size:.83rem;font-weight:650;border-radius:2rem;padding:.25rem .65rem;background:#edf1ef;color:#586c63}
.sesion-registro-presente{background:#e1f5e9;color:#21633e}
.sesion-registro-retardo{background:#fff1d9;color:#80591a}
.sesion-registro-falta{background:#fce8e8;color:#963b3b}
.sesion-registro-justificada{background:#e8effc;color:#3b5896}
.sesion-acciones{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.sesion-observacion{padding:1rem 1.5rem;border-top:1px solid #e4ece7;font-size:.85rem}
.sesion-observacion>strong{display:block;margin-bottom:.3rem;font-weight:650}
.sesion-observacion p{white-space:pre-wrap;overflow-wrap:anywhere;opacity:.8}
.sesiones-vacio{text-align:center;padding:2.5rem 1.5rem}
.sesiones-vacio>svg{width:2.5rem;height:2.5rem;margin:0 auto 1rem;color:#458a73}
.dark .sesiones-metricas>div,.dark .sesion-fecha{background:#17392f;border-color:#33574a;color:#c4e8d9}
.dark .sesion-pie{background:#182e25;border-color:#354b40}
.dark .sesion-observacion{border-color:#354b40}
.dark .sesion-momento{color:#b4c5bc}
.dark .sesion-en-vivo,.dark .sesion-registro-presente{background:#174a38;color:#97e1be}
.dark .sesion-registro-pendiente{background:#35433c;color:#d0dcd5}
.dark .sesion-registro-retardo{background:#513f20;color:#f7d28b}
.dark .sesion-registro-falta{background:#532b2b;color:#f5b8b8}
.dark .sesion-registro-justificada{background:#283e61;color:#b9d1f8}
@media(max-width:600px){.sesion-contenido{padding:1rem;gap:.85rem}.sesion-fecha{flex-basis:58px}.sesion-fecha>strong{font-size:1.7rem}.sesion-pie,.sesion-observacion{padding:1rem}.sesion-info h3{font-size:1rem}.sesion-acciones{width:100%}.sesion-acciones>a{flex:1;justify-content:center}.sesiones-metricas{gap:.65rem}.sesiones-metricas>div{padding:.75rem}}
.aula-sesiones .resultados-tabla{min-width:700px}.aula-sesiones .resultados-tabla th,.aula-sesiones .resultados-tabla td{padding:.85rem 1rem;vertical-align:top}.aula-sesiones .resultados-tabla thead th{white-space:nowrap}.aula-sesiones .resultados-tabla tbody th{min-width:180px}.aula-sesion-estado{margin-top:.5rem}.aula-sesion-horario{font-size:.85rem;white-space:nowrap;margin:.2rem 0}.aula-sesion-accesos{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;min-width:135px}.aula-sesiones-pie{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1rem;font-size:.85rem}.aula-sesiones .resultados-tabla-scroll{border:1px solid #dbe5e1;border-radius:.85rem}.dark .aula-sesiones .resultados-tabla-scroll{border-color:#354b40}
.acreditacion-revision{display:grid;gap:1rem;min-width:0}
.acreditacion-resumen{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:linear-gradient(120deg,#edf8f3,#f8faf9)}
.acreditacion-contadores{display:flex;gap:1.5rem;flex-shrink:0}.acreditacion-contadores>div{display:grid;gap:.25rem}.acreditacion-contadores strong{font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums}.acreditacion-contadores span{font-size:.75rem;opacity:.75}
.acreditacion-estado{display:inline-block;border-radius:.65rem;padding:.3rem .6rem;background:#d9f4e9;color:#145742;font-size:.78rem;font-weight:600;line-height:1.5}.acreditacion-estado--pendiente{background:#fff0d4;color:#825519}
.acreditacion-tabla th,.acreditacion-tabla td{padding:.75rem 1rem}.acreditacion-tabla td{width:45%}.acreditacion-tabla td p{margin-top:.3rem}.acreditacion-confirmacion{font-size:.82rem;line-height:1.6;color:#536c61}
.dark .acreditacion-resumen{background:linear-gradient(120deg,#173f33,#14251f)}.dark .acreditacion-estado{background:#204c3d;color:#a3efd2}.dark .acreditacion-estado--pendiente{background:#44371f;color:#f5d596}.dark .acreditacion-confirmacion{color:#b9cec3}
@media(max-width:600px){.acreditacion-resumen{align-items:stretch;flex-direction:column;gap:1rem}.acreditacion-contadores{justify-content:space-between}.acreditacion-tabla tbody th{min-width:140px}}
.entrega-feedback{margin:1rem 0;padding:1rem 1.2rem;border:1px solid #a3d8c8;border-inline-start:5px solid #07836d;border-radius:12px;background:#eaf8f2;color:#174f40;text-align:start}
.entrega-feedback--corregir{background:#fff6df;border-color:#ebcc83;border-inline-start-color:#bc7910;color:#674513}
.entrega-feedback-titulo{display:flex;align-items:center;gap:.65rem;font-size:1rem;line-height:1.4}.entrega-feedback-titulo>span{font-size:1.6rem;line-height:1}
.entrega-feedback .entrega-feedback-etiqueta{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin:.9rem 0 .25rem;opacity:.75}
.entrega-feedback .entrega-feedback-texto{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:1rem;line-height:1.7}
.entrega-feedback .entrega-feedback-ayuda{margin:.75rem 0 0;font-size:.82rem;line-height:1.6;opacity:.85}
.dark .entrega-feedback{background:#173e33;color:#b9eedc;border-color:#326955;border-inline-start-color:#5ad2aa}.dark .entrega-feedback--corregir{background:#392f1b;color:#f7dea9;border-color:#756038;border-inline-start-color:#e8b44f}
