/* ═══════════════════════════════════════════════════════════════════════
   SIA · Tema claro / oscuro (2026-09-26)
   - Variables --sia-*: las hojas del SIA usan var(--sia-x, color original), así el modo claro se ve igual
     aunque esta hoja no cargue (correos, PDF, ventanas impresas).
   - Modo oscuro: <html data-bs-theme="dark"> (Bootstrap 5.3 lo entiende de forma nativa).
   - Pulido común de tarjetas, tablas, formularios, botones y librerías (DataTables, Select2, SweetAlert2).
   ═══════════════════════════════════════════════════════════════════════ */
:root {
    color-scheme: light;
    --sia-bg: #f8fafc;          --sia-surface: #ffffff;      --sia-surface-2: #fafbfc;   --sia-hover: #f1f5f9;
    --sia-border: #e2e8f0;      --sia-border-soft: #f1f5f9;  --sia-border-strong: #cbd5e1;
    --sia-text: #0f172a;        --sia-brand: #0f2557;        --sia-text-2: #334155;      --sia-text-3: #475569;
    --sia-muted: #64748b;       --sia-muted-2: #94a3b8;
    --sia-primary: #2563eb;     --sia-primary-hover: #1d4ed8; --sia-primary-soft: #eff6ff; --sia-link: #2563eb;
    --sia-ok-soft: #dcfce7;     --sia-ok-text: #15803d;
    --sia-warn-soft: #fef3c7;   --sia-warn-text: #b45309;
    --sia-bad-soft: #fee2e2;    --sia-bad-text: #b91c1c;
    --sia-info-soft: #e0f2fe;   --sia-info-text: #0369a1;
    --sia-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 3px rgba(15, 23, 42, .06);
    --sia-shadow-lg: 0 12px 32px rgba(15, 23, 42, .12);
    --sia-radius: 12px;
    --sia-focus: 0 0 0 3px rgba(37, 99, 235, .18);
}

[data-bs-theme="dark"] {
    color-scheme: dark;
    --sia-bg: #0b1120;          --sia-surface: #111827;      --sia-surface-2: #0f172a;   --sia-hover: #1a2436;
    --sia-border: #243044;      --sia-border-soft: #1c2638;  --sia-border-strong: #334155;
    --sia-text: #e5e7eb;        --sia-brand: #c7d2fe;        --sia-text-2: #cbd5e1;      --sia-text-3: #aab4c3;
    --sia-muted: #94a3b8;       --sia-muted-2: #7c8799;
    --sia-primary: #3b82f6;     --sia-primary-hover: #60a5fa; --sia-primary-soft: rgba(59, 130, 246, .16); --sia-link: #93c5fd;
    --sia-ok-soft: rgba(16, 185, 129, .16);  --sia-ok-text: #34d399;
    --sia-warn-soft: rgba(245, 158, 11, .16); --sia-warn-text: #fbbf24;
    --sia-bad-soft: rgba(239, 68, 68, .16);  --sia-bad-text: #f87171;
    --sia-info-soft: rgba(14, 165, 233, .16); --sia-info-text: #7dd3fc;
    --sia-shadow: 0 0 0 1px rgba(255, 255, 255, .02);
    --sia-shadow-lg: 0 16px 40px rgba(0, 0, 0, .5);
    --sia-focus: 0 0 0 3px rgba(59, 130, 246, .35);

    /* Bootstrap 5.3 con la misma paleta */
    --bs-body-bg: var(--sia-bg);             --bs-body-bg-rgb: 11, 17, 32;
    --bs-body-color: var(--sia-text-2);      --bs-body-color-rgb: 203, 213, 225;
    --bs-emphasis-color: #f8fafc;            --bs-heading-color: var(--sia-text);
    --bs-secondary-color: var(--sia-muted);  --bs-tertiary-color: var(--sia-muted-2);
    --bs-secondary-bg: var(--sia-surface-2); --bs-tertiary-bg: var(--sia-hover);
    --bs-border-color: var(--sia-border);    --bs-border-color-translucent: rgba(255, 255, 255, .08);
    --bs-link-color: var(--sia-link);        --bs-link-color-rgb: 147, 197, 253;
    --bs-link-hover-color: #bfdbfe;          --bs-link-hover-color-rgb: 191, 219, 254;
    /* menú lateral un poco más profundo */
    --sidebar-bg: #0a1530;
    --sidebar-bg-dark: #060d1f;
}

/* ── Base ─────────────────────────────────────────────────────────────── */
body.has-sidebar { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body.has-sidebar h1, body.has-sidebar h2, body.has-sidebar h3 { letter-spacing: -.01em; }
.table, .dataTable, .kpi-value, .stat-number { font-variant-numeric: tabular-nums; }
::selection { background: rgba(37, 99, 235, .18); }

/* ── Tarjetas ─────────────────────────────────────────────────────────── */
body.has-sidebar .card { --bs-card-bg: var(--sia-surface); --bs-card-border-color: var(--sia-border); --bs-card-cap-bg: var(--sia-surface-2); border-radius: var(--sia-radius); }
body.has-sidebar .card > .card-header:first-child { border-radius: calc(var(--sia-radius) - 1px) calc(var(--sia-radius) - 1px) 0 0; }
body.has-sidebar .card-header { border-bottom-color: var(--sia-border); }

/* ── Tablas ───────────────────────────────────────────────────────────── */
body.has-sidebar .table { --bs-table-bg: transparent; --bs-table-color: var(--sia-text-2); --bs-table-border-color: var(--sia-border);
    --bs-table-hover-bg: var(--sia-hover); --bs-table-hover-color: var(--sia-text); --bs-table-striped-bg: rgba(148, 163, 184, .06); }
body.has-sidebar .table > thead > tr > th { color: var(--sia-muted); font-size: .72rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; border-bottom-width: 1px; }

/* ── Formularios ──────────────────────────────────────────────────────── */
body.has-sidebar .form-control, body.has-sidebar .form-select { border-radius: 8px; border-color: var(--sia-border-strong); }
body.has-sidebar .form-control:focus, body.has-sidebar .form-select:focus { border-color: var(--sia-primary); box-shadow: var(--sia-focus); }
body.has-sidebar .form-control::placeholder { color: var(--sia-muted-2); }
body.has-sidebar .form-label { color: var(--sia-text-3); font-weight: 500; }

/* ── Botones, insignias, ventanas ─────────────────────────────────────── */
body.has-sidebar .btn { border-radius: 8px; font-weight: 600; }
body.has-sidebar .btn:focus-visible { box-shadow: var(--sia-focus); }
body.has-sidebar .badge { font-weight: 600; letter-spacing: .01em; }
body.has-sidebar .modal-content { border-radius: 14px; border-color: var(--sia-border); box-shadow: var(--sia-shadow-lg); }
body.has-sidebar .modal-header, body.has-sidebar .modal-footer { border-color: var(--sia-border); }
body.has-sidebar .dropdown-menu { border-radius: 10px; border-color: var(--sia-border); box-shadow: var(--sia-shadow-lg); }

/* ── Selector Claro / Oscuro / Automático (pie del menú) ──────────────── */
.sia-tema { display: flex; gap: 2px; padding: 3px; margin-bottom: .5rem; border-radius: 10px; background: rgba(255, 255, 255, .05); border: 1px solid var(--sidebar-border, rgba(255, 255, 255, .07)); }
.sia-tema button { flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px; border: 0; background: transparent; color: var(--sidebar-text, rgba(226, 232, 240, .72));
    font: 600 .72rem/1 inherit; padding: .45rem .3rem; border-radius: 7px; cursor: pointer; transition: background .15s, color .15s; }
.sia-tema button:hover { color: #fff; background: rgba(255, 255, 255, .06); }
.sia-tema button.on { background: rgba(59, 130, 246, .28); color: #fff; }
.sia-tema button:focus-visible { outline: 2px solid #60a5fa; outline-offset: 1px; }
body.sidebar-collapsed .sia-tema { padding: 2px; }
body.sidebar-collapsed .sia-tema button span, body.sidebar-collapsed .sia-tema button:not(.on) { display: none; }
.sia-tema-nota { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 2147482500; background: #1f2937; color: #fff; padding: 10px 16px; border-radius: 10px;
    font: 500 13px/1.4 Inter, system-ui, sans-serif; box-shadow: 0 10px 30px rgba(0, 0, 0, .3); }

/* ═══ Modo oscuro: lo que Bootstrap no cambia solo ═══════════════════════ */
[data-bs-theme="dark"] body.has-sidebar { background: var(--sia-bg) !important; color: var(--sia-text-2); }
[data-bs-theme="dark"] .bg-white, [data-bs-theme="dark"] .bg-body { background-color: var(--sia-surface) !important; }
[data-bs-theme="dark"] .bg-light, [data-bs-theme="dark"] .bg-body-tertiary, [data-bs-theme="dark"] .bg-body-secondary { background-color: var(--sia-surface-2) !important; }
[data-bs-theme="dark"] .text-dark, [data-bs-theme="dark"] .text-black, [data-bs-theme="dark"] .text-body { color: var(--sia-text) !important; }
[data-bs-theme="dark"] .text-black-50 { color: var(--sia-muted) !important; }
[data-bs-theme="dark"] .border-light { border-color: var(--sia-border) !important; }
[data-bs-theme="dark"] .table-light { --bs-table-bg: var(--sia-surface-2); --bs-table-color: var(--sia-text); --bs-table-border-color: var(--sia-border);
    --bs-table-striped-bg: var(--sia-hover); --bs-table-hover-bg: var(--sia-hover); --bs-table-active-bg: var(--sia-hover); color: var(--sia-text); border-color: var(--sia-border); }
[data-bs-theme="dark"] .table-white, [data-bs-theme="dark"] .table > :not(caption) > * > * { border-bottom-color: var(--sia-border); }
[data-bs-theme="dark"] .btn-light { --bs-btn-bg: var(--sia-hover); --bs-btn-color: var(--sia-text); --bs-btn-border-color: var(--sia-border);
    --bs-btn-hover-bg: #243044; --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: #334155; --bs-btn-active-bg: #2b3a52; --bs-btn-active-color: #fff; }
[data-bs-theme="dark"] .btn-outline-dark { --bs-btn-color: var(--sia-text-2); --bs-btn-border-color: var(--sia-border-strong); --bs-btn-hover-bg: var(--sia-hover); --bs-btn-hover-color: #fff; }
[data-bs-theme="dark"] .btn-white { background: var(--sia-surface); color: var(--sia-text); border-color: var(--sia-border); }
[data-bs-theme="dark"] .card { --bs-card-bg: var(--sia-surface); --bs-card-border-color: var(--sia-border); --bs-card-cap-bg: var(--sia-surface-2); --bs-card-color: var(--sia-text-2); }
[data-bs-theme="dark"] .list-group { --bs-list-group-bg: var(--sia-surface); --bs-list-group-border-color: var(--sia-border); --bs-list-group-action-hover-bg: var(--sia-hover); }
[data-bs-theme="dark"] .nav-tabs { --bs-nav-tabs-link-active-bg: var(--sia-surface); --bs-nav-tabs-link-active-border-color: var(--sia-border) var(--sia-border) var(--sia-surface); --bs-nav-tabs-border-color: var(--sia-border); }
[data-bs-theme="dark"] .modal { --bs-modal-bg: var(--sia-surface); --bs-modal-border-color: var(--sia-border); }
[data-bs-theme="dark"] .offcanvas { --bs-offcanvas-bg: var(--sia-surface); }
[data-bs-theme="dark"] .dropdown-menu { --bs-dropdown-bg: var(--sia-surface); --bs-dropdown-link-hover-bg: var(--sia-hover); --bs-dropdown-border-color: var(--sia-border); }
[data-bs-theme="dark"] .alert-light { --bs-alert-bg: var(--sia-surface-2); --bs-alert-color: var(--sia-text-2); --bs-alert-border-color: var(--sia-border); }
[data-bs-theme="dark"] .progress { --bs-progress-bg: var(--sia-hover); }
[data-bs-theme="dark"] .form-control, [data-bs-theme="dark"] .form-select { background-color: var(--sia-surface); color: var(--sia-text); }
[data-bs-theme="dark"] .form-control:disabled, [data-bs-theme="dark"] .form-control[readonly] { background-color: var(--sia-surface-2); }
[data-bs-theme="dark"] .input-group-text { background-color: var(--sia-surface-2); color: var(--sia-muted); border-color: var(--sia-border-strong); }
[data-bs-theme="dark"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
[data-bs-theme="dark"] hr { border-color: var(--sia-border); opacity: 1; }
[data-bs-theme="dark"] ::-webkit-scrollbar { width: 10px; height: 10px; }
[data-bs-theme="dark"] ::-webkit-scrollbar-track { background: var(--sia-bg); }
[data-bs-theme="dark"] ::-webkit-scrollbar-thumb { background: #2b3648; border-radius: 8px; border: 2px solid var(--sia-bg); }

/* ── DataTables ───────────────────────────────────────────────────────── */
.dataTables_wrapper .dataTables_filter input, .dataTables_wrapper .dataTables_length select {
    border: 1px solid var(--sia-border-strong); border-radius: 8px; padding: .3rem .6rem; background-color: var(--sia-surface); color: var(--sia-text); }
.dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter { color: var(--sia-muted) !important; }
[data-bs-theme="dark"] table.dataTable tbody tr, [data-bs-theme="dark"] table.dataTable tbody tr > * { background-color: transparent; color: var(--sia-text-2); }
[data-bs-theme="dark"] table.dataTable.stripe > tbody > tr.odd > *, [data-bs-theme="dark"] table.dataTable.display > tbody > tr.odd > * { box-shadow: inset 0 0 0 9999px rgba(255, 255, 255, .02); }
[data-bs-theme="dark"] table.dataTable.hover > tbody > tr:hover > *, [data-bs-theme="dark"] table.dataTable.display > tbody > tr:hover > * { box-shadow: inset 0 0 0 9999px rgba(255, 255, 255, .04); }
[data-bs-theme="dark"] table.dataTable thead th, [data-bs-theme="dark"] table.dataTable thead td, [data-bs-theme="dark"] table.dataTable tfoot th { border-color: var(--sia-border) !important; color: var(--sia-muted); }
[data-bs-theme="dark"] table.dataTable.row-border > tbody > tr > *, [data-bs-theme="dark"] table.dataTable.display > tbody > tr > * { border-top-color: var(--sia-border); }
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button { color: var(--sia-text-2) !important; }
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { background: var(--sia-primary-soft) !important; border-color: transparent !important; color: #fff !important; }
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover { background: var(--sia-hover) !important; border-color: var(--sia-border) !important; color: #fff !important; }
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.disabled { color: var(--sia-muted-2) !important; }
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_processing { background: var(--sia-surface); color: var(--sia-text); border: 1px solid var(--sia-border); }
[data-bs-theme="dark"] div.dt-button-collection { background: var(--sia-surface); border-color: var(--sia-border); }

/* ── Select2 ──────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] .select2-container--default .select2-selection--single,
[data-bs-theme="dark"] .select2-container--default .select2-selection--multiple,
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection { background-color: var(--sia-surface); border-color: var(--sia-border-strong); color: var(--sia-text); }
[data-bs-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered,
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered { color: var(--sia-text); }
[data-bs-theme="dark"] .select2-dropdown, [data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown { background-color: var(--sia-surface); border-color: var(--sia-border); color: var(--sia-text-2); }
[data-bs-theme="dark"] .select2-search--dropdown .select2-search__field, [data-bs-theme="dark"] .select2-container--default .select2-search--inline .select2-search__field {
    background: var(--sia-surface-2); color: var(--sia-text); border-color: var(--sia-border-strong); }
[data-bs-theme="dark"] .select2-container--default .select2-results__option--selected, [data-bs-theme="dark"] .select2-container--default .select2-results__option[aria-selected=true] { background-color: var(--sia-hover); }
[data-bs-theme="dark"] .select2-container--default .select2-selection--multiple .select2-selection__choice { background-color: var(--sia-hover); border-color: var(--sia-border); color: var(--sia-text); }

/* ── SweetAlert2 ──────────────────────────────────────────────────────── */
.swal2-popup { border-radius: 14px !important; }
[data-bs-theme="dark"] .swal2-popup { background: var(--sia-surface) !important; color: var(--sia-text-2) !important; border: 1px solid var(--sia-border); }
[data-bs-theme="dark"] .swal2-title { color: var(--sia-text) !important; }
[data-bs-theme="dark"] .swal2-html-container, [data-bs-theme="dark"] .swal2-validation-message { color: var(--sia-text-2) !important; }
[data-bs-theme="dark"] .swal2-validation-message { background: var(--sia-surface-2) !important; }
[data-bs-theme="dark"] .swal2-input, [data-bs-theme="dark"] .swal2-textarea, [data-bs-theme="dark"] .swal2-select {
    background: var(--sia-surface-2) !important; color: var(--sia-text) !important; border-color: var(--sia-border-strong) !important; }
[data-bs-theme="dark"] .swal2-timer-progress-bar { background: rgba(255, 255, 255, .25); }

/* ── Impresión: siempre en claro ──────────────────────────────────────── */
@media print {
    [data-bs-theme="dark"] { color-scheme: light; }
}

/* ── Ajustes de pantallas con colores propios (modo oscuro) ───────────── */
[data-bs-theme="dark"] {
    /* Matrícula / TCU */
    --mat-bg: var(--sia-bg); --mat-card: var(--sia-surface); --mat-border: var(--sia-border); --mat-text: var(--sia-text); --mat-muted: var(--sia-muted);
    --mat-gray-50: var(--sia-surface-2); --mat-gray-100: var(--sia-hover); --mat-gray-200: var(--sia-border); --mat-gray-500: var(--sia-muted);
    --mat-gray-700: var(--sia-text-2); --mat-primary-light: var(--sia-primary-soft);
    /* style.css */
    --dark-color: var(--sia-text); --light-color: var(--sia-surface-2);
}
[data-bs-theme="dark"] .text-bg-light { background-color: var(--sia-surface-2) !important; color: var(--sia-text) !important; }
[data-bs-theme="dark"] .table-primary { --bs-table-bg: rgba(59, 130, 246, .14); --bs-table-striped-bg: rgba(59, 130, 246, .18); --bs-table-hover-bg: rgba(59, 130, 246, .22); --bs-table-active-bg: rgba(59, 130, 246, .22); --bs-table-color: var(--sia-text); --bs-table-border-color: rgba(59, 130, 246, .25); color: var(--sia-text); }
[data-bs-theme="dark"] .table-secondary { --bs-table-bg: rgba(148, 163, 184, .10); --bs-table-striped-bg: rgba(148, 163, 184, .14); --bs-table-hover-bg: rgba(148, 163, 184, .18); --bs-table-active-bg: rgba(148, 163, 184, .18); --bs-table-color: var(--sia-text); --bs-table-border-color: var(--sia-border); color: var(--sia-text); }
[data-bs-theme="dark"] .table-success { --bs-table-bg: rgba(16, 185, 129, .13); --bs-table-striped-bg: rgba(16, 185, 129, .17); --bs-table-hover-bg: rgba(16, 185, 129, .21); --bs-table-active-bg: rgba(16, 185, 129, .21); --bs-table-color: var(--sia-text); --bs-table-border-color: rgba(16, 185, 129, .25); color: var(--sia-text); }
[data-bs-theme="dark"] .table-danger { --bs-table-bg: rgba(239, 68, 68, .14); --bs-table-striped-bg: rgba(239, 68, 68, .18); --bs-table-hover-bg: rgba(239, 68, 68, .22); --bs-table-active-bg: rgba(239, 68, 68, .22); --bs-table-color: var(--sia-text); --bs-table-border-color: rgba(239, 68, 68, .25); color: var(--sia-text); }
[data-bs-theme="dark"] .table-warning { --bs-table-bg: rgba(245, 158, 11, .14); --bs-table-striped-bg: rgba(245, 158, 11, .18); --bs-table-hover-bg: rgba(245, 158, 11, .22); --bs-table-active-bg: rgba(245, 158, 11, .22); --bs-table-color: var(--sia-text); --bs-table-border-color: rgba(245, 158, 11, .25); color: var(--sia-text); }
[data-bs-theme="dark"] .table-info { --bs-table-bg: rgba(14, 165, 233, .13); --bs-table-striped-bg: rgba(14, 165, 233, .17); --bs-table-hover-bg: rgba(14, 165, 233, .21); --bs-table-active-bg: rgba(14, 165, 233, .21); --bs-table-color: var(--sia-text); --bs-table-border-color: rgba(14, 165, 233, .25); color: var(--sia-text); }
[data-bs-theme="dark"] .seccion-card .seccion-titulo { color: var(--sia-text); border-bottom-color: var(--sia-border); }
[data-bs-theme="dark"] .btn-light-rounded { background: var(--sia-hover); color: #c4b5fd; }

[data-bs-theme="dark"] .mod-icon.purple { background: rgba(139, 92, 246, .16); color: #c4b5fd; }
[data-bs-theme="dark"] .mod-icon.teal { background: rgba(20, 184, 166, .16); color: #5eead4; }
[data-bs-theme="dark"] .mod-icon.orange { color: #fdba74; }

/* ── Contraste: el estilo general deja claros los encabezados de tarjeta y de página; los textos
      marcados como blancos quedaban invisibles en modo claro ─────────────── */
body.has-sidebar .card-header .text-white, body.has-sidebar .card-header.text-white,
body.has-sidebar .page-header .text-white, body.has-sidebar .admin-header .text-white { color: var(--sia-text-2) !important; }
body.has-sidebar .card-header .text-white-50, body.has-sidebar .page-header .text-white-50, body.has-sidebar .admin-header .text-white-50 { color: var(--sia-muted) !important; }
body.has-sidebar .card-header h5, body.has-sidebar .card-header h6 { color: var(--sia-text) !important; }
body.has-sidebar .mat-page-header h1, body.has-sidebar .mat-page-header h2, body.has-sidebar .mat-page-header p { color: #fff !important; }
body.has-sidebar .stats-card > p { color: var(--sia-muted) !important; opacity: 1; }
body.has-sidebar .breadcrumb-item.active { color: var(--sia-muted); }
[data-bs-theme="light"] body.has-sidebar .text-warning { color: #d97706 !important; }
[data-bs-theme="light"] body.has-sidebar .text-info { color: #0891b2 !important; }
body.has-sidebar .casos-filtros .form-label { color: #94a3b8 !important; } /* panel de filtros de Casos: fondo oscuro en ambos modos */
