/* ============================================================================
 * zulux-ace-override.css · Repinta la plantilla Ace con los colores corporativos.
 * Fase 3 de la unificación visual (05/08/2026).
 * Fase 5 (06/08/2026): el mismo repintado sirve ya para el tema claro y para el oscuro.
 *
 * ─────────────────────────────────────────────────────────────────────────────
 * TODO VA BAJO :root[data-zx-repintado], Y ESO ES LO IMPORTANTE
 * ─────────────────────────────────────────────────────────────────────────────
 * Ni una regla de este fichero aplica si el <html> no lleva ese atributo. Así se
 * puede cargar en las 47 vistas sin que cambie nada, e ir marcando las pantallas
 * de una en una. Si una queda mal, se le quita el atributo y vuelve al aspecto de
 * siempre sin tocar CSS ni desplegar nada.
 *
 * ANTES ERA :root[data-tema="oscuro"], Y HUBO QUE SEPARAR LAS DOS COSAS
 * Con el selector antiguo, «repintado» y «oscuro» eran lo mismo, y el tema claro
 * habría sido imposible: o repintabas en oscuro, o no repintabas. Ahora son dos
 * preguntas distintas, y cada una tiene su atributo:
 *
 *     data-tema="claro|oscuro|clasico"  ->  QUÉ COLORES (lo elige el usuario)
 *     data-zx-repintado                 ->  SI SE REPINTA Ace o se deja como venía
 *
 * Los pone assets/js/zulux-tema.js. En claro y en oscuro están los dos; en clásico
 * está solo data-tema, sin el segundo, y este fichero entero se queda inerte: la
 * pantalla vuelve al Ace de toda la vida. Eso ES el tema clásico, no hay más.
 *
 * La especificidad no cambia: :root[data-zx-repintado] pesa lo mismo (0,2,0) que
 * el :root[data-tema="oscuro"] de antes, así que la cascada se comporta igual.
 *
 * ─────────────────────────────────────────────────────────────────────────────
 * LOS COLORES DICEN SU PAPEL, NO SU TONO
 * ─────────────────────────────────────────────────────────────────────────────
 * Depende de zulux-tokens.css. Este fichero NO inventa colores, pero además —desde
 * la fase 5— tampoco nombra ninguno: no dice var(--zx-morado-800) sino
 * var(--zx-panel), y es cada tema el que decide qué es un panel. Antes había 21
 * usos de morado-800, 18 de morado-700, 16 de amarillo y 15 de blanco, y con eso
 * el tema claro no podía existir.
 *
 * Siguen nombrados a pelo, y a propósito, tres sitios:
 *   · la banda de marca (barra de Ace y pie), morada en los dos temas por identidad;
 *   · el velo de los modales, oscuro en los dos porque un velo claro no vela;
 *   · los chips de estado sólidos (éxito, aviso, error, info), que significan lo que
 *     significan independientemente del tema.
 *
 * ─────────────────────────────────────────────────────────────────────────────
 * POR QUÉ TANTOS !important
 * ─────────────────────────────────────────────────────────────────────────────
 * Porque Ace los usa a mansalva en sus propias reglas, y sin ellos no hay forma
 * de ganar la cascada sin escribir selectores absurdamente largos. No es dejadez:
 * es la única manera razonable de repintar una plantilla ajena sin tocarla.
 *
 * Aun así, cada vista lleva su propio <style> en línea, y un estilo inline con
 * más especificidad puede ganar a esto. Eso se descubre pantalla por pantalla:
 * no hay atajo.
 * ========================================================================== */

/* ===== 0. BASE: los enlaces de texto =====
   Esta regla va PRIMERA a proposito. Es la mas generica (un elemento, `a`), asi que cualquier
   regla de componente de mas abajo -.btn, .nav-list > li > a, .ace-nav ...- le gana por
   especificidad, sin necesidad de parches.
   La primera version tenia esto al FINAL, con un `.btn { color: inherit !important }` para que
   los botones no cogieran el amarillo. Y eso pisaba el color del texto de .btn-primary: los
   botones amarillos salian con texto claro y NO SE LEIAN (visto en la piloto el 05/08/2026).
   Moverla arriba y quitar el parche lo arregla por cascada, que es como debia estar.
   El hover de un enlace ACLARA y el de un boton OSCURECE, por eso son dos tokens distintos. */
:root[data-zx-repintado] a { color: var(--zx-acento) !important; }
:root[data-zx-repintado] a:hover { color: var(--zx-enlace-hover) !important; }

/* ===== 1. Superficies generales ===== */
:root[data-zx-repintado] body,
:root[data-zx-repintado] .main-container,
:root[data-zx-repintado] .main-content,
:root[data-zx-repintado] .page-content {
    background: var(--zx-fondo) !important;
    color: var(--zx-texto) !important;
}
:root[data-zx-repintado] body.no-skin { background-color: var(--zx-fondo) !important; }

/* Ace pinta el borde del contenido en gris claro: se apaga */
:root[data-zx-repintado] .page-content,
:root[data-zx-repintado] .main-content {
    border-color: var(--zx-borde) !important;
}

/* ===== 2. Barra superior =====
   OJO: desde la fase 4c las 23 vistas de enerluz ya NO usan la barra de Ace, sino la
   compartida (views/_barra_ini.html, con su propia hoja). Esta seccion sigue viva por las
   otras: administracion, partes personales, cae y encuesta, que conservan su cabecera.
   La banda va morada en los dos temas: es la marca, no el tema. */
:root[data-zx-repintado] #navbar,
:root[data-zx-repintado] .navbar,
:root[data-zx-repintado] .navbar-default {
    background: var(--zx-banda) !important;
    background-image: none !important;
    border-bottom: 1px solid var(--zx-morado-900) !important;
}
:root[data-zx-repintado] .navbar .navbar-brand,
:root[data-zx-repintado] .ace-nav > li > a {
    color: var(--zx-sobre-banda) !important;
}
/* El bloque del usuario: en Ace es azul ("light-blue"); pasa al acento del tema */
:root[data-zx-repintado] .ace-nav > li.light-blue > a,
:root[data-zx-repintado] .ace-nav > li.blue > a {
    background: var(--zx-acento) !important;
    color: var(--zx-sobre-acento) !important;
}
:root[data-zx-repintado] .ace-nav > li > a:hover {
    background: var(--zx-acento-hover) !important;
}
/* Va DENTRO del bloque anterior, o sea encima del acento. En oscuro esto era morado-700 y
   ahora es morado a secas: sobre el amarillo, la diferencia entre los dos no se aprecia. */
:root[data-zx-repintado] .user-info small { color: var(--zx-sobre-acento) !important; }

/* ===== 3. Menú lateral ===== */
:root[data-zx-repintado] .sidebar {
    background: var(--zx-lateral) !important;
    border-right: 1px solid var(--zx-borde-fuerte) !important;
}
:root[data-zx-repintado] .nav-list > li > a,
:root[data-zx-repintado] .nav-list .submenu > li > a {
    color: var(--zx-lateral-texto) !important;
    background: transparent !important;
    border-color: var(--zx-borde-fuerte) !important;
}
:root[data-zx-repintado] .nav-list > li:hover > a,
:root[data-zx-repintado] .nav-list .submenu > li:hover > a {
    color: var(--zx-sobre-panel) !important;
    background: var(--zx-realce) !important;
}
/* EL BLOQUE DE LA ENTRADA ACTIVA: AMARILLO SIEMPRE, EN LOS TRES TEMAS.

   Lo caza Marco el 26/08/2026: "cuando cambio a modo oscuro ocurre exactamente al reves".
   Y es exacto. El color salia de sitios distintos en cada familia:

     · las 24 CLASICAS no cargan zulux-menu.css. En tema "clasico", zulux-tema.js QUITA el
       data-zx-repintado del <html>, asi que zulux-ace-override.css no aplica y manda
       ace.css con un #ffce03 escrito a pelo: amarillo. Pero en "oscuro" y en "claro" SI se
       pone ese atributo, entra el override y el activo pasaba a letra de acento sobre el
       panel: deja de ser amarillo.
     · las 4 MODERNAS usaban --zx-acento, que es amarillo SOLO en oscuro; en claro y en
       clasico es morado.

   O sea que en clasico las viejas salian amarillas y las nuevas moradas, y en oscuro justo
   al reves. Nunca coincidian, y por eso mi arreglo anterior -que usaba --zx-acento- no se
   vio: Marco trabaja en clasico.

   AHORA VA CON --zx-amarillo Y --zx-morado, que estan en el bloque base de
   zulux-tokens.css y NO cambian con el tema. Es el mismo par que ace.css lleva escrito a
   mano (#ffce03 sobre #301649), pero por token en vez de en crudo. Asi las seis
   combinaciones -dos familias por tres temas- pintan lo mismo.

   El :hover y el :focus van en la misma regla: sin ellos, pasar el raton por encima de la
   entrada activa le devuelve el fondo de realce y pierde la marca. */
:root[data-zx-repintado] .nav-list > li.active > a,
:root[data-zx-repintado] .nav-list > li.active > a:hover,
:root[data-zx-repintado] .nav-list > li.active > a:focus {
    color: var(--zx-morado, #301649) !important;
    background: var(--zx-amarillo, #ffce03) !important;
    font-weight: var(--zx-peso-semibold);
}
/* La barrita sobra sobre el bloque amarillo: seria del mismo color que el fondo. */
:root[data-zx-repintado] .nav-list > li.active::before {
    display: none !important;
}
:root[data-zx-repintado] .nav-list > li .submenu {
    background: var(--zx-panel) !important;
    border-color: var(--zx-borde-fuerte) !important;
}
:root[data-zx-repintado] .nav-list > li > a > .menu-icon { color: inherit !important; }
:root[data-zx-repintado] .sidebar-toggle,
:root[data-zx-repintado] .sidebar-shortcuts {
    background: var(--zx-lateral) !important;
    border-color: var(--zx-borde-fuerte) !important;
}

/* ===== 4. Botones ===== */
:root[data-zx-repintado] .btn {
    background: var(--zx-boton) !important;
    background-image: none !important;
    border-color: var(--zx-boton-borde) !important;
    color: var(--zx-sobre-boton) !important;
    text-shadow: none !important;
}
:root[data-zx-repintado] .btn:hover,
:root[data-zx-repintado] .btn:focus {
    background: var(--zx-boton-hover) !important;
    border-color: var(--zx-boton-hover-borde) !important;
}
/* La acción principal va en el acento: amarillo en oscuro, morado en claro */
:root[data-zx-repintado] .btn-primary,
:root[data-zx-repintado] .btn.btn-yellow {
    background: var(--zx-acento) !important;
    border-color: var(--zx-acento-borde) !important;
    color: var(--zx-sobre-acento) !important;
    font-weight: var(--zx-peso-semibold);
}
:root[data-zx-repintado] .btn-primary:hover {
    background: var(--zx-acento-hover) !important;
}
/* Los semánticos conservan su significado, con los tonos del manual, y NO cambian con
   el tema: un botón de borrar es rojo tanto en claro como en oscuro. */
:root[data-zx-repintado] .btn-success { background: var(--zx-exito-solido) !important; border-color: var(--zx-exito-solido) !important; }
:root[data-zx-repintado] .btn-warning { background: var(--zx-aviso-solido) !important; border-color: var(--zx-aviso-solido) !important; }
:root[data-zx-repintado] .btn-danger  { background: var(--zx-error-solido) !important; border-color: var(--zx-error-solido) !important; }
:root[data-zx-repintado] .btn-info    { background: var(--zx-info-solido)  !important; border-color: var(--zx-info-solido)  !important; }
:root[data-zx-repintado] .btn[disabled],
:root[data-zx-repintado] .btn.disabled { opacity: .45 !important; }

/* ===== 5. Formularios ===== */
:root[data-zx-repintado] .form-control,
:root[data-zx-repintado] input[type="text"],
:root[data-zx-repintado] input[type="number"],
:root[data-zx-repintado] input[type="password"],
:root[data-zx-repintado] input[type="email"],
:root[data-zx-repintado] input[type="date"],
:root[data-zx-repintado] textarea,
:root[data-zx-repintado] select {
    background: var(--zx-hueco) !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
    box-shadow: none !important;
}
:root[data-zx-repintado] .form-control:focus,
:root[data-zx-repintado] textarea:focus,
:root[data-zx-repintado] select:focus {
    border-color: var(--zx-acento) !important;
    box-shadow: 0 0 0 2px var(--zx-foco) !important;
}
:root[data-zx-repintado] .form-control::placeholder { color: var(--zx-texto-suave) !important; }
:root[data-zx-repintado] label,
:root[data-zx-repintado] .control-label { color: var(--zx-texto-suave) !important; }
:root[data-zx-repintado] .input-group-addon {
    background: var(--zx-panel) !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto-suave) !important;
}

/* ===== 6. Tablas ===== */
:root[data-zx-repintado] .table {
    color: var(--zx-texto) !important;
    background: transparent !important;
}
:root[data-zx-repintado] .table > thead > tr > th {
    background: var(--zx-panel) !important;
    background-image: none !important;
    color: var(--zx-sobre-panel) !important;
    border-color: var(--zx-borde-fuerte) !important;
}
/* El rotulo de la tabla se queda con el ACENTO que ya tenia. En ace.css estaba puesto a mano
   como background-color:#301649 y color:#ffce03, o sea los dos corporativos: es una decision
   del equipo, se respeta y solo se pasa a tokens. La primera version lo cambiaba a blanco y le
   quitaba identidad sin motivo. */
:root[data-zx-repintado] .table-header {
    background: var(--zx-panel) !important;
    background-image: none !important;
    color: var(--zx-acento) !important;
    border-color: var(--zx-borde-fuerte) !important;
}
:root[data-zx-repintado] .table > tbody > tr > td,
:root[data-zx-repintado] .table > tbody > tr > th {
    border-color: var(--zx-borde) !important;
}
:root[data-zx-repintado] .table-striped > tbody > tr:nth-child(odd) > td {
    background: var(--zx-cebra) !important;
}
:root[data-zx-repintado] .table-hover > tbody > tr:hover > td {
    background: var(--zx-panel) !important;
}
/* Las cifras alineadas, con la mono del manual */
:root[data-zx-repintado] .table td.num,
:root[data-zx-repintado] .table td.center.num {
    font-family: var(--zx-font-mono);
    font-variant-numeric: tabular-nums;
}

/* ===== 7. Ventanas modales ===== */
:root[data-zx-repintado] .modal-content {
    background: var(--zx-superficie) !important;
    border: 1px solid var(--zx-borde) !important;
    color: var(--zx-texto) !important;
    box-shadow: var(--zx-sombra) !important;
}
:root[data-zx-repintado] .modal-header {
    background: var(--zx-panel) !important;
    border-bottom-color: var(--zx-borde) !important;
}
:root[data-zx-repintado] .modal-header .modal-title,
:root[data-zx-repintado] .modal-header h4 { color: var(--zx-sobre-panel) !important; }
:root[data-zx-repintado] .modal-footer {
    background: var(--zx-hundido) !important;
    border-top-color: var(--zx-borde) !important;
}
/* El velo va oscuro en los DOS temas: un velo claro no vela. Bootstrap le pone la
   transparencia aparte, con .modal-backdrop.in{opacity:.5}. */
:root[data-zx-repintado] .modal-backdrop { background: var(--zx-morado-900) !important; }

/* ===== 8. Recuadros y paneles ===== */
:root[data-zx-repintado] .widget-box {
    background: var(--zx-superficie) !important;
    border-color: var(--zx-borde) !important;
}
:root[data-zx-repintado] .widget-header {
    background: var(--zx-panel) !important;
    background-image: none !important;
    border-bottom-color: var(--zx-borde) !important;
    color: var(--zx-sobre-panel) !important;
}
:root[data-zx-repintado] .widget-body { background: var(--zx-superficie) !important; }
:root[data-zx-repintado] .well,
:root[data-zx-repintado] .panel,
:root[data-zx-repintado] .panel-body {
    background: var(--zx-panel) !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
}

/* ===== 9. La tabla de dos columnas "nombre / valor" (perfil de cliente) =====
   286 usos de cada clase: es una de las cosas que mas se ve en la aplicacion. */
:root[data-zx-repintado] .profile-info-name {
    background: var(--zx-panel) !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto-suave) !important;
}
:root[data-zx-repintado] .profile-info-value {
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
}
:root[data-zx-repintado] .profile-user-info { background: transparent !important; }

/* ===== 10. Pestañas, etiquetas, avisos y paginación ===== */
:root[data-zx-repintado] .nav-tabs > li > a {
    background: var(--zx-panel) !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto-suave) !important;
}
:root[data-zx-repintado] .nav-tabs > li.active > a {
    background: var(--zx-superficie) !important;
    border-bottom-color: transparent !important;
    color: var(--zx-acento) !important;
}
:root[data-zx-repintado] .tab-content { background: var(--zx-superficie) !important; border-color: var(--zx-borde) !important; }
:root[data-zx-repintado] .label { text-shadow: none !important; }
:root[data-zx-repintado] .label-yellow,
:root[data-zx-repintado] .badge-yellow { background: var(--zx-acento) !important; color: var(--zx-sobre-acento) !important; }
:root[data-zx-repintado] .alert-success { background: var(--zx-exito-bg) !important; border-color: var(--zx-exito) !important; color: var(--zx-exito) !important; }
:root[data-zx-repintado] .alert-warning { background: var(--zx-aviso-bg) !important; border-color: var(--zx-aviso) !important; color: var(--zx-aviso) !important; }
:root[data-zx-repintado] .alert-danger,
:root[data-zx-repintado] .alert-error   { background: var(--zx-error-bg) !important; border-color: var(--zx-error) !important; color: var(--zx-error) !important; }
:root[data-zx-repintado] .alert-info    { background: var(--zx-info-bg)  !important; border-color: var(--zx-info)  !important; color: var(--zx-info)  !important; }
:root[data-zx-repintado] .pagination > li > a {
    background: var(--zx-panel) !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
}
:root[data-zx-repintado] .pagination > li.active > a {
    background: var(--zx-acento) !important;
    border-color: var(--zx-acento-borde) !important;
    color: var(--zx-sobre-acento) !important;
}

/* ===== 11. Pie ===== */
:root[data-zx-repintado] .footer,
:root[data-zx-repintado] .footer-inner,
:root[data-zx-repintado] .footer-content {
    background: var(--zx-banda) !important;
    color: var(--zx-sobre-banda-tenue) !important;
    border-color: var(--zx-morado-700) !important;
}

/* ===== 12. jQuery UI y jqGrid =====
   Esto NO es Ace, es otra libreria, y hace falta: las rejillas jqGrid y los selectores de
   fecha se pintan con las clases .ui-* de jQuery UI. Sin esta seccion quedarian en claro
   sobre fondo oscuro, que es lo peor de los dos mundos.
   Alcance real medido: 29 vistas cargan ui.jqgrid.css (aunque solo 11 tienen rejilla de
   verdad) y 35 cargan jquery-ui.css, con 179 selectores de fecha entre todas. */
:root[data-zx-repintado] .ui-widget-content {
    background: var(--zx-superficie) !important;
    background-image: none !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
}
:root[data-zx-repintado] .ui-widget-header {
    background: var(--zx-panel) !important;
    background-image: none !important;
    border-color: var(--zx-borde-fuerte) !important;
    color: var(--zx-sobre-panel) !important;
}
:root[data-zx-repintado] .ui-state-default,
:root[data-zx-repintado] .ui-widget-content .ui-state-default {
    background: var(--zx-panel) !important;
    background-image: none !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
}
:root[data-zx-repintado] .ui-state-hover,
:root[data-zx-repintado] .ui-widget-content .ui-state-hover {
    background: var(--zx-realce) !important;
    background-image: none !important;
    color: var(--zx-sobre-panel) !important;
}
/* Lo seleccionado o "de hoy" en el calendario: el acento del tema */
:root[data-zx-repintado] .ui-state-active,
:root[data-zx-repintado] .ui-state-highlight,
:root[data-zx-repintado] .ui-widget-content .ui-state-active {
    background: var(--zx-acento) !important;
    background-image: none !important;
    border-color: var(--zx-acento-borde) !important;
    color: var(--zx-sobre-acento) !important;
}
/* La rejilla */
:root[data-zx-repintado] .ui-jqgrid,
:root[data-zx-repintado] .ui-jqgrid-view,
:root[data-zx-repintado] .ui-jqgrid-bdiv,
:root[data-zx-repintado] .ui-jqgrid-hdiv {
    background: var(--zx-superficie) !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
}
:root[data-zx-repintado] .ui-jqgrid .ui-jqgrid-htable th,
:root[data-zx-repintado] .ui-jqgrid-titlebar {
    background: var(--zx-panel) !important;
    background-image: none !important;
    color: var(--zx-sobre-panel) !important;
    border-color: var(--zx-borde-fuerte) !important;
}
:root[data-zx-repintado] .ui-jqgrid tr.jqgrow > td { border-color: var(--zx-borde) !important; }
:root[data-zx-repintado] .ui-jqgrid tr.ui-row-ltr:nth-child(odd) > td { background: var(--zx-cebra) !important; }
:root[data-zx-repintado] .ui-jqgrid-pager,
:root[data-zx-repintado] .ui-jqgrid-toppager {
    background: var(--zx-panel) !important;
    background-image: none !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
}
/* El fondo "bisque" que algunas vistas ponen a mano en la subrejilla: no pega con el tema */
:root[data-zx-repintado] .ui-jqgrid .subgrid-data .ui-th-column {
    background: var(--zx-realce) !important;
    color: var(--zx-sobre-panel) !important;
}
/* El calendario, que va en una capa flotante */
:root[data-zx-repintado] .ui-datepicker,
:root[data-zx-repintado] .datepicker.dropdown-menu,
:root[data-zx-repintado] .daterangepicker {
    background: var(--zx-superficie) !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
    box-shadow: var(--zx-sombra) !important;
}
:root[data-zx-repintado] .datepicker table tr td.day:hover { background: var(--zx-realce) !important; }
:root[data-zx-repintado] .datepicker table tr td.active,
:root[data-zx-repintado] .datepicker table tr td.today {
    background: var(--zx-acento) !important;
    background-image: none !important;
    color: var(--zx-sobre-acento) !important;
}

/* ===== 13. DataTables =====
   La tercera libreria que hay que repintar, y la que mas se nota: 32 vistas usan dataTable y
   27 sus controles (dataTables_length, _filter, _info, _paginate). Su estilo NO viene en un
   fichero propio, viene dentro de ace.css y ace-part2.css, y por eso gana a las reglas
   genericas de .table y de select/input: hay que apuntarle directamente.

   Sin esta seccion pasaba lo que se vio el 05/08/2026: filas que seguian con fondo blanco y
   texto claro encima -ilegibles-, y el "Mostrar X registros" y el "Buscar:" con fondo muy
   claro. Al pasar el cursor si se leian, porque el hover si lo cubria la regla de .table. */
:root[data-zx-repintado] .dataTables_wrapper,
:root[data-zx-repintado] .dataTables_border {
    background: transparent !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
}
/* Las FILAS: DataTables pinta el fondo en el <td>, no en el <tr>, y con su propia
   especificidad. Hay que decirlo con la misma fuerza o siguen en blanco. */
:root[data-zx-repintado] table.dataTable tbody tr,
:root[data-zx-repintado] table.dataTable tbody tr td,
:root[data-zx-repintado] table.dataTable tbody tr.odd td,
:root[data-zx-repintado] table.dataTable tbody tr.even td,
:root[data-zx-repintado] table.dataTable tbody tr.odd,
:root[data-zx-repintado] table.dataTable tbody tr.even {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--zx-texto) !important;
    border-color: var(--zx-borde) !important;
}
/* La banda alterna, muy suave, como en el resto de tablas */
:root[data-zx-repintado] table.dataTable tbody tr.odd td,
:root[data-zx-repintado] table.dataTable tbody tr:nth-child(odd) td {
    background-color: var(--zx-cebra) !important;
}
:root[data-zx-repintado] table.dataTable tbody tr:hover td,
:root[data-zx-repintado] table.dataTable tbody tr.odd:hover td,
:root[data-zx-repintado] table.dataTable tbody tr.even:hover td {
    background-color: var(--zx-panel) !important;
    color: var(--zx-sobre-panel) !important;
}
/* La fila seleccionada y la de "no hay datos" */
:root[data-zx-repintado] table.dataTable tbody tr.selected td,
:root[data-zx-repintado] table.dataTable tbody tr.active td {
    background-color: var(--zx-realce) !important;
    color: var(--zx-sobre-panel) !important;
}
:root[data-zx-repintado] table.dataTable td.dataTables_empty { color: var(--zx-texto-suave) !important; }
/* Cabeceras y flechas de ordenacion */
:root[data-zx-repintado] table.dataTable thead th,
:root[data-zx-repintado] table.dataTable thead td,
:root[data-zx-repintado] table.dataTable thead th.sorting,
:root[data-zx-repintado] table.dataTable thead th.sorting_asc,
:root[data-zx-repintado] table.dataTable thead th.sorting_desc {
    background-color: var(--zx-panel) !important;
    color: var(--zx-sobre-panel) !important;
    border-color: var(--zx-borde-fuerte) !important;
}
/* Los controles de arriba y abajo: "Mostrar N registros", "Buscar:", el recuento y las paginas.
 *
 * Ace NO les pone fondo: solo posicion (.dataTables_filter{text-align:right} y poco mas). Asi
 * que en oscuro se quedaban con el color del panel y la franja flotaba, desligada de la tabla.
 * Eso es lo que no cuadraba el 05/08/2026.
 *
 * Ahora las dos franjas llevan el MISMO fondo de panel que .table-header -que en ace.css ya
 * venia con background-color:#301649 y color:#ffce03, o sea que el equipo ya habia metido ahi
 * los colores corporativos-, asi que rotulo, controles y paginacion se leen como un solo bloque
 * de mandos alrededor de los datos. Solo se toca el color: ni un margen ni un relleno, para no
 * mover la maquetacion de 32 pantallas.
 *
 * Y el texto pasa de --zx-texto-suave a --zx-texto: en la franja oscura el suave se veia
 * apagado. */
:root[data-zx-repintado] .dataTables_wrapper > .row {
    background: var(--zx-panel) !important;
}
:root[data-zx-repintado] .dataTables_length,
:root[data-zx-repintado] .dataTables_filter,
:root[data-zx-repintado] .dataTables_info,
:root[data-zx-repintado] .dataTables_paginate,
:root[data-zx-repintado] .dataTables_length label,
:root[data-zx-repintado] .dataTables_filter label {
    color: var(--zx-texto) !important;
    background: transparent !important;
}
:root[data-zx-repintado] .dataTables_length select,
:root[data-zx-repintado] .dataTables_filter input,
:root[data-zx-repintado] .dataTables_filter input[type="search"] {
    background: var(--zx-hueco) !important;
    background-color: var(--zx-hueco) !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
}
:root[data-zx-repintado] .dataTables_paginate .paginate_button,
:root[data-zx-repintado] .dataTables_paginate a {
    background: var(--zx-panel) !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
}
:root[data-zx-repintado] .dataTables_paginate .paginate_button.current,
:root[data-zx-repintado] .dataTables_paginate .paginate_button.active {
    background: var(--zx-acento) !important;
    border-color: var(--zx-acento-borde) !important;
    color: var(--zx-sobre-acento) !important;
}

/* ===== 14. Chosen (los desplegables con buscador) =====
   31 vistas los usan. Lo que se vio: al abrirlos, la lista salia con fondo BLANCO y la opcion
   marcada en amarillo, o sea amarillo sobre blanco, que no se ve. Ahora la lista sigue al tema
   y la marcada lleva fondo de acento con texto del color contrario, que da 10,5:1 de contraste
   en oscuro y 12,4:1 en claro. */
:root[data-zx-repintado] .chosen-container .chosen-single,
:root[data-zx-repintado] .chosen-container .chosen-choices,
:root[data-zx-repintado] .chosen-container-single .chosen-single {
    background: var(--zx-hueco) !important;
    background-image: none !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
    box-shadow: none !important;
}
:root[data-zx-repintado] .chosen-container-active .chosen-single {
    border-color: var(--zx-acento) !important;
    box-shadow: 0 0 0 2px var(--zx-foco) !important;
}
:root[data-zx-repintado] .chosen-container .chosen-drop {
    background: var(--zx-superficie) !important;
    border-color: var(--zx-borde) !important;
    box-shadow: var(--zx-sombra) !important;
}
:root[data-zx-repintado] .chosen-container .chosen-results,
:root[data-zx-repintado] .chosen-container .chosen-results li {
    color: var(--zx-texto) !important;
    background: transparent !important;
}
:root[data-zx-repintado] .chosen-container .chosen-results li.active-result:hover,
:root[data-zx-repintado] .chosen-container .chosen-results li.highlighted {
    background: var(--zx-acento) !important;
    background-image: none !important;
    background-color: var(--zx-acento) !important;
    color: var(--zx-sobre-acento) !important;
    font-weight: var(--zx-peso-semibold);
}
:root[data-zx-repintado] .chosen-container .chosen-results li.result-selected {
    background: var(--zx-realce) !important;
    color: var(--zx-sobre-panel) !important;
}
:root[data-zx-repintado] .chosen-container .chosen-results li.no-results {
    background: var(--zx-panel) !important;
    color: var(--zx-texto-suave) !important;
}
:root[data-zx-repintado] .chosen-container .chosen-search input,
:root[data-zx-repintado] .chosen-container .chosen-search-input {
    background: var(--zx-hueco) !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-texto) !important;
}
:root[data-zx-repintado] .chosen-container .chosen-choices li.search-choice {
    background: var(--zx-realce) !important;
    background-image: none !important;
    border-color: var(--zx-borde) !important;
    color: var(--zx-sobre-panel) !important;
}

/* ===== 15. Tipografía ===== */
:root[data-zx-repintado] h1, :root[data-zx-repintado] h2,
:root[data-zx-repintado] h3, :root[data-zx-repintado] h4 { color: var(--zx-titulo) !important; }
:root[data-zx-repintado] hr { border-color: var(--zx-borde) !important; }
