.a11y-skip-link {
    position: absolute;
    top: -100px;
    left: 10px;
    background: #000000;
    color: #ffff00;
    padding: 10px 16px;
    z-index: 9999;
    border: 2px solid #ffff00;
    text-decoration: none;
    font-weight: bold;
    border-radius: 6px;
    transition: top 0.2s ease-in-out;
}
.a11y-skip-link:focus {
    top: 10px;
}

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

html[data-a11y-fontsize="large"] {
    font-size: 115% !important;
}
html[data-a11y-fontsize="xlarge"] {
    font-size: 130% !important;
}

/* ==========================================================================
   MODO ALTO CONTRASTE INTEGRAL (WCAG 2.1 AAA / UNE-EN 301549)
   Fondo negro puro (#000000), textos en amarillo (#ffff00) y blanco (#ffffff)
   ========================================================================== */

/* 1. Anulación de variables CSS corporativas hacia negro absoluto y amarillo */
html[data-a11y-contrast="high"] {
    --deca-body-bg: #000000 !important;
    --deca-card-bg: #000000 !important;
    --deca-card-header: #000000 !important;
    --deca-navbar-bg: #000000 !important;
    --deca-border: #ffff00 !important;
    --deca-border-light: #ffff00 !important;
    --deca-primary: #ffff00 !important;
    --deca-accent: #00ffff !important;
    --deca-text: #ffffff !important;
    --deca-text-secondary: #ffffff !important;
    --deca-text-muted: #e2e8f0 !important;
    --deca-input-bg: #000000 !important;
    --deca-input-border: #ffff00 !important;
    --deca-input-color: #ffffff !important;
    --deca-table-th-bg: #000000 !important;
    --deca-table-th-color: #ffff00 !important;
    --deca-table-border: #ffff00 !important;
    --deca-table-hover: #1a1a1a !important;
    --deca-panel-bg: #000000 !important;
    --deca-landing-card: #000000 !important;
    --deca-landing-card-text: #ffffff !important;
    --deca-page-link-bg: #000000 !important;
    --bs-body-bg: #000000 !important;
    --bs-body-color: #ffffff !important;
    --bs-dark-rgb: 0, 0, 0 !important;
}

/* 2. Fondo negro puro universal para contenedores, tarjetas, modales y paneles */
html[data-a11y-contrast="high"],
html[data-a11y-contrast="high"] body,
html[data-a11y-contrast="high"] main,
html[data-a11y-contrast="high"] header,
html[data-a11y-contrast="high"] footer,
html[data-a11y-contrast="high"] nav,
html[data-a11y-contrast="high"] .navbar,
html[data-a11y-contrast="high"] .navbar-deca,
html[data-a11y-contrast="high"] .landing-wrapper,
html[data-a11y-contrast="high"] .landing-card,
html[data-a11y-contrast="high"] .card,
html[data-a11y-contrast="high"] .card-deca,
html[data-a11y-contrast="high"] .card-header,
html[data-a11y-contrast="high"] .card-body,
html[data-a11y-contrast="high"] .card-footer,
html[data-a11y-contrast="high"] .glass-panel,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel,
html[data-a11y-contrast="high"] .modal-content,
html[data-a11y-contrast="high"] .modal-header,
html[data-a11y-contrast="high"] .modal-body,
html[data-a11y-contrast="high"] .modal-footer,
html[data-a11y-contrast="high"] .offcanvas,
html[data-a11y-contrast="high"] .offcanvas-header,
html[data-a11y-contrast="high"] .offcanvas-body,
html[data-a11y-contrast="high"] .offcanvas-deca,
html[data-a11y-contrast="high"] #offcanvasAccessibility,
html[data-a11y-contrast="high"] #offcanvasAccessibility .offcanvas-body,
html[data-a11y-contrast="high"] #offcanvasAccessibility .bg-dark,
html[data-a11y-contrast="high"] #offcanvasAccessibility div,
html[data-a11y-contrast="high"] .dropdown-menu,
html[data-a11y-contrast="high"] .dropdown-item,
html[data-a11y-contrast="high"] .alert,
html[data-a11y-contrast="high"] .toast,
html[data-a11y-contrast="high"] .toast-header,
html[data-a11y-contrast="high"] .toast-body,
html[data-a11y-contrast="high"] .table,
html[data-a11y-contrast="high"] .table-responsive,
html[data-a11y-contrast="high"] .table > :not(caption) > * > *,
html[data-a11y-contrast="high"] .list-group,
html[data-a11y-contrast="high"] .list-group-item,
html[data-a11y-contrast="high"] .accordion-item,
html[data-a11y-contrast="high"] .accordion-button,
html[data-a11y-contrast="high"] .accordion-body,
html[data-a11y-contrast="high"] .bg-dark,
html[data-a11y-contrast="high"] .bg-light,
html[data-a11y-contrast="high"] .bg-white:not(:has(img[alt*="QR"])),
html[data-a11y-contrast="high"] .bg-secondary,
html[data-a11y-contrast="high"] [class*="bg-opacity-"],
html[data-a11y-contrast="high"][data-theme="light"] .bg-dark,
html[data-a11y-contrast="high"][data-theme="light"] .bg-light,
html[data-a11y-contrast="high"][data-theme="light"] [class*="bg-opacity-"],
html[data-a11y-contrast="high"][data-theme="dark"] .bg-dark,
html[data-a11y-contrast="high"][data-theme="dark"] [class*="bg-opacity-"],
html[data-a11y-contrast="high"] .input-group-text,
html[data-a11y-contrast="high"] #pwaInstallBanner,
html[data-a11y-contrast="high"] #cookieConsentBanner,
html[data-a11y-contrast="high"] pre,
html[data-a11y-contrast="high"] code {
    background: #000000 !important;
    background-color: #000000 !important;
    background-image: none !important;
    color: #ffffff !important;
    border-color: #ffff00 !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

/* 3. Bordes de Alto Contraste en recuadros principales */
html[data-a11y-contrast="high"] .card,
html[data-a11y-contrast="high"] .card-deca,
html[data-a11y-contrast="high"] .landing-card,
html[data-a11y-contrast="high"] .glass-panel,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel,
html[data-a11y-contrast="high"] .modal-content,
html[data-a11y-contrast="high"] .offcanvas,
html[data-a11y-contrast="high"] #offcanvasAccessibility,
html[data-a11y-contrast="high"] .dropdown-menu,
html[data-a11y-contrast="high"] .toast,
html[data-a11y-contrast="high"] #pwaInstallBanner,
html[data-a11y-contrast="high"] #cookieConsentBanner,
html[data-a11y-contrast="high"] .border,
html[data-a11y-contrast="high"] .border-secondary,
html[data-a11y-contrast="high"] .border-dark,
html[data-a11y-contrast="high"] .border-light,
html[data-a11y-contrast="high"] .border-success,
html[data-a11y-contrast="high"] .border-info,
html[data-a11y-contrast="high"] .border-warning {
    border: 2px solid #ffff00 !important;
}

/* 3.1. Glass Panels y Cabeceras / Títulos de Tablas y Paneles en Alto Contraste */
html[data-a11y-contrast="high"] .glass-panel,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel {
    background: #000000 !important;
    background-color: #000000 !important;
    background-image: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 2px solid #ffff00 !important;
    box-shadow: none !important;
    color: #ffffff !important;
}

/* Bordes acentuados de los KPI del Dashboard */
html[data-a11y-contrast="high"] .glass-panel.border-start,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel.border-start,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel.border-start {
    border-left: 4px solid #ffff00 !important;
    border-top: 2px solid #ffff00 !important;
    border-right: 2px solid #ffff00 !important;
    border-bottom: 2px solid #ffff00 !important;
}

/* Cabeceras y títulos de las tablas y paneles (ej. Historial, Supervisión, Directorio, Logs, Últimos Documentos) */
html[data-a11y-contrast="high"] .glass-panel > div.border-bottom,
html[data-a11y-contrast="high"] .glass-panel > div:first-child,
html[data-a11y-contrast="high"] .glass-panel .border-bottom,
html[data-a11y-contrast="high"] .glass-panel .border-top,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel > div.border-bottom,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel > div:first-child,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .border-bottom,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .border-top,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel > div.border-bottom,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel > div:first-child,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .border-bottom,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .border-top,
html[data-a11y-contrast="high"] .card-header,
html[data-a11y-contrast="high"][data-theme="light"] .card-header,
html[data-a11y-contrast="high"][data-theme="dark"] .card-header,
html[data-a11y-contrast="high"] .card-deca .card-header,
html[data-a11y-contrast="high"][data-theme="light"] .card-deca .card-header,
html[data-a11y-contrast="high"][data-theme="dark"] .card-deca .card-header {
    background: #000000 !important;
    background-color: #000000 !important;
    background-image: none !important;
    border-bottom: 2px solid #ffff00 !important;
    color: #ffff00 !important;
}

/* Títulos h1-h6 e iconos de títulos en cabeceras de tablas y glass-panels */
html[data-a11y-contrast="high"] .glass-panel h1,
html[data-a11y-contrast="high"] .glass-panel h2,
html[data-a11y-contrast="high"] .glass-panel h3,
html[data-a11y-contrast="high"] .glass-panel h4,
html[data-a11y-contrast="high"] .glass-panel h5,
html[data-a11y-contrast="high"] .glass-panel h6,
html[data-a11y-contrast="high"] .glass-panel h5 *,
html[data-a11y-contrast="high"] .glass-panel h4 *,
html[data-a11y-contrast="high"] .glass-panel .card-title,
html[data-a11y-contrast="high"] .glass-panel .fw-bold,
html[data-a11y-contrast="high"] .card-header h1,
html[data-a11y-contrast="high"] .card-header h2,
html[data-a11y-contrast="high"] .card-header h3,
html[data-a11y-contrast="high"] .card-header h4,
html[data-a11y-contrast="high"] .card-header h5,
html[data-a11y-contrast="high"] .card-header h6,
html[data-a11y-contrast="high"] .card-header .card-title,
html[data-a11y-contrast="high"] .card-header i,
html[data-a11y-contrast="high"] .glass-panel i {
    color: #ffff00 !important;
}

/* Subtítulos de cabecera de tabla y descripciones secundarias */
html[data-a11y-contrast="high"] .glass-panel small,
html[data-a11y-contrast="high"] .glass-panel .text-secondary,
html[data-a11y-contrast="high"] .glass-panel .text-muted,
html[data-a11y-contrast="high"] .card-header small,
html[data-a11y-contrast="high"] .card-header .text-secondary,
html[data-a11y-contrast="high"] .card-header .text-muted {
    color: #ffffff !important;
}

/* Buscadores predictivos, inputs y grupos de búsqueda integrados en cabeceras de tabla */
html[data-a11y-contrast="high"] .glass-panel .input-group,
html[data-a11y-contrast="high"] .glass-panel .input-group.bg-dark,
html[data-a11y-contrast="high"] .glass-panel .search-group-referente,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .input-group,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .input-group.bg-dark,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .search-group-referente,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .input-group,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .input-group.bg-dark,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .search-group-referente {
    background: #000000 !important;
    background-color: #000000 !important;
    border: 2px solid #ffff00 !important;
    color: #ffffff !important;
}

html[data-a11y-contrast="high"] .glass-panel .input-group input,
html[data-a11y-contrast="high"] .glass-panel .input-group-text,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .input-group input,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .input-group-text,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .input-group input,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .input-group-text {
    background: #000000 !important;
    background-color: #000000 !important;
    color: #ffffff !important;
    border: none !important;
}

/* Botones de acción en cabecera de tabla (CSV, PDF, Imprimir, Filtros) */
html[data-a11y-contrast="high"] .glass-panel .btn-outline-light,
html[data-a11y-contrast="high"] .glass-panel .btn-outline-secondary,
html[data-a11y-contrast="high"] .glass-panel .btn-outline-info,
html[data-a11y-contrast="high"] .glass-panel .btn-outline-danger,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .btn-outline-light,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .btn-outline-secondary,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .btn-outline-info,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .btn-outline-light,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .btn-outline-secondary,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .btn-outline-info {
    background: #000000 !important;
    background-color: #000000 !important;
    border: 2px solid #ffff00 !important;
    color: #ffff00 !important;
}

html[data-a11y-contrast="high"] .glass-panel .btn-outline-light:hover,
html[data-a11y-contrast="high"] .glass-panel .btn-outline-secondary:hover,
html[data-a11y-contrast="high"] .glass-panel .btn-outline-info:hover,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .btn-outline-light:hover,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .btn-outline-light:hover {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000000 !important;
}

/* Excepción para contenedor de imagen QR: mantener fondo blanco para que sea escaneable por lectores */
html[data-a11y-contrast="high"] .card:has(img[alt*="QR"]) .bg-white,
html[data-a11y-contrast="high"] .bg-white:has(img[alt*="QR"]),
html[data-a11y-contrast="high"] img[alt*="QR"] {
    background: #ffffff !important;
    background-color: #ffffff !important;
}

/* 4. Panel de Accesibilidad específico */
html[data-a11y-contrast="high"] #offcanvasAccessibility .bg-success {
    background-color: #ffff00 !important;
    color: #000000 !important;
}
html[data-a11y-contrast="high"] #offcanvasAccessibility .text-success {
    color: #ffff00 !important;
}
html[data-a11y-contrast="high"] #offcanvasAccessibility .btn-close,
html[data-a11y-contrast="high"] .modal .btn-close {
    filter: invert(1) brightness(200%) !important;
    opacity: 1 !important;
}

/* 5. Títulos y encabezados en amarillo brillante */
html[data-a11y-contrast="high"] h1,
html[data-a11y-contrast="high"] h2,
html[data-a11y-contrast="high"] h3,
html[data-a11y-contrast="high"] h4,
html[data-a11y-contrast="high"] h5,
html[data-a11y-contrast="high"] h6,
html[data-a11y-contrast="high"] .fw-bold,
html[data-a11y-contrast="high"] strong,
html[data-a11y-contrast="high"] .card-title,
html[data-a11y-contrast="high"] .offcanvas-title,
html[data-a11y-contrast="high"] .modal-title,
html[data-a11y-contrast="high"] .text-info,
html[data-a11y-contrast="high"] .text-primary,
html[data-a11y-contrast="high"] .text-warning,
html[data-a11y-contrast="high"] .text-success,
html[data-a11y-contrast="high"] .text-danger,
html[data-a11y-contrast="high"] .navbar-brand,
html[data-a11y-contrast="high"] .navbar-brand-deca,
html[data-a11y-contrast="high"] .navbar-brand-deca span,
html[data-a11y-contrast="high"] .modal-alert-title,
html[data-a11y-contrast="high"] .modal-alert-highlight {
    color: #ffff00 !important;
}

/* 6. Textos descriptivos y etiquetas en blanco puro */
html[data-a11y-contrast="high"] p,
html[data-a11y-contrast="high"] span:not(.badge),
html[data-a11y-contrast="high"] label,
html[data-a11y-contrast="high"] td,
html[data-a11y-contrast="high"] li,
html[data-a11y-contrast="high"] .text-secondary,
html[data-a11y-contrast="high"] .text-muted,
html[data-a11y-contrast="high"] .text-light,
html[data-a11y-contrast="high"] .form-text,
html[data-a11y-contrast="high"] .modal-alert-text {
    color: #ffffff !important;
}

/* 7. Enlaces interactivos en cian accesible */
html[data-a11y-contrast="high"] a {
    color: #00ffff !important;
    text-decoration: underline !important;
}

/* 8. Formularios e Inputs */
html[data-a11y-contrast="high"] .form-control,
html[data-a11y-contrast="high"] .form-select,
html[data-a11y-contrast="high"] .form-control-deca,
html[data-a11y-contrast="high"] .form-select-deca,
html[data-a11y-contrast="high"] input:not([type="checkbox"]):not([type="radio"]),
html[data-a11y-contrast="high"] textarea,
html[data-a11y-contrast="high"] select {
    background: #000000 !important;
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
}

html[data-a11y-contrast="high"] .form-control:focus,
html[data-a11y-contrast="high"] .form-select:focus,
html[data-a11y-contrast="high"] input:focus,
html[data-a11y-contrast="high"] textarea:focus,
html[data-a11y-contrast="high"] select:focus {
    border-color: #ffff00 !important;
    box-shadow: 0 0 0 3px #ffff00 !important;
}

/* 8.1. Placeholders en blanco puro en todos los navegadores (bloques separados para evitar descarte por selector no soportado) */
html[data-a11y-contrast="high"] input::placeholder,
html[data-a11y-contrast="high"] textarea::placeholder,
html[data-a11y-contrast="high"] select::placeholder,
html[data-a11y-contrast="high"] .form-control::placeholder,
html[data-a11y-contrast="high"] .form-control-deca::placeholder,
html[data-a11y-contrast="high"] .glass-panel input::placeholder,
html[data-a11y-contrast="high"] .glass-panel .input-group input::placeholder,
html[data-a11y-contrast="high"] .search-group-referente input::placeholder,
html[data-a11y-contrast="high"] ::placeholder,
html[data-a11y-contrast="high"][data-theme="light"] input::placeholder,
html[data-a11y-contrast="high"][data-theme="light"] textarea::placeholder,
html[data-a11y-contrast="high"][data-theme="light"] select::placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .form-control::placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .form-control-deca::placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel input::placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .input-group input::placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .search-group-referente input::placeholder,
html[data-a11y-contrast="high"][data-theme="light"] ::placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] input::placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] textarea::placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] select::placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .form-control::placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .form-control-deca::placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel input::placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .input-group input::placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .search-group-referente input::placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] ::placeholder {
    color: #ffffff !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #ffffff !important;
}

html[data-a11y-contrast="high"] input::-webkit-input-placeholder,
html[data-a11y-contrast="high"] textarea::-webkit-input-placeholder,
html[data-a11y-contrast="high"] select::-webkit-input-placeholder,
html[data-a11y-contrast="high"] .form-control::-webkit-input-placeholder,
html[data-a11y-contrast="high"] .form-control-deca::-webkit-input-placeholder,
html[data-a11y-contrast="high"] .glass-panel input::-webkit-input-placeholder,
html[data-a11y-contrast="high"] .glass-panel .input-group input::-webkit-input-placeholder,
html[data-a11y-contrast="high"] .search-group-referente input::-webkit-input-placeholder,
html[data-a11y-contrast="high"] ::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] input::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] textarea::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] select::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .form-control::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .form-control-deca::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel input::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .input-group input::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .search-group-referente input::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] ::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] input::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] textarea::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] select::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .form-control::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .form-control-deca::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel input::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .input-group input::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .search-group-referente input::-webkit-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] ::-webkit-input-placeholder {
    color: #ffffff !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #ffffff !important;
}

html[data-a11y-contrast="high"] input::-moz-placeholder,
html[data-a11y-contrast="high"] textarea::-moz-placeholder,
html[data-a11y-contrast="high"] select::-moz-placeholder,
html[data-a11y-contrast="high"] .form-control::-moz-placeholder,
html[data-a11y-contrast="high"] .form-control-deca::-moz-placeholder,
html[data-a11y-contrast="high"] .glass-panel input::-moz-placeholder,
html[data-a11y-contrast="high"] .glass-panel .input-group input::-moz-placeholder,
html[data-a11y-contrast="high"] .search-group-referente input::-moz-placeholder,
html[data-a11y-contrast="high"] ::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] input::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] textarea::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] select::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .form-control::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .form-control-deca::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel input::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .input-group input::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .search-group-referente input::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] ::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] input::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] textarea::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] select::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .form-control::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .form-control-deca::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel input::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .input-group input::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .search-group-referente input::-moz-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] ::-moz-placeholder {
    color: #ffffff !important;
    opacity: 1 !important;
}

html[data-a11y-contrast="high"] input:-ms-input-placeholder,
html[data-a11y-contrast="high"] textarea:-ms-input-placeholder,
html[data-a11y-contrast="high"] select:-ms-input-placeholder,
html[data-a11y-contrast="high"] .form-control:-ms-input-placeholder,
html[data-a11y-contrast="high"] .form-control-deca:-ms-input-placeholder,
html[data-a11y-contrast="high"] .glass-panel input:-ms-input-placeholder,
html[data-a11y-contrast="high"] .glass-panel .input-group input:-ms-input-placeholder,
html[data-a11y-contrast="high"] .search-group-referente input:-ms-input-placeholder,
html[data-a11y-contrast="high"] :-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] input:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] textarea:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] select:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .form-control:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .form-control-deca:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel input:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .input-group input:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] .search-group-referente input:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="light"] :-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] input:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] textarea:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] select:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .form-control:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .form-control-deca:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel input:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .input-group input:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] .search-group-referente input:-ms-input-placeholder,
html[data-a11y-contrast="high"][data-theme="dark"] :-ms-input-placeholder {
    color: #ffffff !important;
    opacity: 1 !important;
}

/* 8.2. Botón 'Seleccionar archivo' (file selector button) en campos tipo file */
html[data-a11y-contrast="high"] input[type="file"]::file-selector-button,
html[data-a11y-contrast="high"] .form-control[type="file"]::file-selector-button,
html[data-a11y-contrast="high"] .form-control-deca[type="file"]::file-selector-button,
html[data-a11y-contrast="high"][data-theme="light"] input[type="file"]::file-selector-button,
html[data-a11y-contrast="high"][data-theme="dark"] input[type="file"]::file-selector-button,
html[data-a11y-contrast="high"] input[type="file"]::-webkit-file-upload-button,
html[data-a11y-contrast="high"][data-theme="light"] input[type="file"]::-webkit-file-upload-button,
html[data-a11y-contrast="high"][data-theme="dark"] input[type="file"]::-webkit-file-upload-button {
    background: #000000 !important;
    background-color: #000000 !important;
    color: #ffff00 !important;
    border: none !important;
    border-right: 2px solid #ffff00 !important;
    font-weight: 700 !important;
    cursor: pointer !important;
}

html[data-a11y-contrast="high"] input[type="file"]::file-selector-button:hover,
html[data-a11y-contrast="high"] input[type="file"]::-webkit-file-upload-button:hover {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000000 !important;
}

/* Switches y checkboxes */
html[data-a11y-contrast="high"] .form-check-input {
    background-color: #000000 !important;
    border: 2px solid #ffffff !important;
}
html[data-a11y-contrast="high"] .form-check-input:checked {
    background-color: #ffff00 !important;
    border-color: #ffff00 !important;
}

/* 9. Botones con contraste estricto garantizado */
html[data-a11y-contrast="high"] .btn {
    background: #000000 !important;
    background-color: #000000 !important;
    color: #ffff00 !important;
    border: 2px solid #ffff00 !important;
    font-weight: 700 !important;
    box-shadow: none !important;
}

html[data-a11y-contrast="high"] .btn:not(.btn-primary):not(.btn-warning) *,
html[data-a11y-contrast="high"] .btn:not(.btn-primary):not(.btn-warning) i,
html[data-a11y-contrast="high"] .btn:not(.btn-primary):not(.btn-warning) span {
    color: #ffff00 !important;
}

html[data-a11y-contrast="high"] .btn:not(.btn-primary):not(.btn-warning):hover,
html[data-a11y-contrast="high"] .btn:not(.btn-primary):not(.btn-warning):focus {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000000 !important;
}

html[data-a11y-contrast="high"] .btn:not(.btn-primary):not(.btn-warning):hover *,
html[data-a11y-contrast="high"] .btn:not(.btn-primary):not(.btn-warning):hover i,
html[data-a11y-contrast="high"] .btn:not(.btn-primary):not(.btn-warning):focus *,
html[data-a11y-contrast="high"] .btn:not(.btn-primary):not(.btn-warning):focus i {
    color: #000000 !important;
}

/* Botones principales de acción destacada (.btn-primary y .btn-warning) */
html[data-a11y-contrast="high"] .btn-primary,
html[data-a11y-contrast="high"] .btn-warning,
html[data-a11y-contrast="high"][data-theme="light"] .btn-primary,
html[data-a11y-contrast="high"][data-theme="dark"] .btn-primary,
html[data-a11y-contrast="high"][data-theme="light"] .btn-warning,
html[data-a11y-contrast="high"][data-theme="dark"] .btn-warning {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000000 !important;
    border: 2px solid #ffffff !important;
    font-weight: 800 !important;
}

html[data-a11y-contrast="high"] .btn-primary *,
html[data-a11y-contrast="high"] .btn-primary i,
html[data-a11y-contrast="high"] .btn-primary span,
html[data-a11y-contrast="high"] .btn-primary strong,
html[data-a11y-contrast="high"] .btn-warning *,
html[data-a11y-contrast="high"] .btn-warning i,
html[data-a11y-contrast="high"] .btn-warning span,
html[data-a11y-contrast="high"][data-theme="light"] .btn-primary *,
html[data-a11y-contrast="high"][data-theme="dark"] .btn-primary *,
html[data-a11y-contrast="high"][data-theme="light"] .btn-warning *,
html[data-a11y-contrast="high"][data-theme="dark"] .btn-warning * {
    color: #000000 !important;
}

html[data-a11y-contrast="high"] .btn-primary:hover,
html[data-a11y-contrast="high"] .btn-primary:focus,
html[data-a11y-contrast="high"] .btn-warning:hover,
html[data-a11y-contrast="high"] .btn-warning:focus {
    background: #000000 !important;
    background-color: #000000 !important;
    color: #ffff00 !important;
    border: 2px solid #ffff00 !important;
}

html[data-a11y-contrast="high"] .btn-primary:hover *,
html[data-a11y-contrast="high"] .btn-primary:hover i,
html[data-a11y-contrast="high"] .btn-primary:focus *,
html[data-a11y-contrast="high"] .btn-primary:focus i,
html[data-a11y-contrast="high"] .btn-warning:hover *,
html[data-a11y-contrast="high"] .btn-warning:hover i,
html[data-a11y-contrast="high"] .btn-warning:focus *,
html[data-a11y-contrast="high"] .btn-warning:focus i {
    color: #ffff00 !important;
}

/* 9.1. Paneles Especiales: SMTP, Banner PWA, Notificaciones, Summernote y Plantillas */

/* Panel 'Ajustes de Conexión SMTP' */
html[data-a11y-contrast="high"] #smtpConfigSection,
html[data-a11y-contrast="high"][data-theme="light"] #smtpConfigSection,
html[data-a11y-contrast="high"][data-theme="dark"] #smtpConfigSection {
    background: #000000 !important;
    background-color: #000000 !important;
    border: 2px solid #ffff00 !important;
    color: #ffffff !important;
}

html[data-a11y-contrast="high"] #smtpConfigSection h6,
html[data-a11y-contrast="high"] #smtpConfigSection h6 i {
    color: #ffff00 !important;
}

html[data-a11y-contrast="high"] #smtpConfigSection .text-secondary,
html[data-a11y-contrast="high"] #smtpConfigSection .form-text,
html[data-a11y-contrast="high"] #smtpConfigSection label {
    color: #ffffff !important;
}

/* Panel 'Asignación Granular de Permisos' (admin_users) */
html[data-a11y-contrast="high"] #adminPermissionsSection,
html[data-a11y-contrast="high"][data-theme="light"] #adminPermissionsSection,
html[data-a11y-contrast="high"][data-theme="dark"] #adminPermissionsSection {
    background: #000000 !important;
    background-color: #000000 !important;
    border: 2px solid #ffff00 !important;
    color: #ffffff !important;
}

html[data-a11y-contrast="high"] .perm-section-header {
    border-bottom: 2px solid #ffff00 !important;
}

html[data-a11y-contrast="high"] .perm-section-title {
    color: #ffff00 !important;
    font-weight: 700 !important;
}

html[data-a11y-contrast="high"] .perm-category-block {
    background: #000000 !important;
    background-color: #000000 !important;
    border: 1px solid #ffffff !important;
}

html[data-a11y-contrast="high"] .perm-toggle-btn,
html[data-a11y-contrast="high"] .perm-group-btn {
    background: #000000 !important;
    background-color: #000000 !important;
    border: 1px solid #ffff00 !important;
    color: #ffff00 !important;
    font-weight: 700 !important;
}

html[data-a11y-contrast="high"] .perm-item-label {
    background: #000000 !important;
    background-color: #000000 !important;
    border: 1px solid #ffffff !important;
}

html[data-a11y-contrast="high"] .perm-item-text {
    color: #ffffff !important;
    font-weight: 700 !important;
}

/* Banner 'Instalar App' (Login y general) */
html[data-a11y-contrast="high"] #pwaInstallBanner,
html[data-a11y-contrast="high"][data-theme="light"] #pwaInstallBanner,
html[data-a11y-contrast="high"][data-theme="dark"] #pwaInstallBanner {
    background: #000000 !important;
    background-color: #000000 !important;
    border-bottom: 2px solid #ffff00 !important;
}

html[data-a11y-contrast="high"] #pwaInstallBanner .banner-title,
html[data-a11y-contrast="high"][data-theme="light"] #pwaInstallBanner .banner-title,
html[data-a11y-contrast="high"][data-theme="dark"] #pwaInstallBanner .banner-title,
html[data-a11y-contrast="high"] #pwaInstallBanner i {
    color: #ffff00 !important;
}

html[data-a11y-contrast="high"] #pwaInstallBanner .banner-subtext,
html[data-a11y-contrast="high"] #pwaInstallBanner span,
html[data-a11y-contrast="high"][data-theme="light"] #pwaInstallBanner .banner-subtext,
html[data-a11y-contrast="high"][data-theme="light"] #pwaInstallBanner span,
html[data-a11y-contrast="high"][data-theme="dark"] #pwaInstallBanner .banner-subtext {
    color: #ffffff !important;
    font-weight: 600 !important;
}

html[data-a11y-contrast="high"] #pwaInstallBanner #btnDismissPwa,
html[data-a11y-contrast="high"][data-theme="light"] #pwaInstallBanner #btnDismissPwa,
html[data-a11y-contrast="high"][data-theme="dark"] #pwaInstallBanner #btnDismissPwa {
    color: #ffff00 !important;
    border: 2px solid #ffff00 !important;
    background-color: #000000 !important;
}

/* Notificaciones (Leídas y No Leídas) */
html[data-a11y-contrast="high"] .list-group-item.opacity-75,
html[data-a11y-contrast="high"] .list-group-item .opacity-75,
html[data-a11y-contrast="high"] .list-group-item .opacity-50 {
    opacity: 1 !important;
}

html[data-a11y-contrast="high"] .glass-panel .list-group-item,
html[data-a11y-contrast="high"][data-theme="light"] .glass-panel .list-group-item,
html[data-a11y-contrast="high"][data-theme="dark"] .glass-panel .list-group-item {
    background: #000000 !important;
    background-color: #000000 !important;
    border: 1px solid #ffff00 !important;
    color: #ffffff !important;
}

html[data-a11y-contrast="high"] .glass-panel .list-group-item h6,
html[data-a11y-contrast="high"] .glass-panel .list-group-item .fw-bold {
    color: #ffff00 !important;
}

html[data-a11y-contrast="high"] .glass-panel .list-group-item p,
html[data-a11y-contrast="high"] .glass-panel .list-group-item small,
html[data-a11y-contrast="high"] .glass-panel .list-group-item .text-secondary,
html[data-a11y-contrast="high"] .glass-panel .list-group-item .text-light {
    color: #ffffff !important;
}

/* Plantillas de Email - Lista de Plantillas Disponibles */
html[data-a11y-contrast="high"] .template-item.active,
html[data-a11y-contrast="high"][data-theme="light"] .template-item.active,
html[data-a11y-contrast="high"][data-theme="dark"] .template-item.active {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    border: 2px solid #ffffff !important;
    border-left: 6px solid #ffffff !important;
}

html[data-a11y-contrast="high"] .template-item.active *,
html[data-a11y-contrast="high"] .template-item.active strong,
html[data-a11y-contrast="high"] .template-item.active small,
html[data-a11y-contrast="high"][data-theme="light"] .template-item.active *,
html[data-a11y-contrast="high"][data-theme="light"] .template-item.active strong,
html[data-a11y-contrast="high"][data-theme="light"] .template-item.active small,
html[data-a11y-contrast="high"][data-theme="dark"] .template-item.active *,
html[data-a11y-contrast="high"][data-theme="dark"] .template-item.active strong,
html[data-a11y-contrast="high"][data-theme="dark"] .template-item.active small {
    color: #000000 !important;
    font-weight: 800 !important;
}

html[data-a11y-contrast="high"] .template-item:not(.active) {
    background: #000000 !important;
    background-color: #000000 !important;
    border: 1px solid #333333 !important;
}

html[data-a11y-contrast="high"] .template-item:not(.active) strong {
    color: #ffffff !important;
}

html[data-a11y-contrast="high"] .template-item:not(.active) small {
    color: #ffff00 !important;
}

/* Editor SummerNote en modo Alto Contraste */
html[data-a11y-contrast="high"] .note-editor.note-frame,
html[data-a11y-contrast="high"][data-theme="light"] .note-editor.note-frame,
html[data-a11y-contrast="high"][data-theme="dark"] .note-editor.note-frame {
    background: #000000 !important;
    background-color: #000000 !important;
    border: 2px solid #ffff00 !important;
}

html[data-a11y-contrast="high"] .note-toolbar,
html[data-a11y-contrast="high"][data-theme="light"] .note-toolbar,
html[data-a11y-contrast="high"][data-theme="dark"] .note-toolbar {
    background: #000000 !important;
    background-color: #000000 !important;
    border-bottom: 2px solid #ffff00 !important;
}

html[data-a11y-contrast="high"] .note-editing-area,
html[data-a11y-contrast="high"] .note-editable,
html[data-a11y-contrast="high"][data-theme="light"] .note-editable,
html[data-a11y-contrast="high"][data-theme="dark"] .note-editable {
    background: #000000 !important;
    background-color: #000000 !important;
    color: #ffffff !important;
}

html[data-a11y-contrast="high"] .note-editable * {
    color: #ffffff !important;
    background-color: transparent !important;
}

html[data-a11y-contrast="high"] .note-editable a {
    color: #00ffff !important;
}

html[data-a11y-contrast="high"] .note-statusbar {
    background: #000000 !important;
    background-color: #000000 !important;
    border-top: 1px solid #ffff00 !important;
}

html[data-a11y-contrast="high"] .note-btn:not(.note-color-btn) {
    background: #000000 !important;
    background-color: #000000 !important;
    color: #ffff00 !important;
    border: 1px solid #ffff00 !important;
}

html[data-a11y-contrast="high"] .note-btn:not(.note-color-btn):hover,
html[data-a11y-contrast="high"] .note-btn:not(.note-color-btn).active {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000000 !important;
}

html[data-a11y-contrast="high"] .note-btn:not(.note-color-btn) i,
html[data-a11y-contrast="high"] .note-btn:not(.note-color-btn) span:not(.note-recent-color) {
    color: inherit !important;
}

html[data-a11y-contrast="high"] .note-color-btn {
    border: 1px solid #ffffff !important;
}

html[data-a11y-contrast="high"] .note-dropdown-menu {
    background: #000000 !important;
    background-color: #000000 !important;
    border: 2px solid #ffff00 !important;
}

html[data-a11y-contrast="high"] .note-dropdown-menu .note-dropdown-item {
    color: #ffffff !important;
}

html[data-a11y-contrast="high"] .note-dropdown-menu .note-dropdown-item:hover {
    background: #ffff00 !important;
    color: #000000 !important;
}

html[data-a11y-contrast="high"] .note-dropdown-menu::-webkit-scrollbar-thumb {
    background: #ffff00 !important;
}

/* 10. Píldoras de navegación subnav */
html[data-a11y-contrast="high"] .deca-subnav-pill,
html[data-a11y-contrast="high"] .nav-pills .nav-link {
    background: #000000 !important;
    color: #ffffff !important;
    border: 2px solid #ffff00 !important;
}
html[data-a11y-contrast="high"] .deca-subnav-pill:hover,
html[data-a11y-contrast="high"] .nav-pills .nav-link:hover {
    background: #222222 !important;
    color: #ffff00 !important;
}
html[data-a11y-contrast="high"] .deca-subnav-pill.active,
html[data-a11y-contrast="high"] .nav-pills .nav-link.active {
    background: #ffff00 !important;
    color: #000000 !important;
    border-color: #ffffff !important;
    font-weight: 800 !important;
}

/* 11. Tablas, encabezados y títulos de columnas en Alto Contraste */
html[data-a11y-contrast="high"] .table-responsive,
html[data-a11y-contrast="high"] .table,
html[data-a11y-contrast="high"] table,
html[data-a11y-contrast="high"][data-theme="light"] .table,
html[data-a11y-contrast="high"][data-theme="light"] .table-dark,
html[data-a11y-contrast="high"][data-theme="light"] .table-referente,
html[data-a11y-contrast="high"][data-theme="dark"] .table,
html[data-a11y-contrast="high"][data-theme="dark"] .table-dark,
html[data-a11y-contrast="high"][data-theme="dark"] .table-referente {
    background: #000000 !important;
    background-color: #000000 !important;
    --bs-table-bg: #000000 !important;
    --bs-table-striped-bg: #000000 !important;
    --bs-table-color: #ffffff !important;
    color: #ffffff !important;
    border-color: #ffff00 !important;
}

/* Encabezados y títulos de columnas (th) de TODAS las tablas */
html[data-a11y-contrast="high"] thead,
html[data-a11y-contrast="high"] thead tr,
html[data-a11y-contrast="high"] thead th,
html[data-a11y-contrast="high"] table th,
html[data-a11y-contrast="high"] .table th,
html[data-a11y-contrast="high"] .table-dark th,
html[data-a11y-contrast="high"] .table-referente th,
html[data-a11y-contrast="high"][data-theme="light"] thead,
html[data-a11y-contrast="high"][data-theme="light"] thead tr,
html[data-a11y-contrast="high"][data-theme="light"] thead th,
html[data-a11y-contrast="high"][data-theme="light"] table th,
html[data-a11y-contrast="high"][data-theme="light"] .table th,
html[data-a11y-contrast="high"][data-theme="light"] .table-dark th,
html[data-a11y-contrast="high"][data-theme="light"] .table-referente th,
html[data-a11y-contrast="high"][data-theme="dark"] thead,
html[data-a11y-contrast="high"][data-theme="dark"] thead tr,
html[data-a11y-contrast="high"][data-theme="dark"] thead th,
html[data-a11y-contrast="high"][data-theme="dark"] table th,
html[data-a11y-contrast="high"][data-theme="dark"] .table th,
html[data-a11y-contrast="high"][data-theme="dark"] .table-dark th,
html[data-a11y-contrast="high"][data-theme="dark"] .table-referente th {
    background: #000000 !important;
    background-color: #000000 !important;
    background-image: none !important;
    color: #ffff00 !important;
    border-bottom: 2px solid #ffff00 !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
}

html[data-a11y-contrast="high"] table th *,
html[data-a11y-contrast="high"] table th span,
html[data-a11y-contrast="high"] table th i,
html[data-a11y-contrast="high"] table th.text-secondary,
html[data-a11y-contrast="high"] table th.text-info,
html[data-a11y-contrast="high"] table th.text-warning,
html[data-a11y-contrast="high"] table th.text-muted,
html[data-a11y-contrast="high"] thead tr.text-secondary th,
html[data-a11y-contrast="high"] thead tr.text-info th {
    color: #ffff00 !important;
}

/* Celdas del cuerpo de la tabla (td) */
html[data-a11y-contrast="high"] tbody,
html[data-a11y-contrast="high"] tbody tr,
html[data-a11y-contrast="high"] tbody td,
html[data-a11y-contrast="high"] table td,
html[data-a11y-contrast="high"] .table td,
html[data-a11y-contrast="high"] .table-dark td,
html[data-a11y-contrast="high"] .table-referente td,
html[data-a11y-contrast="high"][data-theme="light"] tbody td,
html[data-a11y-contrast="high"][data-theme="light"] table td,
html[data-a11y-contrast="high"][data-theme="light"] .table td,
html[data-a11y-contrast="high"][data-theme="light"] .table-dark td,
html[data-a11y-contrast="high"][data-theme="light"] .table-referente td,
html[data-a11y-contrast="high"][data-theme="dark"] tbody td,
html[data-a11y-contrast="high"][data-theme="dark"] table td,
html[data-a11y-contrast="high"][data-theme="dark"] .table td,
html[data-a11y-contrast="high"][data-theme="dark"] .table-dark td,
html[data-a11y-contrast="high"][data-theme="dark"] .table-referente td {
    background: #000000 !important;
    background-color: #000000 !important;
    color: #ffffff !important;
    border-bottom: 1px solid #333333 !important;
    border-top: none !important;
}

/* Filas hover en Alto Contraste */
html[data-a11y-contrast="high"] .table-hover tbody tr:hover,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover > *,
html[data-a11y-contrast="high"] table.table-hover tbody tr:hover,
html[data-a11y-contrast="high"] table.table-hover tbody tr:hover > *,
html[data-a11y-contrast="high"] .table-dark.table-hover tbody tr:hover,
html[data-a11y-contrast="high"] .table-dark.table-hover tbody tr:hover > *,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover > *,
html[data-a11y-contrast="high"][data-theme="light"] table.table-hover tbody tr:hover,
html[data-a11y-contrast="high"][data-theme="light"] table.table-hover tbody tr:hover > *,
html[data-a11y-contrast="high"][data-theme="light"] .table-dark.table-hover tbody tr:hover,
html[data-a11y-contrast="high"][data-theme="light"] .table-dark.table-hover tbody tr:hover > *,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover > *,
html[data-a11y-contrast="high"][data-theme="dark"] table.table-hover tbody tr:hover,
html[data-a11y-contrast="high"][data-theme="dark"] table.table-hover tbody tr:hover > *,
html[data-a11y-contrast="high"][data-theme="dark"] .table-dark.table-hover tbody tr:hover,
html[data-a11y-contrast="high"][data-theme="dark"] .table-dark.table-hover tbody tr:hover > * {
    background: #1a1a1a !important;
    background-color: #1a1a1a !important;
    color: #ffffff !important;
}

/* Textos destacados, títulos, negritas y enlaces en hover (Amarillo brillante de alto contraste) */
html[data-a11y-contrast="high"] .table-hover tbody tr:hover strong,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover b,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover h5,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover h6,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .fw-bold,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .fw-semibold,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover a,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover a *,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .text-info,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .text-warning,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover strong,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover b,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover h5,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover h6,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .fw-bold,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .fw-semibold,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover a,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover a *,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .text-info,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .text-warning,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover strong,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover b,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover h5,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover h6,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .fw-bold,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .fw-semibold,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover a,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover a *,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .text-info,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .text-warning {
    color: #ffff00 !important;
}

/* Textos normales, secundarios, subtítulos, muted y descriptivos en hover (siempre blanco puro) */
html[data-a11y-contrast="high"] .table-hover tbody tr:hover small,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover small.text-secondary,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover small.text-muted,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .text-secondary,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .text-muted,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .text-white,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .text-light,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover div:not(.btn):not(.btn-group):not(.badge),
html[data-a11y-contrast="high"] .table-hover tbody tr:hover span:not(.badge),
html[data-a11y-contrast="high"] .table-hover tbody tr:hover p,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover i:not(.text-warning):not(.text-info),
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover small,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover small.text-secondary,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover small.text-muted,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .text-secondary,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .text-muted,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .text-white,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .text-light,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover div:not(.btn):not(.btn-group):not(.badge),
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover span:not(.badge),
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover p,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover i:not(.text-warning):not(.text-info),
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover small,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover small.text-secondary,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover small.text-muted,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .text-secondary,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .text-muted,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .text-white,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .text-light,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover div:not(.btn):not(.btn-group):not(.badge),
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover span:not(.badge),
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover p,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover i:not(.text-warning):not(.text-info) {
    color: #ffffff !important;
}

/* Badges dentro de filas hover */
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .badge,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .badge,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .badge {
    background-color: #000000 !important;
    color: #ffff00 !important;
    border: 1px solid #ffff00 !important;
}
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .badge *,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .badge *,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .badge * {
    color: #ffff00 !important;
}

/* Botones interactivos dentro de filas hover */
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .btn,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .btn,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .btn {
    background: #000000 !important;
    background-color: #000000 !important;
    color: #ffff00 !important;
    border: 2px solid #ffff00 !important;
}
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .btn *,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .btn i,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .btn *,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .btn i,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .btn *,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .btn i {
    color: #ffff00 !important;
}
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .btn:hover,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .btn:hover,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .btn:hover {
    background: #ffff00 !important;
    background-color: #ffff00 !important;
    color: #000000 !important;
}
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .btn:hover *,
html[data-a11y-contrast="high"] .table-hover tbody tr:hover .btn:hover i,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .btn:hover *,
html[data-a11y-contrast="high"][data-theme="light"] .table-hover tbody tr:hover .btn:hover i,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .btn:hover *,
html[data-a11y-contrast="high"][data-theme="dark"] .table-hover tbody tr:hover .btn:hover i {
    color: #000000 !important;
}

/* Pie de tabla (tfoot) */
html[data-a11y-contrast="high"] tfoot,
html[data-a11y-contrast="high"] tfoot td,
html[data-a11y-contrast="high"] tfoot th,
html[data-a11y-contrast="high"][data-theme="light"] tfoot,
html[data-a11y-contrast="high"][data-theme="light"] tfoot td,
html[data-a11y-contrast="high"][data-theme="dark"] tfoot,
html[data-a11y-contrast="high"][data-theme="dark"] tfoot td {
    background: #000000 !important;
    background-color: #000000 !important;
    color: #ffffff !important;
    border-top: 2px solid #ffff00 !important;
}

/* 12. Badges */
html[data-a11y-contrast="high"] .badge {
    background-color: #000000 !important;
    color: #ffff00 !important;
    border: 1px solid #ffff00 !important;
}

/* 13. Resaltado de foco de navegación por teclado */
html[data-a11y-keyboard="true"] *:focus,
html[data-a11y-keyboard="true"] *:focus-visible {
    outline: 3px solid #ffff00 !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 4px #000000 !important;
}

.cursor-pointer {
    cursor: pointer !important;
}

/* 14. Logotipo con efecto de fondo blanco en Alto Contraste (mismo efecto que en tema oscuro) */
html[data-a11y-contrast="high"] .navbar-logo-img,
html[data-a11y-contrast="high"] .navbar-brand-deca img,
html[data-a11y-contrast="high"] .navbar-brand img,
html[data-a11y-contrast="high"][data-theme="light"] .navbar-logo-img,
html[data-a11y-contrast="high"][data-theme="dark"] .navbar-logo-img,
html[data-a11y-contrast="high"][data-theme="light"] .navbar-brand-deca img,
html[data-a11y-contrast="high"][data-theme="dark"] .navbar-brand-deca img {
    background-color: #ffffff !important;
    padding: 2px 8px !important;
    border-radius: 6px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25) !important;
}

html[data-a11y-contrast="high"] .login-logo-img,
html[data-a11y-contrast="high"] .bio-logo-box,
html[data-a11y-contrast="high"] #main-login-card img,
html[data-a11y-contrast="high"] .landing-card img,
html[data-a11y-contrast="high"] #decaBiometricLockOverlay img,
html[data-a11y-contrast="high"][data-theme="light"] .login-logo-img,
html[data-a11y-contrast="high"][data-theme="dark"] .login-logo-img,
html[data-a11y-contrast="high"][data-theme="light"] .bio-logo-box,
html[data-a11y-contrast="high"][data-theme="dark"] .bio-logo-box {
    background-color: #ffffff !important;
    padding: 6px 14px !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25) !important;
}
