:root {
    --verde: #00884a;
    --verde-oscuro: #005f3b;
    --verde-suave: #e4f4ec;
    --menta: #f2fbf6;
    --salvia: #d8eadf;
    --marfil: #fffdf6;
    --azul: #123a52;
    --azul-profundo: #0a2f3f;
    --ambar: #f2b705;
    --coral: #d86b3a;
    --tinta: #17212b;
    --texto: #34404a;
    --muted: #6a7682;
    --linea: #dfe6ec;
    --fondo: #f3f8f6;
    --panel: #ffffff;
    --riesgo: #b42318;
    --advertencia: #a15c00;
    --sombra: 0 18px 48px rgba(23, 59, 87, .12);
    font-family: "Segoe UI", Arial, sans-serif;
}

.panel-mensajeria .filtros.filtros-compactos {
    display: grid;
    grid-template-columns: minmax(180px, 1.25fr) repeat(4, minmax(140px, 1fr));
    gap: 8px;
    align-items: end;
    overflow: visible;
}
.panel-mensajeria .filtros.filtros-compactos .filtro-busqueda {
    min-width: 0;
    margin-right: 0;
}
.panel-mensajeria .filtros.filtros-compactos label > span {
    text-align: left;
    max-width: 100%;
}
.panel-mensajeria .filtros.filtros-compactos .selector-busqueda-control {
    min-width: 0;
}
.panel-mensajeria .filtros.filtros-compactos .selector-busqueda-texto {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.panel-mensajeria .filtros.filtros-compactos .campo-check {
    margin-bottom: 0;
}

.panel-eventos .pestanas-eventos .pestana-nota {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.evento-editor-grid {
    display: grid;
    grid-template-columns: minmax(280px, .78fr) minmax(420px, 1.22fr);
    gap: 16px;
    align-items: start;
}
.evento-publicidad-preview {
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--evento-color, #39f000) 48%, var(--linea));
    border-radius: 8px;
    background: linear-gradient(180deg, var(--evento-color, #39f000) 0 45%, #fff 45% 100%);
    box-shadow: 0 18px 42px rgba(18,58,82,.12);
}
.evento-publicidad-preview img {
    display: block;
    width: 100%;
    max-height: 460px;
    object-fit: contain;
    background: #fff;
}
.publicidad-vacia {
    min-height: 360px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 8px;
    color: var(--evento-acento, var(--tinta));
    text-align: center;
    padding: 24px;
}
.publicidad-vacia strong {
    font-size: 34px;
    color: var(--evento-acento, var(--tinta));
}
.evento-preview-datos {
    display: grid;
    gap: 5px;
    padding: 16px;
    color: var(--evento-acento, var(--tinta));
    background: rgba(255,255,255,.94);
}
.evento-preview-datos strong {
    font-size: 20px;
    color: var(--evento-acento, var(--tinta));
}
.evento-campos {
    display: grid;
    gap: 12px;
}
.evento-roles {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 12px;
    border: 1px solid #cfe4da;
    border-radius: 8px;
    background: #fbfffc;
}
.evento-roles .campo-check,
.panel-eventos .campo-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    width: auto;
}
.mini-publicidad-evento {
    width: 70px;
    height: 70px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--linea);
    background: #fff;
}
.cabecera-evento-imprimible {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 18px;
    align-items: center;
    margin: 14px 0;
    padding: 16px;
    border: 1px solid color-mix(in srgb, var(--evento-color, #39f000) 45%, var(--linea));
    border-radius: 8px;
    background: linear-gradient(90deg, color-mix(in srgb, var(--evento-color, #39f000) 18%, #fff), #fff);
}
.cabecera-evento-imprimible img {
    width: 100%;
    max-height: 150px;
    object-fit: contain;
    border-radius: 8px;
    background: #fff;
}
.cabecera-evento-imprimible small {
    display: inline-flex;
    margin-bottom: 6px;
    padding: 5px 9px;
    border-radius: 999px;
    background: var(--evento-color, #39f000);
    color: var(--evento-acento, var(--tinta));
    font-weight: 900;
    text-transform: uppercase;
}
.cabecera-evento-imprimible h3 {
    margin: 0 0 5px;
    color: var(--evento-acento, var(--tinta));
    font-size: 26px;
}
.tabla-asistencia-evento select,
.tabla-asistencia-evento input {
    min-width: 120px;
    padding: 8px 9px;
}
.lista-envios-evento {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}
.envio-evento {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
}
.envio-evento strong,
.envio-evento span {
    display: block;
}
.envio-evento span {
    color: var(--muted);
    font-size: 13px;
}
.envio-evento button {
    border: 0;
    border-radius: 8px;
    padding: 10px 14px;
    background: var(--verde);
    color: #fff;
    font-weight: 900;
}
.envio-evento.sin-destino {
    opacity: .62;
}
.eventos-publicados,
.evento-modal-inicio {
    display: grid;
    gap: 14px;
}
.evento-publico {
    display: grid;
    grid-template-columns: minmax(180px, 320px) 1fr;
    gap: 18px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--evento-color, #39f000) 42%, var(--linea));
    border-radius: 8px;
    background: linear-gradient(90deg, color-mix(in srgb, var(--evento-color, #39f000) 16%, #fff), #fff);
}
.evento-publico img {
    width: 100%;
    height: 100%;
    min-height: 220px;
    object-fit: cover;
    background: #fff;
}
.evento-publico > div {
    display: grid;
    align-content: center;
    gap: 8px;
    padding: 18px 18px 18px 0;
}
.evento-publico small {
    color: var(--verde-oscuro);
    font-weight: 900;
    text-transform: uppercase;
}
.evento-publico h3 {
    margin: 0;
    color: var(--evento-acento, var(--tinta));
    font-size: 26px;
}
.evento-publico p {
    margin: 0;
    line-height: 1.45;
}
.evento-publico strong {
    color: var(--evento-acento, var(--tinta));
}
@media (max-width: 920px) {
    .evento-editor-grid,
    .evento-publico,
    .cabecera-evento-imprimible {
        grid-template-columns: 1fr;
    }
    .evento-publico > div {
        padding: 16px;
    }
}
@media print {
    .panel-eventos > header,
    .pestanas-eventos,
    .evento-asistencia > .filtros,
    .tabla-asistencia-evento input,
    .tabla-asistencia-evento select {
        display: none !important;
    }
    .cabecera-evento-imprimible {
        break-inside: avoid;
    }
}
.filtros-asistencia-evento {
    display: grid;
    grid-template-columns: minmax(240px, .85fr) minmax(240px, 1fr) minmax(350px, auto);
    gap: 8px;
    align-items: center;
    min-height: 78px;
    padding: 10px;
    overflow: visible;
}
.asistencia-selector-evento,
.asistencia-selector-evento .selector-busqueda,
.asistencia-selector-evento .selector-busqueda-control {
    min-width: 0;
    width: 100%;
}
.evento-filtro-roles {
    min-width: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 8px;
    align-items: center;
    padding: 8px 10px;
    border: 1px solid #cfe4da;
    border-radius: 8px;
    background: #fbfffc;
}
.evento-filtro-roles > span {
    color: var(--verde-oscuro);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}
.evento-filtro-roles > div {
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.chip-rol-evento {
    min-width: 0;
    height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 6px 9px;
    border: 1px solid #c8ded4;
    border-radius: 8px;
    background: #fff;
    color: var(--tinta);
    font-size: 12px;
    font-weight: 800;
}
.chip-rol-evento input {
    width: 16px;
    height: 16px;
    accent-color: var(--verde);
}
.chip-rol-evento span {
    max-width: 92px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.asistencia-acciones {
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: 6px;
}
.asistencia-acciones .boton-principal,
.asistencia-acciones .boton-texto {
    min-height: 38px;
    padding: 8px 11px;
    white-space: nowrap;
}
.asistencia-acciones .icono-boton {
    width: 36px;
    height: 36px;
}
.asistencia-evento-pagina {
    width: 100%;
    margin: 10px 0 0;
    overflow: hidden;
    border: 1px solid #d6dee6;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(18,58,82,.08);
    color: #111827;
}
.asistencia-evento-pagina .cabecera-evento-imprimible {
    display: block;
    height: clamp(72px, 10vh, 112px);
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: #fff;
}
.asistencia-evento-pagina .cabecera-evento-imprimible img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: center;
    border: 0;
    border-radius: 0;
}
.asistencia-evento-contenido {
    padding: 10px 12px 12px;
}
.cabecera-evento-vacia {
    min-height: 38mm;
    display: grid !important;
    place-items: center;
    color: var(--evento-acento, #111827);
    background: linear-gradient(90deg, var(--evento-color, #39f000), #ffffff) !important;
}
.cabecera-evento-vacia div {
    display: grid;
    gap: 4px;
    text-align: center;
}
.cabecera-evento-vacia strong {
    font-size: 26px;
    text-transform: uppercase;
}
.evento-doc-title {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: end;
    margin-bottom: 8px;
}
.evento-doc-title small {
    display: block;
    color: #4b5563;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}
.evento-doc-title h3 {
    margin: 0;
    color: #111827;
    font-size: 18px;
    letter-spacing: 0;
}
.evento-doc-title span {
    align-self: center;
    padding: 7px 12px;
    border-radius: 8px;
    background: #222;
    color: #fff;
    font-weight: 900;
    font-size: 12px;
}
.evento-meta-asistencia {
    display: grid;
    grid-template-columns: 1.2fr 1.25fr .75fr .65fr 1.1fr;
    gap: 0;
    margin-bottom: 8px;
    border: 1px solid #cfd6dd;
    border-radius: 8px;
    overflow: hidden;
}
.evento-meta-asistencia div {
    min-width: 0;
    padding: 6px 8px;
    border-right: 1px solid #d9e0e6;
    background: #fbfcfd;
}
.evento-meta-asistencia div:last-child {
    border-right: 0;
}
.evento-meta-asistencia small {
    display: block;
    margin-bottom: 2px;
    color: #6b7280;
    font-size: 9px;
    font-weight: 900;
    text-transform: uppercase;
}
.evento-meta-asistencia strong {
    display: block;
    color: #111827;
    font-size: 10.5px;
    line-height: 1.25;
}
.evento-resumen-asistencia {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: #374151;
    font-size: 11px;
}
.evento-doc-title-virtual h3 {
    font-size: 20px;
}
.resumen-asistencia-virtual {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 8px 0;
}
.resumen-asistencia-virtual article {
    min-height: 58px;
    display: grid;
    align-content: center;
    gap: 2px;
    padding: 10px 12px;
    border: 1px solid #d6e4dc;
    border-radius: 8px;
    background: #fbfffc;
}
.resumen-asistencia-virtual small {
    color: #607080;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}
.resumen-asistencia-virtual strong {
    color: var(--tinta);
    font-size: 24px;
}
.resumen-asistencia-virtual .ok { border-left: 5px solid #16a34a; }
.resumen-asistencia-virtual .warn { border-left: 5px solid #f59e0b; }
.resumen-asistencia-virtual .bad { border-left: 5px solid #dc2626; }
.acciones-asistencia-rapida {
    margin: 8px 0;
    padding: 8px;
    border: 1px solid #d6e4dc;
    border-radius: 8px;
    background: #fbfffc;
}
.tabla-asistencia-virtual {
    width: 100%;
    min-width: 900px;
    table-layout: fixed;
}
.tabla-asistencia-virtual th,
.tabla-asistencia-virtual td {
    padding: 5px 6px;
}
.tabla-asistencia-virtual td[data-columna="n"] {
    width: 52px;
    text-align: center;
}
.tabla-asistencia-virtual td[data-columna="participante"] {
    width: 330px;
    font-weight: 800;
}
.tabla-asistencia-virtual td[data-columna="rol"],
.tabla-asistencia-virtual td[data-columna="celular"] {
    width: 150px;
    text-align: center;
}
.tabla-asistencia-virtual td[data-columna="estado"] {
    width: 150px;
}
.tabla-asistencia-virtual td[data-columna="hora"] {
    width: 116px;
}
.asistencia-estado,
.asistencia-hora,
.asistencia-observacion {
    width: 100%;
    min-width: 0;
    border: 1px solid #cfdde5;
    border-radius: 7px;
    padding: 7px 8px;
    background: #fff;
    color: var(--tinta);
    font-weight: 800;
}
.asistencia-estado.presente { border-color: #16a34a; background: #e8f8ee; color: #137a3a; }
.asistencia-estado.tarde { border-color: #f59e0b; background: #fff4dc; color: #9a5a00; }
.asistencia-estado.falto { border-color: #dc2626; background: #fee8e8; color: #b91c1c; }
.asistencia-estado.justificado { border-color: #2563eb; background: #eaf2ff; color: #1d4ed8; }
.tabla-asistencia-gerencial {
    width: 100%;
    min-width: 1180px;
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 92%;
}
.tabla-asistencia-gerencial th,
.tabla-asistencia-gerencial td {
    max-width: 220px;
    padding: 3px 5px;
    border: 1px solid #bfc7cf;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    word-break: normal;
}
.tabla-asistencia-gerencial th {
    background: #111827;
    color: #fff;
    text-transform: uppercase;
    font-size: 9.5px;
}
.tabla-asistencia-gerencial th:first-child,
.tabla-asistencia-gerencial td:first-child {
    width: 34px;
    text-align: center;
}
.tabla-asistencia-gerencial th[data-columna="firma"],
.tabla-asistencia-gerencial th[data-columna="hora"] {
    width: 98px;
}
.firma-linea,
.hora-linea {
    display: block;
    min-height: 15px;
    border-bottom: 1px solid #111827;
}
.evento-footer-asistencia {
    display: none;
    grid-template-columns: 1.8fr .9fr .9fr;
    gap: 10px;
    margin-top: 10px;
    font-size: 11px;
}
.evento-footer-asistencia div {
    min-height: 30px;
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 5px;
}
.evento-footer-asistencia span {
    border-bottom: 1px solid #111827;
}
@media print {
    @page {
        size: A4 landscape;
        margin: 7mm;
    }
    html,
    body {
        background: #fff !important;
    }
    .barra-lateral,
    .barra-superior,
    .lateral-pie,
    .panel-eventos > header,
    .pestanas-eventos,
    .evento-asistencia > .filtros,
    .controles-tabla,
    .acciones,
    .selector-buscable-panel,
    .notificacion {
        display: none !important;
    }
    .app-shell,
    .contenido-app,
    .vista,
    .panel,
    #vista-eventos,
    #contenido-eventos,
    .evento-asistencia,
    #modulo-asistencia-evento,
    #tabla-asistencia-evento {
        display: block !important;
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        background: #fff !important;
    }
    .asistencia-evento-pagina {
        width: auto !important;
        min-height: auto;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        break-inside: avoid;
    }
    .asistencia-evento-pagina .cabecera-evento-imprimible {
        margin: 0 0 5mm !important;
        height: auto !important;
    }
    .asistencia-evento-pagina .cabecera-evento-imprimible img {
        height: 38mm !important;
    }
    .asistencia-evento-contenido {
        padding: 0 !important;
    }
    .evento-doc-title {
        margin-bottom: 3mm;
    }
    .evento-doc-title h3 {
        font-size: 18px;
    }
    .evento-meta-asistencia {
        margin-bottom: 3mm;
    }
    .tabla-scroll {
        overflow: visible !important;
    }
    .tabla-asistencia-gerencial {
        min-width: 0 !important;
        font-size: 8.8px !important;
    }
    .tabla-asistencia-gerencial th,
    .tabla-asistencia-gerencial td {
        padding: 3.5px 4px !important;
        overflow: visible !important;
        text-overflow: clip !important;
        white-space: normal !important;
        word-break: break-word !important;
    }
    .firma-linea,
    .hora-linea {
        min-height: 18px;
    }
    .evento-footer-asistencia {
        display: grid !important;
        margin-top: 4mm;
        font-size: 9px;
    }
}
@media (max-width: 1100px) {
    .evento-meta-asistencia {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .panel-mensajeria .filtros.filtros-compactos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 760px) {
    .filtros-asistencia-evento {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
    .asistencia-acciones {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}
@media (max-width: 920px) {
    .mensajeria-redimensionador {
        display: none;
    }
    .evento-doc-title,
    .evento-meta-asistencia,
    .evento-footer-asistencia {
        grid-template-columns: 1fr;
    }
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
    margin: 0;
    color: var(--texto);
    background: var(--fondo);
    letter-spacing: 0;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.pagina-login {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
    background:
        linear-gradient(125deg, rgba(0,132,61,.96) 0%, rgba(0,107,49,.88) 38%, rgba(23,59,87,.96) 100%),
        linear-gradient(90deg, rgba(242,183,5,.18), transparent 42%),
        url("../img/fondo-institucional.jpg");
}
.login-contenedor {
    width: min(1100px, 100%);
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    min-height: 640px;
    background: #fff;
    border-radius: 8px;
    border: 1px solid rgba(255,255,255,.32);
    box-shadow: 0 34px 90px rgba(6, 34, 47, .28);
    overflow: hidden;
}
.login-marca {
    padding: 56px;
    color: #fff;
    background:
        linear-gradient(160deg, rgba(0,132,61,.98) 0%, rgba(15,91,69,.96) 48%, rgba(23,59,87,.98) 100%),
        linear-gradient(28deg, transparent 0 62%, rgba(242,183,5,.18) 62% 68%, transparent 68%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
}
.login-marca::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 8px;
    background: linear-gradient(90deg, var(--ambar), var(--verde), #2a7db8);
}
.marca-insignia {
    width: 74px;
    height: 74px;
    border: 2px solid rgba(255,255,255,.85);
    display: grid;
    place-items: center;
    font-weight: 800;
    border-radius: 8px;
    margin-bottom: 22px;
}
.marca-insignia.mini {
    width: 42px;
    height: 42px;
    margin: 0;
    color: #fff;
    background: var(--verde);
    border-color: transparent;
}
.marca-etiqueta, .subtitulo {
    margin: 0;
    color: inherit;
    opacity: .72;
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
}
.login-marca h1 {
    color: #fff;
    font-size: 42px;
    line-height: 1.05;
    margin: 10px 0 18px;
    max-width: 620px;
}
.login-marca p { max-width: 570px; line-height: 1.6; }
.login-metricas { display: flex; gap: 10px; margin-top: 30px; flex-wrap: wrap; }
.login-metricas span {
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 999px;
    padding: 8px 12px;
    color: #fff;
    background: rgba(255,255,255,.12);
}
.login-panel {
    padding: 52px 44px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background:
        linear-gradient(180deg, #ffffff 0%, #fbfdfe 100%),
        linear-gradient(90deg, rgba(0,132,61,.06), transparent 35%);
}
.panel-cabecera { display: flex; gap: 14px; align-items: center; margin-bottom: 28px; }
.panel-cabecera h2 { margin: 2px 0 0; color: var(--tinta); font-size: 28px; }
.panel-icono { color: var(--verde); font-size: 0; }
.panel-icono::before {
    content: "";
    width: 14px;
    height: 14px;
    display: block;
    border-radius: 999px;
    background: var(--verde);
    box-shadow: 0 0 0 8px rgba(0,132,61,.10);
}
label { display: grid; gap: 8px; margin-bottom: 16px; font-weight: 700; color: var(--tinta); }
input, select, textarea {
    width: 100%;
    border: 1px solid var(--linea);
    border-radius: 8px;
    padding: 12px 13px;
    background: #fff;
    color: var(--tinta);
    outline: none;
}
input:focus, select:focus, textarea:focus {
    border-color: var(--verde);
    box-shadow: 0 0 0 4px rgba(0,132,61,.12);
}
.selector-nativo-busqueda {
    display: none !important;
}
.selector-busqueda {
    position: relative;
    width: 100%;
}
.selector-busqueda-control {
    width: 100%;
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    padding: 11px 13px;
    background: #fff;
    color: var(--tinta);
    font-weight: 800;
    text-align: left;
}
.selector-busqueda.abierto .selector-busqueda-control,
.selector-busqueda-control:focus {
    border-color: var(--verde);
    box-shadow: 0 0 0 4px rgba(0,132,61,.12);
}
.selector-busqueda-texto {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.selector-busqueda-flecha {
    flex: 0 0 auto;
    color: var(--azul);
    font-size: 18px;
    line-height: 1;
}
.selector-busqueda-menu {
    position: absolute;
    z-index: 60;
    top: calc(100% + 6px);
    left: 0;
    right: auto;
    width: max(100%, 260px);
    min-width: 260px;
    display: none;
    padding: 8px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 20px 50px rgba(23, 59, 87, .16);
}
.selector-busqueda.abierto .selector-busqueda-menu {
    display: block;
}
.selector-busqueda-input {
    min-height: 38px;
    margin: 0 0 8px;
    padding: 9px 11px;
    font-size: 14px;
    background: #f8fbfc;
}
.selector-busqueda-opciones {
    max-height: 240px;
    overflow: auto;
    display: grid;
    gap: 2px;
}
.selector-busqueda-opciones button {
    width: 100%;
    border: 0;
    border-radius: 6px;
    padding: 9px 10px;
    background: #fff;
    color: var(--tinta);
    text-align: left;
    font-weight: 700;
}
.selector-busqueda-opciones button:hover,
.selector-busqueda-opciones button.seleccionada {
    background: var(--verde);
    color: #fff;
}
.selector-busqueda-opciones p {
    margin: 0;
    padding: 10px;
    color: var(--muted);
    font-weight: 700;
}
.selector-busqueda.compacto {
    width: 82px;
    flex: 0 0 82px;
}
.selector-busqueda.compacto .selector-busqueda-control {
    min-height: 42px;
    padding: 9px 10px;
}
.selector-busqueda.compacto .selector-busqueda-menu {
    width: 220px;
    min-width: 220px;
}
.boton-principal, .boton-texto {
    border: 0;
    border-radius: 8px;
    padding: 13px 16px;
    font-weight: 800;
}
.boton-principal { color: #fff; background: var(--verde); }
.boton-principal:hover { background: var(--verde-oscuro); }
.boton-texto { margin-top: 8px; color: var(--azul); background: transparent; }
.login-acciones { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.boton-ingresar-login { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.boton-recuperar-login { margin-top: 0; padding: 12px 4px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ayuda-recuperacion { margin: 0; color: var(--azul); font-size: 13px; line-height: 1.45; }
.boton-icono-login {
    width: 52px;
    height: 48px;
    display: grid;
    place-items: center;
    padding: 0;
    font-size: 22px;
}
.ayuda-login {
    color: var(--muted);
    line-height: 1.5;
    font-size: 14px;
    background: #f3f8fb;
    border-left: 4px solid var(--verde);
    border-radius: 8px;
    padding: 11px 12px;
}
.mensaje { min-height: 24px; color: var(--riesgo); font-weight: 700; }

.pagina-app {
    background:
        linear-gradient(90deg, #e4f2ed 0 248px, #f6faf8 248px 100%),
        linear-gradient(145deg, rgba(0,136,74,.09), transparent 38%),
        linear-gradient(180deg, rgba(18,58,82,.05), transparent 420px);
}
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 248px 1fr; }
.app-shell.menu-oculto { grid-template-columns: 0 1fr; }
.app-shell.menu-oculto .barra-lateral { transform: translateX(-105%); padding-left: 0; padding-right: 0; border-right: 0; overflow: hidden; }
.barra-lateral {
    background:
        linear-gradient(180deg, #fbfffc 0%, #edf8f2 48%, #e4f2ed 100%);
    border-right: 1px solid #bfd9cf;
    padding: 18px 14px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    transition: width .2s ease, transform .2s ease;
    box-shadow: 10px 0 34px rgba(20,36,50,.08);
}
.lateral-marca { display: flex; align-items: center; gap: 12px; padding: 6px 8px 16px; border-bottom: 1px solid #d6e7df; }
.lateral-marca strong { display: block; color: var(--tinta); }
.lateral-marca span { font-size: 12px; color: var(--muted); }
.menu-principal { display: grid; gap: 6px; }
.menu-zona {
    border: 1px solid transparent;
    border-radius: 8px;
    background: linear-gradient(90deg, #dff1e8, #f4fbf7);
    text-align: left;
    color: var(--verde-oscuro);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    padding: 10px 12px;
    position: relative;
}
.menu-zona::after {
    content: "Ã¢Å’â€ž";
    position: absolute;
    right: 12px;
    color: var(--azul);
}
.menu-zona.colapsado::after { content: "Ã¢â‚¬Âº"; }
.menu-grupo {
    display: grid;
    gap: 4px;
    padding: 2px 0 8px 8px;
    border-left: 2px solid #d5eadf;
    margin-left: 10px;
}
.menu-grupo.colapsado { display: none; }
.menu-grupo button, .icono-boton {
    width: 42px;
    height: 42px;
    border: 1px solid var(--linea);
    background: #fff;
    color: var(--azul);
    border-radius: 8px;
    display: inline-grid;
    place-items: center;
    font-weight: 900;
}
.menu-grupo button {
    width: 100%;
    min-height: 38px;
    height: auto;
    display: grid;
    grid-template-columns: 28px 1fr;
    align-items: center;
    justify-items: start;
    gap: 8px;
    border-color: transparent;
    background: transparent;
    padding: 8px 10px;
    text-align: left;
    color: var(--azul);
}
.menu-grupo button span {
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: #eef7f4;
    color: var(--verde-oscuro);
}
.menu-grupo button b {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--tinta);
    font-size: 13px;
}
.menu-grupo button:hover, .menu-grupo button.activo {
    color: #fff;
    background: linear-gradient(135deg, var(--verde), var(--verde-oscuro));
    border-color: var(--verde);
    box-shadow: 0 12px 24px rgba(0, 95, 59, .18);
}
.menu-grupo button:hover span,
.menu-grupo button.activo span { background: rgba(255,255,255,.18); color: #fff; }
.menu-grupo button:hover b,
.menu-grupo button.activo b { color: #fff; }
.icono-boton:hover {
    color: #fff;
    background: var(--verde);
    border-color: var(--verde);
}
.menu-arbol {
    max-height: min(42vh, 420px);
    overflow: auto;
    padding-right: 4px;
}
.lateral-pie { margin-top: auto; width: 100%; }
.barra-lateral.plegada { width: 82px; }
.barra-lateral.plegada .lateral-marca div:not(.marca-insignia), .barra-lateral.plegada .menu-zona, .barra-lateral.plegada .menu-grupo button b { display: none; }
.barra-lateral.plegada .menu-grupo {
    margin-left: 0;
    padding-left: 0;
    border-left: 0;
}
.barra-lateral.plegada .menu-grupo button {
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 8px;
}
.app-shell:has(.barra-lateral.plegada) { grid-template-columns: 82px 1fr; }

.contenido-app {
    min-width: 0;
    padding: 22px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,0) 180px),
        linear-gradient(135deg, rgba(0,136,74,.055), rgba(18,58,82,.045));
}
.barra-superior {
    height: 74px;
    display: flex;
    align-items: center;
    gap: 16px;
    background:
        linear-gradient(90deg, rgba(255,255,255,.99), rgba(242,251,246,.98));
    border: 1px solid #cfe4da;
    border-radius: 8px;
    padding: 12px 16px;
    position: sticky;
    top: 14px;
    z-index: 20;
    backdrop-filter: blur(16px);
    box-shadow: 0 18px 42px rgba(18,58,82,.09);
}
.barra-superior h1 { margin: 0; color: var(--tinta); font-size: 23px; }
.usuario-chip { position: relative; margin-left: auto; display: flex; align-items: center; gap: 8px; }
.boton-usuario {
    border: 1px solid #cfe0d9;
    border-radius: 8px;
    background: linear-gradient(135deg, #ffffff, #f1fbf6);
    padding: 9px 14px;
    display: grid;
    gap: 1px;
    text-align: right;
    box-shadow: 0 10px 24px rgba(0,132,61,.08);
}
.boton-usuario span {
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--tinta);
    font-weight: 700;
}
.boton-usuario small { color: var(--verde-oscuro); font-weight: 900; }
.menu-usuario {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 80;
    display: none;
    width: 220px;
    padding: 8px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff, #f8fcfa);
    box-shadow: var(--sombra);
}
.menu-usuario.visible { display: grid; gap: 4px; }
.menu-usuario button,
.menu-usuario .retorno-erepert {
    display: block;
    width: 100%;
    border: 0;
    border-radius: 6px;
    background: #fff;
    padding: 10px;
    color: var(--tinta);
    text-align: left;
    font-weight: 800;
    text-decoration: none;
}
.menu-usuario button:hover,
.menu-usuario .retorno-erepert:hover { background: #edf8f1; color: var(--verde-oscuro); }
.menu-sistemas-corporativos{margin:0 13px 12px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(255,255,255,.07);overflow:hidden}
.menu-sistemas-corporativos details[open]{padding-bottom:8px}.menu-sistemas-corporativos summary{min-height:58px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;color:#fff}.menu-sistemas-corporativos summary::-webkit-details-marker{display:none}.menu-sistemas-corporativos summary span{display:grid;gap:2px;min-width:0}.menu-sistemas-corporativos summary small{color:#8bd9ef;font-size:10px;font-weight:900;letter-spacing:.09em}.menu-sistemas-corporativos summary strong{font-size:14px}.menu-sistemas-corporativos summary>b{min-width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.12);font-size:11px}.lista-sistemas-corporativos{display:grid;gap:5px;padding:0 7px;max-height:238px;overflow:auto;overscroll-behavior:contain}.sistema-corporativo{min-height:48px;padding:7px 8px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid transparent;border-radius:12px;color:#fff;text-decoration:none;background:rgba(4,25,49,.2);transition:.18s ease}.sistema-corporativo:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.16);transform:translateX(2px)}.sistema-corporativo.actual{background:linear-gradient(135deg,rgba(28,188,153,.38),rgba(19,126,178,.28));border-color:rgba(105,231,204,.38)}.sistema-corporativo>i{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.12);font-style:normal;font-size:11px;font-weight:950}.sistema-corporativo>span{display:grid;gap:1px;min-width:0}.sistema-corporativo strong,.sistema-corporativo small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sistema-corporativo strong{font-size:12px}.sistema-corporativo small{color:#b9d3df;font-size:9px}.sistema-corporativo>b{font-size:9px;color:#9ce8d6}
.vista { display: none; padding: 22px 0; }
.vista.activa { display: block; }
.panel {
    background:
        linear-gradient(180deg, #ffffff, #fbfefc);
    border: 1px solid #cfe4da;
    border-radius: 8px;
    padding: 18px;
    margin-bottom: 16px;
    box-shadow: 0 18px 46px rgba(18,58,82,.08);
}
.panel > header h2 {
    color: var(--verde-oscuro);
}
.panel > header, .tabla-cabecera {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.panel h2, .panel h3 { margin: 0; color: var(--tinta); }
.acciones { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.grid-estadisticas {
    display: grid;
    grid-template-columns: repeat(5, minmax(140px, 1fr));
    gap: 14px;
}
.tarjeta-kpi {
    background:
        linear-gradient(180deg, #ffffff, var(--menta));
    border: 1px solid #cfe4da;
    border-radius: 8px;
    padding: 16px;
    min-height: 118px;
    box-shadow: 0 12px 28px rgba(23,59,87,.06);
}
.tarjeta-kpi:nth-child(2n) { border-top: 4px solid var(--verde); }
.tarjeta-kpi:nth-child(2n+1) { border-top: 4px solid #2a7db8; }
.tarjeta-kpi:nth-child(5n) { border-top-color: var(--ambar); }
.tarjeta-kpi span { color: var(--muted); font-size: 13px; font-weight: 700; }
.tarjeta-kpi strong { display: block; margin-top: 12px; color: var(--tinta); font-size: 32px; }
.tabla-simple-bloque {
    --escala-tabla: 1;
    display: grid;
    gap: 10px;
}
.controles-tabla {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 10px 12px;
    border: 1px solid #cfe4da;
    border-radius: 8px;
    background: linear-gradient(135deg, #f3fbf6, #fffdf3);
}
.grupo-control-tabla { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-weight: 800; }
.grupo-control-tabla select {
    min-width: 78px;
    height: 42px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    color: var(--tinta);
    font-weight: 900;
    padding: 0 10px;
}
.grupo-zoom-tabla button,
.paginacion button {
    min-width: 38px;
    height: 38px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    color: var(--tinta);
    font-weight: 900;
    cursor: pointer;
}
.grupo-zoom-tabla button:hover,
.paginacion button:hover,
.paginacion button.activo {
    background: var(--verde);
    color: #fff;
    border-color: var(--verde);
}
.tabla-scroll { overflow-y: auto; overflow-x: hidden; border: 1px solid var(--linea); border-radius: 8px; background: #fff; }
.tabla-scroll table {
    width: 100%;
    table-layout: fixed;
    font-size: calc(14px * var(--escala-tabla));
}
.tabla-scroll th,
.tabla-scroll td {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
    padding: calc(11px * var(--escala-tabla)) calc(12px * var(--escala-tabla));
}
.tabla-cursos-oficiales {
    table-layout: fixed !important;
}
.tabla-formato-261 {
    table-layout: fixed !important;
}
.tabla-cursos-oficiales th,
.tabla-cursos-oficiales td,
.tabla-formato-261 th,
.tabla-formato-261 td {
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
    font-size: calc(10px * var(--escala-tabla));
    line-height: 1.12;
}
.tabla-cursos-oficiales th[data-columna="FAC"],
.tabla-cursos-oficiales td[data-columna="FAC"],
.tabla-cursos-oficiales th[data-columna="PROG"],
.tabla-cursos-oficiales td[data-columna="PROG"],
.tabla-cursos-oficiales th[data-columna="CICLO"],
.tabla-cursos-oficiales td[data-columna="CICLO"],
.tabla-cursos-oficiales th[data-columna="HT"],
.tabla-cursos-oficiales td[data-columna="HT"],
.tabla-cursos-oficiales th[data-columna="HP"],
.tabla-cursos-oficiales td[data-columna="HP"],
.tabla-cursos-oficiales th[data-columna="TOTAL"],
.tabla-cursos-oficiales td[data-columna="TOTAL"],
.tabla-cursos-oficiales th[data-columna="CRED"],
.tabla-cursos-oficiales td[data-columna="CRED"] {
    width: calc(58px * var(--escala-tabla));
    text-align: center;
}
.tabla-cursos-oficiales th[data-columna="CODIGO"],
.tabla-cursos-oficiales td[data-columna="CODIGO"] {
    width: calc(82px * var(--escala-tabla));
    text-align: center;
}
.tabla-cursos-oficiales th[data-columna="CURSO"],
.tabla-cursos-oficiales td[data-columna="CURSO"] {
    width: calc(260px * var(--escala-tabla));
}
.tabla-cursos-oficiales th[data-columna="REQ"],
.tabla-cursos-oficiales td[data-columna="REQ"] {
    width: calc(120px * var(--escala-tabla));
}
.tabla-cursos-oficiales th[data-columna="MOD"],
.tabla-cursos-oficiales td[data-columna="MOD"],
.tabla-cursos-oficiales th[data-columna="ESTUDIOS"],
.tabla-cursos-oficiales td[data-columna="ESTUDIOS"],
.tabla-cursos-oficiales th[data-columna="TIPO"],
.tabla-cursos-oficiales td[data-columna="TIPO"],
.tabla-cursos-oficiales th[data-columna="ESTADO"],
.tabla-cursos-oficiales td[data-columna="ESTADO"] {
    width: calc(92px * var(--escala-tabla));
    text-align: center;
}
.tabla-cursos-oficiales th[data-columna="ACCIONES"],
.tabla-cursos-oficiales td[data-columna="ACCIONES"] {
    width: max(calc(150px * var(--escala-tabla)), 112px);
    text-align: center;
}
.tabla-cursos-oficiales td[data-columna="ACCIONES"] .acciones-tabla {
    justify-content: center;
    flex-wrap: nowrap;
}
.tabla-formato-261 th[data-columna="facultad"],
.tabla-formato-261 td[data-columna="facultad"],
.tabla-formato-261 th[data-columna="programa"],
.tabla-formato-261 td[data-columna="programa"],
.tabla-formato-261 th[data-columna="ciclo"],
.tabla-formato-261 td[data-columna="ciclo"],
.tabla-formato-261 th[data-columna="seccion"],
.tabla-formato-261 td[data-columna="seccion"],
.tabla-formato-261 th[data-columna="ht"],
.tabla-formato-261 td[data-columna="ht"],
.tabla-formato-261 th[data-columna="hp"],
.tabla-formato-261 td[data-columna="hp"],
.tabla-formato-261 th[data-columna="gr"],
.tabla-formato-261 td[data-columna="gr"] {
    width: calc(42px * var(--escala-tabla));
    text-align: center;
    white-space: normal;
}
.tabla-formato-261 th[data-columna="asignatura"],
.tabla-formato-261 td[data-columna="asignatura"] {
    width: calc(150px * var(--escala-tabla));
}
.tabla-formato-261 th[data-columna="docente"],
.tabla-formato-261 td[data-columna="docente"] {
    width: calc(120px * var(--escala-tabla));
}
.tabla-formato-261 th[data-columna="semestre"],
.tabla-formato-261 td[data-columna="semestre"],
.tabla-formato-261 th[data-columna="plan"],
.tabla-formato-261 td[data-columna="plan"],
.tabla-formato-261 th[data-columna="codigo"],
.tabla-formato-261 td[data-columna="codigo"],
.tabla-formato-261 th[data-columna="modalidad"],
.tabla-formato-261 td[data-columna="modalidad"],
.tabla-formato-261 th[data-columna="condicion"],
.tabla-formato-261 td[data-columna="condicion"],
.tabla-formato-261 th[data-columna="total_horas"],
.tabla-formato-261 td[data-columna="total_horas"],
.tabla-formato-261 th[data-columna="tipo_clase"],
.tabla-formato-261 td[data-columna="tipo_clase"],
.tabla-formato-261 th[data-columna="horario"],
.tabla-formato-261 td[data-columna="horario"],
.tabla-formato-261 th[data-columna="hora_inicial"],
.tabla-formato-261 td[data-columna="hora_inicial"],
.tabla-formato-261 th[data-columna="hora_fin"],
.tabla-formato-261 td[data-columna="hora_fin"],
.tabla-formato-261 th[data-columna="sede"],
.tabla-formato-261 td[data-columna="sede"],
.tabla-formato-261 th[data-columna="ambiente"],
.tabla-formato-261 td[data-columna="ambiente"],
.tabla-formato-261 th[data-columna="proyeccion"],
.tabla-formato-261 td[data-columna="proyeccion"] {
    width: calc(64px * var(--escala-tabla));
    text-align: center;
}
.tabla-estudiantes-scroll { max-height: calc(100vh - 310px); }
.lista-estudiantes {
    display: grid;
    gap: 8px;
    max-height: calc(100vh - 330px);
    overflow: auto;
    padding-right: 4px;
}
.encabezado-lista {
    display: grid;
    gap: 12px;
    align-items: center;
    position: sticky;
    top: 0;
    z-index: 3;
    border: 1px solid rgba(0,132,61,.18);
    border-radius: 8px;
    background: linear-gradient(180deg, #e9f6ef, #dceee7);
    padding: 8px 12px;
    color: var(--azul);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}
.encabezado-lista-estudiantes {
    grid-template-columns: 74px minmax(190px, 1.2fr) minmax(250px, 1.6fr) minmax(210px, 1.1fr) minmax(150px, .8fr) 144px;
}
.encabezado-lista-actividad {
    grid-template-columns: 44px minmax(220px, 1.3fr) minmax(180px, 1fr) 1fr 96px;
}
.encabezado-lista-resumen {
    grid-template-columns: 44px minmax(210px, 1.2fr) minmax(320px, 1.8fr) minmax(150px, .8fr) 1fr;
}
.boton-orden-tabla {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    min-height: 28px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--azul);
    font: inherit;
    text-align: left;
    text-transform: uppercase;
    cursor: pointer;
    padding: 5px 7px;
}
.boton-orden-tabla.activo,
.boton-orden-tabla:hover {
    background: var(--verde);
    color: #fff;
}
th .boton-orden-tabla {
    justify-content: center;
    min-height: 24px;
    padding: 3px 5px;
    font-size: 11px;
}
.fijo.estudiante .boton-orden-tabla,
th.fijo.estudiante .boton-orden-tabla {
    justify-content: flex-start;
}
.fila-estudiante {
    display: grid;
    grid-template-columns: 74px minmax(190px, 1.2fr) minmax(250px, 1.6fr) minmax(210px, 1.1fr) minmax(150px, .8fr) 144px;
    gap: 12px;
    align-items: center;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    padding: 12px;
}
.fila-estudiante:hover { background: #f8fbfa; }
.celda-numero,
.celda-identidad,
.celda-bloque {
    min-width: 0;
    display: grid;
    gap: 3px;
}
.celda-numero strong {
    color: var(--azul);
    font-size: 18px;
}
.celda-numero span,
.celda-bloque span,
.celda-identidad span {
    color: var(--texto);
    overflow-wrap: anywhere;
}
.celda-identidad strong {
    color: var(--tinta);
    overflow-wrap: anywhere;
}
.celda-bloque small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}
.celda-bloque.compacto { align-content: center; }
.grupo-estudiante-editable {
    width: fit-content;
    max-width: 100%;
    border-radius: 6px;
    cursor: pointer;
    padding: 3px 6px;
    margin-left: -6px;
    transition: background .15s ease, box-shadow .15s ease;
}
.grupo-estudiante-editable:hover {
    background: rgba(0,132,61,.09);
    box-shadow: inset 0 0 0 1px rgba(0,132,61,.22);
}
.selector-grupo-estudiante { width: 100%; min-width: 135px; padding: 7px 30px 7px 9px; }
.selector-grupo-estudiante.guardando { cursor: progress; opacity: .7; }
.acciones-tabla { display: flex; gap: 6px; justify-content: flex-end; }
table { width: 100%; border-collapse: collapse; min-width: 760px; }
th, td { padding: 11px 12px; border-bottom: 1px solid var(--linea); text-align: left; vertical-align: middle; }
th {
    position: sticky;
    top: 0;
    background: linear-gradient(180deg, #dff1e8, #cfe7dc);
    color: var(--azul);
    font-size: 12px;
    text-transform: uppercase;
    z-index: 1;
}
tr:hover td { background: #f8fbfa; }
.nota-input { width: 74px; padding: 8px; text-align: center; }
.nota-ayuda {
    border: 1px solid rgba(0,132,61,.18);
    background: linear-gradient(135deg, rgba(0,132,61,.08), rgba(23,59,87,.06));
    color: var(--tinta);
    border-radius: 8px;
    padding: 12px 14px;
    margin-bottom: 14px;
}
.cabecera-notas {
    padding: 6px 2px 12px;
    border-bottom: 1px solid rgba(223,230,236,.8);
}
.etiqueta-premium {
    display: inline-flex;
    align-items: center;
    height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    color: var(--verde-oscuro);
    background: #e8f7ee;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.estado-autoguardado {
    margin: 4px 0 0;
    color: var(--verde-oscuro);
    font-size: 13px;
    font-weight: 800;
}
.estado-autoguardado.problema { color: var(--riesgo); }
.pestanas-notas {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin: 4px 0 14px;
    padding: 6px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #f7faf9;
}
.pestana-nota {
    border: 0;
    background: transparent;
    color: var(--azul);
    border-radius: 8px;
    padding: 10px 14px;
    font-weight: 800;
    transition: background .16s ease, color .16s ease, box-shadow .16s ease;
}
.pestana-nota.activa,
.pestana-nota:hover {
    background: var(--verde);
    color: #fff;
    box-shadow: 0 10px 24px rgba(0,132,61,.18);
}
.filtros-notas { grid-template-columns: minmax(220px, 1.2fr) minmax(220px, 1fr) minmax(160px, .75fr) minmax(160px, .75fr); }
.filtros-compactos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    align-items: end;
    justify-content: start;
    gap: 8px;
    flex-wrap: wrap;
    padding: 10px;
    border: 1px solid #cfe4da;
    border-radius: 8px;
    background: linear-gradient(135deg, #fbfffc, #edf8f2);
}
.filtros-compactos label {
    margin: 0;
    width: 100%;
    gap: 4px;
}
.filtros-compactos label > span {
    font-size: 10px;
    color: var(--verde-oscuro);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.filtros-compactos .filtro-busqueda {
    order: -10;
    width: min(380px, 100%);
    grid-column: auto;
}
.filtros-compactos .filtro-busqueda > span {
    text-align: left;
    font-size: 13px;
    color: var(--tinta);
}
.filtros-compactos .selector-busqueda {
    width: 100%;
}
.filtros-compactos .selector-busqueda-control {
    width: 100%;
    min-height: 46px;
    justify-content: space-between;
    padding: 8px 10px;
}
.filtros-compactos .selector-busqueda-icono {
    display: grid;
    place-items: center;
    color: var(--verde-oscuro);
    font-size: 18px;
}
.filtros-compactos .selector-busqueda-texto,
.filtros-compactos .selector-busqueda-flecha {
    display: inline-flex;
}
.filtros-compactos .selector-busqueda-menu {
    width: 300px;
    min-width: 300px;
}
.filtros-compactos > .icono-boton {
    width: 46px;
    height: 46px;
    align-self: end;
}
.panel-controles-modulo {
    margin: 10px 0 14px;
    border: 1px solid #bddccc;
    border-radius: 8px;
    background: rgba(255,255,255,.9);
    box-shadow: 0 10px 26px rgba(16, 53, 68, .08);
    overflow: visible;
}
.panel-controles-modulo summary {
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    color: var(--verde-oscuro);
    font-weight: 900;
    list-style: none;
}
.panel-controles-modulo summary::-webkit-details-marker { display: none; }
.panel-controles-modulo summary span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid #cfe4da;
    border-radius: 8px;
    background: #fff;
}
.panel-controles-modulo summary small {
    margin-left: auto;
    color: var(--gris);
    font-size: 12px;
    font-weight: 800;
}
.acciones-controles-modulo {
    padding: 0 12px 10px;
    justify-content: flex-start;
}
.filtros-iconizados {
    grid-template-columns: repeat(auto-fit, minmax(58px, 58px));
    align-items: center;
    padding: 10px 12px 12px;
    border: 0;
    border-top: 1px solid #e0eee7;
    border-radius: 0;
    background: transparent;
}
.filtros-iconizados label {
    position: relative;
}
.filtros-iconizados label::after {
    content: attr(data-etiqueta);
    position: absolute;
    left: 50%;
    top: calc(100% + 6px);
    transform: translateX(-50%) translateY(-4px);
    z-index: 40;
    max-width: 220px;
    padding: 6px 9px;
    border-radius: 8px;
    background: #0b3444;
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s ease, transform .15s ease;
    box-shadow: 0 10px 22px rgba(16,53,68,.18);
}
.filtros-iconizados label:hover::after,
.filtros-iconizados label:focus-within::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.filtros-iconizados label > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}
.filtros-iconizados .selector-busqueda-control {
    width: 52px;
    min-width: 52px;
    min-height: 46px;
    padding: 8px;
    justify-content: center;
}
.filtros-iconizados .selector-busqueda-texto,
.filtros-iconizados .selector-busqueda-flecha {
    display: none;
}
.filtros-iconizados .selector-busqueda-menu {
    width: min(360px, 86vw);
    min-width: min(360px, 86vw);
}
.filtros-iconizados .filtro-accion {
    width: 52px;
}
.filtros-tabla-simple {
    width: 100%;
    border: 1px solid #d6e8df;
    border-radius: 8px;
    background: rgba(255,255,255,.95);
    padding: 6px;
}
.filtros-tabla-simple summary {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--verde-oscuro);
    font-weight: 900;
    list-style: none;
}
.filtros-tabla-simple summary::-webkit-details-marker { display: none; }
.filtros-tabla-simple > div {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
    margin-top: 8px;
}
.filtros-tabla-simple label {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.filtros-tabla-simple label > span {
    color: var(--verde-oscuro);
    font-size: 11px;
    font-weight: 900;
}
.filtros-tabla-simple select {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    border: 1px solid #cfdee4;
    border-radius: 8px;
    padding: 6px 8px;
    background: #fff;
}
.filtros-tabla-simple .filtro-estado-tabla {
    align-self: end;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 6px 8px;
    border: 1px solid #dce9e2;
    border-radius: 8px;
    background: #f7fbf8;
}
#modulo-simulacion-2026-2 > header > .acciones,
#modulo-simulacion-2026-2 > .filtros-compactos:not(.filtros-iconizados) {
    display: none !important;
}
#modulo-simulacion-2026-2 .panel-controles-modulo .acciones,
#modulo-simulacion-2026-2 .panel-controles-modulo .filtros-compactos {
    display: grid;
}
#modulo-simulacion-2026-2 .panel-controles-modulo .acciones {
    display: flex;
}
.panel-notas {
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94)),
        linear-gradient(135deg, rgba(0,132,61,.08), rgba(23,59,87,.05));
}
.resumen-notas-premium {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: 10px;
    margin: 12px 0;
}
.resumen-notas-premium article {
    border: 1px solid var(--linea);
    background: #fff;
    border-radius: 8px;
    padding: 12px 14px;
    box-shadow: 0 12px 30px rgba(23,59,87,.06);
}
.resumen-notas-premium small {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}
.resumen-notas-premium strong {
    display: block;
    color: var(--tinta);
    font-size: 28px;
    line-height: 1.1;
    margin-top: 4px;
}
.datatable-barra {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px 12px;
    margin: 12px 0;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: linear-gradient(135deg, #ffffff, #f3faf6);
}
.datatable-barra > div {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--muted);
    font-weight: 800;
}
.datatable-barra select {
    width: auto;
    min-width: 86px;
    padding: 8px 10px;
}
.datatable-barra .selector-busqueda {
    width: 82px;
    flex: 0 0 82px;
}
.datatable-barra .selector-busqueda-menu {
    color: var(--tinta);
    font-weight: 700;
}
.datatable-barra .selector-busqueda-input {
    width: 100%;
    min-width: 0;
}
.datatable-barra .selector-busqueda-opciones {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3px;
    overflow-x: hidden;
}
.datatable-barra .selector-busqueda-opciones button {
    display: block;
    width: 100%;
    min-width: 0;
}
.numero-tabla {
    display: grid;
    place-items: center;
    min-width: 34px;
    height: 34px;
    border-radius: 8px;
    background: #e8f7ee;
    color: var(--azul);
    font-weight: 900;
}
.datatable-barra strong {
    color: var(--tinta);
    font-size: 13px;
}
.contexto-datatable {
    color: var(--azul);
    font-size: 12px;
    font-weight: 800;
    background: #edf8f2;
    border: 1px solid rgba(0,132,61,.16);
    border-radius: 999px;
    padding: 7px 10px;
}
.contexto-datatable b { color: var(--verde-oscuro); }
.paginacion { margin-left: auto; }
.pagina-boton {
    min-width: 34px;
    height: 34px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    color: var(--azul);
    font-weight: 900;
}
.pagina-boton.activa,
.pagina-boton:hover {
    background: var(--verde);
    border-color: var(--verde);
    color: #fff;
}
.tabla-plm-scroll {
    max-height: calc(100vh - 360px);
    min-height: 420px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}
.tabla-participacion-scroll { min-height: 420px; max-height: calc(100vh - 420px); }
.barra-acciones-notas {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 0;
}
.barra-acciones-notas > span {
    min-width: 0;
    color: var(--texto);
    font-weight: 800;
}
.barra-acciones-notas .acciones {
    flex: 0 0 auto;
    justify-content: flex-end;
}
.fechas-cascada {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    padding: 8px;
    margin: 10px 0;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #f7faf9;
}
.fecha-tab {
    width: 49px;
    min-height: 44px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: #fff;
    color: var(--azul);
    padding: 7px 6px;
    display: grid;
    place-items: center;
    gap: 0;
    text-align: center;
    font-weight: 900;
    line-height: 1;
}
.fecha-tab strong { font-size: 13px; white-space: nowrap; }
.fecha-tab span { color: var(--muted); font-size: 10px; line-height: 1; }
.fecha-tab em { font-style: normal; font-size: 10px; line-height: 1; color: rgba(255,255,255,.82); }
.fecha-tab.activa,
.fecha-tab:hover {
    width: 64px;
    min-height: 56px;
    background: var(--verde);
    color: #fff;
    box-shadow: 0 10px 24px rgba(0,132,61,.18);
}
.fecha-tab.activa span,
.fecha-tab:hover span { color: rgba(255,255,255,.8); }
.tabla-participacion-simple { min-width: 960px; }
.tabla-plm { min-width: 1420px; }
.tabla-pre-ra { min-width: 1240px; }
.tabla-plm th { text-align: center; white-space: nowrap; background: #eaf3ef; }
.tabla-plm td { text-align: center; padding: 10px 8px; }
.tabla-plm .fijo {
    position: sticky;
    left: 0;
    z-index: 3;
    background: #fff;
    text-align: left;
    box-shadow: 1px 0 0 var(--linea);
}
.tabla-plm th.fijo { background: #e9f3ee; z-index: 5; }
.tabla-plm .fijo.codigo { min-width: 112px; width: 112px; }
.tabla-plm .fijo.estudiante { left: 112px; min-width: 260px; width: 260px; }
.tabla-plm tbody tr:hover .fijo { background: #f8fbfa; }
.nota-plm {
    width: 78px;
    padding: 10px 6px;
    text-align: center;
    border-radius: 8px;
    font-weight: 700;
    background: #f9fbfc;
    border-color: #cfdbe5;
}
.nota-plm:focus { background: #fff; }
.nota-plm-ra { border-color: rgba(23,59,87,.34); background: #f8fbff; }
.nota-plm.fuera-rango {
    border-color: var(--riesgo);
    background: #fff3f1;
    box-shadow: 0 0 0 3px rgba(180,35,24,.12);
}
.celda-calculo {
    font-weight: 800;
    color: var(--azul);
    background: #f6faf8;
    white-space: nowrap;
}
.pendiente {
    color: var(--advertencia);
    font-size: 12px;
    font-weight: 800;
}
.estado { display: inline-block; padding: 5px 9px; border-radius: 999px; font-size: 12px; font-weight: 800; background: #e7f5ed; color: var(--verde-oscuro); }
.estado.inactivo, .estado.desaprobado, .estado.en-riesgo { background: #fdecec; color: var(--riesgo); }
.estado.pendiente, .estado.nota-pendiente, .estado.en-progreso { background: #fff5e5; color: var(--advertencia); }
.filtros {
    display: grid;
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}
.dos-columnas { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 12px; }
.tres-columnas { display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr)); gap: 12px; }
.alerta-clave {
    margin-top: 16px;
    background: #fff8e6;
    border: 1px solid #f2d18c;
    color: #6f4300;
    padding: 12px 14px;
    border-radius: 8px;
    font-weight: 800;
}
.oculto { display: none !important; }
.oculto-rol { display: none !important; }
.modal {
    border: 0;
    border-radius: 8px;
    width: min(760px, calc(100% - 24px));
    padding: 0;
    box-shadow: var(--sombra);
}
.modal::backdrop { background: rgba(15,31,45,.48); }
.modal-caja { margin: 0; }
.modal-caja > header {
    cursor: grab;
    user-select: none;
    touch-action: none;
}
.modal-caja.moviendo > header { cursor: grabbing; }
.modal-caja.moviendo { box-shadow: 0 28px 62px rgba(15,31,45,.30); }
.modal header, .modal footer {
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-bottom: 1px solid var(--linea);
}
.modal footer { border-top: 1px solid var(--linea); border-bottom: 0; justify-content: flex-end; }
.modal h2 { margin: 0; color: var(--tinta); font-size: 20px; }
#modal-contenido { padding: 16px; max-height: 70vh; overflow: auto; }
.panel-columnas-tabla {
    position: fixed;
    z-index: 2400;
    top: 0;
    right: -370px;
    display: grid;
    grid-template-rows: auto 1fr auto;
    width: min(350px, calc(100vw - 24px));
    height: 100vh;
    background: #fff;
    border-left: 1px solid rgba(15,107,67,.20);
    box-shadow: -18px 0 48px rgba(13,59,76,.18);
    transition: right .18s ease;
}
.panel-columnas-tabla.visible { right: 0; }
.panel-columnas-tabla header,
.panel-columnas-tabla footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 18px;
    border-bottom: 1px solid var(--linea);
}
.panel-columnas-tabla footer {
    border-top: 1px solid var(--linea);
    border-bottom: 0;
    justify-content: flex-end;
}
.panel-columnas-tabla small {
    color: var(--verde);
    font-weight: 800;
    text-transform: uppercase;
}
.panel-columnas-tabla h3 { margin: 4px 0 0; color: var(--tinta); }
.lista-columnas-tabla {
    overflow: auto;
    display: grid;
    align-content: start;
    gap: 8px;
    padding: 14px 18px;
}
.lista-columnas-tabla label {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #dbeae2;
    border-radius: 8px;
    padding: 11px 12px;
    color: var(--tinta);
    font-weight: 700;
    background: #f7fcf9;
}
.lista-columnas-tabla input { accent-color: var(--verde); width: 18px; height: 18px; }
.formulario-clave-premium {
    display: grid;
    gap: 16px;
}
.clave-hero {
    border: 1px solid rgba(0, 140, 73, .22);
    background:
        linear-gradient(135deg, rgba(0, 140, 73, .12), rgba(15, 91, 99, .08)),
        #f7fffb;
    border-radius: 12px;
    padding: 16px 18px;
    box-shadow: 0 14px 34px rgba(14, 67, 55, .08);
}
.clave-hero strong {
    display: block;
    color: #006d3d;
    font-size: 20px;
    margin-bottom: 6px;
}
.clave-hero p {
    margin: 0;
    color: #49606b;
    line-height: 1.45;
}
.campo-clave {
    display: grid;
    gap: 7px;
}
.envoltura-clave {
    display: grid;
    grid-template-columns: 1fr 52px;
    align-items: center;
    border: 1px solid var(--linea);
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
    transition: border-color .16s ease, box-shadow .16s ease;
}
.envoltura-clave:focus-within {
    border-color: var(--verde);
    box-shadow: 0 0 0 4px rgba(0, 140, 73, .13);
}
.envoltura-clave input {
    border: 0;
    border-radius: 0;
    min-height: 52px;
    background: transparent;
}
.envoltura-clave input:focus {
    box-shadow: none;
}
.boton-ver-clave {
    width: 44px;
    height: 44px;
    margin-right: 6px;
    border: 0;
    border-radius: 9px;
    background: #eef8f1;
    color: #006d3d;
    font-weight: 900;
    cursor: pointer;
}
.boton-ver-clave.activo {
    background: #006d3d;
    color: #fff;
}
.clave-reglas {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.clave-reglas span {
    padding: 7px 10px;
    border-radius: 999px;
    background: #f4f8f2;
    border: 1px solid rgba(0, 140, 73, .18);
    color: #446157;
    font-size: 13px;
    font-weight: 800;
}
.notificaciones {
    position: fixed;
    right: 18px;
    bottom: 18px;
    display: grid;
    gap: 10px;
    z-index: 100;
}
.toast {
    background: var(--tinta);
    color: #fff;
    padding: 12px 14px;
    border-radius: 8px;
    box-shadow: var(--sombra);
    max-width: 360px;
}
.toast.error { background: var(--riesgo); }
.progreso {
    height: 10px;
    background: #e7edf0;
    border-radius: 999px;
    overflow: hidden;
}
.progreso span { display: block; height: 100%; background: var(--verde); }

@media (max-width: 920px) {
    .login-contenedor { grid-template-columns: 1fr; }
    .login-marca { min-height: 360px; padding: 36px; }
    .login-panel { padding: 34px 24px; }
    .app-shell { grid-template-columns: 1fr; }
    .barra-lateral {
        position: fixed;
        inset: 0 auto 0 0;
        width: 286px;
        z-index: 50;
        transform: translateX(-105%);
    }
    .barra-lateral.visible { transform: translateX(0); }
    .contenido-app { padding: 12px; }
    .barra-superior { top: 8px; height: auto; align-items: flex-start; }
    .usuario-chip span { display: none; }
    .grid-estadisticas, .filtros, .dos-columnas, .tres-columnas { grid-template-columns: 1fr; }
    .fila-estudiante { grid-template-columns: 1fr; }
    .mensajeria-layout,
    .fila-mensajeria,
    .envio-preparado { grid-template-columns: 1fr; }
    .lista-mensajeria { max-height: none; }
    .acciones-tabla { justify-content: flex-start; }
}

@media (max-width: 560px) {
    .login-marca h1 { font-size: 34px; }
    .barra-superior { flex-wrap: wrap; }
    .usuario-chip { width: 100%; justify-content: flex-end; }
    .panel > header, .tabla-cabecera { align-items: flex-start; flex-direction: column; }
}

.hero-panel {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    color: #fff;
    background: linear-gradient(135deg, #00843d, #173b57);
    border-radius: 8px;
    padding: 22px;
    margin-bottom: 16px;
    box-shadow: var(--sombra);
    animation: aparecer .28s ease both;
}
.hero-panel h2 { margin: 4px 0 8px; color: #fff; font-size: 28px; }
.hero-panel p { margin: 0; opacity: .9; }
.tarjeta-indicador {
    background: #fff;
    border: 1px solid var(--linea);
    border-radius: 8px;
    padding: 16px;
    min-height: 118px;
    box-shadow: 0 10px 28px rgba(23, 59, 87, .08);
    cursor: pointer;
    outline: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    animation: aparecer .25s ease both;
}
.tarjeta-indicador:hover,
.tarjeta-indicador:focus-visible { transform: translateY(-2px); border-color: rgba(0,132,61,.42); box-shadow: 0 16px 34px rgba(23, 59, 87, .12); }
.tarjeta-indicador span { color: var(--verde); font-size: 22px; font-weight: 900; }
.tarjeta-indicador small { display: block; color: var(--muted); font-size: 13px; font-weight: 800; margin-top: 10px; text-transform: uppercase; }
.tarjeta-indicador strong { display: block; margin-top: 8px; color: var(--tinta); font-size: 34px; }
.tarjeta-indicador em { display: block; margin-top: 6px; color: var(--verde); font-size: 12px; font-style: normal; font-weight: 800; opacity: 0; transform: translateY(4px); transition: opacity .18s ease, transform .18s ease; }
.tarjeta-indicador:hover em,
.tarjeta-indicador:focus-visible em { opacity: 1; transform: translateY(0); }
.nota-actividad {
    width: 74px;
    padding: 8px;
    text-align: center;
    font-weight: 800;
}
.nota-actividad:focus { background: #f0fff6; }
.bloque-actividades-nota { margin-top: 14px; }
.cabecera-actividad-nota { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.cabecera-actividad-nota h3 { margin: 0 0 4px; color: var(--tinta); font-size: 20px; }
.cabecera-actividad-nota p { margin: 0; color: var(--muted); }
.cinta-actividades-config { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-bottom: 12px; }
.actividad-config { position: relative; min-height: 94px; border: 1px solid var(--linea); border-radius: 8px; background: #fff; padding: 12px 78px 12px 12px; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.actividad-config:hover,
.actividad-config:focus-visible,
.actividad-config.activa { border-color: rgba(0,132,61,.45); box-shadow: 0 14px 26px rgba(23, 59, 87, .10); transform: translateY(-1px); outline: none; }
.actividad-config.activa { background: linear-gradient(180deg, #f2fff8, #fff); }
.actividad-config strong,
.actividad-config span,
.actividad-config small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.actividad-config strong { color: var(--azul); font-size: 15px; }
.actividad-config span { margin-top: 4px; color: var(--tinta); font-weight: 800; }
.actividad-config small { margin-top: 6px; color: var(--muted); font-weight: 700; }
.acciones-mini { position: absolute; top: 10px; right: 10px; display: flex; gap: 6px; }
.acciones-mini button { width: 30px; height: 30px; border: 1px solid var(--linea); border-radius: 8px; background: #fff; color: var(--azul); cursor: pointer; font-weight: 900; }
.acciones-mini button:hover { border-color: rgba(0,132,61,.45); color: var(--verde); }
.tabla-actividad-compacta input,
.nota-actividad-plm { width: 84px; padding: 10px; border: 1px solid #bfd0df; border-radius: 8px; text-align: center; font-weight: 900; }
.lista-actividad-notas { display: grid; gap: 8px; }
.fila-actividad-nota { display: grid; grid-template-columns: 44px minmax(220px, 1.3fr) minmax(180px, 1fr) 96px; gap: 12px; align-items: center; border: 1px solid var(--linea); border-radius: 8px; background: #fff; padding: 10px; }
.fila-actividad-nota strong,
.fila-actividad-nota span,
.fila-actividad-nota small { display: block; }
.fila-actividad-nota strong { color: var(--tinta); }
.fila-actividad-nota small { color: var(--muted); font-weight: 800; margin-top: 4px; }
.etiqueta-mini { color: var(--azul); font-size: 12px; font-weight: 900; text-transform: uppercase; }
@media (max-width: 760px) {
    .encabezado-lista,
    .encabezado-lista-estudiantes,
    .encabezado-lista-actividad,
    .encabezado-lista-resumen {
        grid-template-columns: 1fr;
        position: static;
    }
    .fila-actividad-nota { grid-template-columns: 1fr; }
}
.estado-vacio { border: 1px dashed var(--linea); border-radius: 8px; padding: 22px; background: #fbfdfe; color: var(--muted); }
.lista-resumen-notas { display: grid; gap: 10px; }
.flujo-calculo-notas {
    display: grid;
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 10px;
    margin: 10px 0 14px;
}
.flujo-calculo-notas article {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 8px 10px;
    align-items: center;
    border: 1px solid rgba(0,132,61,.20);
    border-radius: 12px;
    background: linear-gradient(135deg,#f3fff8,#ffffff);
    padding: 11px;
}
.flujo-calculo-notas span {
    grid-row: 1 / 3;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--verde);
    color: #fff;
    font-weight: 900;
}
.flujo-calculo-notas strong { color: var(--azul); font-size: 14px; }
.flujo-calculo-notas small { color: var(--muted); font-weight: 800; line-height: 1.25; }
.tarjeta-resumen-nota {
    display: grid;
    grid-template-columns: 44px minmax(210px, 1.2fr) minmax(320px, 1.8fr) minmax(150px, .8fr);
    gap: 14px;
    align-items: center;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    padding: 12px;
    box-shadow: 0 8px 22px rgba(23, 59, 87, .06);
}
.identidad-resumen strong,
.identidad-resumen span,
.identidad-resumen small { display: block; }
.identidad-resumen strong { color: var(--tinta); font-size: 16px; }
.identidad-resumen span { color: var(--tinta); margin-top: 2px; }
.identidad-resumen small { color: var(--muted); margin-top: 6px; font-weight: 800; }
.ra-resumen { display: grid; grid-template-columns: repeat(5, minmax(68px, 1fr)); gap: 8px; }
.chip-ra,
.ra5-resumen { border: 1px solid var(--linea); border-radius: 8px; background: #f8fbfc; padding: 8px; min-width: 0; }
.chip-ra span,
.ra5-resumen span,
.promedio-resumen span,
.detalle-notas-registradas small { display: block; color: var(--muted); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.chip-ra strong { display: block; margin-top: 5px; color: var(--azul); font-size: 15px; }
.chip-ra-calculo small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; font-weight: 900; line-height: 1.15; }
.chip-ra-calculo .bono-visible { color: var(--verde); background: #eaf8f1; border-radius: 999px; padding: 3px 5px; margin-left: -2px; margin-right: -2px; }
.ra5-resumen input { width: 100%; min-width: 0; padding: 7px; border-radius: 7px; text-align: center; font-weight: 900; }
.promedio-resumen { display: grid; grid-template-columns: 1fr 1fr; gap: 5px 8px; align-items: center; }
.promedio-resumen strong { color: var(--tinta); font-size: 18px; }
.estado-puntaje-final { grid-column: 1 / -1; justify-self: start; }
.detalle-calculo-ra { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding-top: 8px; border-top: 1px solid var(--linea); }
.detalle-calculo-ra span { border: 1px solid var(--linea); border-radius: 8px; padding: 7px 10px; background: #f8fbfc; color: var(--muted); font-size: 12px; font-weight: 800; }
.detalle-calculo-ra b { color: var(--azul); margin-right: 5px; }
.detalle-notas-registradas { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding-top: 8px; border-top: 1px solid var(--linea); }
.detalle-notas-registradas small { margin-right: 8px; }
.detalle-notas-registradas button { border: 1px solid rgba(0,132,61,.24); border-radius: 8px; background: #f2fff8; color: var(--azul); padding: 7px 9px; cursor: pointer; display: inline-flex; gap: 7px; align-items: center; font-weight: 900; }
.detalle-notas-registradas button:hover { border-color: var(--verde); color: var(--verde); }
.detalle-notas-registradas button span { color: var(--tinta); }
@media (max-width: 1100px) {
    .flujo-calculo-notas { grid-template-columns: 1fr 1fr; }
    .tarjeta-resumen-nota { grid-template-columns: 1fr; }
    .ra-resumen { grid-template-columns: repeat(auto-fit, minmax(86px, 1fr)); }
}
@media (max-width: 680px) {
    .flujo-calculo-notas { grid-template-columns: 1fr; }
}
.panel-reporte-ejecutivo { animation: aparecer .24s ease both; }
.vista-previa-documento {
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #f4f8fa;
    padding: 14px;
}
.vista-previa-documento > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}
.vista-previa-documento h3 { margin: 0 0 4px; color: var(--tinta); }
.vista-previa-documento p { margin: 0; color: var(--muted); }
.iframe-informe {
    width: 100%;
    height: calc(100vh - 360px);
    min-height: 720px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.reporte-operativo { display: grid; gap: 12px; }
.cabecera-reporte-operativo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid rgba(0,136,74,.24);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(0,136,74,.11), rgba(255,255,255,.96) 48%, rgba(18,58,82,.05)),
        linear-gradient(90deg, var(--marfil), transparent);
    padding: 16px 18px;
    box-shadow: 0 14px 34px rgba(18,58,82,.06);
}
.cabecera-reporte-operativo span {
    display: inline-flex;
    color: var(--verde-oscuro);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}
.cabecera-reporte-operativo h3 { margin: 4px 0; color: var(--tinta); font-size: 22px; }
.cabecera-reporte-operativo p { margin: 0; color: var(--muted); }
.cabecera-reporte-operativo > strong {
    color: var(--verde);
    font-size: 24px;
    white-space: nowrap;
}
.reporte-operativo .resumen-notas-premium article {
    background: linear-gradient(180deg, #ffffff, #f5fbf8);
    border-color: #cfe4da;
    border-top: 4px solid var(--verde);
}
.reporte-operativo .resumen-notas-premium article:nth-child(2n) { border-top-color: #2a7db8; }
.reporte-operativo .resumen-notas-premium article:nth-child(3n) { border-top-color: var(--ambar); }
.tabla-reporte-operativo {
    max-height: calc(100vh - 420px);
}
.tabla-reporte-operativo table {
    min-width: 0;
    table-layout: fixed;
}
.tabla-reporte-operativo th,
.tabla-reporte-operativo td {
    font-size: 12px;
    overflow-wrap: anywhere;
}
.tabla-asistencia .columna-n,
.tabla-reporte-operativo col.columna-n {
    width: 54px;
}
.tabla-asistencia th:first-child,
.tabla-asistencia td:first-child,
.tabla-reporte-operativo th:first-child,
.tabla-reporte-operativo td:first-child {
    width: 54px;
    min-width: 54px;
    max-width: 54px;
    text-align: center;
}
.tabla-asistencia th:first-child .boton-orden-tabla,
.tabla-reporte-operativo th:first-child .boton-orden-tabla {
    justify-content: center;
    padding-inline: 4px;
}
.lectura-operativa {
    border: 1px solid rgba(0,136,74,.24);
    border-radius: 8px;
    background: linear-gradient(135deg, #f4fbf7, #fffdf6);
    padding: 16px 18px;
}
.lectura-operativa h4 { margin: 0 0 6px; color: var(--tinta); }
.lectura-operativa p { margin: 0; color: var(--texto); }
.lista-reporte-operativo {
    display: grid;
    gap: 10px;
}
.tarjeta-reporte-operativo {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
    border: 1px solid #cfe4da;
    border-radius: 8px;
    background:
        linear-gradient(180deg, #ffffff, #fbfefc);
    padding: 12px;
    box-shadow: 0 10px 28px rgba(18,58,82,.055);
}
.numero-reporte {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--verde), var(--verde-oscuro));
    color: #fff;
    font-weight: 900;
}
.principal-reporte,
.detalle-reporte {
    min-width: 0;
    display: grid;
    gap: 8px;
}
.principal-reporte {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.detalle-reporte {
    grid-column: 2;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    padding-top: 8px;
    border-top: 1px solid #e3eee8;
}
.principal-reporte section,
.detalle-reporte section {
    min-width: 0;
    border-radius: 8px;
    padding: 8px 9px;
    background: #f6fbf8;
}
.principal-reporte small,
.detalle-reporte small {
    display: block;
    color: var(--verde-oscuro);
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .02em;
}
.principal-reporte strong,
.detalle-reporte span {
    display: block;
    margin-top: 4px;
    color: var(--tinta);
    font-weight: 800;
    overflow-wrap: anywhere;
}
.detalle-reporte span {
    color: var(--texto);
    font-size: 13px;
}
.catalogo-reportes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 8px;
    margin: 12px 0;
}
.catalogo-reportes article {
    border: 1px solid var(--linea);
    border-radius: 8px;
    padding: 10px;
    background: #fbfdfe;
}
.catalogo-reportes strong,
.catalogo-reportes span { display: block; }
.catalogo-reportes strong { color: var(--verde); font-size: 12px; text-transform: uppercase; }
.catalogo-reportes span { color: var(--tinta); font-weight: 800; margin-top: 3px; }
.bloque-selector-informe {
    display: grid;
    gap: 8px;
    margin: 14px 0 12px;
}
.bloque-selector-informe.compacto {
    grid-template-columns: auto 1fr;
    align-items: center;
    margin-top: 8px;
}
.bloque-selector-informe > span {
    color: var(--tinta);
    font-weight: 900;
}
.pestanas-informe {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    border: 1px solid #cfe4da;
    border-radius: 8px;
    padding: 8px;
    background: linear-gradient(135deg, #f5fbf8, #fffdf6);
}
.pestanas-informe button {
    border: 1px solid #e1eee7;
    border-radius: 8px;
    background: #fff;
    color: var(--azul);
    padding: 10px 14px;
    font-weight: 900;
    cursor: pointer;
}
.pestanas-informe button.activa,
.pestanas-informe button:hover {
    background: linear-gradient(135deg, var(--verde), var(--verde-oscuro));
    color: #fff;
    box-shadow: 0 12px 24px rgba(0,95,59,.16);
}
.consulta-estudiante { display: grid; gap: 14px; }
.resumen-contacto-estudiante,
.indicadores-estudiante {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px;
}
.resumen-contacto-estudiante article,
.indicadores-estudiante article,
.lista-compacta-estudiante article {
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    padding: 10px 12px;
}
.resumen-contacto-estudiante span,
.indicadores-estudiante span,
.lista-compacta-estudiante span {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}
.resumen-contacto-estudiante strong,
.indicadores-estudiante strong,
.lista-compacta-estudiante b {
    display: block;
    margin-top: 4px;
    color: var(--tinta);
    overflow-wrap: anywhere;
}
.mensaje-docente-estudiante {
    border: 1px solid rgba(0,132,61,.2);
    border-radius: 8px;
    background: #f1fbf5;
    padding: 12px 14px;
}
.mensaje-docente-estudiante strong { color: var(--verde); }
.mensaje-docente-estudiante p { margin: 6px 0 0; }
.bloques-detalle-estudiante {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.bloques-detalle-estudiante section {
    min-width: 0;
    border: 1px solid var(--linea);
    border-radius: 8px;
    padding: 12px;
    background: #fbfdfe;
}
.bloques-detalle-estudiante h4 {
    margin: 0 0 10px;
    color: var(--tinta);
}
.lista-compacta-estudiante {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
}
.lista-compacta-estudiante small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    overflow-wrap: anywhere;
}
.lista-respuestas-ra {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 12px;
    margin-top: 14px;
}
.tarjeta-respuesta-ra {
    border: 1px solid var(--linea);
    border-radius: 10px;
    background: #fff;
    padding: 12px;
    display: grid;
    gap: 10px;
}
.tarjeta-respuesta-ra header {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: flex-start;
}
.tarjeta-respuesta-ra strong { color: var(--tinta); overflow-wrap: anywhere; }
.tarjeta-respuesta-ra span,
.tarjeta-respuesta-ra p {
    color: var(--muted);
    margin: 0;
    font-size: 12px;
}
.tarjeta-respuesta-ra em {
    border-radius: 999px;
    padding: 5px 9px;
    background: #fff7df;
    color: #8a5d00;
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
    white-space: nowrap;
}
.tarjeta-respuesta-ra em.ok {
    background: #e8f8ee;
    color: var(--verde);
}
.tarjeta-respuesta-ra .acciones { justify-content: flex-end; }
.respuestas-ra-estudiante .respuesta-disponible {
    border-color: rgba(0,132,61,.35);
    background: #f5fbf7;
}
.acciones-respuesta-ra {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}
.acciones-respuesta-ra a {
    border: 1px solid rgba(0,132,61,.28);
    border-radius: 999px;
    background: #fff;
    color: var(--verde);
    padding: 6px 10px;
    font-size: 11px;
    font-weight: 900;
    text-decoration: none;
}
.acciones-respuesta-ra a:hover {
    background: var(--verde);
    color: #fff;
}
.pie-sistema {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 18px;
    padding: 16px 14px;
    color: #5f6f7b;
    font-size: 13px;
    background: linear-gradient(90deg, #ffffff, #f2fbf6 55%, #fffdf6);
    border: 1px solid #cfe4da;
    border-left: 6px solid var(--verde);
    border-radius: 8px;
    box-shadow: 0 10px 26px rgba(23,59,87,.05);
}
.pie-sistema strong { color: var(--verde-oscuro); }
.pie-sistema a { color: var(--azul); font-weight: 900; text-decoration: none; }
.pie-sistema a:hover { color: var(--verde); }
.informe-ejecutivo { display: grid; gap: 14px; }
.portada-informe {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    border-radius: 8px;
    padding: 22px;
    color: #fff;
    background: linear-gradient(135deg, #00843d, #173b57);
    box-shadow: var(--sombra);
}
.portada-informe span { font-weight: 900; opacity: .9; text-transform: uppercase; }
.portada-informe h3 { margin: 8px 0; color: #fff; font-size: 26px; }
.portada-informe p { margin: 0; opacity: .92; }
.portada-informe > strong { font-size: 40px; color: #fff; white-space: nowrap; }
.kpis-informe,
.indicadores-informe,
.mini-indicadores { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.kpis-informe article,
.indicadores-informe article,
.mini-indicadores article {
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    padding: 12px;
    min-width: 0;
}
.kpis-informe span,
.indicadores-informe span,
.mini-indicadores span { display: block; color: var(--muted); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.kpis-informe strong,
.indicadores-informe strong,
.mini-indicadores strong { display: block; margin-top: 6px; color: var(--tinta); font-size: 24px; }
.indicadores-informe small { display: block; color: var(--muted); font-weight: 800; }
.bloque-informe {
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    padding: 16px;
}
.bloque-informe h4 { margin: 0 0 12px; color: var(--tinta); font-size: 18px; }
.barras-distribucion { display: grid; gap: 8px; }
.barras-distribucion div { display: grid; grid-template-columns: 80px 48px 1fr; align-items: center; gap: 10px; }
.barras-distribucion span,
.barras-distribucion strong { font-weight: 900; color: var(--azul); }
.barras-distribucion em { height: 10px; border-radius: 999px; background: #edf3f6; overflow: hidden; }
.barras-distribucion i { display: block; height: 100%; background: var(--verde); border-radius: inherit; }
.lista-secciones-informe { display: grid; gap: 10px; }
.lista-estudiantes-informe { display: grid; gap: 8px; }
.lista-estudiantes-informe article { border: 1px solid var(--linea); border-radius: 8px; background: #fff; padding: 12px; }
.lista-estudiantes-informe article > strong,
.lista-estudiantes-informe article > span { display: block; }
.lista-estudiantes-informe article > strong { color: var(--tinta); }
.lista-estudiantes-informe article > span { color: var(--muted); margin: 3px 0 10px; font-weight: 800; }
.seccion-informe { border: 1px solid var(--linea); border-radius: 8px; padding: 12px; background: #fbfdfe; }
.seccion-informe header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.seccion-informe header strong,
.seccion-informe header span { display: block; }
.seccion-informe header b { color: var(--verde); font-size: 22px; }
.calificacion-docente-estudiante {
    border: 1px solid rgba(0, 132, 61, .22);
    background:
        radial-gradient(circle at top right, rgba(0, 132, 61, .10), transparent 34%),
        linear-gradient(180deg, #f4fbf7, #ffffff);
    border-radius: 8px;
    padding: 16px;
    display: grid;
    gap: 12px;
    box-shadow: 0 18px 45px rgba(14, 58, 64, .08);
}
.calificacion-docente-estudiante.en-espera { opacity: .92; }
.calificacion-docente-estudiante.resaltar-calificacion {
    outline: 3px solid rgba(242, 183, 5, .55);
    box-shadow: 0 18px 54px rgba(242, 183, 5, .18), 0 18px 45px rgba(14, 58, 64, .08);
}
.aviso-calificacion-docente {
    border: 1px solid rgba(0, 132, 61, .2);
    border-radius: 8px;
    background: linear-gradient(135deg, #f3fbf7, #ffffff);
    padding: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 4px 0 14px;
}
.aviso-calificacion-docente strong { color: var(--verde-oscuro); font-size: 18px; }
.aviso-calificacion-docente p { margin: 4px 0 0; color: var(--muted); }
.insignia-ra {
    background: #e2f3ea;
    color: var(--verde-oscuro);
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 900;
    white-space: nowrap;
}
.modulo-calificacion-docente {
    display: grid;
    gap: 16px;
}
.lista-cursos-calificacion {
    display: grid;
    gap: 14px;
}
.curso-calificacion-docente {
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    padding: 16px;
    display: grid;
    gap: 14px;
}
.curso-calificacion-docente h3 { margin: 0 0 4px; color: var(--tinta); }
.curso-calificacion-docente p { margin: 0; color: var(--muted); }
.grid-ra-calificacion {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px;
}
.tarjeta-ra-calificacion {
    border: 1px solid #d7e7df;
    border-radius: 8px;
    background: linear-gradient(180deg, #fbfffc, #ffffff);
    padding: 12px;
    min-height: 132px;
    display: grid;
    gap: 6px;
    align-content: start;
    position: relative;
}
.tarjeta-ra-calificacion span {
    color: var(--verde-oscuro);
    font-size: 13px;
    font-weight: 900;
}
.tarjeta-ra-calificacion strong {
    color: var(--tinta);
    font-size: 24px;
    line-height: 1.1;
}
.tarjeta-ra-calificacion small {
    color: var(--muted);
    font-weight: 800;
}
.tarjeta-ra-calificacion .icono-boton {
    position: absolute;
    right: 10px;
    bottom: 10px;
}
.tarjeta-ra-calificacion.habilitada {
    border-color: rgba(0, 132, 61, .35);
    box-shadow: 0 14px 34px rgba(0, 132, 61, .10);
}
.tarjeta-ra-calificacion.habilitada .boton-calificar-ra {
    background: var(--verde);
    color: #fff;
    border-color: var(--verde);
}
.tarjeta-ra-calificacion.respondida {
    background: linear-gradient(180deg, #effaf3, #ffffff);
}
.tarjeta-ra-calificacion.respondida .icono-boton {
    background: #e2f3ea;
    color: var(--verde-oscuro);
}
.tarjeta-ra-calificacion.bloqueada {
    opacity: .78;
}
.texto-ayuda-modal {
    margin: 8px 0 12px;
    color: var(--muted);
    font-weight: 700;
}
.calificacion-docente-estudiante > header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}
.calificacion-docente-estudiante h4 { margin: 0 0 4px; color: var(--verde-oscuro); }
.calificacion-docente-estudiante p { margin: 0; color: var(--muted); }
.calificacion-docente-estudiante header span {
    background: #e2f3ea;
    color: var(--verde-oscuro);
    border-radius: 999px;
    padding: 7px 10px;
    font-weight: 900;
    white-space: nowrap;
}
.formulario-calificacion-docente {
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
    display: grid;
    gap: 14px;
}
.cabecera-formulario-docente {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: var(--tinta);
    align-items: center;
}
.cabecera-formulario-docente strong { color: var(--verde-oscuro); font-size: 18px; }
.cabecera-formulario-docente span { color: var(--muted); font-weight: 800; }
.criterios-docente {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 10px;
}
.indicador-estrellas-docente {
    border: 1px solid #d7e7df;
    border-radius: 8px;
    background: #fbfffc;
    padding: 12px;
    display: grid;
    gap: 10px;
}
.indicador-estrellas-docente legend {
    padding: 0;
    color: var(--tinta);
}
.indicador-estrellas-docente legend strong,
.indicador-estrellas-docente legend small { display: block; }
.indicador-estrellas-docente legend small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: none;
}
.estrellas-docente {
    display: inline-flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 3px;
}
.estrellas-docente input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.estrellas-docente label {
    cursor: pointer;
    font-size: 30px;
    line-height: 1;
    color: #cbd8d0;
    transition: transform .16s ease, color .16s ease, text-shadow .16s ease;
}
.estrellas-docente label:hover,
.estrellas-docente label:hover ~ label,
.estrellas-docente input:checked ~ label {
    color: #f2b705;
    text-shadow: 0 4px 12px rgba(242, 183, 5, .24);
}
.estrellas-docente label:hover { transform: translateY(-2px) scale(1.08); }
.comentario-docente { display: grid; gap: 5px; }
.comentario-docente span { color: var(--muted); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.comentario-docente textarea {
    border: 1px solid var(--linea);
    border-radius: 8px;
    padding: 10px;
    resize: vertical;
    font: inherit;
}
@media print {
    body { background: #fff; }
    .barra-lateral,
    .cabecera-superior,
    .filtros-reporte,
    .panel-reporte-ejecutivo > header .acciones,
    .notificacion { display: none !important; }
    .contenido-principal { margin: 0; padding: 0; }
    .panel { box-shadow: none; border: 0; }
    .informe-ejecutivo { color: #122033; }
    .portada-informe { background: #00843d !important; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}
.panel-notas { animation: aparecer .24s ease both; }
.tabla-notas th { min-width: 112px; text-align: center; }
.tabla-notas th:first-child { min-width: 220px; text-align: left; }
.tabla-notas th small { display: block; color: var(--muted); font-size: 10px; margin-top: 4px; }
.tabla-notas td:not(:first-child) { text-align: center; }
.cinta-actividades { display: flex; gap: 8px; overflow-x: auto; padding: 6px 0 12px; }
.cinta-actividades span { flex: 0 0 auto; border: 1px solid var(--linea); border-radius: 999px; padding: 7px 10px; background: #fff; color: var(--azul); font-size: 12px; font-weight: 800; }
.vista.activa { animation: aparecer .22s ease both; }
.panel-estudiantes header p { margin: 6px 0 0; color: var(--muted); }
.filtros-estudiantes:not(.filtros-compactos) { grid-template-columns: 1.1fr 1.6fr repeat(4, minmax(130px, 1fr)); }
.filtros.filtros-compactos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    align-items: flex-end;
    justify-content: flex-start;
    gap: 6px;
}
.filtros.filtros-compactos .filtro-busqueda {
    min-width: 220px;
    margin-right: 8px;
}
.filtros.filtros-compactos label:not(.filtro-busqueda) {
    width: 100%;
}
.filtros.filtros-compactos .selector-busqueda {
    width: 100%;
}
.evento-asistencia .filtros.filtros-compactos.filtros-asistencia-evento {
    grid-template-columns: minmax(240px, .85fr) minmax(240px, 1fr) minmax(350px, auto);
    align-items: center;
    gap: 8px;
}
.evento-asistencia .filtros.filtros-compactos.filtros-asistencia-evento label:not(.filtro-busqueda) {
    width: auto;
}
.resumen-listado { color: var(--azul); font-weight: 800; margin: 0 0 10px; }

.semaforo-whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    margin-top: 6px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #eef3f7;
    color: var(--azul);
    font-size: 11px;
    font-weight: 900;
}
.semaforo-whatsapp i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--muted);
}
.semaforo-whatsapp.apto { background: #e4f7ed; color: var(--verde-oscuro); }
.semaforo-whatsapp.apto i { background: var(--verde); }
.semaforo-whatsapp.revisar { background: #fff4df; color: var(--advertencia); }
.semaforo-whatsapp.revisar i { background: var(--ambar); }
.semaforo-whatsapp.sin_telefono { background: #fdecec; color: var(--riesgo); }
.semaforo-whatsapp.sin_telefono i { background: var(--riesgo); }
.semaforo-whatsapp.no_whatsapp { background: #fdecec; color: var(--riesgo); }
.semaforo-whatsapp.no_whatsapp i { background: var(--riesgo); }
.mensajeria-whatsapp-estado {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-width: 0;
}
.boton-whatsapp-estado {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    color: var(--azul);
    font-weight: 900;
    flex: 0 0 auto;
}
.boton-whatsapp-estado.bloquear {
    border-color: #f3c6c0;
    color: var(--riesgo);
}
.boton-whatsapp-estado.revalidar {
    border-color: #cfe9dc;
    color: var(--verde);
}
.boton-whatsapp-estado:hover {
    background: var(--verde);
    border-color: var(--verde);
    color: #fff;
}

.mensajeria-layout {
    display: grid;
    grid-template-columns: minmax(360px, var(--mensajeria-lista, 48fr)) 12px minmax(420px, var(--mensajeria-editor, 52fr));
    gap: 10px;
    align-items: start;
}
.mensajeria-redimensionador {
    align-self: stretch;
    width: 12px;
    min-height: 520px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(180deg, transparent, rgba(0, 136, 74, .24), transparent);
    cursor: col-resize;
}
.mensajeria-redimensionador:hover,
.mensajeria-redimensionador:focus {
    background: rgba(0, 136, 74, .35);
    outline: none;
}
.mensajeria-panel,
.mensajeria-editor {
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fbfdfe;
    padding: 14px;
}
.panel-mensajeria .filtros.filtros-compactos {
    grid-template-columns: minmax(170px, 1.2fr) repeat(4, minmax(140px, 1fr));
    align-items: end;
    overflow: visible;
}
.panel-mensajeria .filtros.filtros-compactos > label,
.panel-mensajeria .filtros.filtros-compactos > .selector-busqueda {
    min-width: 0;
}
.panel-mensajeria .selector-busqueda.abierto {
    z-index: 90;
}
.panel-mensajeria .selector-busqueda-menu {
    width: min(360px, calc(100vw - 48px));
    max-width: 360px;
}
.mensajeria-resumen,
.mensajeria-acciones,
.mensajeria-envios header {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 12px 0;
}
.mensajeria-resumen strong,
.mensajeria-resumen span,
.mensajeria-acciones span,
.mensajeria-envios header span {
    color: var(--azul);
    font-weight: 900;
}
.columna-oculta { display: none !important; }
.filtro-whatsapp-mensajeria {
    align-self: end;
    min-height: 54px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
}
.filtro-whatsapp-mensajeria input {
    width: 18px;
    height: 18px;
    accent-color: var(--verde);
}
.boton-mini {
    border: 1px solid var(--linea);
    border-radius: 8px;
    padding: 7px 10px;
    background: #fff;
    color: var(--azul);
    font-size: 12px;
    font-weight: 900;
}
.boton-mini.peligro {
    border-color: #f3c6c0;
    color: var(--riesgo);
}
.mensajeria-seleccion-persistente {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}
.mensajeria-seleccion-persistente strong {
    color: var(--azul);
    font-size: 12px;
}
.mensajeria-seleccion-persistente div {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.mensajeria-seleccion-persistente button {
    border: 1px solid var(--linea);
    border-radius: 999px;
    padding: 5px 9px;
    background: #fff;
    color: var(--azul);
    font-size: 11px;
    font-weight: 900;
}
.lista-mensajeria {
    display: grid;
    gap: 8px;
    max-height: 620px;
    overflow: auto;
    padding-right: 4px;
}
.fila-mensajeria {
    display: grid;
    grid-template-columns: auto minmax(0, 1.15fr) minmax(150px, .85fr) auto;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 10px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
}
.fila-mensajeria.seleccionado {
    border-color: rgba(0, 136, 74, .45);
    box-shadow: 0 0 0 3px rgba(0, 136, 74, .08);
}
.mensajeria-identidad,
.mensajeria-contacto {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.mensajeria-identidad strong,
.mensajeria-contacto {
    color: var(--tinta);
    font-weight: 900;
}
.mensajeria-identidad small,
.mensajeria-contacto small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.canales-mensajeria,
.barra-escritura-mensajeria {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
.canales-mensajeria button,
.barra-escritura-mensajeria button,
.envio-preparado button {
    border: 1px solid var(--linea);
    border-radius: 8px;
    padding: 9px 11px;
    background: #fff;
    color: var(--azul);
    font-weight: 900;
}
.canales-mensajeria button.activo,
.barra-escritura-mensajeria button:hover,
.envio-preparado button:not(:disabled):hover {
    border-color: var(--verde);
    background: var(--verde);
    color: #fff;
}
.mensaje-premium {
    min-height: 280px;
    resize: both;
    max-width: 100%;
    line-height: 1.55;
    background:
        linear-gradient(180deg, #ffffff 0%, #fbfffd 100%);
}
.mensajeria-envios {
    display: grid;
    gap: 8px;
    margin-top: 16px;
}
.mensajeria-envios header,
.mensajeria-historial header {
    justify-content: space-between;
    padding-top: 12px;
    border-top: 1px solid var(--linea);
}
.mensajeria-historial {
    margin-top: 18px;
}
.mensajeria-historial header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}
.mensajeria-historial header strong,
.mensajeria-historial header span {
    color: var(--azul);
    font-weight: 900;
}
.envio-preparado {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
}
.envio-preparado div {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.envio-preparado span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.panel-reporte-mensajeria .tabla-scroll {
    max-height: 68vh;
}
.tabla-mensajeria-reporte td[data-columna="mensaje"] {
    min-width: 260px;
    max-width: 420px;
    white-space: normal;
}
.mensaje-recortado {
    display: inline;
    line-height: 1.45;
}
.boton-ver-mensaje {
    margin-left: 8px;
    width: 30px;
    height: 30px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #fff;
    color: var(--azul);
    font-weight: 900;
    vertical-align: middle;
}
.boton-ver-mensaje:hover {
    border-color: var(--verde);
    background: var(--verde);
    color: #fff;
}
.mensaje-completo-whatsapp {
    min-width: min(720px, 78vw);
    max-height: 66vh;
    overflow: auto;
    padding: 18px;
    border: 1px solid #cfe9dc;
    border-radius: 8px;
    background: #dcf8c6;
    color: #101820;
    font-size: 16px;
    line-height: 1.55;
    white-space: normal;
}
.mensaje-completo-whatsapp strong { font-weight: 900; }
.mensaje-completo-whatsapp code {
    display: inline-block;
    padding: 2px 5px;
    border-radius: 5px;
    background: rgba(0, 0, 0, .08);
    font-family: Consolas, monospace;
}
.mensaje-completo-whatsapp blockquote {
    margin: 8px 0;
    padding: 6px 10px;
    border-left: 4px solid rgba(0, 0, 0, .24);
    background: rgba(255, 255, 255, .38);
}
.solo-lectura {
    background: #f2f7f5;
    color: #62706a;
    border-style: dashed;
    cursor: not-allowed;
}
.campo-check {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    border: 1px solid rgba(15,107,67,.16);
    border-radius: 8px;
    padding: 12px;
    background: linear-gradient(135deg, #ffffff, var(--eco-menta));
    margin-bottom: 16px;
}
.campo-check input[type="checkbox"] {
    width: 22px;
    height: 22px;
    accent-color: var(--eco-hoja);
}
.campo-check span {
    color: var(--eco-bosque);
    font-weight: 900;
}
@keyframes aparecer {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* RediseÃƒÂ±o visual premium EVACUR: contraste ecologico por segmentos. */
:root {
    --eco-bosque: #063b2d;
    --eco-musgo: #0f6b43;
    --eco-hoja: #0a9454;
    --eco-menta: #e8f7ef;
    --eco-salvia: #cfe5d7;
    --eco-petroleo: #0d3b4c;
    --eco-ambar: #dcae22;
    --eco-arcilla: #c76f42;
    --eco-marfil: #fffaf0;
    --eco-niebla: #f4faf7;
}

body.pagina-app {
    background:
        linear-gradient(90deg, #dcefe7 0 248px, transparent 248px),
        linear-gradient(180deg, #eef8f3 0, #f8fbf9 280px, #eef6f2 100%);
}

.barra-lateral {
    background:
        linear-gradient(180deg, #ffffff 0 88px, rgba(255,255,255,.78) 88px),
        linear-gradient(180deg, #e5f3ec 0%, #d5ebe0 54%, #c9e2d6 100%);
    border-right: 1px solid rgba(6,59,45,.18);
    box-shadow: 14px 0 40px rgba(6,59,45,.13);
}

.lateral-marca {
    margin: -2px -2px 2px;
    padding: 10px 8px 18px;
    border-bottom: 1px solid rgba(6,59,45,.16);
}

.lateral-marca .marca-insignia.mini {
    background: linear-gradient(145deg, var(--eco-hoja), var(--eco-bosque));
    box-shadow: 0 14px 30px rgba(6,59,45,.22);
}

.lateral-marca strong {
    color: var(--eco-bosque);
    font-size: 16px;
}

.menu-zona {
    background: linear-gradient(90deg, rgba(255,250,240,.96), rgba(232,247,239,.94));
    border: 1px solid rgba(15,107,67,.12);
    color: var(--eco-bosque);
    box-shadow: inset 4px 0 0 rgba(15,107,67,.32);
}

.menu-grupo {
    border-left: 2px solid rgba(15,107,67,.24);
}

.menu-grupo button {
    border: 1px solid transparent;
}

.menu-grupo button span {
    background: rgba(255,255,255,.72);
    color: var(--eco-petroleo);
    box-shadow: inset 0 0 0 1px rgba(15,107,67,.06);
}

.menu-grupo button:hover,
.menu-grupo button.activo {
    background: linear-gradient(135deg, var(--eco-hoja), var(--eco-bosque));
    border-color: rgba(255,255,255,.22);
    box-shadow: 0 18px 36px rgba(6,59,45,.24);
}

.menu-grupo button.activo span {
    background: rgba(255,250,240,.22);
}

.lateral-pie {
    background: rgba(255,255,255,.78);
    border-color: rgba(6,59,45,.14);
}

.contenido-app {
    background:
        linear-gradient(180deg, rgba(255,250,240,.55), transparent 150px),
        linear-gradient(135deg, rgba(207,229,215,.82), rgba(244,250,247,.78) 44%, rgba(220,174,34,.08) 100%);
}

.barra-superior {
    border: 1px solid rgba(15,107,67,.18);
    background: linear-gradient(90deg, #ffffff 0%, #f7fff9 68%, rgba(255,250,240,.94) 100%);
    box-shadow: 0 20px 54px rgba(13,59,76,.12);
    overflow: visible;
}

.barra-superior::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 7px;
    background: linear-gradient(180deg, var(--eco-hoja), var(--eco-ambar), var(--eco-petroleo));
    pointer-events: none;
}

.usuario-chip {
    z-index: 90;
}

.barra-superior .subtitulo {
    color: var(--eco-petroleo);
    opacity: .72;
}

.barra-superior h1 {
    color: var(--eco-bosque);
}

.boton-usuario {
    background: linear-gradient(135deg, #ffffff, var(--eco-marfil));
    border-color: rgba(15,107,67,.2);
    box-shadow: 0 16px 36px rgba(6,59,45,.12);
}

.boton-usuario small {
    color: var(--eco-musgo);
}

.panel {
    position: relative;
    border: 1px solid rgba(15,107,67,.18);
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94)),
        linear-gradient(135deg, rgba(232,247,239,.7), rgba(255,250,240,.46));
    box-shadow: 0 26px 70px rgba(13,59,76,.12);
    overflow: hidden;
}

.panel::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, var(--eco-hoja), var(--eco-ambar), var(--eco-petroleo), var(--eco-arcilla));
}

.panel > header {
    padding: 6px 4px 14px;
    border-bottom: 1px solid rgba(15,107,67,.13);
}

.panel > header h2,
.panel h2 {
    color: var(--eco-bosque);
}

.etiqueta-premium {
    background: linear-gradient(90deg, var(--eco-menta), #fff);
    color: var(--eco-bosque);
    border: 1px solid rgba(15,107,67,.14);
}

.cabecera-notas {
    background: linear-gradient(90deg, rgba(232,247,239,.72), rgba(255,250,240,.58));
    margin: -6px -2px 14px;
    padding: 18px 14px;
    border: 1px solid rgba(15,107,67,.12);
    border-radius: 8px;
}

.cabecera-notas .acciones-notas-principales {
    justify-content: flex-end;
    align-content: center;
    max-width: 560px;
}

.boton-exportar-notas {
    border: 1px solid rgba(0,132,61,.22);
    background: #fff;
    color: var(--eco-bosque);
    border-radius: 12px;
    min-height: 40px;
    padding: 0 13px;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .03em;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(13,59,76,.06);
}

.boton-exportar-notas:hover {
    background: var(--eco-verde);
    border-color: var(--eco-verde);
    color: #fff;
}

.filtros-compactos {
    background: linear-gradient(135deg, #f6fff9 0%, var(--eco-menta) 58%, rgba(255,250,240,.72) 100%);
    border-color: rgba(15,107,67,.18);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.78), 0 14px 34px rgba(13,59,76,.06);
}

.filtros-compactos .filtro-busqueda input,
.selector-busqueda-control,
input,
select,
textarea {
    border-color: rgba(13,59,76,.16);
    background: rgba(255,255,255,.96);
}

.selector-busqueda-control:hover,
.icono-boton:hover {
    border-color: var(--eco-hoja);
}

.pestanas-notas {
    background: linear-gradient(90deg, #f7fff9, var(--eco-marfil));
    border-color: rgba(15,107,67,.16);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.85);
}

.pestana-nota {
    border: 1px solid rgba(15,107,67,.10);
    background: rgba(255,255,255,.68);
    color: var(--eco-petroleo);
}

.pestana-nota.activa,
.pestana-nota:hover {
    background: linear-gradient(135deg, var(--eco-hoja), var(--eco-bosque));
    color: #fff;
    box-shadow: 0 18px 34px rgba(6,59,45,.22);
}

.resumen-notas-premium article,
.tarjeta-kpi {
    background: linear-gradient(180deg, #ffffff, #f7fff9);
    border-color: rgba(15,107,67,.15);
    box-shadow: 0 18px 42px rgba(13,59,76,.08);
}

.resumen-notas-premium article:nth-child(1),
.tarjeta-kpi:nth-child(1) { border-top: 4px solid var(--eco-hoja); }
.resumen-notas-premium article:nth-child(2),
.tarjeta-kpi:nth-child(2) { border-top: 4px solid var(--eco-ambar); }
.resumen-notas-premium article:nth-child(3),
.tarjeta-kpi:nth-child(3) { border-top: 4px solid var(--eco-petroleo); }
.resumen-notas-premium article:nth-child(4),
.tarjeta-kpi:nth-child(4) { border-top: 4px solid var(--eco-arcilla); }

.datatable-barra {
    background: linear-gradient(90deg, #ffffff, var(--eco-menta));
    border-color: rgba(15,107,67,.16);
    box-shadow: 0 12px 32px rgba(13,59,76,.06);
}

.fechas-cascada {
    background: linear-gradient(90deg, rgba(232,247,239,.92), rgba(255,250,240,.75));
    border-color: rgba(15,107,67,.14);
}

.fecha-tab {
    background: rgba(255,255,255,.82);
    border-color: rgba(13,59,76,.08);
}

.fecha-tab.activa,
.fecha-tab:hover {
    background: linear-gradient(135deg, var(--eco-hoja), var(--eco-bosque));
}

.tabla-scroll {
    border-color: rgba(15,107,67,.16);
    background: #ffffff;
    box-shadow: 0 20px 50px rgba(13,59,76,.08);
}

table {
    border-collapse: separate;
    border-spacing: 0;
}

th {
    background: linear-gradient(180deg, #d8efe3, #c7e3d5);
    color: var(--eco-petroleo);
    border-bottom: 1px solid rgba(15,107,67,.22);
}

td {
    background: rgba(255,255,255,.92);
}

tbody tr:nth-child(even) td {
    background: #f7fbf8;
}

tr:hover td {
    background: #eef8f2;
}

.boton-orden-tabla.activo,
.boton-orden-tabla:hover {
    background: linear-gradient(135deg, var(--eco-musgo), var(--eco-bosque));
}

.nota-plm {
    background: #fbfff9;
    border: 1px solid rgba(13,59,76,.18);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

.pendiente {
    color: #9d6500;
    background: rgba(220,174,34,.12);
    border-radius: 8px;
    padding: 5px 7px;
    display: inline-flex;
}

.pie-sistema {
    background: linear-gradient(90deg, #ffffff, var(--eco-marfil) 45%, var(--eco-menta));
    border-color: rgba(15,107,67,.18);
    box-shadow: 0 18px 50px rgba(13,59,76,.08);
}

.pie-sistema strong {
    color: var(--eco-bosque);
}

.alerta-cumpleanos {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
    padding: 16px 18px;
    border: 1px solid rgba(217,131,36,.28);
    border-left: 6px solid var(--eco-arcilla);
    border-radius: 10px;
    background: linear-gradient(120deg, #fffaf0, #e8f7ef);
    box-shadow: 0 18px 42px rgba(143,91,31,.10);
}
.alerta-cumpleanos strong {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, var(--eco-arcilla), var(--eco-hoja));
    font-size: 24px;
}
.alerta-cumpleanos span { flex: 1; font-weight: 800; color: var(--eco-petroleo); }

.panel-cumpleanos {
    border-top: 5px solid var(--eco-arcilla);
    background:
        linear-gradient(130deg, rgba(255,250,240,.88), rgba(255,255,255,.92) 35%, rgba(232,247,239,.9)),
        #fff;
}
.filtros-cumpleanos {
    display: flex;
    grid-template-columns: none;
    align-items: end;
    gap: 10px;
    flex-wrap: wrap;
}
.filtros.filtros-compactos.filtros-cumpleanos label:not(.filtro-busqueda) {
    flex: 0 0 220px;
    width: 220px;
}
.filtros-cumpleanos label > span {
    text-align: left;
    padding-left: 2px;
}
.filtros-cumpleanos input[type="date"] {
    width: 100%;
    min-height: 52px;
    padding: 0 16px;
    font-weight: 900;
    color: var(--eco-petroleo);
    letter-spacing: 0;
}
.filtros.filtros-compactos.filtros-cumpleanos .selector-busqueda {
    flex: 0 0 58px;
    width: 58px;
}
.filtros-cumpleanos .selector-busqueda-menu {
    left: 0;
    right: auto;
}
.resumen-cumpleanos {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 14px;
    margin: 18px 0;
}
.resumen-cumpleanos article {
    padding: 18px;
    border: 1px solid rgba(15,107,67,.16);
    border-radius: 10px;
    background: linear-gradient(150deg, #fff, #f3fbf6);
    box-shadow: 0 16px 38px rgba(13,59,76,.07);
}
.resumen-cumpleanos small {
    display: block;
    color: var(--eco-bosque);
    font-weight: 900;
    text-transform: uppercase;
}
.resumen-cumpleanos strong {
    display: block;
    margin: 6px 0;
    font-size: 34px;
    color: var(--eco-petroleo);
}
.resumen-cumpleanos span { color: var(--muted); font-weight: 700; }

.lista-cumpleanos {
    display: grid;
    gap: 12px;
}
.tarjeta-cumpleanos {
    position: relative;
    display: grid;
    grid-template-columns: 86px 1fr auto;
    gap: 16px;
    align-items: center;
    padding: 16px;
    border: 1px solid rgba(15,107,67,.16);
    border-radius: 12px;
    background:
        linear-gradient(90deg, rgba(232,247,239,.9), rgba(255,255,255,.96) 40%, rgba(255,250,240,.9)),
        #fff;
    box-shadow: 0 18px 44px rgba(13,59,76,.08);
}
.tarjeta-cumpleanos.proximo {
    padding-top: 42px;
}
.etiqueta-proximo {
    position: absolute;
    top: 12px;
    left: 118px;
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(217,164,65,.18);
    color: #8a5a00;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}
.proximos-cumpleanos {
    margin-top: 16px;
}
.proximos-cumpleanos > header {
    margin: 0 0 12px;
    padding: 14px 16px;
    border-radius: 10px;
    background: linear-gradient(90deg, rgba(232,247,239,.96), rgba(255,250,240,.88));
    border: 1px solid rgba(15,107,67,.16);
}
.proximos-cumpleanos h3 {
    margin: 0;
    color: var(--eco-petroleo);
}
.proximos-cumpleanos p {
    margin: 3px 0 0;
    color: var(--muted);
    font-weight: 700;
}
.cumpleanos-medalla {
    width: 76px;
    height: 76px;
    border-radius: 22px;
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(145deg, var(--eco-hoja), var(--eco-petroleo));
    box-shadow: 0 16px 32px rgba(0,141,73,.18);
}
.cumpleanos-medalla span { font-size: 24px; line-height: 1; }
.cumpleanos-medalla strong { font-size: 20px; line-height: 1; }
.cumpleanos-datos h3 {
    margin: 0 0 4px;
    color: var(--eco-petroleo);
    font-size: 21px;
}
.cumpleanos-datos p { margin: 0; color: var(--muted); font-weight: 700; }
.chips-cumpleanos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
.chips-cumpleanos span {
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(0,141,73,.10);
    color: var(--eco-bosque);
    font-weight: 900;
    font-size: 13px;
}
.acciones-cumpleanos {
    display: flex;
    gap: 8px;
}
.icono-boton.desactivado {
    opacity: .45;
    cursor: not-allowed;
}
.vacio-elegante {
    padding: 34px;
    border: 1px dashed rgba(15,107,67,.25);
    border-radius: 12px;
    background: rgba(255,255,255,.7);
    text-align: center;
}
.vacio-elegante strong,
.vacio-elegante span { display: block; }
.vacio-elegante strong { color: var(--eco-petroleo); font-size: 20px; }
.vacio-elegante span { color: var(--muted); margin-top: 6px; }

.panel-padron .ayuda-panel {
    max-width: 920px;
}
.filtros-padron {
    align-items: end;
}
.padron-lista {
    display: grid;
    gap: 10px;
    margin: 12px 0;
}
.tarjeta-padron {
    display: grid;
    grid-template-columns: 48px minmax(220px, 1.3fr) minmax(190px, 1fr) minmax(190px, 1fr) minmax(190px, 1fr);
    gap: 12px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid rgba(15,107,67,.14);
    border-radius: 12px;
    background: linear-gradient(90deg, rgba(245,251,247,.98), rgba(255,255,255,.96));
    box-shadow: 0 14px 34px rgba(13,59,76,.06);
}
.tarjeta-padron > strong {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--eco-hoja);
    color: #fff;
}
.tarjeta-padron b,
.tarjeta-padron span,
.tarjeta-padron small {
    display: block;
}
.tarjeta-padron b {
    color: var(--eco-petroleo);
    font-size: 16px;
}
.tarjeta-padron small {
    color: var(--muted);
    font-weight: 900;
    text-transform: uppercase;
    font-size: 11px;
    margin-bottom: 2px;
}
.tarjeta-padron span {
    color: #2f4050;
    font-weight: 700;
    overflow-wrap: anywhere;
}
.orden-padron {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}
.orden-padron button {
    border: 1px solid rgba(15,107,67,.16);
    background: #fff;
    color: var(--eco-petroleo);
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 900;
}
.orden-padron button.activo {
    background: var(--eco-hoja);
    color: #fff;
}
.resultado-busqueda-matricula {
    grid-column: 1 / -1;
    border: 1px solid rgba(15,107,67,.16);
    border-radius: 12px;
    padding: 12px;
    background: rgba(245,251,247,.72);
    color: var(--muted);
    font-weight: 800;
}
.opcion-estudiante-matricula {
    display: block;
    width: 100%;
    text-align: left;
    border: 1px solid rgba(15,107,67,.16);
    border-radius: 10px;
    background: #fff;
    padding: 10px 12px;
    margin: 7px 0;
    color: var(--eco-petroleo);
    cursor: pointer;
}
.opcion-estudiante-matricula b,
.opcion-estudiante-matricula span {
    display: block;
}
.opcion-estudiante-matricula span {
    color: var(--muted);
    margin-top: 3px;
}
.seleccion-matricula {
    color: var(--eco-bosque);
    font-weight: 900;
}
.panel-matriculas .ayuda-panel {
    max-width: 980px;
}
.resumen-seccion-matricula {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 14px 0;
}
.resumen-seccion-matricula > div {
    border: 1px solid rgba(15,107,67,.16);
    border-radius: 12px;
    padding: 12px 14px;
    background: linear-gradient(135deg, rgba(232,247,239,.92), rgba(255,255,255,.98));
}
.resumen-seccion-matricula small,
.resumen-seccion-matricula strong {
    display: block;
}
.resumen-seccion-matricula small {
    color: var(--muted);
    font-weight: 900;
    text-transform: uppercase;
    font-size: 11px;
}
.resumen-seccion-matricula strong {
    color: var(--eco-petroleo);
    margin-top: 4px;
}
.grid-matricula {
    align-items: start;
}
.lista-disponibles-matricula {
    display: grid;
    gap: 8px;
}
.fila-disponible-matricula {
    display: grid;
    grid-template-columns: 28px minmax(210px, 1fr) minmax(180px, .8fr);
    gap: 10px;
    align-items: center;
    border: 1px solid rgba(15,107,67,.14);
    border-radius: 12px;
    padding: 11px 12px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(13,59,76,.05);
}
.fila-disponible-matricula input {
    width: 20px;
    height: 20px;
}
.fila-disponible-matricula b,
.fila-disponible-matricula small,
.fila-disponible-matricula em {
    display: block;
}
.fila-disponible-matricula b {
    color: var(--eco-petroleo);
}
.fila-disponible-matricula small {
    color: var(--muted);
    font-weight: 800;
}
.fila-disponible-matricula em {
    color: var(--eco-bosque);
    font-style: normal;
    font-weight: 900;
    overflow-wrap: anywhere;
}
.panel-programacion .pestanas {
    margin: 8px 0;
    gap: 4px;
}
.panel-propuesta {
    border: 1px solid rgba(15,107,67,.18);
    border-left: 6px solid var(--eco-hoja);
    border-radius: 14px;
    padding: 14px 16px;
    margin: 12px 0 16px;
    background: linear-gradient(135deg, rgba(231,246,238,.88), rgba(255,250,236,.72));
    color: var(--eco-petroleo);
    line-height: 1.45;
}
.kpis-programacion {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    margin: 8px 0;
}
.kpis-programacion article,
.kpis-programacion .kpi-accion {
    border: 1px solid rgba(15,107,67,.16);
    border-radius: 10px;
    padding: 8px 10px;
    background: linear-gradient(145deg, #ffffff, rgba(239,250,244,.92));
    box-shadow: 0 12px 32px rgba(13,59,76,.06);
}
.kpis-programacion .kpi-accion {
    appearance: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.kpis-programacion .kpi-accion:hover {
    border-color: var(--eco-ambar);
    box-shadow: 0 15px 32px rgba(138,90,9,.14);
    transform: translateY(-1px);
}
.kpis-programacion small,
.kpis-programacion strong,
.kpis-programacion .kpi-accion span {
    display: block;
}
.kpis-programacion small {
    color: var(--muted);
    font-weight: 900;
    text-transform: uppercase;
    font-size: 10px;
}
.kpis-programacion strong {
    margin-top: 2px;
    color: var(--eco-petroleo);
    font-size: 22px;
    line-height: 1;
}
.kpis-programacion .kpi-accion span {
    margin-top: 5px;
    color: #8a5a09;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}
.alertas-programacion {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 8px 0 14px;
}
.alertas-programacion span {
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 900;
    font-size: 12px;
}
.alerta-cruce {
    background: rgba(180,67,39,.12);
    color: #8a2f1e;
    border: 1px solid rgba(180,67,39,.2);
}
.alerta-capacidad {
    background: rgba(211,142,38,.14);
    color: #8a5a09;
    border: 1px solid rgba(211,142,38,.22);
}
.alertas-programacion .alerta-accion {
    appearance: none;
    cursor: pointer;
    border-radius: 999px;
    padding: 8px 12px;
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    transition: background .18s ease, transform .18s ease;
}
.alertas-programacion .alerta-accion:hover {
    background: rgba(211,142,38,.22);
    transform: translateY(-1px);
}
.alertas-programacion .alerta-accion strong {
    margin-left: 6px;
    color: var(--eco-bosque);
}
.diagnostico-capacidad {
    margin: 12px 0 18px;
    padding: 16px 18px;
    border: 1px solid rgba(211,142,38,.24);
    border-left: 4px solid var(--eco-ambar);
    border-radius: 12px;
    background: linear-gradient(120deg, rgba(255,251,239,.94), rgba(239,250,244,.72));
    box-shadow: 0 12px 30px rgba(13,59,76,.05);
}
.diagnostico-capacidad__cabecera {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}
.diagnostico-capacidad__cabecera small {
    color: #8a5a09;
    font-weight: 900;
    font-size: 10px;
    text-transform: uppercase;
}
.diagnostico-capacidad__cabecera h3 {
    margin: 4px 0 0;
    color: var(--eco-petroleo);
    font-size: 17px;
}
.diagnostico-capacidad__metricas {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}
.diagnostico-capacidad__metricas article {
    min-width: 132px;
    padding: 9px 12px;
    border: 1px solid rgba(15,107,67,.14);
    border-radius: 9px;
    background: #fff;
}
.diagnostico-capacidad__metricas small,
.diagnostico-capacidad__metricas strong,
.diagnostico-capacidad__metricas span {
    display: block;
}
.diagnostico-capacidad__metricas small {
    color: var(--muted);
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}
.diagnostico-capacidad__metricas strong {
    margin-top: 2px;
    color: var(--eco-petroleo);
    font-size: 22px;
}
.diagnostico-capacidad__metricas span {
    color: var(--muted);
    font-size: 11px;
}
.diagnostico-capacidad__metricas .pendiente {
    border-color: rgba(211,142,38,.3);
    background: rgba(255,249,232,.9);
}
.diagnostico-capacidad p {
    max-width: 960px;
    margin: 0;
    color: var(--texto);
    line-height: 1.5;
}
.etiqueta-periodo-operativo {
    display: inline-flex;
    margin: 0 0 7px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(15,107,67,.1);
    color: var(--eco-bosque);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}
.estado-periodo-operativo {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    align-items: center;
    margin: 2px 0 14px;
    padding: 11px 14px;
    border: 1px solid rgba(15,107,67,.16);
    border-radius: 11px;
    background: linear-gradient(105deg, rgba(231,246,238,.8), rgba(255,250,236,.55));
    color: var(--eco-petroleo);
}
.estado-periodo-operativo strong {
    color: var(--eco-bosque);
}
.estado-periodo-operativo span {
    color: var(--muted);
    font-size: 13px;
}
.ok-programacion {
    background: rgba(15,107,67,.1);
    color: var(--eco-bosque);
    border: 1px solid rgba(15,107,67,.18);
}
.panel-horario-semanal {
    margin: 16px 0;
}
.panel-formato-261 {
    margin: 8px 0;
    border: 1px solid rgba(15,107,67,.16);
    border-radius: 16px;
    padding: 10px;
    background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(241,250,245,.82));
}
.bloque-ciclo-261 {
    margin-top: 8px;
}
.bloque-ciclo-261 h4 {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin: 0 0 10px;
    color: var(--eco-petroleo);
}
.bloque-ciclo-261 h4 span {
    background: rgba(15,107,67,.1);
    color: var(--eco-bosque);
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
}
.panel-formato-261 .tabla-scroll table {
    font-size: 12px;
}
.panel-formato-261 .tabla-scroll th,
.panel-formato-261 .tabla-scroll td {
    padding: calc(5px * var(--escala-tabla)) calc(4px * var(--escala-tabla));
}
.horario-semanal-scroll {
    max-height: 720px;
}
.panel-simulacion,
.panel-formato-261,
.panel-horario-semanal {
    background:
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(244,251,247,.94)),
        radial-gradient(circle at 12% 0%, rgba(0,132,61,.10), transparent 32%),
        radial-gradient(circle at 92% 8%, rgba(211,142,38,.12), transparent 28%);
    border: 1px solid rgba(22, 122, 78, .22);
    border-top: 6px solid transparent;
    border-image: linear-gradient(90deg, #00843d, #78a641, #d38e26, #0d5c63) 1;
    box-shadow: 0 24px 60px rgba(13, 59, 76, .12);
}
.panel-simulacion > header {
    padding-bottom: 6px;
}
.panel-simulacion > header h2 {
    margin: 0;
}
.panel-simulacion .ayuda-compacta,
.panel-formato-261 .ayuda-panel {
    font-size: 13px;
    margin: 2px 0 0;
}
.panel-simulacion > header h2,
.panel-formato-261 h3,
.panel-horario-semanal h3 {
    color: #073f2a;
    letter-spacing: .01em;
}
.panel-simulacion .filtros-compactos,
.panel-programacion .filtros-compactos {
    background: linear-gradient(135deg, rgba(236,248,240,.96), rgba(255,251,240,.76));
    border-color: rgba(0,132,61,.18);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
    padding: 8px;
    gap: 6px;
}
.grid-ocupabilidad {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 10px;
    margin: 14px 0;
}
.tarjeta-ocupacion,
.informe-jefatura,
.sustento-laboratorio article {
    border: 1px solid rgba(0,132,61,.16);
    border-radius: 8px;
    background: rgba(255,255,255,.88);
    padding: 14px;
    box-shadow: 0 10px 22px rgba(9,45,33,.06);
}
.tarjeta-ocupacion h4,
.informe-jefatura h4 {
    margin: 2px 0 6px;
    color: var(--verde-oscuro);
}
.tarjeta-ocupacion p,
.informe-jefatura p {
    margin: 6px 0;
}
.barra-ocupacion {
    position: relative;
    height: 22px;
    overflow: hidden;
    border-radius: 999px;
    background: #eaf3ef;
    margin: 10px 0;
}
.barra-ocupacion span {
    display: block;
    height: 100%;
    background: #00843d;
}
.barra-ocupacion.alta span { background: #c38a16; }
.barra-ocupacion.critica span { background: #b42318; }
.barra-ocupacion strong {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-size: 12px;
    color: #102235;
}
.tarjeta-ocupacion dl,
.sustento-laboratorio {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 8px;
}
.tarjeta-ocupacion dt {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
}
.tarjeta-ocupacion dd {
    margin: 0;
    color: var(--tinta);
    font-weight: 900;
}
.estado-ocupacion {
    display: inline-flex;
    margin-top: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eef8f2;
    color: var(--verde-oscuro);
}
.reporte-formal-programacion .informe-jefatura {
    margin: 14px 0;
    font-size: 15px;
    line-height: 1.55;
}
.sustento-laboratorio {
    margin: 12px 0;
}
.sustento-laboratorio small,
.sustento-laboratorio span {
    display: block;
    color: var(--muted);
    font-weight: 800;
}
.sustento-laboratorio strong {
    display: block;
    color: var(--verde-oscuro);
    font-size: 22px;
    margin: 4px 0;
}
.panel-formato-261 .bloque-ciclo-261 {
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(15,107,67,.14);
    border-radius: 10px;
    padding: 8px;
    margin: 8px 0 12px;
}
.tabla-formato-261 tbody tr {
    border-left: 7px solid var(--color-programa, var(--verde));
}
.tabla-formato-261 tbody tr td:nth-child(7),
.tabla-formato-261 tbody tr td:nth-child(8),
.tabla-formato-261 tbody tr td:nth-child(10) {
    box-shadow: inset 4px 0 0 var(--color-programa, var(--verde));
}
.tabla-formato-261 tbody tr td:nth-child(8) {
    color: var(--color-programa, var(--verde-oscuro));
    font-weight: 900;
}
.horario-semanal {
    table-layout: fixed;
    min-width: 100%;
    border-spacing: 0;
    overflow: hidden;
    border-radius: 16px;
}
.horario-semanal th:first-child {
    width: 72px;
}
.horario-semanal th {
    background: linear-gradient(135deg, rgba(218,239,228,.98), rgba(245,238,212,.92));
    color: var(--eco-petroleo);
    text-align: center;
    border-color: rgba(15,107,67,.18);
}
.horario-semanal td {
    height: 104px;
    vertical-align: top;
    padding: 7px;
    background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(247,252,249,.78));
    border-color: rgba(15,107,67,.12);
    overflow: visible;
}
.bloque-horario-simulacion {
    display: grid;
    gap: 3px;
    border-radius: 12px;
    padding: 8px;
    margin-bottom: 5px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--color-programa, #00843d) 22%, #fff), rgba(255,255,255,.92));
    border: 1px solid color-mix(in srgb, var(--color-programa, #00843d) 55%, #fff);
    border-left: 8px solid var(--color-programa, #00843d);
    color: var(--eco-petroleo);
    box-shadow: 0 10px 22px rgba(13,59,76,.10);
    cursor: grab;
    user-select: none;
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease, border-color .18s ease;
}
.bloque-horario-simulacion.bloque-compacto {
    position: relative;
    z-index: 3;
    min-height: calc((104px * var(--bloque-slots, 1)) - 14px);
    grid-template-columns: minmax(0, 1fr) auto;
    align-content: start;
    padding: 10px;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--color-programa, #00843d) 24%, #fff), rgba(255,255,255,.94)),
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--color-programa, #00843d) 18%, transparent), transparent 42%);
}
.bloque-compacto-principal {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.detalle-bloque-compacto {
    align-self: start;
    justify-self: end;
    position: relative;
}
.detalle-bloque-compacto summary {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--color-programa, #00843d) 45%, #fff);
    border-radius: 999px;
    background: #fff;
    color: var(--color-programa, #00843d);
    font-weight: 1000;
    cursor: pointer;
    list-style: none;
    box-shadow: 0 8px 18px rgba(13,59,76,.10);
}
.detalle-bloque-compacto summary::-webkit-details-marker {
    display: none;
}
.detalle-bloque-compacto[open] summary {
    background: var(--color-programa, #00843d);
    color: #fff;
}
.detalle-bloque-compacto[open] summary::before {
    content: "Ã¢Ë†â€™";
}
.detalle-bloque-compacto[open] summary {
    font-size: 0;
}
.detalle-bloque-compacto[open] summary::before {
    font-size: 16px;
}
.detalle-bloque-compacto div {
    position: absolute;
    right: 0;
    top: 34px;
    z-index: 20;
    width: min(260px, 72vw);
    display: grid;
    gap: 5px;
    border: 1px solid color-mix(in srgb, var(--color-programa, #00843d) 35%, #d8e8df);
    border-radius: 12px;
    padding: 10px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 18px 38px rgba(13,59,76,.20);
}
.detalle-bloque-compacto small {
    display: block;
    color: var(--texto);
    font-size: 11px;
}
.detalle-bloque-compacto b {
    color: var(--eco-petroleo);
}
.pestanas-reporte-formal {
    margin: 16px 0;
}
.pestanas-reporte-formal > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.pestanas-reporte-formal > nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px;
    border: 1px solid rgba(15,107,67,.16);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(245,251,247,.96), rgba(255,250,235,.82));
    position: sticky;
    top: 0;
    z-index: 8;
}
.pestanas-reporte-formal > nav label {
    border: 1px solid rgba(15,107,67,.18);
    border-radius: 999px;
    padding: 9px 14px;
    background: #fff;
    color: var(--eco-petroleo);
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(13,59,76,.06);
}
.pestanas-reporte-formal .panel-tab-reporte {
    display: none;
    border: 1px solid rgba(15,107,67,.14);
    border-radius: 16px;
    margin-top: 12px;
    padding: 12px;
    background: rgba(255,255,255,.88);
}
#tab-reporte-ocupabilidad:checked ~ nav label[for="tab-reporte-ocupabilidad"],
#tab-reporte-horario:checked ~ nav label[for="tab-reporte-horario"],
#tab-reporte-carga:checked ~ nav label[for="tab-reporte-carga"],
#tab-ambiente-ocupabilidad:checked ~ nav label[for="tab-ambiente-ocupabilidad"],
#tab-ambiente-horario:checked ~ nav label[for="tab-ambiente-horario"],
#tab-ambiente-carga:checked ~ nav label[for="tab-ambiente-carga"] {
    background: linear-gradient(135deg, var(--verde), var(--eco-petroleo));
    border-color: var(--verde);
    color: #fff;
}
#tab-reporte-ocupabilidad:checked ~ .panel-tab-ocupabilidad,
#tab-reporte-horario:checked ~ .panel-tab-horario,
#tab-reporte-carga:checked ~ .panel-tab-carga,
#tab-ambiente-ocupabilidad:checked ~ .panel-tab-ocupabilidad,
#tab-ambiente-horario:checked ~ .panel-tab-horario,
#tab-ambiente-carga:checked ~ .panel-tab-carga {
    display: block;
}
.bloque-horario-simulacion:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 28px rgba(13,59,76,.16);
}
.bloque-horario-simulacion.arrastrando {
    cursor: grabbing;
    opacity: .56;
    transform: scale(.98);
    border-color: rgba(0,132,61,.55);
}
.bloque-horario-simulacion.continuacion {
    min-height: 86px;
    opacity: .88;
    cursor: default;
    background: repeating-linear-gradient(
        135deg,
        color-mix(in srgb, var(--color-programa, #00843d) 18%, #fff) 0,
        color-mix(in srgb, var(--color-programa, #00843d) 18%, #fff) 9px,
        rgba(255,255,255,.86) 9px,
        rgba(255,255,255,.86) 18px
    );
    border-left-style: solid;
}
.bloque-horario-simulacion.continuacion strong {
    font-size: 11px;
}
.bloque-horario-simulacion.continuacion em {
    color: var(--eco-petroleo);
}
.celda-horario-soltable {
    position: relative;
    transition: background .18s ease, box-shadow .18s ease, outline-color .18s ease;
}
.celda-horario-soltable.celda-horario-activa {
    outline: 3px solid rgba(0,132,61,.42);
    outline-offset: -3px;
    background: linear-gradient(180deg, rgba(232,246,238,.98), rgba(255,248,226,.92));
    box-shadow: inset 0 0 0 1px rgba(194,134,24,.35);
}
.celda-horario-soltable.celda-horario-activa::after {
    content: "Soltar aqui";
    position: absolute;
    right: 8px;
    top: 8px;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(0,132,61,.92);
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0;
}
.panel-cruce-horario {
    display: grid;
    gap: 16px;
}
.panel-cruce-horario p {
    margin: 0;
    color: var(--texto);
    font-weight: 800;
}
.panel-cruce-horario ul {
    margin: 0;
    padding: 14px 18px;
    border: 1px solid rgba(194,134,24,.32);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(255,248,226,.92), rgba(239,248,242,.88));
    color: #7c4a09;
    font-weight: 800;
}
.acciones-cruce-horario {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    align-items: center;
}
.acciones-cruce-horario .icono-boton {
    width: 100%;
    min-height: 54px;
    background: linear-gradient(135deg, var(--verde), var(--eco-petroleo));
    color: #fff;
}
.acciones-cruce-horario span {
    display: none;
}
.bloque-horario-simulacion strong {
    color: var(--color-programa, var(--eco-petroleo));
    font-size: 12px;
}
.bloque-horario-simulacion span,
.bloque-horario-simulacion em,
.bloque-horario-simulacion small {
    font-size: 11px;
    line-height: 1.18;
}
.bloque-horario-simulacion em {
    color: #8a5a09;
    font-style: normal;
    font-weight: 900;
}
.bloque-horario-simulacion small {
    color: var(--muted);
    font-weight: 800;
}
.bloque-horario-simulacion .resumen-horas-bloque {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(255,255,255,.78);
    border: 1px solid rgba(13,59,76,.12);
    color: var(--eco-petroleo);
    font-size: 10px;
    font-weight: 900;
}
.bloque-horario-simulacion .resumen-horas-bloque.completo {
    background: rgba(232,246,238,.92);
    border-color: rgba(0,132,61,.28);
    color: #006b3f;
}
.bloque-horario-simulacion .resumen-horas-bloque.incompleto {
    background: rgba(255,248,226,.95);
    border-color: rgba(194,134,24,.34);
    color: #8a5a09;
}
.tipo-laboratorio {
    background: linear-gradient(135deg, rgba(17,94,89,.14), rgba(46,125,50,.08));
    border-color: rgba(17,94,89,.24);
}
.tipo-practica {
    background: linear-gradient(135deg, rgba(211,142,38,.16), rgba(0,132,61,.08));
    border-color: rgba(211,142,38,.25);
}
.tipo-taller {
    background: linear-gradient(135deg, rgba(183,121,31,.20), rgba(0,109,119,.10));
    border-color: rgba(183,121,31,.30);
}
.tipo-taller strong {
    color: #7c4a09;
}

.consulta-estudiante-v2 {
    gap: 18px;
}
.consulta-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px;
    gap: 16px;
    align-items: stretch;
    padding: 18px;
    border: 1px solid rgba(0,132,61,.18);
    border-radius: 16px;
    background:
        radial-gradient(circle at top right, rgba(218,168,47,.18), transparent 36%),
        linear-gradient(135deg, #f6fffa, #ffffff 58%, #f8fbff);
    box-shadow: 0 18px 42px rgba(13,59,76,.08);
}
.consulta-hero h2 {
    margin: 6px 0;
    color: var(--verde-oscuro);
    font-size: clamp(24px, 3vw, 36px);
    line-height: 1.05;
}
.consulta-hero p {
    margin: 0;
    color: var(--muted);
    font-weight: 800;
}
.consulta-hero-estado {
    display: grid;
    align-content: center;
    gap: 4px;
    border-radius: 14px;
    padding: 16px;
    background: linear-gradient(135deg, var(--verde), var(--verde-oscuro));
    color: #fff;
    text-align: center;
}
.consulta-hero-estado small,
.consulta-hero-estado span {
    font-weight: 900;
    opacity: .86;
}
.consulta-hero-estado strong {
    font-size: 42px;
    line-height: 1;
}
.perfil-operativo-estudiante {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px;
}
.perfil-operativo-estudiante article {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 14px;
    background: rgba(255,255,255,.82);
    padding: 13px 14px;
    box-shadow: 0 10px 24px rgba(13,59,76,.05);
}
.perfil-operativo-estudiante span {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.perfil-operativo-estudiante strong {
    display: block;
    margin-top: 5px;
    color: var(--tinta);
    overflow-wrap: anywhere;
}
.alerta-confirmacion-notas {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    border: 1px solid rgba(218,168,47,.32);
    border-left: 6px solid var(--ambar);
    border-radius: 14px;
    padding: 14px 16px;
    background: linear-gradient(135deg, #fff8df, #fffdf5);
    color: #6f4b00;
}
.alerta-confirmacion-notas.urgente {
    border-color: rgba(150,35,35,.30);
    border-left-color: #b73333;
    background: linear-gradient(135deg, #fff0f0, #fffafa);
    color: #7b1d1d;
}
.alerta-confirmacion-notas.completa {
    border-color: rgba(0,132,61,.24);
    border-left-color: var(--verde);
    background: linear-gradient(135deg, #ecfff4, #fbfffd);
    color: var(--verde-oscuro);
}
.alerta-confirmacion-notas strong {
    display: block;
    font-size: 16px;
}
.alerta-confirmacion-notas p {
    margin: 4px 0 0;
    color: inherit;
    opacity: .86;
}
.alerta-confirmacion-notas > span {
    border-radius: 999px;
    background: rgba(255,255,255,.8);
    padding: 8px 12px;
    font-weight: 950;
    white-space: nowrap;
}
.curso-estudiante-v2 {
    border-radius: 18px;
    padding: 16px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,252,250,.96)),
        radial-gradient(circle at top left, rgba(0,132,61,.10), transparent 38%);
}
.curso-cabecera-estrategica {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 160px;
    gap: 14px;
    align-items: stretch;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(13,59,76,.10);
}
.curso-cabecera-estrategica h3 {
    margin: 5px 0;
    color: var(--verde-oscuro);
    font-size: clamp(20px, 2.2vw, 28px);
}
.curso-cabecera-estrategica p {
    margin: 0;
    color: var(--muted);
    font-weight: 800;
}
.etiqueta-curso {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    padding: 5px 9px;
    background: #e8f8ee;
    color: var(--verde);
    font-size: 11px;
    font-weight: 950;
}
.promedio-principal {
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 5px;
    border-radius: 16px;
    padding: 12px;
    background: #0d3b4c;
    color: #fff;
    text-align: center;
}
.promedio-principal.pendiente {
    background: linear-gradient(135deg, #7a5a16, #d9a441);
}
.promedio-principal small {
    font-weight: 900;
    opacity: .82;
}
.promedio-principal strong {
    font-size: 34px;
    line-height: 1;
}
.promedio-principal .estado {
    background: rgba(255,255,255,.16);
    color: #fff;
}
.promedio-principal .estado-consulta-icono {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 5px 8px;
}
.panel-control-estudiante {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}
.panel-control-estudiante article {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 14px;
    background: #fff;
    padding: 13px;
}
.panel-control-estudiante span,
.panel-control-estudiante small {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}
.panel-control-estudiante strong {
    display: block;
    margin: 6px 0;
    color: var(--tinta);
    font-size: 24px;
}
.mensaje-estrategico {
    margin-top: 14px;
    border-radius: 14px;
}
.tablero-academico-estudiante {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(330px, .85fr);
    gap: 14px;
    margin-top: 14px;
    align-items: start;
}
.tablero-academico-estudiante > section {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 16px;
    background: rgba(255,255,255,.82);
    padding: 14px;
}
.tablero-academico-estudiante header {
    margin-bottom: 10px;
}
.tablero-academico-estudiante h4 {
    margin: 0;
    color: var(--tinta);
}
.tablero-academico-estudiante p {
    margin: 3px 0 0;
    color: var(--muted);
}
.bloque-ra-estrategico {
    grid-row: span 2;
}
.matriz-ra-estudiante {
    display: grid;
    gap: 10px;
}
.fila-ra-estudiante {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 12px;
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 14px;
    padding: 12px;
    background: #fff;
}
.fila-ra-estudiante > div:first-child {
    display: grid;
    align-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, #effaf4, #f8fffb);
    padding: 10px;
}
.fila-ra-estudiante span {
    color: var(--verde);
    font-size: 12px;
    font-weight: 950;
}
.fila-ra-estudiante strong {
    color: var(--tinta);
    font-size: 22px;
    line-height: 1;
}
.fila-ra-estudiante small,
.fila-ra-estudiante p {
    color: var(--muted);
    font-weight: 800;
}
.fila-ra-estudiante dl {
    display: grid;
    grid-template-columns: repeat(7, minmax(54px, 1fr));
    gap: 6px;
    margin: 0;
}
.fila-ra-estudiante dt {
    color: var(--muted);
    font-size: 10px;
    font-weight: 950;
    text-transform: uppercase;
}
.fila-ra-estudiante dd {
    margin: 3px 0 0;
    color: var(--tinta);
    font-weight: 950;
    min-height: 26px;
    display: flex;
    align-items: center;
}
.fila-ra-estudiante.ra5 {
    grid-template-columns: 120px minmax(0, 1fr);
    border-color: rgba(218,168,47,.34);
    background: #fffdf5;
}
.bloque-confirmacion-notas {
    margin-top: 14px;
    border: 1px solid rgba(218,168,47,.32);
    border-radius: 16px;
    padding: 14px;
    background: linear-gradient(135deg, #fffaf0, #ffffff);
}
.bloque-confirmacion-notas.obligatorio {
    border-color: rgba(183,51,51,.32);
    background: linear-gradient(135deg, #fff1f1, #fff);
}
.bloque-confirmacion-notas header {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: flex-start;
    margin-bottom: 10px;
}
.bloque-confirmacion-notas h4 {
    margin: 0;
    color: var(--tinta);
}
.bloque-confirmacion-notas p {
    margin: 4px 0 0;
    color: var(--muted);
}
.bloque-confirmacion-notas header span {
    border-radius: 999px;
    padding: 7px 10px;
    background: #fff;
    color: #8a5a09;
    font-weight: 950;
    white-space: nowrap;
}
.lista-confirmacion-notas {
    display: grid;
    gap: 8px;
}
.lista-confirmacion-notas article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 10px;
    align-items: center;
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 12px;
    padding: 10px;
    background: #fff;
}
.lista-confirmacion-notas article.obligatoria {
    border-color: rgba(183,51,51,.32);
}
.lista-confirmacion-notas span,
.lista-confirmacion-notas small {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
}
.lista-confirmacion-notas strong {
    display: block;
    color: var(--tinta);
    font-size: 22px;
}
.lista-confirmacion-notas em {
    color: #8a5a09;
    font-style: normal;
    font-weight: 950;
    white-space: nowrap;
}
.lista-confirmacion-notas article.obligatoria em {
    color: #9d2525;
}
.lista-confirmacion-notas button {
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--verde), var(--verde-oscuro));
    color: #fff;
    padding: 9px 12px;
    font-weight: 950;
    cursor: pointer;
}
.lista-confirmadas-notas {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
.lista-confirmadas-notas span,
.estado-confirmacion-ok {
    border-radius: 999px;
    background: #eaf8ef;
    color: var(--verde-oscuro);
    padding: 7px 10px;
    font-weight: 900;
}
.lista-evidencias-clave,
.lista-evidencias-estudiante {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}
.evidencia-estudiante {
    display: grid;
    gap: 8px;
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 14px;
    background: #fff;
    padding: 12px;
}
.evidencia-estudiante.registrada {
    border-color: rgba(0,132,61,.22);
    background: linear-gradient(135deg, #f4fff8, #fff);
}
.evidencia-estudiante > span {
    width: fit-content;
    border-radius: 999px;
    background: #eef5f8;
    color: var(--azul);
    padding: 4px 8px;
    font-size: 10px;
    font-weight: 950;
    text-transform: uppercase;
}
.evidencia-estudiante strong {
    color: var(--tinta);
}
.evidencia-estudiante b {
    display: block;
    color: var(--verde-oscuro);
    font-size: 24px;
}
.evidencia-estudiante small {
    color: var(--muted);
}
.timeline-participacion {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    gap: 8px;
}
.timeline-participacion article {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 12px;
    background: #fff;
    padding: 10px;
    min-width: 0;
}
.timeline-participacion article.registrada {
    border-color: rgba(0,132,61,.22);
    background: #f5fff8;
}
.timeline-participacion span,
.timeline-participacion small {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
}
.timeline-participacion strong {
    display: flex;
    align-items: center;
    color: var(--tinta);
    margin: 4px 0;
    min-height: 28px;
}
.detalle-evidencias-estudiante {
    margin-top: 14px;
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 16px;
    background: #fff;
    padding: 12px;
}
.detalle-evidencias-estudiante summary {
    cursor: pointer;
    color: var(--verde-oscuro);
    font-weight: 950;
}
.detalle-evidencias-estudiante .lista-evidencias-estudiante {
    margin-top: 12px;
}

.consulta-por-pestanas {
    overflow: hidden;
}
.portada-curso-estudiante {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) 190px;
    gap: 12px;
    margin-top: 14px;
    align-items: stretch;
}
.grafico-avance-consulta {
    display: grid;
    place-items: center;
    gap: 8px;
    border: 1px solid rgba(0,132,61,.18);
    border-radius: 18px;
    background: #fff;
    padding: 14px;
    text-align: center;
}
.grafico-avance-consulta > div {
    width: 124px;
    height: 124px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle, #fff 58%, transparent 60%),
        conic-gradient(var(--verde) var(--avance-grados), #e4eee9 0);
    box-shadow: inset 0 0 0 1px rgba(13,59,76,.08);
}
.grafico-avance-consulta strong {
    display: block;
    color: var(--verde-oscuro);
    font-size: 26px;
    line-height: 1;
}
.grafico-avance-consulta span,
.grafico-avance-consulta small {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
}
.notas-finales-portada {
    display: grid;
    grid-template-columns: minmax(120px, 1.15fr) repeat(5, minmax(92px, 1fr));
    gap: 8px;
}
.notas-finales-portada article {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 16px;
    background: #fff;
    padding: 12px;
    min-height: 94px;
    min-width: 0;
    overflow: hidden;
}
.notas-finales-portada article.principal {
    background: linear-gradient(135deg, var(--verde), var(--verde-oscuro));
    color: #fff;
}
.notas-finales-portada span,
.notas-finales-portada small {
    display: block;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
    color: var(--muted);
}
.notas-finales-portada article.principal span,
.notas-finales-portada article.principal small {
    color: rgba(255,255,255,.82);
}
.notas-finales-portada strong {
    display: block;
    margin: 8px 0 4px;
    color: var(--verde-oscuro);
    font-size: clamp(18px, 1.7vw, 24px);
    line-height: 1;
    overflow-wrap: anywhere;
}
.notas-finales-portada article.principal strong {
    color: #fff;
    font-size: clamp(20px, 2.2vw, 30px);
}
.notas-finales-portada article.pendiente:not(.principal) {
    background: #fffaf0;
    border-color: rgba(218,168,47,.32);
}
.acciones-rapidas-consulta {
    display: grid;
    gap: 8px;
}
.acciones-rapidas-consulta article {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 14px;
    background: #fff;
    padding: 10px 12px;
}
.acciones-rapidas-consulta strong {
    display: block;
    font-size: 22px;
    line-height: 1.05;
}
.acciones-rapidas-consulta span,
.acciones-rapidas-consulta small {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}
.pestanas-consulta {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    margin: 16px 0 0;
    padding: 8px;
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 16px;
    background: linear-gradient(135deg, #f5fbf8, #fff);
}
.pestanas-consulta button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid rgba(13,59,76,.12);
    border-radius: 999px;
    background: #fff;
    color: var(--tinta);
    padding: 10px 13px;
    font-weight: 950;
    white-space: nowrap;
    cursor: pointer;
}
.pestanas-consulta button span {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #eaf8ef;
    color: var(--verde);
}
.pestanas-consulta button.activa {
    border-color: transparent;
    background: linear-gradient(135deg, var(--verde), var(--verde-oscuro));
    color: #fff;
    box-shadow: 0 12px 24px rgba(0,95,59,.15);
}
.pestanas-consulta button.activa span {
    background: rgba(255,255,255,.18);
    color: #fff;
}
.contenido-pestanas-consulta {
    margin-top: 12px;
}
.pestana-consulta {
    display: none;
}
.pestana-consulta.activa {
    display: grid;
    gap: 14px;
}
.resumen-ejecutivo-consulta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 12px;
}
.mini-graficos-consulta {
    display: grid;
    gap: 10px;
}
.barra-consulta {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 14px;
    background: #fff;
    padding: 12px;
}
.barra-consulta > div {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
}
.barra-consulta span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
}
.barra-consulta strong {
    color: var(--tinta);
    font-size: 18px;
}
.barra-consulta em {
    display: block;
    height: 10px;
    margin-top: 10px;
    border-radius: 999px;
    background: #e6eee9;
    overflow: hidden;
}
.barra-consulta i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--verde), #56b87d);
}
.barra-consulta.alerta i {
    background: linear-gradient(90deg, #d9a441, #b56d23);
}
.bloque-notas-finales {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 18px;
    background: #fff;
    padding: 14px;
}
.cabecera-seccion-consulta {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    margin-bottom: 12px;
}
.cabecera-seccion-consulta h4 {
    margin: 0;
    color: var(--tinta);
}
.cabecera-seccion-consulta p {
    margin: 3px 0 0;
    color: var(--muted);
}
.cabecera-seccion-consulta > strong {
    border-radius: 16px;
    background: linear-gradient(135deg, var(--verde), var(--verde-oscuro));
    color: #fff;
    padding: 12px 16px;
    font-size: 28px;
    line-height: 1;
}
.bloque-notas-finales .bloque-ra-estrategico {
    border: 0;
    padding: 0;
    background: transparent;
}
.bloque-notas-finales .bloque-ra-estrategico > header {
    display: none;
}
.bloque-notas-finales .fila-ra-estudiante {
    grid-template-columns: 108px minmax(0, 1fr);
}
.bloque-notas-finales .fila-ra-estudiante dl {
    grid-template-columns: repeat(5, minmax(72px, 1fr));
    align-items: center;
}
.formula-resumen-estudiante {
    border: 1px solid rgba(0,132,61,.16);
    border-radius: 12px;
    background: #f3fbf7;
    color: var(--verde-oscuro);
    padding: 10px 12px;
    margin-bottom: 12px;
    font-size: 12px;
    font-weight: 850;
}
.bloque-unidades-premium {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 18px;
    background: #fff;
    padding: 14px;
}
.unidades-premium-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.tarjeta-unidad-estudiante {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 16px;
    background: linear-gradient(135deg, #fbfffd, #fff);
    padding: 13px;
}
.tarjeta-unidad-estudiante > header {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
}
.tarjeta-unidad-estudiante > header span {
    border-radius: 999px;
    background: #e8f8ee;
    color: var(--verde);
    padding: 5px 9px;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
}
.tarjeta-unidad-estudiante > header strong {
    color: var(--verde-oscuro);
    font-size: 18px;
    text-align: right;
}
.componentes-unidad-estudiante {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}
.componentes-unidad-estudiante article,
.unidad-ra5-directa article {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 12px;
    background: #fff;
    padding: 10px;
    min-width: 0;
    overflow: hidden;
}
.componentes-unidad-estudiante article.registrada {
    border-color: rgba(0,132,61,.20);
    background: #f6fff9;
}
.componentes-unidad-estudiante span,
.unidad-ra5-directa span {
    display: block;
    color: var(--muted);
    font-size: 9px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .01em;
}
.componentes-unidad-estudiante strong,
.unidad-ra5-directa strong {
    display: flex;
    align-items: center;
    margin: 5px 0;
    color: var(--verde-oscuro);
    font-size: 20px;
    min-height: 28px;
}
.componentes-unidad-estudiante small,
.unidad-ra5-directa small {
    display: block;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.25;
    max-height: 2.6em;
    overflow: hidden;
}
.unidad-ra5-directa {
    margin-top: 12px;
    max-width: 360px;
}
.nota-valor {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    line-height: 1;
    white-space: nowrap;
}
.nota-icono-pendiente {
    display: inline-flex;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    border: 2px solid rgba(104,119,131,.38);
    background: linear-gradient(135deg, #f8fbfa, #eef5f1);
    position: relative;
    vertical-align: middle;
    flex: 0 0 auto;
}
.nota-icono-pendiente::after {
    content: "";
    position: absolute;
    left: 6px;
    right: 6px;
    top: 50%;
    height: 2px;
    border-radius: 999px;
    background: #7a8790;
    transform: translateY(-50%);
}
.nota-icono-pendiente.mini {
    width: 20px;
    height: 20px;
    border-width: 2px;
}
.nota-icono-pendiente.nota-principal,
.nota-icono-pendiente.nota-final-principal {
    width: 34px;
    height: 34px;
    border-color: rgba(255,255,255,.72);
    background: rgba(255,255,255,.16);
}
.nota-icono-pendiente.nota-principal::after,
.nota-icono-pendiente.nota-final-principal::after {
    background: #fff;
}
.nota-icono-pendiente.respuesta {
    width: 24px;
    height: 24px;
}
.nota-final-ra {
    font-size: inherit;
}
.nota-ra-oficial {
    font-size: inherit;
}
.pestana-consulta .bloque-evidencias-clave,
.pestana-consulta .bloque-participacion-estudiante,
.pestana-consulta .respuestas-ra-estudiante {
    border: 1px solid rgba(13,59,76,.10);
    border-radius: 18px;
    background: #fff;
    padding: 14px;
}
.pestana-consulta .detalle-evidencias-estudiante {
    margin-top: 0;
}

@media (max-width: 820px) {
    .resumen-cumpleanos,
    .tarjeta-cumpleanos,
    .filtros-cumpleanos,
    .tarjeta-padron,
    .resumen-seccion-matricula,
    .fila-disponible-matricula,
    .kpis-programacion { grid-template-columns: 1fr; }
    .acciones-cumpleanos { justify-content: flex-start; }
    .etiqueta-proximo { left: 16px; }
    .consulta-hero,
    .curso-cabecera-estrategica,
    .tablero-academico-estudiante,
    .fila-ra-estudiante,
    .lista-confirmacion-notas article { grid-template-columns: 1fr; }
    .portada-curso-estudiante,
    .resumen-ejecutivo-consulta { grid-template-columns: 1fr; }
    .notas-finales-portada { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .notas-finales-portada article.principal { grid-column: span 2; }
    .panel-control-estudiante { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fila-ra-estudiante dl { grid-template-columns: repeat(3, minmax(54px, 1fr)); }
    .bloque-notas-finales .fila-ra-estudiante,
    .bloque-notas-finales .fila-ra-estudiante dl { grid-template-columns: 1fr 1fr; }
    .unidades-premium-grid,
    .componentes-unidad-estudiante { grid-template-columns: 1fr; }
    .tarjeta-unidad-estudiante > header { align-items: flex-start; flex-direction: column; }
    .tarjeta-unidad-estudiante > header strong { text-align: left; }
}
.panel-configuracion-operativa {
    display: grid;
    gap: 18px;
    align-content: start;
    padding: 22px;
    border: 1px solid #d8e6df;
    border-radius: 18px;
    background: linear-gradient(145deg, #fff, #f5fbf7);
}

.panel-configuracion-operativa .formulario-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.panel-configuracion-operativa .texto-ayuda-modal,
.panel-configuracion-operativa .acciones {
    grid-column: 1 / -1;
}

.estado-sincronizacion {
    display: grid;
    gap: 6px;
    padding: 16px;
    border-left: 4px solid #07834d;
    border-radius: 12px;
    background: #edf9f2;
}

.estado-sincronizacion-en-curso,
.estado-sincronizacion-error {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4px 10px;
    align-items: center;
    padding: 14px 16px;
    border-radius: 12px;
}
.estado-sincronizacion-en-curso {
    background: #eef8f3;
    color: #075f3d;
}
.estado-sincronizacion-error {
    background: #fff3f1;
    color: #a52a20;
}
.estado-sincronizacion-en-curso small,
.estado-sincronizacion-error small {
    grid-column: 2;
    overflow-wrap: anywhere;
}
.mini-cargador {
    width: 18px;
    height: 18px;
    border: 3px solid rgba(0, 135, 78, .18);
    border-top-color: #00874e;
    border-radius: 50%;
    animation: giro-sincronizacion .8s linear infinite;
}
.sincronizacion-bloqueada {
    overflow: hidden;
}
.sincronizacion-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    place-items: center;
    padding: 22px;
    background: rgba(3, 33, 27, .72);
    backdrop-filter: blur(12px);
}
.sincronizacion-modal {
    position: relative;
    width: min(680px, 100%);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 28px;
    padding: 30px;
    background: linear-gradient(145deg, #ffffff 0%, #f2fbf6 100%);
    box-shadow: 0 34px 100px rgba(0, 27, 21, .38);
}
.sincronizacion-resplandor {
    position: absolute;
    width: 260px;
    height: 260px;
    right: -100px;
    top: -130px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(19, 183, 105, .22), transparent 68%);
    pointer-events: none;
}
.sincronizacion-modal header {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 18px;
    align-items: center;
}
.sincronizacion-modal header h2 {
    margin: 3px 0 5px;
    color: #073f31;
    font-size: clamp(24px, 4vw, 34px);
}
.sincronizacion-modal header p,
.sincronizacion-modal footer p {
    margin: 0;
    color: #60716b;
    line-height: 1.45;
}
.sincronizacion-etiqueta {
    color: #00874e;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
}
.sincronizacion-emblema {
    position: relative;
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    border-radius: 22px;
    background: linear-gradient(145deg, #009759, #005f43);
    box-shadow: 0 14px 30px rgba(0, 126, 73, .25);
}
.sincronizacion-emblema span,
.sincronizacion-emblema i {
    position: absolute;
    border: 3px solid rgba(255,255,255,.92);
    border-radius: 50%;
}
.sincronizacion-emblema span {
    width: 34px;
    height: 34px;
    border-right-color: transparent;
    animation: giro-sincronizacion 1.1s linear infinite;
}
.sincronizacion-emblema i {
    width: 17px;
    height: 17px;
    border-left-color: transparent;
    animation: giro-sincronizacion .7s linear infinite reverse;
}
.sincronizacion-etapa {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-top: 28px;
    color: #0a4938;
    font-weight: 850;
}
.sincronizacion-etapa strong {
    color: #00874e;
    font-size: 20px;
}
.sincronizacion-barra {
    height: 12px;
    margin-top: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: #dcece4;
}
.sincronizacion-barra i {
    display: block;
    height: 100%;
    min-width: 2%;
    border-radius: inherit;
    background: linear-gradient(90deg, #006f46, #14b56e, #d5b229);
    box-shadow: 0 0 18px rgba(0, 164, 93, .38);
    transition: width .45s ease;
}
.sincronizacion-metricas {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 22px;
}
.sincronizacion-metricas article {
    padding: 14px;
    border: 1px solid #dce9e3;
    border-radius: 16px;
    background: rgba(255,255,255,.82);
}
.sincronizacion-metricas span,
.sincronizacion-tabla span {
    display: block;
    color: #75837e;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.sincronizacion-metricas strong {
    display: block;
    margin-top: 4px;
    color: #073f31;
    font-size: 20px;
}
.sincronizacion-tabla {
    margin-top: 12px;
    padding: 14px 16px;
    border-radius: 16px;
    background: #e8f7ef;
}
.sincronizacion-tabla strong {
    display: block;
    margin-top: 5px;
    color: #075f3d;
    overflow-wrap: anywhere;
}
.sincronizacion-modal footer {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: 20px;
}
.sincronizacion-modal.completada {
    border-color: #78d3a5;
}
.sincronizacion-modal.completada .sincronizacion-emblema {
    background: linear-gradient(145deg, #00a860, #087042);
}
.sincronizacion-modal.fallida {
    border-color: #f0a59e;
    background: linear-gradient(145deg, #fff, #fff3f1);
}
.sincronizacion-modal.fallida .sincronizacion-emblema {
    background: linear-gradient(145deg, #d94a3d, #8e241c);
}
.sincronizacion-modal.completada footer,
.sincronizacion-modal.fallida footer {
    justify-content: flex-end;
}
@keyframes giro-sincronizacion {
    to { transform: rotate(360deg); }
}

.reporte-top-estudiantes {
    display: grid;
    gap: 22px;
}
.top-portada {
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    padding: 26px;
    border-radius: 22px;
    color: #fff;
    background: linear-gradient(125deg, #004d38, #008b50 58%, #c99b28);
    box-shadow: 0 18px 44px rgba(0, 92, 55, .18);
}
.top-portada::after {
    content: "";
    position: absolute;
    width: 280px;
    height: 280px;
    right: -100px;
    top: -150px;
    border-radius: 50%;
    border: 42px solid rgba(255,255,255,.08);
}
.top-portada span {
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .13em;
}
.top-portada h3 {
    margin: 5px 0;
    font-size: clamp(28px, 4vw, 42px);
}
.top-portada p {
    margin: 0;
    max-width: 720px;
    color: rgba(255,255,255,.82);
}
.top-portada > strong {
    position: relative;
    z-index: 1;
    padding: 12px 18px;
    border: 1px solid rgba(255,255,255,.32);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    white-space: nowrap;
}
.top-podio-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: end;
    padding-top: 18px;
}
.top-podio {
    position: relative;
    overflow: hidden;
    min-height: 255px;
    padding: 25px 20px;
    text-align: center;
    border: 1px solid #cfe4d9;
    border-radius: 24px;
    background: linear-gradient(155deg, #fff, #eff9f3);
    box-shadow: 0 16px 38px rgba(12, 61, 44, .10);
    animation: entrada-top .7s cubic-bezier(.2,.8,.2,1) both;
    animation-delay: var(--retraso);
}
.top-podio.top-1 {
    order: 2;
    min-height: 315px;
    border-color: #e4c154;
    background: linear-gradient(155deg, #fffdf2, #f6dda0);
}
.top-podio.top-2 {
    order: 1;
    min-height: 275px;
}
.top-podio.top-3 {
    order: 3;
    min-height: 245px;
    border-color: #dfb38d;
    background: linear-gradient(155deg, #fffaf6, #efd0b5);
}
.top-medalla {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    margin: 0 auto 12px;
    border-radius: 50%;
    color: #fff;
    font-size: 25px;
    font-weight: 950;
    background: linear-gradient(145deg, #00a35d, #00643f);
    box-shadow: 0 10px 22px rgba(0, 118, 68, .24);
}
.top-1 .top-medalla {
    background: linear-gradient(145deg, #e6b823, #9d6e00);
    animation: pulso-top 1.8s ease-in-out infinite;
}
.top-posicion {
    color: #6d7d76;
    font-size: 10px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .1em;
}
.top-podio h3 {
    margin: 8px 0 4px;
    color: #063f30;
    font-size: 19px;
}
.top-podio p {
    min-height: 38px;
    margin: 0;
    color: #697871;
    font-size: 12px;
}
.top-podio > strong {
    display: block;
    margin: 15px 0;
    color: #007444;
    font-size: 42px;
    line-height: 1;
}
.top-indicadores {
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}
.top-indicadores span {
    padding: 7px 9px;
    border-radius: 999px;
    color: #5d7067;
    background: rgba(255,255,255,.72);
    font-size: 10px;
}
.top-ranking-lista {
    display: grid;
    gap: 8px;
}
.top-ranking-lista article {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 90px 110px;
    gap: 14px;
    align-items: center;
    padding: 14px 18px;
    border: 1px solid #dbe8e2;
    border-radius: 16px;
    background: #fff;
    animation: entrada-top .55s ease both;
    animation-delay: var(--retraso);
}
.top-ranking-lista article > b {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    color: #007647;
    background: #e8f7ef;
}
.top-ranking-lista article div strong,
.top-ranking-lista article div span {
    display: block;
}
.top-ranking-lista article div span,
.top-ranking-lista article small {
    color: #74817b;
    font-size: 11px;
}
.top-ranking-lista article em {
    color: #006f43;
    font-size: 22px;
    font-style: normal;
    font-weight: 950;
    text-align: right;
}
@keyframes entrada-top {
    from { opacity: 0; transform: translateY(24px) scale(.98); }
    to { opacity: 1; transform: none; }
}
@keyframes pulso-top {
    50% { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(184, 132, 0, .32); }
}

@media (max-width: 760px) {
    .panel-configuracion-operativa .formulario-grid {
        grid-template-columns: 1fr;
    }
    .sincronizacion-modal {
        padding: 22px 18px;
        border-radius: 22px;
    }
    .sincronizacion-modal header {
        grid-template-columns: 1fr;
    }
    .sincronizacion-emblema {
        width: 58px;
        height: 58px;
        border-radius: 18px;
    }
    .sincronizacion-metricas {
        grid-template-columns: 1fr;
    }
    .top-portada {
        align-items: flex-start;
        flex-direction: column;
    }
    .top-podio-grid {
        grid-template-columns: 1fr;
    }
    .top-podio.top-1,
    .top-podio.top-2,
    .top-podio.top-3 {
        order: initial;
        min-height: 0;
    }
    .top-ranking-lista article {
        grid-template-columns: 42px minmax(0, 1fr) 64px;
    }
    .top-ranking-lista article small {
        display: none;
    }
}

.selector-fecha-participacion {
    display: flex;
    align-items: end;
    gap: 12px;
    flex-wrap: wrap;
    margin: 10px 0 12px;
    padding: 12px;
    border: 1px solid var(--linea);
    border-radius: 8px;
    background: #f7fbf9;
}
.selector-fecha-participacion label { min-width: 260px; max-width: 360px; }
.aviso-fecha-activa,
.aviso-fecha-bloqueada {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    border-radius: 8px;
    padding: 8px 11px;
    font-size: 12px;
    font-weight: 900;
}
.aviso-fecha-activa { color: var(--verde-oscuro); background: #eaf8f1; border: 1px solid rgba(0,132,61,.18); }
.aviso-fecha-bloqueada { color: #8a4d00; background: #fff2d7; border: 1px solid rgba(217,164,65,.34); }
.fila-participacion-bloqueada { background: #faf7f2; }
.fila-participacion-bloqueada input:disabled { opacity: .55; cursor: not-allowed; }
.reporte-reprobacion {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto;
    gap: 10px 14px;
    align-items: center;
    margin: 10px 0 12px;
    padding: 12px;
    border: 1px solid rgba(180,35,24,.22);
    border-radius: 8px;
    background: #fff7f5;
}
.reporte-reprobacion.ok { border-color: rgba(0,132,61,.18); background: #f4fff8; }
.reporte-reprobacion strong,
.reporte-reprobacion span { display: block; }
.reporte-reprobacion span { color: var(--muted); font-size: 12px; font-weight: 800; }
.reporte-reprobacion button {
    border: 1px solid rgba(180,35,24,.25);
    border-radius: 8px;
    background: #b42318;
    color: #fff;
    padding: 9px 12px;
    font-weight: 900;
    cursor: pointer;
}
.reporte-reprobacion > div:last-child { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.reporte-reprobacion > div:last-child span { border: 1px solid rgba(180,35,24,.18); border-radius: 999px; background: #fff; color: var(--tinta); padding: 5px 8px; }
.detalle-resumen-plegable {
    grid-column: 1 / -1;
    border-top: 1px solid var(--linea);
    padding-top: 8px;
}
.detalle-resumen-plegable summary {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid rgba(0,132,61,.24);
    border-radius: 8px;
    background: #f2fff8;
    color: var(--azul);
    padding: 7px 10px;
    cursor: pointer;
    font-weight: 900;
    list-style: none;
}
.detalle-resumen-plegable summary::-webkit-details-marker { display: none; }
.detalle-resumen-plegable[open] summary span { transform: rotate(45deg); }
@media (max-width: 760px) {
    .reporte-reprobacion { grid-template-columns: 1fr; }
    .selector-fecha-participacion label { max-width: none; width: 100%; }
}

/* Modulo Notas: filtros nativos, rapidos y legibles */
.panel-notas .filtros-notas {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) 112px 88px minmax(150px, .9fr) minmax(160px, 1fr) minmax(135px, .8fr) minmax(132px, .75fr) minmax(132px, .75fr) 48px;
    gap: 8px;
    align-items: end;
    overflow-x: auto;
    padding: 10px 12px;
}
.panel-notas .filtros-notas label {
    min-width: 0;
    display: grid;
    gap: 4px;
}
.panel-notas .filtros-notas label > span {
    text-align: left;
    font-size: 10px;
    line-height: 1.1;
}
.panel-notas .filtros-notas input,
.panel-notas .filtros-notas select,
.panel-notas .select-nativo-notas {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 8px 10px;
    border: 1px solid #cfdde5;
    border-radius: 8px;
    background: #fff;
    color: var(--tinta);
    font-size: 13px;
    font-weight: 850;
    overflow: hidden;
    text-overflow: ellipsis;
}
.panel-notas .filtros-notas .filtro-busqueda {
    order: 0;
    width: 100%;
}
.panel-notas .filtros-notas > .icono-boton {
    width: 42px;
    height: 42px;
    min-width: 42px;
    border-radius: 8px;
    align-self: end;
}
.panel-notas .selector-busqueda { display: none !important; }
.panel-notas select.selector-nativo-busqueda,
.panel-notas select.select-nativo-notas {
    display: block !important;
    position: static !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}
.datatable-barra select.select-nativo-notas,
.datatable-barra select.selector-nativo-busqueda {
    width: 76px;
    min-width: 76px;
}
@media (max-width: 980px) {
    .panel-notas .filtros-notas {
        grid-template-columns: minmax(220px, 1fr) repeat(4, minmax(118px, 1fr));
    }
}
/* Correccion critica Notas: filtros visibles, vinculados y compactos */
.panel-notas .filtros-notas {
    grid-template-columns: minmax(220px, 1.6fr) repeat(auto-fit, minmax(118px, 1fr)) !important;
    overflow: visible !important;
    align-items: end;
    row-gap: 8px;
}
.panel-notas .filtros-notas .filtro-busqueda {
    grid-column: span 2;
}
.panel-notas .filtros-notas label:has(#filtro-nota-min),
.panel-notas .filtros-notas label:has(#filtro-nota-max) {
    max-width: 96px;
}
.panel-notas .filtros-notas select,
.panel-notas .filtros-notas input {
    height: 40px !important;
    max-width: 100%;
    white-space: nowrap;
}
.panel-notas .filtros-notas .selector-busqueda {
    display: none !important;
}
.panel-notas .filtros-notas select.select-nativo-notas,
.panel-notas .datatable-barra select.select-nativo-notas {
    display: inline-block !important;
    visibility: visible !important;
}
.panel-notas .datatable-barra {
    gap: 10px;
    flex-wrap: wrap;
}
.panel-notas .datatable-barra select {
    height: 40px !important;
    padding: 7px 28px 7px 10px;
}
@media (max-width: 900px) {
    .panel-notas .filtros-notas {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .panel-notas .filtros-notas .filtro-busqueda {
        grid-column: 1 / -1;
    }
    .panel-notas .filtros-notas label:has(#filtro-nota-min),
    .panel-notas .filtros-notas label:has(#filtro-nota-max) {
        max-width: none;
    }
}
/* Correccion menu lateral: indicadores sin mojibake */
.menu-zona::after {
    content: "-" !important;
    font-family: Arial, sans-serif;
    font-weight: 900;
}
.menu-zona.colapsado::after {
    content: "+" !important;
}
/* Correccion detalles compactos: indicador sin mojibake */
.detalle-bloque-compacto[open] summary::before {
    content: "-" !important;
    font-family: Arial, sans-serif;
    font-weight: 900;
}
/* EVACUR premium refresh: asistencia + cumpleanos */
.panel-asistencia.asistencia-premium,
.panel-cumpleanos.cumpleanos-premium {
    background: linear-gradient(135deg, rgba(240,253,244,.98), rgba(255,255,255,.96) 46%, rgba(255,251,235,.92));
    border: 1px solid rgba(15,118,110,.20);
    box-shadow: 0 22px 60px rgba(15, 65, 70, .13);
}
.asistencia-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(15, 118, 110, .16);
}
.asistencia-hero small,
.cumpleanos-premium header small {
    display: block;
    color: #0f766e;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.asistencia-hero h2,
.cumpleanos-premium header h2 {
    margin: 4px 0 5px;
    color: #0f2f2f;
    font-size: 28px;
    line-height: 1.05;
}
.asistencia-hero p,
.cumpleanos-premium header p { max-width: 760px; color: #50606c; font-weight: 700; }
.asistencia-acciones-principales { flex-shrink: 0; }
.asistencia-banda {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    align-items: center;
    margin: 16px 0;
    padding: 12px 14px;
    border: 1px solid rgba(194, 139, 30, .28);
    border-radius: 8px;
    background: linear-gradient(90deg, rgba(255,248,220,.92), rgba(236,253,245,.72));
    color: #36515a;
    font-weight: 800;
}
.asistencia-banda strong { color: #8a5a00; }
.asistencia-banda span { padding: 5px 9px; border-radius: 999px; background: #fff; border: 1px solid rgba(194,139,30,.22); }
.asistencia-layout-barras {
    display: grid;
    grid-template-columns: minmax(0, 1.8fr) minmax(260px, .78fr);
    gap: 14px;
    align-items: stretch;
    margin-bottom: 16px;
}
.asistencia-barra {
    border: 1px solid rgba(15,118,110,.18);
    border-radius: 8px;
    background: rgba(255,255,255,.82);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.asistencia-barra.filtros {
    display: grid;
    grid-template-columns: minmax(220px, 1.35fr) repeat(3, minmax(160px, .82fr)) auto;
    gap: 10px;
    padding: 12px;
    align-items: end;
}
.asistencia-barra.exportacion {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 12px;
}
.barra-titulo {
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-self: center;
}
.asistencia-barra.filtros .barra-titulo { grid-column: 1 / -1; }
.barra-titulo strong { color: #063f32; font-size: 14px; text-transform: uppercase; }
.barra-titulo span { color: #64748b; font-size: 12px; font-weight: 700; }
.asistencia-barra label { display: grid; gap: 6px; margin: 0; }
.asistencia-barra label > span { color: #064b35; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.asistencia-barra input,
.asistencia-barra select,
.cumpleanos-premium input,
.cumpleanos-premium select {
    width: 100%;
    height: 44px;
    border-radius: 8px;
    border: 1px solid #bfd5d2;
    background: #fff;
    color: #17212b;
    font-weight: 800;
    padding: 0 12px;
}
.asistencia-barra input:focus,
.asistencia-barra select:focus,
.cumpleanos-premium input:focus,
.cumpleanos-premium select:focus {
    outline: 3px solid rgba(15,118,110,.16);
    border-color: #0f766e;
}
.asistencia-barra .limpiar-asistencia { height: 44px; align-self: end; white-space: nowrap; }
.resumen-asistencia-premium {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 12px;
}
.resumen-asistencia-premium article {
    min-height: 86px;
    border-radius: 8px;
    border: 1px solid #d7e6e4;
    background: #fff;
    padding: 13px 14px;
    border-top: 5px solid #0f766e;
}
.resumen-asistencia-premium article.ok { border-top-color: #059669; }
.resumen-asistencia-premium article.warn { border-top-color: #d97706; }
.resumen-asistencia-premium article.bad { border-top-color: #dc2626; }
.resumen-asistencia-premium article.info { border-top-color: #2563eb; }
.resumen-asistencia-premium small { color: #64748b; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.resumen-asistencia-premium strong { display: block; color: #0f172a; font-size: 30px; line-height: 1.05; margin-top: 5px; }
.resumen-asistencia-premium span { color: #64748b; font-weight: 800; font-size: 12px; }
.asistencia-fechas { margin-bottom: 12px; }
.asistencia-fechas .fecha-tab {
    border-radius: 8px;
    border: 1px solid #d6e3e1;
    background: #fff;
    color: #14313a;
}
.asistencia-fechas .fecha-tab.activa { background: #047857; color: #fff; border-color: #047857; }
.asistencia-fechas .fecha-tab.feriado { background: #fff7ed; color: #8a4b0a; border-color: #f5c16c; }
.asistencia-fechas .fecha-tab.feriado.activa { background: #b45309; color: #fff; border-color: #b45309; }
.aviso-feriado-asistencia {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin: 0 0 12px;
    padding: 13px 15px;
    border-radius: 8px;
    border: 1px solid #f3c675;
    background: #fff7ed;
    color: #7c3d00;
    font-weight: 850;
}
.asistencia-tabla-scroll { max-height: calc(100vh - 455px); overflow: auto; }
.tabla-asistencia-premium { min-width: 1080px; }
.tabla-asistencia-premium th {
    background: #dff3eb;
    color: #073b34;
    font-size: 11px;
    text-transform: uppercase;
}
.tabla-asistencia-premium tbody tr:nth-child(even) { background: #fbfefd; }
.tabla-asistencia-premium tbody tr:hover { background: #eefbf5; }
.tabla-asistencia-premium td { vertical-align: middle; }
.tabla-asistencia-premium .asistencia-estado,
.tabla-asistencia-premium .asistencia-observacion {
    width: 100%;
    min-height: 38px;
    border-radius: 8px;
    border: 1px solid #cbd5df;
    background: #fff;
    padding: 0 10px;
    font-weight: 850;
}
.tabla-asistencia-premium .asistencia-estado.presente { border-color: #059669; background: #ecfdf5; color: #047857; }
.tabla-asistencia-premium .asistencia-estado.tarde { border-color: #d97706; background: #fff7ed; color: #92400e; }
.tabla-asistencia-premium .asistencia-estado.falto { border-color: #dc2626; background: #fef2f2; color: #991b1b; }
.tabla-asistencia-premium .asistencia-estado.justificado { border-color: #2563eb; background: #eff6ff; color: #1d4ed8; }
.asistencia-vacio { border-style: solid; background: #fff; }
.cumpleanos-premium .filtros-cumpleanos {
    display: grid;
    grid-template-columns: minmax(180px, .35fr) minmax(260px, .65fr);
    gap: 12px;
    align-items: end;
    background: rgba(255,255,255,.86);
    border: 1px solid rgba(15,118,110,.18);
    border-radius: 8px;
    padding: 12px;
}
.cumpleanos-premium .tarjeta-cumpleanos {
    border-radius: 8px;
    border: 1px solid rgba(15,118,110,.18);
    background: linear-gradient(135deg, #ffffff, #f7fffb 58%, #fff8df);
    box-shadow: 0 16px 34px rgba(15,65,70,.10);
}
.cumpleanos-premium .cumpleanos-medalla { background: linear-gradient(135deg, #047857, #d6a539); }
.cumpleanos-premium .acciones-cumpleanos .boton-principal,
.cumpleanos-premium .acciones-cumpleanos .boton-secundario { min-height: 38px; display: inline-flex; align-items: center; }
@media (max-width: 1100px) {
    .asistencia-layout-barras { grid-template-columns: 1fr; }
    .asistencia-barra.filtros { grid-template-columns: 1fr 1fr; }
    .resumen-asistencia-premium { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .asistencia-hero { flex-direction: column; }
    .asistencia-barra.filtros,
    .cumpleanos-premium .filtros-cumpleanos { grid-template-columns: 1fr; }
    .resumen-asistencia-premium { grid-template-columns: 1fr; }
}

/* EVACUR asistencia ultra premium refresh - observaciones */
.panel-asistencia.asistencia-ultra {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #f7fffb 0%, #ffffff 42%, #fff8e6 100%);
    border: 1px solid rgba(4, 120, 87, .24);
    box-shadow: 0 26px 70px rgba(9, 49, 45, .16);
}
.panel-asistencia.asistencia-ultra::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5px;
    background: linear-gradient(90deg, #006b4a, #0ea5a3, #d6a539, #0f766e);
}
.asistencia-ultra .asistencia-hero {
    padding-top: 8px;
}
.asistencia-ultra .asistencia-hero h2 {
    font-size: 32px;
    color: #062f2a;
}
.asistencia-ultra .asistencia-hero p {
    margin-top: 6px;
    color: #4b5f62;
}
.boton-solo-icono {
    position: relative;
    display: inline-grid !important;
    place-items: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0 !important;
    border-radius: 8px !important;
    font-size: 19px;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
}
.boton-solo-icono span { pointer-events: none; }
.boton-solo-icono::after {
    content: attr(data-tooltip);
    position: absolute;
    z-index: 30;
    left: 50%;
    bottom: calc(100% + 10px);
    transform: translateX(-50%) translateY(4px);
    max-width: 230px;
    min-width: max-content;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid rgba(6, 78, 59, .18);
    background: #062f2a;
    color: #fff;
    box-shadow: 0 14px 34px rgba(6, 47, 42, .22);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.25;
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
}
.boton-solo-icono:hover::after,
.boton-solo-icono:focus-visible::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.asistencia-ultra .asistencia-banda.ultra {
    border-color: rgba(214, 165, 57, .35);
    background: linear-gradient(90deg, #fff8dd, #f1fff7 54%, #eefcff);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
.asistencia-ultra .asistencia-layout-barras {
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 12px;
}
.asistencia-ultra .asistencia-barra {
    background: rgba(255,255,255,.90);
    border-color: rgba(7, 89, 74, .20);
    box-shadow: 0 12px 34px rgba(15, 65, 70, .08);
}
.asistencia-ultra .asistencia-barra.filtros {
    grid-template-columns: minmax(230px, 1.3fr) minmax(210px, 1fr) minmax(210px, 1fr) minmax(140px, .72fr) 48px;
}
.asistencia-ultra .asistencia-barra.exportacion {
    align-content: start;
}
.exportacion-iconos {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.asistencia-mapa-academico {
    margin: 0 0 12px;
    border: 1px solid rgba(6, 78, 59, .18);
    border-radius: 8px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 14px 36px rgba(7, 55, 48, .08);
}
.asistencia-mapa-academico > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid rgba(6, 78, 59, .12);
}
.asistencia-mapa-academico > header strong,
.asistencia-mapa-academico > header span {
    display: block;
}
.asistencia-mapa-academico > header strong {
    color: #062f2a;
    font-size: 14px;
    text-transform: uppercase;
}
.asistencia-mapa-academico > header span {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}
.ayuda-mapa[onclick=""] { cursor: help; }
.mapa-academico-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
    gap: 8px;
    padding: 12px;
}
.mapa-fecha {
    position: relative;
    min-height: 88px;
    border: 1px solid #d7e6e1;
    border-radius: 8px;
    background: linear-gradient(160deg, #ffffff, #f6fffb);
    color: #12333a;
    cursor: pointer;
    text-align: left;
    padding: 9px 10px;
    transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.mapa-fecha:hover {
    transform: translateY(-2px);
    border-color: #0f766e;
    box-shadow: 0 12px 26px rgba(15, 118, 110, .12);
}
.mapa-fecha.activa {
    border-color: #047857;
    background: linear-gradient(160deg, #047857, #0f766e);
    color: #fff;
    box-shadow: 0 12px 28px rgba(4, 120, 87, .24);
}
.mapa-fecha.feriado {
    border-color: #f0bd5d;
    background: linear-gradient(160deg, #fff8e7, #fff1c7);
    color: #7a4300;
}
.mapa-fecha.feriado.activa {
    background: linear-gradient(160deg, #b45309, #d97706);
    color: #fff;
}
.mapa-fecha span,
.mapa-fecha strong,
.mapa-fecha small,
.mapa-fecha em {
    display: block;
}
.mapa-fecha span {
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .03em;
    opacity: .78;
}
.mapa-fecha strong {
    margin: 3px 0;
    font-size: 15px;
}
.mapa-fecha small {
    font-size: 11px;
    font-weight: 900;
    opacity: .86;
}
.mapa-fecha em {
    margin-top: 5px;
    color: inherit;
    font-size: 10px;
    font-style: normal;
    font-weight: 950;
}
.mapa-fecha b {
    position: absolute;
    top: 7px;
    right: 7px;
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(255,255,255,.72);
    color: #9a4c00;
    font-size: 11px;
}
.asistencia-ultra .resumen-asistencia-premium article {
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15, 65, 70, .08);
}
.asistencia-ultra .tabla-asistencia-premium th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: #cfeee1;
}
@media (max-width: 1120px) {
    .asistencia-ultra .asistencia-layout-barras,
    .asistencia-ultra .asistencia-barra.filtros {
        grid-template-columns: 1fr 1fr;
    }
    .asistencia-ultra .asistencia-barra.exportacion { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
    .asistencia-ultra .asistencia-layout-barras,
    .asistencia-ultra .asistencia-barra.filtros { grid-template-columns: 1fr; }
    .mapa-academico-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .boton-solo-icono::after { left: auto; right: 0; transform: translateY(4px); }
    .boton-solo-icono:hover::after,
    .boton-solo-icono:focus-visible::after { transform: translateY(0); }
}

/* EVACUR fixes 2026-07-06: login visibility, security switch, table columns */
.login-clave-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}
.login-clave-wrapper input {
    width: 100%;
    padding-right: 48px !important;
}
.boton-ver-login-clave {
    position: absolute;
    right: 8px;
    width: 36px;
    height: 36px;
    border: 1px solid #c9ddd7;
    border-radius: 8px;
    background: #fff;
    color: #064b35;
    font-weight: 950;
    cursor: pointer;
}
.boton-ver-login-clave:hover,
.boton-ver-login-clave.activo {
    background: #064b35;
    color: #fff;
}
.panel-seguridad-login {
    border-top: 5px solid #0f766e;
}
.seguridad-switch-form {
    grid-template-columns: 1fr;
}
.switch-configuracion {
    display: grid !important;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 14px;
    border: 1px solid #cfe2dc;
    border-radius: 8px;
    background: #fff;
}
.switch-configuracion input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.switch-configuracion span {
    position: relative;
    width: 52px;
    height: 30px;
    border-radius: 999px;
    background: #d7e3df;
    box-shadow: inset 0 0 0 1px #c3d3ce;
}
.switch-configuracion span::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 7px rgba(0,0,0,.18);
    transition: transform .18s ease;
}
.switch-configuracion input:checked + span {
    background: #00843d;
}
.switch-configuracion input:checked + span::after {
    transform: translateX(22px);
}
.switch-configuracion strong {
    color: #0f2f2f;
    font-size: 14px;
}
.boton-columnas-global {
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 8px;
    margin-left: 6px;
}
.tarjeta-cumpleanos .acciones-cumpleanos .boton-principal,
.tarjeta-cumpleanos .acciones-cumpleanos .boton-secundario {
    min-width: 82px;
    justify-content: center;
    text-decoration: none;
}

/* EVACUR asistencia final funcional - 2026-07 */
.panel-asistencia.asistencia-final {
    border: 1px solid rgba(14, 116, 144, .18);
    background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(240,253,250,.88) 48%, rgba(255,251,235,.62));
    box-shadow: 0 18px 48px rgba(15, 23, 42, .10);
}
.asistencia-final-cabecera {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(15, 118, 110, .14);
}
.asistencia-final-cabecera small { color: #557181; font-weight: 900; }
.asistencia-final-cabecera h2 { margin: 4px 0 0; color: #063f32; font-size: 1.7rem; }
.asistencia-final-acciones,
.asistencia-final-exportar {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.asistencia-final-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    padding: 16px 18px 10px;
}
.asistencia-final-filtros,
.asistencia-final-exportar {
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 10px;
    background: rgba(255,255,255,.82);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.asistencia-final-filtros {
    display: grid;
    grid-template-columns: minmax(220px, 1.35fr) repeat(3, minmax(170px, 1fr)) auto;
    gap: 12px;
    align-items: end;
    padding: 14px;
}
.asistencia-final-filtros .barra-titulo,
.asistencia-final-exportar .barra-titulo {
    grid-column: 1 / -1;
    display: flex;
    align-items: baseline;
    gap: 10px;
    color: #083f32;
}
.asistencia-final-exportar {
    min-width: 230px;
    justify-content: flex-end;
    padding: 14px;
}
.asistencia-final .boton-solo-icono {
    width: 46px;
    min-width: 46px;
    height: 46px;
    border-radius: 10px;
    font-size: 1.05rem;
    font-weight: 950;
}
.asistencia-final .boton-peligro {
    background: #b91c1c;
    color: #fff;
    border-color: #991b1b;
}
.asistencia-final-resumen {
    padding: 10px 18px 0;
}
.asistencia-final .asistencia-mapa-academico {
    margin: 16px 18px;
    border-radius: 10px;
}
.asistencia-final-tabla {
    margin: 0 18px 14px;
    border-radius: 10px;
    max-height: 54vh;
}
.asistencia-final-tabla table {
    min-width: 1180px;
}
.asistencia-final-tabla th {
    position: sticky;
    top: 0;
    z-index: 2;
}
.asistencia-final-tabla td {
    vertical-align: middle;
}
.asistencia-final-tabla .asistencia-estado,
.asistencia-final-tabla .asistencia-observacion {
    width: 100%;
    min-height: 42px;
    border-radius: 8px;
}
.riesgo-asistencia {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-width: 128px;
}
.riesgo-asistencia span {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 10px;
    border-radius: 999px;
    background: #eefaf3;
    color: #0f5132;
    font-weight: 900;
    font-size: .8rem;
    white-space: nowrap;
}
.riesgo-asistencia.alto span {
    background: #fff1f2;
    color: #9f1239;
}
.asistencia-final .data-table-controles {
    margin-left: 18px;
    margin-right: 18px;
}
@media (max-width: 1180px) {
    .asistencia-final-toolbar { grid-template-columns: 1fr; }
    .asistencia-final-exportar { justify-content: flex-start; min-width: 0; }
    .asistencia-final-filtros { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; }
    .asistencia-final-filtros .filtro-busqueda { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
    .asistencia-final-cabecera { align-items: flex-start; flex-direction: column; }
    .asistencia-final-filtros { grid-template-columns: 1fr; }
    .asistencia-final .boton-solo-icono { width: 42px; min-width: 42px; height: 42px; }
}
/* EVACUR asistencia compacta sin textos largos - 2026-07 */
.asistencia-final .selector-busqueda-texto,
.asistencia-final select,
.asistencia-final input,
.contexto-asistencia-compacto {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.asistencia-final-filtros {
    grid-template-columns: minmax(170px, .95fr) minmax(110px, .55fr) minmax(150px, .65fr) minmax(105px, .45fr) auto;
}
.asistencia-final-filtros label > span {
    font-size: .68rem;
    letter-spacing: .01em;
}
.asistencia-final .selector-busqueda-control,
.asistencia-final .select-premium-nativo,
.asistencia-final-filtros input {
    min-height: 42px;
    padding: 8px 10px;
    font-size: .92rem;
}
.asistencia-final .data-table-controles {
    grid-template-columns: auto auto minmax(170px, 1fr) auto;
    gap: 10px;
}
.contexto-asistencia-compacto {
    justify-self: start;
    max-width: min(360px, 42vw);
    padding: 9px 12px;
}
.asistencia-final-tabla table {
    min-width: 1040px;
}
.asistencia-final-tabla th,
.asistencia-final-tabla td {
    padding: 7px 10px;
}
.asistencia-final-tabla td:nth-child(5) {
    width: 130px;
}
.asistencia-final-tabla td:nth-child(6) {
    width: 170px;
}
.asistencia-final-tabla td:nth-child(7) {
    width: 104px;
}
.asistencia-final-tabla .asistencia-estado {
    min-height: 38px;
    padding: 6px 8px;
    font-size: .9rem;
    font-weight: 900;
}
.asistencia-final-tabla .asistencia-observacion {
    min-height: 38px;
    padding: 6px 9px;
    font-size: .86rem;
    font-weight: 800;
}
.riesgo-asistencia {
    min-width: 72px;
    justify-content: flex-end;
}
.riesgo-asistencia span {
    width: 34px;
    justify-content: center;
    padding: 0;
}
.riesgo-asistencia.alto span::after {
    content: '';
}
@media (max-width: 1180px) {
    .asistencia-final-filtros { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; }
    .contexto-asistencia-compacto { max-width: 52vw; }
}
@media (max-width: 720px) {
    .asistencia-final .data-table-controles { grid-template-columns: 1fr auto; }
    .contexto-asistencia-compacto { grid-column: 1 / -1; max-width: 100%; }
}
/* EVACUR asistencia visual funcional - 2026-07 */
.asistencia-operacion-compacta {
    display: grid;
    grid-template-columns: minmax(360px, .82fr) minmax(420px, 1.18fr);
    gap: 12px;
    align-items: stretch;
    margin: 12px 18px;
}
.asistencia-operacion-compacta .asistencia-final-resumen {
    padding: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(86px, 1fr));
    gap: 8px;
}
.asistencia-operacion-compacta .resumen-asistencia-premium article {
    min-height: 78px;
    padding: 12px;
}
.asistencia-operacion-compacta .resumen-asistencia-premium strong {
    font-size: 1.75rem;
}
.asistencia-final .asistencia-mapa-academico {
    margin: 0;
    min-height: 0;
}
.asistencia-final .asistencia-mapa-academico header {
    padding: 10px 12px;
}
.asistencia-final .asistencia-mapa-academico header span {
    display: none;
}
.asistencia-final .mapa-academico-grid {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 10px 12px 12px;
    scroll-snap-type: x proximity;
}
.asistencia-final .mapa-fecha {
    flex: 0 0 96px;
    min-height: 78px;
    padding: 9px 10px;
    scroll-snap-align: start;
}
.asistencia-final .mapa-fecha strong {
    font-size: 1.05rem;
}
.asistencia-final .mapa-fecha em {
    font-size: .68rem;
}
.asistencia-final .data-table-controles {
    display: grid;
    grid-template-columns: auto auto minmax(180px, 1fr) auto auto;
    align-items: center;
    padding: 10px 14px;
    gap: 10px;
}
.asistencia-final .boton-columnas-asistencia {
    order: 4;
}
.asistencia-final .paginacion-tabla {
    order: 5;
}
.contexto-asistencia-compacto {
    max-width: min(420px, 46vw);
    justify-self: start;
}
.asistencia-final-tabla {
    margin-top: 10px;
    max-height: 60vh;
    background: #fff;
}
.asistencia-final-tabla table.tabla-asistencia-operativa {
    min-width: 1120px;
    table-layout: fixed;
}
.tabla-asistencia-operativa th[data-columna="n"],
.tabla-asistencia-operativa td[data-columna="n"] { width: 58px; text-align: center; }
.tabla-asistencia-operativa th[data-columna="codigo"],
.tabla-asistencia-operativa td[data-columna="codigo"] { width: 140px; }
.tabla-asistencia-operativa th[data-columna="estudiante"],
.tabla-asistencia-operativa td[data-columna="estudiante"] { width: 270px; }
.tabla-asistencia-operativa th[data-columna="grupo"],
.tabla-asistencia-operativa td[data-columna="grupo"] { width: 130px; }
.tabla-asistencia-operativa th[data-columna="asistencia"],
.tabla-asistencia-operativa td[data-columna="asistencia"] { width: 190px; }
.tabla-asistencia-operativa th[data-columna="observacion"],
.tabla-asistencia-operativa td[data-columna="observacion"] { width: 250px; }
.tabla-asistencia-operativa th[data-columna="riesgo"],
.tabla-asistencia-operativa td[data-columna="riesgo"] { width: 150px; }
.tabla-asistencia-operativa td[data-columna="estudiante"] strong,
.tabla-asistencia-operativa td[data-columna="estudiante"] {
    line-height: 1.25;
}
.tabla-asistencia-operativa .asistencia-estado,
.tabla-asistencia-operativa .asistencia-observacion {
    width: 100%;
    min-height: 42px;
    border-radius: 9px;
    font-size: .95rem;
    font-weight: 850;
}
.tabla-asistencia-operativa .asistencia-observacion {
    font-weight: 750;
    color: #25313d;
}
.tabla-asistencia-operativa .riesgo-asistencia {
    min-width: 0;
    justify-content: flex-start;
}
.tabla-asistencia-operativa .riesgo-asistencia span {
    width: auto;
    min-width: 34px;
    padding: 0 10px;
}
.tabla-asistencia-operativa .riesgo-asistencia.alto span {
    min-width: 72px;
}
@media (max-width: 1280px) {
    .asistencia-operacion-compacta { grid-template-columns: 1fr; }
    .asistencia-operacion-compacta .asistencia-final-resumen { grid-template-columns: repeat(5, minmax(70px, 1fr)); }
}
@media (max-width: 760px) {
    .asistencia-operacion-compacta { margin: 10px; }
    .asistencia-operacion-compacta .asistencia-final-resumen { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .asistencia-final .data-table-controles { grid-template-columns: 1fr auto auto; }
    .asistencia-final .paginacion-tabla { grid-column: 1 / -1; justify-content: flex-start; }
}
/* EVACUR sync protected academic data - 2026-07 */
.sync-protegida-local .aviso-sync-protegida {
    margin: 12px 0;
    padding: 12px 14px;
    border: 1px solid rgba(4,120,87,.26);
    border-left: 5px solid #047857;
    border-radius: 10px;
    background: #ecfdf5;
    color: #0f3f2f;
    display: grid;
    gap: 4px;
}
.sync-protegida-local .aviso-sync-protegida strong {
    font-size: .88rem;
    text-transform: uppercase;
    letter-spacing: .02em;
}
.sync-protegida-local .aviso-sync-protegida span {
    color: #334155;
    font-weight: 750;
    line-height: 1.35;
}
.sync-academica-segura {
    border-color: rgba(13, 148, 136, .26);
    background: linear-gradient(135deg, #ffffff 0%, #f0fdfa 100%);
}
.sync-academica-segura .reglas-sync-academica {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 12px 0;
}
.sync-academica-segura .reglas-sync-academica span {
    border: 1px solid rgba(15, 118, 110, .2);
    border-radius: 10px;
    background: rgba(255,255,255,.82);
    padding: 10px 12px;
    color: #334155;
    font-weight: 750;
    line-height: 1.35;
}
.sync-academica-segura .reglas-sync-academica strong {
    display: block;
    color: #064e3b;
    font-size: .78rem;
    text-transform: uppercase;
}
.sync-academica-segura .acciones-sync-academica {
    display: grid;
    grid-template-columns: repeat(3, minmax(88px, 1fr));
    gap: 10px;
}
.sync-academica-segura .acciones-sync-academica button {
    min-height: 44px;
}
@media (max-width: 760px) {
    .sync-academica-segura .reglas-sync-academica,
    .sync-academica-segura .acciones-sync-academica {
        grid-template-columns: 1fr;
    }
}
.sync-academica-segura .acciones-sync-academica button[aria-label] {
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 1;
}
/* Registro de notas: interfaz compacta orientada al ingreso rapido */
.panel-notas { padding: 10px !important; }
.panel-notas .cabecera-notas { min-height: 0; margin-bottom: 6px; padding: 6px 4px 8px; align-items: center; }
.panel-notas .cabecera-notas h2 { margin: 2px 0 0; font-size: 1.25rem; }
.panel-notas .cabecera-notas .etiqueta-premium, .panel-notas .cabecera-notas .estado-autoguardado { display: none; }
.panel-notas .acciones-notas-principales { gap: 5px; }
.panel-notas .acciones-notas-principales button { min-height: 36px; padding: 6px 10px; }
.panel-notas .contexto-notas-rapido { border: 1px solid #d9e6df; border-radius: 10px; background: linear-gradient(90deg,#f4fcf8,#fffdf6); padding: 7px; }
.panel-notas .filtros-contexto-notas { display: grid !important; grid-template-columns: 170px minmax(240px,1fr) auto !important; gap: 7px !important; padding: 0 !important; overflow: visible !important; }
.panel-notas .filtros-contexto-notas input, .panel-notas .filtros-contexto-notas select { height: 36px !important; }
.panel-notas .filtros-academicos-notas { align-self: end; position: relative; }
.panel-notas .filtros-academicos-notas > summary { height: 36px; display:flex; align-items:center; padding:0 12px; border:1px solid #cbded5; border-radius:8px; background:#fff; color:#0b4a3b; font-size:12px; font-weight:900; cursor:pointer; list-style:none; }
.panel-notas .filtros-academicos-notas > summary::-webkit-details-marker { display:none; }
.panel-notas .filtros-academicos-contenido { position:absolute; right:0; top:42px; z-index:30; width:min(620px,85vw); display:grid; grid-template-columns:100px 1fr 1fr; gap:8px; padding:12px; border:1px solid #cbded5; border-radius:10px; background:#fff; box-shadow:0 16px 35px rgba(15,65,70,.18); }
.panel-notas .pestanas-notas { margin:7px 0; padding:5px; gap:5px; overflow-x:auto; flex-wrap:nowrap; }
.panel-notas .pestana-nota { min-height:36px; padding:7px 14px; white-space:nowrap; }
.panel-notas .barra-filtros-tabla-notas { position:sticky; top:66px; z-index:18; display:grid; grid-template-columns:minmax(260px,2fr) repeat(3,minmax(105px,.7fr)) 70px 70px 40px; gap:7px; align-items:end; padding:8px 10px; border:1px solid #bcdccc; border-radius:10px; background:rgba(244,252,248,.97); box-shadow:0 6px 18px rgba(15,65,70,.08); backdrop-filter:blur(8px); }
.panel-notas .barra-filtros-tabla-notas label { min-width:0; display:grid; gap:3px; }
.panel-notas .barra-filtros-tabla-notas label > span { color:#365d54; font-size:10px; font-weight:900; text-transform:uppercase; }
.panel-notas .barra-filtros-tabla-notas input, .panel-notas .barra-filtros-tabla-notas select { width:100%; min-width:0; height:36px; padding:6px 9px; border:1px solid #c7d9d0; border-radius:8px; background:#fff; color:#16232d; font-size:13px; font-weight:800; }
.panel-notas .barra-filtros-tabla-notas .filtro-busqueda-notas input { border-color:#55ad84; box-shadow:inset 0 0 0 1px rgba(14,135,82,.08); }
.panel-notas .barra-filtros-tabla-notas > .icono-boton { width:36px; min-width:36px; height:36px; border-radius:8px; }
.panel-notas #acta-plm { padding-top:6px; }
.panel-notas .resumen-notas-premium { grid-template-columns:repeat(4,minmax(100px,1fr)); gap:6px; margin:0 0 6px; }
.panel-notas .resumen-notas-premium article { min-height:42px; padding:6px 10px; display:flex; align-items:center; justify-content:space-between; }
.panel-notas .resumen-notas-premium article small { font-size:10px; }
.panel-notas .resumen-notas-premium article strong { font-size:1.2rem; }
.panel-notas .datatable-barra { min-height:42px; margin:0 0 7px; padding:5px 10px; gap:8px; }
.panel-notas .datatable-barra select { height:34px !important; }
.panel-notas .datatable-barra .pagina-boton { min-width:34px; height:34px; padding:4px 8px; }
.panel-notas .bloque-actividades-nota { margin-top:4px; }
.panel-notas .cabecera-actividad-nota { margin-bottom:5px; }
.panel-notas .cabecera-actividad-nota h3 { margin:0; font-size:1.05rem; }
.panel-notas .cabecera-actividad-nota p { display:none; }
.panel-notas .cinta-actividades-config { display:flex; gap:6px; margin:0 0 7px; overflow-x:auto; padding-bottom:2px; }
.panel-notas .actividad-config { min-width:190px; padding:7px 10px; }
.panel-notas .actividad-config strong { font-size:.82rem; }
.panel-notas .actividad-config span, .panel-notas .actividad-config small { font-size:.72rem; }
.panel-notas .fila-actividad-nota, .panel-notas .fila-nota { padding-top:7px; padding-bottom:7px; }
.panel-notas .nota-actividad-plm, .panel-notas .nota-plm { height:38px; }
@media (max-width:900px) {
 .panel-notas .filtros-contexto-notas { grid-template-columns:120px minmax(180px,1fr) auto !important; }
 .panel-notas .barra-filtros-tabla-notas { position:static; grid-template-columns:minmax(220px,2fr) repeat(3,minmax(100px,1fr)); overflow-x:auto; }
 .panel-notas .barra-filtros-tabla-notas .filtro-rango-notas { display:none; }
}
@media (max-width:620px) {
 .panel-notas { padding:6px !important; }
 .panel-notas .cabecera-notas { align-items:flex-start; }
 .panel-notas .acciones-notas-principales .boton-exportar-notas { display:none; }
 .panel-notas .filtros-contexto-notas { grid-template-columns:1fr 1fr !important; }
 .panel-notas .filtros-academicos-notas { grid-column:1 / -1; }
 .panel-notas .filtros-academicos-contenido { position:static; width:100%; grid-template-columns:1fr; margin-top:5px; }
 .panel-notas .barra-filtros-tabla-notas { grid-template-columns:minmax(230px,1fr) 105px 105px 105px; }
 .panel-notas .resumen-notas-premium { grid-template-columns:repeat(2,1fr); }
}

/* DATATABLE 360 - Mesa profesional de captura de notas */
.panel-notas{background:#f3f7f5!important;border:0!important;padding:8px!important}
.panel-notas .cabecera-notas{background:#fff;border:1px solid #dbe7e1;border-radius:14px;padding:10px 14px!important;box-shadow:0 6px 20px rgba(15,65,70,.06)}
.panel-notas .contexto-notas-rapido{margin-top:7px;background:#fff}
.panel-notas .pestanas-notas{background:#e7efeb!important;border:0!important;border-radius:12px}
.panel-notas .pestana-nota{border:0!important;background:transparent!important;color:#49645c!important}
.panel-notas .pestana-nota.activa{background:#075f45!important;color:#fff!important;box-shadow:0 6px 15px rgba(7,95,69,.22)}
.panel-notas .barra-filtros-tabla-notas{top:8px!important;border:0!important;border-left:4px solid #0b8a5b!important;border-radius:12px!important;background:rgba(255,255,255,.98)!important;box-shadow:0 10px 30px rgba(15,65,70,.13)!important;padding:9px 12px!important}
.panel-notas .barra-filtros-tabla-notas .filtro-busqueda-notas input{height:42px!important;padding-left:38px!important;font-size:14px!important;background:#f6faf8 radial-gradient(circle at 18px 50%,#16875f 0 3px,transparent 4px)!important;border:2px solid #8bc5ad!important}
.panel-notas .barra-filtros-tabla-notas input,.panel-notas .barra-filtros-tabla-notas select{height:42px!important}
.panel-notas .resumen-notas-premium{display:flex!important;gap:7px!important;margin:7px 0!important}
.panel-notas .resumen-notas-premium article{flex:0 1 190px!important;min-height:38px!important;border:0!important;border-radius:999px!important;background:#fff!important;box-shadow:none!important;padding:5px 12px!important}
.panel-notas .resumen-notas-premium article strong{font-size:1rem!important}.panel-notas .resumen-notas-premium article small{font-size:9px!important}
.datatable-comando{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 7px;padding:7px 9px;background:#fff;border:1px solid #dbe7e1;border-radius:12px}
.filtros-rapidos-notas{display:flex;gap:5px;overflow-x:auto}.filtro-rapido-notas{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 11px;border:1px solid #d7e4de;border-radius:999px;background:#fff;color:#446158;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap}.filtro-rapido-notas span{font-size:13px;color:#8aa49a}.filtro-rapido-notas:hover,.filtro-rapido-notas.activo{border-color:#0b8a5b;background:#eaf8f1;color:#075f45}.filtro-rapido-notas.activo span{color:#0b8a5b}
.datatable-navegacion{display:flex;align-items:center;gap:9px}.datatable-navegacion label{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:900;text-transform:uppercase;color:#61766f}.datatable-navegacion select{height:32px;border:1px solid #d2dfd9;border-radius:7px;background:#fff;font-weight:900}.datatable-navegacion>strong{font-size:11px;white-space:nowrap}.datatable-navegacion .paginacion{display:flex;gap:3px}.datatable-navegacion .pagina-boton{min-width:30px;height:30px;border-radius:7px}
.datatable-notas-360{margin-top:0!important}.workspace-notas{display:grid;grid-template-columns:245px minmax(0,1fr);gap:10px;align-items:start}
.navegador-actividades{position:sticky;top:78px;max-height:calc(100vh - 95px);display:flex;flex-direction:column;background:#103f36;border-radius:15px;overflow:hidden;box-shadow:0 14px 35px rgba(10,55,45,.18)}
.navegador-actividades>header{display:flex;align-items:center;justify-content:space-between;padding:14px;color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}.navegador-actividades>header div{display:grid;gap:2px}.navegador-actividades>header small{font-size:9px;letter-spacing:.12em;color:#9dd8c1;font-weight:900}.navegador-actividades>header strong{font-size:14px}.navegador-actividades>header .icono-boton{width:34px;height:34px;min-width:34px;background:#1b9b69;color:#fff;border:0}
.navegador-actividades .cinta-actividades-config{display:flex!important;flex-direction:column!important;gap:4px!important;margin:0!important;padding:8px!important;overflow-y:auto!important;overflow-x:hidden!important}
.navegador-actividades .actividad-config{display:grid!important;grid-template-columns:4px minmax(0,1fr) auto;gap:9px;align-items:center;min-width:0!important;min-height:66px!important;margin:0;padding:8px!important;border:1px solid transparent!important;border-radius:10px!important;background:transparent!important;color:#fff;box-shadow:none!important;transform:none!important}
.navegador-actividades .actividad-config:hover{background:rgba(255,255,255,.08)!important}.navegador-actividades .actividad-config.activa{background:#fff!important;border-color:#fff!important}.actividad-indicador{width:4px;height:34px;border-radius:99px;background:rgba(255,255,255,.18)}.actividad-config.activa .actividad-indicador{background:#12a56d}.actividad-contenido{min-width:0}.navegador-actividades .actividad-contenido strong{font-size:12px;color:#9ee4c6}.navegador-actividades .actividad-contenido>span{margin:2px 0 0;color:#fff;font-size:12px}.navegador-actividades .actividad-contenido small{margin:3px 0 0;color:#8fb8aa;font-size:9px}.navegador-actividades .actividad-config.activa strong{color:#08734f}.navegador-actividades .actividad-config.activa .actividad-contenido>span{color:#152b25}.navegador-actividades .actividad-config.activa small{color:#72867f}.navegador-actividades .acciones-mini{position:static;display:none}.navegador-actividades .actividad-config.activa .acciones-mini{display:flex}.navegador-actividades .acciones-mini button{width:24px;height:24px;font-size:10px}
.mesa-captura-notas{min-width:0;background:#fff;border:1px solid #dbe7e1;border-radius:15px;overflow:hidden;box-shadow:0 12px 35px rgba(15,65,70,.08)}
.actividad-activa-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;background:linear-gradient(100deg,#f1fbf6,#fff 65%,#fff8e8);border-bottom:1px solid #dbe7e1}.actividad-activa-hero small{font-size:9px;letter-spacing:.1em;font-weight:900;color:#16815c}.actividad-activa-hero h3{margin:3px 0!important;font-size:16px!important;color:#142a24}.actividad-activa-hero span{font-size:11px;color:#687c75;font-weight:700}.progreso-captura{min-width:155px;display:grid;grid-template-columns:auto 1fr;align-items:end;gap:0 6px}.progreso-captura strong{font-size:18px;color:#075f45}.progreso-captura>span{font-size:9px;text-transform:uppercase;font-weight:900}.progreso-captura>div{grid-column:1/-1;height:6px;margin-top:5px;background:#dfeae5;border-radius:99px;overflow:hidden}.progreso-captura i{display:block;height:100%;background:linear-gradient(90deg,#0b8a5b,#e4b116);border-radius:99px}
.atajos-captura{display:flex;align-items:center;gap:12px;padding:7px 12px;background:#f8fbfa;border-bottom:1px solid #e2ebe7;font-size:9px;color:#687c75}.atajos-captura span{display:flex;align-items:center;gap:4px}.atajos-captura strong{margin-left:auto;color:#0a7a53}.atajos-captura kbd{min-width:19px;padding:2px 5px;border:1px solid #c8d8d1;border-bottom-width:2px;border-radius:4px;background:#fff;color:#334b43;font:800 9px sans-serif;text-align:center}
.tabla-captura-360 .encabezado-lista-actividad{position:sticky!important;top:69px!important;z-index:6;display:grid!important;grid-template-columns:50px minmax(260px,1fr) 130px 115px 100px!important;padding:7px 12px!important;border-radius:0!important;background:#e9f3ee!important;border:0!important;color:#244a3e!important}.tabla-captura-360 .encabezado-lista-actividad>*:nth-child(4){font-size:0}.tabla-captura-360 .encabezado-lista-actividad>*:nth-child(4)::after{content:"Estado";font-size:10px}.cuerpo-tabla-notas{display:grid}
.panel-notas .fila-actividad-nota{display:grid!important;grid-template-columns:50px minmax(260px,1fr) 130px 115px 100px!important;gap:0!important;min-height:54px;padding:0 12px!important;border:0!important;border-bottom:1px solid #e7efeb!important;border-radius:0!important;background:#fff!important;transition:background .15s ease,box-shadow .15s ease}.panel-notas .fila-actividad-nota:hover{background:#f7fcf9!important;box-shadow:inset 4px 0 #20a872}.panel-notas .fila-actividad-nota:focus-within{position:relative;z-index:2;background:#effaf4!important;box-shadow:inset 4px 0 #078557,0 4px 14px rgba(7,133,87,.12)}
.identidad-estudiante{min-width:0}.identidad-estudiante strong{font-size:12px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.identidad-estudiante small{margin:2px 0 0!important;font-size:9px!important}.grupo-estudiante span{display:inline-flex!important;padding:4px 7px;border-radius:6px;background:#eef3f1;color:#46625a;font-size:10px;font-weight:900}.badge-nota{display:inline-flex!important;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:900}.badge-nota::before{content:"";width:6px;height:6px;border-radius:50%}.badge-pendiente{background:#fff6dc;color:#8b6500}.badge-pendiente::before{background:#e8b420}.badge-aprobado{background:#e7f8ef;color:#087044}.badge-aprobado::before{background:#17a76b}.badge-desaprobado{background:#ffebe7;color:#a53c2b}.badge-desaprobado::before{background:#dc634c}
.celda-ingreso-nota{display:flex!important;align-items:center!important;justify-content:flex-end}.celda-ingreso-nota>span{display:none!important}.panel-notas .celda-ingreso-nota .nota-actividad-plm{width:72px!important;height:38px!important;padding:5px!important;border:2px solid #b9d0c6!important;border-radius:9px!important;background:#fff!important;font-size:16px!important;color:#103f36!important}.panel-notas .celda-ingreso-nota .nota-actividad-plm:focus{border-color:#078557!important;outline:3px solid rgba(7,133,87,.14)!important}.panel-notas .celda-ingreso-nota .nota-actividad-plm.fuera-rango{border-color:#db4d3c!important;background:#fff1ef!important}
.estado-vacio-busqueda{margin:14px}
@media(max-width:1050px){.workspace-notas{grid-template-columns:205px minmax(680px,1fr);overflow-x:auto}.datatable-comando{align-items:flex-start;flex-direction:column}.datatable-navegacion{width:100%;justify-content:flex-end}}
@media(max-width:760px){.workspace-notas{display:block;overflow:visible}.navegador-actividades{position:static;max-height:none;margin-bottom:8px}.navegador-actividades .cinta-actividades-config{flex-direction:row!important;overflow-x:auto!important}.navegador-actividades .actividad-config{min-width:190px!important}.mesa-captura-notas{overflow-x:auto}.actividad-activa-hero{min-width:650px}.tabla-captura-360{min-width:650px}.atajos-captura{display:none}.panel-notas .resumen-notas-premium{overflow-x:auto}.panel-notas .resumen-notas-premium article{min-width:135px}}

/* CONTROLES PERSISTENTES - buscar y operar sin abandonar la tabla */
.panel-notas>.barra-filtros-tabla-notas{display:none!important}
.panel-notas .datatable-comando-persistente{position:sticky;top:92px;z-index:25;display:grid!important;grid-template-columns:1fr;gap:7px;margin:0 0 9px;padding:9px 11px;border:1px solid #c7ddd3;border-left:5px solid #078557;border-radius:13px;background:rgba(255,255,255,.98);box-shadow:0 12px 30px rgba(13,68,54,.16);backdrop-filter:blur(12px)}
.datatable-busqueda-principal{display:grid;grid-template-columns:minmax(340px,1.8fr) minmax(145px,.55fr) minmax(135px,.5fr) 72px;gap:7px;align-items:end}
.datatable-busqueda-principal label{min-width:0;display:grid;gap:3px}.datatable-busqueda-principal label>span{font-size:9px;font-weight:950;letter-spacing:.06em;text-transform:uppercase;color:#557068}
.datatable-busqueda-principal input,.datatable-busqueda-principal select{width:100%;height:40px;border:1px solid #c5d8cf;border-radius:9px;background:#f9fcfa;color:#172b25;padding:7px 10px;font-size:12px;font-weight:850}
.datatable-busqueda-principal input{padding-left:39px;font-size:14px;border:2px solid #55ad84;background:#fff radial-gradient(circle at 18px 50%,#0a8a5a 0 3px,transparent 4px)}
.datatable-busqueda-principal input:focus{outline:3px solid rgba(7,133,87,.14);border-color:#078557}
.boton-limpiar-tabla{height:40px;border:1px solid #d4dfda;border-radius:9px;background:#fff;color:#63776f;font-size:10px;font-weight:900;cursor:pointer}.boton-limpiar-tabla:hover{border-color:#d15c49;color:#a33d2d;background:#fff3f0}
.datatable-acciones-secundarias{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.acciones-tabla-persistentes{display:flex;gap:5px;margin-left:auto}.acciones-tabla-persistentes button{height:32px;padding:0 10px;border:1px solid #c8d9d1;border-radius:8px;background:#fff;color:#315c4f;font-size:9px;font-weight:950;text-transform:uppercase;cursor:pointer}.acciones-tabla-persistentes button:first-child{border-color:#078557;background:#078557;color:#fff}.acciones-tabla-persistentes button:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(15,65,70,.12)}
.panel-notas .workspace-notas{min-height:calc(100vh - 250px)}
.panel-notas .navegador-actividades{top:222px;max-height:calc(100vh - 235px)}
.panel-notas .tabla-captura-360 .encabezado-lista-actividad{top:219px!important}
@media(max-width:1180px){.datatable-acciones-secundarias{flex-wrap:wrap}.acciones-tabla-persistentes{margin-left:0}.datatable-navegacion{margin-left:auto}}
@media(max-width:850px){.panel-notas .datatable-comando-persistente{position:sticky;top:72px;overflow-x:auto}.datatable-busqueda-principal{grid-template-columns:minmax(280px,1fr) 135px 125px 65px;min-width:680px}.datatable-acciones-secundarias{min-width:820px;flex-wrap:nowrap}.panel-notas .navegador-actividades{top:210px}.panel-notas .tabla-captura-360 .encabezado-lista-actividad{top:205px!important}}

/* PANTALLA UNICA - sin superposiciones ni desplazamiento de toda la pagina */
.panel-notas .datatable-notas-360{height:calc(100vh - 172px);min-height:560px;overflow:hidden}
.panel-notas .workspace-notas{height:100%!important;min-height:0!important;align-items:stretch!important;overflow:hidden}
.panel-notas .navegador-actividades{position:relative!important;top:auto!important;height:100%;max-height:none!important}
.panel-notas .mesa-captura-notas{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.panel-notas .actividad-activa-hero{flex:0 0 auto}
.panel-notas .mesa-captura-notas>.datatable-comando-persistente{position:relative!important;top:auto!important;z-index:8;margin:0!important;border-width:0 0 1px 5px!important;border-radius:0!important;box-shadow:0 5px 16px rgba(13,68,54,.08)!important;backdrop-filter:none}
.panel-notas .tabla-captura-360{min-height:0;flex:1;display:flex;flex-direction:column;overflow:hidden}
.panel-notas .tabla-captura-360 .atajos-captura{position:relative;flex:0 0 auto}
.panel-notas .tabla-captura-360 .encabezado-lista-actividad{position:relative!important;top:auto!important;flex:0 0 auto;z-index:5}
.panel-notas .tabla-captura-360 .cuerpo-tabla-notas{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.panel-notas .tabla-captura-360 .fila-actividad-nota{flex:0 0 auto}
@media(max-width:1050px){.panel-notas .datatable-notas-360{height:calc(100vh - 155px);min-height:520px}.panel-notas .workspace-notas{grid-template-columns:210px minmax(700px,1fr)!important;overflow-x:auto!important}.panel-notas .mesa-captura-notas{min-width:700px}}
@media(max-width:760px){.panel-notas .datatable-notas-360{height:auto;min-height:0;overflow:visible}.panel-notas .workspace-notas{display:block;height:auto!important;overflow:visible!important}.panel-notas .navegador-actividades{height:auto;max-height:210px!important}.panel-notas .mesa-captura-notas{height:calc(100vh - 110px);min-width:680px}.panel-notas .tabla-captura-360 .cuerpo-tabla-notas{overflow-y:auto}}

/* PARTICIPACION ORGANIZADA - tabla protagonista */
.panel-notas>.cabecera-notas{display:none!important}
.panel-notas .resumen-notas-premium{display:none!important}
.panel-notas .contexto-notas-rapido{margin-top:0!important;padding:5px 7px!important}
.panel-notas .filtros-contexto-notas{grid-template-columns:160px minmax(280px,1fr) auto!important}
.panel-notas .pestanas-notas{margin:6px 0!important}
.panel-notas #acta-plm{padding-top:0!important}
.panel-notas #acta-plm>.datatable-comando-persistente{position:relative!important;top:auto!important;margin:0 0 7px!important}
.participacion-workspace{height:calc(100vh - 330px);min-height:520px;display:flex;flex-direction:column;border:1px solid #d7e5de;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 10px 28px rgba(15,65,70,.08)}
.participacion-toolbar{flex:0 0 auto;min-height:58px;display:grid;grid-template-columns:155px minmax(180px,260px) minmax(260px,1fr) auto;gap:10px;align-items:center;padding:8px 12px;background:linear-gradient(90deg,#eff9f4,#fff 68%,#fff9ea);border-bottom:1px solid #d9e6e0}
.participacion-titulo{display:grid;gap:2px}.participacion-titulo small{font-size:8px;letter-spacing:.12em;color:#16815c;font-weight:950}.participacion-titulo strong{font-size:13px;color:#18362d}
.selector-clase-inline{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px}.selector-clase-inline>span{font-size:9px;font-weight:950;text-transform:uppercase;color:#597168;white-space:nowrap}.selector-clase-inline select{width:100%;height:36px;border:1px solid #bfd4ca;border-radius:8px;background:#fff;padding:5px 9px;color:#18362d;font-size:11px;font-weight:900}
.participacion-toolbar .aviso-fecha-activa,.participacion-toolbar .aviso-fecha-bloqueada{display:flex;align-items:center;min-height:34px;margin:0;padding:6px 10px;border-radius:8px;font-size:9px;font-weight:850}
.participacion-acciones{display:flex;gap:5px}.participacion-acciones .icono-boton{width:34px;min-width:34px;height:34px;border-radius:8px}
.panel-notas .tabla-participacion-scroll{flex:1;min-height:0!important;max-height:none!important;overflow:auto!important;border:0!important;border-radius:0!important;scrollbar-gutter:stable}
.panel-notas .tabla-participacion-simple{width:100%;min-width:1000px!important;table-layout:fixed;border-collapse:separate;border-spacing:0}
.panel-notas .tabla-participacion-simple thead{position:sticky;top:0;z-index:8}
.panel-notas .tabla-participacion-simple thead th{height:38px;padding:7px 9px;background:#dcefe6!important;border-bottom:1px solid #bad8ca;color:#17483a;font-size:9px;white-space:nowrap}
.panel-notas .tabla-participacion-simple th:nth-child(1){width:5%}.panel-notas .tabla-participacion-simple th:nth-child(2){width:34%}.panel-notas .tabla-participacion-simple th:nth-child(3){width:11%}.panel-notas .tabla-participacion-simple th:nth-child(4){width:14%}.panel-notas .tabla-participacion-simple th:nth-child(5){width:12%}.panel-notas .tabla-participacion-simple th:nth-child(6){width:12%}.panel-notas .tabla-participacion-simple th:nth-child(7){width:12%}
.panel-notas .tabla-participacion-simple tbody tr{height:48px}.panel-notas .tabla-participacion-simple tbody tr:hover{background:#f2faf6!important;box-shadow:inset 4px 0 #139767}.panel-notas .tabla-participacion-simple td{height:48px;padding:5px 9px;border-bottom:1px solid #e3ece8;vertical-align:middle;font-size:11px}
.panel-notas .tabla-participacion-simple .participante-identidad{text-align:left!important;overflow:hidden}.panel-notas .participante-identidad strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#192f29}.panel-notas .participante-identidad small{display:block;margin-top:2px;color:#71847c;font-size:8px;font-weight:850}
.panel-notas .tabla-participacion-simple .numero-participacion{font-size:13px;font-weight:950;color:#075f45;text-align:center}
.panel-notas .tabla-participacion-simple .nota-participacion{width:70px;height:34px;padding:4px;border:2px solid #bdd4ca;border-radius:8px;background:#fff;text-align:center;font-size:14px;font-weight:950}.panel-notas .tabla-participacion-simple .nota-participacion:focus{border-color:#078557;outline:3px solid rgba(7,133,87,.13)}
.panel-notas .tabla-participacion-simple .fijo{position:static!important;left:auto!important;box-shadow:none!important}
@media(max-width:950px){.participacion-workspace{height:calc(100vh - 280px)}.participacion-toolbar{grid-template-columns:140px 220px minmax(240px,1fr) auto;min-width:850px}.participacion-workspace{overflow-x:auto}.panel-notas .tabla-participacion-scroll{min-width:850px}}

/* BUSQUEDA MULTIPLE DE ESTUDIANTES */
.datatable-busqueda-principal .busqueda-multiple-notas{position:relative;gap:2px}
.datatable-busqueda-principal .busqueda-multiple-notas>span{display:flex;align-items:center;justify-content:space-between}
.datatable-busqueda-principal .busqueda-multiple-notas>span b{padding:2px 7px;border-radius:999px;background:#e7f7ef;color:#08734f;font-size:8px;text-transform:none;letter-spacing:0}
.datatable-busqueda-principal .busqueda-multiple-notas textarea{width:100%;height:42px;min-height:42px;max-height:74px;resize:vertical;padding:10px 12px 7px 39px;border:2px solid #55ad84;border-radius:9px;background:#fff radial-gradient(circle at 18px 50%,#0a8a5a 0 3px,transparent 4px);color:#172b25;font:850 13px/1.35 inherit;overflow:auto}
.datatable-busqueda-principal .busqueda-multiple-notas textarea:focus{outline:3px solid rgba(7,133,87,.14);border-color:#078557}
.datatable-busqueda-principal .busqueda-multiple-notas>small{position:absolute;left:10px;bottom:-13px;color:#657b72;font-size:8px;font-weight:750;white-space:nowrap}
.panel-notas .datatable-comando-persistente{padding-bottom:18px!important}

/* BOTON X DEL BUSCADOR MULTIPLE */
.busqueda-multiple-notas .limpiar-busqueda-interna{position:absolute;right:9px;top:25px;z-index:3;width:28px;height:28px;display:none;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:#e7f0ec;color:#365c50;font-size:20px;font-weight:700;line-height:1;cursor:pointer}
.busqueda-multiple-notas .limpiar-busqueda-interna.visible{display:flex}
.busqueda-multiple-notas .limpiar-busqueda-interna:hover,.busqueda-multiple-notas .limpiar-busqueda-interna:focus-visible{background:#d94336;color:#fff;outline:3px solid rgba(217,67,54,.16)}
.datatable-busqueda-principal .busqueda-multiple-notas textarea{padding-right:44px}

/* ASISTENCIA 360 - pantalla unica de registro */
.panel-asistencia.asistencia-captura-360{padding:8px!important;background:#f2f7f4!important;border:0!important}
.asistencia-captura-360 .contexto-asistencia-360{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(320px,1.5fr) auto;gap:8px;align-items:end;padding:8px 10px;margin-bottom:7px;border:1px solid #d5e4dd;border-radius:12px;background:#fff}
.contexto-asistencia-360 label{display:grid;gap:3px}.contexto-asistencia-360 label>span{font-size:9px;font-weight:950;text-transform:uppercase;color:#547067}.contexto-asistencia-360 select{width:100%;height:38px;padding:6px 9px;border:1px solid #c7d8d0;border-radius:8px;background:#fff;color:#19352c;font-size:11px;font-weight:850}
.contexto-asistencia-acciones{display:flex;gap:5px}.contexto-asistencia-acciones .icono-boton{width:38px;min-width:38px;height:38px}
.asistencia-captura-360 #asistencia-contenido{padding:0!important}
.asistencia-workspace-360{height:calc(100vh - 172px);min-height:590px;display:flex;flex-direction:column;border:1px solid #d3e3db;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 12px 30px rgba(15,65,70,.09)}
.asistencia-comando-360{flex:0 0 auto;display:grid;grid-template-columns:minmax(330px,1.4fr) minmax(430px,1.5fr) auto;grid-template-areas:"buscar filtros acciones" "buscar navegacion navegacion";gap:7px 10px;align-items:center;padding:9px 11px 17px;border-left:5px solid #078557;border-bottom:1px solid #d7e5de;background:linear-gradient(100deg,#f3fbf7,#fff)}
.busqueda-asistencia-multiple{grid-area:buscar;position:relative;display:grid;gap:2px;align-self:stretch}.busqueda-asistencia-multiple>span{display:flex;justify-content:space-between;font-size:9px;font-weight:950;text-transform:uppercase;color:#526d64}.busqueda-asistencia-multiple>span b{padding:2px 7px;border-radius:999px;background:#e4f7ee;color:#08734f;font-size:8px;text-transform:none}
.busqueda-asistencia-multiple textarea{width:100%;height:43px;min-height:43px;max-height:72px;resize:vertical;padding:10px 43px 7px 37px;border:2px solid #55ad84;border-radius:9px;background:#fff radial-gradient(circle at 17px 50%,#078557 0 3px,transparent 4px);color:#172d26;font:850 13px/1.35 inherit}
.busqueda-asistencia-multiple textarea:focus{border-color:#078557;outline:3px solid rgba(7,133,87,.14)}.busqueda-asistencia-multiple>small{position:absolute;left:9px;bottom:-13px;font-size:8px;font-weight:750;color:#6b7f77}
.limpiar-asistencia-interna{position:absolute;right:8px;top:24px;width:28px;height:28px;display:none;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:#e6efeb;color:#365c50;font-size:20px;cursor:pointer}.limpiar-asistencia-interna.visible{display:flex}.limpiar-asistencia-interna:hover{background:#d94336;color:#fff}
.filtros-asistencia-rapidos{grid-area:filtros;display:flex;gap:5px;overflow-x:auto}.filtro-asistencia-rapido{height:34px;display:inline-flex;align-items:center;gap:5px;padding:0 9px;border:1px solid #d3e1da;border-radius:999px;background:#fff;color:#49635a;font-size:9px;font-weight:900;white-space:nowrap;cursor:pointer}.filtro-asistencia-rapido span{min-width:21px;padding:2px 5px;border-radius:999px;background:#edf3f0;color:#234d40;text-align:center}.filtro-asistencia-rapido:hover,.filtro-asistencia-rapido.activo{border-color:#078557;background:#eaf8f1;color:#075f45}.filtro-asistencia-rapido.activo span{background:#078557;color:#fff}
.acciones-asistencia-360{grid-area:acciones;display:flex;gap:5px}.acciones-asistencia-360 button{height:34px;padding:0 11px;border:1px solid #c5d8cf;border-radius:8px;background:#fff;color:#315c4f;font-size:9px;font-weight:950;text-transform:uppercase;cursor:pointer}.acciones-asistencia-360 button:first-child{background:#078557;border-color:#078557;color:#fff}
.navegacion-asistencia-360{grid-area:navegacion;display:flex;align-items:center;justify-content:flex-end;gap:9px}.navegacion-asistencia-360 label{display:flex;align-items:center;gap:5px;color:#60756d;font-size:9px;font-weight:950;text-transform:uppercase}.navegacion-asistencia-360 select{height:31px;border:1px solid #cadbd3;border-radius:7px;background:#fff;font-weight:900}.navegacion-asistencia-360>strong{font-size:10px;color:#445d54}.navegacion-asistencia-360 .paginacion{display:flex;gap:3px}.navegacion-asistencia-360 .pagina-boton{min-width:30px;height:30px;border-radius:7px}
.fechas-asistencia-360{flex:0 0 55px;display:flex;gap:5px;padding:7px 10px;overflow-x:auto;background:#edf5f1;border-bottom:1px solid #d3e1da;scrollbar-width:thin}.fecha-asistencia-360{min-width:61px;height:40px;display:grid;place-content:center;border:1px solid #d0dfd8;border-radius:8px;background:#fff;color:#405c53;cursor:pointer}.fecha-asistencia-360 strong{font-size:10px}.fecha-asistencia-360 span{font-size:8px;font-weight:850;color:#7a8d86}.fecha-asistencia-360.activa{border-color:#075f45;background:#075f45;color:#fff;box-shadow:0 5px 12px rgba(7,95,69,.2)}.fecha-asistencia-360.activa span{color:#bde8d7}
.tabla-asistencia-scroll-360{flex:1;min-height:0;max-height:none!important;overflow:auto!important;border:0!important;border-radius:0!important;scrollbar-gutter:stable}
.tabla-asistencia-360{width:100%;min-width:900px!important;table-layout:fixed;border-collapse:separate;border-spacing:0}.tabla-asistencia-360 thead{position:sticky;top:0;z-index:7}.tabla-asistencia-360 thead th{height:38px;padding:7px 10px;background:#dcefe6!important;border-bottom:1px solid #bad8ca;color:#17483a;font-size:9px;white-space:nowrap}.tabla-asistencia-360 th:nth-child(1){width:6%}.tabla-asistencia-360 th:nth-child(2){width:36%}.tabla-asistencia-360 th:nth-child(3){width:13%}.tabla-asistencia-360 th:nth-child(4){width:19%}.tabla-asistencia-360 th:nth-child(5){width:26%}
.tabla-asistencia-360 tbody tr{height:50px}.tabla-asistencia-360 tbody tr:hover{background:#f2faf6!important;box-shadow:inset 4px 0 #139767}.tabla-asistencia-360 td{height:50px;padding:5px 10px;border-bottom:1px solid #e2ece7;vertical-align:middle;font-size:11px}.numero-asistencia{text-align:center;font-size:14px!important;font-weight:950;color:#075f45}.identidad-asistencia{text-align:left!important;overflow:hidden}.identidad-asistencia strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#192f29;font-size:11px}.identidad-asistencia small{display:block;margin-top:2px;color:#71847c;font-size:8px;font-weight:850}.grupo-asistencia{display:inline-flex;padding:4px 7px;border-radius:6px;background:#edf3f0;color:#456158;font-size:9px;font-weight:900}
.tabla-asistencia-360 .asistencia-estado,.tabla-asistencia-360 .asistencia-observacion{width:100%;height:36px;padding:5px 9px;border:1px solid #c4d7ce;border-radius:8px;background:#fff;color:#243c34;font-size:11px;font-weight:850}.tabla-asistencia-360 .asistencia-estado:focus,.tabla-asistencia-360 .asistencia-observacion:focus{border-color:#078557;outline:3px solid rgba(7,133,87,.12)}.tabla-asistencia-360 .estado-presente{background:#e8f8ef;color:#087044}.tabla-asistencia-360 .estado-tarde{background:#fff6df;color:#8b6500}.tabla-asistencia-360 .estado-falto{background:#ffebe7;color:#a53c2b}.tabla-asistencia-360 .estado-justificado{background:#eaf2ff;color:#255fa5}
@media(max-width:1050px){.asistencia-comando-360{grid-template-columns:minmax(300px,1.2fr) minmax(420px,1.4fr) auto;min-width:930px}.asistencia-workspace-360{overflow-x:auto}.tabla-asistencia-scroll-360{min-width:900px}.contexto-asistencia-360{grid-template-columns:220px minmax(300px,1fr) auto}}

/* ASISTENCIA CHECKS + AUTOGUARDADO */
.asistencia-comando-360{grid-template-columns:minmax(320px,1.35fr) minmax(430px,1.45fr) auto!important;grid-template-areas:"buscar filtros acciones" "buscar bulk navegacion"!important}
.acciones-asistencia-360{align-items:center}.acciones-asistencia-360>span{max-width:115px;color:#08734f;font-size:8px;font-weight:900;text-align:right}.acciones-asistencia-360 button{width:34px!important;min-width:34px;height:34px!important;padding:0!important;font-size:16px!important}
.marcar-todos-asistencia{grid-area:bulk;display:flex;align-items:center;gap:5px}.marcar-todos-asistencia small{margin-right:3px;color:#526d64;font-size:8px;font-weight:950;text-transform:uppercase}.marcar-todos-asistencia button{width:30px;height:30px;padding:0;border:1px solid #c9dbd2;border-radius:8px;background:#fff;color:#49645b;font-size:14px;font-weight:900;cursor:pointer}.marcar-todos-asistencia button:hover{border-color:#078557;background:#eaf8f1;color:#075f45;transform:translateY(-1px)}
.fecha-asistencia-360{position:relative}.fecha-asistencia-360 em{display:block;margin-top:1px;color:#fff;font-size:8px;font-style:normal;font-weight:950}.fecha-asistencia-360.activa{min-width:76px;height:44px}
.tabla-asistencia-360 th:nth-child(1){width:5%}.tabla-asistencia-360 th:nth-child(2){width:34%}.tabla-asistencia-360 th:nth-child(3){width:10%}.tabla-asistencia-360 th:nth-child(4){width:29%}.tabla-asistencia-360 th:nth-child(5){width:22%}
.checks-asistencia{display:flex;align-items:center;justify-content:center;gap:5px}.check-asistencia{position:relative;display:block}.check-asistencia input{position:absolute;opacity:0;pointer-events:none}.check-asistencia span{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid #c8d9d1;border-radius:9px;background:#fff;color:#61776e;font-size:15px;font-weight:950;cursor:pointer;transition:.15s ease}.check-asistencia:hover span{border-color:#7db69d;transform:translateY(-1px)}.check-asistencia input:focus-visible+span{outline:3px solid rgba(7,133,87,.16)}
.check-presente input:checked+span{border-color:#078557;background:#078557;color:#fff}.check-tarde input:checked+span{border-color:#d99a16;background:#fff0c7;color:#8a6200}.check-falto input:checked+span{border-color:#d65343;background:#d65343;color:#fff}.check-justificado input:checked+span{border-color:#3478bd;background:#3478bd;color:#fff}.check-pendiente input:checked+span{border-color:#91a49c;background:#edf2f0;color:#435b52}
.tabla-asistencia-360 tbody tr.fila-estado-presente{box-shadow:inset 3px 0 #0b9b64}.tabla-asistencia-360 tbody tr.fila-estado-tarde{box-shadow:inset 3px 0 #daa019}.tabla-asistencia-360 tbody tr.fila-estado-falto{box-shadow:inset 3px 0 #d65343}.tabla-asistencia-360 tbody tr.fila-estado-justificado{box-shadow:inset 3px 0 #3478bd}
@media(max-width:1100px){.asistencia-comando-360{min-width:980px!important}.checks-asistencia{gap:3px}.check-asistencia span{width:31px;height:31px}}
/* PRE RA y puntaje final: jerarquia visual y detalle plegable */
.nota-ra-redondeada { display:block; color:var(--verde-oscuro, #075e45); font-size:26px !important; line-height:1; font-weight:950; }
.nota-ra-exacta, .ra5-resumen > small { display:block; margin-top:4px; color:var(--muted); font-size:10px; font-weight:850; }
.nota-final-principal { font-size:30px !important; color:var(--verde) !important; line-height:1; }
.pre-ra-automatico { display:grid; gap:3px; justify-items:center; }
.pre-ra-automatico input[readonly] { background:#f0f8f4; border-color:#b9dccb; color:#075e45; font-weight:950; cursor:not-allowed; text-align:center; }
.pre-ra-automatico small { color:var(--verde); font-size:10px; font-weight:900; text-transform:uppercase; }
.detalle-resumen-plegable > summary span { width:22px; height:22px; display:inline-grid; place-items:center; border-radius:7px; background:var(--verde); color:#fff; font-size:0; }
.detalle-resumen-plegable > summary span::before { content:'+'; font-size:16px; }
.detalle-resumen-plegable[open] > summary span::before { content:'−'; }
.tarjeta-resumen-nota { transition:border-color .18s ease, box-shadow .18s ease; }
.tarjeta-resumen-nota:hover { border-color:rgba(0,132,61,.38); box-shadow:0 12px 28px rgba(10,90,62,.10); }
.ra5-resumen { display:flex; flex-direction:column; justify-content:center; }
@media (max-width: 1280px) { .pestanas-notas { overflow-x:auto; flex-wrap:nowrap; } .pestana-nota { white-space:nowrap; } }
.barra-pre-ra-premium { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.barra-pre-ra-premium > div > span, .barra-pre-ra-premium > div > small { display:block; }
.barra-pre-ra-premium details { position:relative; }
.barra-pre-ra-premium summary { list-style:none; cursor:pointer; border:1px solid #b9dccb; border-radius:9px; padding:7px 10px; color:var(--verde); font-weight:900; }
.barra-pre-ra-premium summary::-webkit-details-marker { display:none; }
.barra-pre-ra-premium summary span { display:inline-grid; place-items:center; width:20px; height:20px; border-radius:6px; background:var(--verde); color:#fff; }
.barra-pre-ra-premium details[open] summary span { font-size:0; }
.barra-pre-ra-premium details[open] summary span::before { content:'−'; font-size:15px; }
.barra-pre-ra-premium details > div { position:absolute; z-index:8; right:0; top:calc(100% + 6px); width:min(680px,80vw); padding:12px; border:1px solid #b9dccb; border-radius:10px; background:#fff; box-shadow:0 14px 30px rgba(10,70,50,.14); color:var(--muted); font-size:12px; }

/* Puntaje final: lectura lineal y auditoria bajo demanda */
.guia-calculo-plegable { margin:10px 0; border:1px solid #cfe1d8; border-radius:10px; background:#f8fcfa; }
.guia-calculo-plegable > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:8px; padding:10px 12px; color:var(--azul); font-weight:900; }
.guia-calculo-plegable > summary::-webkit-details-marker { display:none; }
.guia-calculo-plegable > summary span { width:22px; height:22px; display:grid; place-items:center; border-radius:6px; background:var(--verde); color:#fff; }
.guia-calculo-plegable[open] > summary span { font-size:0; }
.guia-calculo-plegable[open] > summary span::before { content:'−'; font-size:15px; }
.guia-calculo-plegable .flujo-calculo-notas { margin:0; padding:0 10px 10px; }
.cabecera-puntaje-final { display:grid; grid-template-columns:minmax(230px,1.2fr) minmax(560px,3fr) minmax(170px,.8fr); gap:14px; padding:9px 56px; border:1px solid #cfe1d8; border-radius:9px; background:#eaf7f0; color:var(--azul); font-size:11px; font-weight:950; text-transform:uppercase; }
.tarjeta-resumen-nota { grid-template-columns:44px minmax(220px,1.2fr) minmax(560px,3fr) minmax(170px,.8fr); padding:12px; }
.ra-resumen { grid-template-columns:repeat(5,minmax(92px,1fr)); }
.chip-ra-calculo, .ra5-resumen { min-height:112px; display:flex; flex-direction:column; justify-content:center; padding:9px; }
.promedio-resumen { padding:10px; border-left:3px solid var(--verde); background:#f6fbf8; border-radius:8px; }
.detalle-resumen-plegable { grid-column:2 / -1; }
.detalle-auditoria-grid { display:grid; grid-template-columns:repeat(5,minmax(150px,1fr)); gap:8px; margin-top:10px; }
.detalle-auditoria-grid article { border:1px solid #d7e4df; border-radius:9px; background:#fbfefd; overflow:hidden; }
.detalle-auditoria-grid header { padding:7px 9px; background:#eaf7f0; color:var(--verde-oscuro); font-weight:950; }
.detalle-auditoria-grid dl { margin:0; padding:7px 9px; }
.detalle-auditoria-grid dl div { display:flex; justify-content:space-between; gap:8px; padding:4px 0; border-bottom:1px dashed #e1e9e5; }
.detalle-auditoria-grid dl div:last-child { border-bottom:0; }
.detalle-auditoria-grid dt { color:var(--muted); font-size:10px; font-weight:850; }
.detalle-auditoria-grid dd { margin:0; color:var(--tinta); font-size:11px; font-weight:950; }
.notas-fuente-plegable { margin-top:9px; }
.notas-fuente-plegable > summary { list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:7px; color:var(--verde); font-size:12px; font-weight:900; }
.notas-fuente-plegable > summary::-webkit-details-marker { display:none; }
.notas-fuente-plegable > summary span { width:19px; height:19px; display:grid; place-items:center; border-radius:5px; background:var(--verde); color:#fff; }
.notas-fuente-plegable[open] > summary span { font-size:0; }
.notas-fuente-plegable[open] > summary span::before { content:'−'; font-size:14px; }
.notas-fuente-plegable .detalle-notas-registradas { margin-top:8px; }
@media (max-width:1200px) { .cabecera-puntaje-final { display:none; } .tarjeta-resumen-nota { grid-template-columns:44px minmax(190px,1fr) minmax(0,3fr); } .promedio-resumen { grid-column:2 / -1; border-left:0; border-top:3px solid var(--verde); } .detalle-resumen-plegable { grid-column:2 / -1; } .detalle-auditoria-grid { grid-template-columns:repeat(2,minmax(150px,1fr)); } }
.reporte-reprobacion .riesgo-detalle { grid-column:1 / -1; }
.riesgo-detalle > summary { list-style:none; cursor:pointer; color:#a52a20; font-size:12px; font-weight:900; }
.riesgo-detalle > summary::-webkit-details-marker { display:none; }
.riesgo-detalle > div { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.riesgo-detalle > div span { border:1px solid rgba(180,35,24,.18); border-radius:999px; background:#fff; color:var(--tinta); padding:5px 8px; }

/* Auditoria de formulas y carga masiva RA5 */
.herramientas-ra5{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;margin:0 0 .75rem;border:1px solid #b9decf;border-left:5px solid #078a58;border-radius:14px;background:linear-gradient(110deg,#f3fff9,#fffaf0)}
.herramientas-ra5>div:first-child{display:grid;gap:.15rem}.herramientas-ra5 strong{color:#073f35;font-size:1rem}.herramientas-ra5 span{color:#60716d;font-size:.82rem}.herramientas-ra5 .acciones{display:flex;gap:.5rem}
.boton-icono-ra5{width:44px;height:44px;border:1px solid #0b9562;border-radius:12px;background:#078a58;color:#fff;font-size:1.45rem;font-weight:900;cursor:pointer;box-shadow:0 5px 14px rgba(7,138,88,.18)}.boton-icono-ra5:hover{transform:translateY(-1px);background:#006f47}.boton-icono-ra5:focus-visible{outline:3px solid #f0c419;outline-offset:2px}
.aviso-importacion-ra5{padding:.85rem;border:1px solid #b9decf;border-radius:12px;background:#f4fcf8}.aviso-importacion-ra5 p{margin:.3rem 0 0;color:#52645f;line-height:1.45}
.formulas-puntaje{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.65rem;padding:.8rem}.formulas-puntaje article{display:grid;gap:.35rem;padding:.75rem;border:1px solid #c8dfd6;border-radius:12px;background:#fff}.formulas-puntaje strong{color:#075c45}.formulas-puntaje code{white-space:normal;color:#173b4d;font-family:inherit;font-weight:700;line-height:1.4}
.detalle-auditoria-grid dl .origen-pre{background:#f4f9f7}.detalle-auditoria-grid dl .formula-pre{display:grid;grid-template-columns:1fr;padding:.55rem;margin:.3rem 0;border-radius:8px;background:#eaf8f1;border:1px dashed #72bd9b}.detalle-auditoria-grid dl .formula-pre dt{color:#08734f}.detalle-auditoria-grid dl .formula-pre dd{text-align:left;color:#173b4d;font-size:.78rem;line-height:1.3}
@media(max-width:720px){.herramientas-ra5{align-items:flex-start}.herramientas-ra5 span{display:none}.formulas-puntaje{grid-template-columns:1fr}}
/* Navegacion inferior y lectura compacta del puntaje final */
.paginacion-inferior-notas{position:sticky;bottom:.5rem;z-index:12;display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin:.85rem 0 0;padding:.7rem 1rem;border:1px solid #b9d8cc;border-radius:14px;background:rgba(250,255,252,.96);box-shadow:0 10px 28px rgba(6,59,44,.14);backdrop-filter:blur(10px)}
.paginacion-inferior-notas>span{margin-right:auto;color:#526963;font-size:.82rem}.paginacion-inferior-notas>strong{color:#0a493a;font-size:.84rem}.paginacion-inferior-notas .paginacion{display:flex;gap:.35rem}.paginacion-inferior-notas .pagina-boton{min-width:38px;height:38px;border-radius:10px}
.lista-resumen-notas{display:grid;gap:.7rem}.tarjeta-resumen-nota{border-color:#c8ddd5;box-shadow:0 3px 12px rgba(8,62,48,.055)}.tarjeta-resumen-nota:hover{border-color:#75b89e;box-shadow:0 8px 22px rgba(8,62,48,.1)}
.detalle-resumen-plegable[open]{border-top:1px solid #dce9e4;background:linear-gradient(180deg,#fbfefd,#f5fbf8)}
@media(max-width:720px){.paginacion-inferior-notas{bottom:.25rem;gap:.45rem;padding:.55rem}.paginacion-inferior-notas>span{display:none}.paginacion-inferior-notas>strong{margin-right:auto}}
/* Formula oficial del silabo siempre visible */
.formula-final-visible{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(420px,2fr);gap:.7rem 1rem;align-items:center;margin:0 0 .75rem;padding:.9rem 1rem;border:1px solid #80c7aa;border-left:7px solid #008b57;border-radius:15px;background:linear-gradient(110deg,#effcf6 0%,#ffffff 62%,#fff9e9 100%);box-shadow:0 5px 18px rgba(6,75,54,.09)}
.formula-final-identidad{display:grid;gap:.15rem}.formula-final-identidad span{font-size:.68rem;font-weight:900;letter-spacing:.09em;color:#087953}.formula-final-identidad strong{font-size:1.25rem;color:#073f35}
.formula-final-ecuacion{display:flex;align-items:center;gap:.7rem;min-width:0}.formula-final-ecuacion>b{display:grid;place-items:center;min-width:46px;height:42px;border-radius:11px;background:#007c50;color:#fff;font-size:1.15rem}.formula-final-ecuacion>span{font-size:1.35rem;font-weight:900;color:#0b4a39}.formula-final-ecuacion code{font-family:inherit;font-size:clamp(.86rem,1.2vw,1.08rem);font-weight:900;line-height:1.4;color:#123f52;white-space:normal}
.formula-final-pesos{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:.45rem}.formula-final-pesos span,.formula-final-pesos>strong{padding:.48rem .6rem;border:1px solid #cee4db;border-radius:9px;background:#fff;text-align:center;color:#405b54;font-size:.78rem}.formula-final-pesos span b{color:#00764e}.formula-final-pesos>strong{background:#087c55;color:#fff;border-color:#087c55}
@media(max-width:850px){.formula-final-visible{grid-template-columns:1fr}.formula-final-pesos{grid-template-columns:repeat(3,1fr)}.formula-final-ecuacion code{font-size:.83rem}}
@media(max-width:520px){.formula-final-pesos{grid-template-columns:repeat(2,1fr)}.formula-final-ecuacion{align-items:flex-start}.formula-final-ecuacion>b{min-width:40px;height:38px}}
/* Transparencia y verificacion de calculos para todos los roles */
.formulas-siempre-visibles,.formulas-estudiante-visibles{display:grid;gap:.65rem;margin:0 0 .75rem;padding:.75rem;border:1px solid #c9dfd6;border-radius:14px;background:#fbfefc}.formulas-siempre-visibles>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 .2rem}.formulas-siempre-visibles>header strong{color:#074c3b}.formulas-siempre-visibles>header span{color:#60716d;font-size:.78rem}.formulas-siempre-visibles .formulas-puntaje{padding:0}
.formulas-estudiante-secundarias{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.55rem}.formulas-estudiante-secundarias article{display:grid;gap:.3rem;padding:.7rem;border:1px solid #cce2d9;border-radius:11px;background:#fff}.formulas-estudiante-secundarias strong{color:#08734f}.formulas-estudiante-secundarias code{white-space:normal;font-family:inherit;font-weight:750;font-size:.78rem;line-height:1.4;color:#284d5c}
.comprobacion-calculo{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.65rem .8rem;margin:.65rem 0;border-radius:11px;border:1px solid #b9decf;background:#effbf5}.comprobacion-calculo strong{color:#08734f}.comprobacion-calculo span{font-weight:700;color:#38554d}.comprobacion-calculo small{flex-basis:100%;color:#60716d}.comprobacion-calculo.error{border-color:#e9aaa4;background:#fff2f0}.comprobacion-calculo.error strong,.comprobacion-calculo.error small{color:#b42318}
@media(max-width:720px){.formulas-siempre-visibles>header{align-items:flex-start;flex-direction:column}.comprobacion-calculo{align-items:flex-start;flex-direction:column}.comprobacion-calculo small{flex-basis:auto}}
/* Barra de exportacion con iconos y paneles plegables profesionales */
.acciones-tabla-persistentes{align-items:center}.acciones-tabla-persistentes button,.boton-exportar-notas.boton-accion-icono{display:inline-grid;place-items:center;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;border-radius:10px;font-size:1.05rem;line-height:1;text-transform:none}.boton-exportar-notas.boton-accion-icono span{font-size:1.15rem;line-height:1}.acciones-tabla-persistentes button:first-child{font-size:1rem}
.panel-plegable-profesional{display:block!important;padding:0!important;overflow:hidden}.panel-plegable-profesional>summary{display:flex;align-items:center;gap:.7rem;padding:.75rem .85rem;cursor:pointer;list-style:none;background:linear-gradient(100deg,#f5fcf8,#fff);user-select:none}.panel-plegable-profesional>summary::-webkit-details-marker{display:none}.panel-plegable-profesional>summary .indicador-plegable{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:#078557;color:#fff;font-size:1.15rem;font-weight:900}.panel-plegable-profesional[open]>summary .indicador-plegable{font-size:0}.panel-plegable-profesional[open]>summary .indicador-plegable:after{content:'−';font-size:1.2rem}.panel-plegable-profesional>summary>div{display:grid;gap:.12rem}.panel-plegable-profesional>summary strong{color:#074c3b}.panel-plegable-profesional>summary small{color:#6b7d77;font-size:.75rem}.panel-plegable-profesional>summary em{margin-left:auto;color:#08734f;font-style:normal;font-size:.75rem;font-weight:800}.panel-plegable-profesional[open]>summary em{font-size:0}.panel-plegable-profesional[open]>summary em:after{content:'Ocultar';font-size:.75rem}
.contenido-formulas-plegable{display:grid;gap:.65rem;padding:.75rem;border-top:1px solid #dceae4}.contenido-formulas-plegable>p{margin:0;color:#60716d;font-size:.78rem}.formulas-estudiante-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.55rem;padding:.7rem;border-top:1px solid #dceae4}.formulas-estudiante-grid article{display:grid;gap:.3rem;padding:.7rem;border:1px solid #cce2d9;border-radius:11px;background:#fff}.formulas-estudiante-grid strong{color:#08734f}.formulas-estudiante-grid code{white-space:normal;font-family:inherit;font-weight:750;font-size:.78rem;line-height:1.4;color:#284d5c}
@media(max-width:620px){.acciones-tabla-persistentes{display:flex!important}.acciones-tabla-persistentes button{width:34px;min-width:34px;height:34px;min-height:34px}.panel-plegable-profesional>summary em{display:none}}
/* LISTAS CORTAS DE NOTAS - sin filas ocultas ni espacio desperdiciado */
.panel-notas .datatable-notas-360.lista-corta-notas {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}
.panel-notas .lista-corta-notas .workspace-notas {
    height: auto !important;
    min-height: 0 !important;
    align-items: stretch !important;
    overflow: visible !important;
}
.panel-notas .lista-corta-notas .navegador-actividades,
.panel-notas .lista-corta-notas .mesa-captura-notas {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
}
.panel-notas .lista-corta-notas .tabla-captura-360 {
    min-height: 0 !important;
    flex: 0 0 auto !important;
    overflow: visible !important;
}
.panel-notas .lista-corta-notas .tabla-captura-360 .cuerpo-tabla-notas {
    min-height: 0 !important;
    flex: 0 0 auto !important;
    overflow-y: visible !important;
}
.panel-notas .tipo-ra5 .herramientas-ra5 {
    min-height: 48px;
    margin-bottom: 7px;
    padding: 6px 10px;
    border-radius: 11px;
}
.panel-notas .tipo-ra5 .herramientas-ra5 > div:first-child {
    display: flex;
    align-items: baseline;
    gap: 9px;
}
.panel-notas .tipo-ra5 .herramientas-ra5 strong { font-size: .88rem; }
.panel-notas .tipo-ra5 .herramientas-ra5 span { font-size: .72rem; }
.panel-notas .tipo-ra5 .boton-icono-ra5 {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    font-size: 1.15rem;
}
.panel-notas .lista-corta-notas .actividad-activa-hero { padding: 9px 13px; }
.panel-notas .lista-corta-notas .datatable-comando-persistente { padding-top: 6px !important; padding-bottom: 14px !important; }
.panel-notas .lista-corta-notas .atajos-captura { padding: 5px 10px; }
/* Consentimiento informado para publicacion de proyectos RA5 en SISTACA */
.ra5-consentimiento{--ra5-ink:#102a43;--ra5-blue:#075985;--ra5-cyan:#0891b2;--ra5-mint:#0f766e;--ra5-gold:#f4b942;--ra5-paper:#f7fbfc;display:grid;gap:24px;max-width:1180px;margin:0 auto;color:var(--ra5-ink)}
.ra5-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:32px;padding:42px;border-radius:28px;background:radial-gradient(circle at 92% 8%,rgba(244,185,66,.28),transparent 28%),linear-gradient(125deg,#062f4f,#087e8b);color:#fff;box-shadow:0 22px 55px rgba(7,89,133,.22)}
.ra5-hero:after{content:"";position:absolute;width:240px;height:240px;border:42px solid rgba(255,255,255,.06);border-radius:50%;right:-90px;bottom:-130px}.ra5-sello,.ra5-eyebrow{display:inline-block;color:#f8ca63;font-size:.72rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.ra5-hero h2{max-width:760px;margin:12px 0;font-size:clamp(2rem,4vw,3.6rem);line-height:1.02;letter-spacing:-.045em}.ra5-hero p{max-width:720px;margin:0;color:#d9f3f4;font-size:1.04rem;line-height:1.65}.ra5-garantias{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.ra5-garantias span{padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:99px;background:rgba(255,255,255,.09);font-size:.78rem;font-weight:800}.ra5-impacto{z-index:1;align-self:center;display:grid;justify-items:center;padding:28px;border:1px solid rgba(255,255,255,.25);border-radius:24px;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);text-align:center}.ra5-impacto strong{display:grid;place-items:center;width:110px;height:110px;border-radius:28px;background:#fff;color:#087e8b;font-size:2.5rem;transform:rotate(-4deg);box-shadow:0 14px 25px rgba(0,0,0,.18)}.ra5-impacto span{margin-top:18px;font-weight:900}.ra5-impacto p{font-size:.82rem;line-height:1.45}
.ra5-formulario{overflow:hidden;border:1px solid #d9e6eb;border-radius:28px;background:#fff;box-shadow:0 18px 50px rgba(16,42,67,.09)}.ra5-pasos{display:grid;grid-template-columns:repeat(3,1fr);background:#eaf3f5}.ra5-pasos span{padding:14px;text-align:center;color:#66828d;font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.ra5-pasos .activo{background:#fff;color:var(--ra5-cyan);box-shadow:inset 0 4px var(--ra5-gold)}.ra5-bloque{display:grid;grid-template-columns:54px minmax(220px,.7fr) minmax(300px,1.3fr);gap:24px;padding:36px 42px;border-bottom:1px solid #e5eef1}.ra5-bloque:nth-of-type(even){background:var(--ra5-paper)}.ra5-numero{display:grid;place-items:center;align-self:start;width:48px;height:48px;border-radius:15px;background:#e5f5f7;color:var(--ra5-cyan);font-weight:950}.ra5-bloque h3,.ra5-historial h3{margin:5px 0 7px;font-size:1.35rem}.ra5-bloque p{margin:0;color:#607985;line-height:1.55}.ra5-eyebrow{color:var(--ra5-cyan)!important;margin:0!important}.ra5-campo{display:grid;align-content:start;gap:7px}.ra5-campo>span,.ra5-opciones legend,.ra5-identidad legend{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.ra5-campo input,.ra5-campo select{width:100%;padding:14px 15px;border:1px solid #bfd1d8;border-radius:13px;background:#fff;color:var(--ra5-ink);font:inherit}.ra5-campo input:focus,.ra5-campo select:focus{outline:3px solid rgba(8,145,178,.18);border-color:var(--ra5-cyan)}.ra5-campo small{color:#78909a}.ra5-bloque>.ancho{grid-column:3}
.ra5-decision{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ra5-decision label{position:relative;display:grid;gap:5px;padding:20px;border:2px solid #d6e2e7;border-radius:18px;background:#fff;cursor:pointer;transition:.18s}.ra5-decision label:hover{transform:translateY(-2px);border-color:#7bc4d2}.ra5-decision label:has(input:checked){border-color:var(--ra5-cyan);background:#edfbfd;box-shadow:0 8px 22px rgba(8,145,178,.12)}.ra5-decision .no-autoriza:has(input:checked){border-color:#64748b;background:#f8fafc}.ra5-decision input{position:absolute;right:14px;top:14px;accent-color:var(--ra5-cyan)}.ra5-decision .ra5-icono{font-size:1.65rem}.ra5-decision small{color:#68808a;line-height:1.4}.ra5-opciones,.ra5-identidad{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;border:0}.ra5-opciones legend,.ra5-identidad legend{grid-column:1/-1;margin-bottom:4px}.ra5-opciones label,.ra5-identidad label,.ra5-declaraciones label{display:flex;gap:11px;padding:15px;border:1px solid #d7e4e8;border-radius:14px;background:#fff;cursor:pointer}.ra5-opciones label:has(input:checked),.ra5-identidad label:has(input:checked),.ra5-declaraciones label:has(input:checked){border-color:#4db3c4;background:#f0fbfc}.ra5-opciones input,.ra5-identidad input,.ra5-declaraciones input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--ra5-mint)}.ra5-opciones span,.ra5-identidad span,.ra5-declaraciones span{display:grid;gap:3px}.ra5-opciones small,.ra5-identidad small,.ra5-declaraciones small{color:#6a8088;line-height:1.35}.ra5-identidad{grid-template-columns:repeat(3,1fr);margin-top:18px}.ra5-declaraciones{display:grid;gap:10px}.ra5-firma{margin-top:18px}.decision-no .ra5-alcance{opacity:.48}.decision-no .ra5-alcance:after{content:"No se publicara ningun material";grid-column:3;padding:10px;border-radius:10px;background:#fff;color:#475569;text-align:center;font-weight:850}.ra5-envio{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 42px;background:#f1f8f8}.ra5-envio>div{display:flex;align-items:center;gap:12px}.ra5-envio>div>span{font-size:1.6rem}.ra5-envio p{display:grid;margin:0}.ra5-envio small{color:#678087}.ra5-boton{padding:15px 22px;border:0;border-radius:13px;background:linear-gradient(110deg,#087e8b,#075985);color:#fff;font-weight:900;cursor:pointer;box-shadow:0 10px 22px rgba(7,89,133,.2)}.ra5-boton:hover{transform:translateY(-1px)}.ra5-boton:focus-visible{outline:3px solid var(--ra5-gold);outline-offset:3px}.ra5-boton:disabled{opacity:.55;cursor:wait}.ra5-ayuda{display:flex;align-items:center;gap:20px;padding:20px 25px;border:1px dashed #9fc2ca;border-radius:18px;background:#f8fcfc}.ra5-ayuda p{margin:0;color:#607985}.ra5-historial{padding:24px;border:1px solid #d9e6eb;border-radius:22px;background:#fff}.ra5-historial header{display:flex;align-items:center;justify-content:space-between}.ra5-historial header>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e5f5f7;color:#087e8b;font-weight:900}.ra5-historial article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 0;border-top:1px solid #edf2f4}.ra5-historial article>div:nth-child(2){display:grid}.ra5-historial small{color:#71858d}.ra5-estado{padding:7px 10px;border-radius:99px;background:#def7ec;color:#08745c;font-size:.7rem;font-weight:900;text-transform:uppercase}.ra5-estado.revocada{background:#f1f5f9;color:#64748b}.ra5-historial button{border:1px solid #cbd9de;border-radius:9px;background:#fff;color:#8b3a3a;padding:8px 10px;font-weight:800;cursor:pointer}
@media(max-width:860px){.ra5-hero{grid-template-columns:1fr;padding:28px}.ra5-impacto{display:none}.ra5-bloque{grid-template-columns:44px 1fr;padding:28px 22px}.ra5-bloque>.ancho{grid-column:1/-1}.ra5-decision,.ra5-opciones,.ra5-identidad{grid-template-columns:1fr}.ra5-opciones legend,.ra5-identidad legend{grid-column:1}.decision-no .ra5-alcance:after{grid-column:1/-1}.ra5-envio{align-items:stretch;flex-direction:column;padding:22px}.ra5-boton{width:100%}.ra5-ayuda{align-items:flex-start;flex-direction:column}.ra5-historial article{grid-template-columns:1fr}.ra5-historial button{justify-self:start}}
@media(max-width:520px){.ra5-hero h2{font-size:2rem}.ra5-hero{border-radius:20px}.ra5-pasos span{font-size:.62rem;padding:12px 5px}.ra5-bloque{grid-template-columns:1fr}.ra5-numero{width:40px;height:40px}.ra5-bloque>.ancho{grid-column:1}}
/* CONFIGURACION DE FORMULAS PRE RA */
.configuracion-calculo-notas{grid-column:1/-1}.configuracion-calculo-notas>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.estado-autoguardado-config{flex:0 0 auto;padding:6px 10px;border-radius:999px;background:#e8f8ef;color:#08734f;font-size:10px;font-weight:900}.matriz-configuracion-ra{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:10px}.matriz-configuracion-ra>article{display:grid;gap:9px;padding:12px;border:1px solid #d1e3da;border-radius:12px;background:linear-gradient(145deg,#fff,#f2faf6)}.titulo-config-ra{display:flex;justify-content:space-between;align-items:center}.titulo-config-ra strong{display:grid;place-items:center;width:38px;height:34px;border-radius:9px;background:#078557;color:#fff}.titulo-config-ra span{font-size:10px;font-weight:900;color:#587168}.matriz-configuracion-ra label{display:grid;gap:4px}.matriz-configuracion-ra label>span{font-size:9px;font-weight:900;color:#516b62;text-transform:uppercase}.matriz-configuracion-ra select{width:100%;height:38px;border:1px solid #c5d9cf;border-radius:8px;background:#fff;padding:5px 8px;font-weight:800}.interruptor-bonificacion{position:relative!important;display:grid!important;grid-template-columns:42px 1fr!important;align-items:center;gap:8px!important;cursor:pointer}.interruptor-bonificacion input{position:absolute;opacity:0;pointer-events:none}.interruptor-bonificacion>span{position:relative;width:42px;height:23px;border-radius:99px;background:#bdcbc5;transition:.18s}.interruptor-bonificacion>span::after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:.18s}.interruptor-bonificacion input:checked+span{background:#078557}.interruptor-bonificacion input:checked+span::after{transform:translateX(19px)}.interruptor-bonificacion b{font-size:10px;color:#284c40}.interruptor-bonificacion input:focus-visible+span{outline:3px solid rgba(7,133,87,.2)}@media(max-width:1100px){.matriz-configuracion-ra{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.matriz-configuracion-ra{grid-template-columns:1fr}.configuracion-calculo-notas>header{display:grid}}
/* Consulta academica 360: lectura clara para el estudiante */
.consulta-estudiante-360 .curso-cabecera-estrategica { grid-template-columns:minmax(0,1fr) 210px; align-items:center; }
.consulta-estudiante-360 .promedio-principal { min-height:132px; }
.consulta-estudiante-360 .minimo-aprobatorio { display:block; margin-top:3px; padding:4px 9px; border-radius:999px; background:rgba(255,255,255,.15); font-size:11px; font-weight:900; }
.guia-calculo-estudiante { margin-top:14px; border:1px solid rgba(0,132,61,.25); border-left:6px solid var(--verde); border-radius:16px; background:linear-gradient(135deg,#f3fff8,#fffdf5); padding:16px; }
.guia-calculo-estudiante > header { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:12px; }
.guia-calculo-estudiante > header span { color:var(--verde); font-size:10px; font-weight:950; letter-spacing:.08em; }
.guia-calculo-estudiante > header h4 { margin:2px 0 0; color:var(--tinta); font-size:19px; }
.guia-calculo-estudiante > header > b { border-radius:999px; padding:8px 12px; background:#0d3b4c; color:#fff; font-size:12px; white-space:nowrap; }
.formula-principal-estudiante { display:grid; grid-template-columns:52px minmax(0,1fr); gap:10px; align-items:center; border-radius:13px; background:#fff; border:1px solid rgba(13,59,76,.12); padding:10px; }
.formula-principal-estudiante > strong { display:grid; place-items:center; min-height:44px; border-radius:10px; background:var(--verde); color:#fff; font-size:18px; }
.formula-principal-estudiante code { color:var(--tinta); font-family:inherit; font-size:14px; font-weight:950; line-height:1.45; }
.pesos-ra-estudiante { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:9px; }
.pesos-ra-estudiante span { display:flex; justify-content:center; gap:6px; border:1px solid rgba(0,132,61,.15); border-radius:10px; background:#fff; padding:7px; color:var(--muted); font-size:12px; font-weight:850; }
.pesos-ra-estudiante b { color:var(--verde-oscuro); }
.resultado-calculo-estudiante { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-top:10px; }
.resultado-calculo-estudiante article { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 10px; align-items:center; border:1px solid rgba(13,59,76,.11); border-radius:12px; background:#fff; padding:10px 12px; }
.resultado-calculo-estudiante article.oficial { border-color:rgba(0,132,61,.28); background:#eaf9f0; }
.resultado-calculo-estudiante span,.resultado-calculo-estudiante small { color:var(--muted); font-size:10px; font-weight:900; text-transform:uppercase; }
.resultado-calculo-estudiante strong { grid-row:span 2; grid-column:2; color:var(--verde-oscuro); font-size:25px; }
.regla-redondeo-estudiante { margin-top:10px; border-top:1px dashed rgba(13,59,76,.18); padding-top:9px; }
.regla-redondeo-estudiante > summary { display:flex; align-items:center; gap:8px; color:var(--verde-oscuro); cursor:pointer; list-style:none; font-size:13px; }
.regla-redondeo-estudiante > summary::-webkit-details-marker { display:none; }
.regla-redondeo-estudiante > summary span { display:grid; place-items:center; width:24px; height:24px; border-radius:7px; background:var(--verde); color:#fff; font-size:17px; }
.regla-redondeo-estudiante[open] > summary span { font-size:0; }
.regla-redondeo-estudiante[open] > summary span::after { content:'-'; font-size:17px; }
.regla-redondeo-estudiante > div { margin-top:10px; }
.regla-redondeo-estudiante > div > p { margin:0 0 10px; color:var(--muted); font-size:13px; }
.portada-curso-estudiante-compacta { grid-template-columns:130px minmax(0,1fr) 170px; }
.portada-curso-estudiante-compacta .grafico-avance-consulta > div { width:96px; height:96px; }
.consulta-estudiante-360 .pestanas-consulta { position:sticky; top:82px; z-index:8; box-shadow:0 8px 24px rgba(13,59,76,.08); }
.consulta-estudiante-360 .bloque-notas-finales > .formulas-estudiante-visibles { display:none; }
@media (max-width:1100px) {
 .portada-curso-estudiante-compacta { grid-template-columns:1fr; }
 .notas-finales-portada { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .acciones-rapidas-consulta { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px) {
 .consulta-estudiante-360 .curso-cabecera-estrategica { grid-template-columns:1fr; }
 .consulta-estudiante-360 .promedio-principal { min-height:auto; }
 .guia-calculo-estudiante > header { align-items:flex-start; flex-direction:column; }
 .pesos-ra-estudiante { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .resultado-calculo-estudiante { grid-template-columns:1fr; }
 .notas-finales-portada { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .consulta-estudiante-360 .pestanas-consulta { top:68px; }
}
/* Auditoria y restablecimiento masivo de contrasenas */
.panel-restablecimiento-masivo { margin: 14px 0 18px; padding: 16px; border: 1px solid rgba(18,58,82,.16); border-radius: 10px; background: #f7fafc; }
.panel-restablecimiento-masivo h4 { margin: 0 0 4px; color: var(--azul); }
.panel-restablecimiento-masivo .formulario-grid { margin-top: 12px; }
.panel-restablecimiento-masivo .campo-check { display: flex; align-items: center; gap: 8px; }
/* AIPAFA Education A1 - identidad premium y arquitectura visual 2026-07 */
:root {
    --aipafa-navy: #102f57;
    --aipafa-blue: #1469b8;
    --aipafa-cyan: #27a9e1;
    --aipafa-green: #439447;
    --aipafa-lime: #8cc63f;
    --aipafa-gold: #e3ad26;
    --aipafa-ice: #eef7fb;
    --aipafa-ink: #14243a;
    --verde: #248149;
    --verde-oscuro: #145b38;
    --azul: #163f70;
    --azul-profundo: #102f57;
    --fondo: #f3f7fa;
    --linea: #d6e2eb;
    --sombra: 0 20px 55px rgba(16,47,87,.11);
}
body { color: var(--aipafa-ink); }
.pagina-login {
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% 18%, rgba(140,198,63,.20), transparent 30%),
        radial-gradient(circle at 88% 80%, rgba(39,169,225,.22), transparent 34%),
        linear-gradient(135deg, #0b3155 0%, #125d70 52%, #185b42 100%);
}
.login-contenedor { max-width: 1370px; min-height: 790px; border: 1px solid rgba(255,255,255,.42); border-radius: 26px; overflow: hidden; box-shadow: 0 38px 95px rgba(4,26,48,.30); }
.login-marca { position: relative; overflow: hidden; padding: 72px 68px; background: linear-gradient(145deg, rgba(10,52,88,.96), rgba(18,107,89,.92)); }
.login-marca::before { content:"A1"; position:absolute; right:-22px; bottom:-86px; color:rgba(255,255,255,.045); font-size:340px; font-weight:950; line-height:1; }
.login-marca::after { content:""; position:absolute; inset:auto 0 0; height:7px; background:linear-gradient(90deg,var(--aipafa-blue),var(--aipafa-cyan),var(--aipafa-green),var(--aipafa-lime),var(--aipafa-gold)); }
.login-logo-aipafa { position:relative; z-index:1; width:250px; height:150px; object-fit:contain; object-position:center; padding:10px; border-radius:20px; background:#fff; box-shadow:0 20px 45px rgba(3,30,48,.24); }
.login-marca .marca-etiqueta { margin-top:34px; color:#c6f3dd; letter-spacing:.13em; }
.login-marca h1 { max-width:670px; font-size:clamp(38px,4vw,58px); line-height:1.02; letter-spacing:-.045em; }
.login-marca > p:not(.marca-etiqueta) { max-width:680px; color:#e9f5f8; font-size:18px; line-height:1.7; }
.login-metricas span { border-color:rgba(255,255,255,.3); background:rgba(255,255,255,.09); backdrop-filter:blur(8px); }
.login-panel { padding:72px 54px; background:linear-gradient(165deg,#fff 0%,#f8fbfd 60%,#eef8f3 100%); }
.panel-cabecera h2 { color:var(--aipafa-navy); font-size:38px; }
.panel-icono { color:transparent; width:42px; height:42px; border-radius:14px; background:linear-gradient(145deg,var(--aipafa-cyan),var(--aipafa-green)); box-shadow:0 0 0 9px rgba(39,169,225,.10); }
.pagina-login input { min-height:58px; border-radius:12px; border-color:#b9cddd; background:#f8fbff; }
.pagina-login input:focus { border-color:var(--aipafa-blue); box-shadow:0 0 0 4px rgba(20,105,184,.13); }
.pagina-login .boton-principal { min-height:56px; border-radius:12px; background:linear-gradient(135deg,var(--aipafa-blue),var(--aipafa-green)); box-shadow:0 13px 28px rgba(20,105,105,.22); }

.pagina-app { background:#f2f6f9; }
.app-shell { grid-template-columns:272px minmax(0,1fr); }
.pagina-app .barra-lateral { padding:18px 13px; background:linear-gradient(180deg,#0f3157 0%,#104b62 44%,#14563f 100%); border:0; box-shadow:12px 0 35px rgba(8,36,62,.18); color:#fff; }
.lateral-marca { min-height:74px; margin:0; padding:5px 6px 16px; border-color:rgba(255,255,255,.14); }
.logo-lateral-aipafa { flex:0 0 auto; width:58px; height:58px; padding:4px; object-fit:contain; border-radius:15px; background:#fff; box-shadow:0 10px 25px rgba(0,0,0,.22); }
.lateral-marca strong { color:#fff; font-size:18px; letter-spacing:.03em; }
.lateral-marca > div > span { color:#b9dfe4; }
.insignia-a1 { display:inline-grid; place-items:center; min-width:28px; padding:3px 6px; border-radius:7px; background:linear-gradient(135deg,var(--aipafa-lime),var(--aipafa-gold)); color:#17344d; font-size:10px; box-shadow:0 5px 14px rgba(227,173,38,.26); }
.menu-principal { gap:8px; overflow-y:auto; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.28) transparent; }
.menu-zona { border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.075); box-shadow:none; color:#d9eef2; border-radius:11px; letter-spacing:.09em; }
.menu-zona::after { content:"−" !important; color:#d7efda; font-size:18px; }
.menu-zona.colapsado::after { content:"+" !important; }
.menu-grupo { margin-left:8px; padding-left:8px; border-color:rgba(140,198,63,.34); }
.menu-grupo button { min-height:43px; color:#d8e8f0; border-radius:10px; }
.menu-grupo button b { color:#e5f0f4; font-size:13px; }
.menu-grupo button span { background:rgba(255,255,255,.10); color:#cceeff; box-shadow:none; }
.menu-grupo button:hover,.menu-grupo button.activo { background:linear-gradient(100deg,rgba(39,169,225,.92),rgba(67,148,71,.94)); border-color:rgba(255,255,255,.20); box-shadow:0 11px 24px rgba(1,27,42,.25); }
.lateral-pie { color:#d9eef2; background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.15); }
.app-shell:has(.barra-lateral.plegada) { grid-template-columns:86px 1fr; }
.contenido-app { padding:20px 24px; background:radial-gradient(circle at 100% 0,rgba(39,169,225,.08),transparent 30%),linear-gradient(145deg,#f5f8fb,#edf5f1); }
.barra-superior { height:78px; top:12px; border:1px solid #d8e4ec; border-radius:16px; background:rgba(255,255,255,.94); box-shadow:0 14px 38px rgba(16,47,87,.10); }
.barra-superior::before { width:6px; border-radius:16px 0 0 16px; background:linear-gradient(180deg,var(--aipafa-cyan),var(--aipafa-green),var(--aipafa-gold)); }
.barra-superior h1 { color:var(--aipafa-navy); font-size:24px; }
.barra-superior .subtitulo { color:#527087; }
.boton-usuario { border-radius:12px; border-color:#d7e4ec; background:#f8fbfd; }
.panel { border-radius:16px; border-color:#d7e4eb; box-shadow:var(--sombra); }
.panel::before { background:linear-gradient(90deg,var(--aipafa-blue),var(--aipafa-cyan),var(--aipafa-green),var(--aipafa-lime),var(--aipafa-gold)); }

.boton-plegar-segmento { flex:0 0 auto; display:inline-flex; align-items:center; gap:7px; min-height:34px; margin-left:auto; padding:5px 10px 5px 6px; border:1px solid #cbdde8; border-radius:10px; background:#f6fafc; color:var(--aipafa-navy); font-size:11px; font-weight:800; cursor:pointer; }
.boton-plegar-segmento span { display:grid; place-items:center; width:22px; height:22px; border-radius:7px; background:var(--aipafa-navy); color:#fff; font-size:16px; }
.boton-plegar-segmento:hover { border-color:var(--aipafa-blue); background:#eaf5fb; }
.segmento-plegado > :not(header) { display:none !important; }
.segmento-plegado > header { margin-bottom:0 !important; border-bottom:0 !important; }
.segmento-plegado { padding-bottom:10px !important; }

.panel-configuracion { padding:20px; }
.configuracion-cabecera { min-height:115px; margin:-4px -4px 18px !important; padding:22px 24px !important; border:0 !important; border-radius:14px; background:linear-gradient(125deg,#102f57,#126676 62%,#2b7c4c); color:#fff; }
.configuracion-cabecera h2 { margin:5px 0 6px; color:#fff !important; font-size:30px; }
.configuracion-cabecera p { max-width:820px; margin:0; color:#dcedf3; line-height:1.55; }
.configuracion-sello { display:inline-block; padding:5px 9px; border:1px solid rgba(255,255,255,.24); border-radius:999px; background:rgba(255,255,255,.10); color:#dff4bf; font-size:10px; font-weight:900; letter-spacing:.13em; }
.configuracion-cabecera .icono-boton { border-color:rgba(255,255,255,.24); background:rgba(255,255,255,.12); color:#fff; }
.pestanas-configuracion { display:grid !important; grid-template-columns:repeat(4,minmax(150px,1fr)); gap:10px; margin:0 0 20px; padding:0 !important; background:transparent !important; }
.pestanas-configuracion button { display:grid; grid-template-columns:38px 1fr; grid-template-rows:auto auto; column-gap:10px; align-items:center; min-height:72px; padding:10px 12px; border:1px solid #d7e3eb; border-radius:12px; background:#fff; color:var(--aipafa-ink); text-align:left; box-shadow:0 7px 18px rgba(16,47,87,.05); }
.pestanas-configuracion button > span { grid-row:1/3; display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:#eaf4f9; font-size:19px; }
.pestanas-configuracion button strong { align-self:end; font-size:13px; }
.pestanas-configuracion button small { align-self:start; color:#718598; font-size:10px; }
.pestanas-configuracion button:hover { transform:translateY(-2px); border-color:#75b8d8; }
.pestanas-configuracion button.activo { border-color:transparent; background:linear-gradient(125deg,var(--aipafa-blue),#187d82); color:#fff; box-shadow:0 13px 27px rgba(20,105,150,.21); }
.pestanas-configuracion button.activo > span { background:rgba(255,255,255,.17); }
.pestanas-configuracion button.activo small { color:#daf2f1; }
.configuracion-cuerpo { padding:4px; }
.configuracion-cuerpo > article,.panel-configuracion-operativa { border:1px solid #d9e4ea; border-radius:13px; background:#fff; box-shadow:0 8px 22px rgba(16,47,87,.055); }

@media (max-width:1100px) { .pestanas-configuracion { grid-template-columns:repeat(2,minmax(160px,1fr)); } }
@media (max-width:920px) {
    .app-shell { grid-template-columns:1fr; }
    .pagina-app .barra-lateral { position:fixed; inset:0 auto 0 0; width:min(310px,88vw); z-index:100; transform:translateX(-105%); }
    .pagina-app .barra-lateral.visible { transform:translateX(0); }
    .contenido-app { padding:12px; }
    .barra-superior { top:7px; }
}
@media (max-width:720px) {
    .login-contenedor { min-height:100vh; border-radius:0; }
    .login-marca { padding:35px 24px; }
    .login-logo-aipafa { width:190px; height:110px; }
    .login-marca h1 { font-size:36px; }
    .login-panel { padding:38px 24px; }
    .pestanas-configuracion { grid-template-columns:1fr; }
    .configuracion-cabecera { padding:18px !important; }
    .configuracion-cabecera h2 { font-size:24px; }
    .boton-plegar-segmento b { display:none; }
    .pie-sistema { text-align:center; }
}

/* Login AIPAFA: composicion compacta, sin scroll de escritorio */
@media (min-width: 721px) {
 html:has(.pagina-login), body.pagina-login { height:100%; overflow:hidden; }
 body.pagina-login { display:grid; place-items:center; padding:20px; }
 .pagina-login .login-contenedor { width:min(1240px,calc(100vw - 40px)); height:min(720px,calc(100dvh - 40px)); min-height:580px; grid-template-columns:56% 44%; }
 .pagina-login .login-marca { display:flex; flex-direction:column; justify-content:center; padding:44px 58px; }
 .pagina-login .login-logo-aipafa { width:228px; height:96px; padding:0; object-fit:cover; object-position:center 42%; border-radius:16px; }
 .pagina-login .login-marca .marca-etiqueta { margin:26px 0 0; }
 .pagina-login .login-marca h1 { max-width:590px; margin:12px 0 0; font-size:clamp(38px,3.25vw,52px); line-height:.99; }
 .pagina-login .login-marca > p:not(.marca-etiqueta) { max-width:590px; margin:24px 0 0; font-size:16px; line-height:1.55; }
 .pagina-login .login-metricas { margin-top:30px; }
 .pagina-login .login-panel { display:flex; flex-direction:column; justify-content:center; padding:42px 48px; }
 .pagina-login .panel-cabecera { margin-bottom:28px; }
 .pagina-login .panel-cabecera h2 { font-size:34px; }
 .pagina-login form { gap:15px; }
 .pagina-login input { min-height:54px; }
 .pagina-login .login-acciones { margin-top:2px; }
 .pagina-login .ayuda-recuperacion { margin:-4px 0 0; font-size:12px; line-height:1.4; }
 .pagina-login .ayuda-login { margin-top:2px; padding:12px 14px; font-size:13px; line-height:1.45; }
}
@media (min-width:721px) and (max-height:700px) {
 .pagina-login .login-contenedor { height:calc(100dvh - 24px); min-height:0; }
 .pagina-login .login-marca { padding:28px 44px; }
 .pagina-login .login-logo-aipafa { width:190px; height:78px; }
 .pagina-login .login-marca .marca-etiqueta { margin-top:18px; }
 .pagina-login .login-marca h1 { font-size:40px; }
 .pagina-login .login-marca > p:not(.marca-etiqueta) { margin-top:17px; }
 .pagina-login .login-metricas { margin-top:20px; }
 .pagina-login .login-panel { padding:28px 40px; }
 .pagina-login .panel-cabecera { margin-bottom:18px; }
 .pagina-login .ayuda-recuperacion { display:none; }
}

/* EVACUR Login 03 — dirección editorial AIPAFA, sin teal ni panel partido */
.pagina-login {
 --login-ink:#0b1730; --login-blue:#3158ff; --login-gold:#f2b441; --login-paper:#f3efe6;
 background:
  linear-gradient(rgba(11,23,48,.035) 1px,transparent 1px),
  linear-gradient(90deg,rgba(11,23,48,.035) 1px,transparent 1px),
  var(--login-paper) !important;
 background-size:36px 36px !important;
}
@media (min-width:721px) {
 body.pagina-login { padding:28px 42px !important; }
 .pagina-login .login-contenedor {
  width:min(1420px,calc(100vw - 84px)) !important;
  height:min(760px,calc(100dvh - 56px)) !important;
  min-height:590px !important;
  grid-template-columns:minmax(0,1fr) 460px !important;
  gap:54px !important;
  overflow:visible !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
 }
 .pagina-login .login-marca {
  position:relative;
  justify-content:center !important;
  padding:56px 70px !important;
  overflow:hidden;
  border-radius:30px !important;
  background:var(--login-ink) !important;
  box-shadow:0 35px 75px rgba(11,23,48,.22) !important;
 }
 .pagina-login .login-marca::before {
  content:"" !important; inset:0 !important;
  background:radial-gradient(circle at 78% 18%,rgba(49,88,255,.32),transparent 29%),linear-gradient(115deg,transparent 68%,rgba(242,180,65,.10)) !important;
  font-size:0 !important;
 }
 .pagina-login .login-marca::after { inset:0 auto 0 0 !important; width:7px !important; height:auto !important; background:var(--login-gold) !important; }
 .pagina-login .login-logo-aipafa {
  width:205px !important; height:174px !important; padding:0 !important;
  object-fit:contain !important; object-position:center !important;
  border-radius:0 !important; background:transparent !important; box-shadow:none !important;
  filter:drop-shadow(0 16px 24px rgba(0,0,0,.22));
 }
 .pagina-login .login-marca .marca-etiqueta { margin:25px 0 0 !important; color:var(--login-gold) !important; font-size:12px; letter-spacing:.18em !important; }
 .pagina-login .login-marca h1 { max-width:680px !important; margin:13px 0 0 !important; color:#fff !important; font-size:clamp(40px,3.5vw,58px) !important; line-height:.98 !important; letter-spacing:-.05em !important; }
 .pagina-login .login-marca > p:not(.marca-etiqueta) { max-width:650px !important; margin:25px 0 0 !important; color:#c7d1e2 !important; font-size:16px !important; line-height:1.55 !important; }
 .pagina-login .login-metricas { display:grid !important; grid-template-columns:repeat(3,auto); justify-content:start; gap:0 !important; margin-top:32px !important; }
 .pagina-login .login-metricas span { padding:0 18px !important; border:0 !important; border-right:1px solid rgba(255,255,255,.22) !important; border-radius:0 !important; background:transparent !important; color:#fff !important; font-size:12px !important; }
 .pagina-login .login-metricas span:first-child { padding-left:0 !important; }
 .pagina-login .login-metricas span:last-child { border-right:0 !important; }
 .pagina-login .login-panel {
  align-self:center; justify-content:center !important;
  min-height:600px; padding:48px 44px !important;
  border:1px solid rgba(11,23,48,.08); border-radius:28px !important;
  background:rgba(255,255,255,.94) !important;
  box-shadow:0 30px 70px rgba(11,23,48,.13) !important;
 }
 .pagina-login .panel-cabecera { margin-bottom:32px !important; }
 .pagina-login .panel-icono { width:10px !important; height:54px !important; border-radius:999px !important; background:var(--login-gold) !important; box-shadow:none !important; }
 .pagina-login .panel-cabecera .subtitulo { color:#687187 !important; letter-spacing:.08em; }
 .pagina-login .panel-cabecera h2 { color:var(--login-ink) !important; font-size:36px !important; letter-spacing:-.035em; }
 .pagina-login label > span { color:var(--login-ink) !important; font-size:13px; }
 .pagina-login input { min-height:56px !important; border:1px solid #d6dbe5 !important; border-radius:12px !important; background:#fff !important; color:var(--login-ink) !important; box-shadow:none !important; }
 .pagina-login input:focus { border-color:var(--login-blue) !important; box-shadow:0 0 0 4px rgba(49,88,255,.10) !important; }
 .pagina-login .boton-principal { min-height:54px !important; border-radius:12px !important; background:var(--login-blue) !important; box-shadow:0 13px 28px rgba(49,88,255,.24) !important; }
 .pagina-login .boton-texto { color:var(--login-ink) !important; }
 .pagina-login .ayuda-login { border-left-color:var(--login-gold) !important; background:#faf8f2 !important; }
 .pagina-login .ayuda-recuperacion { color:#697386 !important; }
}
@media (min-width:721px) and (max-height:700px) {
 .pagina-login .login-contenedor { height:calc(100dvh - 24px) !important; }
 .pagina-login .login-marca { padding:28px 52px !important; }
 .pagina-login .login-logo-aipafa { width:145px !important; height:122px !important; }
 .pagina-login .login-marca h1 { font-size:42px !important; }
 .pagina-login .login-panel { min-height:0; padding:28px 38px !important; }
}
@media (max-width:720px) {
 .pagina-login { background:var(--login-paper) !important; }
 .pagina-login .login-marca { background:var(--login-ink) !important; }
 .pagina-login .login-logo-aipafa { width:150px !important; height:128px !important; padding:0 !important; object-fit:contain !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; }
 .pagina-login .login-panel { background:#fff !important; }
}

/* EVACUR Login 04 — ajuste de densidad y lockup tipografico */
@media (min-width:721px) {
 body.pagina-login { padding:22px 36px !important; }
 .pagina-login .login-contenedor {
  width:min(1320px,calc(100vw - 72px)) !important;
  height:auto !important; min-height:0 !important;
  grid-template-columns:minmax(0,1fr) 430px !important;
  gap:42px !important; align-items:center !important;
 }
 .pagina-login .login-marca {
  min-height:620px !important; max-height:calc(100dvh - 44px) !important;
  padding:46px 64px !important;
 }
 .pagina-login .login-identidad-aipafa { position:relative; z-index:1; display:flex; align-items:center; gap:16px; width:max-content; }
 .pagina-login .login-logo-aipafa { width:112px !important; height:82px !important; flex:0 0 auto; }
 .pagina-login .login-identidad-aipafa > div { display:grid; gap:2px; }
 .pagina-login .login-identidad-aipafa strong { color:#fff; font-size:21px; line-height:1; letter-spacing:-.025em; }
 .pagina-login .login-identidad-aipafa span { color:#91a5c6; font-size:11px; letter-spacing:.04em; }
 .pagina-login .login-marca .marca-etiqueta { margin-top:31px !important; }
 .pagina-login .login-marca h1 { max-width:720px !important; font-size:clamp(40px,3.1vw,54px) !important; }
 .pagina-login .login-marca > p:not(.marca-etiqueta) { margin-top:22px !important; }
 .pagina-login .login-metricas { margin-top:27px !important; }
 .pagina-login .login-panel {
  min-height:0 !important; height:auto !important;
  padding:38px 40px 34px !important;
 }
 .pagina-login .panel-cabecera { margin-bottom:25px !important; }
 .pagina-login .panel-cabecera h2 { font-size:33px !important; }
 .pagina-login form { gap:13px !important; }
 .pagina-login input { min-height:52px !important; }
 .pagina-login .boton-principal { min-height:50px !important; }
 .pagina-login .ayuda-recuperacion { font-size:11px !important; line-height:1.35 !important; }
 .pagina-login .ayuda-login { padding:10px 12px !important; font-size:12px !important; line-height:1.4 !important; }
}
@media (min-width:721px) and (max-height:700px) {
 .pagina-login .login-marca { min-height:calc(100dvh - 24px) !important; padding:25px 48px !important; }
 .pagina-login .login-logo-aipafa { width:90px !important; height:65px !important; }
 .pagina-login .login-marca .marca-etiqueta { margin-top:18px !important; }
 .pagina-login .login-marca h1 { font-size:40px !important; }
 .pagina-login .login-panel { padding:25px 34px !important; }
}
@media (max-width:720px) {
 .pagina-login .login-identidad-aipafa { position:relative; z-index:1; display:flex; align-items:center; gap:12px; }
 .pagina-login .login-logo-aipafa { width:88px !important; height:66px !important; }
 .pagina-login .login-identidad-aipafa > div { display:grid; }
 .pagina-login .login-identidad-aipafa strong { color:#fff; font-size:18px; }
 .pagina-login .login-identidad-aipafa span { color:#91a5c6; font-size:10px; }
}

/* Centro flotante global de procesos A1 */
.proceso-global-flotante {
 position:fixed; right:24px; bottom:24px; z-index:99998;
 width:min(430px,calc(100vw - 32px)); padding:17px;
 border:1px solid rgba(49,88,255,.18); border-radius:18px;
 background:rgba(255,255,255,.97); color:#0b1730;
 box-shadow:0 26px 70px rgba(11,23,48,.24);
 backdrop-filter:blur(18px); transform:translateY(25px) scale(.97);
 opacity:0; pointer-events:none; transition:opacity .2s ease,transform .25s ease;
 overflow:hidden;
}
.proceso-global-flotante::before { content:""; position:absolute; inset:0 0 auto; height:4px; background:linear-gradient(90deg,#3158ff,#27a9e1,#f2b441); }
.proceso-global-flotante.visible { opacity:1; transform:translateY(0) scale(1); }
.proceso-global-flotante header { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:11px; align-items:center; }
.proceso-global-marca { position:relative; display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:#0b1730; color:#fff; font-size:11px; font-weight:950; box-shadow:0 8px 20px rgba(11,23,48,.2); }
.proceso-global-marca i { position:absolute; inset:-3px; border:2px solid rgba(49,88,255,.22); border-top-color:#3158ff; border-radius:15px; animation:proceso-giro 1.1s linear infinite; }
.proceso-global-flotante header small,.proceso-global-flotante header strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.proceso-global-flotante header small { color:#7a869a; font-size:9px; font-weight:900; letter-spacing:.1em; }
.proceso-global-flotante header strong { margin-top:3px; color:#0b1730; font-size:15px; }
.proceso-global-flotante header > b { color:#3158ff; font-size:18px; }
.proceso-global-barra { height:9px; margin:15px 0 9px; overflow:hidden; border-radius:999px; background:#e9edf5; box-shadow:inset 0 1px 2px rgba(11,23,48,.08); }
.proceso-global-barra i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#3158ff,#27a9e1); transition:width .35s ease; position:relative; }
.proceso-global-barra i::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent); animation:proceso-brillo 1.1s linear infinite; }
.proceso-global-detalle { display:flex; justify-content:space-between; gap:10px; color:#536176; font-size:11px; font-weight:800; }
.proceso-global-detalle time { color:#0b1730; font-variant-numeric:tabular-nums; }
.proceso-global-flotante footer { display:grid; grid-template-columns:9px minmax(0,1fr) auto; gap:8px; align-items:center; margin-top:13px; padding-top:11px; border-top:1px solid #edf0f5; }
.proceso-global-flotante footer p { margin:0; color:#69758a; font-size:10px; }
.proceso-global-flotante footer em { color:#8290a5; font-size:9px; font-style:normal; font-weight:800; }
.proceso-global-pulso { width:8px; height:8px; border-radius:50%; background:#3158ff; box-shadow:0 0 0 0 rgba(49,88,255,.35); animation:proceso-pulso 1.3s ease infinite; }
.proceso-global-flotante.correcto { border-color:rgba(35,139,83,.28); }
.proceso-global-flotante.correcto::before,.proceso-global-flotante.correcto .proceso-global-barra i { background:#238b53; }
.proceso-global-flotante.correcto .proceso-global-marca i { border-top-color:#238b53; animation:none; }
.proceso-global-flotante.correcto header > b { color:#238b53; }
.proceso-global-flotante.fallido { border-color:rgba(190,54,48,.32); }
.proceso-global-flotante.fallido::before,.proceso-global-flotante.fallido .proceso-global-barra i { background:#be3630; }
.proceso-global-flotante.fallido .proceso-global-marca i { border-top-color:#be3630; animation:none; }
.proceso-global-flotante.fallido header > b { color:#be3630; }
@keyframes proceso-giro { to { transform:rotate(360deg); } }
@keyframes proceso-brillo { from { transform:translateX(-100%); } to { transform:translateX(100%); } }
@keyframes proceso-pulso { 70% { box-shadow:0 0 0 7px rgba(49,88,255,0); } }
@media (max-width:600px) { .proceso-global-flotante { right:16px; bottom:16px; padding:14px; } .proceso-global-flotante footer em { display:none; } }
@media (prefers-reduced-motion:reduce) { .proceso-global-flotante * { animation-duration:.01ms !important; } }

/* Seguridad reforzada para restablecimiento masivo */
.confirmacion-segura-masiva { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(320px,1.2fr); gap:14px 20px; align-items:center; padding:18px; border:1px solid #edc770; border-left:6px solid #d99116; border-radius:13px; background:linear-gradient(110deg,#fff9ea,#fff); box-shadow:0 8px 22px rgba(128,82,8,.07); }
.confirmacion-segura-masiva > div strong,.confirmacion-segura-masiva > div small { display:block; }
.confirmacion-segura-masiva > div strong { color:#6d4200; font-size:15px; }
.confirmacion-segura-masiva > div small { margin-top:5px; color:#7a6b53; line-height:1.4; }
.confirmacion-segura-masiva > label { margin:0; }
.confirmacion-segura-masiva .campo-check { grid-column:1/-1; padding:11px 13px; border:1px solid #ead9b3; border-radius:9px; background:#fffdf7; }
.confirmacion-segura-masiva input[type="password"] { border-color:#d8b66d; }
.confirmacion-segura-masiva input[type="password"]:focus { border-color:#b9780c; box-shadow:0 0 0 4px rgba(217,145,22,.12); }
@media (max-width:800px) { .confirmacion-segura-masiva { grid-template-columns:1fr; } .confirmacion-segura-masiva .campo-check { grid-column:auto; } }

/* Evaluador institucional RA5 */
.herramientas-ra5-modos .acciones{flex-wrap:wrap}.boton-modo-ra5{border:1px solid #0b8061;border-radius:10px;padding:.62rem .85rem;background:#fff;color:#075a47;font-weight:800;cursor:pointer}.boton-modo-ra5:hover,.boton-modo-ra5.activo{background:#087b5e;color:#fff}.aviso-evaluador-ra5{padding:1rem;border-left:5px solid #078a58;border-radius:12px;background:#effcf7;margin-bottom:1rem}.aviso-evaluador-ra5 p{margin:.35rem 0 0;color:#526661}.evaluador-ra5{display:grid;gap:1rem;max-height:72vh;overflow:auto;padding:.15rem}.evaluador-ra5 fieldset{border:1px solid #cfe1da;border-radius:14px;padding:1rem}.evaluador-ra5 legend{padding:0 .5rem;color:#075a47;font-weight:900}.ra5-formula{padding:.85rem;border-radius:12px;background:#073f35;color:#fff;text-align:center}.grid-formato-ra5{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:.75rem}.grid-formato-ra5 .ancho{grid-column:1/-1}.evaluador-ra5 label{display:grid;gap:.28rem}.evaluador-ra5 label span{font-size:.75rem;font-weight:800;color:#405b53}.evaluador-ra5 input,.evaluador-ra5 select,.evaluador-ra5 textarea{width:100%;border:1px solid #b9d2c9;border-radius:8px;padding:.55rem;background:#fff}.tabla-formato-ra5{display:grid;gap:.3rem}.tabla-formato-ra5 .fila{display:grid;grid-template-columns:minmax(190px,1.4fr) 55px 90px minmax(180px,1fr);gap:.5rem;align-items:center;padding:.35rem;border-bottom:1px solid #e2ece8}.tabla-formato-ra5 .cab{background:#e8f4ef;border-radius:8px}.penalizaciones-ra5{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-top:1rem}.resumen-formato-ra5{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem}.resumen-formato-ra5 span,.resumen-formato-ra5>strong{padding:.6rem .8rem;border-radius:9px;background:#edf7f3}.resumen-formato-ra5>strong{background:#087b5e;color:#fff}.estudiantes-formato-ra5{display:grid;gap:.8rem}.estudiantes-formato-ra5 article{border:1px solid #d4e4de;border-radius:12px;padding:.8rem}.estudiantes-formato-ra5 article header,.estudiantes-formato-ra5 article footer{display:flex;justify-content:space-between;gap:1rem}.criterios-exp-ra5{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;margin:.7rem 0}.estudiantes-formato-ra5 article footer{justify-content:flex-end}.estudiantes-formato-ra5 article footer>*{padding:.45rem .7rem;border-radius:8px;background:#edf7f3}.estudiantes-formato-ra5 article footer strong{background:#e2a900;color:#172b25}@media(max-width:850px){.grid-formato-ra5,.penalizaciones-ra5,.criterios-exp-ra5{grid-template-columns:1fr 1fr}.tabla-formato-ra5 .fila{grid-template-columns:1fr 55px 75px}.tabla-formato-ra5 .fila>*:last-child{grid-column:1/-1}.resumen-formato-ra5{flex-wrap:wrap}.herramientas-ra5-modos{flex-direction:column}.herramientas-ra5-modos .acciones{width:100%}}@media(max-width:520px){.grid-formato-ra5,.penalizaciones-ra5,.criterios-exp-ra5{grid-template-columns:1fr}}

/* Formato RA5 oficial: espacio de trabajo amplio */
.modal.modal-ra5-oficial{width:min(1500px,calc(100vw - 32px));height:calc(100vh - 28px);max-width:none;border-radius:12px;background:#e7ecea;overflow:hidden}.modal-ra5-oficial .modal-caja{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#e7ecea}.modal-ra5-oficial .modal-caja>header{cursor:default;background:#fff;padding:15px 22px;border-bottom:1px solid #c7d2ce}.modal-ra5-oficial .modal-caja>header h2{font-size:1.2rem}.modal-ra5-oficial #modal-contenido{max-height:none;overflow:auto;padding:20px 28px 40px;scroll-behavior:smooth}.modal-ra5-oficial .modal-caja>footer{position:relative;z-index:5;background:#fff;padding:12px 22px;box-shadow:0 -5px 20px rgba(17,46,38,.08)}.modal-ra5-oficial .evaluador-ra5{display:block;max-width:1280px;max-height:none;overflow:visible;margin:0 auto;padding:0;background:#fff;border:1px solid #bdc9c5;box-shadow:0 10px 35px rgba(24,47,41,.12);font-family:Arial,sans-serif;color:#17241f}.encabezado-oficial-ra5{display:grid;grid-template-columns:190px 1fr 230px;align-items:stretch;border-bottom:2px solid #075b4b;min-height:98px}.encabezado-oficial-ra5>div{display:flex;flex-direction:column;justify-content:center;padding:14px 18px;border-right:1px solid #9eb4ad}.encabezado-oficial-ra5>div:last-child{border-right:0;font-size:.76rem;line-height:1.55}.encabezado-oficial-ra5>div:nth-child(2){align-items:center;text-align:center;font-size:1.08rem;line-height:1.45}.encabezado-oficial-ra5>div:nth-child(2) span{font-weight:800;color:#075b4b}.marca-oficial-ra5{align-items:center;text-align:center}.marca-oficial-ra5 strong{font-family:Georgia,serif;font-size:2.1rem;color:#9b191f;letter-spacing:.08em}.marca-oficial-ra5 span{font-size:.66rem;color:#555}.navegacion-formato-ra5{position:sticky;top:-20px;z-index:4;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:0;background:#173e35;border-bottom:4px solid #d8a600}.navegacion-formato-ra5 button{display:flex;align-items:center;justify-content:center;gap:.55rem;border:0;padding:.8rem;background:#173e35;color:#fff;font-weight:800;cursor:pointer}.navegacion-formato-ra5 button span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:rgba(255,255,255,.16)}.navegacion-formato-ra5 button:hover,.navegacion-formato-ra5 button.activo{background:#087b5e}.modal-ra5-oficial .ra5-formula{margin:22px 24px 0;border-radius:0;background:#eef8f4;border:1px solid #8ebaae;color:#173e35;font-size:1rem}.modal-ra5-oficial .evaluador-ra5 fieldset{margin:22px 24px;border:1px solid #708b82;border-radius:0;padding:0 14px 16px;scroll-margin-top:70px}.modal-ra5-oficial .evaluador-ra5 legend{padding:7px 12px;background:#075b4b;color:#fff;font-size:.92rem;letter-spacing:.02em}.modal-ra5-oficial .grid-formato-ra5{grid-template-columns:1.4fr 1fr .8fr .8fr;padding-top:14px}.modal-ra5-oficial .evaluador-ra5 input,.modal-ra5-oficial .evaluador-ra5 select,.modal-ra5-oficial .evaluador-ra5 textarea{border:0;border-bottom:1px dotted #53675f;border-radius:0;padding:.48rem .35rem;background:#fbfdfc}.modal-ra5-oficial .evaluador-ra5 input:focus,.modal-ra5-oficial .evaluador-ra5 textarea:focus,.modal-ra5-oficial .evaluador-ra5 select:focus{outline:2px solid #51a78c;outline-offset:1px;background:#fff}.modal-ra5-oficial .tabla-formato-ra5{border:1px solid #849991;margin-top:14px;gap:0}.modal-ra5-oficial .tabla-formato-ra5 .fila{grid-template-columns:210px minmax(300px,1fr) 62px 92px minmax(210px,.8fr);gap:0;padding:0;border:0}.modal-ra5-oficial .tabla-formato-ra5 .fila>*{height:100%;display:flex;align-items:center;padding:10px;border-right:1px solid #a8b7b2;border-bottom:1px solid #a8b7b2}.modal-ra5-oficial .tabla-formato-ra5 .fila>*:last-child{border-right:0}.modal-ra5-oficial .tabla-formato-ra5 .fila:last-child>*{border-bottom:0}.modal-ra5-oficial .tabla-formato-ra5 .cab{background:#dcebe6;color:#123f34;text-align:center}.modal-ra5-oficial .tabla-formato-ra5 .cab>*{justify-content:center}.desempeno-ra5{font-size:.8rem;line-height:1.4;color:#3f514b}.subtitulo-oficial-ra5{margin:22px 0 0;padding:8px 12px;background:#075b4b;color:#fff;font-size:.9rem}.modal-ra5-oficial .penalizaciones-ra5{grid-template-columns:repeat(4,1fr);border:1px solid #849991;margin-top:0;gap:0}.modal-ra5-oficial .penalizaciones-ra5 label{padding:12px;border-right:1px solid #a8b7b2}.modal-ra5-oficial .penalizaciones-ra5 label:last-child{border:0}.modal-ra5-oficial .resumen-formato-ra5{padding:14px 0 0}.ayuda-oficial-ra5{margin:14px 0;padding:10px 12px;background:#fff8df;border-left:4px solid #d8a600;color:#554a27}.modal-ra5-oficial .estudiantes-formato-ra5 article{padding:0;border-color:#849991;border-radius:0;margin-bottom:14px}.modal-ra5-oficial .estudiantes-formato-ra5 article>header{padding:10px 14px;background:#dcebe6;color:#123f34}.modal-ra5-oficial .criterios-exp-ra5{grid-template-columns:repeat(7,1fr);gap:0;margin:0}.modal-ra5-oficial .criterios-exp-ra5 label{padding:10px;border-right:1px solid #a8b7b2}.modal-ra5-oficial .criterios-exp-ra5 label:last-child{border:0}.modal-ra5-oficial .estudiantes-formato-ra5 article>footer{padding:10px 14px;border-top:1px solid #a8b7b2}.boton-guardar-ra5,.boton-secundario-ra5{border-radius:9px;padding:.72rem 1.05rem;font-weight:900;cursor:pointer}.boton-guardar-ra5{border:1px solid #087b5e;background:#087b5e;color:#fff}.boton-secundario-ra5{border:1px solid #9aaba5;background:#fff;color:#344b44}@media(max-width:1000px){.modal.modal-ra5-oficial{width:calc(100vw - 12px);height:calc(100vh - 12px)}.modal-ra5-oficial #modal-contenido{padding:10px}.encabezado-oficial-ra5{grid-template-columns:140px 1fr}.encabezado-oficial-ra5>div:last-child{grid-column:1/-1;border-top:1px solid #9eb4ad}.modal-ra5-oficial .tabla-formato-ra5{overflow-x:auto}.modal-ra5-oficial .tabla-formato-ra5 .fila{min-width:900px}.modal-ra5-oficial .criterios-exp-ra5{grid-template-columns:repeat(4,1fr)}}@media(max-width:650px){.encabezado-oficial-ra5{grid-template-columns:1fr}.encabezado-oficial-ra5>div{border-right:0;border-bottom:1px solid #9eb4ad}.navegacion-formato-ra5{grid-template-columns:1fr 1fr}.modal-ra5-oficial .grid-formato-ra5,.modal-ra5-oficial .penalizaciones-ra5,.modal-ra5-oficial .criterios-exp-ra5{grid-template-columns:1fr}.modal-ra5-oficial .evaluador-ra5 fieldset{margin:14px 10px}.modal-ra5-oficial .ra5-formula{margin:14px 10px 0}.modal-ra5-oficial .penalizaciones-ra5 label,.modal-ra5-oficial .criterios-exp-ra5 label{border-right:0;border-bottom:1px solid #a8b7b2}}

/* Pestañas y acciones documentales RA5 */
.modal-ra5-oficial .navegacion-formato-ra5{display:flex;align-items:flex-end;gap:6px;padding:12px 18px 0;background:#e4ebe8;border-bottom:1px solid #8ca39b}.modal-ra5-oficial .navegacion-formato-ra5 button{position:relative;bottom:-1px;flex:0 1 270px;justify-content:flex-start;border:1px solid #8ca39b;border-bottom:0;border-radius:9px 9px 0 0;padding:12px 16px;background:#d4dfdb;color:#345149}.modal-ra5-oficial .navegacion-formato-ra5 button.activo{background:#fff;color:#075b4b;padding-top:15px}.modal-ra5-oficial .navegacion-formato-ra5 button.activo:after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:3px;background:#fff}.modal-ra5-oficial fieldset[hidden]{display:none!important}.acciones-documento-ra5{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:11px 24px;border-bottom:1px solid #c5d2cd;background:#fff8df}.acciones-documento-ra5>div:first-child{display:grid}.acciones-documento-ra5 span{font-size:.75rem;color:#695d34}.acciones-documento-ra5 button{margin-left:6px;border:1px solid #806b24;border-radius:7px;padding:8px 12px;background:#fff;color:#4b411f;font-weight:800;cursor:pointer}.acciones-documento-ra5 button:hover{background:#173e35;color:#fff}.constancia-ra5-estudiante{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:18px;padding:20px;border:1px solid #c99c22;border-left:6px solid #c99c22;border-radius:14px;background:linear-gradient(110deg,#fff9e6,#fff)}.constancia-ra5-estudiante span{font-size:.7rem;font-weight:900;color:#8b6500}.constancia-ra5-estudiante h4{margin:.25rem 0}.constancia-ra5-estudiante p{margin:0;color:#65736e}.constancia-ra5-estudiante>div:last-child{display:flex;gap:8px}.constancia-ra5-estudiante button{white-space:nowrap;border:1px solid #087b5e;border-radius:8px;padding:10px 13px;background:#087b5e;color:#fff;font-weight:800;cursor:pointer}.constancia-ra5-estudiante button:first-child{background:#fff;color:#087b5e}@media(max-width:760px){.modal-ra5-oficial .navegacion-formato-ra5{overflow-x:auto}.modal-ra5-oficial .navegacion-formato-ra5 button{min-width:190px}.acciones-documento-ra5,.constancia-ra5-estudiante{align-items:flex-start;flex-direction:column}.acciones-documento-ra5 button{margin:3px 3px 3px 0}.constancia-ra5-estudiante>div:last-child{width:100%;flex-wrap:wrap}}

/* RA5: pestañas de modalidad y selector integrado sin ventanas superpuestas */
.selector-modo-ra5{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:12px;border-bottom:1px solid #9bb2aa;background:#edf3f1}.pestanas-modo-ra5{display:flex;align-items:flex-end;gap:6px;padding:10px 14px 0}.pestanas-modo-ra5 button{position:relative;bottom:-1px;border:1px solid #9bb2aa;border-bottom:0;border-radius:10px 10px 0 0;padding:12px 20px;background:#d9e3df;color:#3a554d;font-weight:900;cursor:pointer}.pestanas-modo-ra5 button.activa{padding-top:15px;background:#fff;color:#075b4b}.pestanas-modo-ra5 button.activa:after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:3px;background:#fff}.acciones-ra5-iconos{display:flex;gap:7px;padding:0 14px 8px}.panel-grupos-ra5{margin:0 0 14px;border:1px solid #b8cec6;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(22,60,50,.08);overflow:hidden}.panel-grupos-ra5>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;background:linear-gradient(110deg,#effaf6,#fff9e8);border-bottom:1px solid #cadbd5}.panel-grupos-ra5>header small{font-weight:900;color:#087b5e}.panel-grupos-ra5>header h3{margin:.2rem 0;font-size:1.15rem}.panel-grupos-ra5>header p{margin:0;color:#63756f}.panel-grupos-ra5>header>span{white-space:nowrap;padding:7px 11px;border-radius:999px;background:#087b5e;color:#fff;font-weight:800}.lista-grupos-ra5{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:10px;max-height:390px;overflow:auto;padding:16px}.tarjeta-grupo-ra5{position:relative;display:flex!important;align-items:center;gap:12px;min-height:76px;padding:13px 15px!important;border:1px solid #c4d6cf!important;border-radius:11px;background:#fbfdfc;cursor:pointer}.tarjeta-grupo-ra5:hover{border-color:#168969!important;background:#f0fbf7}.tarjeta-grupo-ra5 input{width:18px!important;height:18px;margin:0;accent-color:#087b5e}.tarjeta-grupo-ra5>span{display:grid;gap:4px}.tarjeta-grupo-ra5 small{color:#60716c}.tarjeta-grupo-ra5 i{display:none;margin-left:auto;width:25px;height:25px;border-radius:50%;place-items:center;background:#087b5e;color:#fff;font-style:normal}.tarjeta-grupo-ra5:has(input:checked){border:2px solid #087b5e!important;background:#effbf7;box-shadow:0 0 0 3px rgba(8,123,94,.09)}.tarjeta-grupo-ra5:has(input:checked) i{display:grid}.panel-grupos-ra5>footer{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid #d4e1dd;background:#f7faf9;color:#65756f}.accion-icono-ra5,.acciones-documento-ra5 button,.modal-ra5-oficial #modal-acciones button{display:inline-grid;place-items:center;width:42px;height:42px;padding:0!important;border-radius:9px;font-size:1.1rem}.accion-icono-ra5{border:1px solid #087b5e;background:#087b5e;color:#fff;font-weight:900;cursor:pointer}.bloque-actividades-nota .workspace-notas[hidden]{display:none!important}@media(max-width:1050px){.lista-grupos-ra5{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media(max-width:650px){.selector-modo-ra5{align-items:stretch;flex-direction:column}.pestanas-modo-ra5{overflow-x:auto;padding-right:8px}.pestanas-modo-ra5 button{white-space:nowrap}.acciones-ra5-iconos{justify-content:flex-end}.lista-grupos-ra5{grid-template-columns:1fr}.panel-grupos-ra5>header{align-items:flex-start;flex-direction:column}}

/* Workspace de evaluacion RA5 en tiempo real */
.workspace-formato-ra5{margin:0 0 14px;border:1px solid #b7cbc4;border-radius:14px;background:#e8efec;box-shadow:0 8px 25px rgba(19,55,46,.08);overflow:hidden}.cabecera-workspace-ra5{display:grid;grid-template-columns:minmax(210px,.65fr) minmax(360px,1.35fr) auto;align-items:end;gap:18px;padding:16px 20px;border-bottom:1px solid #b8cbc5;background:#fff}.cabecera-workspace-ra5 small{font-weight:900;color:#087b5e}.cabecera-workspace-ra5 h3{margin:.2rem 0 0}.cabecera-workspace-ra5 label{display:grid;gap:5px}.cabecera-workspace-ra5 label span{font-size:.72rem;font-weight:900;color:#496159}.cabecera-workspace-ra5 select{width:100%;height:45px;border:1px solid #8eaaa1;border-radius:9px;padding:0 12px;background:#fff;font-weight:800}.acciones-cabecera-ra5{display:flex;gap:7px}.acciones-cabecera-ra5 button{display:grid;place-items:center;width:43px;height:43px;border:1px solid #087b5e;border-radius:9px;background:#fff;color:#087b5e;font-size:1.05rem;font-weight:900;cursor:pointer}.cuerpo-workspace-ra5{display:grid;grid-template-columns:minmax(0,1fr) 300px;min-height:560px}.zona-formato-ra5{min-width:0;max-height:76vh;overflow:auto;padding:16px;background:#dfe7e4}.inicio-formato-ra5{display:grid;place-items:center;align-content:center;min-height:500px;text-align:center;color:#61726c}.inicio-formato-ra5>span{display:grid;place-items:center;width:70px;height:70px;border-radius:20px;background:#fff;color:#087b5e;font-size:2rem}.inicio-formato-ra5 strong{margin-top:14px;font-size:1.15rem}.inicio-formato-ra5 p{max-width:480px}.registro-formatos-ra5{display:grid;grid-template-rows:auto 1fr;border-left:1px solid #b7cbc4;background:#fff}.registro-formatos-ra5>header{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid #d0deda}.registro-formatos-ra5>header small{font-weight:900;color:#087b5e}.registro-formatos-ra5 h4{margin:.2rem 0}.registro-formatos-ra5>header>span{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:#087b5e;color:#fff;font-weight:900}.registro-formatos-ra5>[data-lista-formatos-ra5]{max-height:calc(76vh - 74px);overflow:auto;padding:10px}.registro-ra5-item{margin-bottom:8px;padding:11px;border:1px solid #c9d9d4;border-radius:9px;background:#fbfdfc;cursor:pointer}.registro-ra5-item:hover,.registro-ra5-item:focus{border-color:#087b5e;background:#effaf6;outline:0}.registro-ra5-item header,.registro-ra5-item footer{display:flex;justify-content:space-between;gap:8px}.registro-ra5-item header span{display:grid;place-items:center;min-width:32px;height:27px;border-radius:7px;background:#e3a800;color:#17372f;font-weight:900}.registro-ra5-item p{margin:.45rem 0;color:#52645e;font-size:.8rem}.registro-ra5-item footer{color:#73827d;font-size:.68rem}.registro-vacio-ra5{display:grid;place-items:center;padding:40px 10px;text-align:center;color:#74827d}.formato-ra5-inline-form{position:relative}.formato-ra5-inline-form>.evaluador-ra5{max-width:1200px;margin:0 auto}.estado-autoguardado-ra5{position:sticky;top:0;z-index:12;display:flex;align-items:center;gap:8px;margin:0 auto 8px;max-width:1200px;padding:9px 13px;border:1px solid #aac6bd;border-radius:9px;background:#f5fbf9;color:#466158;font-size:.78rem;font-weight:800}.estado-autoguardado-ra5 i{width:9px;height:9px;border-radius:50%;background:#6d9186}.estado-autoguardado-ra5.guardando i{background:#db9d00;animation:pulso-ra5 .8s infinite}.estado-autoguardado-ra5.guardado i{background:#07925e}.estado-autoguardado-ra5.error{border-color:#df9a9a;background:#fff3f3;color:#8b2424}.estado-autoguardado-ra5.error i{background:#c43232}@keyframes pulso-ra5{50%{opacity:.25}}.workspace-formato-ra5.ampliado{position:fixed;inset:8px;z-index:2600;margin:0;border-radius:10px}.workspace-formato-ra5.ampliado .cuerpo-workspace-ra5{height:calc(100vh - 86px)}.workspace-formato-ra5.ampliado .zona-formato-ra5{max-height:none;height:100%}.workspace-formato-ra5.ampliado .registro-formatos-ra5>[data-lista-formatos-ra5]{max-height:calc(100vh - 160px)}.formato-ra5-inline-form .modal-ra5-oficial{display:none}.formato-ra5-inline-form .navegacion-formato-ra5{top:0}@media(max-width:1100px){.cuerpo-workspace-ra5{grid-template-columns:1fr}.registro-formatos-ra5{border-left:0;border-top:1px solid #b7cbc4}.registro-formatos-ra5>[data-lista-formatos-ra5]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:300px}.cabecera-workspace-ra5{grid-template-columns:1fr 1.5fr auto}}@media(max-width:700px){.cabecera-workspace-ra5{grid-template-columns:1fr}.cuerpo-workspace-ra5{min-height:450px}.zona-formato-ra5{padding:7px}.registro-formatos-ra5>[data-lista-formatos-ra5]{grid-template-columns:1fr}}

/* RA5 sin superposiciones: cada pestaña muestra su sección completa */
.workspace-formato-ra5:not(.ampliado){overflow:visible}.workspace-formato-ra5:not(.ampliado) .cuerpo-workspace-ra5{align-items:start;min-height:0}.workspace-formato-ra5:not(.ampliado) .zona-formato-ra5{max-height:none!important;overflow:visible!important;min-height:540px}.workspace-formato-ra5:not(.ampliado) .formato-ra5-inline-form,.workspace-formato-ra5:not(.ampliado) .evaluador-ra5{max-height:none!important;overflow:visible!important}.workspace-formato-ra5:not(.ampliado) .estado-autoguardado-ra5,.workspace-formato-ra5:not(.ampliado) .navegacion-formato-ra5{position:static!important;top:auto!important}.workspace-formato-ra5:not(.ampliado) .registro-formatos-ra5{position:sticky;top:104px;align-self:start;max-height:calc(100vh - 125px)}.workspace-formato-ra5:not(.ampliado) .registro-formatos-ra5>[data-lista-formatos-ra5]{max-height:calc(100vh - 205px)}.formato-ra5-inline-form .evaluador-ra5>fieldset[hidden]{display:none!important}.formato-ra5-inline-form .evaluador-ra5>fieldset.seccion-ra5-activa{display:block!important}.formato-ra5-inline-form .navegacion-formato-ra5 button[aria-selected="true"]{background:#fff!important;color:#075b4b!important;padding-top:15px}.formato-ra5-inline-form .navegacion-formato-ra5 button[aria-selected="false"]{background:#d4dfdb!important;color:#345149!important}.formato-ra5-inline-form .tabla-formato-ra5,.formato-ra5-inline-form .estudiantes-formato-ra5{max-width:100%}.formato-ra5-inline-form .tabla-formato-ra5 .fila{min-width:0}.workspace-formato-ra5.ampliado .cuerpo-workspace-ra5{min-height:0;height:calc(100vh - 90px)}.workspace-formato-ra5.ampliado .zona-formato-ra5{overflow:auto!important}.workspace-formato-ra5.ampliado .estado-autoguardado-ra5{top:0}.workspace-formato-ra5.ampliado .navegacion-formato-ra5{top:47px}
/* Forma directa: panel lateral plegable y paleta integrada */
.panel-notas .tipo-ra5 .navegador-actividades{background:linear-gradient(180deg,#173b5d,#1d5364)!important;border-right:1px solid #2c6375;color:#fff}.panel-notas .tipo-ra5 .navegador-actividades header{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.13)}.panel-notas .tipo-ra5 .actividad-config{border-color:rgba(255,255,255,.11);background:rgba(255,255,255,.065);color:#eaf4f7}.panel-notas .tipo-ra5 .actividad-config .actividad-contenido span,.panel-notas .tipo-ra5 .actividad-config .actividad-contenido small{color:#c8dce3}.panel-notas .tipo-ra5 .actividad-config.activa{background:#fff;color:#173b5d;box-shadow:0 9px 24px rgba(4,28,44,.25)}.panel-notas .tipo-ra5 .actividad-config.activa .actividad-contenido span,.panel-notas .tipo-ra5 .actividad-config.activa .actividad-contenido small{color:#506a75}.tipo-ra5.panel-directo-oculto .workspace-notas{grid-template-columns:1fr!important}.tipo-ra5.panel-directo-oculto .navegador-actividades{display:none!important}.tipo-ra5.panel-directo-oculto .mesa-captura-notas{grid-column:1/-1}.tipo-ra5:has(.workspace-notas[hidden]) [data-alternar-panel-directo]{display:none}
/* Menú lateral premium tipo acordeón */
.pagina-app .barra-lateral{padding:14px 12px 12px;background:linear-gradient(180deg,#0b2c50 0%,#0e425d 50%,#11523f 100%)}.menu-principal{gap:9px;padding-right:3px}.menu-zona{min-height:46px;padding:11px 42px 11px 14px;border:1px solid rgba(255,255,255,.14);border-radius:13px;background:linear-gradient(100deg,rgba(255,255,255,.10),rgba(255,255,255,.045));color:#f2f8fa;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);letter-spacing:.07em;cursor:pointer}.menu-zona:hover{background:rgba(255,255,255,.14)}.menu-zona::before{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:9px;border-radius:7px;background:rgba(255,255,255,.12);font-size:13px;content:'◆'}.menu-zona[data-zona="academico"]::before{content:'▦'}.menu-zona[data-zona="seguimiento"]::before{content:'◉'}.menu-zona[data-zona="reportes"]::before{content:'▤'}.menu-zona::after{content:'⌃'!important;top:10px;right:14px;display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:rgba(255,255,255,.10);font-size:15px;transition:transform .22s}.menu-zona.colapsado::after{content:'⌄'!important}.menu-grupo{display:grid!important;max-height:680px;opacity:1;gap:5px;margin:0 0 2px 13px;padding:4px 0 8px 10px;border-left:1px solid rgba(125,205,177,.45);overflow:hidden;transition:max-height .28s ease,opacity .2s ease,padding .25s ease}.menu-grupo.colapsado{display:grid!important;max-height:0!important;opacity:0;padding-top:0;padding-bottom:0;pointer-events:none}.menu-grupo button{min-height:44px;padding:7px 9px;border:1px solid transparent;border-radius:11px}.menu-grupo button span{width:29px;height:29px;border:1px solid rgba(255,255,255,.07);border-radius:8px}.menu-grupo button:hover,.menu-grupo button.activo{transform:translateX(3px);background:linear-gradient(105deg,#1882a2,#2a875d);box-shadow:0 8px 20px rgba(0,20,35,.26)}.menu-arbol{max-height:680px}.barra-lateral.plegada .menu-grupo{max-height:none!important;opacity:1!important}.barra-lateral.plegada .menu-zona{display:none!important}@media(max-width:1100px){.workspace-formato-ra5:not(.ampliado) .cuerpo-workspace-ra5{grid-template-columns:1fr}.workspace-formato-ra5:not(.ampliado) .registro-formatos-ra5{position:static;max-height:none}.workspace-formato-ra5:not(.ampliado) .registro-formatos-ra5>[data-lista-formatos-ra5]{max-height:320px}}@media(max-width:800px){.formato-ra5-inline-form .tabla-formato-ra5{overflow-x:auto}.formato-ra5-inline-form .tabla-formato-ra5 .fila{min-width:900px}}

/* Controles RA5 visibles incluso cuando la tabla ensancha el módulo */
.selector-modo-ra5{position:relative;justify-content:flex-start!important;overflow:visible!important}.pestanas-modo-ra5{flex:0 0 auto}.acciones-ra5-iconos{position:sticky;left:455px;z-index:8;flex:0 0 auto;margin-left:4px;padding-right:8px;background:#edf3f1}.acciones-ra5-iconos [data-alternar-panel-directo]{border-color:#1c5b79!important;background:#1c5b79!important;color:#fff!important;box-shadow:0 5px 14px rgba(21,65,91,.2)}.acciones-ra5-iconos [data-alternar-panel-directo]:hover{background:#123e5b!important}.acciones-ra5-iconos [data-alternar-panel-directo]::after{content:''}.cabecera-workspace-ra5 .acciones-cabecera-ra5{align-self:end}.cabecera-workspace-ra5 [data-guardar-ra5-ahora]{background:#087b5e;color:#fff}

/* Panel azul plegable desde su propio encabezado */
.selector-modo-ra5>.acciones-ra5-iconos>[data-alternar-panel-directo]{display:none!important}.panel-notas .tipo-ra5 .navegador-actividades>header{grid-template-columns:1fr auto auto!important;gap:7px}.control-panel-actividades-ra5{display:grid;place-items:center;width:39px;height:39px;border:1px solid rgba(255,255,255,.35);border-radius:9px;background:rgba(255,255,255,.12);color:#fff;font-size:1.05rem;font-weight:900;cursor:pointer}.control-panel-actividades-ra5:hover{background:#fff;color:#173b5d}.tipo-ra5.panel-directo-oculto .workspace-notas{grid-template-columns:58px minmax(0,1fr)!important}.tipo-ra5.panel-directo-oculto .navegador-actividades{display:block!important;width:58px!important;min-width:58px!important;overflow:hidden}.tipo-ra5.panel-directo-oculto .navegador-actividades>header{display:flex!important;justify-content:center;padding:10px 8px!important}.tipo-ra5.panel-directo-oculto .navegador-actividades>header>div,.tipo-ra5.panel-directo-oculto .navegador-actividades .boton-nueva-actividad,.tipo-ra5.panel-directo-oculto .cinta-actividades-config{display:none!important}.tipo-ra5.panel-directo-oculto .control-panel-actividades-ra5{display:grid!important}.tipo-ra5.panel-directo-oculto .mesa-captura-notas{grid-column:auto!important}
/* Campos del formato siempre visibles inmediatamente bajo las pestañas */
.formato-ra5-inline-form .evaluador-ra5{display:block!important;height:auto!important;min-height:0!important}.formato-ra5-inline-form .acciones-documento-ra5{position:static!important}.formato-ra5-inline-form .evaluador-ra5>fieldset{position:static!important;height:auto!important;min-height:330px!important;max-height:none!important;overflow:visible!important;margin:16px 20px!important;padding:8px 16px 18px!important;background:#fff!important}.formato-ra5-inline-form .evaluador-ra5>fieldset.seccion-ra5-activa{display:block!important;visibility:visible!important;opacity:1!important}.formato-ra5-inline-form .evaluador-ra5>fieldset[hidden]{display:none!important}.formato-ra5-inline-form .evaluador-ra5>fieldset legend{position:static!important;display:inline-block!important;margin:0 0 8px!important}.formato-ra5-inline-form .grid-formato-ra5{display:grid!important;padding:8px 0!important}.formato-ra5-inline-form .tabla-formato-ra5,.formato-ra5-inline-form .penalizaciones-ra5,.formato-ra5-inline-form .estudiantes-formato-ra5{display:grid!important;visibility:visible!important;opacity:1!important}.formato-ra5-inline-form input,.formato-ra5-inline-form textarea,.formato-ra5-inline-form select{display:block!important;visibility:visible!important;opacity:1!important;min-height:40px!important;border:1px solid #9db8ae!important;border-radius:7px!important;padding:8px 10px!important;background:#fff!important;color:#17241f!important}.formato-ra5-inline-form textarea{min-height:84px!important}.formato-ra5-inline-form input[readonly]{background:#edf3f1!important;color:#385149!important}.formato-ra5-inline-form .ra5-formula{position:static!important;margin:18px 20px 22px!important}.workspace-formato-ra5:not(.ampliado) .zona-formato-ra5{min-height:0!important}.workspace-formato-ra5:not(.ampliado) .cuerpo-workspace-ra5{min-height:0!important}.workspace-formato-ra5:not(.ampliado) .formato-ra5-inline-form{padding-bottom:8px}.workspace-formato-ra5:not(.ampliado) .evaluador-ra5{padding-bottom:1px!important}@media(max-width:760px){.formato-ra5-inline-form .evaluador-ra5>fieldset{margin:10px 7px!important;padding:7px 9px 14px!important}.tipo-ra5.panel-directo-oculto .workspace-notas{grid-template-columns:48px minmax(0,1fr)!important}.tipo-ra5.panel-directo-oculto .navegador-actividades{width:48px!important;min-width:48px!important}}

/* RA5: el formato oficial es un documento largo; no debe heredar el viewport cerrado de la tabla directa. */
.panel-notas .datatable-notas-360.tipo-ra5:has(.workspace-formato-ra5){height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
.panel-notas .tipo-ra5 .workspace-formato-ra5:not(.ampliado),
.panel-notas .tipo-ra5 .workspace-formato-ra5:not(.ampliado) .cuerpo-workspace-ra5,
.panel-notas .tipo-ra5 .workspace-formato-ra5:not(.ampliado) .zona-formato-ra5,
.panel-notas .tipo-ra5 .workspace-formato-ra5:not(.ampliado) .formato-ra5-inline-form,
.panel-notas .tipo-ra5 .workspace-formato-ra5:not(.ampliado) .evaluador-ra5{height:auto!important;max-height:none!important;overflow:visible!important}
.panel-notas .tipo-ra5 .workspace-formato-ra5:not(.ampliado) .evaluador-ra5>fieldset.seccion-ra5-activa{display:block!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
.panel-notas .tipo-ra5 .workspace-formato-ra5:not(.ampliado) .registro-formatos-ra5{height:max-content!important}

/* Administracion del historial de formatos RA5 */
.acciones-cabecera-ra5 [data-nuevo-formato-ra5]{background:#173f63!important;border-color:#173f63!important;color:#fff!important;font-size:1.45rem!important}
.registro-ra5-item{position:relative;padding-bottom:52px!important}.registro-ra5-item.registro-ra5-inactivo{background:#f1f3f2!important;filter:saturate(.55)}.registro-ra5-item.registro-ra5-inactivo>header b{text-decoration:none;color:#6b7773}.acciones-registro-ra5{position:absolute;left:10px;right:10px;bottom:9px;display:flex;justify-content:flex-end;gap:6px;padding-top:8px;border-top:1px solid #d5e1dc}.acciones-registro-ra5 button{display:grid;place-items:center;width:31px;height:31px;padding:0;border:1px solid #91afa4;border-radius:7px;background:#fff;color:#075f49;font-size:15px;cursor:pointer}.acciones-registro-ra5 button:hover{background:#075f49;color:#fff}.acciones-registro-ra5 [data-eliminar-ra5]{border-color:#d59a91;color:#a3372a}.acciones-registro-ra5 [data-eliminar-ra5]:hover{background:#b83d2f;color:#fff}.acciones-registro-ra5 button:disabled{opacity:.38;cursor:not-allowed;background:#e9eeec;color:#69756f}

/* Contador visible de resultados en filtros de notas */
.contador-filtro-notas {
    display:flex;
    align-items:center;
    gap:9px;
    margin:8px 0 2px;
    padding:9px 12px;
    border:1px solid rgba(0,132,61,.22);
    border-radius:12px;
    background:linear-gradient(90deg,#eaf9f0,#f9fffb);
    color:var(--verde-oscuro);
}
.contador-filtro-notas > span {
    font-size:11px;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.contador-filtro-notas > strong {
    display:grid;
    place-items:center;
    min-width:38px;
    height:30px;
    padding:0 8px;
    border-radius:9px;
    background:var(--verde);
    color:#fff;
    font-size:18px;
}
.contador-filtro-notas > em {
    color:var(--tinta);
    font-size:13px;
    font-style:normal;
    font-weight:900;
}
.contador-filtro-notas > small {
    margin-left:auto;
    color:var(--muted);
    font-weight:850;
}
.resumen-notas-premium .kpi-coincidencias span {
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:10px;
    font-weight:850;
}
@media (max-width:720px) {
    .contador-filtro-notas { align-items:flex-start; flex-wrap:wrap; }
    .contador-filtro-notas > small { width:100%; margin-left:0; }
}
/* Forma directa RA5: mostrar completas las filas elegidas (10, 30, etc.) */
.panel-notas .datatable-notas-360.tipo-ra5{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
.panel-notas .tipo-ra5 .workspace-notas:not([hidden]){height:auto!important;min-height:0!important;max-height:none!important;align-items:stretch!important;overflow:visible!important}
.panel-notas .tipo-ra5 .workspace-notas:not([hidden]) .navegador-actividades{height:auto!important;min-height:100%!important;max-height:none!important}
.panel-notas .tipo-ra5 .workspace-notas:not([hidden]) .mesa-captura-notas,
.panel-notas .tipo-ra5 .workspace-notas:not([hidden]) .tabla-captura-360{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
.panel-notas .tipo-ra5 .workspace-notas:not([hidden]) .cuerpo-tabla-notas{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}

/* Monitor flotante RA5, solo visible para el docente */
.monitor-puntaje-ra5{position:fixed;right:24px;bottom:22px;z-index:2450;width:min(360px,calc(100vw - 30px));max-height:min(620px,72vh);display:flex;flex-direction:column;border:1px solid #15765d;border-radius:15px;background:#fff;box-shadow:0 18px 50px rgba(8,44,56,.28);overflow:hidden}.monitor-puntaje-ra5>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;background:linear-gradient(120deg,#0c3457,#087b5e);color:#fff}.monitor-puntaje-ra5>header div{display:grid;gap:2px;min-width:0}.monitor-puntaje-ra5>header small{font-size:9px;font-weight:950;letter-spacing:.08em;color:#a9e6d0}.monitor-puntaje-ra5>header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.monitor-puntaje-ra5>header button{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:rgba(255,255,255,.12);color:#fff;font-size:20px;cursor:pointer}.monitor-ra5-resumen{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:10px 13px;border-bottom:1px solid #d6e5df;background:#edf9f4;color:#174a3d}.monitor-ra5-resumen span{font-size:12px;font-weight:900}.monitor-ra5-resumen b{min-width:52px;font-size:23px;text-align:right;color:#08734f}.monitor-ra5-resumen small{padding:3px 6px;border-radius:999px;background:#cfeadf;font-size:9px;font-weight:950}.monitor-ra5-lista{min-height:0;overflow:auto;padding:6px 9px}.monitor-ra5-lista article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid #e1eae6}.monitor-ra5-lista article>span{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#263c35;font-size:11px;font-weight:800}.monitor-ra5-lista article>span b{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:7px;background:#e4f3ed;color:#08704f}.monitor-ra5-lista dl{display:flex;gap:5px;margin:0}.monitor-ra5-lista dl div{display:grid;min-width:51px;padding:4px 6px;border-radius:7px;background:#f1f6f4;text-align:center}.monitor-ra5-lista dt{font-size:8px;font-weight:950;color:#6a7c75}.monitor-ra5-lista dd{margin:0;font-size:14px;font-weight:950;color:#0a5d46}.monitor-puntaje-ra5>footer{display:flex;align-items:center;gap:7px;padding:8px 12px;border-top:1px solid #d6e4df;background:#f7faf9;color:#63756e;font-size:9px;font-weight:850}.monitor-puntaje-ra5>footer i{width:8px;height:8px;border-radius:50%;background:#dfa900}.monitor-puntaje-ra5.monitor-cerrado>footer i{background:#07945f}.monitor-puntaje-ra5.plegado{width:300px;max-height:58px}.monitor-puntaje-ra5.plegado .monitor-ra5-resumen,.monitor-puntaje-ra5.plegado .monitor-ra5-lista,.monitor-puntaje-ra5.plegado>footer{display:none!important}@media(max-width:700px){.monitor-puntaje-ra5{right:8px;bottom:8px;width:calc(100vw - 16px);max-height:55vh}}@media print{.monitor-puntaje-ra5,.no-imprimir{display:none!important}}

/* Puntaje final proyectado dentro del monitor RA5 */
.monitor-puntaje-ra5{width:min(500px,calc(100vw - 30px))}.monitor-ra5-lista .monitor-estudiante-final{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"nombre notas" "estado estado"}.monitor-estudiante-final>span{grid-area:nombre}.monitor-estudiante-final>dl{grid-area:notas}.monitor-estudiante-final>em{grid-area:estado;justify-self:end;margin-top:-3px;padding:3px 7px;border-radius:999px;background:#eef3f1;color:#62736d;font-size:9px;font-style:normal;font-weight:950}.monitor-estudiante-final .monitor-pf{background:#e5edf7}.monitor-estudiante-final .monitor-pf dt{color:#315d82}.monitor-estudiante-final .monitor-pf dd{font-size:18px;color:#123f67}.monitor-estudiante-final.aprueba>em{background:#dff5e9;color:#087147}.monitor-estudiante-final.desaprueba>em{background:#ffe6e1;color:#a13b2e}.monitor-estudiante-final.pendiente>em{background:#fff2d8;color:#8b6100}.monitor-puntaje-ra5.plegado{width:360px}@media(max-width:700px){.monitor-puntaje-ra5{width:calc(100vw - 16px)}.monitor-estudiante-final>span{font-size:10px}.monitor-ra5-lista dl div{min-width:46px}}

/* Captura validada y configuracion de minimo aprobatorio */
.formato-ra5-inline-form input[type=number].limite-corregido{animation:alerta-limite-ra5 .55s ease;border-color:#c7392f!important;background:#fff0ed!important}@keyframes alerta-limite-ra5{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}.cabecera-workspace-ra5{grid-template-columns:minmax(190px,.55fr) minmax(300px,1.25fr) minmax(180px,.45fr) auto}.config-nota-minima-ra5{display:flex;align-items:end;gap:6px}.config-nota-minima-ra5 label{display:grid;gap:5px}.config-nota-minima-ra5 label span{font-size:.72rem;font-weight:900;color:#496159}.config-nota-minima-ra5 input{width:112px;height:43px;padding:6px 9px;border:1px solid #8eaaa1;border-radius:9px;background:#fff;color:#173c32;font-size:15px;font-weight:950}.config-nota-minima-ra5 button{display:grid;place-items:center;width:43px;height:43px;padding:0;border:1px solid #173f63;border-radius:9px;background:#173f63;color:#fff;font-size:17px;cursor:pointer}@media(max-width:1150px){.cabecera-workspace-ra5{grid-template-columns:1fr 1.5fr auto}.config-nota-minima-ra5{grid-column:2}.acciones-cabecera-ra5{grid-column:3;grid-row:1/3}}@media(max-width:700px){.config-nota-minima-ra5{grid-column:auto}.acciones-cabecera-ra5{grid-column:auto;grid-row:auto}}

/* La alerta roja desaparece al corregir el puntaje */
.formato-ra5-inline-form input[type=number]:not(.limite-corregido):valid{border-color:#9db8ae!important;background:#fff!important}.acciones-documento-ra5 [data-limpiar-formato-ra5]{border-color:#9a6420!important;background:#fff8e2!important;color:#80500f!important}.acciones-documento-ra5 [data-limpiar-formato-ra5]:hover{background:#80500f!important;color:#fff!important}

/* La nota minima es configuracion academica global de la seccion, no del evaluador RA5 */
.workspace-formato-ra5 .config-nota-minima-ra5{display:none!important}
.workspace-formato-ra5 .cabecera-workspace-ra5{grid-template-columns:minmax(210px,.65fr) minmax(360px,1.35fr) auto!important}.workspace-formato-ra5 .acciones-cabecera-ra5{grid-column:auto!important;grid-row:auto!important}@media(max-width:700px){.workspace-formato-ra5 .cabecera-workspace-ra5{grid-template-columns:1fr!important}}

/* Nota minima en Filtros academicos: configuracion global de seccion */
.config-minima-academica{grid-column:1/-1;display:grid;grid-template-columns:minmax(260px,1fr) 130px 42px;align-items:end;gap:10px;margin-top:4px;padding:12px;border:1px solid #aacbbd;border-left:5px solid #173f63;border-radius:10px;background:linear-gradient(105deg,#f1f8f5,#fff)}.config-minima-academica>div{display:grid;gap:2px}.config-minima-academica small{color:#087353;font-size:9px;font-weight:950;letter-spacing:.07em}.config-minima-academica strong{color:#173f63;font-size:13px}.config-minima-academica>div span{color:#65756f;font-size:10px}.config-minima-academica label{display:grid;gap:4px}.config-minima-academica label span{color:#496159;font-size:10px;font-weight:900}.config-minima-academica input{width:100%;height:38px;padding:5px 9px;border:1px solid #91aea3;border-radius:8px;background:#fff;font-size:15px;font-weight:950}.config-minima-academica button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid #173f63;border-radius:8px;background:#173f63;color:#fff;font-size:16px;cursor:pointer}.config-minima-academica button:disabled,.config-minima-academica input:disabled{opacity:.55;cursor:not-allowed}@media(max-width:650px){.config-minima-academica{grid-template-columns:1fr 1fr auto}.config-minima-academica>div{grid-column:1/-1}}

/* =========================================================
   EVACUR MOBILE 360 — capa responsive integral del sistema
   ========================================================= */
@media (max-width:760px) {
 html,body{width:100%;max-width:100%;overflow-x:hidden!important}
 body.pagina-app{min-width:0!important}
 .app-shell,.contenido-app,.vista,.vista>*{min-width:0!important;max-width:100%!important}
 .contenido-app{width:100%!important;padding:8px!important}
 .vista{padding:10px 0!important}
 .barra-superior{display:grid!important;grid-template-columns:42px minmax(0,1fr) auto!important;gap:9px!important;align-items:center!important;top:6px!important;min-height:62px!important;padding:8px 9px!important;border-radius:12px!important}
 .barra-superior>div:nth-child(2){min-width:0}
 .barra-superior .subtitulo,.barra-superior h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .barra-superior .subtitulo{font-size:9px!important}
 .barra-superior h1{font-size:17px!important}
 .usuario-chip{width:auto!important;margin:0!important;justify-content:initial!important}
 .boton-usuario{width:42px!important;height:42px!important;padding:0!important;border-radius:11px!important}
 .boton-usuario span,.boton-usuario small{display:none!important}
 .boton-usuario::before{content:'U';display:grid;place-items:center;width:100%;height:100%;font-weight:950;color:var(--aipafa-navy)}
 .menu-usuario{position:fixed!important;top:72px!important;right:8px!important;width:min(280px,calc(100vw - 16px))!important}
 .pagina-app .barra-lateral{width:min(310px,88vw)!important;padding-bottom:max(12px,env(safe-area-inset-bottom))!important;z-index:200!important}
 .menu-principal{overflow-y:auto!important;overscroll-behavior:contain}
 .panel,.hero-panel,.alerta-cumpleanos,.workspace-formato-ra5,.panel-grupos-ra5{max-width:100%!important;border-radius:12px!important}
 .panel{padding:10px!important;margin-bottom:10px!important}
 .panel::before{height:3px}
 .panel>header,.tabla-cabecera,.hero-panel,.alerta-cumpleanos,.actividad-activa-hero{align-items:flex-start!important;flex-direction:column!important;gap:9px!important}
 .panel>header{padding:4px 2px 10px!important;margin-bottom:10px!important}
 .panel>header h2{font-size:19px!important;line-height:1.15}
 .panel>header h3{font-size:16px!important}
 .panel>header p,.ayuda-panel{font-size:12px!important;line-height:1.45}
 .boton-plegar-segmento{position:absolute;top:8px;right:8px;margin:0!important}
 .panel[data-plegable="1"]>header{padding-right:42px!important;position:relative}
 .acciones,.login-acciones,.acciones-notas-principales,.acciones-cumpleanos,.acciones-documento-ra5>div:last-child{width:100%;max-width:100%;display:flex!important;gap:7px!important;overflow-x:auto!important;flex-wrap:nowrap!important;padding-bottom:2px;scrollbar-width:thin}
 .acciones>*,.login-acciones>*,.acciones-notas-principales>*{flex:0 0 auto}
 button,.boton-principal,.boton-secundario,input,select,textarea{font-size:16px}
 button,.boton-principal,.boton-secundario{min-height:44px}
 input,select,textarea,.selector-busqueda-control{width:100%;max-width:100%;min-height:46px!important}
 label{min-width:0!important;max-width:100%}
 .grid-estadisticas{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
 .tarjeta-kpi,.tarjeta-indicador{min-height:96px!important;padding:11px!important}
 .tarjeta-kpi strong,.tarjeta-indicador strong{font-size:24px!important}
 .filtros,.filtros-compactos,.filtros-iconizados,.formulario-grid,.dos-columnas,.tres-columnas,.config-grid-doble,.evento-editor-grid,.evento-formulario-grid,.mensajeria-layout,.mensajeria-panel,.panel-mensajeria .filtros.filtros-compactos,.resumen-seccion-matricula,.resumen-ejecutivo-consulta,.tablero-academico-estudiante,.consulta-hero,.curso-cabecera-estrategica{grid-template-columns:1fr!important;min-width:0!important}
 .panel-configuracion-operativa .formulario-grid{grid-template-columns:1fr!important}
 .pestanas,.pestanas-notas,.pestanas-consulta,.pestanas-informe,.pestanas-reporte-formal>nav,.pestanas-configuracion,.pestanas-eventos,.pestanas-modo-ra5{display:flex!important;max-width:100%!important;overflow-x:auto!important;flex-wrap:nowrap!important;gap:6px!important;scroll-snap-type:x proximity;padding:5px!important}
 .pestanas button,.pestanas-notas button,.pestanas-consulta button,.pestanas-informe button,.pestanas-configuracion button,.pestanas-eventos button,.pestanas-modo-ra5 button{flex:0 0 auto!important;min-width:max-content!important;white-space:nowrap!important;scroll-snap-align:start}
 .pestanas-configuracion button{display:grid!important;grid-template-columns:32px auto!important;grid-template-rows:auto auto!important;min-height:58px!important;padding:8px 10px!important}
 .configuracion-cabecera{min-height:0!important;margin:0 0 10px!important;padding:16px!important}
 .configuracion-cabecera h2{font-size:22px!important}
 .configuracion-cuerpo,.panel-configuracion-operativa{min-width:0!important;padding:10px!important}
 .tabla-scroll,.tabla-formato-261,.mesa-captura-notas,.participacion-workspace,.participacion-tabla-contenedor,.asistencia-workspace-360,.tabla-asistencia-scroll-360,.zona-formato-ra5,.formato-ra5-inline-form .tabla-formato-ra5{position:relative;display:block!important;width:100%!important;max-width:100%!important;overflow-x:auto!important;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
 .tabla-scroll{overflow-x:auto!important}
 .tabla-scroll::before,.mesa-captura-notas::before,.asistencia-workspace-360::before,.participacion-workspace::before{content:'Deslice horizontalmente para ver todas las columnas';position:sticky;left:0;z-index:9;display:block;width:max-content;margin:5px;padding:5px 8px;border-radius:7px;background:#173f63;color:#fff;font-size:9px;font-weight:850;letter-spacing:.02em}
 .tabla-scroll table{width:max-content!important;min-width:100%!important;max-width:none!important}
 .tabla-scroll th,.tabla-scroll td{white-space:nowrap}
 .controles-tabla,.datatable-barra,.data-table-controles,.datatable-comando,.datatable-comando-persistente{width:100%!important;max-width:100%!important;min-width:0!important;position:static!important;display:grid!important;grid-template-columns:1fr!important;gap:7px!important;overflow:visible!important}
 .datatable-busqueda-principal,.datatable-acciones-secundarias,.datatable-navegacion,.barra-filtros-tabla-notas{width:100%!important;max-width:100%!important;min-width:0!important;display:grid!important;grid-template-columns:1fr!important;gap:7px!important;overflow:visible!important}
 .datatable-navegacion{display:flex!important;overflow-x:auto!important;justify-content:flex-start!important}
 .panel-notas .filtros-contexto-notas{grid-template-columns:1fr!important}
 .panel-notas .filtros-academicos-contenido{position:static!important;width:100%!important;grid-template-columns:1fr!important}
 .panel-notas .datatable-notas-360,.panel-notas .workspace-notas{width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;overflow:visible!important}
 .panel-notas .navegador-actividades{width:100%!important;max-width:100%!important;max-height:220px!important;position:static!important}
 .panel-notas .mesa-captura-notas{height:auto!important;min-width:0!important;max-height:70vh}
 .panel-notas .tabla-captura-360,.panel-notas .actividad-activa-hero{min-width:640px!important}
 .participacion-workspace{height:auto!important;max-height:72vh!important}
 .participacion-toolbar{min-width:0!important;grid-template-columns:1fr!important;position:sticky;left:0;width:100%!important}
 .asistencia-captura-360 .contexto-asistencia-360,.asistencia-comando-360{width:100%!important;max-width:100%!important;min-width:0!important;grid-template-columns:1fr!important;grid-template-areas:none!important;display:grid!important}
 .asistencia-comando-360>*{grid-area:auto!important}
 .asistencia-workspace-360{max-height:72vh}
 .asistencia-final-filtros,.asistencia-layout-barras,.asistencia-barra.filtros{grid-template-columns:1fr!important}
 .modal{inset:4px!important;width:calc(100vw - 8px)!important;max-width:none!important;height:calc(100dvh - 8px)!important;max-height:none!important;margin:0!important;padding:0!important;border-radius:12px!important}
 .modal-caja{width:100%!important;height:100%!important;max-width:none!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important}
 .modal-caja>header,.modal-caja>footer{padding:10px!important}
 #modal-contenido{min-width:0!important;max-width:100%!important;overflow:auto!important;padding:10px!important}
 #modal-acciones{display:flex!important;max-width:100%;overflow-x:auto;flex-wrap:nowrap!important}
 .modal-ra5-oficial .evaluador-ra5{min-width:0!important;width:100%!important}
 .encabezado-oficial-ra5{grid-template-columns:1fr!important}
 .navegacion-formato-ra5{display:flex!important;overflow-x:auto!important}
 .workspace-formato-ra5 .cabecera-workspace-ra5,.cuerpo-workspace-ra5{grid-template-columns:1fr!important;min-width:0!important}
 .workspace-formato-ra5 .cabecera-workspace-ra5{padding:10px!important}
 .formato-ra5-inline-form .evaluador-ra5>fieldset{margin:8px 4px!important;padding:7px!important}
 .monitor-puntaje-ra5,.proceso-global-flotante{right:8px!important;bottom:8px!important;width:calc(100vw - 16px)!important;max-width:none!important}
 .monitor-ra5-lista article,.monitor-estudiante-final{grid-template-columns:1fr!important;grid-template-areas:'nombre' 'notas' 'estado'!important}
 .monitor-ra5-lista dl{width:100%;overflow-x:auto}
 .notificaciones{right:8px!important;bottom:8px!important;left:8px!important;width:auto!important}
 .toast{width:100%!important;max-width:none!important}
 .pie-sistema{display:grid!important;gap:5px!important;padding:14px 8px!important;text-align:center}
 .confirmacion-segura-masiva{grid-template-columns:1fr!important;padding:12px!important}
 .switch-configuracion{grid-template-columns:52px minmax(0,1fr)!important}
 img,canvas,video,iframe{max-width:100%;height:auto}
}
@media(max-width:420px){
 .grid-estadisticas{grid-template-columns:1fr 1fr!important}
 .contenido-app{padding:6px!important}
 .panel{padding:8px!important}
 .hero-panel{padding:15px!important}
 .hero-panel h2{font-size:22px!important}
 .barra-superior{grid-template-columns:40px minmax(0,1fr) 40px!important}
}
/* Fusion EVACUR: centro de acceso rapido y herramientas docentes */
.menu-centro-control{margin:14px 10px 18px;padding:14px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(255,255,255,.08)}
.menu-centro-control header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:#fff}.menu-centro-control header div{display:grid}.menu-centro-control small{font-size:10px;letter-spacing:1.5px;color:#75e1eb}.menu-centro-control strong{font-size:14px}.menu-centro-control header button{width:38px;height:38px;border:1px solid #ffffff30;border-radius:12px;background:#ffffff12;color:#fff;font-size:17px}
.menu-rapido{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.menu-rapido button{display:flex;min-width:0;min-height:68px;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 4px;border:1px solid #ffffff20;border-radius:12px;background:#ffffff0c;color:#fff}.menu-rapido button span{font-size:19px}.menu-rapido button b{max-width:100%;font-size:10px;white-space:normal;text-align:center}
.menu-principal .zona-docente{background:linear-gradient(90deg,#087d68,#2ca58d);color:#fff}.menu-principal .menu-clase-modelo{background:linear-gradient(90deg,#b5223a,#dd3d50)!important;color:#fff!important}.menu-principal .menu-avatar-ia{background:linear-gradient(90deg,#763bd0,#a14adc)!important;color:#fff!important}
.vista-herramienta-docente{padding:0!important}.herramienta-docente-cabecera{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px;padding:12px 16px;border:1px solid #d5e5e8;border-radius:14px;background:#fff}.herramienta-docente-cabecera h2,.herramienta-docente-cabecera p{margin:0}.vista-herramienta-docente iframe{display:block;width:100%;height:calc(100vh - 155px);min-height:680px;border:1px solid #cfe0e5;border-radius:16px;background:#f2f7f9}
@media(max-width:920px){.menu-centro-control{margin:10px 8px}.vista-herramienta-docente iframe{height:calc(100vh - 125px);min-height:600px}}
