*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f1eb;color:#26313d}
.encabezado{background:#611232;color:white;padding:20px 26px;border-bottom:5px solid #a57f2c}
.encabezado h1{margin:0;font-size:27px}.encabezado p{margin:5px 0 0}
.navegacion{display:flex;gap:8px;padding:16px 24px}
button{height:39px;border:1px solid #611232;border-radius:6px;padding:0 14px;background:#611232;color:white;font-weight:bold;cursor:pointer}
.boton-secundario,.navegacion button{background:white;color:#611232}
.navegacion button.activo{background:#611232;color:white}.oculto{display:none!important}
.panel{background:white;border:1px solid #ddd5c8;border-radius:8px;margin:0 24px 16px;padding:16px}
.titulo-seccion{display:flex;align-items:center;justify-content:space-between;gap:14px}
.titulo-seccion h2,.panel h2{margin:0;font-size:17px;color:#4a2835}
.titulo-seccion p{margin:4px 0 0;color:#65717f;font-size:12px}
.titulo-seccion span{font-size:12px;color:#65717f}
.filtros-grid{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px;margin-top:14px}
.filtros-nacionales{grid-template-columns:repeat(3,minmax(180px,1fr))}
.busqueda{grid-column:span 2}
label{display:grid;gap:5px;font-size:12px;font-weight:bold}
select,input{height:39px;border:1px solid #bdb5a8;border-radius:6px;padding:0 10px;background:white}
.kpis{display:grid;gap:12px;padding:0 24px 16px}.kpis-7{grid-template-columns:repeat(9,1fr)}
.kpis article{background:white;border:1px solid #ddd5c8;border-radius:8px;padding:14px}
.kpis span{display:block;font-size:11px;color:#65717f;font-weight:bold;text-transform:uppercase}
.kpis strong{display:block;margin-top:7px;font-size:24px;color:#611232}
.contenido-nacional{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contenido-nacional .panel:first-child{margin-right:0}.contenido-nacional .panel:last-child{margin-left:0}
.contenido-estatal{display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:16px;padding:0 24px 24px}
.contenido-estatal .panel{margin:0}.mapa-panel{overflow:hidden}.lateral{max-height:780px;overflow:auto}
.lateral section{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid #e5dfd5}
#mapaEstatal{height:720px}#mapaRuta{height:680px}
.barra{margin-top:10px}.barra-cabecera{display:flex;justify-content:space-between;gap:10px;font-size:11px}
.barra-fondo{height:9px;background:#eee8df;border-radius:8px;overflow:hidden;margin-top:4px}
.barra-valor{height:100%;background:#611232}
.ranking-item{padding:9px 0;border-bottom:1px solid #eee8df}.ranking-item strong,.ranking-item span{display:block}
.ranking-item strong{color:#611232}.ranking-item span{margin-top:3px;font-size:11px;color:#65717f}
.puntos-ruta{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;margin-top:16px}
.punto-ruta{padding:15px;border:1px solid #ddd5c8;border-radius:8px;background:#fbfaf7}
.punto-ruta h3{margin:0 0 12px;color:#611232}.punto-ruta>label,.punto-ruta>div{margin-top:10px}
.coordenadas-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.botones-ruta{display:flex;gap:10px;margin-top:14px}
.ruta-kpis{grid-template-columns:repeat(3,1fr);padding:16px 0 0}
.mensaje-ruta{margin-top:14px;padding:11px 12px;background:#f7f1e7;border-left:4px solid #a57f2c;font-size:13px}
@media(max-width:1100px){.kpis-7{grid-template-columns:repeat(3,1fr)}.contenido-estatal{grid-template-columns:1fr}.lateral{max-height:none}}
@media(max-width:850px){.filtros-grid,.filtros-nacionales,.contenido-nacional,.puntos-ruta{grid-template-columns:1fr}.busqueda{grid-column:auto}.contenido-nacional .panel{margin:0 24px 16px}.kpis-7{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.panel,.navegacion{margin-left:10px;margin-right:10px;padding-left:10px;padding-right:10px}.contenido-estatal{padding-left:10px;padding-right:10px}.kpis{padding-left:10px;padding-right:10px}.kpis-7,.ruta-kpis{grid-template-columns:1fr}.coordenadas-grid{grid-template-columns:1fr}}

.detalle-puntos{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.detalle-puntos article{background:#fbfaf7;border:1px solid #ddd5c8;border-radius:8px;padding:12px}.detalle-puntos span{display:block;font-size:11px;color:#65717f;font-weight:bold;text-transform:uppercase}.detalle-puntos strong{display:block;margin-top:6px;color:#611232;font-size:13px;line-height:1.4}@media(max-width:700px){.detalle-puntos{grid-template-columns:1fr}}

/* =====================================================
   REDISEÑO VISTA ESTATAL - MAPA + PANEL LATERAL
   ===================================================== */
.kpis-estatales{
    grid-template-columns:repeat(10,minmax(105px,1fr));
    padding-bottom:14px;
}

.contenido-estatal-redisenado{
    /* Distribución estable: 60% mapa / 40% panel de consulta */
    grid-template-columns:minmax(0,3fr) minmax(0,2fr);
    align-items:start;
}

.mapa-panel-estatal{
    min-width:0;
}

.mapa-panel-estatal #mapaEstatal{
    height:680px;
}

.lateral-estatal{
    /* Se mantiene visible junto al mapa y sólo desplaza su contenido en vertical. */
    position:sticky;
    top:12px;
    min-width:0;
    max-width:100%;
    max-height:740px;
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:thin;
}

.panel-consulta-estatal{
    padding-bottom:16px;
}

.titulo-consulta-estatal{
    align-items:flex-start;
}

.titulo-consulta-estatal button{
    height:34px;
    padding:0 11px;
    flex:0 0 auto;
}

.filtros-laterales-estatal{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:11px;
    margin-top:14px;
}

/* Evita que inputs y selects ensanchen el panel y provoquen scroll horizontal. */
.filtros-laterales-estatal > label{
    min-width:0;
}

.filtros-laterales-estatal select,
.filtros-laterales-estatal input{
    width:100%;
    min-width:0;
    max-width:100%;
}

.filtros-laterales-estatal .filtro-ancho,
.filtros-laterales-estatal .separador-filtros{
    grid-column:1 / -1;
}

/* Checkbox independiente para visualizar la capa geográfica ZAP. */
.control-checkbox-zap{
    display:flex;
    grid-column:1 / -1;
    flex-direction:row;
    align-items:center;
    gap:8px;
    min-height:34px;
    padding:7px 9px;
    border:1px solid #ddd5c8;
    border-radius:6px;
    background:#fbfaf7;
    cursor:pointer;
}

.control-checkbox-zap input{
    width:16px;
    height:16px;
    min-width:16px;
    margin:0;
    padding:0;
}

.control-checkbox-zap span{
    font-size:12px;
    color:#4a2835;
}

.separador-filtros{
    margin-top:2px;
    padding-top:10px;
    border-top:1px solid #e5dfd5;
    color:#611232;
    font-size:11px;
    font-weight:bold;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.lateral-estatal section:last-child{
    border-bottom:0;
    margin-bottom:0;
}

@media(max-width:1280px){
    .kpis-estatales{grid-template-columns:repeat(5,1fr)}
    .contenido-estatal-redisenado{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
}

@media(max-width:1000px){
    .contenido-estatal-redisenado{grid-template-columns:1fr}
    .lateral-estatal{position:static;max-height:none}
    .mapa-panel-estatal #mapaEstatal{height:600px}
}

@media(max-width:700px){
    .kpis-estatales{grid-template-columns:repeat(2,1fr)}
    .filtros-laterales-estatal{grid-template-columns:1fr}
    .filtros-laterales-estatal .filtro-ancho,
    .filtros-laterales-estatal .separador-filtros{grid-column:auto}
}


/* =====================================================
   REDISEÑO MÓDULO RUTAS
   Misma organización visual que la vista Estatal.
   60% para mapa y 40% para consulta.
   ===================================================== */

.ruta-kpis-superiores{
    grid-template-columns:repeat(3,minmax(150px,1fr));
    padding-bottom:14px;
}

.contenido-rutas-redisenado{
    grid-template-columns:minmax(0,3fr) minmax(0,2fr);
    align-items:start;
}

.mapa-panel-rutas{
    min-width:0;
}

.mapa-panel-rutas #mapaRuta{
    height:680px;
}

.lateral-rutas{
    /* El panel permanece visible cuando se desplaza la página. */
    position:sticky;
    top:12px;
    min-width:0;
    max-width:100%;
    max-height:740px;
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:thin;
}

.panel-consulta-rutas{
    padding-bottom:16px;
}

.punto-ruta-lateral{
    margin-top:14px;
    min-width:0;
}

.punto-ruta-lateral select,
.punto-ruta-lateral input{
    width:100%;
    min-width:0;
    max-width:100%;
}

.detalle-ruta-lateral{
    margin-top:12px;
    padding:10px;
    background:#ffffff;
    border:1px solid #e5dfd5;
    border-radius:6px;
}

.detalle-ruta-lateral span{
    display:block;
    font-size:11px;
    color:#65717f;
    font-weight:bold;
    text-transform:uppercase;
}

.detalle-ruta-lateral strong{
    display:block;
    margin-top:5px;
    color:#611232;
    font-size:13px;
    line-height:1.4;
}

.boton-intercambiar-ruta{
    width:100%;
    margin-top:12px;
}

.botones-ruta-lateral{
    display:grid;
    grid-template-columns:1fr 1fr;
}

.botones-ruta-lateral button{
    width:100%;
}

@media(max-width:1000px){
    .contenido-rutas-redisenado{
        grid-template-columns:1fr;
    }

    .lateral-rutas{
        position:static;
        max-height:none;
    }

    .mapa-panel-rutas #mapaRuta{
        height:600px;
    }
}

@media(max-width:600px){
    .ruta-kpis-superiores{
        grid-template-columns:1fr;
    }

    .botones-ruta-lateral{
        grid-template-columns:1fr;
    }
}

/* =====================================================
   AJUSTE COMPACTO - PANEL LATERAL DEL MÓDULO RUTAS
   Reduce tipografía, espacios y altura de controles para
   mantener origen, destino y botones visibles sin afectar
   los módulos Nacional y Estatal.
   ===================================================== */
.panel-consulta-rutas{
    padding:12px;
}

.panel-consulta-rutas .titulo-seccion h2{
    font-size:15px;
}

.panel-consulta-rutas .titulo-seccion p{
    margin-top:3px;
    font-size:10.5px;
    line-height:1.25;
}

.panel-consulta-rutas .punto-ruta-lateral{
    margin-top:9px;
    padding:10px;
}

.panel-consulta-rutas .punto-ruta-lateral h3{
    margin-bottom:7px;
    font-size:13px;
}

.panel-consulta-rutas .punto-ruta-lateral > label,
.panel-consulta-rutas .punto-ruta-lateral > div{
    margin-top:6px;
}

.panel-consulta-rutas label{
    gap:3px;
    font-size:10.5px;
}

.panel-consulta-rutas select,
.panel-consulta-rutas input{
    height:32px;
    padding:0 8px;
    font-size:12px;
}

.panel-consulta-rutas .coordenadas-grid{
    gap:7px;
}

.panel-consulta-rutas .detalle-ruta-lateral{
    margin-top:7px;
    padding:7px 8px;
}

.panel-consulta-rutas .detalle-ruta-lateral span{
    font-size:9.5px;
}

.panel-consulta-rutas .detalle-ruta-lateral strong{
    margin-top:3px;
    font-size:11.5px;
    line-height:1.25;
}

.panel-consulta-rutas .boton-intercambiar-ruta{
    height:32px;
    margin-top:8px;
    font-size:11px;
}

.panel-consulta-rutas .botones-ruta-lateral{
    gap:7px;
    margin-top:9px;
}

.panel-consulta-rutas .botones-ruta-lateral button{
    height:34px;
    font-size:11px;
}

.panel-consulta-rutas .mensaje-ruta{
    margin-top:9px;
    padding:7px 9px;
    font-size:11px;
    line-height:1.25;
}


/* =====================================================
   MAPA NACIONAL ANALÍTICO · V2
   ===================================================== */
.controles-mapa-nacional{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex-wrap:wrap;
}
.control-metrica-nacional{
    display:flex;
    align-items:center;
    gap:7px;
    font-size:12px;
    color:#65717f;
}
.control-metrica-nacional select{
    height:34px;
    min-width:110px;
}

/* =====================================================
   REDISEÑO VISTA NACIONAL V5 · MAPA 60% + FILTROS 40%
   ===================================================== */
.contenido-nacional-redisenado{
    display:grid;
    grid-template-columns:minmax(0,3fr) minmax(340px,2fr);
    gap:16px;
    align-items:start;
    padding:0 24px 16px;
}

.contenido-nacional-redisenado > .panel{
    margin:0;
}

.mapa-panel-nacional{
    min-width:0;
    overflow:hidden;
}

.mapa-panel-nacional #mapaNacional{
    height:520px;
    margin-top:12px;
    border-radius:14px;
}

.lateral-nacional{
    position:sticky;
    top:12px;
    min-width:0;
    max-height:720px;
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:thin;
}

.titulo-consulta-nacional{
    align-items:flex-start;
}

.titulo-consulta-nacional button{
    height:34px;
    padding:0 11px;
    flex:0 0 auto;
}

.filtros-laterales-nacional{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:11px;
    margin-top:14px;
}

.filtros-laterales-nacional > label{
    min-width:0;
}

.filtros-laterales-nacional select{
    width:100%;
    min-width:0;
    max-width:100%;
}

.resumen-lateral-nacional{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #e5dfd5;
}

.resumen-lateral-nacional article{
    background:#fbfaf7;
    border:1px solid #ddd5c8;
    border-radius:8px;
    padding:11px;
}

.resumen-lateral-nacional span{
    display:block;
    font-size:10px;
    color:#65717f;
    font-weight:bold;
    text-transform:uppercase;
}

.resumen-lateral-nacional strong{
    display:block;
    margin-top:6px;
    font-size:20px;
    color:#611232;
}

.kpis-nacionales-complementarios{
    grid-template-columns:repeat(5,minmax(130px,1fr));
}

@media(max-width:1100px){
    .contenido-nacional-redisenado{
        grid-template-columns:minmax(0,3fr) minmax(300px,2fr);
    }
    .mapa-panel-nacional #mapaNacional{height:520px}
    .filtros-laterales-nacional{grid-template-columns:1fr}
    .kpis-nacionales-complementarios{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:850px){
    .contenido-nacional-redisenado{
        grid-template-columns:1fr;
        padding:0 16px 16px;
    }
    .lateral-nacional{
        position:static;
        max-height:none;
    }
    .mapa-panel-nacional #mapaNacional{height:500px}
    .filtros-laterales-nacional{grid-template-columns:1fr 1fr}
    .kpis-nacionales-complementarios{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:600px){
    .contenido-nacional-redisenado{padding:0 10px 12px}
    .filtros-laterales-nacional{grid-template-columns:1fr}
    .resumen-lateral-nacional{grid-template-columns:1fr 1fr}
    .kpis-nacionales-complementarios{grid-template-columns:1fr}
    .mapa-panel-nacional #mapaNacional{height:460px}
}


/* =====================================================
   AJUSTE FINAL MAPA NACIONAL
   Se coloca al final del archivo para garantizar que esta
   altura prevalezca sobre reglas anteriores.
   ===================================================== */

/* Escritorio y pantallas medianas */
.mapa-panel-nacional #mapaNacional{
    height:520px !important;
}

/* Tabletas / pantallas angostas */
@media(max-width:850px){
    .mapa-panel-nacional #mapaNacional{
        height:500px !important;
    }
}

/* Móviles */
@media(max-width:600px){
    .mapa-panel-nacional #mapaNacional{
        height:460px !important;
    }
}

/* =====================================================
   ALTURA DEFINITIVA · MAPA NACIONAL
   Mantiene visibles los indicadores inferiores.
   ===================================================== */
#mapaNacional{
    height:430px !important;
    min-height:0 !important;
}

@media(max-width:850px){
    #mapaNacional{
        height:450px !important;
        min-height:0 !important;
    }
}

@media(max-width:600px){
    #mapaNacional{
        height:420px !important;
        min-height:0 !important;
    }
}

/* =====================================================
   AJUSTE COMPACTO · CARD MAPA NACIONAL
   Reduce altura total del panel para dejar visibles
   los cards complementarios inferiores.
   ===================================================== */

/* Reduce espacios internos del card izquierdo */
.mapa-panel-nacional{
    padding:12px !important;
}

/* Compacta encabezado del mapa */
.mapa-panel-nacional .panel-header,
.mapa-panel-nacional .encabezado-panel,
.mapa-panel-nacional .titulo-panel{
    margin-bottom:4px !important;
    padding-bottom:0 !important;
}

/* Reduce separación antes del mapa */
.mapa-panel-nacional #mapaNacional{
    height:390px !important;
    min-height:0 !important;
    margin-top:6px !important;
}

/* Reduce separación entre el bloque 60/40 y los cards inferiores */
.kpis-nacionales-complementarios{
    margin-top:8px !important;
}

@media(max-width:850px){
    .mapa-panel-nacional #mapaNacional{
        height:430px !important;
    }
}

@media(max-width:600px){
    .mapa-panel-nacional #mapaNacional{
        height:400px !important;
    }
}



/* =====================================================
   V6 · DESAGREGACIÓN POR SEXO EN KPIs NACIONALES
   ===================================================== */
.kpi-desagregado{
    min-width:0;
}
.desglose-sexo{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    margin-top:8px;
    padding-top:7px;
    border-top:1px solid #e5dfd5;
}
.desglose-sexo div{
    min-width:0;
}
.desglose-sexo small{
    display:block;
    font-size:9px;
    color:#65717f;
    font-weight:bold;
    text-transform:uppercase;
}
.desglose-sexo b{
    display:block;
    margin-top:3px;
    font-size:12px;
    color:#4a2835;
    white-space:nowrap;
}


/* =====================================================
   V7 · DESAGREGACIÓN POR SEXO EN KPIs ESTATALES
   Usa la misma estructura visual de Nacional.
   ===================================================== */
.kpis-estatales .kpi-desagregado{
    padding:10px 9px;
}

.kpis-estatales .kpi-desagregado strong{
    font-size:20px;
}

.kpis-estatales .kpi-desagregado .desglose-sexo{
    gap:4px;
    margin-top:6px;
    padding-top:5px;
}

.kpis-estatales .kpi-desagregado .desglose-sexo small{
    font-size:8px;
}

.kpis-estatales .kpi-desagregado .desglose-sexo b{
    font-size:10.5px;
}

/* =====================================================
   V8 · INTEGRACIÓN SIGED + NÓMINA Q14 2026
   ===================================================== */
.kpis-nomina-estatal{
    grid-template-columns:repeat(8,minmax(120px,1fr));
    padding-top:0;
}
.kpis-nomina-estatal article{
    border-top:3px solid #a57f2c;
}
.kpis-nomina-estatal small{
    display:block;
    margin-top:5px;
    color:#65717f;
    font-size:10px;
}
.texto-ayuda{
    margin:6px 0 10px;
    color:#65717f;
    font-size:12px;
    line-height:1.4;
}
.nomina-cct-resumen{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin:10px 0 12px;
}
.nomina-cct-resumen article{
    padding:9px;
    border:1px solid #e4ddd2;
    border-radius:6px;
    background:#fbfaf7;
}
.nomina-cct-resumen span,
.nomina-cct-resumen small{
    display:block;
    font-size:10px;
    color:#65717f;
    text-transform:uppercase;
    font-weight:bold;
}
.nomina-cct-resumen strong{
    display:block;
    margin-top:4px;
    color:#611232;
    font-size:16px;
}
.nomina-cct-resumen .comparativo-advertencia{
    grid-column:1 / -1;
    border-left:4px solid #a57f2c;
    background:#fff8e8;
}
.nomina-cct-resumen .comparativo-advertencia small{
    margin-top:5px;
    text-transform:none;
    font-weight:normal;
    line-height:1.35;
}
.tabla-nomina-cct{
    max-height:310px;
    overflow:auto;
    border:1px solid #e4ddd2;
    border-radius:6px;
}
.tabla-nomina-cct table{
    width:100%;
    border-collapse:collapse;
    font-size:11px;
}
.tabla-nomina-cct th{
    position:sticky;
    top:0;
    z-index:1;
    background:#611232;
    color:#fff;
    text-align:left;
    padding:7px;
}
.tabla-nomina-cct td{
    padding:7px;
    border-bottom:1px solid #eee8df;
    vertical-align:top;
}
.tabla-nomina-cct td:nth-child(5),
.tabla-nomina-cct td:nth-child(6),
.tabla-nomina-cct td:nth-child(7),
.tabla-nomina-cct td:nth-child(8){
    text-align:right;
    white-space:nowrap;
}
@media(max-width:1200px){
    .kpis-nomina-estatal{grid-template-columns:repeat(3,minmax(130px,1fr));}
}
@media(max-width:700px){
    .kpis-nomina-estatal{grid-template-columns:1fr 1fr;}
    .nomina-cct-resumen{grid-template-columns:1fr;}
}

/* =====================================================
   V9 · CONTROL DE PLANTILLA DEL CCT
   Código intencionalmente sencillo para facilitar ajustes.
   ===================================================== */

/* Cada bloque agrupa una lectura distinta de la nómina del CCT. */
.bloque-analisis-cct{
    margin:14px 0;
    padding:12px;
    border:1px solid #e4ddd2;
    border-radius:8px;
    background:#fff;
}

.bloque-analisis-cct h3{
    margin:0 0 4px;
    color:#611232;
    font-size:14px;
}

/* Composición de la plantilla: DOCENTE, DIRECTOR, OTROS, etc. */
.plantilla-composicion{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin-top:9px;
}

.plantilla-clasificacion{
    padding:8px 9px;
    border-left:4px solid #a57f2c;
    border-radius:5px;
    background:#fbfaf7;
}

.plantilla-clasificacion span,
.plantilla-clasificacion small{
    display:block;
    color:#65717f;
    font-size:9px;
}

.plantilla-clasificacion span{
    font-weight:700;
    text-transform:uppercase;
}

.plantilla-clasificacion strong{
    display:block;
    margin:3px 0;
    color:#611232;
    font-size:14px;
}

/* Resumen específico de puestos directivos y de supervisión. */
.directivos-resumen{
    margin-top:9px;
    border:1px solid #eee8df;
    border-radius:6px;
    overflow:hidden;
}

.directivo-fila{
    display:grid;
    grid-template-columns:1fr auto 72px;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border-bottom:1px solid #eee8df;
    background:#fff;
}

.directivo-fila:last-child{
    border-bottom:0;
}

.directivo-fila strong{
    color:#611232;
    font-size:14px;
}

.directivo-fila small{
    text-align:right;
    color:#65717f;
    font-size:9px;
    font-weight:700;
    text-transform:uppercase;
}

/* Amarillo = dato que merece revisión; no implica irregularidad. */
.directivo-fila.revisar{
    background:#fff8e8;
    border-left:4px solid #d39b20;
}

.directivo-fila.revisar small{
    color:#8a5c00;
}

/* Alertas preventivas del CCT. */
.alertas-plantilla{
    display:grid;
    gap:6px;
    margin-top:8px;
}

.alerta-plantilla{
    display:flex;
    align-items:flex-start;
    gap:8px;
    padding:8px 9px;
    border-radius:6px;
    font-size:11px;
    line-height:1.35;
}

.alerta-plantilla p{
    margin:0;
}

.alerta-punto{
    flex:0 0 9px;
    width:9px;
    height:9px;
    margin-top:3px;
    border-radius:50%;
    background:#7a8794;
}

.alerta-plantilla.ok{
    background:#eef8f1;
    color:#285c3b;
}

.alerta-plantilla.ok .alerta-punto{
    background:#3a8b58;
}

.alerta-plantilla.revisar{
    background:#fff4dc;
    color:#7a5200;
}

.alerta-plantilla.revisar .alerta-punto{
    background:#d39b20;
}

.alerta-plantilla.info{
    background:#f2f5f7;
    color:#53616e;
}

@media(max-width:700px){
    .plantilla-composicion{
        grid-template-columns:1fr;
    }

    .directivo-fila{
        grid-template-columns:1fr auto;
    }

    .directivo-fila small{
        grid-column:1 / -1;
        text-align:left;
    }
}


/* ==========================================================
   V11 · RESUMEN DE NÓMINA DE LA SELECCIÓN ACTUAL
   ==========================================================
   Este bloque se actualiza con los mismos filtros del módulo
   Estatal. No sustituye la ficha individual del CCT.
   ========================================================== */

.nomina-seleccion-panel{
    margin:18px clamp(18px,4vw,56px) 0;
}

.nomina-seleccion-clasificaciones{
    display:grid;
    grid-template-columns:repeat(5,minmax(150px,1fr));
    gap:10px;
    margin-top:14px;
}

.nomina-seleccion-clasificacion{
    padding:14px;
    border:1px solid #eadfe4;
    border-radius:12px;
    background:#fff;
}

.nomina-seleccion-clasificacion span{
    display:block;
    font-size:12px;
    font-weight:700;
    color:#6f5c65;
    margin-bottom:6px;
}

.nomina-seleccion-clasificacion strong{
    display:block;
    font-size:18px;
    color:#611232;
    margin-bottom:4px;
}

.nomina-seleccion-clasificacion small{
    display:block;
    color:#6f6f6f;
    line-height:1.35;
}

.nomina-comparativo-seleccion{
    margin-top:12px;
}

.comparativo-docente-seleccion{
    display:grid;
    grid-template-columns:repeat(3,minmax(150px,1fr));
    gap:10px;
    padding:14px;
    border:1px solid #e5d7dc;
    border-left:5px solid #a57f2c;
    border-radius:12px;
    background:#faf8f5;
}

.comparativo-docente-seleccion > div{
    padding:8px 10px;
}

.comparativo-docente-seleccion span{
    display:block;
    font-size:12px;
    color:#6f5c65;
    margin-bottom:4px;
}

.comparativo-docente-seleccion strong{
    font-size:20px;
    color:#611232;
}

.comparativo-docente-seleccion p{
    grid-column:1 / -1;
    margin:2px 10px 0;
    color:#5f5f5f;
    font-size:13px;
}

.comparativo-docente-seleccion.ok{
    border-left-color:#287a4b;
}

.comparativo-docente-seleccion.revisar{
    border-left-color:#b7791f;
}

.tabla-nomina-seleccion-scroll{
    margin-top:14px;
}

.tabla-nomina-seleccion td:nth-child(n+2){
    text-align:right;
    white-space:nowrap;
}

@media (max-width:1100px){
    .nomina-seleccion-clasificaciones{
        grid-template-columns:repeat(3,minmax(150px,1fr));
    }
}

@media (max-width:760px){
    .nomina-seleccion-clasificaciones{
        grid-template-columns:1fr 1fr;
    }

    .comparativo-docente-seleccion{
        grid-template-columns:1fr;
    }

    .comparativo-docente-seleccion p{
        grid-column:auto;
    }
}

@media (max-width:520px){
    .nomina-seleccion-clasificaciones{
        grid-template-columns:1fr;
    }
}

/* ==========================================================
   V12 · VISTA EJECUTIVA DE NÓMINA
   ==========================================================
   OBJETIVO VISUAL:
   - Mostrar sólo información clave en la vista territorial.
   - Evitar duplicidad cuando se abre un CCT.
   - Dejar el detalle completo bajo demanda con <details>.
   ========================================================== */

/* ---------- Resumen territorial ---------- */
.nomina-seleccion-ejecutiva{
    padding:16px 18px;
}

.titulo-nomina-ejecutiva{
    margin-bottom:8px;
}

.nomina-resumen-clave{
    display:grid;
    grid-template-columns:repeat(5,minmax(120px,1fr));
    gap:8px;
    margin-top:8px;
}

.nomina-kpi-clave{
    padding:10px 12px;
    border:1px solid #eadfe4;
    border-radius:9px;
    background:#fbfaf8;
}

.nomina-kpi-clave span{
    display:block;
    margin-bottom:3px;
    color:#6f5c65;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
}

.nomina-kpi-clave strong{
    display:block;
    color:#611232;
    font-size:17px;
    line-height:1.2;
}

.nomina-kpi-clave.ok{
    border-left:4px solid #287a4b;
}

.nomina-kpi-clave.revisar{
    border-left:4px solid #b7791f;
    background:#fffaf0;
}

/* Clasificaciones en una línea compacta, en lugar de cards grandes. */
.nomina-chips-clasificacion{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:10px;
}

.nomina-chips-clasificacion .nomina-seleccion-clasificacion{
    min-width:155px;
    flex:0 1 auto;
    padding:7px 10px;
    border-radius:8px;
    background:#fff;
}

.nomina-chips-clasificacion .nomina-seleccion-clasificacion span{
    margin-bottom:2px;
    font-size:10px;
}

.nomina-chips-clasificacion .nomina-seleccion-clasificacion strong{
    display:inline;
    margin:0 4px 0 0;
    font-size:14px;
}

.nomina-chips-clasificacion .nomina-seleccion-clasificacion small{
    display:inline;
    font-size:10px;
}

/* Detalle completo oculto por defecto. */
.detalle-nomina-seleccion{
    margin-top:10px;
    border-top:1px solid #eee5e8;
    padding-top:8px;
}

.detalle-nomina-seleccion > summary,
.detalle-cct-colapsable > summary{
    cursor:pointer;
    color:#611232;
    font-size:11px;
    font-weight:700;
    user-select:none;
}

.detalle-nomina-seleccion > summary:hover,
.detalle-cct-colapsable > summary:hover{
    text-decoration:underline;
}

/* ---------- Ficha individual del CCT ---------- */
.nomina-cct-panel-ejecutivo{
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid #e7ded3;
}

.cabecera-nomina-cct{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}

.cabecera-nomina-cct h2{
    margin:0;
}

.btn-cerrar-ficha{
    width:28px;
    height:28px;
    padding:0;
    border:1px solid #d9c8cf;
    border-radius:50%;
    background:#fff;
    color:#611232;
    font-size:20px;
    line-height:1;
    cursor:pointer;
}

.btn-cerrar-ficha:hover{
    background:#f5ecef;
}

/* El resumen deja de usar 10 tarjetas independientes. */
.nomina-cct-resumen-ejecutivo{
    display:block;
    margin:8px 0 10px;
}

.cct-comparativo-principal{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
    padding:9px;
    border:1px solid #eadfe4;
    border-left:4px solid #a57f2c;
    border-radius:8px;
    background:#fbfaf8;
}

.cct-comparativo-principal.ok{
    border-left-color:#287a4b;
}

.cct-comparativo-principal.revisar{
    border-left-color:#b7791f;
}

.cct-comparativo-principal div{
    min-width:0;
    padding:2px 5px;
}

.cct-comparativo-principal span{
    display:block;
    color:#6f5c65;
    font-size:9px;
    font-weight:700;
    text-transform:uppercase;
}

.cct-comparativo-principal strong{
    display:block;
    margin-top:2px;
    color:#611232;
    font-size:17px;
}

.cct-kpis-secundarios{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:6px;
    margin-top:7px;
}

.cct-kpis-secundarios article{
    min-width:0;
    padding:7px 8px;
    border:1px solid #e8e0d7;
    border-radius:7px;
    background:#fff;
}

.cct-kpis-secundarios article.revisar{
    border-left:4px solid #b7791f;
    background:#fffaf0;
}

.cct-kpis-secundarios span,
.cct-kpis-secundarios small{
    display:block;
    color:#65717f;
    font-size:8.5px;
    font-weight:700;
    text-transform:uppercase;
}

.cct-kpis-secundarios strong{
    display:block;
    margin-top:2px;
    color:#611232;
    font-size:14px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.cct-resumen-pie{
    margin:7px 2px 0;
    color:#65717f;
    font-size:10px;
    line-height:1.35;
}

/* Secciones de investigación: cerradas hasta que el usuario las pide. */
.detalle-cct-colapsable{
    margin-top:6px;
    padding:7px 0;
    border-top:1px solid #eee8df;
}

.bloque-analisis-cct-interior{
    margin:8px 0 0;
    padding:8px;
}

.detalle-cct-colapsable .tabla-nomina-cct{
    margin-top:8px;
    max-height:280px;
}

@media(max-width:1200px){
    .nomina-resumen-clave{
        grid-template-columns:repeat(3,minmax(120px,1fr));
    }
}

@media(max-width:760px){
    .nomina-resumen-clave{
        grid-template-columns:1fr 1fr;
    }

    .cct-kpis-secundarios{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:520px){
    .nomina-resumen-clave,
    .cct-comparativo-principal{
        grid-template-columns:1fr;
    }
}


/* ==========================================================
   V13 · SEPARACIÓN VISUAL SIGED / NÓMINA / COMPARATIVO
   ==========================================================
   PRINCIPIO:
   - SIGED = características educativas.
   - Nómina = personas, plazas, horas, categorías y pago.
   - Comparativo = análisis entre ambas fuentes.
   ========================================================== */

/* ---------- Etiqueta de fuente SIGED ---------- */
.fuente-datos{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:0 20px 8px;
    padding:8px 12px;
    border-radius:8px;
}

.fuente-datos div{
    display:flex;
    align-items:baseline;
    gap:10px;
    flex-wrap:wrap;
}

.fuente-datos strong{
    font-size:13px;
    letter-spacing:.02em;
}

.fuente-datos span{
    font-size:11px;
    color:#637083;
}

.fuente-datos-siged{
    border-left:4px solid #8b6f24;
    background:#f8f5ec;
    color:#4d3b0e;
}


/* ---------- KPIs exclusivos de nómina ---------- */
.nomina-kpis-seleccion{
    display:grid;
    grid-template-columns:
        repeat(5, minmax(105px, 1fr))
        minmax(170px, 1.35fr);
    gap:8px;
    margin-top:8px;
}

.nomina-kpi-fuente{
    min-width:0;
    padding:9px 11px;
    border:1px solid #e7dce1;
    border-radius:9px;
    background:#fff;
}

.nomina-kpi-fuente span{
    display:block;
    margin-bottom:3px;
    color:#6f5c65;
    font-size:9px;
    font-weight:700;
    letter-spacing:.02em;
    text-transform:uppercase;
}

.nomina-kpi-fuente strong{
    display:block;
    overflow:hidden;
    color:#611232;
    font-size:16px;
    line-height:1.2;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.nomina-kpi-percepciones{
    border-left:4px solid #611232;
    background:#fcf8f9;
}


/* ---------- Franja comparativa ---------- */
.comparativo-fuentes{
    display:grid;
    grid-template-columns:minmax(220px,.75fr) minmax(420px,1.25fr);
    gap:12px;
    align-items:center;
    margin-top:11px;
    padding:10px 12px;
    border:1px solid #eadfe4;
    border-radius:10px;
    background:#fbfaf8;
}

.comparativo-fuentes-titulo strong{
    display:block;
    margin-bottom:3px;
    color:#4b2734;
    font-size:12px;
}

.comparativo-fuentes-titulo span{
    display:block;
    color:#6d7682;
    font-size:10px;
    line-height:1.35;
}

.comparativo-docente-contenido{
    display:grid;
    grid-template-columns:1fr 28px 1fr 1fr;
    gap:6px;
    align-items:stretch;
}

.comparativo-dato,
.comparativo-diferencia{
    min-width:0;
    padding:7px 9px;
    border-radius:8px;
    background:#fff;
}

.comparativo-dato span,
.comparativo-diferencia span{
    display:block;
    margin-bottom:2px;
    font-size:9px;
    font-weight:700;
    text-transform:uppercase;
}

.comparativo-dato strong,
.comparativo-diferencia strong{
    display:block;
    color:#611232;
    font-size:17px;
    line-height:1.15;
}

.comparativo-dato small,
.comparativo-diferencia small{
    display:block;
    margin-top:2px;
    color:#6d7682;
    font-size:9px;
}

.comparativo-dato.fuente-siged{
    border-left:3px solid #8b6f24;
}

.comparativo-dato.fuente-nomina{
    border-left:3px solid #611232;
}

.comparativo-diferencia{
    border-left:3px solid #b7791f;
}

.comparativo-diferencia.ok{
    border-left-color:#287a4b;
}

.comparativo-separador{
    display:flex;
    align-items:center;
    justify-content:center;
    color:#8a7b82;
    font-size:18px;
}


/* ==========================================================
   V13 · TABLA DE DETALLE DE COMPOSICIÓN
   ========================================================== */

.tabla-nomina-seleccion-scroll{
    margin-top:9px;
    border:1px solid #e5d9de;
    border-radius:10px;
    overflow:auto;
    background:#fff;
}

.tabla-nomina-detalle{
    width:100%;
    min-width:760px;
    border-collapse:separate;
    border-spacing:0;
    font-size:11px;
}

.tabla-nomina-detalle thead th{
    position:sticky;
    top:0;
    z-index:1;
    padding:9px 10px;
    border-bottom:1px solid #611232;
    background:#611232;
    color:#fff;
    font-size:10px;
    font-weight:700;
    text-align:right;
    white-space:nowrap;
}

.tabla-nomina-detalle thead th:first-child{
    border-top-left-radius:8px;
    text-align:left;
}

.tabla-nomina-detalle thead th:last-child{
    border-top-right-radius:8px;
}

.tabla-nomina-detalle tbody td{
    padding:8px 10px;
    border-bottom:1px solid #eee6e9;
    color:#27313c;
    text-align:right;
    white-space:nowrap;
}

.tabla-nomina-detalle tbody td:first-child{
    text-align:left;
}

.tabla-nomina-detalle tbody tr:nth-child(even){
    background:#faf7f8;
}

.tabla-nomina-detalle tbody tr:hover{
    background:#f6ecef;
}

.tabla-nomina-detalle tbody tr:last-child td{
    border-bottom:0;
}

.tabla-nomina-detalle .clasificacion-tabla strong{
    display:inline-block;
    padding:3px 7px;
    border-radius:999px;
    background:#f2e7eb;
    color:#611232;
    font-size:10px;
    letter-spacing:.01em;
}


/* ---------- Responsive ---------- */
@media (max-width:1200px){
    .nomina-kpis-seleccion{
        grid-template-columns:repeat(3,minmax(120px,1fr));
    }

    .comparativo-fuentes{
        grid-template-columns:1fr;
    }
}

@media (max-width:760px){
    .fuente-datos{
        margin-left:10px;
        margin-right:10px;
    }

    .nomina-kpis-seleccion{
        grid-template-columns:repeat(2,minmax(120px,1fr));
    }

    .comparativo-docente-contenido{
        grid-template-columns:1fr 1fr;
    }

    .comparativo-separador{
        display:none;
    }
}

