/**
 * =========================================================================
 * CONSTRUCTORA FERNÁNDEZ - SISTEMA DE ACCESIBILIDAD Y TOKENS DE DISEÑO
 * Estilo: Corporativo / Moderno Industrial (Sharp 0px, Grafito & Oro Institucional)
 * =========================================================================
 */

:root {
    /* --- Brand Tokens (Constructora Fernández) --- */
    --fyu-primary: #080d13;
    --fyu-on-primary: #ffffff;
    --fyu-primary-container: #1e232a;
    --fyu-on-primary-container: #858a93;
    --fyu-graphite: #1E232A;
    --fyu-institutional-gold: #FFC107;
    --fyu-institutional-gold-hover: #e0a800;
    --fyu-technical-white: #FFFFFF;
    --fyu-slate-gray: #374151;

    /* --- Superficies y Colores - Tema Claro (Por Defecto) --- */
    --fyu-bg: #f8f9fb;
    --fyu-surface: #ffffff;
    --fyu-surface-container: #eceef0;
    --fyu-surface-high: #e6e8ea;
    --fyu-surface-highest: #e0e3e5;
    --fyu-heading: #191c1e;
    --fyu-text: #191c1e;
    --fyu-text-muted: #45474b;
    --fyu-border: #e0e3e5;
    --fyu-card-bg: #ffffff;
    --fyu-card-border: #e0e3e5;
    --fyu-input-bg: #ffffff;
    --fyu-table-hover: #f1f5f9;

    /* Factor de Escala de Fuente Base */
    --fyu-base-font-size: 16px;
}

/* ==========================================================================
   TEMA OSCURO (MODO INGENIERÍA & CONSTRUCCIÓN)
   ========================================================================== */
[data-theme="dark"] {
    --fyu-bg: #121517;
    --fyu-surface: #191c1e;
    --fyu-surface-container: #1e232a;
    --fyu-surface-high: #262c35;
    --fyu-surface-highest: #2d3133;
    --fyu-heading: #ffffff;
    --fyu-text: #eff1f3;
    --fyu-text-muted: #c5c6cb;
    --fyu-border: #374151;
    --fyu-card-bg: #1e232a;
    --fyu-card-border: #2e353f;
    --fyu-input-bg: #161a1f;
    --fyu-table-hover: #262c35;

    color-scheme: dark;
}

[data-theme="dark"] body {
    background-color: var(--fyu-bg) !important;
    color: var(--fyu-text) !important;
}

[data-theme="dark"] h1, 
[data-theme="dark"] h2, 
[data-theme="dark"] h3, 
[data-theme="dark"] h4, 
[data-theme="dark"] h5, 
[data-theme="dark"] h6,
[data-theme="dark"] .admin-page-title,
[data-theme="dark"] .card-title {
    color: var(--fyu-heading) !important;
}

[data-theme="dark"] p,
[data-theme="dark"] .card-text,
[data-theme="dark"] .admin-page-subtitle {
    color: var(--fyu-text-muted) !important;
}

[data-theme="dark"] .card,
[data-theme="dark"] .featured-project-card,
[data-theme="dark"] .admin-page-header,
[data-theme="dark"] .admin-stat-card,
[data-theme="dark"] .table tbody tr,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .dropdown-menu {
    background-color: var(--fyu-card-bg) !important;
    border-color: var(--fyu-card-border) !important;
    color: var(--fyu-text) !important;
}

[data-theme="dark"] .admin-topbar,
[data-theme="dark"] footer {
    background-color: var(--fyu-surface-container) !important;
    border-color: var(--fyu-border) !important;
    color: var(--fyu-text-muted) !important;
}

[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
    background-color: var(--fyu-input-bg) !important;
    border-color: var(--fyu-border) !important;
    color: var(--fyu-text) !important;
}

[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
    border-color: var(--fyu-institutional-gold) !important;
    box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.25) !important;
}

[data-theme="dark"] .table {
    color: var(--fyu-text) !important;
}

[data-theme="dark"] .table td,
[data-theme="dark"] .table th {
    border-color: var(--fyu-card-border) !important;
}

[data-theme="dark"] .table-hover tbody tr:hover {
    background-color: var(--fyu-table-hover) !important;
}

[data-theme="dark"] .dropdown-item {
    color: var(--fyu-text) !important;
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    background-color: var(--fyu-surface-high) !important;
    color: var(--fyu-institutional-gold) !important;
}

/* --- Mejoras Específicas del Modo Oscuro en Panel y Portada --- */
[data-theme="dark"] .hero-text-col p,
[data-theme="dark"] .hero-text-col {
    color: var(--fyu-text) !important;
}

[data-theme="dark"] .hero-logo-img,
[data-theme="dark"] .trajectory-logo-img,
[data-theme="dark"] #trayectoria img,
[data-theme="dark"] [data-purpose="about-trajectory"] img,
[data-theme="dark"] .fyu-footer-logo-img,
[data-theme="dark"] .navbar-brand img {
    filter: brightness(0) invert(1) !important;
    opacity: 0.95;
}

[data-theme="dark"] .admin-topbar .btn-outline-dark {
    color: #ffffff !important;
    border-color: #64748b !important;
}

[data-theme="dark"] .admin-topbar .btn-outline-dark:hover {
    background-color: #334155 !important;
    color: #ffffff !important;
}

[data-theme="dark"] .admin-topbar .btn-outline-warning {
    color: var(--fyu-institutional-gold) !important;
    border-color: var(--fyu-institutional-gold) !important;
}

[data-theme="dark"] .admin-topbar .btn-outline-warning:hover {
    background-color: var(--fyu-institutional-gold) !important;
    color: var(--fyu-primary) !important;
}

/* Tablas Administrativas en Modo Oscuro */
[data-theme="dark"] .table-custom tbody tr td,
[data-theme="dark"] .table-custom tbody tr th,
[data-theme="dark"] .table tbody tr td,
[data-theme="dark"] .table tbody tr th {
    background-color: #1e232a !important;
    color: #eff1f3 !important;
    border-color: #2e353f !important;
}

[data-theme="dark"] .table tbody tr:hover td {
    background-color: #262c35 !important;
}

[data-theme="dark"] .table-custom thead th,
[data-theme="dark"] .table thead th {
    background-color: #121517 !important;
    color: #94a3b8 !important;
    border-color: #2e353f !important;
}

/* --- MODO OSCURO: Tarjetas, Contenedores, Formularios y Tablas --- */
[data-theme="dark"] .admin-card,
[data-theme="dark"] .dashboard-card,
[data-theme="dark"] .project-card,
[data-theme="dark"] .project-card-admin,
[data-theme="dark"] .client-grid-card,
[data-theme="dark"] .project-dossier-card,
[data-theme="dark"] .project-export-item-card,
[data-theme="dark"] .project-header-toggle,
[data-theme="dark"] .pago-header-box,
[data-theme="dark"] .pago-filter-bar,
[data-theme="dark"] .edp-subtable-container,
[data-theme="dark"] .modal-edp-content,
[data-theme="dark"] .modal-edp-body,
[data-theme="dark"] .modal-edp-footer,
[data-theme="dark"] .kpi-summary-box,
[data-theme="dark"] .comp-toggle-group,
[data-theme="dark"] .business-item,
[data-theme="dark"] .admin-page-header,
[data-theme="dark"] .admin-filter-bar,
[data-theme="dark"] .admin-stat-card {
    background-color: #1e232a !important;
    border-color: #2e353f !important;
    color: #eff1f3 !important;
}

[data-theme="dark"] .project-header-toggle:hover,
[data-theme="dark"] .project-card.expanded .project-header-toggle,
[data-theme="dark"] .business-item:hover {
    background-color: #262c35 !important;
}

/* Botón Pestaña Desplegable de Estados de Pago */
[data-theme="dark"] .tab-desplegable-btn {
    background-color: #262c35 !important;
    color: #FFC107 !important;
    border-color: #374151 !important;
}
[data-theme="dark"] .tab-desplegable-btn:hover {
    background-color: #374151 !important;
    border-color: #4b5563 !important;
    color: #ffffff !important;
}
[data-theme="dark"] .project-card.expanded .tab-desplegable-btn {
    background-color: #FFC107 !important;
    color: #1e232a !important;
    border-color: #FFC107 !important;
}

/* Inputs, Filtros y Cajas de Búsqueda */
[data-theme="dark"] .filter-search-input,
[data-theme="dark"] .date-filter-box,
[data-theme="dark"] .form-control-custom,
[data-theme="dark"] .form-select-custom,
[data-theme="dark"] .input-group-custom .input-group-text,
[data-theme="dark"] .input-group-text {
    background-color: #161a20 !important;
    border-color: #374151 !important;
    color: #eff1f3 !important;
}

[data-theme="dark"] .filter-search-input:focus,
[data-theme="dark"] .date-filter-box:focus-within {
    border-color: #FFC107 !important;
    box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.2) !important;
}

[data-theme="dark"] .date-filter-input {
    color: #eff1f3 !important;
    background: transparent !important;
    color-scheme: dark;
}

[data-theme="dark"] .date-filter-label,
[data-theme="dark"] .filter-input-icon {
    color: #94a3b8 !important;
}

[data-theme="dark"] .kpi-chip {
    background-color: #161a20 !important;
    border-color: #2e353f !important;
    color: #eff1f3 !important;
}

/* Utilidades de fondo Bootstrap en modo oscuro */
[data-theme="dark"] .bg-light,
[data-theme="dark"] .bg-white,
[data-theme="dark"] .bg-body,
[data-theme="dark"] .bg-body-secondary,
[data-theme="dark"] .bg-body-tertiary {
    background-color: #161a20 !important;
    border-color: #2e353f !important;
    color: #eff1f3 !important;
}

/* Subtles de estado con contrastes nítidos */
[data-theme="dark"] .bg-success-subtle {
    background-color: rgba(34, 197, 94, 0.16) !important;
    border-color: rgba(34, 197, 94, 0.4) !important;
    color: #4ade80 !important;
}
[data-theme="dark"] .text-success-emphasis,
[data-theme="dark"] .text-success {
    color: #4ade80 !important;
}

[data-theme="dark"] .bg-warning-subtle {
    background-color: rgba(255, 193, 7, 0.16) !important;
    border-color: rgba(255, 193, 7, 0.4) !important;
    color: #FFC107 !important;
}
[data-theme="dark"] .text-warning-emphasis,
[data-theme="dark"] .text-warning {
    color: #FFC107 !important;
}

[data-theme="dark"] .bg-primary-subtle {
    background-color: rgba(59, 130, 246, 0.16) !important;
    border-color: rgba(59, 130, 246, 0.4) !important;
    color: #60a5fa !important;
}
[data-theme="dark"] .text-primary-emphasis {
    color: #60a5fa !important;
}

[data-theme="dark"] .bg-info-subtle {
    background-color: rgba(6, 182, 212, 0.16) !important;
    border-color: rgba(6, 182, 212, 0.4) !important;
    color: #38bdf8 !important;
}
[data-theme="dark"] .text-info-emphasis {
    color: #38bdf8 !important;
}

[data-theme="dark"] .bg-danger-subtle {
    background-color: rgba(239, 68, 68, 0.16) !important;
    border-color: rgba(239, 68, 68, 0.4) !important;
    color: #f87171 !important;
}
[data-theme="dark"] .text-danger-emphasis {
    color: #f87171 !important;
}

/* Tipografía de texto legible */
[data-theme="dark"] .text-dark,
[data-theme="dark"] strong.text-dark,
[data-theme="dark"] span.text-dark,
[data-theme="dark"] h1.text-dark,
[data-theme="dark"] h2.text-dark,
[data-theme="dark"] h3.text-dark,
[data-theme="dark"] h4.text-dark,
[data-theme="dark"] h5.text-dark,
[data-theme="dark"] h6.text-dark {
    color: #ffffff !important;
}

[data-theme="dark"] .text-muted,
[data-theme="dark"] small.text-muted {
    color: #94a3b8 !important;
}

[data-theme="dark"] .text-secondary {
    color: #cbd5e1 !important;
}

[data-theme="dark"] code {
    background-color: #161a20 !important;
    color: #f472b6 !important;
    border: 1px solid #374151 !important;
    padding: 2px 5px !important;
    border-radius: 4px !important;
}

/* Barras de Progreso */
[data-theme="dark"] .progress {
    background-color: #262c35 !important;
}

/* Tabla compacta */
[data-theme="dark"] .table-compact th {
    background-color: #161a20 !important;
    color: #94a3b8 !important;
    border-bottom: 2px solid #374151 !important;
}
[data-theme="dark"] .table-compact td {
    background-color: #1e232a !important;
    color: #eff1f3 !important;
    border-color: #2e353f !important;
}
[data-theme="dark"] .edp-row:hover td,
[data-theme="dark"] .table-compact tr:hover td {
    background-color: #262c35 !important;
}

/* Líneas de negocio en web pública (Screenshot 3 Fix) */
[data-theme="dark"] .business-icon img {
    filter: brightness(0) invert(1) drop-shadow(0 2px 8px rgba(255, 193, 7, 0.4)) !important;
}
[data-theme="dark"] .business-title {
    color: #ffffff !important;
}
[data-theme="dark"] .client-logo-item {
    background-color: #ffffff !important;
    border: 1px solid #374151 !important;
    border-radius: 8px !important;
    padding: 6px !important;
}

/* Iconos de módulos en dashboard */
[data-theme="dark"] .dashboard-module-icon {
    background-color: rgba(255, 193, 7, 0.15) !important;
    border: 1px solid rgba(255, 193, 7, 0.3) !important;
}

/* Tarjetas Móviles Responsive en Modo Oscuro */
@media (max-width: 768px) {
    [data-theme="dark"] .table-responsive table tbody tr {
        background-color: #1e232a !important;
        border-color: #374151 !important;
        color: #eff1f3 !important;
    }
    [data-theme="dark"] .table-responsive table tbody tr.row-expanded {
        border-color: var(--fyu-institutional-gold) !important;
    }
    [data-theme="dark"] .resp-cell-detail {
        border-top-color: #2e353f !important;
    }
    [data-theme="dark"] .resp-cell-detail::before {
        color: #94a3b8 !important;
    }
    [data-theme="dark"] .resp-cell-actions {
        background-color: #171b21 !important;
        border-top-color: #2e353f !important;
    }
}

/* Badges en modo oscuro */
[data-theme="dark"] .table .badge.bg-white,
[data-theme="dark"] .badge.bg-white {
    background-color: #262c35 !important;
    border-color: #374151 !important;
    color: #eff1f3 !important;
}

[data-theme="dark"] .table .badge.bg-white span,
[data-theme="dark"] .badge.bg-white span,
[data-theme="dark"] .badge span {
    color: inherit !important;
}

[data-theme="dark"] .table .badge.bg-warning {
    background-color: rgba(255, 193, 7, 0.15) !important;
    border-color: rgba(255, 193, 7, 0.4) !important;
    color: #FFC107 !important;
}

[data-theme="dark"] .table .badge.bg-warning span,
[data-theme="dark"] .table .badge.bg-warning svg {
    color: #FFC107 !important;
}

[data-theme="dark"] .table a.text-dark {
    color: #eff1f3 !important;
}

[data-theme="dark"] .table a.text-dark:hover {
    color: #FFC107 !important;
}

/* --- PORTAFOLIO EN MODO OSCURO --- */
[data-theme="dark"] .project-grid-admin {
    background-color: #121518 !important;
}

[data-theme="dark"] .project-card-admin {
    background-color: #1e232a !important;
    border-color: #2e353f !important;
    color: #eff1f3 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35) !important;
}

[data-theme="dark"] .project-card-admin:hover {
    border-color: #FFC107 !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5) !important;
}

[data-theme="dark"] .project-card-admin-body {
    background-color: #1e232a !important;
    color: #eff1f3 !important;
}

[data-theme="dark"] .project-card-admin-title {
    color: #ffffff !important;
}

[data-theme="dark"] .project-card-admin-sub {
    color: #94a3b8 !important;
}

[data-theme="dark"] .project-card-admin-footer {
    background-color: #161a20 !important;
    border-top: 1px solid #2e353f !important;
    color: #eff1f3 !important;
}

[data-theme="dark"] .btn-order-move {
    background-color: #262c35 !important;
    border-color: #374151 !important;
    color: #eff1f3 !important;
}

[data-theme="dark"] .btn-order-move:hover {
    background-color: #FFC107 !important;
    border-color: #FFC107 !important;
    color: #121518 !important;
}

[data-theme="dark"] .badge-normal {
    background-color: #262c35 !important;
    border: 1px solid #374151 !important;
    color: #cbd5e1 !important;
}

[data-theme="dark"] .badge-normal:hover {
    background-color: #374151 !important;
    color: #ffffff !important;
}

[data-theme="dark"] .badge-destacado {
    background-color: #FFC107 !important;
    color: #121518 !important;
    font-weight: 700 !important;
}

[data-theme="dark"] .project-badge-top-left {
    background: rgba(18, 21, 24, 0.9) !important;
    border: 1px solid #374151 !important;
    color: #FFC107 !important;
}

[data-theme="dark"] .view-btn {
    border-color: #374151 !important;
}

[data-theme="dark"] .view-btn.active {
    background-color: #FFC107 !important;
    border-color: #FFC107 !important;
    color: #121518 !important;
}

[data-theme="dark"] .view-btn:not(.active) {
    background-color: #161a20 !important;
    border-color: #374151 !important;
    color: #eff1f3 !important;
}

/* --- CLIENTES & ALIADOS EN MODO OSCURO --- */
[data-theme="dark"] .client-grid-card {
    background-color: #1e232a !important;
    border-color: #2e353f !important;
    color: #eff1f3 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35) !important;
}

[data-theme="dark"] .client-grid-card:hover {
    border-color: #FFC107 !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5) !important;
}

[data-theme="dark"] .client-drag-handle {
    color: #94a3b8 !important;
}

[data-theme="dark"] .client-drag-handle:hover {
    color: #FFC107 !important;
    background-color: #262c35 !important;
}

[data-theme="dark"] .client-order-badge {
    background-color: #121518 !important;
    color: #FFC107 !important;
    border: 1px solid #374151 !important;
}

[data-theme="dark"] .client-category-pill {
    background-color: #161a20 !important;
    border: 1px solid #374151 !important;
    color: #cbd5e1 !important;
}

[data-theme="dark"] .client-logo-stage,
[data-theme="dark"] .client-table-logo-box {
    background-color: #ffffff !important;
    border: 1px solid #374151 !important;
    box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.08) !important;
}

[data-theme="dark"] .client-card-title {
    color: #ffffff !important;
}

[data-theme="dark"] .client-grid-card a.text-primary,
[data-theme="dark"] .client-grid-card a {
    color: #60a5fa !important;
}

[data-theme="dark"] .client-grid-card a.text-primary:hover,
[data-theme="dark"] .client-grid-card a:hover {
    color: #93c5fd !important;
}

[data-theme="dark"] .client-grid-card .border-top {
    border-top-color: #2e353f !important;
}

/* --- BOTONES DE ACCIÓN RÁPIDA Y OUTLINE (GLOBAL EN MODO OSCURO) --- */
[data-theme="dark"] .btn-action-icon,
[data-theme="dark"] .action-btn,
[data-theme="dark"] .btn-outline-secondary,
[data-theme="dark"] .btn-outline-dark {
    background-color: #161a20 !important;
    border-color: #374151 !important;
    color: #eff1f3 !important;
}

[data-theme="dark"] .btn-action-icon:hover,
[data-theme="dark"] .action-btn:hover,
[data-theme="dark"] .btn-outline-secondary:hover,
[data-theme="dark"] .btn-outline-dark:hover {
    background-color: #FFC107 !important;
    border-color: #FFC107 !important;
    color: #121518 !important;
}

/* Botones de Editar y Outline Primary en Modo Oscuro */
[data-theme="dark"] .btn-outline-primary,
[data-theme="dark"] .btn-action-icon.btn-outline-primary,
[data-theme="dark"] .action-btn.btn-outline-primary,
[data-theme="dark"] button[title*="Editar"],
[data-theme="dark"] .btn[data-bs-target*="Editar"] {
    background-color: rgba(59, 130, 246, 0.16) !important;
    border: 1px solid rgba(96, 165, 250, 0.5) !important;
    color: #60a5fa !important;
}

[data-theme="dark"] .btn-outline-primary:hover,
[data-theme="dark"] .btn-action-icon.btn-outline-primary:hover,
[data-theme="dark"] .action-btn.btn-outline-primary:hover,
[data-theme="dark"] button[title*="Editar"]:hover,
[data-theme="dark"] .btn[data-bs-target*="Editar"]:hover {
    background-color: #2563eb !important;
    border-color: #2563eb !important;
    color: #ffffff !important;
}

[data-theme="dark"] .btn-outline-primary svg,
[data-theme="dark"] button[title*="Editar"] svg {
    fill: currentColor !important;
    color: inherit !important;
}

/* Botones de Eliminar y Outline Danger en Modo Oscuro */
[data-theme="dark"] .btn-outline-danger,
[data-theme="dark"] .btn-action-icon.btn-action-delete,
[data-theme="dark"] .btn-action-icon.text-danger,
[data-theme="dark"] .btn-action-icon.btn-outline-danger,
[data-theme="dark"] .action-btn.btn-outline-danger,
[data-theme="dark"] button[title*="Eliminar"] {
    background-color: rgba(239, 68, 68, 0.16) !important;
    border: 1px solid rgba(248, 113, 113, 0.5) !important;
    color: #f87171 !important;
}

[data-theme="dark"] .btn-outline-danger:hover,
[data-theme="dark"] .btn-action-icon.btn-action-delete:hover,
[data-theme="dark"] .btn-action-icon.text-danger:hover,
[data-theme="dark"] .btn-action-icon.btn-outline-danger:hover,
[data-theme="dark"] .action-btn.btn-outline-danger:hover,
[data-theme="dark"] button[title*="Eliminar"]:hover {
    background-color: #dc2626 !important;
    border-color: #dc2626 !important;
    color: #ffffff !important;
}

[data-theme="dark"] .btn-outline-danger svg,
[data-theme="dark"] button[title*="Eliminar"] svg {
    fill: currentColor !important;
    color: inherit !important;
}

/* Botones Warning & Success en Modo Oscuro */
[data-theme="dark"] .btn-outline-warning {
    background-color: rgba(255, 193, 7, 0.16) !important;
    border: 1px solid rgba(255, 193, 7, 0.5) !important;
    color: #FFC107 !important;
}

[data-theme="dark"] .btn-outline-warning:hover {
    background-color: #FFC107 !important;
    border-color: #FFC107 !important;
    color: #121518 !important;
}

[data-theme="dark"] .btn-outline-warning svg {
    fill: currentColor !important;
}

[data-theme="dark"] .btn-outline-success {
    background-color: rgba(34, 197, 94, 0.16) !important;
    border: 1px solid rgba(74, 222, 128, 0.5) !important;
    color: #4ade80 !important;
}

[data-theme="dark"] .btn-outline-success:hover {
    background-color: #16a34a !important;
    border-color: #16a34a !important;
    color: #ffffff !important;
}

[data-theme="dark"] .btn-outline-success svg {
    fill: currentColor !important;
}

/* Botones Light (no deshabilitados) y Botones Deshabilitados */
[data-theme="dark"] .btn-light:not([disabled]) {
    background-color: #1e232a !important;
    border-color: #374151 !important;
    color: #eff1f3 !important;
}

[data-theme="dark"] .btn-light:not([disabled]):hover {
    background-color: #262c35 !important;
    border-color: #4b5563 !important;
    color: #ffffff !important;
}

[data-theme="dark"] .btn-light:not([disabled]) svg {
    fill: currentColor !important;
    color: inherit !important;
}

[data-theme="dark"] .btn-light[disabled],
[data-theme="dark"] .btn[disabled] {
    background-color: #1a1e24 !important;
    border-color: #374151 !important;
    color: #64748b !important;
    opacity: 0.65 !important;
}

[data-theme="dark"] .btn-light[disabled] svg,
[data-theme="dark"] .btn[disabled] svg {
    fill: #64748b !important;
    color: #64748b !important;
}

/* --- CORREOS ELECTRÓNICOS Y CONTACTOS EN MODO OSCURO --- */
[data-theme="dark"] a[href^="mailto:"],
[data-theme="dark"] a.text-primary,
[data-theme="dark"] .table a[href^="mailto:"],
[data-theme="dark"] .table a.text-primary {
    color: #60a5fa !important;
    text-decoration: none !important;
}

[data-theme="dark"] a[href^="mailto:"]:hover,
[data-theme="dark"] a.text-primary:hover {
    color: #93c5fd !important;
    text-decoration: underline !important;
}

[data-theme="dark"] a[href^="mailto:"] svg,
[data-theme="dark"] a[href^="mailto:"] .bi-envelope-fill,
[data-theme="dark"] a[href^="mailto:"] .bi-envelope,
[data-theme="dark"] svg.bi-envelope-fill,
[data-theme="dark"] svg.bi-envelope {
    color: #60a5fa !important;
    fill: #60a5fa !important;
}

/* Teléfonos y llamadas */
[data-theme="dark"] button[onclick*="copiarAlPortapapeles"],
[data-theme="dark"] .phone-link,
[data-theme="dark"] a[href^="tel:"] {
    color: #eff1f3 !important;
}

[data-theme="dark"] svg.bi-telephone-fill,
[data-theme="dark"] svg.bi-telephone,
[data-theme="dark"] svg.bi-copy {
    color: #94a3b8 !important;
    fill: #94a3b8 !important;
}

[data-theme="dark"] svg.bi-whatsapp {
    fill: #25D366 !important;
}

/* Badges con fondo blanco o claro en tablas */
[data-theme="dark"] .badge.bg-white,
[data-theme="dark"] .badge.bg-light {
    background-color: #161a20 !important;
    border: 1px solid #374151 !important;
    color: #eff1f3 !important;
}

[data-theme="dark"] .badge.bg-white span,
[data-theme="dark"] .badge.bg-light span,
[data-theme="dark"] .badge.bg-white .text-dark,
[data-theme="dark"] .badge.bg-light .text-dark {
    color: #eff1f3 !important;
}

[data-theme="dark"] .export-option-box {
    background-color: #161a20 !important;
    border-color: #2e353f !important;
}

[data-theme="dark"] .export-option-title {
    color: #FFC107 !important;
}

[data-theme="dark"] .export-preset-pill {
    background-color: #1e232a !important;
    color: #eff1f3 !important;
    border-color: #374151 !important;
}

[data-theme="dark"] .export-preset-pill.active {
    background-color: #FFC107 !important;
    color: #121518 !important;
    border-color: #FFC107 !important;
}

[data-theme="dark"] .project-dossier-card,
[data-theme="dark"] .project-export-item-card {
    background-color: #1e232a !important;
    border-color: #2e353f !important;
    color: #eff1f3 !important;
}

/* ==========================================================================
   TEMA ALTO CONTRASTE (ACCESIBILIDAD VISUAL MÁXIMA)
   ========================================================================== */
[data-theme="contrast"] {
    --fyu-bg: #000000;
    --fyu-surface: #0a0a0a;
    --fyu-surface-container: #141414;
    --fyu-surface-high: #1a1a1a;
    --fyu-heading: #ffffff;
    --fyu-text: #ffffff;
    --fyu-text-muted: #FFC107;
    --fyu-border: #FFC107;
    --fyu-card-bg: #050505;
    --fyu-card-border: #FFC107;
    --fyu-input-bg: #000000;
    --fyu-table-hover: #1f1f1f;

    color-scheme: dark;
}

[data-theme="contrast"] body {
    background-color: #000000 !important;
    color: #ffffff !important;
}

/* Tarjetas, Contenedores y Proyectos en Alto Contraste */
[data-theme="contrast"] .card,
[data-theme="contrast"] .admin-card,
[data-theme="contrast"] .dashboard-card,
[data-theme="contrast"] .project-card,
[data-theme="contrast"] .project-card-admin,
[data-theme="contrast"] .client-grid-card,
[data-theme="contrast"] .project-dossier-card,
[data-theme="contrast"] .project-export-item-card,
[data-theme="contrast"] .project-header-toggle,
[data-theme="contrast"] .pago-header-box,
[data-theme="contrast"] .pago-filter-bar,
[data-theme="contrast"] .edp-subtable-container,
[data-theme="contrast"] .admin-page-header,
[data-theme="contrast"] .admin-stat-card,
[data-theme="contrast"] .admin-filter-bar,
[data-theme="contrast"] .modal-content,
[data-theme="contrast"] .modal-edp-content,
[data-theme="contrast"] .modal-edp-body,
[data-theme="contrast"] .modal-edp-footer,
[data-theme="contrast"] .kpi-summary-box,
[data-theme="contrast"] .comp-toggle-group,
[data-theme="contrast"] .business-item,
[data-theme="contrast"] .dropdown-menu {
    background-color: #050505 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .project-header-toggle:hover,
[data-theme="contrast"] .project-card.expanded .project-header-toggle,
[data-theme="contrast"] .business-item:hover {
    background-color: #141414 !important;
}

[data-theme="contrast"] .tab-desplegable-btn {
    background-color: #000000 !important;
    color: #FFC107 !important;
    border: 2px solid #FFC107 !important;
}
[data-theme="contrast"] .tab-desplegable-btn:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}
[data-theme="contrast"] .project-card.expanded .tab-desplegable-btn {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

/* Barra Superior (Topbar) en Modo Alto Contraste */
[data-theme="contrast"] .admin-topbar {
    background-color: #000000 !important;
    border-bottom: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .admin-topbar .btn-sidebar-toggle,
[data-theme="contrast"] .admin-topbar .live-sync-badge,
[data-theme="contrast"] .admin-topbar .btn-outline-dark,
[data-theme="contrast"] .admin-topbar a.btn-outline-dark,
[data-theme="contrast"] .admin-topbar #topbarUserDropdown {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .admin-topbar .btn-sidebar-toggle:hover,
[data-theme="contrast"] .admin-topbar .btn-outline-dark:hover,
[data-theme="contrast"] .admin-topbar a.btn-outline-dark:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .admin-topbar .btn-warning {
    background-color: #FFC107 !important;
    border: 2px solid #FFC107 !important;
    color: #000000 !important;
    font-weight: 800 !important;
}

/* Ficha y Filas Desplegables de Licitaciones en Alto Contraste */
[data-theme="contrast"] .table-licitaciones tr.lic-detail-row,
[data-theme="contrast"] .table-licitaciones tr.lic-detail-row td,
[data-theme="contrast"] tr.lic-detail-row,
[data-theme="contrast"] tr.lic-detail-row td {
    background-color: #000000 !important;
    border-color: #FFC107 !important;
}

[data-theme="contrast"] .lic-detail-card {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    border-left: 6px solid #FFC107 !important;
    color: #ffffff !important;
    box-shadow: 0 0 16px rgba(255, 193, 7, 0.25) !important;
}

[data-theme="contrast"] .lic-detail-card .border-bottom,
[data-theme="contrast"] .lic-detail-card .border-top {
    border-color: #FFC107 !important;
}

[data-theme="contrast"] .lic-detail-card .text-dark,
[data-theme="contrast"] .lic-detail-card .text-secondary,
[data-theme="contrast"] .lic-detail-card .text-muted,
[data-theme="contrast"] .lic-detail-card .font-monospace {
    color: #ffffff !important;
}

[data-theme="contrast"] .lic-detail-card .btn-outline-secondary {
    background-color: #000000 !important;
    border: 1.5px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .lic-detail-card .btn-outline-secondary:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .lic-info-block {
    background-color: #080808 !important;
    border: 1.5px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .lic-info-title {
    color: #FFC107 !important;
    border-bottom: 1px solid #FFC107 !important;
}

[data-theme="contrast"] .lic-info-title svg {
    color: #FFC107 !important;
    fill: #FFC107 !important;
}

[data-theme="contrast"] .lic-info-label {
    color: #FFC107 !important;
    font-weight: 700 !important;
}

[data-theme="contrast"] .lic-info-val,
[data-theme="contrast"] .lic-info-val * {
    color: #ffffff !important;
}

[data-theme="contrast"] .lic-info-block .badge.bg-white,
[data-theme="contrast"] .lic-info-block .badge.bg-light,
[data-theme="contrast"] .lic-info-val.bg-white,
[data-theme="contrast"] .lic-info-block .bg-white {
    background-color: #000000 !important;
    border: 1px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .lic-info-block a.btn-link,
[data-theme="contrast"] .lic-info-block a {
    color: #FFC107 !important;
    text-decoration: underline !important;
    font-weight: 700 !important;
}

[data-theme="contrast"] .lic-detail-card .btn-outline-warning {
    background-color: #000000 !important;
    border: 1.5px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .lic-detail-card .btn-outline-warning:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

/* Inputs, Filtros y Formularios en Alto Contraste */
[data-theme="contrast"] .form-control,
[data-theme="contrast"] .form-select,
[data-theme="contrast"] .filter-search-input,
[data-theme="contrast"] .date-filter-box,
[data-theme="contrast"] .form-control-custom,
[data-theme="contrast"] .form-select-custom,
[data-theme="contrast"] .input-group-custom .input-group-text,
[data-theme="contrast"] .input-group-text {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
    color-scheme: dark;
}

[data-theme="contrast"] .date-filter-input {
    color: #ffffff !important;
    background: transparent !important;
    color-scheme: dark;
}

[data-theme="contrast"] .date-filter-label,
[data-theme="contrast"] .filter-input-icon {
    color: #FFC107 !important;
}

[data-theme="contrast"] .kpi-chip {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

/* Utilidades de fondo Bootstrap en Alto Contraste */
[data-theme="contrast"] .bg-light,
[data-theme="contrast"] .bg-white,
[data-theme="contrast"] .bg-body,
[data-theme="contrast"] .bg-body-secondary,
[data-theme="contrast"] .bg-body-tertiary,
[data-theme="contrast"] .badge.bg-light,
[data-theme="contrast"] .badge.bg-white,
[data-theme="contrast"] .bg-success-subtle,
[data-theme="contrast"] .bg-warning-subtle,
[data-theme="contrast"] .bg-primary-subtle,
[data-theme="contrast"] .bg-info-subtle,
[data-theme="contrast"] .bg-danger-subtle {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

/* Textos y Encabezados en Alto Contraste */
[data-theme="contrast"] h1,
[data-theme="contrast"] h2,
[data-theme="contrast"] h3,
[data-theme="contrast"] h4,
[data-theme="contrast"] h5,
[data-theme="contrast"] h6,
[data-theme="contrast"] .admin-page-title,
[data-theme="contrast"] strong {
    color: #FFC107 !important;
}

[data-theme="contrast"] .text-dark,
[data-theme="contrast"] .text-muted,
[data-theme="contrast"] .text-secondary,
[data-theme="contrast"] .text-success-emphasis,
[data-theme="contrast"] .text-warning-emphasis,
[data-theme="contrast"] .text-primary-emphasis,
[data-theme="contrast"] .text-info-emphasis,
[data-theme="contrast"] .text-danger-emphasis,
[data-theme="contrast"] p {
    color: #ffffff !important;
}

/* Evitar que span opaque colores de badges o botones */
[data-theme="contrast"] span:not(.badge):not(.badge-count):not([class*="badge"]):not([class*="btn"]):not(.poster-action-btn):not(.floating-subtitle):not(.text-brand-yellow):not(.theme-title-accent):not(.zoom-level-text):not(.floating-counter-badge):not(.quick-nav-label) {
    color: #ffffff;
}

/* Enlaces generales subrayados en amarillo (excluyendo botones, nav-links y tarjetas) */
[data-theme="contrast"] a:not(.btn):not([class*="btn"]):not([class*="button"]):not(.bg-brand-yellow):not(.nav-link):not(.navbar-brand):not(.quick-nav-card):not(.client-logo-link):not(.fyu-nav-link):not(.fyu-contact-link):not(.contact-link):not(.poster-action-btn):not(.footer-internal-link) {
    color: #FFC107 !important;
    text-decoration: underline !important;
    font-weight: 700 !important;
}

/* Botones estándar en Alto Contraste */
[data-theme="contrast"] .btn {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .btn:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .btn svg,
[data-theme="contrast"] .btn span,
[data-theme="contrast"] .btn i {
    color: inherit !important;
    fill: currentColor !important;
}

/* Botón Close de Modals en Alto Contraste */
[data-theme="contrast"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%) !important;
    opacity: 1 !important;
}

/* Botones y Enlaces de Acción Amarillos (bg-brand-yellow, btn-warning, etc.) */
[data-theme="contrast"] .bg-brand-yellow,
[data-theme="contrast"] a.bg-brand-yellow,
[data-theme="contrast"] button.bg-brand-yellow,
[data-theme="contrast"] .btn-warning,
[data-theme="contrast"] .btn-policy-official,
[data-theme="contrast"] .btn-error-primary {
    background-color: #FFC107 !important;
    color: #000000 !important;
    border: 2px solid #FFC107 !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

[data-theme="contrast"] .bg-brand-yellow *,
[data-theme="contrast"] a.bg-brand-yellow *,
[data-theme="contrast"] button.bg-brand-yellow *,
[data-theme="contrast"] .btn-warning *,
[data-theme="contrast"] .btn-policy-official *,
[data-theme="contrast"] .btn-error-primary * {
    color: #000000 !important;
}

[data-theme="contrast"] .bg-brand-yellow:hover,
[data-theme="contrast"] a.bg-brand-yellow:hover,
[data-theme="contrast"] button.bg-brand-yellow:hover,
[data-theme="contrast"] .btn-warning:hover,
[data-theme="contrast"] .btn-policy-official:hover,
[data-theme="contrast"] .btn-error-primary:hover {
    background-color: #000000 !important;
    color: #FFC107 !important;
    border: 2px solid #FFC107 !important;
    text-decoration: none !important;
}

[data-theme="contrast"] .bg-brand-yellow:hover *,
[data-theme="contrast"] a.bg-brand-yellow:hover *,
[data-theme="contrast"] button.bg-brand-yellow:hover *,
[data-theme="contrast"] .btn-warning:hover *,
[data-theme="contrast"] .btn-policy-official:hover *,
[data-theme="contrast"] .btn-error-primary:hover * {
    color: #FFC107 !important;
}

[data-theme="contrast"] code {
    background-color: #000000 !important;
    color: #FFC107 !important;
    border: 1px solid #FFC107 !important;
    padding: 2px 5px !important;
    border-radius: 4px !important;
}

/* Tablas en Alto Contraste */
[data-theme="contrast"] .table th,
[data-theme="contrast"] .table-compact th {
    background-color: #000000 !important;
    color: #FFC107 !important;
    border: 2px solid #FFC107 !important;
}

[data-theme="contrast"] .table td,
[data-theme="contrast"] .table-compact td,
[data-theme="contrast"] .table tbody tr td {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 1px solid #FFC107 !important;
}

[data-theme="contrast"] .table tbody tr:hover td,
[data-theme="contrast"] .table-compact tr:hover td,
[data-theme="contrast"] .edp-row:hover td {
    background-color: #1a1a1a !important;
}

/* Barras de Progreso en Alto Contraste */
[data-theme="contrast"] .progress {
    background-color: #000000 !important;
    border: 1px solid #FFC107 !important;
}

[data-theme="contrast"] .progress-bar {
    background-color: #FFC107 !important;
}

/* Líneas de negocio en Alto Contraste */
[data-theme="contrast"] .business-icon img {
    filter: brightness(0) invert(1) !important;
}
[data-theme="contrast"] .business-title {
    color: #FFC107 !important;
}

/* Logotipos corporativos en Blanco Nítido en Alto Contraste (Web Pública y Panel) */
[data-theme="contrast"] .fyu-footer-logo-img,
[data-theme="contrast"] .navbar-brand img,
[data-theme="contrast"] .navbar-custom .navbar-brand img,
[data-theme="contrast"] .hero-logo-img,
[data-theme="contrast"] .trajectory-logo-img,
[data-theme="contrast"] #trayectoria img,
[data-theme="contrast"] [data-purpose="about-trajectory"] img,
[data-theme="contrast"] .sidebar-brand img,
[data-theme="contrast"] .brand-logo-white {
    filter: brightness(0) invert(1) !important;
    opacity: 1 !important;
}
[data-theme="contrast"] .client-logo-item {
    background-color: #ffffff !important;
    border: 2px solid #FFC107 !important;
    border-radius: 8px !important;
    padding: 6px !important;
}

/* --- PORTAFOLIO EN ALTO CONTRASTE --- */
[data-theme="contrast"] .project-grid-admin {
    background-color: #000000 !important;
}

[data-theme="contrast"] .project-card-admin {
    background-color: #050505 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .project-card-admin:hover {
    border-color: #ffffff !important;
    box-shadow: 0 0 16px rgba(255, 193, 7, 0.4) !important;
}

[data-theme="contrast"] .project-card-admin-body {
    background-color: #050505 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .project-card-admin-title {
    color: #FFC107 !important;
}

[data-theme="contrast"] .project-card-admin-sub {
    color: #ffffff !important;
}

[data-theme="contrast"] .project-card-admin-footer {
    background-color: #000000 !important;
    border-top: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .btn-order-move {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .btn-order-move:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .badge-normal {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .badge-destacado {
    background-color: #FFC107 !important;
    border: 2px solid #FFC107 !important;
    color: #000000 !important;
    font-weight: 800 !important;
}

[data-theme="contrast"] .project-badge-top-left {
    background: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .view-btn.active {
    background-color: #FFC107 !important;
    border: 2px solid #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .view-btn:not(.active) {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

/* --- TARJETAS, PORTAFOLIO Y COMPONENTES PÚBLICOS EN ALTO CONTRASTE --- */

/* Tarjetas de Proyectos Destacados (Home) */
[data-theme="contrast"] .theme-project-card {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .theme-project-card:hover {
    border-color: #ffffff !important;
    box-shadow: 0 0 20px rgba(255, 193, 7, 0.4) !important;
}

[data-theme="contrast"] .theme-project-card h3 {
    color: #FFC107 !important;
}

[data-theme="contrast"] .theme-project-card p {
    color: #ffffff !important;
}

[data-theme="contrast"] .theme-project-card button,
[data-theme="contrast"] .theme-project-card .text-\[\#16191D\],
[data-theme="contrast"] .theme-project-card button.text-\[\#16191D\] {
    color: #FFC107 !important;
    font-weight: 800 !important;
}

[data-theme="contrast"] .theme-project-card button:hover {
    color: #ffffff !important;
}

[data-theme="contrast"] .theme-project-card button i {
    color: #FFC107 !important;
}

[data-theme="contrast"] .theme-project-card .project-meta {
    border-top: 1px solid #333333 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .theme-project-card .project-meta span {
    color: #ffffff !important;
}

[data-theme="contrast"] .theme-project-card .bg-black\/75 {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .theme-project-card .bg-black\/75 span {
    color: #ffffff !important;
}

/* Tarjetas de Líneas de Negocio (Pillars en Home) */
[data-theme="contrast"] .theme-pillar-card {
    background-color: #050505 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .theme-pillar-card:hover {
    border-color: #ffffff !important;
    box-shadow: 0 0 16px rgba(255, 193, 7, 0.35) !important;
}

[data-theme="contrast"] .theme-pillar-card h3 {
    color: #FFC107 !important;
}

[data-theme="contrast"] .theme-pillar-card p {
    color: #ffffff !important;
}

[data-theme="contrast"] .pillar-icon-box {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

/* Filtro de Categorías de Portafolio (Proyectos) */
[data-theme="contrast"] .portfolio-filter-container {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
}

[data-theme="contrast"] .portfolio-filter-btn {
    background-color: transparent !important;
    color: #ffffff !important;
    border: 1px solid transparent !important;
}

[data-theme="contrast"] .portfolio-filter-btn span {
    color: #ffffff !important;
}

[data-theme="contrast"] .portfolio-filter-btn:hover {
    background-color: #1a1a1a !important;
    border-color: #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .portfolio-filter-btn:hover span {
    color: #FFC107 !important;
}

[data-theme="contrast"] .portfolio-filter-btn.active {
    background-color: #FFC107 !important;
    border-color: #FFC107 !important;
    color: #000000 !important;
    font-weight: 800 !important;
}

[data-theme="contrast"] .portfolio-filter-btn.active span {
    color: #000000 !important;
    font-weight: 800 !important;
}

[data-theme="contrast"] .portfolio-filter-btn .badge-count {
    background-color: #1f2937 !important;
    color: #FFC107 !important;
    border: 1px solid #FFC107 !important;
}

[data-theme="contrast"] .portfolio-filter-btn.active .badge-count {
    background-color: #000000 !important;
    color: #FFC107 !important;
    border: 1px solid #000000 !important;
}

/* Láminas de Proyecto (Poster Cards en Proyectos) */
[data-theme="contrast"] .project-poster-card {
    background-color: #050505 !important;
    border: 2px solid #FFC107 !important;
    box-shadow: 0 0 16px rgba(255, 193, 7, 0.25) !important;
}

[data-theme="contrast"] .project-poster-card:hover {
    border-color: #ffffff !important;
    box-shadow: 0 0 22px rgba(255, 255, 255, 0.4) !important;
}

[data-theme="contrast"] .project-category-badge {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
    font-weight: 800 !important;
}

[data-theme="contrast"] .project-video-badge {
    background-color: #000000 !important;
    border: 2px solid #ff4d4d !important;
    color: #ff4d4d !important;
    font-weight: 800 !important;
}

[data-theme="contrast"] .poster-action-btn {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
    font-weight: 800 !important;
}

[data-theme="contrast"] .poster-action-btn span,
[data-theme="contrast"] .poster-action-btn svg {
    color: inherit !important;
    fill: currentColor !important;
}

[data-theme="contrast"] .poster-action-btn:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
    border-color: #FFC107 !important;
}

[data-theme="contrast"] .poster-action-btn:hover span,
[data-theme="contrast"] .poster-action-btn:hover svg {
    color: #000000 !important;
    fill: #000000 !important;
}

/* Visor Inmersivo (Modales de Obras y Certificados) */
[data-theme="contrast"] .floating-info-card {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
}

[data-theme="contrast"] .floating-title {
    color: #ffffff !important;
}

[data-theme="contrast"] .floating-subtitle {
    color: #FFC107 !important;
    border-left: 1px solid #FFC107 !important;
}

[data-theme="contrast"] .floating-counter-badge {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .btn-floating-close {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .btn-floating-close:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .btn-floating-close svg {
    fill: currentColor !important;
}

[data-theme="contrast"] .floating-zoom-tools {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
}

[data-theme="contrast"] .zoom-tool-btn {
    background-color: #000000 !important;
    border: 1px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .zoom-tool-btn:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .zoom-tool-btn svg {
    fill: currentColor !important;
}

[data-theme="contrast"] .zoom-level-text {
    color: #ffffff !important;
}

[data-theme="contrast"] .immersive-nav-btn {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .immersive-nav-btn:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .immersive-nav-btn svg {
    fill: currentColor !important;
}

/* Página 404 (Botones y Enlaces Rápidos) */
[data-theme="contrast"] .btn-error-secondary {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 2px solid #ffffff !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

[data-theme="contrast"] .btn-error-secondary:hover {
    background-color: #ffffff !important;
    color: #000000 !important;
}

[data-theme="contrast"] .btn-error-outline {
    background-color: #000000 !important;
    color: #FFC107 !important;
    border: 2px solid #FFC107 !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

[data-theme="contrast"] .btn-error-outline:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .quick-nav-card {
    background-color: #050505 !important;
    border: 2px solid #FFC107 !important;
    text-decoration: none !important;
}

[data-theme="contrast"] .quick-nav-card:hover {
    background-color: #141414 !important;
    border-color: #ffffff !important;
}

[data-theme="contrast"] .quick-nav-card .quick-nav-label {
    color: #FFC107 !important;
    font-weight: 800 !important;
}

[data-theme="contrast"] .quick-nav-card .quick-nav-desc {
    color: #ffffff !important;
}

[data-theme="contrast"] .quick-nav-card .quick-nav-icon {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

/* Navbar Links en Alto Contraste */
[data-theme="contrast"] .navbar-custom .nav-link {
    color: #ffffff !important;
    text-decoration: none !important;
}

[data-theme="contrast"] .navbar-custom .nav-link:hover,
[data-theme="contrast"] .navbar-custom .nav-link.active {
    color: #FFC107 !important;
    background-color: rgba(255, 193, 7, 0.15) !important;
    border-bottom: 2px solid #FFC107 !important;
}

/* Dropdown items y menús en Alto Contraste */
[data-theme="contrast"] .dropdown-item {
    color: #ffffff !important;
    background-color: transparent !important;
}

[data-theme="contrast"] .dropdown-item:hover,
[data-theme="contrast"] .dropdown-item:focus {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .dropdown-item.active {
    background-color: #FFC107 !important;
    color: #000000 !important;
    font-weight: 800 !important;
}

/* --- CLIENTES & ALIADOS EN ALTO CONTRASTE --- */
[data-theme="contrast"] .client-grid-card {
    background-color: #050505 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .client-grid-card:hover {
    border-color: #ffffff !important;
    box-shadow: 0 0 16px rgba(255, 193, 7, 0.4) !important;
}

[data-theme="contrast"] .client-drag-handle {
    color: #FFC107 !important;
}

[data-theme="contrast"] .client-drag-handle:hover {
    color: #000000 !important;
    background-color: #FFC107 !important;
}

[data-theme="contrast"] .client-order-badge {
    background-color: #000000 !important;
    color: #FFC107 !important;
    border: 2px solid #FFC107 !important;
}

[data-theme="contrast"] .client-category-pill {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .client-logo-stage,
[data-theme="contrast"] .client-table-logo-box {
    background-color: #ffffff !important;
    border: 2px solid #FFC107 !important;
}

[data-theme="contrast"] .client-card-title {
    color: #FFC107 !important;
}

[data-theme="contrast"] .client-grid-card a.text-primary,
[data-theme="contrast"] .client-grid-card a {
    color: #FFC107 !important;
    text-decoration: underline !important;
}

[data-theme="contrast"] .client-grid-card a svg {
    fill: currentColor !important;
}

[data-theme="contrast"] .client-grid-card .border-top {
    border-top: 2px solid #FFC107 !important;
}

/* --- BOTONES DE ACCIÓN RÁPIDA Y OUTLINE (GLOBAL EN ALTO CONTRASTE) --- */
[data-theme="contrast"] .btn-action-icon,
[data-theme="contrast"] .action-btn,
[data-theme="contrast"] .btn-outline-secondary,
[data-theme="contrast"] .btn-outline-dark {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .btn-action-icon:hover,
[data-theme="contrast"] .action-btn:hover,
[data-theme="contrast"] .btn-outline-secondary:hover,
[data-theme="contrast"] .btn-outline-dark:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

/* Botones de Editar y Outline Primary en Alto Contraste */
[data-theme="contrast"] .btn-outline-primary,
[data-theme="contrast"] .btn-action-icon.btn-outline-primary,
[data-theme="contrast"] .action-btn.btn-outline-primary,
[data-theme="contrast"] button[title*="Editar"],
[data-theme="contrast"] .btn[data-bs-target*="Editar"] {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .btn-outline-primary:hover,
[data-theme="contrast"] .btn-action-icon.btn-outline-primary:hover,
[data-theme="contrast"] .action-btn.btn-outline-primary:hover,
[data-theme="contrast"] button[title*="Editar"]:hover,
[data-theme="contrast"] .btn[data-bs-target*="Editar"]:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .btn-outline-primary svg,
[data-theme="contrast"] button[title*="Editar"] svg {
    color: inherit !important;
    fill: currentColor !important;
}

/* Botones de Eliminar y Outline Danger en Alto Contraste */
[data-theme="contrast"] .btn-outline-danger,
[data-theme="contrast"] .btn-action-icon.btn-action-delete,
[data-theme="contrast"] .btn-action-icon.text-danger,
[data-theme="contrast"] .btn-action-icon.btn-outline-danger,
[data-theme="contrast"] .action-btn.btn-outline-danger,
[data-theme="contrast"] button[title*="Eliminar"] {
    background-color: #000000 !important;
    border: 2px solid #ff4d4d !important;
    color: #ff4d4d !important;
}

[data-theme="contrast"] .btn-outline-danger:hover,
[data-theme="contrast"] .btn-action-icon.btn-action-delete:hover,
[data-theme="contrast"] .btn-action-icon.text-danger:hover,
[data-theme="contrast"] .btn-action-icon.btn-outline-danger:hover,
[data-theme="contrast"] .action-btn.btn-outline-danger:hover,
[data-theme="contrast"] button[title*="Eliminar"]:hover {
    background-color: #ff4d4d !important;
    color: #000000 !important;
}

[data-theme="contrast"] .btn-outline-danger svg,
[data-theme="contrast"] button[title*="Eliminar"] svg {
    color: inherit !important;
    fill: currentColor !important;
}

/* Botones Warning & Success en Alto Contraste */
[data-theme="contrast"] .btn-outline-warning {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .btn-outline-warning:hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .btn-outline-warning svg {
    color: inherit !important;
    fill: currentColor !important;
}

[data-theme="contrast"] .btn-outline-success {
    background-color: #000000 !important;
    border: 2px solid #00ff66 !important;
    color: #00ff66 !important;
}

[data-theme="contrast"] .btn-outline-success:hover {
    background-color: #00ff66 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .btn-outline-success svg {
    color: inherit !important;
    fill: currentColor !important;
}

/* Botones Light (no deshabilitados) y Deshabilitados en Alto Contraste */
[data-theme="contrast"] .btn-light:not([disabled]) {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}

[data-theme="contrast"] .btn-light:not([disabled]):hover {
    background-color: #FFC107 !important;
    color: #000000 !important;
}

[data-theme="contrast"] .btn-light:not([disabled]) svg {
    fill: currentColor !important;
    color: inherit !important;
}

[data-theme="contrast"] .btn-light[disabled],
[data-theme="contrast"] .btn[disabled] {
    background-color: #1a1a1a !important;
    border: 2px solid #555555 !important;
    color: #888888 !important;
    opacity: 0.7 !important;
}

[data-theme="contrast"] .btn-light[disabled] svg,
[data-theme="contrast"] .btn[disabled] svg {
    fill: #888888 !important;
    color: #888888 !important;
}

/* --- CORREOS ELECTRÓNICOS Y CONTACTOS EN ALTO CONTRASTE --- */
[data-theme="contrast"] a[href^="mailto:"],
[data-theme="contrast"] a.text-primary,
[data-theme="contrast"] .table a[href^="mailto:"],
[data-theme="contrast"] .table a.text-primary {
    color: #FFC107 !important;
    text-decoration: underline !important;
}

[data-theme="contrast"] a[href^="mailto:"] svg,
[data-theme="contrast"] a[href^="mailto:"] .bi-envelope-fill,
[data-theme="contrast"] a[href^="mailto:"] .bi-envelope,
[data-theme="contrast"] svg.bi-envelope-fill,
[data-theme="contrast"] svg.bi-envelope {
    color: #FFC107 !important;
    fill: currentColor !important;
}

/* Teléfonos y llamadas en Alto Contraste */
[data-theme="contrast"] button[onclick*="copiarAlPortapapeles"],
[data-theme="contrast"] .phone-link,
[data-theme="contrast"] a[href^="tel:"] {
    color: #ffffff !important;
}

[data-theme="contrast"] svg.bi-telephone-fill,
[data-theme="contrast"] svg.bi-telephone,
[data-theme="contrast"] svg.bi-copy {
    color: #FFC107 !important;
    fill: currentColor !important;
}

[data-theme="contrast"] svg.bi-whatsapp {
    fill: #00ff66 !important;
}

/* Badges en Alto Contraste */
[data-theme="contrast"] .badge.bg-white,
[data-theme="contrast"] .badge.bg-light {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

[data-theme="contrast"] .badge.bg-white span,
[data-theme="contrast"] .badge.bg-light span,
[data-theme="contrast"] .badge.bg-white .text-dark,
[data-theme="contrast"] .badge.bg-light .text-dark {
    color: #ffffff !important;
}

[data-theme="contrast"] .export-option-box {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
}

[data-theme="contrast"] .export-option-title {
    color: #FFC107 !important;
}

[data-theme="contrast"] .export-preset-pill {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: 2px solid #FFC107 !important;
}

[data-theme="contrast"] .export-preset-pill.active {
    background-color: #FFC107 !important;
    color: #000000 !important;
    border: 2px solid #FFC107 !important;
}

[data-theme="contrast"] .project-dossier-card,
[data-theme="contrast"] .project-export-item-card {
    background-color: #050505 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
}

/* ==========================================================================
   ESCALAS DE TAMAÑO DE TEXTO (A-, A, A+, A++)
   ========================================================================== */
html[data-font-size="sm"] {
    font-size: 14px !important;
}

html[data-font-size="normal"] {
    font-size: 16px !important;
}

html[data-font-size="lg"] {
    font-size: 18.5px !important;
}

html[data-font-size="xl"] {
    font-size: 21px !important;
}

/* ==========================================================================
   TIPOGRAFÍA PARA DISLEXIA / ALTA LEGIBILIDAD
   ========================================================================== */
html[data-readable-font="true"] body,
html[data-readable-font="true"] button,
html[data-readable-font="true"] input,
html[data-readable-font="true"] select,
html[data-readable-font="true"] textarea,
html[data-readable-font="true"] .table,
html[data-readable-font="true"] h1,
html[data-readable-font="true"] h2,
html[data-readable-font="true"] h3,
html[data-readable-font="true"] h4,
html[data-readable-font="true"] h5,
html[data-readable-font="true"] h6 {
    font-family: Arial, "Helvetica Neue", sans-serif !important;
    letter-spacing: 0.04em !important;
    line-height: 1.8 !important;
    word-spacing: 0.1em !important;
}

/* ==========================================================================
   RESALTADO DE ENLACES (UNDERLINE LINKS)
   ========================================================================== */
html[data-highlight-links="true"] a:not(.btn):not(.whatsapp-global-btn):not(.accessibility-global-btn) {
    text-decoration: underline 2px #FFC107 !important;
    text-underline-offset: 4px !important;
    font-weight: 600 !important;
}

/* ==========================================================================
   ESCALA DE GRISES (ACCESIBILIDAD PARA DALTONISMO Y CONFORT VISUAL)
   ========================================================================== */
html[data-grayscale="true"] {
    filter: grayscale(100%) !important;
}

/* ==========================================================================
   ENLACE DISCRETO DE ACCESO INTERNO EN PIE DE PÁGINA (FOOTER)
   ========================================================================== */
.footer-internal-link {
    color: var(--fyu-text-muted, #94a3b8) !important;
    text-decoration: none !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    opacity: 0.75;
    transition: opacity 0.2s ease, color 0.2s ease;
    display: inline-block;
}

.footer-internal-link:hover {
    opacity: 1;
    color: var(--fyu-institutional-gold, #b45309) !important;
    text-decoration: underline !important;
}

.footer-internal-link:focus-visible {
    opacity: 1;
    color: var(--fyu-institutional-gold, #b45309) !important;
    text-decoration: underline !important;
    outline: 2px dashed var(--fyu-institutional-gold);
    outline-offset: 3px;
}

/* ==========================================================================
   BOTÓN DE ACCESIBILIDAD EN NAVBAR SUPERIOR
   ========================================================================== */
.btn-nav-accessibility {
    background-color: transparent;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 0px !important; /* Estética Sharp 0px */
    padding: 7px 14px !important;
    font-size: 13.5px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    transition: all 0.2s ease;
    cursor: pointer;
    margin-left: 8px;
}

.btn-nav-accessibility:hover,
.btn-nav-accessibility:focus {
    background-color: var(--fyu-institutional-gold);
    border-color: var(--fyu-institutional-gold);
    color: var(--fyu-primary) !important;
    transform: translateY(-1px);
}

.btn-nav-accessibility:focus-visible {
    outline: 2px solid var(--fyu-institutional-gold) !important;
    outline-offset: 2px !important;
}

.btn-nav-accessibility svg {
    flex-shrink: 0;
}

@media (max-width: 991px) {
    .btn-nav-accessibility {
        margin-left: 0;
        margin-top: 8px;
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================================================
   BURBUJA FLOTANTE GLOBAL DE ACCESIBILIDAD (CIRCULAR SOBRE WHATSAPP)
   - Separación exacta de 14px por encima del botón de WhatsApp (80px + 14px = 94px)
   - Misma geometría circular 56px x 56px y sombra consistente
   ========================================================================== */
.accessibility-global-container {
    position: fixed;
    bottom: 94px; /* Exactamente 14px por encima de WhatsApp (24px + 56px + 14px) */
    right: 24px;
    z-index: 9998;
    display: flex;
    align-items: center;
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}

body.modal-open .accessibility-global-container,
.modal-open #accessibilityGlobalWidget {
    opacity: 0 !important;
    pointer-events: none !important;
    transform: scale(0.6) translateY(20px) !important;
    visibility: hidden !important;
}

.accessibility-global-btn {
    width: 56px;
    height: 56px;
    background-color: var(--fyu-graphite, #1E232A);
    color: var(--fyu-institutional-gold, #FFC107) !important;
    border: 2px solid var(--fyu-institutional-gold, #FFC107);
    border-radius: 50% !important; /* Diseño circular idéntico a WhatsApp */
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.28);
    text-decoration: none;
    cursor: pointer;
    position: relative;
    transition: transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.25s ease, background-color 0.2s ease, color 0.2s ease;
}

.accessibility-global-btn:hover {
    background-color: var(--fyu-institutional-gold, #FFC107);
    color: var(--fyu-primary, #1E232A) !important;
    transform: scale(1.08);
    box-shadow: 0 6px 20px rgba(255, 193, 7, 0.45);
}

.accessibility-global-btn:focus-visible {
    outline: 3px solid var(--fyu-institutional-gold, #FFC107) !important;
    outline-offset: 4px !important;
    box-shadow: 0 0 0 6px rgba(255, 193, 7, 0.35), 0 4px 16px rgba(0, 0, 0, 0.28) !important;
}

.accessibility-global-btn .material-symbols-outlined {
    font-size: 28px !important;
    line-height: 1 !important;
    display: inline-block;
    vertical-align: middle;
}

.accessibility-global-tooltip {
    position: absolute;
    right: 68px;
    background-color: var(--fyu-graphite);
    color: #ffffff;
    font-size: 12.5px;
    font-weight: 700;
    padding: 7px 14px;
    border-radius: 4px;
    border: 1px solid var(--fyu-institutional-gold);
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
    transform: translateX(10px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.accessibility-global-tooltip::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 100%;
    margin-top: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: transparent transparent transparent var(--fyu-graphite);
}

.accessibility-global-btn:hover .accessibility-global-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}

@media (max-width: 576px) {
    .accessibility-global-container {
        bottom: 82px; /* 14px por encima del botón de WhatsApp en móvil (18px + 50px + 14px) */
        right: 18px;
    }
    .accessibility-global-btn {
        width: 50px;
        height: 50px;
    }
    .accessibility-global-btn .material-symbols-outlined {
        font-size: 24px !important;
    }
    .accessibility-global-tooltip {
        display: none;
    }
}

/* ==========================================================================
   PANEL / DRAWER LATERAL DE ACCESIBILIDAD (DISEÑO INDUSTRIAL SHARP)
   ========================================================================== */
.fyu-accessibility-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(3px);
    z-index: 10000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.fyu-accessibility-backdrop.is-open {
    opacity: 1;
    visibility: visible;
}

.fyu-accessibility-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 380px;
    max-width: 92vw;
    background-color: #ffffff;
    z-index: 10001;
    box-shadow: -8px 0 30px rgba(0, 0, 0, 0.35);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
    border-left: 3px solid var(--fyu-institutional-gold);
}

.fyu-accessibility-backdrop.is-open .fyu-accessibility-drawer {
    transform: translateX(0);
}

/* Cabecera del Panel */
.fyu-acc-header {
    background-color: var(--fyu-graphite);
    color: #ffffff;
    padding: 18px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 2px solid var(--fyu-institutional-gold);
}

.fyu-acc-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #ffffff;
}

.fyu-acc-title svg {
    color: var(--fyu-institutional-gold);
}

.fyu-acc-close {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #ffffff;
    width: 32px;
    height: 32px;
    border-radius: 0px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.fyu-acc-close:hover {
    background-color: var(--fyu-institutional-gold);
    border-color: var(--fyu-institutional-gold);
    color: var(--fyu-primary);
}

/* Cuerpo con Scroll */
.fyu-acc-body {
    padding: 20px;
    overflow-y: auto;
    flex: 1;
    background-color: var(--fyu-bg);
}

.fyu-acc-section {
    background: #ffffff;
    border: 1px solid var(--fyu-border);
    border-radius: 0px; /* Sharp 0px */
    padding: 16px;
    margin-bottom: 16px;
}

.fyu-acc-section-title {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fyu-slate-gray);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
    border-bottom: 1px solid var(--fyu-surface-container);
    padding-bottom: 6px;
}

/* Opciones de Modo (Theme Selector Grid) */
.fyu-theme-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.fyu-theme-btn {
    border: 2px solid var(--fyu-border);
    background: #ffffff;
    padding: 12px 6px;
    border-radius: 0px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--fyu-slate-gray);
    transition: all 0.2s ease;
}

.fyu-theme-btn:hover {
    border-color: var(--fyu-institutional-gold);
}

.fyu-theme-btn.is-active {
    border-color: var(--fyu-institutional-gold);
    background-color: rgba(255, 193, 7, 0.12);
    color: var(--fyu-primary);
    box-shadow: inset 0 0 0 1px var(--fyu-institutional-gold);
}

/* Selector de Tamaño de Letra */
.fyu-fontsize-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}

.fyu-fontsize-btn {
    border: 1px solid var(--fyu-border);
    background: #ffffff;
    padding: 8px 4px;
    border-radius: 0px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
    font-size: 13px;
    color: var(--fyu-slate-gray);
}

.fyu-fontsize-btn:hover {
    border-color: var(--fyu-institutional-gold);
}

.fyu-fontsize-btn.is-active {
    background-color: var(--fyu-graphite);
    color: var(--fyu-institutional-gold);
    border-color: var(--fyu-graphite);
}

/* Switches de Accesibilidad */
.fyu-acc-switch-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px dashed var(--fyu-surface-container);
}

.fyu-acc-switch-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.fyu-acc-switch-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--fyu-text);
    margin: 0;
    cursor: pointer;
}

.fyu-acc-switch-desc {
    font-size: 11px;
    color: var(--fyu-text-muted);
    margin: 0;
}

/* Custom Toggle Switch */
.fyu-switch {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
    flex-shrink: 0;
}

.fyu-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.fyu-slider {
    position: absolute;
    cursor: pointer;
    inset: 0;
    background-color: #cbd5e1;
    transition: .25s ease;
    border-radius: 0px; /* Sharp 0px */
}

.fyu-slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: #ffffff;
    transition: .25s ease;
    border-radius: 0px; /* Sharp 0px */
}

.fyu-switch input:checked + .fyu-slider {
    background-color: var(--fyu-institutional-gold);
}

.fyu-switch input:checked + .fyu-slider:before {
    transform: translateX(20px);
    background-color: var(--fyu-primary);
}

/* Pie del Panel */
.fyu-acc-footer {
    padding: 16px 20px;
    background-color: #ffffff;
    border-top: 1px solid var(--fyu-border);
    display: flex;
    gap: 10px;
}

.fyu-btn-reset {
    flex: 1;
    background: transparent;
    border: 1px solid var(--fyu-border);
    padding: 10px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fyu-slate-gray);
    cursor: pointer;
    transition: all 0.2s ease;
    border-radius: 0px;
}

.fyu-btn-reset:hover {
    background-color: #f1f5f9;
    border-color: #cbd5e1;
    color: #1e293b;
}

.fyu-btn-apply {
    flex: 1.2;
    background-color: var(--fyu-institutional-gold);
    color: var(--fyu-primary);
    border: 1px solid var(--fyu-institutional-gold);
    padding: 10px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.2s ease;
    border-radius: 0px;
}

.fyu-btn-apply:hover {
    background-color: var(--fyu-institutional-gold-hover);
}

/* --- ADAPTACIÓN DE TEMA PARA EL DRAWER DE ACCESIBILIDAD --- */
[data-theme="dark"] .fyu-accessibility-drawer {
    background-color: #121518 !important;
    border-left-color: var(--fyu-institutional-gold) !important;
}
[data-theme="dark"] .fyu-acc-body {
    background-color: #121518 !important;
}
[data-theme="dark"] .fyu-acc-section {
    background-color: #1e232a !important;
    border-color: #2e353f !important;
}
[data-theme="dark"] .fyu-acc-section-title {
    color: #FFC107 !important;
    border-bottom-color: #2e353f !important;
}
[data-theme="dark"] .fyu-theme-btn,
[data-theme="dark"] .fyu-fontsize-btn {
    background-color: #161a20 !important;
    border-color: #374151 !important;
    color: #eff1f3 !important;
}
[data-theme="dark"] .fyu-theme-btn.is-active,
[data-theme="dark"] .fyu-fontsize-btn.is-active {
    background-color: #FFC107 !important;
    border-color: #FFC107 !important;
    color: #121518 !important;
}
[data-theme="dark"] .fyu-acc-switch-label {
    color: #eff1f3 !important;
}
[data-theme="dark"] .fyu-acc-switch-desc {
    color: #94a3b8 !important;
}
[data-theme="dark"] .fyu-acc-footer {
    background-color: #161a20 !important;
    border-top-color: #2e353f !important;
}
[data-theme="dark"] .fyu-btn-reset {
    background-color: #1e232a !important;
    border-color: #374151 !important;
    color: #eff1f3 !important;
}

[data-theme="contrast"] .fyu-accessibility-drawer {
    background-color: #000000 !important;
    border-left: 3px solid #FFC107 !important;
}
[data-theme="contrast"] .fyu-acc-body {
    background-color: #000000 !important;
}
[data-theme="contrast"] .fyu-acc-section {
    background-color: #050505 !important;
    border: 2px solid #FFC107 !important;
}
[data-theme="contrast"] .fyu-acc-section-title {
    color: #FFC107 !important;
    border-bottom-color: #FFC107 !important;
}
[data-theme="contrast"] .fyu-theme-btn,
[data-theme="contrast"] .fyu-fontsize-btn {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #ffffff !important;
}
[data-theme="contrast"] .fyu-theme-btn.is-active,
[data-theme="contrast"] .fyu-fontsize-btn.is-active {
    background-color: #FFC107 !important;
    border-color: #FFC107 !important;
    color: #000000 !important;
}
[data-theme="contrast"] .fyu-acc-switch-label {
    color: #ffffff !important;
}
[data-theme="contrast"] .fyu-acc-switch-desc {
    color: #FFC107 !important;
}
[data-theme="contrast"] .fyu-acc-footer {
    background-color: #000000 !important;
    border-top: 2px solid #FFC107 !important;
}
[data-theme="contrast"] .fyu-btn-reset {
    background-color: #000000 !important;
    border: 2px solid #FFC107 !important;
    color: #FFC107 !important;
}
