/* =====================================================================
   AvanzaPI · Reskin — modo oscuro (body.mod-skin-dark)
   ---------------------------------------------------------------------
   Se carga después de avanza-reskin.css. Contiene únicamente los
   overrides de paleta y componentes para el tema oscuro.
   ===================================================================== */



/* ====================== MODO OSCURO ======================
   El tema usa body.mod-skin-dark. Redefinimos las variables de paleta
   para ese contexto; como todo el reskin usa var(--avz-*), el modo
   oscuro se propaga automáticamente. La marca verde se mantiene. */
body.mod-skin-dark {
    --avz-brand:        #8dc043;
    --avz-brand-hover:  #9ccb54;
    --avz-brand-strong: #a7d265;
    --avz-brand-deep:   #324a1e;
    --avz-brand-soft:   rgba(141, 192, 67, .16);
    --avz-brand-ring:   rgba(141, 192, 67, .45);
    --avz-on-brand:     #11200a;

    --avz-bg:        #0f1611;
    --avz-surface:   #18211b;
    --avz-surface-2: #1e2922;
    --avz-row-hover: #212d25;
    --avz-input-bg:  #1e2922;
    --avz-input-disabled-bg: #141b16;

    --avz-line:        #2b362e;
    --avz-line-strong: #3a473d;

    --avz-ink:   #e9efe9;
    --avz-ink-2: #b6c2b8;
    --avz-ink-3: #8a978d;

    --avz-ok-bg:   rgba(47,143,73,.20);   --avz-ok-ink:   #67d088;
    --avz-info-bg: rgba(47,111,192,.20);  --avz-info-ink: #6fa8e8;
    --avz-warn-bg: rgba(185,122,22,.22);  --avz-warn-ink: #e0a64a;
    --avz-dang-bg: rgba(207,71,63,.22);   --avz-dang-ink: #ea7a72;
    --avz-chip-bg: #28332b;               --avz-chip-ink: #b6c2b8;

    --avz-shadow:     0 1px 2px rgba(0,0,0,.35), 0 6px 22px rgba(0,0,0,.40);
    --avz-shadow-pop: 0 12px 34px rgba(0,0,0,.55);
}
/* Ajustes puntuales que el color de variable no cubre en oscuro */
body.mod-skin-dark .page-sidebar,
body.mod-skin-dark #js-primary-nav,
body.mod-skin-dark .primary-nav { background: var(--avz-surface) !important; }
body.mod-skin-dark .page-header { background: var(--avz-surface); }
/* Inputs/selects del tema que fuerzan blanco → fondo oscuro */
body.mod-skin-dark .form-control,
body.mod-skin-dark .custom-select,
body.mod-skin-dark .dataTables_filter input.form-control,
body.mod-skin-dark input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
body.mod-skin-dark textarea,
body.mod-skin-dark select,
body.mod-skin-dark .select2-container--default .select2-selection {
    background-color: var(--avz-input-bg) !important;
    color: var(--avz-ink) !important;
    border-color: var(--avz-line) !important;
}
/* Campos no editables: la regla de arriba iguala el fondo de todos los
   inputs con !important, así que hay que re-diferenciar los disabled */
body.mod-skin-dark .form-control:disabled,
body.mod-skin-dark .form-control[readonly],
body.mod-skin-dark .custom-select:disabled,
body.mod-skin-dark input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):disabled,
body.mod-skin-dark input:not([type="checkbox"]):not([type="radio"]):not([type="range"])[readonly],
body.mod-skin-dark textarea:disabled,
body.mod-skin-dark textarea[readonly],
body.mod-skin-dark select:disabled,
body.mod-skin-dark .select2-container--default.select2-container--disabled .select2-selection {
    background-color: var(--avz-input-disabled-bg) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .form-control::placeholder,
body.mod-skin-dark .select2-selection__placeholder { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .select2-container--default .select2-selection__rendered { color: var(--avz-ink) !important; }
body.mod-skin-dark select.custom-select option { background: var(--avz-surface); color: var(--avz-ink); }
/* select2 desplegado en oscuro */
body.mod-skin-dark .select2-dropdown { background: var(--avz-surface) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .select2-results__option { color: var(--avz-ink-2); }
/* Buscador y desplegables en oscuro */
body.mod-skin-dark .dropdown-menu { background: var(--avz-surface); border-color: var(--avz-line); }
body.mod-skin-dark .daterangepicker { background: var(--avz-surface); border-color: var(--avz-line); color: var(--avz-ink); }
body.mod-skin-dark .daterangepicker .calendar-table { background: var(--avz-surface); }
body.mod-skin-dark .daterangepicker td.off { background: var(--avz-surface); color: var(--avz-ink-3); }
/* El recuadro blanco del logo en el sidebar: suavizar en oscuro */
body.mod-skin-dark .page-sidebar .shadow[style*="background-color: white"] { background-color: var(--avz-surface-2) !important; }
/* Contenedor blanco de herramientas a la derecha de la cabecera */
body.mod-skin-dark .page-header .floating-menu { background: transparent !important; }
body.mod-skin-dark .page-header .js-lazy-header-calendar {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink) !important;
    border: 1px solid var(--avz-line);
}
body.mod-skin-dark .page-header .floating-menu [class*="fa-"],
body.mod-skin-dark .page-header .floating-menu .fal,
body.mod-skin-dark .page-header .floating-menu .fas { color: var(--avz-ink-2) !important; }
/* Texto genérico de la cabecera legible en oscuro, preservando colores explícitos (LOCAL, badges) */
body.mod-skin-dark .page-header .floating-menu span:not(.badge):not([class*="text-"]):not([class*="bg-"]) { color: var(--avz-ink-2) !important; }
/* Email del usuario en el dropdown del menú de usuario: texto blanco y sin opacidad reducida */
body.mod-skin-dark .page-header .floating-menu .dropdown-header.bg-trans-gradient .info-card-text .opacity-80 { color: #fff !important; opacity: 1 !important; }
/* Calendario del header (el contenedor .calendar-dropdown era blanco; el
   datepicker interno ya es oscuro). Lo igualamos al tema oscuro. */
body.mod-skin-dark .calendar-dropdown {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
/* El botón de fecha del header ("29 de junio") se quedaba blanco en oscuro */
body.mod-skin-dark .calendar-wrapper .today-btn-container button,
body.mod-skin-dark .calendar-wrapper > button {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .calendar-dropdown .calendar-time,
body.mod-skin-dark .calendar-dropdown .calendar-time * { color: var(--avz-ink-2) !important; }
/* FullCalendar (dashboard de inicio) en oscuro: se recolorea vía sus
   variables (celdas, bordes, "hoy") en lugar del blanco por defecto. */
body.mod-skin-dark .fc {
    --fc-page-bg-color: var(--avz-surface);
    --fc-neutral-bg-color: var(--avz-surface-2);
    --fc-border-color: var(--avz-line);
    --fc-today-bg-color: rgba(141, 192, 67, .16);
    color: var(--avz-ink-2);
}
body.mod-skin-dark .fc .fc-col-header-cell,
body.mod-skin-dark .fc .fc-daygrid-day-number,
body.mod-skin-dark .fc .fc-list-day-text,
body.mod-skin-dark .fc .fc-daygrid-day-top,
body.mod-skin-dark .fc a { color: var(--avz-ink-2) !important; }
/* Módulos Vue con fondos claros hardcodeados (fiscal: hub-workspace,
   columnas work-section, y sus diálogos). */
body.mod-skin-dark .hub-workspace { background: var(--avz-bg) !important; }
body.mod-skin-dark .hub-header,
body.mod-skin-dark .header-filters {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
/* Título del panel (h1 con color oscuro hardcodeado, invisible en oscuro) */
body.mod-skin-dark .hub-header h1,
body.mod-skin-dark .header-title,
body.mod-skin-dark .header-title h1 { color: var(--avz-ink) !important; }
body.mod-skin-dark .filter-select {
    background: var(--avz-input-bg) !important;
    color: var(--avz-ink) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .work-section {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .empty-state { background: var(--avz-surface-2) !important; }
/* Cabecera de cada columna del kanban fiscal (.section-header): venía en blanco;
   y el contador (.section-count) era una píldora gris clara. */
body.mod-skin-dark .section-header {
    background: var(--avz-surface-2) !important;
    border-bottom-color: var(--avz-line) !important;
}
body.mod-skin-dark .section-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .section-count {
    background: var(--avz-chip-bg) !important;
    color: var(--avz-chip-ink) !important;
}
body.mod-skin-dark .modal-box,
body.mod-skin-dark .delete-confirm-dialog {
    background: var(--avz-surface) !important;
    color: var(--avz-ink) !important;
    border-color: var(--avz-line) !important;
}
/* Botón de pegar en los filtros del datatable: el borde claro (#e5e5e5)
   destacaba sobre el fondo oscuro. */
body.mod-skin-dark .btn-paste-clipboard {
    border-color: var(--avz-line-strong) !important;
    background: var(--avz-input-bg) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .btn-paste-clipboard:hover {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink) !important;
}
/* Filas de empleados de baja (.discharge) en oscuro: rojo más sobrio y un
   hover de distinta tonalidad para que se note el hover. */
body.mod-skin-dark table.dataTable tbody tr.discharge {
    background-color: rgba(190, 60, 60, .30) !important;
}
body.mod-skin-dark table.dataTable tbody tr.discharge:hover {
    background-color: rgba(216, 86, 86, .52) !important;
}
/* Selección genérica más visible en oscuro */
body.mod-skin-dark table.dataTable tbody tr.selected,
body.mod-skin-dark table.dataTable tbody tr.selected td {
    background-color: rgba(141,192,67,0.28) !important;
}
/* Fila de baja seleccionada: mantener rojo más intenso para indicar selección */
body.mod-skin-dark table.dataTable tbody tr.discharge.selected,
body.mod-skin-dark table.dataTable tbody tr.discharge.selected td {
    background-color: rgba(190,60,60,0.62) !important;
}
/* Filas pendientes de validar (.pte_validar) en oscuro. datatables.bundle.css
   les pone #ffc873 opaco con color: white, pero la tinta de la celda la fija el
   tema oscuro (ink-2), así que quedaba texto claro sobre ámbar claro con
   contraste 1.21: la fila era ilegible. Se pasa al ámbar translúcido del propio
   tema sobre la superficie oscura, igual que .discharge de arriba. */
body.mod-skin-dark table.dataTable tbody tr.pte_validar {
    background-color: rgba(185, 122, 22, .30) !important;
}
body.mod-skin-dark table.dataTable tbody tr.pte_validar:hover {
    background-color: rgba(185, 122, 22, .38) !important;
}
/* Pendiente de validar y seleccionada: ámbar más intenso, para que la selección
   no la pinte del verde genérico y se pierda el estado. */
body.mod-skin-dark table.dataTable tbody tr.pte_validar.selected,
body.mod-skin-dark table.dataTable tbody tr.pte_validar.selected td {
    background-color: rgba(185, 122, 22, .45) !important;
}

/* ---- Más arreglos de modo oscuro (avatar, logos, novedades, menús
   PrimeVue, gestión documental, cabeceras de dashboard) ---- */

/* Avatar del header: aro sutil para que no parezca un "agujero" sobre el
   header oscuro. */
body.mod-skin-dark .page-header .header-icon .profile-image {
    border: 2px solid var(--avz-line-strong) !important;
    background: var(--avz-surface-2);
}
/* Icono de estado de sincronización (fal fa-sync) sobre el avatar: la regla
   genérica de iconos del header lo pintaba gris; en oscuro lo forzamos a blanco. */
body.mod-skin-dark .page-header .floating-menu .header-icon .fa-sync { color: #fff !important; }

/* Logo de empresa del menú: los logos suelen traer el fondo blanco incrustado
   en la propia imagen (no se puede recolorear), así que en oscuro lo
   presentamos como una placa blanca redondeada (intencional) en vez de un
   bloque blanco a sangre. */
body.mod-skin-dark #logo_company img {
    background: #fff !important;
    padding: 6px 10px !important;
    border-radius: 10px !important;
}

/* Cabeceras "hero" de los dashboards de cliente: en oscuro el verde de marca
   quema demasiado → gradiente verde mucho más sobrio y oscuro. */
body.mod-skin-dark .card-body.bg-info-gradient,
body.mod-skin-dark .bg-primary-700.bg-info-gradient,
body.mod-skin-dark .bg-primary-600.bg-info-gradient {
    background-image: linear-gradient(135deg, #46632a 0%, #324a1e 100%) !important;
}

/* En oscuro brand-strong es un verde CLARO (texto), así que los gradientes
   del fichero claro (strong→deep) dejarían el texto blanco ilegible en su
   extremo claro. Mismo gradiente sobrio que los heros de arriba. */
body.mod-skin-dark .bg-trans-gradient,
body.mod-skin-dark .card-header.text-white,
body.mod-skin-dark .card-header.amortizacion-info,
body.mod-skin-dark .card-header.bg-gradient-primary,
body.mod-skin-dark .card-header.bg-gradient-info {
    background-image: linear-gradient(250deg, #46632a, #324a1e) !important;
}

/* Menús PrimeVue (p.ej. el desplegable de acciones de fila del datatable):
   por defecto traen texto casi negro sobre overlay claro → ilegibles en oscuro. */
body.mod-skin-dark .p-menu,
body.mod-skin-dark .p-tieredmenu,
body.mod-skin-dark .p-tieredmenu .p-menu-list,
body.mod-skin-dark .p-menu .p-menu-list,
body.mod-skin-dark .p-submenu-list,
body.mod-skin-dark .dropdown-menu .p-menu {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .p-menuitem-link,
body.mod-skin-dark .p-menuitem-link .p-menuitem-text,
body.mod-skin-dark .p-menuitem-link span:not(.p-menuitem-icon) { color: var(--avz-ink) !important; }
body.mod-skin-dark .p-menuitem-icon,
body.mod-skin-dark .p-submenu-icon { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .p-menuitem-link:hover,
body.mod-skin-dark .p-menuitem.p-menuitem-active > .p-menuitem-link { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .p-submenu-header { color: var(--avz-ink-3) !important; background: var(--avz-surface) !important; }

/* Novedades: la banda gris-claro (bg-gray-*) detrás de las tarjetas, la propia
   tarjeta y las reacciones quedaban en claro. */
body.mod-skin-dark .bg-gray-100,
body.mod-skin-dark .bg-gray-200,
body.mod-skin-dark .bg-gray-300 { background-color: var(--avz-bg) !important; }
body.mod-skin-dark .updateCard { background: var(--avz-surface) !important; box-shadow: var(--avz-shadow) !important; }
/* Texto del cuerpo de la novedad en blanco (trae colores oscuros incrustados). */
body.mod-skin-dark .updateCard,
body.mod-skin-dark .updateCard p,
body.mod-skin-dark .updateCard li,
body.mod-skin-dark .updateCard h1,
body.mod-skin-dark .updateCard h2,
body.mod-skin-dark .updateCard h3,
body.mod-skin-dark .updateCard h4,
body.mod-skin-dark .updateCard h5,
body.mod-skin-dark .updateCard strong,
body.mod-skin-dark .updateCard a,
body.mod-skin-dark .updateCard span:not(.badge):not([class*="bg-"]) { color: #fff !important; }
body.mod-skin-dark .updateCard .reaction {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-surface-2) !important;
}

/* Gestión documental: tarjetas de fichero y sus cabeceras que quedaban en blanco. */
body.mod-skin-dark .card-gd,
body.mod-skin-dark .related-documents-card {
    background: var(--avz-surface) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .card-gd-header {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink) !important;
    border-color: var(--avz-line) !important;
}
/* Títulos de cabecera tipo "Subir archivos" (.modal-header-title) con color
   slate hardcodeado (#2c3e50), casi ilegible en oscuro. */
body.mod-skin-dark .modal-header-title { color: var(--avz-ink) !important; }

/* Selectores "Seg. Social" y "Contrat@" (#saltraList, #saltraList-segsocial,
   #saltraList-contrata): el contenedor trae `background:white` inline y los
   items un hover inline a #f0f0f0 vía JS.
   Los pasamos a oscuro (con !important para pisar el estilo en línea). */
body.mod-skin-dark [id^="saltraList"] {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    box-shadow: var(--avz-shadow-pop) !important;
}
body.mod-skin-dark [id^="saltraList"] .action-item { color: var(--avz-ink-2) !important; }
body.mod-skin-dark [id^="saltraList"] .action-item:hover {
    background-color: var(--avz-surface-2) !important;
    color: var(--avz-ink) !important;
}
body.mod-skin-dark [id^="noResults"] { color: var(--avz-ink-3) !important; }
/* Cabecera "Gestión documental relacionada de…": traía un gradiente claro
   (#f8f9fa→#e9ecef) que no se ve por backgroundColor → fondo oscuro. */
body.mod-skin-dark .related-documents-header {
    background-image: none !important;
    background-color: var(--avz-surface-2) !important;
    color: var(--avz-ink) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .related-documents-header h3,
body.mod-skin-dark .related-documents-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .related-model-name { color: var(--avz-brand-strong) !important; }
/* Tarjeta de fichero subido (.document-card-gd): venía con fondo blanco. */
body.mod-skin-dark .document-card-gd {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .document-header-gd { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .document-name-gd,
body.mod-skin-dark .filename-text,
body.mod-skin-dark .detail-value-gd,
body.mod-skin-dark .detail-updated-gd { color: var(--avz-ink) !important; }
body.mod-skin-dark .detail-label-gd { color: var(--avz-ink-3) !important; }

/* Selectores de imagen: dropzone de Spatie media-library y marcos .img-thumbnail
   (avatar / imagen de firma) que venían en blanco. */
body.mod-skin-dark .media-library-dropzone {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line-strong) !important;
}
body.mod-skin-dark .img-thumbnail {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
/* Fila de archivo ya adjunto (nombre/tamaño + "Eliminar") del mismo widget:
   traía fondo blanco fijo, quedaba como una caja blanca suelta en el modal oscuro. */
body.mod-skin-dark .media-library-item {
    background: var(--avz-surface-2) !important;
}
body.mod-skin-dark .media-library-item-row:not(:last-child) {
    border-color: var(--avz-line-strong) !important;
}
body.mod-skin-dark .media-library-properties,
body.mod-skin-dark .media-library-property {
    color: var(--avz-ink-2) !important;
}

/* Formularios de FormConstructor: la card exterior usa .bg-secondary (gris
   medio) y el contenedor del formulario .bg-subtlelight (claro). En oscuro,
   superficies oscuras. (.bg-secondary se acota al form para no tocar badges.) */
body.mod-skin-dark .accordion-clean > .card.bg-secondary,
body.mod-skin-dark .accordion-clean .bg-secondary { background-color: var(--avz-surface) !important; }
body.mod-skin-dark .bg-subtlelight { background-color: var(--avz-surface) !important; }

/* Barras top/bottom del FormConstructor: surface-2 para distinguirlas del área de form (surface) */
body.mod-skin-dark .accordion-clean .fc-bar { background-color: #17201a !important; }

/* Botón cancelar dark */
body.mod-skin-dark .fc-btn-cancel { background: rgba(207,71,63,0.18) !important; border: 1px solid rgba(207,71,63,0.55) !important; color: rgb(234,122,114) !important; }
body.mod-skin-dark .fc-btn-cancel:hover { background: rgba(207,71,63,0.35) !important; color: #fff !important; }

/* Botón guardar dark */
body.mod-skin-dark .fc-btn-save { background: rgba(95,154,44,0.25) !important; border: 1px solid rgba(95,154,44,0.65) !important; color: var(--avz-brand) !important; }
body.mod-skin-dark .fc-btn-save:hover { background: rgba(95,154,44,0.42) !important; color: #fff !important; }

/* Caja "valores predeterminados de vencimientos" (#vencimientos) en datos de
   facturación: trae fondo claro en estilo inline → oscuro (!important pisa el inline). */
body.mod-skin-dark #vencimientos {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line-strong) !important;
}
/* En oscuro, la regla genérica de borde (var(--avz-line) !important) pisaba el
   borde de aviso de los campos required/ inválidos. Lo restauramos (como en
   modo claro) y evitamos el fondo blanco forzado por .is-invalid. */
body.mod-skin-dark .form-control.is-invalid:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
body.mod-skin-dark .form-control.error:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
body.mod-skin-dark textarea.form-control.is-invalid,
body.mod-skin-dark .custom-select.is-invalid,
body.mod-skin-dark .select2-container--default.is-invalid .select2-selection {
    border-color: var(--avz-dang-ink) !important;
    background: var(--avz-input-bg) !important;
}
/* Campos required (no inválidos): borde naranja como en modo claro. La regla
   base es `:required:not(.is-invalid) { border-color:#ff8000 }` de avanzalab,
   que mis bordes genéricos de oscuro pisaban. La restauramos con más peso. */
body.mod-skin-dark :required:not(.is-invalid):not([type="checkbox"]):not([type="radio"]):not([type="range"]),
body.mod-skin-dark .custom-select:required:not(.is-invalid),
body.mod-skin-dark textarea:required:not(.is-invalid),
body.mod-skin-dark .select2-container--default .select2-selection.sel2req:not(.is-invalid) {
    border-color: #ff8000 !important;
}

/* =====================================================================
   PrimeVue en MODO OSCURO — los componentes Vue traen CSS "scoped" (con
   [data-v-…], a veces !important) que fija fondos/colores claros (white,
   #f8f9fa, azure, #c3e4ec, #2c3e50…) y pisa las reglas generales de arriba.
   Estas reglas, prefijadas con body.mod-skin-dark + !important, recuperan el
   tema oscuro de forma transversal en diálogos, tablas, pestañas y dropdowns.
   ===================================================================== */

/* Diálogos (cabecera/cuerpo/pie) — cubre el sinfín de `.p-dialog-content{background:white}` */
body.mod-skin-dark .p-dialog .p-dialog-header,
body.mod-skin-dark .p-dialog .p-dialog-content,
body.mod-skin-dark .p-dialog .p-dialog-footer {
    background: var(--avz-surface) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .p-dialog .p-dialog-header,
body.mod-skin-dark .p-dialog .p-dialog-title { color: var(--avz-ink) !important; }
/* Neutralizar .modal-content de Bootstrap dentro de un Dialog PrimeVue */
body.mod-skin-dark .p-dialog .modal-content {
    background: transparent !important;
    border: none !important;
    color: var(--avz-ink) !important;
}

/* DataTable + TreeTable: cabeceras, celdas, filas alternas, hover y selección */
body.mod-skin-dark .p-datatable .p-datatable-thead > tr > th,
body.mod-skin-dark .p-treetable .p-treetable-thead > tr > th {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink-3) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr,
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr > td,
body.mod-skin-dark .p-treetable .p-treetable-tbody > tr,
body.mod-skin-dark .p-treetable .p-treetable-tbody > tr > td {
    background-color: var(--avz-surface) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr:nth-child(even),
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr:nth-child(even) > td {
    background-color: var(--avz-surface-2) !important;
}
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr:hover,
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr:hover > td,
body.mod-skin-dark .p-treetable .p-treetable-tbody > tr:hover,
body.mod-skin-dark .p-treetable .p-treetable-tbody > tr:hover > td {
    background-color: var(--avz-row-hover) !important;
}
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr.p-highlight,
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr.p-highlight > td,
body.mod-skin-dark .p-treetable .p-treetable-tbody > tr.p-highlight,
body.mod-skin-dark .p-treetable .p-treetable-tbody > tr.p-highlight > td {
    background-color: var(--avz-brand-soft) !important;
    color: var(--avz-ink) !important;
}

/* Pestañas (TabView): nav-link inactivas (#d2dae7/#333) y activa */
body.mod-skin-dark .p-tabview .p-tabview-nav li .p-tabview-nav-link {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link {
    background: var(--avz-surface) !important;
    color: #fff !important;
}

/* Paneles desplegables Dropdown / MultiSelect + items y selección */
body.mod-skin-dark .p-dropdown-panel,
body.mod-skin-dark .p-multiselect-panel,
body.mod-skin-dark .p-dropdown-items-wrapper,
body.mod-skin-dark .p-multiselect-items-wrapper {
    background: var(--avz-surface) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .p-dropdown-item,
body.mod-skin-dark .p-multiselect-item { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .p-dropdown-item:hover,
body.mod-skin-dark .p-multiselect-item:hover { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .p-dropdown-item.p-highlight,
body.mod-skin-dark .p-multiselect-item.p-highlight {
    background: var(--avz-brand-soft) !important;
    color: var(--avz-ink) !important;
}

/* Card PrimeVue y paginador */
body.mod-skin-dark .p-card { background: var(--avz-surface) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .p-paginator {
    background: var(--avz-surface) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}

/* Textos oscuros hardcodeados muy recurrentes (#2c3e50/#333/#212529/#1f2937)
   en títulos y etiquetas de los componentes → tinta clara en oscuro. */
body.mod-skin-dark .section-title,
body.mod-skin-dark .group-title,
body.mod-skin-dark .balance-amount,
body.mod-skin-dark .compact-value,
body.mod-skin-dark .time-value,
body.mod-skin-dark .day-number,
body.mod-skin-dark .label-left,
body.mod-skin-dark .form-label { color: var(--avz-ink) !important; }

/* Paneles/tablas de Vue con fondo claro hardcodeado (los más visibles). */
body.mod-skin-dark .totales-table,
body.mod-skin-dark .resumen-table,
body.mod-skin-dark .resumen-column,
body.mod-skin-dark .asientos-table,
body.mod-skin-dark .summary-card,
body.mod-skin-dark .agrupacion-container,
body.mod-skin-dark .agrupacion-btn,
body.mod-skin-dark .service-configuration-section,
body.mod-skin-dark .connection-summary,
body.mod-skin-dark .compact-item,
body.mod-skin-dark .movement-list,
body.mod-skin-dark .time-info-container,
body.mod-skin-dark .info-panel,
body.mod-skin-dark .upload-zone,
body.mod-skin-dark .canvas-container,
body.mod-skin-dark .field-group,
body.mod-skin-dark .form-row,
body.mod-skin-dark .table-header,
body.mod-skin-dark .minimalist-table .valor {
    background-color: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .form-field,
body.mod-skin-dark .minimalist-table th { background-color: var(--avz-surface-2) !important; color: var(--avz-ink-2) !important; }
/* Caja celeste (azure/aliceblue) del modal de tablas salariales. */
body.mod-skin-dark .p-dialog-content[style*="azure"],
body.mod-skin-dark .p-datatable-tbody > tr > td.color { background-color: var(--avz-surface-2) !important; }
/* Fila "nueva" gris claro (.bg-new-row) en tablas. */
body.mod-skin-dark .bg-new-row { background-color: var(--avz-surface-2) !important; }

/* =====================================================================
   PARTE 5 · Modo oscuro — segunda pasada de componentes Vue
   Cubre los estilos scoped descubiertos en la auditoría completa:
   asientos, plan contable, balances, banco, notas, exportación, Quill.
   ===================================================================== */

/* --- Asientos pendientes (lista lineal) --- */
body.mod-skin-dark .lineal-paginador,
body.mod-skin-dark .lineal-item,
body.mod-skin-dark .lineal-item-selected {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .lineal-item:hover {
    background: var(--avz-row-hover) !important;
}
body.mod-skin-dark .lineal-item-editing,
body.mod-skin-dark .lineal-item-editing:hover {
    background: var(--avz-surface-2) !important;
}
body.mod-skin-dark .confirmar-eliminar-inline {
    background: var(--avz-dang-bg) !important;
    border-color: var(--avz-dang-ink) !important;
    color: var(--avz-dang-ink) !important;
}

/* --- Selector de cuenta contable (plan-contable) --- */
body.mod-skin-dark .plan-contable-select,
body.mod-skin-dark .plan-contable-dropdown,
body.mod-skin-dark .plan-contable-dropdown-empty,
body.mod-skin-dark .plan-contable-create-option-sticky {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .plan-contable-option {
    background: var(--avz-surface) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .plan-contable-option:not(.plan-contable-option-selected):not(:disabled):hover,
body.mod-skin-dark .plan-contable-option-highlighted {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .plan-contable-option-selected {
    background: var(--avz-brand-soft) !important;
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .plan-contable-input {
    background: var(--avz-input-bg) !important;
    color: var(--avz-ink) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .plan-contable-select-disabled .plan-contable-input {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .plan-contable-options-container::-webkit-scrollbar-track {
    background: var(--avz-surface) !important;
}

/* --- Atajos de teclado modal --- */
body.mod-skin-dark .atajo-item {
    background-color: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .atajo-item:hover {
    background-color: var(--avz-row-hover) !important;
}

/* --- Movimiento en creación / asiento resumen / tags flotantes --- */
body.mod-skin-dark .asiento-en-creacion {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .asiento-resumen,
body.mod-skin-dark .apunte-linea,
body.mod-skin-dark .additional-tags-floating {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}

/* --- Wrappers de diálogo de asiento con bg blanco scoped (selector más específico) --- */
body.mod-skin-dark .asiento-dialog-wrapper .p-dialog,
body.mod-skin-dark .asientos-list-dialog-wrapper .p-dialog {
    background: var(--avz-surface) !important;
}
body.mod-skin-dark .asiento-dialog-wrapper .p-dialog-overlay,
body.mod-skin-dark .asientos-list-dialog-wrapper .p-dialog-overlay {
    background: rgba(0, 0, 0, 0.70) !important;
}

/* --- Balances: barra de progreso, cabeceras, filas nuevas/eliminadas --- */
body.mod-skin-dark .progress-track {
    background-color: var(--avz-surface-2) !important;
}
body.mod-skin-dark .agrupacion-btn { color: #fff !important; }
body.mod-skin-dark .agrupacion-btn:hover:not(.disabled),
body.mod-skin-dark .agrupacion-btn.active {
    background-color: var(--avz-surface-2) !important;
    color: #fff !important;
}
body.mod-skin-dark .balance-header,
body.mod-skin-dark .movimientos-header,
body.mod-skin-dark .balance-row.balance-total,
body.mod-skin-dark .stat-item {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .item-nuevo,
body.mod-skin-dark .movimiento-nuevo {
    background-color: var(--avz-brand-soft) !important;
}
body.mod-skin-dark .item-eliminado,
body.mod-skin-dark .movimiento-eliminado {
    background-color: var(--avz-dang-bg) !important;
}

/* --- Selector de año en filtros de balances / exportación --- */
body.mod-skin-dark .anio-label {
    background-color: var(--avz-surface) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .anio-option.active .anio-label {
    background-color: var(--avz-brand-soft) !important;
    color: var(--avz-brand-strong) !important;
    border-color: var(--avz-brand) !important;
}
body.mod-skin-dark .anio-icon {
    background-color: var(--avz-surface-2) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .date-select {
    background-color: var(--avz-input-bg) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}

/* Filas de apunte dentro de los asientos (Diario / Asientos) */
body.mod-skin-dark .movement-item-compact {
    background: rgba(255, 255, 255, 0.06) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .movement-item-compact:hover {
    background: rgba(255, 255, 255, 0.10) !important;
    border-color: var(--avz-brand) !important;
}

/* --- Módulo banco: formulario compacto, progreso, transacciones seleccionadas --- */
body.mod-skin-dark .compact-form {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .progress-container {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .selected-transactions-bar {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .selected-transaction-chip {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .selected-transaction-chip:hover {
    background: var(--avz-row-hover) !important;
}

/* --- PrimeVue Accordion (notas, notificaciones): panel amarillo/gris hardcodeado --- */
body.mod-skin-dark .p-accordion .p-accordion-header .p-accordion-header-link {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .p-accordion .p-accordion-header:not(.p-disabled).p-highlight .p-accordion-header-link,
body.mod-skin-dark .p-accordion .p-accordion-header:not(.p-disabled).p-highlight:hover .p-accordion-header-link {
    background: var(--avz-surface) !important;
    color: var(--avz-brand-strong) !important;
    border-color: var(--avz-brand) !important;
}
body.mod-skin-dark .p-accordion .p-accordion-content {
    background: var(--avz-surface) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}

/* --- Diálogos de exportación/envío (contabilidad y balances) --- */
body.mod-skin-dark .switch-option-container {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .switch-option-container:hover {
    background: var(--avz-row-hover) !important;
}
body.mod-skin-dark .switch-label-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .switch-label-description { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .formato-label {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .formato-option.active .formato-label {
    background: var(--avz-brand-soft) !important;
    border-color: var(--avz-brand) !important;
    color: var(--avz-ink) !important;
}
/* Campo de correos y chips de CC/CCO */
body.mod-skin-dark .email-input-wrapper,
body.mod-skin-dark .email-tags-container {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .email-tags-container:focus-within {
    border-color: var(--avz-brand) !important;
}
body.mod-skin-dark .advanced-email-section {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .email-tag-cc {
    background: var(--avz-info-bg) !important;
    color: var(--avz-info-ink) !important;
}
body.mod-skin-dark .email-tag-cco {
    background: var(--avz-chip-bg) !important;
    color: var(--avz-chip-ink) !important;
}
body.mod-skin-dark .dialog-select {
    background-color: var(--avz-input-bg) !important;
    color: var(--avz-ink) !important;
    border-color: var(--avz-line) !important;
}

/* --- Upload de ficheros (contabilidad movimientos) --- */
body.mod-skin-dark .upload-files-container,
body.mod-skin-dark .uploaded-files-info,
body.mod-skin-dark .file-preview,
body.mod-skin-dark .upload-placeholder {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .uploaded-file-item {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .uploaded-file-item:hover {
    background: var(--avz-row-hover) !important;
}
body.mod-skin-dark .file-name { color: var(--avz-ink) !important; }

/* --- Uploader pad de gestión documental (UploadFilesPad) --- */
body.mod-skin-dark .file-uploader-container {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .uploader-header,
body.mod-skin-dark .uploader-footer {
    border-color: var(--avz-line) !important;
    color: var(--avz-ink) !important;
}

/* --- Editor Quill (notas, comentarios, editor enriquecido) --- */
body.mod-skin-dark .ql-toolbar.ql-snow,
body.mod-skin-dark .ql-container.ql-snow {
    border-color: var(--avz-line) !important;
    background: var(--avz-surface) !important;
}
body.mod-skin-dark .ql-editor {
    background: var(--avz-surface) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .ql-snow .ql-picker-options,
body.mod-skin-dark .ql-snow .ql-tooltip {
    background-color: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
    box-shadow: var(--avz-shadow-pop) !important;
}
body.mod-skin-dark .ql-snow .ql-tooltip input[type=text] {
    border-color: var(--avz-line) !important;
    background: var(--avz-input-bg) !important;
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .ql-snow .ql-stroke { stroke: var(--avz-ink-2) !important; }
body.mod-skin-dark .ql-snow .ql-fill,
body.mod-skin-dark .ql-snow .ql-stroke.ql-fill { fill: var(--avz-ink-2) !important; }
body.mod-skin-dark .ql-snow .ql-picker { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .ql-snow .ql-picker.ql-expanded .ql-picker-label {
    color: var(--avz-brand) !important;
    border-color: var(--avz-line) !important;
}

/* --- Calendario de días festivos (MultipleCalendar) --- */
body.mod-skin-dark .calendar-day {
    background: var(--avz-surface) !important;
}
body.mod-skin-dark .calendar-day.different-month {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .month-display,
body.mod-skin-dark .holidays-section h4 { color: var(--avz-ink) !important; }

/* --- Campos de solo lectura (DuplicarVariation, etc.) --- */
body.mod-skin-dark .field-readonly {
    background-color: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .field-label { color: var(--avz-ink-3) !important; }

/* --- Paneles de formulario (requestData) --- */
body.mod-skin-dark .form-panel,
body.mod-skin-dark .form-container-saltra {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}

/* --- Bootstrap bg-light / bg-gray-50 usados como superficie de contenido --- */
body.mod-skin-dark .bg-gray-50 { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .bg-light:not(.badge):not(.btn) { background-color: var(--avz-surface-2) !important; }

/* --- CrearFacturasEmitidasRecibidas: total, grupos de serie, botones de acción --- */
body.mod-skin-dark .total-card {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .total-label { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .total-amount { color: var(--avz-ink) !important; }
body.mod-skin-dark .serie-header {
    background-color: var(--avz-surface-2) !important;
    border-left-color: var(--avz-brand) !important;
}
body.mod-skin-dark .grupo-serie {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .grupo-serie-header {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .grupo-serie-tag {
    color: var(--avz-info-ink) !important;
    background: var(--avz-info-bg) !important;
}
body.mod-skin-dark .grupo-serie-count { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .btn-accion {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .btn-accion:hover:not(:disabled) {
    background: var(--avz-surface-2) !important;
    color: var(--avz-brand-strong) !important;
    border-color: var(--avz-brand) !important;
}
body.mod-skin-dark .lineal-pendientes-scroll {
    background: var(--avz-surface-2) !important;
}
body.mod-skin-dark .atajo-kbd {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .atajo-item-desc { color: var(--avz-ink-2) !important; }

/* Search button (Diario y Mayor) */
body.mod-skin-dark .search-btn {
    background: var(--avz-input-bg) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .search-btn:hover {
    border-color: var(--avz-brand) !important;
    color: var(--avz-brand-strong) !important;
}

/* Bank connection dialogs */
body.mod-skin-dark .bank-connection-modal .p-dialog-content {
    background-color: var(--avz-surface) !important;
}
body.mod-skin-dark .connection-summary {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .connection-summary .section-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .compact-item {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .email-section {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .email-section h4 {
    color: var(--avz-ink-2) !important;
    border-bottom-color: var(--avz-line) !important;
}

/* Bill module modals */
body.mod-skin-dark .demo-container {
    background: var(--avz-surface) !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.3) !important;
}
body.mod-skin-dark .form-container {
    background-color: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .custom-progressbar {
    background-color: var(--avz-surface-2) !important;
}
body.mod-skin-dark .progress-stat p:first-child { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .progress-stat p:last-child { color: var(--avz-ink) !important; }

/* Select2 dropdown */
body.mod-skin-dark .select2-container,
body.mod-skin-dark .select2-container--default .select2-selection--single,
body.mod-skin-dark .select2-dropdown {
    background-color: var(--avz-input-bg) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .select2-results__option {
    background-color: var(--avz-surface) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .select2-results__option--highlighted {
    background-color: var(--avz-surface-2) !important;
    color: var(--avz-ink) !important;
}

/* RequestData / TableRequestData */
body.mod-skin-dark .minimalist-container {
    background: var(--avz-surface) !important;
    box-shadow: 0 4px 6px rgba(0,0,0,.3) !important;
}
body.mod-skin-dark .minimalist-table { background: var(--avz-surface) !important; }
body.mod-skin-dark .minimalist-table th {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
    border-bottom-color: var(--avz-line) !important;
}
body.mod-skin-dark .minimalist-table td {
    background: var(--avz-surface) !important;
    border-bottom-color: var(--avz-line) !important;
}
body.mod-skin-dark .minimalist-table tr:hover td { background: var(--avz-row-hover) !important; }

/* Formulario "Insertar importes" (labModule/employees) */
body.mod-skin-dark .form-container label { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .form-container .checkbox-label { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .form-container input[type="month"],
body.mod-skin-dark .form-container input[type="number"] {
    background-color: var(--avz-input-bg) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}

/* TabView panels (CategoriesConcepts / genérico) */
body.mod-skin-dark .p-tabview .p-tabview-panels {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}

/* btn-Light (L mayúscula, clase SmartAdmin) — icono/texto visible en dark mode */
body.mod-skin-dark .btn-Light,
body.mod-skin-dark .btn-Light:hover,
body.mod-skin-dark .btn-Light:focus {
    color: #fff !important;
    border-color: var(--avz-line) !important;
}

/* .card dentro de modales/tabviews — unificar con la superficie oscura */
body.mod-skin-dark .p-dialog .card,
body.mod-skin-dark .p-tabview .card {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}

/* TreeTable (Personal tab) — texto blanco por defecto; el rojo de baja viene de inline style y gana sin !important */
body.mod-skin-dark .p-treetable .p-treetable-tbody td {
    color: var(--avz-ink-2);
}

/* Gestión documental — tarjetas de documentos relacionados */
body.mod-skin-dark .related-accordion-header {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .related-accordion-button {
    background-color: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .related-accordion-button::after {
    filter: invert(1) brightness(2);
}
body.mod-skin-dark .related-accordion-body {
    background-color: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .related-document-item {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .related-document-name {
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .file-size,
body.mod-skin-dark .file-date {
    color: var(--avz-ink-3) !important;
}

/* FiscalModule — kanban de modelos */
body.mod-skin-dark .modelo-card {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .modelo-card .cliente-nombre {
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .modelo-card .meta-row,
body.mod-skin-dark .modelo-card .meta-row span,
body.mod-skin-dark .modelo-card .meta-row i {
    color: var(--avz-ink-3) !important;
}

/* FiscalModule — panel de edición de modelos (modal-window) */
body.mod-skin-dark .modal-window {
    background-color: var(--avz-surface) !important;
}
body.mod-skin-dark .modal-window .modal-header {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}

/* FiscalModule — tarjetas de estado (PERCEPTORES / PERCEPCIONES / RETENCIONES) */
body.mod-skin-dark .form-status-frame {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .form-status-frame .form-status-label {
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .form-status-frame label:not(.badge) {
    color: var(--avz-ink-2) !important;
    background-color: transparent !important;
}

/* FiscalModule — subview Perceptores (p111p-*, p115p-*, ...) */
body.mod-skin-dark .modal-window [class*="p-header"] {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .modal-window [class*="p-back-btn"] {
    background-color: transparent !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .modal-window [class*="p-btn"][class*="-outline"] {
    background-color: transparent !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .modal-window [class*="p-divider"] {
    background-color: var(--avz-line) !important;
}
body.mod-skin-dark .modal-window [class*="p-stat"] {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .modal-window [class*="p-stat-label"] {
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .modal-window [class*="p-stat-value"] {
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .modal-window [class*="p-stat--blue"] [class*="p-stat-icon"] {
    background-color: rgba(37, 99, 235, 0.15) !important;
}
body.mod-skin-dark .modal-window [class*="p-stat--red"] [class*="p-stat-icon"] {
    background-color: rgba(220, 38, 38, 0.15) !important;
}
body.mod-skin-dark .modal-window [class*="p-stat--teal"] [class*="p-stat-icon"] {
    background-color: rgba(20, 184, 166, 0.15) !important;
}
body.mod-skin-dark .modal-window [class*="p-stat--green"] [class*="p-stat-icon"] {
    background-color: rgba(34, 197, 94, 0.15) !important;
}
body.mod-skin-dark .modal-window [class*="p-empty"] {
    background-color: var(--avz-surface) !important;
}
body.mod-skin-dark .modal-window [class*="p-card"] {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .modal-window [class*="p-new-label"] {
    background-color: rgba(37, 99, 235, 0.15) !important;
    color: rgb(147, 197, 253) !important;
    border-color: rgba(37, 99, 235, 0.3) !important;
}

/* FiscalModule — formulario principal de modelos (form111, form115, form130…) */
body.mod-skin-dark .modal-window [class*="form"][class*="-section"] {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .modal-window [class*="form"][class*="-section-title"],
body.mod-skin-dark .modal-window [class*="form"][class*="-label"] {
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .modal-window [class*="form"][class*="-muted"],
body.mod-skin-dark .modal-window [class*="form"][class*="-table"] th {
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .modal-window [class*="form"][class*="-code"] {
    background-color: var(--avz-surface) !important;
    color: var(--avz-ink-3) !important;
    border-color: var(--avz-line) !important;
}

/* FiscalModule — tintas de los formularios de modelos.
   Los 13 formularios fijan colores del tema claro (#1f2d3d, #475569, #6c757d,
   #7a8796…) en etiquetas, títulos y textos de apoyo: son ~180 selectores y en
   oscuro quedan sobre fondo oscuro con contraste 1.08, es decir invisibles.
   Se reasignan por patrón de clase en vez de uno a uno para que un formulario
   nuevo herede el arreglo. Van antes de los bloques por modelo de más abajo,
   que son los que llevan los colores semánticos (verdes, rojos, pills) y
   deben seguir ganando. */
body.mod-skin-dark .modal-window .modal-body,
body.mod-skin-dark .modal-box .modal-body {
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .modal-window [class*="-label"],
body.mod-skin-dark .modal-window [class*="-title"],
body.mod-skin-dark .modal-window [class*="-head-text"],
body.mod-skin-dark .modal-window [class*="-overview"],
body.mod-skin-dark .modal-window [class*="-cuentas"],
body.mod-skin-dark .modal-window [class*="-doc-line"],
body.mod-skin-dark .modal-window [class*="-details-body"],
body.mod-skin-dark .modal-window [class*="-resumen-desc"],
body.mod-skin-dark .modal-window .autocarga-chip,
body.mod-skin-dark .modal-window .autocarga-pill,
body.mod-skin-dark .modal-window label,
body.mod-skin-dark .modal-window legend {
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .modal-window [class*="-title"] span,
body.mod-skin-dark .modal-window [class*="-title"] strong,
body.mod-skin-dark .modal-window [class*="-head"] strong,
body.mod-skin-dark .modal-window [class*="-item"] strong,
body.mod-skin-dark .modal-window [class*="-copy"] strong,
body.mod-skin-dark .modal-window [class*="-value"],
body.mod-skin-dark .modal-window [class*="-importe"],
body.mod-skin-dark .modal-window [class*="-amount"],
body.mod-skin-dark .modal-window [class*="-territory"],
body.mod-skin-dark .modal-window [class*="-trace-casilla"],
body.mod-skin-dark .modal-window .status-option input:checked + label {
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .modal-window [class*="-muted"],
body.mod-skin-dark .modal-window [class*="-note"],
body.mod-skin-dark .modal-window [class*="-hint"],
body.mod-skin-dark .modal-window [class*="-help"],
body.mod-skin-dark .modal-window [class*="-subtitle"],
body.mod-skin-dark .modal-window [class*="-loader-sub"],
body.mod-skin-dark .modal-window [class*="-evidencia"],
body.mod-skin-dark .modal-window [class*="-activity-head"],
body.mod-skin-dark .modal-window [class*="-count"],
body.mod-skin-dark .modal-window [class*="-disabled"] input,
body.mod-skin-dark .modal-window .diff-sub,
body.mod-skin-dark .modal-window th,
body.mod-skin-dark .modal-window small {
    color: var(--avz-ink-3) !important;
}

/* FiscalModule — Modelo 303 (IVA) */
body.mod-skin-dark .form303-sticky-head {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .rs-wrap,
body.mod-skin-dark .devengado-wrap,
body.mod-skin-dark .deducible-wrap {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .rs-casilla,
body.mod-skin-dark .devengado-casilla,
body.mod-skin-dark .deducible-casilla {
    background-color: var(--avz-surface) !important;
    color: var(--avz-ink-3) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .prorrata-row {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .prorrata-index {
    background-color: var(--avz-surface) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .deducciones-group-title {
    background-color: rgba(43, 95, 149, 0.2) !important;
    color: var(--avz-ink-2) !important;
    border-color: rgba(43, 95, 149, 0.4) !important;
}
body.mod-skin-dark .tipo-toggle-group label,
body.mod-skin-dark .status-option label {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .tipo-toggle-group label:hover,
body.mod-skin-dark .status-option label:hover {
    background-color: var(--avz-surface) !important;
}

/* FiscalModule — Modelo 390 (resumen anual IVA) */
body.mod-skin-dark .form390-group-card {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .form390-row--empty {
    background-color: var(--avz-surface-2) !important;
}
body.mod-skin-dark .form390-row--filled {
    background-color: rgba(34, 197, 94, 0.08) !important;
}
body.mod-skin-dark .form390-row--summary {
    background-color: rgba(245, 158, 11, 0.1) !important;
}
body.mod-skin-dark .form390-row--result {
    background-color: rgba(37, 99, 235, 0.1) !important;
}
body.mod-skin-dark .form390-state--filled {
    background-color: rgba(34, 197, 94, 0.15) !important;
    color: rgb(134, 239, 172) !important;
    border-color: rgba(34, 197, 94, 0.3) !important;
}
body.mod-skin-dark .form390-state--empty {
    background-color: var(--avz-surface) !important;
    color: var(--avz-ink-3) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .form390-review-pill--summary {
    background-color: rgba(245, 158, 11, 0.15) !important;
    color: rgb(252, 211, 77) !important;
    border-color: rgba(245, 158, 11, 0.3) !important;
}
body.mod-skin-dark .form390-review-pill--result {
    background-color: rgba(37, 99, 235, 0.15) !important;
    color: rgb(147, 197, 253) !important;
    border-color: rgba(37, 99, 235, 0.3) !important;
}
body.mod-skin-dark .form390-review-pill--filled {
    background-color: rgba(34, 197, 94, 0.15) !important;
    color: rgb(134, 239, 172) !important;
    border-color: rgba(34, 197, 94, 0.3) !important;
}

/* FiscalModule — tarjetas de registro (Modelo 190 perceptor-card, Modelo 347 row-card…) */
body.mod-skin-dark .perceptor-card,
body.mod-skin-dark .row-card,
body.mod-skin-dark .gasto-card {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .perceptor-subtitle,
body.mod-skin-dark .row-subtitle {
    color: var(--avz-ink-3) !important;
}

/* Referencia warning overlay (CrearFacturas) */
body.mod-skin-dark .referencia-warning-detail {
    color: var(--avz-ink-2) !important;
    border-left-color: var(--avz-warn-ink) !important;
}
body.mod-skin-dark .referencia-warning-title { color: var(--avz-warn-ink) !important; }
body.mod-skin-dark .referencia-warning-title .fal { color: var(--avz-warn-ink) !important; }
body.mod-skin-dark .referencia-warning-sep { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .referencia-warning-desc { color: var(--avz-ink-3) !important; }

/* FiscalModule — chips de filtro por tipo de modelo */
body.mod-skin-dark .tipo-chip {
    background: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .tipo-chip:hover {
    background: var(--avz-surface) !important;
}

/* FiscalModule — skeleton loader de tarjetas durante la carga */
body.mod-skin-dark .skeleton-card,
body.mod-skin-dark .skeleton-title {
    background: linear-gradient(90deg, var(--avz-surface-2) 25%, var(--avz-surface) 50%, var(--avz-surface-2) 75%) !important;
    background-size: 200% 100% !important;
}

/* FiscalModule — modal "Tiempo de carga" (load-time-modal.blade.php) */
body.mod-skin-dark .loadtime-dialog {
    background: var(--avz-surface-2) !important;
    border: 1px solid var(--avz-line) !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.55) !important;
}
body.mod-skin-dark .loadtime-title {
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .loadtime-value {
    color: rgb(147, 197, 253) !important;
}

/* FiscalModule — overlay "Cargando datos del modelo" (form111-loader, form115-loader, …)
   La fuente (blade inline) usa gradientes blancos y colores slate hardcodeados. */
body.mod-skin-dark .modal-window [class*="-loader"]:not([class*="-loader-"]) {
    background:
        linear-gradient(180deg, rgba(24, 33, 27, 0.88), rgba(15, 22, 17, 0.93)),
        radial-gradient(circle at top, rgba(43, 54, 46, 0.20), transparent 52%) !important;
}
body.mod-skin-dark .modal-window [class*="-loader-card"] {
    background: linear-gradient(180deg, rgba(30, 41, 34, 0.98), rgba(24, 33, 27, 0.96)) !important;
    border-color: var(--avz-line) !important;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45) !important;
}
body.mod-skin-dark .modal-window [class*="-loader-title"] {
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .modal-window [class*="-loader-sub"] {
    color: var(--avz-ink-3) !important;
}

/* =====================================================================
   ContabilidadModule — modo oscuro
   ===================================================================== */

/* Balances — BalanceSituacion, CuentaPerdidasGanancias */
body.mod-skin-dark .balance-title-text { color: var(--avz-ink) !important; }

/* BalanceInfoModal */
body.mod-skin-dark .info-header h5 { color: var(--avz-ink) !important; }
body.mod-skin-dark .stat-item {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .stat-value { color: var(--avz-ink) !important; }
body.mod-skin-dark .stat-label { color: var(--avz-ink-3) !important; }

/* EnviarCorreoDialog (balances) — select de tipo + chips ya cubiertos por reglas de movimientos */
body.mod-skin-dark .dialog-select {
    background-color: var(--avz-input-bg) !important;
    color: var(--avz-ink) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .dialog-select option {
    background: var(--avz-surface) !important;
    color: var(--avz-ink) !important;
}

/* ExportCsvDialog (balances) — selector de años adicionales */
body.mod-skin-dark .anios-adicionales-container {
    background: linear-gradient(135deg, var(--avz-surface-2) 0%, var(--avz-surface) 100%) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .anio-icon {
    background-color: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .anio-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .anio-option:hover { background: var(--avz-surface) !important; }

/* CreateAsiento + ViewAsiento — wrappers con fondo blanco en CSS */
body.mod-skin-dark .create-asiento-wrapper { background: var(--avz-surface) !important; }
body.mod-skin-dark .movement-card { background: var(--avz-surface-2) !important; }

/* UploadFiles — panel de archivos adjuntos */
body.mod-skin-dark .uploaded-files-info {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .uploaded-file-item {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .file-preview {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .file-name { color: var(--avz-ink) !important; }
body.mod-skin-dark .upload-placeholder {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line-strong) !important;
}
body.mod-skin-dark .upload-placeholder:hover {
    background: var(--avz-surface) !important;
    border-color: rgba(13, 110, 253, 0.5) !important;
}
body.mod-skin-dark .upload-loading {
    background: rgba(24, 33, 27, 0.88) !important;
}

/* LibrosIva — filas con color semántico (azul/verde/lila) */
body.mod-skin-dark .bg-light-blue {
    background-color: rgba(0, 123, 255, 0.12) !important;
}
body.mod-skin-dark .bg-light-green {
    background-color: rgba(40, 167, 69, 0.12) !important;
}
body.mod-skin-dark .bg-light-purple {
    background-color: rgba(111, 66, 193, 0.12) !important;
}

/* EnviarCorreoDialog (movimientos) — campo de emails tipo chips */
body.mod-skin-dark .email-input-wrapper {
    background: var(--avz-input-bg) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .email-tags-container {
    background-color: var(--avz-input-bg) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .chips-help-container {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .badge-separator {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .email-input { color: var(--avz-ink) !important; }

/* CrearFacturasEmitidasRecibidas — panel de facturas pendientes */
body.mod-skin-dark .serie-header {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .grupo-serie {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .grupo-serie-header {
    background: linear-gradient(135deg, var(--avz-surface) 0%, var(--avz-surface-2) 100%) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .btn-accion {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .btn-accion:hover {
    background: var(--avz-surface) !important;
    color: var(--avz-ink) !important;
}

/* Export dialogs (ExportPdfDialog, ExportExcelDialog, ExportCsvDialog) —
   comparten .switch-option-container y .switch-label-title */
body.mod-skin-dark .switch-option-container {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .switch-option-container:hover {
    background: var(--avz-surface) !important;
}
body.mod-skin-dark .switch-label-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .switch-label-description { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .export-options-container {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
/* Slider del toggle — apagado: gris oscuro; encendido ya usa verde (#34c759) OK */
body.mod-skin-dark .slider { background-color: var(--avz-line-strong) !important; }

/* KeyboardShortcutsModal — atajos de teclado */
body.mod-skin-dark .atajo-item {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .atajo-item:hover {
    background-color: var(--avz-surface) !important;
}
body.mod-skin-dark .atajo-item kbd {
    background-color: var(--avz-surface) !important;
    border-color: var(--avz-line-strong) !important;
    color: var(--avz-ink-2) !important;
    box-shadow: 0 2px 0 var(--avz-line-strong) !important;
}

/* KeyboardVisualTooltip — teclas del teclado visual */
body.mod-skin-dark .keyboard-tooltip .key {
    background: linear-gradient(180deg, #3a4740 0%, #2b3630 100%) !important;
    border-color: var(--avz-line-strong) !important;
    box-shadow: 0 2px 0 var(--avz-line-strong) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .keyboard-tooltip .key-label { color: var(--avz-ink-2) !important; }

/* MovimientosList.vue — editor de asientos */
body.mod-skin-dark .asiento-titulo { color: var(--avz-ink) !important; }
body.mod-skin-dark .asiento-teclado-hint { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .asiento-resumen {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .asiento-resumen-label { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .apunte-linea {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .apunte-linea:hover {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line-strong) !important;
}
body.mod-skin-dark .apunte-cuenta-titulo { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .apunte-concepto-desc { color: var(--avz-ink-3) !important; }

/* AsientosPendientesList.vue — panel lateral de asientos pendientes */
body.mod-skin-dark .card-lineal-pendientes .p-card-header {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .card-lineal-pendientes .p-card-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .lineal-pendientes-scroll { background: var(--avz-surface) !important; }
body.mod-skin-dark .lineal-paginador {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .lineal-paginador-texto { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .lineal-paginador-texto strong { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .lineal-paginador-buttons .p-button:not(.p-disabled) {
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line-strong) !important;
}
body.mod-skin-dark .lineal-paginador-buttons .p-button:not(.p-disabled):hover {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line-strong) !important;
}
body.mod-skin-dark .lineal-item {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .lineal-item:hover {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line-strong) !important;
}
body.mod-skin-dark .lineal-item-editing {
    background: linear-gradient(90deg, rgba(13, 110, 253, 0.15) 0%, var(--avz-surface-2) 30%) !important;
    border-color: rgba(13, 110, 253, 0.5) !important;
}
body.mod-skin-dark .lineal-item-editing:hover {
    background: linear-gradient(90deg, rgba(13, 110, 253, 0.20) 0%, var(--avz-surface) 30%) !important;
}
body.mod-skin-dark .lineal-item .lineal-item-descripcion { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .lineal-item .lineal-item-footer { border-color: var(--avz-line) !important; }
body.mod-skin-dark .confirmar-eliminar-inline {
    background: rgba(220, 53, 69, 0.10) !important;
    border-color: rgba(220, 53, 69, 0.25) !important;
}
body.mod-skin-dark .confirmar-eliminar-inline-mensaje { color: var(--avz-ink) !important; }

/* FiscalModule — textos oscuros hardcodeados en raíces, títulos y subtítulos de perceptores
   (p111p-root/p-title traen color:#0f1726 ~negro; p111p-subtitle trae slate-500 ~#64748b) */
body.mod-skin-dark .modal-window [class*="p-root"] {
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark .modal-window [class*="p-title"] {
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .modal-window [class*="p-subtitle"] {
    color: var(--avz-ink-3) !important;
}

/* ─── BillingModule: overlay de carga, enlace cliente, cabeceras de grupo ─── */
body.mod-skin-dark .loading-content {
    background: var(--avz-surface-2) !important;
    box-shadow: none !important;
}
body.mod-skin-dark .client-link {
    background-color: var(--avz-surface-2) !important;
}
body.mod-skin-dark .charge-group-header {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .charge-group-warning-header {
    background-color: rgba(255, 193, 7, 0.12) !important;
    border-color: rgba(255, 193, 7, 0.35) !important;
}

/* ─── Shared SearchInput ───────────────────────────────────────────────────── */
body.mod-skin-dark .search__input {
    background-color: var(--avz-input-bg) !important;
    color: var(--avz-ink) !important;
}

/* ─── TreeTable: color texto en hover (EmployeesTreeTable usa color:black) ── */
body.mod-skin-dark .p-treetable .p-treetable-tbody > tr:hover,
body.mod-skin-dark .p-treetable .p-treetable-tbody > tr:hover > td {
    color: var(--avz-ink) !important;
}

/* ─── BillModule: cabecera tabla presupuestos (BudgetSusEventsModal) ─────── */
body.mod-skin-dark .changes-table th {
    background-color: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}

/* ─── Banco: grilla compact (LastConnectionDetails) ─────────────────────── */
body.mod-skin-dark .compact-grid {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}

/* ─── Firma3G: botón limpiar en pad de firma + info box cambio teléfono ──── */
body.mod-skin-dark .signature-pad + .buttons .p-button-secondary {
    background-color: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .phone-change-info {
    background-color: var(--avz-surface-2) !important;
    border-left-color: #f39c12 !important;
}

/* ─── Notas: acordeón respuestas (override jQuery que fuerza blanco/gris) ── */
body.mod-skin-dark .noteAnswerScrollDiv .p-accordion-content {
    background-color: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
}
body.mod-skin-dark #notesBeNotifiedModal .p-accordion-content {
    background-color: var(--avz-surface-2) !important;
    color: var(--avz-ink-2) !important;
}

/* ─── ResponseNotesModal: botón cancelar con whitesmoke inline ───────────── */
body.mod-skin-dark .controlBtn[style] {
    background-color: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}

/* ─── FiscalModule: banners de filtro activo (form303-filter-banner, etc.) ─── */
body.mod-skin-dark .modal-window [class*="-filter-banner"] {
    background: rgba(245, 158, 11, 0.12) !important;
    border-color: rgba(245, 158, 11, 0.30) !important;
    color: var(--avz-ink-2) !important;
}

/* ─── FiscalModule: estados de modelo seleccionados (status-option checked) ─── */
body.mod-skin-dark .status-option--pendiente input:checked + label {
    background: rgba(251, 191, 36, 0.15) !important;
    color: #fbbf24 !important;
    border-color: rgba(251, 191, 36, 0.35) !important;
}
body.mod-skin-dark .status-option--elaborado input:checked + label {
    background: rgba(56, 189, 248, 0.12) !important;
    color: #38bdf8 !important;
    border-color: rgba(56, 189, 248, 0.30) !important;
}
body.mod-skin-dark .status-option--confirmar input:checked + label {
    background: rgba(252, 165, 165, 0.15) !important;
    color: #fca5a5 !important;
    border-color: rgba(252, 165, 165, 0.30) !important;
}
body.mod-skin-dark .status-option--presentado input:checked + label {
    background: rgba(134, 239, 172, 0.12) !important;
    color: #86efac !important;
    border-color: rgba(134, 239, 172, 0.25) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Vue SFC dark-mode overrides — generado automáticamente del audit de .vue
   ═══════════════════════════════════════════════════════════════════════════ */


/* ── altaExpressJCCM/components/EditEmployee.vue ── */
body.mod-skin-dark #formConcept { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .select2-container { background-color: var(--avz-input-bg) !important; }
body.mod-skin-dark .select2-container--default .select2-selection--single { background-color: var(--avz-input-bg) !important; border: 1px solid var(--avz-line) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .select2-dropdown { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .spinner-container { background: rgba(30, 41, 34, 0.85) !important; }

/* ── billModule/budgets/BudgetSusModal.vue ── */
body.mod-skin-dark .p-datatable.p-datatable-sm .p-datatable-tbody > tr > td.color { background: var(--avz-surface) !important; }

/* ── billModule/budgetsSusEvents/BudgetSusEventsModal.vue ── */
body.mod-skin-dark .timeline-date { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .changes-table th,
body.mod-skin-dark .changes-table td { border-color: var(--avz-line) !important; }
body.mod-skin-dark .changes-table th { background: var(--avz-surface-2) !important; }

/* ── billModule/charges/ChargeProductsModal.vue ── */
body.mod-skin-dark .demo-container { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .product-table th { background-color: var(--avz-surface) !important; color: var(--avz-ink) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .product-table td { border-bottom-color: var(--avz-line) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .product-table tr:hover { background-color: var(--avz-surface) !important; }

/* ── billModule/createBudgets/components/createPossibleClient.vue ── */
body.mod-skin-dark .form-container { background-color: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .input-field { border-color: var(--avz-line) !important; background-color: var(--avz-input-bg) !important; color: var(--avz-ink) !important; }

/* ── billModule/createBudgets/CreateNewBudgetModal.vue ── */
body.mod-skin-dark .field label { color: var(--avz-ink-3) !important; }

/* ── billModule/createBudgetsSus/CreateBudgetSusModal.vue ── */
body.mod-skin-dark .field label { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .p-inputnumber-input { border-color: var(--avz-line) !important; }
body.mod-skin-dark .p-inputnumber-input[readonly] { background-color: var(--avz-surface) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-3) !important; }

/* ── billModule/invoices/InvoiceMassiveModal.vue ── */
body.mod-skin-dark .p-dialog .p-dialog-header h3 { color: var(--avz-ink) !important; }
body.mod-skin-dark .p-dialog.progress-modal { border: 1px solid var(--avz-line) !important; }
body.mod-skin-dark .progress-stat p:first-child { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .progress-stat p:last-child { color: var(--avz-ink) !important; }
body.mod-skin-dark .custom-progressbar { background-color: var(--avz-line) !important; }
body.mod-skin-dark .current-invoice { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .current-invoice span { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .progress-labels { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .p-dialog .p-dialog-header-icons button:hover { background-color: var(--avz-line) !important; }
body.mod-skin-dark .time-info-container { background-color: var(--avz-surface) !important; border: 1px solid var(--avz-line) !important; }
body.mod-skin-dark .time-icon { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .time-label { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .time-value { color: var(--avz-ink) !important; }
body.mod-skin-dark .time-info-item:hover .time-icon { color: var(--avz-ink) !important; }
body.mod-skin-dark .time-info-item:hover .time-value { color: var(--avz-ink) !important; }
body.mod-skin-dark .loading-overlay { background: rgba(30, 41, 34, 0.85) !important; }
body.mod-skin-dark .field label { color: var(--avz-ink-2) !important; }

/* ── billModule/productsPlanContableModal/ProductsPlanContableModal.vue ── */
body.mod-skin-dark .p-datatable .p-datatable-thead > tr > th { background-color: var(--avz-surface-2) !important; }

/* ── billModule/remittances/RemittancesAutomatic.vue ── */
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr.p-highlight { background-color: var(--avz-line) !important; color: var(--avz-ink) !important; }

/* ── clients/bankConnection/BankConnectionView.vue ── */
body.mod-skin-dark .section-header { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .section-header .section-title { color: var(--avz-ink) !important; }

/* ── clients/bankConnection/components/CreateURLConnection.vue ── */
body.mod-skin-dark .email-section { background-color: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .email-section h4 { color: var(--avz-ink-2) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .ds-info-value { color: var(--avz-ink) !important; }

/* ── clients/bankConnection/components/DownloadBankData.vue ── */
body.mod-skin-dark .compact-form { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }

/* ── clients/bankConnection/components/LastConnectionDetails.vue ── */
body.mod-skin-dark .connection-summary { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .connection-summary .section-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .compact-item { background: var(--avz-surface) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .compact-label { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .compact-value { color: var(--avz-ink) !important; }

/* ── clients/bankConnection/components/SearchAsientos.vue ── */
body.mod-skin-dark .progress-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .progress-message { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .progress-message .progress-percentage { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .diario-form-container .card { border-color: var(--avz-line) !important; }
body.mod-skin-dark .diario-form-container .form-label { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .custom-switch-slider { background-color: #dc3545 !important; }
body.mod-skin-dark .custom-switch-input:checked + .custom-switch-slider { background-color: var(--avz-brand) !important; }
body.mod-skin-dark .custom-switch-slider:before { background-color: var(--avz-ink) !important; }

/* ── clients/bankConnection/components/ShowTransactions.vue ── */
body.mod-skin-dark .progress-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .progress-message { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .progress-message .progress-percentage { color: var(--avz-ink-3) !important; }

/* ── clients/bankConnection/components/TransactionsDatatable.vue ── */
body.mod-skin-dark .progress-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .progress-message { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .progress-message .progress-percentage { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .field-checkbox:hover { background-color: var(--avz-surface) !important; }
body.mod-skin-dark .selected-transactions-bar { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .selected-transaction-chip { background: var(--avz-surface) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .selected-transaction-chip:hover { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .chip-date { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .chip-description { color: var(--avz-ink) !important; }
body.mod-skin-dark .chip-remove:hover { background-color: rgba(220, 53, 69, 0.2) !important; }
body.mod-skin-dark .selected-transactions-total { color: var(--avz-ink) !important; border-top-color: var(--avz-line) !important; }

/* ── clients/components/EditPayMethod.vue ── */
body.mod-skin-dark #formConcept { background-color: var(--avz-surface-2) !important; }

/* ── clients/components/EditTasks.vue ── */
body.mod-skin-dark #formConcept { background-color: var(--avz-surface-2) !important; }

/* ── contabilidadModule/amortizaciones/components/CrearAsientosAmortizaciones.vue ── */
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr.p-highlight { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }

/* ── contabilidadModule/amortizaciones/CrearAmortizaciones.vue ── */
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr.p-highlight { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }

/* ── contabilidadModule/balances/components/BalanceInfoModal.vue ── */
body.mod-skin-dark .info-header h5 { color: var(--avz-ink) !important; }
body.mod-skin-dark .stat-item { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .stat-label { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .stat-value { color: var(--avz-ink) !important; }

/* ── contabilidadModule/balances/components/BalanceOrderCard.vue ── */
body.mod-skin-dark .balance-movimientos-expanded { border-left-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-header { background-color: var(--avz-surface-2) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-col-header { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .balance-row { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-col.principal { border-right-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-col.comparacion { border-right-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-col { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-col.principal::before { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .balance-col.comparacion::before { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .balance-col.diferencia::before { color: var(--avz-ink-2) !important; }

/* ── contabilidadModule/balances/components/BalanceSituacion.vue ── */
body.mod-skin-dark .balance-title-text { color: var(--avz-ink) !important; }
body.mod-skin-dark .agrupacion-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .agrupacion-value { color: var(--avz-ink) !important; }
body.mod-skin-dark .progress-track { background: var(--avz-line) !important; }
body.mod-skin-dark .progress-fill { background: var(--avz-ink) !important; }
body.mod-skin-dark .custom-switch-label { color: var(--avz-ink) !important; }
/* balance-row niveles: fondos claros (#f5f5f5, #fafafa) → oscurecer para dark mode */
body.mod-skin-dark .balance-row { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-row:hover { background-color: rgba(141,192,67,0.06) !important; }
body.mod-skin-dark .balance-row.clickable:hover { background-color: rgba(141,192,67,0.10) !important; box-shadow: none !important; }
body.mod-skin-dark .balance-row.nivel-1 { background-color: var(--avz-line) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-row.nivel-2 { background-color: var(--avz-surface-2) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-amount { color: var(--avz-ink) !important; }
body.mod-skin-dark .balance-amount.negative { color: #f87171 !important; }
/* balance-total ya cubierto en sección CuentaPerdidasGanancias, aquí reforzamos bordes */
body.mod-skin-dark .balance-row.balance-total { border-top-color: var(--avz-line) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-row.total-cuentas { background-color: var(--avz-surface-2) !important; border-top-color: var(--avz-line) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-row.total-cuentas .balance-amount { color: var(--avz-ink) !important; }
/* detalle dialog: white-background DataTable, resumen info, labels */
body.mod-skin-dark .white-background { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .resumen-info { background: var(--avz-surface) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .info-label { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .info-value { color: var(--avz-ink) !important; }
body.mod-skin-dark .importe-cell { color: var(--avz-ink) !important; }
body.mod-skin-dark .switch-option-container { background-color: var(--avz-surface) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .switch-label-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .export-options-container p { color: var(--avz-ink-2) !important; }

/* ── contabilidadModule/balances/components/BalanceSumaSaldos.vue ── */
body.mod-skin-dark .agrupacion-container { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .agrupacion-count { color: var(--avz-ink-3) !important; background: var(--avz-surface) !important; }
body.mod-skin-dark .agrupacion-value { color: var(--avz-ink) !important; }
body.mod-skin-dark .agrupacion-label { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .progress-track { background: var(--avz-line) !important; }
body.mod-skin-dark .progress-fill { background: var(--avz-ink-2) !important; }
body.mod-skin-dark .progress-labels { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .custom-switch-slider { background-color: #dc3545 !important; }
body.mod-skin-dark .custom-switch-input:checked + .custom-switch-slider { background-color: var(--avz-brand) !important; }
body.mod-skin-dark .custom-switch-slider::before { background-color: var(--avz-ink-2) !important; }
body.mod-skin-dark .custom-switch-label { color: var(--avz-ink) !important; }

/* ── contabilidadModule/balances/components/CuentaPerdidasGanancias.vue ── */
body.mod-skin-dark .balance-title-text { color: var(--avz-ink) !important; }
body.mod-skin-dark .agrupacion-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .agrupacion-value { color: var(--avz-ink) !important; }
body.mod-skin-dark .progress-track { background: var(--avz-line) !important; }
body.mod-skin-dark .progress-fill { background: var(--avz-ink) !important; }
body.mod-skin-dark .custom-switch-label { color: var(--avz-ink) !important; }
body.mod-skin-dark .custom-switch-slider::before { background-color: var(--avz-ink) !important; }
body.mod-skin-dark .balance-row { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-row.balance-header,
body.mod-skin-dark .balance-row.balance-total { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .balance-row.balance-header { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .balance-row.balance-total { border-top-color: var(--avz-line) !important; }
body.mod-skin-dark .item-nuevo { background-color: rgba(255, 193, 7, 0.15) !important; }
body.mod-skin-dark .item-eliminado { background-color: rgba(220, 53, 69, 0.15) !important; }

/* ── contabilidadModule/balances/components/DateRangeSelector.vue ── */
body.mod-skin-dark .date-label { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .date-select { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .date-input { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }

/* ── contabilidadModule/balances/components/EnviarCorreoDialog.vue ── */
body.mod-skin-dark .email-input-wrapper { background: var(--avz-input-bg) !important; }
body.mod-skin-dark .dialog-select { color: var(--avz-ink) !important; background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .dialog-select:hover { border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .email-input { color: var(--avz-ink) !important; }
body.mod-skin-dark .email-input::placeholder { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .chips-help-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .help-text { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .badge-separator { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .formato-label { background-color: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .formato-option:hover .formato-label { background-color: var(--avz-surface) !important; border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .formato-option.active .formato-label { background-color: rgba(13, 110, 253, 0.15) !important; }
body.mod-skin-dark .pdf-icon { background-color: rgba(220, 53, 69, 0.15) !important; }
body.mod-skin-dark .csv-icon { background-color: rgba(40, 167, 69, 0.15) !important; }
body.mod-skin-dark .formato-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .btn-outline-secondary { border-color: var(--avz-line) !important; background: var(--avz-surface-2) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .btn-outline-secondary:hover { background: var(--avz-surface) !important; }
body.mod-skin-dark .advanced-email-section { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .email-tag-cc { background: rgba(13, 110, 253, 0.2) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .email-tag-cco { background: rgba(108, 117, 125, 0.2) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .email-tag-cco .email-tag-remove { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .advanced-email-section .email-tags-container { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .advanced-email-section .email-input::placeholder { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .anios-adicionales-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .anio-option:hover .anio-label { background-color: var(--avz-surface) !important; border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .anio-icon { background-color: var(--avz-surface) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .anio-title { color: var(--avz-ink) !important; }

/* ── contabilidadModule/balances/components/ExportCsvDialog.vue ── */
body.mod-skin-dark .anios-adicionales-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .anio-option:hover .anio-label { background-color: var(--avz-line) !important; border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .anio-icon { background-color: var(--avz-surface) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .anio-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .anio-check { color: var(--avz-line) !important; }

/* ── contabilidadModule/balances/components/ExportPdfDialog.vue ── */
body.mod-skin-dark .anios-adicionales-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .anio-option:hover .anio-label { background-color: var(--avz-surface-2) !important; border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .anio-icon { background-color: var(--avz-surface) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .anio-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .anio-check { color: var(--avz-line) !important; }

/* ── contabilidadModule/balances/components/MovimientosInline.vue ── */
body.mod-skin-dark .balance-row { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .movimientos-header { background-color: var(--avz-surface-2) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .movimiento-col-header { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .movimiento-col.principal { border-right-color: var(--avz-line) !important; }
body.mod-skin-dark .movimiento-col.comparacion { border-right-color: var(--avz-line) !important; }
body.mod-skin-dark .movimiento-col.diferencia-neutra .balance-amount { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .movimiento-nuevo { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .movimiento-eliminado { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .movimiento-col { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .movimiento-col.principal::before { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .movimiento-col.comparacion::before { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .movimiento-col.diferencia::before { color: var(--avz-ink-2) !important; }

/* ── contabilidadModule/facturas/components/BorradoAsientos.vue ── */
body.mod-skin-dark .modelo-badge--secondary { color: var(--avz-ink-3) !important; }

/* ── contabilidadModule/movimientos/components/AsientoDialog.vue ── */
body.mod-skin-dark .white-background .p-dialog { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .white-background .p-dialog-content { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .white-background .asiento-view-container { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .white-background .p-card { background-color: var(--avz-surface-2) !important; }

/* ── contabilidadModule/movimientos/components/AsientosListDialog.vue ── */
body.mod-skin-dark .asientos-list-dialog-wrapper .asiento-separator { border-top-color: var(--avz-line) !important; }
body.mod-skin-dark .white-background .p-dialog { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .white-background .p-dialog-content { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .white-background .asientos-list-container { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .white-background .p-card { background-color: var(--avz-surface-2) !important; }

/* ── contabilidadModule/movimientos/components/AsientosPendientesList.vue ── */
body.mod-skin-dark .card-lineal-pendientes .p-card-header { border-bottom: 1px solid var(--avz-line) !important; background: var(--avz-surface-2) !important; }
body.mod-skin-dark .card-lineal-pendientes .p-card-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .lineal-pendientes-scroll { background: var(--avz-surface) !important; }
body.mod-skin-dark .lineal-paginador { background: var(--avz-surface-2) !important; border-top: 1px solid var(--avz-line) !important; }
body.mod-skin-dark .lineal-paginador-texto { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .lineal-paginador-texto strong { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .lineal-paginador-buttons .p-button:not(.p-disabled) { color: var(--avz-ink-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .lineal-paginador-buttons .p-button:not(.p-disabled:hover) { background: var(--avz-surface) !important; border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .lineal-item .lineal-item-fecha { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .lineal-item .lineal-item-fecha i { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .lineal-item .lineal-item-descripcion { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .lineal-item .lineal-item-footer { border-top: 1px solid var(--avz-line) !important; }
body.mod-skin-dark .confirmar-eliminar-inline { background: rgba(220, 53, 69, 0.08) !important; border-color: rgba(220, 53, 69, 0.3) !important; }
body.mod-skin-dark .confirmar-eliminar-inline-mensaje { color: var(--avz-ink) !important; }
body.mod-skin-dark .confirmar-eliminar-inline-teclas { color: var(--avz-ink-3) !important; }

/* ── contabilidadModule/movimientos/components/ExportCsvDialog.vue ── */
body.mod-skin-dark .switch-option-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .switch-option-container:hover { background: var(--avz-surface) !important; border-color: #007bff !important; }
body.mod-skin-dark .switch-label-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .switch-label-description { color: var(--avz-ink-3) !important; }

/* ── contabilidadModule/movimientos/components/CreateAsiento.vue ── */
body.mod-skin-dark .create-asiento-wrapper .movement-splitter .p-splitter-gutter { background-color: var(--avz-line) !important; }
body.mod-skin-dark .create-asiento-wrapper .movement-splitter .p-splitter-gutter:hover { background-color: var(--avz-line) !important; }
body.mod-skin-dark .create-asiento-wrapper .panel-header-compact { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .create-asiento-wrapper .movement-item-compact { background-color: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .create-asiento-wrapper .additional-tags-floating { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .atajo-item { border-color: var(--avz-line) !important; background: var(--avz-surface-2) !important; }
body.mod-skin-dark .atajo-item:hover { background: var(--avz-surface) !important; border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .atajo-item-desc { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .atajo-kbd { background: var(--avz-surface) !important; color: var(--avz-ink) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .atajo-kbd:hover { background: var(--avz-line) !important; border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .create-asiento-wrapper .key { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .keyboard-tooltip .key { background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .create-asiento-wrapper .keyboard-visual { background: linear-gradient(135deg, var(--avz-surface) 0%, var(--avz-surface-2) 100%) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .p-dropdown-item.p-disabled .fiscal-activity-group-label { color: var(--avz-ink-2) !important; }

/* ── contabilidadModule/movimientos/components/ExportPdfDialog.vue ── */
body.mod-skin-dark .switch-option-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .switch-option-container:hover { background: var(--avz-surface) !important; border-color: #007bff !important; }
body.mod-skin-dark .switch-label-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .switch-label-description { color: var(--avz-ink-3) !important; }

/* ── contabilidadModule/movimientos/components/FilterForm.vue ── */
body.mod-skin-dark .p-dropdown .p-dropdown-label.p-placeholder { color: #8a978d !important; }
body.mod-skin-dark .p-dropdown .p-dropdown-label { color: #e9efe9 !important; }

/* ── contabilidadModule/movimientos/components/KeyboardShortcutsModal.vue ── */
body.mod-skin-dark .atajo-item { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .atajo-item:hover { background-color: var(--avz-line) !important; }

/* ── contabilidadModule/movimientos/components/MovimientosList.vue ── */
body.mod-skin-dark .asiento-en-creacion { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .asiento-titulo { color: var(--avz-ink) !important; }
body.mod-skin-dark .asiento-teclado-hint { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .asiento-resumen { background: var(--avz-surface) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .asiento-resumen-label { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .asiento-resumen-sep { color: var(--avz-line) !important; }
body.mod-skin-dark .apunte-linea { background: var(--avz-surface) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .apunte-cuenta-codigo { color: var(--avz-ink) !important; }
body.mod-skin-dark .apunte-cuenta-titulo { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .apunte-concepto-desc { color: var(--avz-ink-2) !important; }

/* ── contabilidadModule/movimientos/components/PlanContableSelect.vue ── */
body.mod-skin-dark .plan-contable-select { background: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .plan-contable-select:hover:not(.plan-contable-select-disabled):not(:focus-within) { border-color: var(--avz-ink-2) !important; }
body.mod-skin-dark .plan-contable-select-disabled { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .plan-contable-input { color: var(--avz-ink) !important; }
body.mod-skin-dark .plan-contable-input:disabled { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .plan-contable-input::placeholder { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .plan-contable-icons { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .plan-contable-create-btn { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .plan-contable-clear-btn { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .plan-contable-clear-btn:hover { color: var(--avz-ink) !important; background-color: rgba(255, 255, 255, 0.08) !important; }
body.mod-skin-dark .plan-contable-arrow { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .plan-contable-dropdown { background: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .plan-contable-options-container::-webkit-scrollbar-track { background: var(--avz-surface) !important; }
body.mod-skin-dark .plan-contable-options-container::-webkit-scrollbar-thumb { background: var(--avz-line) !important; }
body.mod-skin-dark .plan-contable-option { color: var(--avz-ink) !important; }
body.mod-skin-dark .plan-contable-option:not(.plan-contable-option-selected):not(:disabled):hover { color: var(--avz-ink) !important; background: rgba(255, 255, 255, 0.06) !important; }
body.mod-skin-dark .plan-contable-option-highlighted { color: var(--avz-ink) !important; }
body.mod-skin-dark .plan-contable-dropdown-empty { color: var(--avz-ink) !important; background: var(--avz-surface-2) !important; }
body.mod-skin-dark .plan-contable-empty-with-create { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .plan-contable-empty-text { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .plan-contable-loading-more { color: var(--avz-ink-2) !important; border-top-color: var(--avz-line) !important; background-color: rgba(255, 255, 255, 0.03) !important; }
body.mod-skin-dark .plan-contable-load-more-text { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .plan-contable-create-option { background: var(--avz-surface-2) !important; border-top-color: var(--avz-line) !important; }
body.mod-skin-dark .plan-contable-create-option-sticky { background: linear-gradient(to bottom, rgba(30, 41, 34, 0.95), var(--avz-surface-2)) !important; box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.3) !important; }

/* ── contabilidadModule/movimientos/components/UploadFiles.vue ── */
body.mod-skin-dark .uploaded-files-info { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .uploaded-file-item { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .file-preview { background: var(--avz-surface) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .file-name { color: var(--avz-ink) !important; }
body.mod-skin-dark .file-details { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .upload-placeholder { border-color: var(--avz-line) !important; background: var(--avz-surface-2) !important; }
body.mod-skin-dark .upload-placeholder:hover { border-color: var(--avz-ink-2) !important; background: var(--avz-surface) !important; }
body.mod-skin-dark .upload-text { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .upload-loading { background: rgba(24, 33, 27, 0.9) !important; }

/* ── contabilidadModule/movimientos/components/LibrosIva.vue ── */
body.mod-skin-dark .bg-light-blue { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .bg-light-green { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .bg-light-purple { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .resumen-iva-table .p-datatable-tbody > tr { border-bottom: 1px solid var(--avz-line) !important; }

/* ── contabilidadModule/movimientos/components/ViewAsiento.vue ── */
body.mod-skin-dark .movement-card .movement-splitter .p-splitter-gutter { background-color: var(--avz-line) !important; }
body.mod-skin-dark .movement-card .movement-splitter .p-splitter-gutter:hover { background-color: var(--avz-line) !important; }
body.mod-skin-dark .movement-card .panel-header-compact { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .movement-card .movement-item-compact { background-color: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .movement-card .more-tags-indicator { background-color: var(--avz-ink-3) !important; color: var(--avz-surface) !important; }
body.mod-skin-dark .movement-card .more-tags-indicator.hoverable:hover { background-color: var(--avz-ink-2) !important; }
body.mod-skin-dark .movement-card .additional-tags-floating { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }

/* ── datatable/components/totalesGraphBar.vue ── */
body.mod-skin-dark .minimalist { color: var(--avz-ink) !important; background-color: var(--avz-surface-2) !important; }

/* ── datatable/components/totalesGraph.vue ── */
body.mod-skin-dark .minimalist { color: var(--avz-ink) !important; background-color: var(--avz-surface-2) !important; }

/* ── contabilidadModule/movimientos/components/EnviarCorreoDialog.vue ── */
body.mod-skin-dark .email-input-wrapper { background: var(--avz-input-bg) !important; }
body.mod-skin-dark .email-input { color: var(--avz-ink) !important; }
body.mod-skin-dark .email-input::placeholder { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .chips-help-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .help-text { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .badge-separator { background: var(--avz-surface) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .formato-label { background-color: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .formato-option:hover .formato-label { background-color: var(--avz-surface) !important; border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .formato-option.active .formato-label { background-color: #0d2a4e !important; }
body.mod-skin-dark .formato-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .formato-check { color: var(--avz-line) !important; }

/* ── documentManagement/UploadFilesPad.vue ── */
body.mod-skin-dark .file-uploader-container { background: var(--avz-surface) !important; }
body.mod-skin-dark .uploader-header { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .uploader-header .modal-header-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .uploader-footer { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .btn-primary { color: #fff !important; }

/* ── datatable/components/totalesTable.vue ── */
body.mod-skin-dark .minimalist-table th,
body.mod-skin-dark .minimalist-table td { border-color: var(--avz-line) !important; }
body.mod-skin-dark .minimalist-table th { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .valor { background-color: var(--avz-surface) !important; }
body.mod-skin-dark .label-left { color: var(--avz-ink-2) !important; }

/* ── firma3G/components/SignaturePadComponent.vue ── */
body.mod-skin-dark .signature-pad { border-color: var(--avz-line) !important; }
body.mod-skin-dark .p-button-secondary { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }

/* ── contabilidadModule/facturas/components/CrearFacturasEmitidasRecibidas.vue ── */
body.mod-skin-dark .readonly-field { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .p-inputnumber.readonly-field .p-inputnumber-input,
body.mod-skin-dark .p-inputnumber-input:read-only { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .p-inputnumber.readonly-field .p-inputnumber-input,
body.mod-skin-dark .p-inputnumber-input[readonly] { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .p-calendar:has(.p-inputtext:read-only) .p-inputtext { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .p-calendar:has(.p-inputtext:read-only) .p-calendar-button { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .total-card { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .total-card:hover { border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .total-amount { color: var(--avz-ink) !important; }
body.mod-skin-dark .fw-semibold { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .form-check-label { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .serie-header { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .p-datatable-sm .p-datatable-thead > tr > th { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .card-lineal-pendientes .p-card-header { background: var(--avz-surface-2) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .card-lineal-pendientes .p-card-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .lineal-pendientes-scroll { background: var(--avz-surface) !important; }
body.mod-skin-dark .lineal-paginador { background: var(--avz-surface-2) !important; border-top-color: var(--avz-line) !important; }
body.mod-skin-dark .lineal-paginador-buttons .p-button:not(.p-disabled) { color: var(--avz-ink-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .lineal-paginador-buttons .p-button:not(.p-disabled:hover) { background: var(--avz-surface) !important; border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .grupo-serie { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .grupo-serie-header { background: var(--avz-surface-2) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .btn-accion { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .btn-accion:hover:not(:disabled) { background: var(--avz-surface) !important; }
body.mod-skin-dark .lineal-item-cuenta { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .lineal-item-fecha { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .lineal-item-contrapartida { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .atajo-item { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .atajo-item:hover { background: var(--avz-surface) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .atajo-item-desc { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .atajo-kbd { background: var(--avz-surface) !important; color: var(--avz-ink) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .atajo-kbd:hover { background: var(--avz-line) !important; border-color: var(--avz-ink-3) !important; }
body.mod-skin-dark .p-dropdown-item.p-disabled .fiscal-activity-group-label { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .referencia-warning-detail { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .referencia-warning-desc { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .lineal-paginador-texto strong { color: var(--avz-ink) !important; }
body.mod-skin-dark .switch { --circle-bg: var(--avz-ink) !important; }

/* ── formConstructor/components/FormConstructor.vue ── */
body.mod-skin-dark .p-inputnumber-input { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .p-inputnumber-input[readonly] { background-color: var(--avz-surface) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-3) !important; }

/* ── global/menus/AppTieredMenu.vue ── */
body.mod-skin-dark .p-tieredmenu .p-menu-list { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; box-shadow: 0 18px 50px rgba(0,0,0,0.4), 0 6px 16px rgba(0,0,0,0.25) !important; }
body.mod-skin-dark .p-tieredmenu .p-menuitem-icon { background: rgba(255,255,255,0.06) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .p-tieredmenu .p-menu-separator { border-top-color: var(--avz-line) !important; }
body.mod-skin-dark .p-tieredmenu .p-submenu-list { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; box-shadow: 0 18px 50px rgba(0,0,0,0.4), 0 6px 16px rgba(0,0,0,0.25) !important; }

/* ── global/notifications/components/NotificationListItem.vue ── */
body.mod-skin-dark .notiList .readNoti { background-color: rgba(255, 255, 255, 0.07) !important; }

/* ── firma3G/Firma3GModal.vue ── */
body.mod-skin-dark .pin-input { border-color: var(--avz-line) !important; background-color: var(--avz-input-bg) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .request-new-pin { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .request-new-pin:hover { color: var(--avz-ink) !important; }

/* ── labModule/components/CategoriesConcepts.vue ── */
body.mod-skin-dark ul.p-tabview-nav li a.p-tabview-nav-link { background-color: var(--avz-surface-2) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .p-tabview-panels { border-color: var(--avz-line) !important; }

/* ── labModule/components/EmployeesTreeTableComponent.vue ── */
body.mod-skin-dark ::v-deep .p-treetable .p-treetable-tbody > tr:hover,
body.mod-skin-dark ::v-deep .p-treetable .p-treetable-tbody > tr.p-highlight { background-color: #2b4a52 !important; color: var(--avz-ink) !important; }

/* ── global/notifications/components/NotificationsList.vue ── */
body.mod-skin-dark .notifications-mark-all-btn { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .notifications-mark-all-btn:hover:not(:disabled) { background: var(--avz-surface) !important; border-color: var(--avz-ink-3) !important; color: var(--avz-ink) !important; box-shadow: 0 0 0 2px rgba(255,255,255,0.06) !important; }

/* ── labModule/components/TreeTableComponent.vue ── */
body.mod-skin-dark ::v-deep .p-treetable .p-treetable-tbody > tr:hover,
body.mod-skin-dark ::v-deep .p-treetable .p-treetable-tbody > tr.p-highlight { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }

/* ── global/calendar/HeaderCalendarModal.vue ── */
body.mod-skin-dark .calendar-time { color: var(--avz-ink-2) !important; }
body.mod-skin-dark #todayButton { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .calendar-dropdown { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }

/* ── labModule/duplicarVariationModal/DuplicarVariationModal.vue ── */
body.mod-skin-dark ::v-deep .p-dialog-content { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .field-readonly { background-color: var(--avz-input-bg) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .field-label { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .card { border-color: var(--avz-line) !important; }
body.mod-skin-dark ::v-deep .p-dialog-header { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark ::v-deep .p-dialog-footer { border-top-color: var(--avz-line) !important; }

/* ── notes/responseNotesModal/ResponseNotesModal.vue ── */
body.mod-skin-dark a:hover { background-color: rgba(255,255,255,0.08) !important; }
body.mod-skin-dark a:active { background-color: rgba(255,255,255,0.15) !important; }

/* ── notesBeNotifiedModal/components/NotesBeNotifiedModal.vue ── */
body.mod-skin-dark .noteDiv a[role='button'].p-accordion-header-link { background-color: #2a3a1e !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .noteDiv .p-accordion-content { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .noteDiv .noteAnswerScrollDiv a[role='button'].p-accordion-header-link { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .noteDiv .noteAnswerScrollDiv .p-accordion-content { background-color: var(--avz-surface) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .noteAnswerZone { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }

/* ── requestData/components/ShowRequestDataClient.vue ── */
/* prime-vue-normalizator.css fija el header del Panel en gris claro sin darse cuenta de que
   el tema oscuro de PrimeVue vive dentro de @layer primevue: al no estar en capa, ese
   selector sin capa gana siempre a la capa, aunque cargue antes en el documento. */
body.mod-skin-dark .p-panel .p-panel-header { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .field-group { background-color: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .group-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .base-input,
body.mod-skin-dark .checkbox-input { border-color: var(--avz-line) !important; background-color: var(--avz-input-bg) !important; color: var(--avz-ink) !important; }
/* BaseInput.vue no reenvía la clase "base-input" al <input> real (queda en el div raíz),
   así que el readonly hay que engancharlo por contenedor + .form-control. El selector genérico
   de arriba (body.mod-skin-dark input:not(...)[readonly]) tiene más especificidad por sus tres
   :not(), así que hace falta el id #formConcept para ganarle. */
body.mod-skin-dark #formConcept .form-control[readonly] { background-color: var(--avz-surface) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .form-button { border-color: var(--avz-ink-2) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .form-button:hover { background-color: var(--avz-ink-2) !important; color: var(--avz-surface) !important; border-color: var(--avz-ink-2) !important; }
body.mod-skin-dark .form-button:disabled { background-color: var(--avz-surface) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .select2-container { background-color: var(--avz-input-bg) !important; }
body.mod-skin-dark .select2-container--default .select2-selection--single { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .select2-dropdown { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .spinner-container { background: rgba(24, 33, 27, 0.85) !important; }

/* ── requestData/components/ShowRequestData.vue ── */
/* prime-vue-normalizator.css fija el header del Panel en gris claro sin darse cuenta de que
   el tema oscuro de PrimeVue vive dentro de @layer primevue: al no estar en capa, ese
   selector sin capa gana siempre a la capa, aunque cargue antes en el documento. */
body.mod-skin-dark .p-panel .p-panel-header { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .field-group { border-color: var(--avz-line) !important; background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .group-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .base-input,
body.mod-skin-dark .checkbox-input { border-color: var(--avz-line) !important; background-color: var(--avz-input-bg) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .base-input:focus { background-color: var(--avz-surface) !important; border-color: var(--avz-ink-3) !important; }
/* BaseInput.vue no reenvía la clase "base-input" al <input> real (queda en el div raíz),
   así que el readonly hay que engancharlo por contenedor + .form-control. El selector genérico
   de arriba (body.mod-skin-dark input:not(...)[readonly]) tiene más especificidad por sus tres
   :not(), así que hace falta el id #formConcept para ganarle. */
body.mod-skin-dark #formConcept .form-control[readonly] { background-color: var(--avz-surface) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .form-button { border-color: var(--avz-ink-2) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .form-button:disabled { background-color: var(--avz-surface) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .select2-container { background-color: var(--avz-input-bg) !important; }
body.mod-skin-dark .select2-container--default .select2-selection--single { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .select2-dropdown { background-color: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .spinner-container { background: rgba(30, 41, 34, 0.85) !important; }

/* ── requestData/components/TableRequestData.vue ── */
body.mod-skin-dark .minimalist-container { background: var(--avz-surface) !important; }
body.mod-skin-dark .toolbar { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .minimalist-table { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .minimalist-table th { background: var(--avz-surface) !important; color: var(--avz-ink-2) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .minimalist-table td { background: var(--avz-surface-2) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .minimalist-table tr:hover td { background: var(--avz-surface) !important; }
body.mod-skin-dark .checkbox-input,
body.mod-skin-dark .base-input,
body.mod-skin-dark .calendar-input { border-color: var(--avz-line) !important; background: var(--avz-input-bg) !important; color: var(--avz-ink) !important; }

/* ── shared/SearchInput.vue ── */
body.mod-skin-dark .search__input { background-color: var(--avz-input-bg) !important; }
body.mod-skin-dark .search__container { background-color: var(--avz-surface-2) !important; }

/* ── system/billing/billingPreparation/components/billingPreparation.vue ── */
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr.p-highlight { background-color: #1e4976 !important; color: #e9efe9 !important; }

/* ── system/billing/billingPreparation/components/chargesModal.vue ── */
body.mod-skin-dark .p-datatable.p-datatable-sm .p-datatable-tbody > tr > td.color { background: var(--avz-surface) !important; }

/* ── system/billing/chargesPreparation/components/chargesPreparation.vue ── */
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr.p-highlight { background-color: #2b4a6e !important; color: #e9efe9 !important; }
body.mod-skin-dark .view-mode .description-content:empty::before { color: #8a978d !important; }

/* ── system/billing/directChargesPreparation/components/ChargesFormAndTable.vue ── */
body.mod-skin-dark .service-configuration-section { background-color: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .form-label { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .modern-toggle .toggle-indicator { background-color: var(--avz-ink) !important; }
body.mod-skin-dark .modern-toggle input[type="checkbox"]:checked + label .toggle-track .toggle-indicator { background-color: var(--avz-ink) !important; }
body.mod-skin-dark .modern-toggle input[type="checkbox"]:disabled + label .toggle-indicator { background-color: var(--avz-ink-2) !important; }
body.mod-skin-dark .modern-toggle .toggle-label { color: var(--avz-ink) !important; }
body.mod-skin-dark .serie-header { background-color: var(--avz-surface-2) !important; }
body.mod-skin-dark .responsive-datatable .p-datatable-wrapper::-webkit-scrollbar-track { background: var(--avz-surface) !important; }
body.mod-skin-dark .client-link { background-color: var(--avz-surface-2) !important; color: #6ea8fe !important; border-color: #6ea8fe !important; }

/* ── system/billing/directChargesPreparation/directChargesPreparation.vue ── */
body.mod-skin-dark .service-configuration-section { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .form-label { color: var(--avz-ink) !important; }
body.mod-skin-dark .form-label::after { background: linear-gradient(to right, var(--avz-line), transparent) !important; }
body.mod-skin-dark .select2-container--default .select2-selection--single { background-color: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--avz-ink) !important; }
body.mod-skin-dark .select2-container--default .select2-selection--single::after { border-top-color: var(--avz-ink-2) !important; }
body.mod-skin-dark .select2-container--default.select2-container--disabled .select2-selection--single { background-color: var(--avz-surface) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__rendered { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .modern-toggle .toggle-label { color: var(--avz-ink) !important; }
body.mod-skin-dark .loading-content { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .loading-text { color: var(--avz-ink-2) !important; }

/* ── uploadFilesModal/UploadFilesModal.vue ── */
body.mod-skin-dark .delete-btn { color: var(--avz-ink-3) !important; }

/* ── system/billing/directChargesPreparationOLD/directChargesPreparation.vue ── */
body.mod-skin-dark .p-datatable .p-datatable-tbody > tr.p-highlight { background-color: #1a3a5c !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .custom-input-group .input-group-text { background-color: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .custom-input-group .p-inputtext.p-inputnumber-input,
body.mod-skin-dark .custom-input-group .form-input-prime { border-color: var(--avz-line) !important; color: var(--avz-ink) !important; background-color: var(--avz-input-bg) !important; }
body.mod-skin-dark .p-inputnumber-input[readonly] { background-color: var(--avz-surface) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-3) !important; }

/* ── system/notes/noteAnswersModal/components/NoteAnswersModal.vue ── */
body.mod-skin-dark .noteAnswerScrollDiv div.p-accordion-content { background-color: var(--avz-surface-2) !important; }

/* ── system/festiveDays/components/MultipleCalendar.vue ── */
body.mod-skin-dark .month-display { color: var(--avz-ink) !important; }
body.mod-skin-dark .calendar-container { border-color: var(--avz-line) !important; }
body.mod-skin-dark .calendar-grid { background: var(--avz-line) !important; }
body.mod-skin-dark .calendar-day { background: var(--avz-surface-2) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .calendar-day.different-month { background: var(--avz-surface) !important; color: var(--avz-ink-3) !important; }
body.mod-skin-dark .calendar-day.editable:hover { background: rgba(255,255,255,0.07) !important; }
body.mod-skin-dark .calendar-day.selected { background: rgba(40,167,69,0.25) !important; }
body.mod-skin-dark .info-panel { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .legend-dot.cancelled-legend::after { background: var(--avz-ink-2) !important; }
body.mod-skin-dark .holidays-section { border-top-color: var(--avz-line) !important; }
body.mod-skin-dark .holidays-section h4 { color: var(--avz-ink) !important; }
body.mod-skin-dark .holiday-description { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .holiday-type { color: var(--avz-ink-3) !important; background: rgba(255,255,255,0.08) !important; }
body.mod-skin-dark .description-input { background: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .holiday-dot.country { background: rgba(248,215,218,0.2) !important; color: #f5a7b0 !important; border-color: rgba(245,198,203,0.3) !important; }
body.mod-skin-dark .holiday-dot.autonomy { background: rgba(255,243,205,0.15) !important; color: #d4a520 !important; border-color: rgba(255,234,167,0.25) !important; }
body.mod-skin-dark .holiday-dot.city { background: rgba(209,236,241,0.15) !important; color: #17a2b8 !important; border-color: rgba(190,229,235,0.25) !important; }
body.mod-skin-dark .holiday-dot.center { background: rgba(232,216,255,0.15) !important; color: #c084fc !important; border-color: rgba(201,160,255,0.25) !important; }
body.mod-skin-dark .holiday-item.country { background: rgba(248,215,218,0.12) !important; }
body.mod-skin-dark .holiday-item.autonomy { background: rgba(255,243,205,0.10) !important; }
body.mod-skin-dark .holiday-item.city { background: rgba(209,236,241,0.10) !important; }
body.mod-skin-dark .holiday-item.center { background: rgba(243,229,245,0.10) !important; }
body.mod-skin-dark .holiday-item.new-date { background: rgba(212,237,218,0.12) !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   contabilidadModule/movimientos — dark-mode overrides
   Cubre: movimiento.css, diario.css, asientoDialogScoped.css
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── movimiento.css & diario.css (importados como <style scoped> → !important requerido) ── */
body.mod-skin-dark .saldo-info { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .p-datatable-table { background-color: var(--avz-surface) !important; }
body.mod-skin-dark .loading-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .error-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .no-data-container { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .concepto-descripcion { color: var(--avz-ink) !important; }
body.mod-skin-dark .concepto-descripcion-ampliada { background: var(--avz-surface-2) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .cuenta-titulo { color: var(--avz-ink-2) !important; }
body.mod-skin-dark .info-basica { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; box-shadow: 0 4px 16px rgba(0,0,0,0.3) !important; }
body.mod-skin-dark .search-input { background: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .search-input:focus { border-color: #3b82f6 !important; background: var(--avz-input-bg) !important; }
body.mod-skin-dark .search-input::placeholder { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .search-btn { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .search-btn:hover { background: var(--avz-surface) !important; border-color: #3b82f6 !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .info-basica .p-button.p-button-danger { background: transparent !important; border-color: transparent !important; color: var(--avz-dang-ink) !important; }
body.mod-skin-dark .info-basica .p-button.p-button-danger:hover { background: rgba(207,71,63,0.12) !important; color: var(--avz-dang-ink) !important; }
body.mod-skin-dark .additional-tags-floating { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .movements-container { background: transparent !important; border-color: transparent !important; box-shadow: none !important; }
body.mod-skin-dark .movement-card { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .movement-description-mini { background: rgba(255,255,255,0.07) !important; border-color: rgba(255,255,255,0.1) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .movement-description-mini .invoice-link { color: #60a5fa !important; }
body.mod-skin-dark .movement-description-mini .invoice-link:hover { color: #93c5fd !important; background: rgba(96,165,250,0.12) !important; border-bottom-color: #93c5fd !important; }
body.mod-skin-dark .form-select { background: var(--avz-input-bg) !important; color: var(--avz-ink) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .form-select:focus { background: var(--avz-input-bg) !important; color: var(--avz-ink) !important; border-color: #3b82f6 !important; }

/* ── asientoDialogScoped.css (global CSS, namespace .asiento-dialog-wrapper / .asiento-view-container) ── */
body.mod-skin-dark .asiento-dialog-wrapper .p-dialog .p-dialog-header { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .asiento-dialog-wrapper .p-dialog .p-dialog-title { color: var(--avz-ink) !important; }
body.mod-skin-dark .asiento-dialog-wrapper .p-dialog .p-dialog-content { background-color: var(--avz-surface) !important; }
/* ── splitter-panel (DEBE/HABER) dentro del modal: gradiente blanco → fondo oscuro ── */
body.mod-skin-dark .asiento-view-container .splitter-panel { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .asiento-view-container .panel-header-compact { border-bottom-color: var(--avz-line) !important; }
/* También aplica al ViewAsiento embebido en el Diario (sin .asiento-view-container) */
body.mod-skin-dark .movement-card .splitter-panel { background: var(--avz-surface) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .movement-card .panel-header-compact { border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .asiento-view-container .saldo-info { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .asiento-view-container .saldo-badge { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .asiento-view-container .p-datatable-table { background-color: var(--avz-surface) !important; }
body.mod-skin-dark .asiento-view-container .loading-container { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .asiento-view-container .error-container { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .asiento-view-container .no-data-container { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .asiento-view-container .movement-card { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .asiento-view-container .movement-description-mini { background: rgba(255,255,255,0.07) !important; border-color: rgba(255,255,255,0.1) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .asiento-view-container .rango-cuenta-container::after { background: var(--avz-input-bg) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .asiento-view-container .additional-tags-floating { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .asiento-view-container .p-card { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .asiento-view-container .concepto-descripcion { color: var(--avz-ink) !important; }
body.mod-skin-dark .asiento-view-container .info-basica { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; box-shadow: 0 4px 16px rgba(0,0,0,0.3) !important; }
body.mod-skin-dark .asiento-view-container .search-input { background: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .asiento-view-container .search-btn { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .asiento-view-container .form-control { background-color: var(--avz-input-bg) !important; color: var(--avz-ink) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .asiento-view-container .form-control:focus { background-color: var(--avz-input-bg) !important; color: var(--avz-ink) !important; border-color: #80bdff !important; }
body.mod-skin-dark .asiento-view-container .form-control-sm { background-color: var(--avz-input-bg) !important; color: var(--avz-ink) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .asiento-view-container .btn { color: var(--avz-ink) !important; }
body.mod-skin-dark .asiento-view-container .etiquetas-modal-content { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .asiento-view-container .crear-etiqueta-form .card { background: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .asiento-view-container .etiquetas-multiselect .p-multiselect { background: var(--avz-input-bg) !important; border-color: var(--avz-line) !important; }
body.mod-skin-dark .asiento-view-container .form-select { background: var(--avz-input-bg) !important; color: var(--avz-ink) !important; border-color: var(--avz-line) !important; }

/* ── LibrosIva: badges de porcentaje IVA (bg-success = verde marca) ── */
body.mod-skin-dark .badge.bg-success { color: #fff !important; }

/* ── btn-outline-primary en dark mode: usar brand claro; disabled → gris muted ── */
body.mod-skin-dark .btn-outline-primary { color: var(--avz-brand) !important; border-color: var(--avz-brand) !important; background: transparent !important; }
body.mod-skin-dark .btn-outline-primary:hover { background: var(--avz-brand) !important; color: #fff !important; }
body.mod-skin-dark .btn-outline-primary:disabled,
body.mod-skin-dark .btn-outline-primary.disabled { color: var(--avz-ink-3) !important; border-color: var(--avz-line) !important; opacity: 0.6 !important; }

/* ── btn-success / btn-primary en dark mode: verde más oscuro para reducir impacto visual ── */
body.mod-skin-dark .btn-success,
body.mod-skin-dark .btn-primary { background-color: var(--avz-brand-strong) !important; border-color: var(--avz-brand-strong) !important; color: #fff !important; }
body.mod-skin-dark .btn-success:hover,
body.mod-skin-dark .btn-primary:hover { background-color: var(--avz-brand) !important; border-color: var(--avz-brand) !important; color: #fff !important; }
body.mod-skin-dark .btn-success:disabled,
body.mod-skin-dark .btn-primary:disabled { opacity: 0.5 !important; }

/* ── btn-primary en toolbar datatable: seguir el estilo ghost como el resto de botones ── */
body.mod-skin-dark .dt-buttons .btn-primary { background-color: transparent !important; border-color: transparent !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .dt-buttons .btn-primary:hover:not(:disabled):not(.disabled) { background-color: rgba(95,154,44,0.12) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .dt-buttons .btn-primary:disabled,
body.mod-skin-dark .dt-buttons .btn-primary.disabled { opacity: .45 !important; }

/* ── btn-light / btn-outline-light en el card-header amortizacion → mantener contraste sobre fondo verde ── */
body.mod-skin-dark .card-header .btn-light { background-color: rgba(255,255,255,0.15) !important; border-color: rgba(255,255,255,0.5) !important; color: #fff !important; }
body.mod-skin-dark .card-header .btn-light:hover { background-color: rgba(255,255,255,0.25) !important; }
body.mod-skin-dark .card-header .btn-outline-light { background-color: transparent !important; border-color: rgba(255,255,255,0.6) !important; color: #fff !important; }
body.mod-skin-dark .card-header .btn-outline-light:hover { background-color: rgba(255,255,255,0.1) !important; }

/* ── amortizacion-detail: card body blanco, tabla clara, textos oscuros → oscurecer todo ── */
body.mod-skin-dark .amortizacion-detail .modal-body { background-color: var(--avz-surface) !important; }
body.mod-skin-dark .amortizacion-detail .modal-footer { background: var(--avz-surface-2) !important; border-top-color: var(--avz-line) !important; }
body.mod-skin-dark .amortizacion-detail .card { border-color: var(--avz-line) !important; box-shadow: none !important; }
body.mod-skin-dark .amortizacion-detail .card-body { background: var(--avz-surface-2) !important; }
body.mod-skin-dark .amortizacion-detail .table { border-color: var(--avz-line) !important; }
body.mod-skin-dark .amortizacion-detail .table thead th { background: var(--avz-surface) !important; color: var(--avz-ink-3) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .amortizacion-detail .table tbody tr:hover { background-color: rgba(141,192,67,0.08) !important; transform: none !important; }
body.mod-skin-dark .amortizacion-detail .table tbody td { border-color: var(--avz-line) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .amortizacion-detail dl.row dt { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .amortizacion-detail dl.row dd { color: var(--avz-ink) !important; }
body.mod-skin-dark .amortizacion-detail .btn-search-lupa { background-color: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .amortizacion-detail .btn-search-lupa:hover { background-color: var(--avz-surface) !important; color: var(--avz-ink) !important; }

/* ── Cuentas contables en el Diario/Mayor (movement-card = scope de ViewAsiento, sin asiento-view-container) ── */
/* Bootstrap .text-dark fuerza #343a40 !important → invisible en dark mode */
body.mod-skin-dark .movement-card .account-info { color: var(--avz-ink) !important; }
body.mod-skin-dark .movement-card .account-info strong { color: var(--avz-ink) !important; }
body.mod-skin-dark .movement-card .account-info .small,
body.mod-skin-dark .movement-card .account-info .text-muted { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .movement-card .movement-account-compact strong { color: var(--avz-ink) !important; }
body.mod-skin-dark .movement-card .movement-account-compact .small { color: var(--avz-ink-3) !important; }
/* Mismo fix para cuando ViewAsiento está dentro de un diálogo (.asiento-view-container) */
body.mod-skin-dark .asiento-view-container .account-info { color: var(--avz-ink) !important; }
body.mod-skin-dark .asiento-view-container .account-info strong { color: var(--avz-ink) !important; }
body.mod-skin-dark .asiento-view-container .account-info .small,
body.mod-skin-dark .asiento-view-container .account-info .text-muted { color: var(--avz-ink-3) !important; }
body.mod-skin-dark .asiento-view-container .movement-account-compact strong { color: var(--avz-ink) !important; }
body.mod-skin-dark .asiento-view-container .movement-account-compact .small { color: var(--avz-ink-3) !important; }

/* ── Bienes de inversión: Cancelar edición (rojo) y Guardar (blanco) sobre card-header verde ── */
body.mod-skin-dark .amort-btn-cancel-edit { background: rgba(207,71,63,0.25) !important; border-color: rgba(234,122,114,0.7) !important; color: #fca5a5 !important; }
body.mod-skin-dark .amort-btn-cancel-edit:hover { background: rgba(207,71,63,0.45) !important; color: #fff !important; }
body.mod-skin-dark .amort-btn-save-edit { background: rgba(255,255,255,0.18) !important; border-color: rgba(255,255,255,0.55) !important; color: #fff !important; }
body.mod-skin-dark .amort-btn-save-edit:hover { background: rgba(255,255,255,0.30) !important; }

/* ── Bienes de inversión: + Crear (verde), Editar (teal), + Añadir línea (naranja) ── */
body.mod-skin-dark .amort-btn-crear { background: rgba(95,154,44,0.18) !important; border-color: var(--avz-brand-strong) !important; color: var(--avz-brand) !important; }
body.mod-skin-dark .amort-btn-crear:hover { background: rgba(95,154,44,0.35) !important; color: #fff !important; }
body.mod-skin-dark .amort-btn-editar { background: rgba(14,165,233,0.15) !important; border-color: rgba(56,189,248,0.55) !important; color: #38bdf8 !important; }
body.mod-skin-dark .amort-btn-editar:hover { background: rgba(14,165,233,0.35) !important; color: #fff !important; }
body.mod-skin-dark .amort-btn-addline { background: rgba(234,179,8,0.15) !important; border-color: rgba(234,179,8,0.55) !important; color: #fbbf24 !important; }
body.mod-skin-dark .amort-btn-addline:hover { background: rgba(234,179,8,0.35) !important; color: #fff !important; }
body.mod-skin-dark .amort-btn-exportar { background: rgba(99,102,241,0.18) !important; border-color: rgba(129,140,248,0.60) !important; color: #e0e7ff !important; }
body.mod-skin-dark .amort-btn-exportar:hover { background: rgba(99,102,241,0.35) !important; color: #fff !important; }

/* ── Diario icon buttons modo oscuro: borde + fondo tintado, igual que export buttons ── */
body.mod-skin-dark .p-button.diario-icon-btn { border: 1px solid !important; border-radius: 8px !important; }
body.mod-skin-dark .p-button.diario-icon-btn.p-button-success  { background: rgba(95,154,44,0.15) !important; border-color: rgba(95,154,44,0.55) !important; color: var(--avz-brand) !important; }
body.mod-skin-dark .p-button.diario-icon-btn.p-button-success:hover  { background: rgba(95,154,44,0.30) !important; color: #fff !important; }
body.mod-skin-dark .p-button.diario-icon-btn.p-button-danger   { background: rgba(207,71,63,0.15) !important; border-color: rgba(207,71,63,0.55) !important; color: rgb(234,122,114) !important; }
body.mod-skin-dark .p-button.diario-icon-btn.p-button-danger:hover   { background: rgba(207,71,63,0.30) !important; color: #fff !important; }
body.mod-skin-dark .p-button.diario-icon-btn.p-button-info     { background: rgba(14,165,233,0.15) !important; border-color: rgba(56,189,248,0.55) !important; color: #38bdf8 !important; }
body.mod-skin-dark .p-button.diario-icon-btn.p-button-info:hover     { background: rgba(14,165,233,0.30) !important; color: #fff !important; }
body.mod-skin-dark .p-button.diario-icon-btn.p-button-secondary { background: rgba(138,151,141,0.12) !important; border-color: rgba(138,151,141,0.45) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .p-button.diario-icon-btn.p-button-secondary:hover { background: rgba(138,151,141,0.25) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .p-button.diario-icon-btn.btn-diagram        { background: rgba(234,179,8,0.15) !important; border-color: rgba(234,179,8,0.55) !important; color: #fbbf24 !important; }
body.mod-skin-dark .p-button.diario-icon-btn.btn-diagram:hover  { background: rgba(234,179,8,0.30) !important; color: #fff !important; }

/* ── p-button-text (otros, no Diario): hover semitransparente en lugar del sólido de PrimeVue ── */
body.mod-skin-dark .p-button.p-button-text.p-button-success:hover { background: rgba(95,154,44,0.18) !important; color: rgb(167,210,101) !important; }
body.mod-skin-dark .p-button.p-button-text.p-button-danger:hover { background: rgba(207,71,63,0.18) !important; color: rgb(234,122,114) !important; }
body.mod-skin-dark .p-button.p-button-text.p-button-info:hover { background: rgba(14,165,233,0.18) !important; color: rgb(56,189,248) !important; }
body.mod-skin-dark .p-button.p-button-text.p-button-secondary:hover { background: rgba(138,151,141,0.18) !important; color: var(--avz-ink) !important; }

/* ── export-btn (balances): Excel outline-verde, PDF outline-rojo (hover rojo), Correo teal ── */
body.mod-skin-dark .p-button.export-btn.p-button-success { background: rgba(95,154,44,0.18) !important; border-color: var(--avz-brand-strong) !important; color: var(--avz-brand) !important; }
body.mod-skin-dark .p-button.export-btn.p-button-success:hover { background: rgba(95,154,44,0.38) !important; border-color: var(--avz-brand) !important; color: #fff !important; }
body.mod-skin-dark .p-button.export-btn.p-button-danger { background: rgba(207,71,63,0.18) !important; border-color: rgba(207,71,63,0.6) !important; color: rgb(234,122,114) !important; }
body.mod-skin-dark .p-button.export-btn.p-button-danger:hover { background: rgba(207,71,63,0.45) !important; border-color: rgba(207,71,63,0.9) !important; color: #fff !important; }
body.mod-skin-dark .p-button.export-btn.p-button-primary { background: rgba(14,165,233,0.15) !important; border-color: rgba(56,189,248,0.55) !important; color: #38bdf8 !important; }
body.mod-skin-dark .p-button.export-btn.p-button-primary:hover { background: rgba(14,165,233,0.35) !important; border-color: rgba(56,189,248,0.9) !important; color: #fff !important; }

/* ── TabMenu (Bienes de inversión / Cálculo / Asientos): fondo oscuro + marca verde ── */
body.mod-skin-dark .p-tabmenu .p-tabmenu-nav { background: var(--avz-surface) !important; border-bottom-color: var(--avz-line) !important; }
body.mod-skin-dark .p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link { background: transparent !important; color: var(--avz-ink-2) !important; border-bottom-color: transparent !important; }
body.mod-skin-dark .p-tabmenu .p-tabmenu-nav .p-tabmenuitem:not(.p-highlight):not(.p-disabled):hover .p-menuitem-link { background: rgba(141,192,67,0.08) !important; color: var(--avz-ink) !important; }
body.mod-skin-dark .p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight .p-menuitem-link { background: rgba(141,192,67,0.12) !important; color: var(--avz-brand) !important; border-bottom-color: var(--avz-brand) !important; }
body.mod-skin-dark .p-tabmenu .p-tabmenu-nav .p-tabmenu-ink-bar { background-color: var(--avz-brand) !important; }

/* ── Filtros estado amortización (Pendiente/Finalizada/Todas) modo oscuro ── */
body.mod-skin-dark .amort-filter-group .btn-outline-warning  { background: rgba(234,179,8,0.12) !important; border-color: rgba(234,179,8,0.50) !important; color: #fbbf24 !important; }
body.mod-skin-dark .amort-filter-group .btn-warning          { background: rgba(234,179,8,0.70) !important; border-color: #d97706 !important; color: #fff !important; box-shadow: 0 2px 8px rgba(234,179,8,0.35) !important; }
body.mod-skin-dark .amort-filter-group .btn-outline-warning:hover { background: rgba(234,179,8,0.22) !important; }
body.mod-skin-dark .amort-filter-group .btn-warning:hover         { background: rgba(234,179,8,0.85) !important; }

body.mod-skin-dark .amort-filter-group .btn-outline-success  { background: rgba(95,154,44,0.12) !important; border-color: rgba(95,154,44,0.50) !important; color: var(--avz-brand) !important; }
body.mod-skin-dark .amort-filter-group .btn-success          { background: rgba(95,154,44,0.70) !important; border-color: var(--avz-brand-strong) !important; color: #fff !important; box-shadow: 0 2px 8px rgba(95,154,44,0.35) !important; }
body.mod-skin-dark .amort-filter-group .btn-outline-success:hover { background: rgba(95,154,44,0.22) !important; }
body.mod-skin-dark .amort-filter-group .btn-success:hover         { background: rgba(95,154,44,0.85) !important; }

body.mod-skin-dark .amort-filter-group .btn-outline-secondary { background: rgba(138,151,141,0.10) !important; border-color: rgba(138,151,141,0.40) !important; color: var(--avz-ink-2) !important; }
body.mod-skin-dark .amort-filter-group .btn-secondary         { background: rgba(138,151,141,0.60) !important; border-color: rgba(138,151,141,0.80) !important; color: #fff !important; box-shadow: 0 2px 8px rgba(138,151,141,0.25) !important; }
body.mod-skin-dark .amort-filter-group .btn-outline-secondary:hover { background: rgba(138,151,141,0.20) !important; }
body.mod-skin-dark .amort-filter-group .btn-secondary:hover         { background: rgba(138,151,141,0.75) !important; }

/* ── Navegación paginación amortizaciones: "1 / 25" (btn-light disabled) fondo oscuro ── */
body.mod-skin-dark .amortizacion-detail .btn-light.disabled,
body.mod-skin-dark .amortizacion-detail .btn-light:disabled { background-color: var(--avz-surface-2) !important; border-color: var(--avz-line) !important; color: var(--avz-ink) !important; }

/* ── Module hub: search bar y panel headers en dark mode ── */
body.mod-skin-dark .input-group.input-group-lg .form-control.shadow-inset-2 {
    background: var(--avz-surface) !important;
    color: var(--avz-ink) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .input-group.input-group-lg .input-group-append .input-group-text {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .filter-section .panel {
    box-shadow: 0 2px 14px rgba(0,0,0,.25) !important;
}
body.mod-skin-dark .filter-section .panel-hdr {
    background: rgba(141, 192, 67, .10) !important;
    border-bottom-color: rgba(141, 192, 67, .22) !important;
}
body.mod-skin-dark .nav-menu.nav-menu-compact li.shadow-2 {
    border-bottom-color: var(--avz-line) !important;
}
body.mod-skin-dark .avz-env-badge {
    background: rgba(141, 192, 67, .15);
    border-color: rgba(141, 192, 67, .35);
    color: var(--avz-brand-strong);
}

/* Fondo oscuro para PlanContableSelect en dark mode (base, sin required) */
body.mod-skin-dark .plan-contable-select {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .plan-contable-input {
    color: var(--avz-ink) !important;
    background: transparent !important;
}
body.mod-skin-dark .plan-contable-input::placeholder {
    color: var(--avz-ink-3) !important;
}
/* Campos requeridos: ámbar consistente (#d97706) — va DESPUÉS de la base para ganar */
body.mod-skin-dark .required-field,
body.mod-skin-dark .required-field.p-dropdown,
body.mod-skin-dark .required-field .p-dropdown,
body.mod-skin-dark .required-field.p-inputtext,
body.mod-skin-dark .required-field.p-calendar .p-inputtext,
body.mod-skin-dark .required-field.p-inputnumber input.p-inputtext,
body.mod-skin-dark .plan-contable-select.required-field {
    border-color: #d97706 !important;
}
body.mod-skin-dark .required-field.p-dropdown .p-dropdown-trigger,
body.mod-skin-dark .required-field .p-dropdown .p-dropdown-trigger,
body.mod-skin-dark .plan-contable-select.required-field .plan-contable-icons {
    border-left-color: #d97706 !important;
}
/* Switch en dark mode: rojo más suave en OFF, verde marca en ON */
body.mod-skin-dark .switch {
    --switch-bg: #b02a37;
    --switch-checked-bg: #4d8022;
    --circle-bg: #e8e8e8;
    --circle-shadow: 0 1px 3px rgba(0,0,0,.5);
}
/* Evitar que la regla genérica .slider sobreescriba la pista del custom switch */
body.mod-skin-dark .switch .slider {
    background-color: var(--switch-bg) !important;
}
body.mod-skin-dark .switch input:checked + .slider {
    background-color: var(--switch-checked-bg) !important;
}
body.mod-skin-dark .switch .slider::before {
    background: var(--switch-bg) !important;
}
body.mod-skin-dark .switch input:checked + .slider::before {
    background: var(--switch-checked-bg) !important;
}
/* ── FlatPickr Presets en dark mode ── */
body.mod-skin-dark .flatpickr-presets {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .flatpickr-presets__title {
    background: linear-gradient(to bottom, var(--avz-surface-2), var(--avz-surface)) !important;
    color: var(--avz-ink) !important;
    border-color: var(--avz-brand) !important;
}
body.mod-skin-dark .flatpickr-presets__year-section.is-current-year {
    background: linear-gradient(to right, rgba(167,210,101,.12), rgba(167,210,101,.06)) !important;
    border-left-color: var(--avz-brand-strong) !important;
    border-bottom-color: var(--avz-line) !important;
}
body.mod-skin-dark .flatpickr-presets__year-section.is-past-year {
    background: var(--avz-surface-2) !important;
    border-left-color: var(--avz-ink-3) !important;
    border-bottom-color: var(--avz-line) !important;
}
body.mod-skin-dark .flatpickr-presets__year-title {
    background: rgba(255,255,255,.06) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-brand-strong) !important;
}
body.mod-skin-dark .flatpickr-presets__year-section.is-past-year .flatpickr-presets__year-title {
    color: var(--avz-ink-3) !important;
}
/* Botones año actual en dark */
body.mod-skin-dark .flatpickr-presets__btn.is-current-year.flatpickr-presets__btn--year {
    background: #2d5a14 !important; color: #d4edba !important; border-color: #4d8022 !important;
}
body.mod-skin-dark .flatpickr-presets__btn.is-current-year.flatpickr-presets__btn--semester {
    background: #253d14 !important; color: #b8d98a !important; border-color: #3a5c1c !important;
}
body.mod-skin-dark .flatpickr-presets__btn.is-current-year.flatpickr-presets__btn--quarter {
    background: #1e3010 !important; color: #a7d265 !important; border-color: #2e4a18 !important;
}
body.mod-skin-dark .flatpickr-presets__btn.is-current-year.flatpickr-presets__btn--month {
    background: var(--avz-surface-2) !important; color: var(--avz-ink) !important; border-color: var(--avz-line) !important;
}
/* Botones años anteriores en dark */
body.mod-skin-dark .flatpickr-presets__btn.is-past-year.flatpickr-presets__btn--year {
    background: #2a2a2a !important; color: #ccc !important; border-color: #444 !important;
}
body.mod-skin-dark .flatpickr-presets__btn.is-past-year.flatpickr-presets__btn--semester {
    background: #252525 !important; color: #aaa !important; border-color: #3a3a3a !important;
}
body.mod-skin-dark .flatpickr-presets__btn.is-past-year.flatpickr-presets__btn--quarter {
    background: #222 !important; color: #999 !important; border-color: #333 !important;
}
body.mod-skin-dark .flatpickr-presets__btn.is-past-year.flatpickr-presets__btn--month {
    background: var(--avz-surface) !important; color: var(--avz-ink-3) !important; border-color: var(--avz-line) !important;
}
/* ── FlatPickr Calendar en dark mode ── */
body.mod-skin-dark .flatpickr-calendar {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.5) !important;
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .flatpickr-calendar::before,
body.mod-skin-dark .flatpickr-calendar::after {
    border-bottom-color: var(--avz-line) !important;
}
/* Header mes/año */
body.mod-skin-dark .flatpickr-months {
    background: var(--avz-surface) !important;
    border-bottom: 1px solid var(--avz-line) !important;
}
body.mod-skin-dark .flatpickr-month {
    background: var(--avz-surface) !important;
    color: var(--avz-ink) !important;
    fill: var(--avz-ink) !important;
}
body.mod-skin-dark .flatpickr-prev-month,
body.mod-skin-dark .flatpickr-next-month {
    fill: var(--avz-ink-3) !important;
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .flatpickr-prev-month:hover svg,
body.mod-skin-dark .flatpickr-next-month:hover svg {
    fill: var(--avz-brand-strong) !important;
}
body.mod-skin-dark .flatpickr-current-month input.cur-year,
body.mod-skin-dark .flatpickr-current-month .flatpickr-monthDropdownContainer select {
    color: var(--avz-ink) !important;
    background: transparent !important;
}
body.mod-skin-dark .numInputWrapper:hover {
    background: rgba(255,255,255,.05) !important;
}
body.mod-skin-dark .numInputWrapper span {
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .numInputWrapper span svg {
    fill: var(--avz-ink-3) !important;
}
/* Cabecera días de la semana */
body.mod-skin-dark .flatpickr-weekdays {
    background: var(--avz-surface) !important;
}
body.mod-skin-dark span.flatpickr-weekday {
    background: var(--avz-surface) !important;
    color: var(--avz-ink-3) !important;
}
/* Días */
body.mod-skin-dark .flatpickr-days {
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .dayContainer {
    background: var(--avz-surface-2) !important;
}
body.mod-skin-dark .flatpickr-day {
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .flatpickr-day:hover,
body.mod-skin-dark .flatpickr-day:focus {
    background: var(--avz-line) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .flatpickr-day.today {
    border-color: var(--avz-brand-strong) !important;
    color: var(--avz-brand-strong) !important;
}
body.mod-skin-dark .flatpickr-day.today:hover {
    background: var(--avz-brand-strong) !important;
    color: #fff !important;
}
body.mod-skin-dark .flatpickr-day.selected,
body.mod-skin-dark .flatpickr-day.startRange,
body.mod-skin-dark .flatpickr-day.endRange {
    background: var(--avz-brand-strong) !important;
    border-color: var(--avz-brand-strong) !important;
    color: #fff !important;
}
body.mod-skin-dark .flatpickr-day.inRange {
    background: rgba(167,210,101,.25) !important;
    border-color: rgba(167,210,101,.15) !important;
    color: var(--avz-ink) !important;
    box-shadow: -5px 0 0 rgba(167,210,101,.25), 5px 0 0 rgba(167,210,101,.25) !important;
}
body.mod-skin-dark .flatpickr-day.prevMonthDay,
body.mod-skin-dark .flatpickr-day.nextMonthDay {
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .flatpickr-day.flatpickr-disabled,
body.mod-skin-dark .flatpickr-day.flatpickr-disabled:hover {
    color: var(--avz-ink-3) !important;
    opacity: 0.4;
}

/* ── Select2: el contenedor no debe pintarse ──
   Reglas antiguas le daban fondo al .select2-container (rectángulo sin
   radio) y asomaba por detrás de la selección redondeada. El fondo lo
   lleva únicamente .select2-selection. */
body.mod-skin-dark .select2-container {
    background: transparent !important;
}

/* ── Paginación (DataTables/Bootstrap) – dark mode ──
   Solo los números en blanco; Anterior/Siguiente conservan su estilo */
body.mod-skin-dark .pagination .page-item:not(.previous):not(.next) .page-link {
    color: #fff !important;
}
body.mod-skin-dark .pagination .page-item:not(.previous):not(.next) .page-link:hover {
    background: var(--avz-surface-2) !important;
    color: #fff !important;
}
body.mod-skin-dark .pagination .page-item.active .page-link {
    background: var(--avz-brand) !important;
    border-color: var(--avz-brand) !important;
    /* Tinta on-brand: el blanco sobre el verde de marca se queda en 2.15:1 */
    color: var(--avz-on-brand) !important;
}

/* ── Panel header subheader-block (contador claves) – dark mode ── */
body.mod-skin-dark #dt-header[style*="background-color"] .subheader-block {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
}
body.mod-skin-dark #dt-header[style*="background-color"] .subheader-block span {
    color: #fff !important;
}

/* ── Bootstrap nav-tabs active en verde (sobreescribe skin-master) ── */
body.mod-skin-dark .nav-tabs .nav-link {
    color: var(--avz-ink-3) !important;
    border-bottom-color: transparent !important;
    background: transparent !important;
}
body.mod-skin-dark .nav-tabs .nav-link:hover {
    color: var(--avz-ink-2) !important;
    border-bottom-color: var(--avz-line-strong) !important;
}
body.mod-skin-dark .nav-tabs .nav-link.active {
    color: var(--avz-brand-strong) !important;
    background: transparent !important;
    border-bottom: 2.5px solid var(--avz-brand) !important;
}

/* ── Datos IRPF / Modelo 145 – dark mode ── */
body.mod-skin-dark .modelo145-form-wrap .card,
body.mod-skin-dark .modelo145-info-card,
body.mod-skin-dark .modelo145-section-card {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .modelo145-form-wrap .card-body {
    background: var(--avz-surface-2) !important;
}
body.mod-skin-dark .modelo145-form-wrap .card-header,
body.mod-skin-dark .modelo145-section-header {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .modelo145-info-label {
    color: var(--avz-ink-3) !important;
}
body.mod-skin-dark .modelo145-info-value {
    color: var(--avz-ink) !important;
}
body.mod-skin-dark .modelo145-info-icon {
    color: var(--avz-ink-3) !important;
}
/* Inline-styled familiar rows */
body.mod-skin-dark .modelo145-familiar-row {
    background-color: var(--avz-surface) !important;
}
body.mod-skin-dark .modelo145-familiar-row.border-info {
    border-color: rgba(23, 162, 184, 0.45) !important;
}
body.mod-skin-dark .modelo145-familiar-row.border-warning {
    border-color: rgba(255, 193, 7, 0.45) !important;
}

/* ── Acumulados IRPF mes – dark mode ── */
body.mod-skin-dark .acumulados-irpf-form-wrap .card,
body.mod-skin-dark .acumulados-irpf-card {
    background: var(--avz-surface-2) !important;
    border-color: var(--avz-line) !important;
}
body.mod-skin-dark .acumulados-irpf-form-wrap .card-body {
    background: var(--avz-surface-2) !important;
}
body.mod-skin-dark .acumulados-irpf-form-wrap .card-header,
body.mod-skin-dark .acumulados-irpf-section-header {
    background: var(--avz-surface) !important;
    border-color: var(--avz-line) !important;
    color: var(--avz-ink) !important;
}
