/*
 * Vika Ponto — dark mode («neon navy», o mesmo do login e do ERP).
 * Ativo por omissão: os layouts trazem <html data-bs-theme="dark" data-vika-tema="escuro">; o claro só por escolha
 * do utilizador (localStorage «vika_tema», js/Common/temaEscuro.js). Tudo aqui está sob [data-vika-tema="escuro"],
 * por isso o modo claro fica exatamente como era. Carregado no fim do <head>, depois do bootstrap e dos CSS da app.
 * Bootstrap 5.3 trata o grosso com data-bs-theme="dark"; este ficheiro acerta a paleta e o que o bootstrap não cobre
 * (utilitários claros fixos, CSS próprios, datatables, tom-select, sweetalert2, pnotify, gridjs, fancytree, quill,
 * tempus dominus, fullcalendar, apexcharts, openlayers). Os PDFs/relatórios não passam por aqui.
 */

html[data-vika-tema="escuro"],
html[data-vika-tema="escuro"] body {
    /* paleta (login.css) */
    --vk-bg: #080f20;
    --vk-surface: #0e1a31;
    --vk-surface-2: #13223f;
    --vk-surface-3: #1a2c4e;
    --vk-field: #0a1528;
    --vk-ink: #edf6ff;
    --vk-muted: #a4b5ca;
    --vk-accent: #5ce1f2;
    --vk-accent-ink: #05222d;
    --vk-border: rgba(149, 188, 221, .2);
    --vk-border-strong: rgba(149, 188, 221, .34);

    /* bootstrap 5.3 */
    --bs-body-bg: var(--vk-bg);
    --bs-body-bg-rgb: 8, 15, 32;
    --bs-body-color: var(--vk-ink);
    --bs-body-color-rgb: 237, 246, 255;
    --bs-emphasis-color: #ffffff;
    --bs-emphasis-color-rgb: 255, 255, 255;
    --bs-secondary-color: var(--vk-muted);
    --bs-secondary-color-rgb: 164, 181, 202;
    --bs-secondary-bg: var(--vk-surface-2);
    --bs-secondary-bg-rgb: 19, 34, 63;
    --bs-tertiary-color: rgba(164, 181, 202, .75);
    --bs-tertiary-bg: var(--vk-surface);
    --bs-tertiary-bg-rgb: 14, 26, 49;
    --bs-heading-color: #ffffff;
    --bs-border-color: var(--vk-border);
    --bs-border-color-translucent: var(--vk-border);
    --bs-link-color: var(--vk-accent);
    --bs-link-color-rgb: 92, 225, 242;
    --bs-link-hover-color: #8bedf8;
    --bs-link-hover-color-rgb: 139, 237, 248;
    --bs-primary-text-emphasis: #8ab8ff;
    --bs-info-text-emphasis: #8bedf8;
    --bs-focus-ring-color: rgba(92, 225, 242, .3);
    --bs-secondary-bg-subtle: #16233d;
    --bs-tertiary-bg-subtle: #111c33;
    --bs-light-bg-subtle: #16233d;
    --bs-light-border-subtle: var(--vk-border-strong);
    --bs-primary-bg-subtle: #0f2347;
    --bs-success-bg-subtle: #0d2a1d;
    --bs-warning-bg-subtle: #2b230b;
    --bs-danger-bg-subtle: #2e1015;
    --bs-info-bg-subtle: #0b2a33;
    --bs-secondary-text-emphasis: #c3d2e4;
    --bs-light-text-emphasis: var(--vk-ink);
    /* calendários (bootstrap-year-calendar.css, calendar.css) */
    --calendar-bg: var(--vk-surface);
    --calendar-bg-subtle: var(--vk-surface-2);
    --calendar-bg-hover: var(--vk-surface-3);
    --calendar-bg-active: #223863;
    --calendar-text: var(--vk-ink);
    --calendar-text-secondary: var(--vk-muted);
    --calendar-text-muted: rgba(164, 181, 202, .6);
    --calendar-border: var(--vk-border);
    --calendar-border-subtle: var(--vk-border);
    --calendar-border-light: var(--vk-border);
    --calendar-weekend-bg: #16233d;
    --calendar-weekend-text: var(--vk-muted);
    --calendar-today-bg: rgba(255, 193, 7, .14);
    --calendar-primary: #6ea8fe;
    /* riscado das marcações (js/Common/temaEscuro.js troca o «white» inline por esta variável) */
    --vk-hatch-bg: #0e1a31;
    color-scheme: dark;
}

[data-vika-tema="escuro"] body,
[data-vika-tema="escuro"] body.bg-light,
[data-vika-tema="escuro"] body.bg-white {
    background-color: var(--vk-bg) !important;
    background-image: radial-gradient(1200px 600px at 10% -10%, rgba(39, 82, 140, .22), transparent 60%),
                      radial-gradient(900px 500px at 110% 10%, rgba(92, 225, 242, .06), transparent 60%);
    background-attachment: fixed;
    color: var(--vk-ink);
}

/* ---------- utilitários claros fixos do bootstrap (não mudam com data-bs-theme) ---------- */
[data-vika-tema="escuro"] .bg-white,
[data-vika-tema="escuro"] .bg-body { background-color: var(--vk-surface) !important; }
[data-vika-tema="escuro"] .bg-light,
[data-vika-tema="escuro"] .bg-body-tertiary,
[data-vika-tema="escuro"] .text-bg-light { background-color: var(--vk-surface-2) !important; color: var(--vk-ink) !important; }
[data-vika-tema="escuro"] .bg-body-secondary { background-color: var(--vk-surface-2) !important; }
[data-vika-tema="escuro"] .bg-dark { background-color: #050a16 !important; }
[data-vika-tema="escuro"] .text-dark,
[data-vika-tema="escuro"] .text-black,
[data-vika-tema="escuro"] .link-dark { color: var(--vk-ink) !important; }
/* texto escuro continua escuro sobre fundos claros que ficam claros (amarelo/ciano/branco dos badges) */
[data-vika-tema="escuro"] .bg-warning.text-dark,
[data-vika-tema="escuro"] .bg-warning .text-dark,
[data-vika-tema="escuro"] .bg-info.text-dark,
[data-vika-tema="escuro"] .bg-info .text-dark,
[data-vika-tema="escuro"] .text-bg-warning,
[data-vika-tema="escuro"] .text-bg-info,
[data-vika-tema="escuro"] .btn-warning.text-dark,
[data-vika-tema="escuro"] .btn-info.text-dark { color: #212529 !important; }
[data-vika-tema="escuro"] .bg-warning.bg-opacity-10.text-dark,
[data-vika-tema="escuro"] .bg-warning.bg-opacity-25.text-dark { color: #ffe08a !important; }
[data-vika-tema="escuro"] .bg-info.bg-opacity-10.text-dark,
[data-vika-tema="escuro"] .bg-info.bg-opacity-25.text-dark { color: #9be9f6 !important; }
[data-vika-tema="escuro"] .text-muted,
[data-vika-tema="escuro"] .text-secondary,
[data-vika-tema="escuro"] .text-body-secondary { color: var(--vk-muted) !important; }
[data-vika-tema="escuro"] .border-light { border-color: var(--vk-border) !important; }
[data-vika-tema="escuro"] .bg-gradient { background-image: none !important; }
[data-vika-tema="escuro"] .border,
[data-vika-tema="escuro"] .border-top,
[data-vika-tema="escuro"] .border-bottom,
[data-vika-tema="escuro"] .border-start,
[data-vika-tema="escuro"] .border-end { border-color: var(--vk-border); }
[data-vika-tema="escuro"] hr { border-color: var(--vk-border-strong); opacity: 1; }
[data-vika-tema="escuro"] .shadow-sm { box-shadow: 0 1px 3px rgba(0, 0, 0, .45) !important; }
[data-vika-tema="escuro"] .shadow,
[data-vika-tema="escuro"] .shadow-lg { box-shadow: 0 10px 30px rgba(0, 0, 0, .5) !important; }

/* estilos inline com fundo branco/claro */
[data-vika-tema="escuro"] [style*="background-color: white"],
[data-vika-tema="escuro"] [style*="background-color:white"],
[data-vika-tema="escuro"] [style*="background-color: #fff"],
[data-vika-tema="escuro"] [style*="background-color:#fff"],
[data-vika-tema="escuro"] [style*="background-color: #FFF"],
[data-vika-tema="escuro"] [style*="background: white"],
[data-vika-tema="escuro"] [style*="background:white"],
[data-vika-tema="escuro"] [style*="background: #fff"],
[data-vika-tema="escuro"] [style*="background:#fff"],
[data-vika-tema="escuro"] [style*="background-color: #f8f9fa"],
[data-vika-tema="escuro"] [style*="background-color: rgb(255, 255, 255)"] { background-color: var(--vk-surface) !important; }
[data-vika-tema="escuro"] [style*="color: black"],
[data-vika-tema="escuro"] [style*="color:black"],
[data-vika-tema="escuro"] [style*="color: #000"],
[data-vika-tema="escuro"] [style*="color:#000"],
[data-vika-tema="escuro"] [style*="color: #333"],
[data-vika-tema="escuro"] [style*="color:#333"] { color: var(--vk-ink) !important; }

/* ---------- topo, menus e rodapé ---------- */
[data-vika-tema="escuro"] .navbar.bg-mainColor-gradient,
[data-vika-tema="escuro"] .navbar.bg-mainColor {
    background: linear-gradient(135deg, #0b1730 0%, #0f2242 100%) !important;
    border-bottom: 1px solid var(--vk-border);
    box-shadow: 0 1px 0 rgba(92, 225, 242, .18), 0 6px 24px rgba(0, 0, 0, .45) !important;
}
[data-vika-tema="escuro"] .navbar .nav-link,
[data-vika-tema="escuro"] .navbar .navbar-text { color: var(--vk-ink) !important; }
[data-vika-tema="escuro"] .navbar .nav-link:hover,
[data-vika-tema="escuro"] .navbar .nav-link:focus,
[data-vika-tema="escuro"] .navbar .nav-link.active,
[data-vika-tema="escuro"] .navbar .nav-link.show { color: var(--vk-accent) !important; }
[data-vika-tema="escuro"] .navbar .nav-link::after { background-color: var(--vk-accent) !important; }
[data-vika-tema="escuro"] .navbar-toggler { border-color: var(--vk-border-strong); }

[data-vika-tema="escuro"] .dropdown-menu {
    --bs-dropdown-bg: var(--vk-surface-2);
    --bs-dropdown-color: var(--vk-ink);
    --bs-dropdown-border-color: var(--vk-border-strong);
    --bs-dropdown-link-color: var(--vk-ink);
    --bs-dropdown-link-hover-color: #ffffff;
    --bs-dropdown-link-hover-bg: rgba(92, 225, 242, .12);
    --bs-dropdown-link-active-color: var(--vk-accent-ink);
    --bs-dropdown-link-active-bg: var(--vk-accent);
    --bs-dropdown-header-color: var(--vk-muted);
    --bs-dropdown-divider-bg: var(--vk-border);
    background-color: var(--vk-surface-2) !important;
    color: var(--vk-ink);
    border: 1px solid var(--vk-border-strong) !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .55) !important;
}
[data-vika-tema="escuro"] .dropdown-item { color: var(--vk-ink); }
[data-vika-tema="escuro"] .dropdown-item i,
[data-vika-tema="escuro"] .dropdown-item .iconify { color: var(--vk-muted); }
[data-vika-tema="escuro"] .dropdown-item:hover i,
[data-vika-tema="escuro"] .dropdown-item:focus i { color: var(--vk-accent); }
[data-vika-tema="escuro"] .dropdown-content { background-color: var(--vk-surface-2) !important; color: var(--vk-ink); }
[data-vika-tema="escuro"] .dropdown-item.active,
[data-vika-tema="escuro"] .dropdown-item.active i { color: var(--vk-accent-ink) !important; }

[data-vika-tema="escuro"] .offcanvas,
[data-vika-tema="escuro"] .offcanvas-header,
[data-vika-tema="escuro"] .offcanvas-body {
    --bs-offcanvas-bg: var(--vk-surface);
    --bs-offcanvas-color: var(--vk-ink);
    background-color: var(--vk-surface) !important;
    color: var(--vk-ink);
}

[data-vika-tema="escuro"] footer {
    background-color: rgba(10, 19, 38, .92) !important;
    border-top: 1px solid var(--vk-border) !important;
    color: var(--vk-ink);
    backdrop-filter: blur(6px);
}
[data-vika-tema="escuro"] footer a { color: var(--vk-muted) !important; }
[data-vika-tema="escuro"] footer a:hover { color: var(--vk-accent) !important; }
[data-vika-tema="escuro"] .color-main { color: var(--vk-accent) !important; }

/* ---------- cor do tema (mainColor) legível em fundo escuro ---------- */
[data-vika-tema="escuro"] .text-mainColor,
[data-vika-tema="escuro"] .text-mainColorLighter { color: var(--mainColorLightest, var(--vk-accent)) !important; }
[data-vika-tema="escuro"] .bg-mainColorLightest { background-color: rgba(var(--mainColorRGB, 92, 225, 242), .18) !important; color: var(--vk-ink); }
[data-vika-tema="escuro"] .border-mainColor,
[data-vika-tema="escuro"] .border-mainColorLighter { border-color: rgba(var(--mainColorRGB, 92, 225, 242), .7) !important; }
[data-vika-tema="escuro"] .btn-outline-mainColor { color: var(--mainColorLightest, var(--vk-accent)); border-color: var(--mainColorLighter, var(--vk-accent)); }
[data-vika-tema="escuro"] ::selection { background-color: rgba(92, 225, 242, .35); color: #fff; }

/* ---------- cartões, painéis, listas ---------- */
[data-vika-tema="escuro"] .card {
    --bs-card-bg: var(--vk-surface);
    --bs-card-color: var(--vk-ink);
    --bs-card-border-color: var(--vk-border);
    --bs-card-cap-bg: var(--vk-surface-2);
    --bs-card-cap-color: var(--vk-ink);
    background-color: var(--vk-surface);
    color: var(--vk-ink);
    border-color: var(--vk-border);
}
[data-vika-tema="escuro"] .card-header,
[data-vika-tema="escuro"] .card-footer { background-color: var(--vk-surface-2); border-color: var(--vk-border); color: var(--vk-ink); }
[data-vika-tema="escuro"] .list-group {
    --bs-list-group-bg: var(--vk-surface);
    --bs-list-group-color: var(--vk-ink);
    --bs-list-group-border-color: var(--vk-border);
    --bs-list-group-action-hover-bg: var(--vk-surface-2);
    --bs-list-group-action-hover-color: #fff;
    --bs-list-group-active-bg: rgba(92, 225, 242, .18);
    --bs-list-group-active-border-color: rgba(92, 225, 242, .5);
    --bs-list-group-active-color: #fff;
}
[data-vika-tema="escuro"] .accordion {
    --bs-accordion-bg: var(--vk-surface);
    --bs-accordion-color: var(--vk-ink);
    --bs-accordion-border-color: var(--vk-border);
    --bs-accordion-button-bg: var(--vk-surface);
    --bs-accordion-button-color: var(--vk-ink);
    --bs-accordion-active-bg: var(--vk-surface-2);
    --bs-accordion-active-color: var(--vk-accent);
}
[data-vika-tema="escuro"] .nav-tabs { --bs-nav-tabs-border-color: var(--vk-border); --bs-nav-tabs-link-active-bg: var(--vk-surface); --bs-nav-tabs-link-active-color: var(--vk-accent); --bs-nav-tabs-link-active-border-color: var(--vk-border) var(--vk-border) var(--vk-surface); }
[data-vika-tema="escuro"] .nav-link { --bs-nav-link-color: var(--vk-muted); --bs-nav-link-hover-color: var(--vk-accent); }
[data-vika-tema="escuro"] .nav-pills { --bs-nav-pills-link-active-bg: rgba(92, 225, 242, .18); --bs-nav-pills-link-active-color: var(--vk-accent); }
[data-vika-tema="escuro"] .page-link { --bs-pagination-bg: var(--vk-surface); --bs-pagination-color: var(--vk-ink); --bs-pagination-border-color: var(--vk-border); --bs-pagination-hover-bg: var(--vk-surface-2); --bs-pagination-hover-color: var(--vk-accent); --bs-pagination-active-bg: var(--vk-accent); --bs-pagination-active-border-color: var(--vk-accent); --bs-pagination-active-color: var(--vk-accent-ink); --bs-pagination-disabled-bg: var(--vk-surface); --bs-pagination-disabled-color: rgba(164, 181, 202, .55); }
[data-vika-tema="escuro"] .page-item.active .page-link { color: var(--vk-accent-ink); }
[data-vika-tema="escuro"] .breadcrumb { --bs-breadcrumb-item-active-color: var(--vk-muted); --bs-breadcrumb-divider-color: var(--vk-muted); }
[data-vika-tema="escuro"] .progress { --bs-progress-bg: var(--vk-surface-3); }
[data-vika-tema="escuro"] .popover { --bs-popover-bg: var(--vk-surface-2); --bs-popover-header-bg: var(--vk-surface-3); --bs-popover-body-color: var(--vk-ink); --bs-popover-border-color: var(--vk-border-strong); }
[data-vika-tema="escuro"] .tooltip { --bs-tooltip-bg: #d9f7fc; --bs-tooltip-color: #05222d; }

/* ---------- tabelas e datatables ---------- */
[data-vika-tema="escuro"] .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--vk-ink);
    --bs-table-border-color: var(--vk-border);
    --bs-table-striped-bg: rgba(149, 188, 221, .055);
    --bs-table-striped-color: var(--vk-ink);
    --bs-table-hover-bg: rgba(92, 225, 242, .08);
    --bs-table-hover-color: #fff;
    --bs-table-active-bg: rgba(92, 225, 242, .14);
    --bs-table-active-color: #fff;
    color: var(--vk-ink);
    border-color: var(--vk-border);
}
[data-vika-tema="escuro"] .table > :not(caption) > * > * { color: var(--bs-table-color-state, var(--bs-table-color-type, var(--vk-ink))); border-bottom-color: var(--vk-border); }
[data-vika-tema="escuro"] .table-light,
[data-vika-tema="escuro"] .table > thead.table-light > tr > th,
[data-vika-tema="escuro"] .table-light > tr > th,
[data-vika-tema="escuro"] .table-light th,
[data-vika-tema="escuro"] .table-light td {
    --bs-table-bg: var(--vk-surface-2);
    --bs-table-color: var(--vk-ink);
    --bs-table-border-color: var(--vk-border);
    --bs-table-striped-bg: var(--vk-surface-2);
    --bs-table-hover-bg: var(--vk-surface-3);
    background-color: var(--vk-surface-2) !important;
    color: var(--vk-ink) !important;
}
[data-vika-tema="escuro"] .table thead th { color: #dbeafe; }
[data-vika-tema="escuro"] .table-bordered > :not(caption) > * > * { border-color: var(--vk-border); }
[data-vika-tema="escuro"] table.dataTable,
[data-vika-tema="escuro"] .dataTables_wrapper,
[data-vika-tema="escuro"] div.dt-container { color: var(--vk-ink); }
[data-vika-tema="escuro"] table.dataTable > tbody > tr,
[data-vika-tema="escuro"] table.dataTable > tbody > tr > td { background-color: transparent; }
[data-vika-tema="escuro"] table.dataTable > tbody > tr.selected > *,
[data-vika-tema="escuro"] table.dataTable > tbody > tr > .selected { box-shadow: inset 0 0 0 9999px rgba(92, 225, 242, .22) !important; color: #fff !important; }
[data-vika-tema="escuro"] table.dataTable thead > tr > th.dt-orderable-asc:hover,
[data-vika-tema="escuro"] table.dataTable thead > tr > th.dt-orderable-desc:hover { outline-color: var(--vk-accent); }
[data-vika-tema="escuro"] .dt-container .dt-search input,
[data-vika-tema="escuro"] .dt-container .dt-length select,
[data-vika-tema="escuro"] .dataTables_wrapper .dataTables_filter input,
[data-vika-tema="escuro"] .dataTables_wrapper .dataTables_length select { background-color: var(--vk-field); color: var(--vk-ink); border-color: var(--vk-border-strong); }
[data-vika-tema="escuro"] .dt-container .dt-info,
[data-vika-tema="escuro"] .dataTables_wrapper .dataTables_info { color: var(--vk-muted) !important; }
[data-vika-tema="escuro"] .dtfc-fixed-start,
[data-vika-tema="escuro"] .dtfc-fixed-end,
[data-vika-tema="escuro"] .dtfc-fixed-left,
[data-vika-tema="escuro"] .dtfc-fixed-right { background-color: var(--vk-surface) !important; }
[data-vika-tema="escuro"] table.dataTable tr.dtrg-group th,
[data-vika-tema="escuro"] table.dataTable tr.dtrg-group td { background-color: var(--vk-surface-3) !important; color: #fff !important; }
[data-vika-tema="escuro"] div.dt-button-collection,
[data-vika-tema="escuro"] div.dt-button-background { background-color: var(--vk-surface-2) !important; color: var(--vk-ink); }
[data-vika-tema="escuro"] .sticky-top-toolbar-filter { background: var(--vk-bg) !important; }

/* gridjs (tema mermaid é branco) */
[data-vika-tema="escuro"] .gridjs-container { color: var(--vk-ink); }
[data-vika-tema="escuro"] .gridjs-wrapper { border-color: var(--vk-border); box-shadow: none; background: var(--vk-surface); }
[data-vika-tema="escuro"] th.gridjs-th,
[data-vika-tema="escuro"] .gridjs-footer { background-color: var(--vk-surface-2) !important; color: var(--vk-ink) !important; border-color: var(--vk-border) !important; }
[data-vika-tema="escuro"] td.gridjs-td { background-color: var(--vk-surface) !important; color: var(--vk-ink) !important; border-color: var(--vk-border) !important; }
[data-vika-tema="escuro"] tr.gridjs-tr:hover td.gridjs-td { background-color: var(--vk-surface-2) !important; }
[data-vika-tema="escuro"] input.gridjs-input,
[data-vika-tema="escuro"] .gridjs-pagination .gridjs-pages button { background-color: var(--vk-field) !important; color: var(--vk-ink) !important; border-color: var(--vk-border-strong) !important; }
[data-vika-tema="escuro"] .gridjs-pagination .gridjs-pages button.gridjs-currentPage { background-color: var(--vk-accent) !important; color: var(--vk-accent-ink) !important; }
[data-vika-tema="escuro"] .gridjs-summary { color: var(--vk-muted) !important; }

/* ---------- formulários ---------- */
[data-vika-tema="escuro"] .form-control,
[data-vika-tema="escuro"] .form-select,
[data-vika-tema="escuro"] textarea,
[data-vika-tema="escuro"] select,
[data-vika-tema="escuro"] input[type="text"],
[data-vika-tema="escuro"] input[type="number"],
[data-vika-tema="escuro"] input[type="email"],
[data-vika-tema="escuro"] input[type="password"],
[data-vika-tema="escuro"] input[type="search"],
[data-vika-tema="escuro"] input[type="date"],
[data-vika-tema="escuro"] input[type="time"],
[data-vika-tema="escuro"] input[type="month"],
[data-vika-tema="escuro"] input[type="tel"] {
    background-color: var(--vk-field);
    color: var(--vk-ink);
    border-color: var(--vk-border-strong);
}
[data-vika-tema="escuro"] .form-control:focus,
[data-vika-tema="escuro"] .form-select:focus {
    background-color: var(--vk-field);
    color: #fff;
    border-color: rgba(92, 225, 242, .75);
    box-shadow: 0 0 0 .2rem rgba(92, 225, 242, .18);
}
[data-vika-tema="escuro"] .form-control::placeholder { color: rgba(164, 181, 202, .7); }
[data-vika-tema="escuro"] .form-control:disabled,
[data-vika-tema="escuro"] .form-control[readonly],
[data-vika-tema="escuro"] .form-select:disabled { background-color: #101b31; color: var(--vk-muted); }
[data-vika-tema="escuro"] .input-group-text { background-color: var(--vk-surface-2); color: var(--vk-muted); border-color: var(--vk-border-strong); }
[data-vika-tema="escuro"] .form-check-input { background-color: var(--vk-field); border-color: rgba(149, 188, 221, .5); }
[data-vika-tema="escuro"] .form-check-input:checked { background-color: var(--vk-accent); border-color: var(--vk-accent); }
[data-vika-tema="escuro"] .form-check-input:checked[type="checkbox"] { --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%2305222d' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); }
[data-vika-tema="escuro"] .form-switch .form-check-input:checked { --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2305222d'/%3e%3c/svg%3e"); }
[data-vika-tema="escuro"] .form-label,
[data-vika-tema="escuro"] label { color: #d6e4f3; }
[data-vika-tema="escuro"] .form-text { color: var(--vk-muted); }
[data-vika-tema="escuro"] select option { background-color: var(--vk-surface-2); color: var(--vk-ink); }
[data-vika-tema="escuro"] input[type="date"]::-webkit-calendar-picker-indicator,
[data-vika-tema="escuro"] input[type="time"]::-webkit-calendar-picker-indicator,
[data-vika-tema="escuro"] input[type="month"]::-webkit-calendar-picker-indicator { filter: invert(.85); }

/* tom-select */
[data-vika-tema="escuro"] .ts-wrapper .ts-control,
[data-vika-tema="escuro"] .ts-wrapper.single .ts-control,
[data-vika-tema="escuro"] .ts-wrapper.multi .ts-control,
[data-vika-tema="escuro"] .ts-control input { background-color: var(--vk-field) !important; background-image: none; color: var(--vk-ink) !important; border-color: var(--vk-border-strong) !important; }
[data-vika-tema="escuro"] .ts-wrapper.focus .ts-control { border-color: rgba(92, 225, 242, .75) !important; box-shadow: 0 0 0 .2rem rgba(92, 225, 242, .18) !important; }
[data-vika-tema="escuro"] .ts-dropdown,
[data-vika-tema="escuro"] .ts-dropdown .dropdown-input-wrap,
[data-vika-tema="escuro"] .ts-dropdown .dropdown-input { background-color: var(--vk-surface-2) !important; color: var(--vk-ink) !important; border-color: var(--vk-border-strong) !important; }
[data-vika-tema="escuro"] .ts-dropdown .option,
[data-vika-tema="escuro"] .ts-dropdown .optgroup-header { background-color: transparent; color: var(--vk-ink); }
[data-vika-tema="escuro"] .ts-dropdown .active,
[data-vika-tema="escuro"] .ts-dropdown .option:hover { background-color: rgba(92, 225, 242, .16) !important; color: #fff !important; }
[data-vika-tema="escuro"] .ts-wrapper.multi .ts-control > div { background-color: var(--vk-surface-3) !important; color: var(--vk-ink) !important; border-color: var(--vk-border-strong) !important; }

/* select2 / bootstrap-select (se alguma página os carregar) */
[data-vika-tema="escuro"] .select2-container--default .select2-selection--single,
[data-vika-tema="escuro"] .select2-container--default .select2-selection--multiple,
[data-vika-tema="escuro"] .select2-dropdown,
[data-vika-tema="escuro"] .select2-search__field { background-color: var(--vk-field) !important; color: var(--vk-ink) !important; border-color: var(--vk-border-strong) !important; }
[data-vika-tema="escuro"] .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--vk-ink) !important; }
[data-vika-tema="escuro"] .select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: rgba(92, 225, 242, .2) !important; color: #fff !important; }
[data-vika-tema="escuro"] .bootstrap-select .dropdown-toggle { background-color: var(--vk-field) !important; color: var(--vk-ink) !important; border-color: var(--vk-border-strong) !important; }

/* ---------- botões ---------- */
/* bootstrap5.buttons.custom.css pinta .btn-light com um gradiente branco */
[data-vika-tema="escuro"] .btn-light {
    background: linear-gradient(135deg, #1a2c4e 0%, #203559 100%);
    border-color: var(--vk-border-strong);
    color: var(--vk-ink);
}
[data-vika-tema="escuro"] .btn-light:hover:not(:disabled):not(.disabled),
[data-vika-tema="escuro"] .btn-light:focus-visible,
[data-vika-tema="escuro"] .btn-light.show {
    background: linear-gradient(135deg, #223863 0%, #28406f 100%);
    border-color: rgba(92, 225, 242, .45);
    color: #fff;
}
[data-vika-tema="escuro"] .btn-light i,
[data-vika-tema="escuro"] .btn-light .iconify { color: inherit; }
[data-vika-tema="escuro"] .btn-outline-light { --bs-btn-color: var(--vk-ink); --bs-btn-border-color: var(--vk-border-strong); --bs-btn-hover-bg: rgba(92, 225, 242, .12); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: rgba(92, 225, 242, .55); }
[data-vika-tema="escuro"] .btn-outline-light.show,
[data-vika-tema="escuro"] .btn-outline-light:active,
[data-vika-tema="escuro"] .btn-outline-secondary.show,
[data-vika-tema="escuro"] .btn-outline-secondary:active { background: rgba(92, 225, 242, .16) !important; border-color: rgba(92, 225, 242, .6) !important; color: #fff !important; }
[data-vika-tema="escuro"] .text-primary { color: #6ea8fe !important; }
[data-vika-tema="escuro"] .text-info { color: #6edff6 !important; }
[data-vika-tema="escuro"] .btn-outline-secondary:hover:not(:disabled):not(.disabled),
[data-vika-tema="escuro"] .btn-outline-dark:hover:not(:disabled):not(.disabled),
[data-vika-tema="escuro"] .btn-outline-light:hover:not(:disabled):not(.disabled) { color: #fff; }
[data-vika-tema="escuro"] .navbar-toggler,
[data-vika-tema="escuro"] .navbar-toggler span,
[data-vika-tema="escuro"] button[data-bs-toggle="collapse"] { color: var(--vk-ink); }
[data-vika-tema="escuro"] .btn-light {
    --bs-btn-bg: var(--vk-surface-3);
    --bs-btn-color: var(--vk-ink);
    --bs-btn-border-color: var(--vk-border-strong);
    --bs-btn-hover-bg: #223863;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-border-color: rgba(92, 225, 242, .45);
    --bs-btn-active-bg: #263f6f;
    --bs-btn-active-color: #fff;
    --bs-btn-disabled-bg: var(--vk-surface-2);
    --bs-btn-disabled-color: var(--vk-muted);
}
[data-vika-tema="escuro"] .btn-outline-secondary {
    --bs-btn-color: #c3d2e4;
    --bs-btn-border-color: rgba(149, 188, 221, .45);
    --bs-btn-hover-bg: var(--vk-surface-3);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-border-color: rgba(92, 225, 242, .55);
    --bs-btn-active-bg: #223863;
    --bs-btn-active-color: #fff;
}
[data-vika-tema="escuro"] .btn-outline-dark {
    --bs-btn-color: var(--vk-ink);
    --bs-btn-border-color: rgba(149, 188, 221, .45);
    --bs-btn-hover-bg: var(--vk-surface-3);
    --bs-btn-hover-color: #fff;
}
[data-vika-tema="escuro"] .btn-outline-primary { --bs-btn-color: #8ab8ff; --bs-btn-border-color: #5a95f5; --bs-btn-hover-bg: #2f6fdb; --bs-btn-hover-color: #fff; }
[data-vika-tema="escuro"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
[data-vika-tema="escuro"] .btn-link { --bs-btn-color: var(--vk-accent); --bs-btn-hover-color: #8bedf8; }

/* ---------- modais ---------- */
[data-vika-tema="escuro"] .modal {
    --bs-modal-bg: var(--vk-surface);
    --bs-modal-color: var(--vk-ink);
    --bs-modal-border-color: var(--vk-border-strong);
    --bs-modal-header-border-color: var(--vk-border);
    --bs-modal-footer-border-color: var(--vk-border);
}
[data-vika-tema="escuro"] .modal-content { background-color: var(--vk-surface); color: var(--vk-ink); border: 1px solid var(--vk-border-strong); box-shadow: 0 24px 60px rgba(0, 0, 0, .6); }
[data-vika-tema="escuro"] .modal-header,
[data-vika-tema="escuro"] .modal-footer { border-color: var(--vk-border); }
[data-vika-tema="escuro"] .modal-header.bg-mainColor,
[data-vika-tema="escuro"] .modal-header.bg-mainColor-gradient,
[data-vika-tema="escuro"] .card-header.bg-mainColor,
[data-vika-tema="escuro"] .card-header.bg-mainColor-gradient {
    background: linear-gradient(135deg, #10203d 0%, #142a4f 100%) !important;
    border-bottom: 1px solid rgba(92, 225, 242, .35) !important;
    color: #fff !important;
}
[data-vika-tema="escuro"] .modal-backdrop { --bs-backdrop-bg: #02060f; --bs-backdrop-opacity: .72; }

/* ---------- alertas, badges e notificações ---------- */
[data-vika-tema="escuro"] .alert-light { --bs-alert-bg: var(--vk-surface-2); --bs-alert-color: var(--vk-ink); --bs-alert-border-color: var(--vk-border-strong); }
[data-vika-tema="escuro"] .alert-warning { --bs-alert-bg: #2b230b; --bs-alert-color: #ffe08a; --bs-alert-border-color: #6b5413; --bs-alert-link-color: #ffe9ad; }
[data-vika-tema="escuro"] .alert-info { --bs-alert-bg: #0b2a33; --bs-alert-color: #9be9f6; --bs-alert-border-color: #1d5765; --bs-alert-link-color: #c7f4fb; }
[data-vika-tema="escuro"] .alert-success { --bs-alert-bg: #0d2a1d; --bs-alert-color: #8fe0b4; --bs-alert-border-color: #1f5a3c; }
[data-vika-tema="escuro"] .alert-danger { --bs-alert-bg: #2e1015; --bs-alert-color: #ffadb5; --bs-alert-border-color: #6b2129; }
[data-vika-tema="escuro"] .alert-primary { --bs-alert-bg: #0f2347; --bs-alert-color: #a9c8ff; --bs-alert-border-color: #23468a; }
[data-vika-tema="escuro"] .alert-secondary { --bs-alert-bg: var(--vk-surface-2); --bs-alert-color: var(--vk-ink); --bs-alert-border-color: var(--vk-border-strong); }
[data-vika-tema="escuro"] .badge.bg-light,
[data-vika-tema="escuro"] .badge.text-bg-light { background-color: var(--vk-surface-3) !important; color: var(--vk-ink) !important; }
[data-vika-tema="escuro"] .toast { --bs-toast-bg: rgba(19, 34, 63, .96); --bs-toast-color: var(--vk-ink); --bs-toast-header-bg: var(--vk-surface-3); --bs-toast-header-color: var(--vk-ink); --bs-toast-border-color: var(--vk-border-strong); }

/* sweetalert2 */
[data-vika-tema="escuro"] .swal2-popup { background: var(--vk-surface) !important; color: var(--vk-ink) !important; border: 1px solid var(--vk-border-strong); }
[data-vika-tema="escuro"] .swal2-title,
[data-vika-tema="escuro"] .swal2-html-container,
[data-vika-tema="escuro"] .swal2-content { color: var(--vk-ink) !important; }
[data-vika-tema="escuro"] .swal2-input,
[data-vika-tema="escuro"] .swal2-textarea,
[data-vika-tema="escuro"] .swal2-select { background: var(--vk-field) !important; color: var(--vk-ink) !important; border-color: var(--vk-border-strong) !important; }
[data-vika-tema="escuro"] .swal2-container.swal2-backdrop-show { background: rgba(2, 6, 15, .72) !important; }
[data-vika-tema="escuro"] .swal2-timer-progress-bar { background: rgba(92, 225, 242, .6) !important; }

/* pnotify (bright theme) */
[data-vika-tema="escuro"] .pnotify-container,
[data-vika-tema="escuro"] .brighttheme { background-color: var(--vk-surface-2) !important; color: var(--vk-ink) !important; border: 1px solid var(--vk-border-strong) !important; }
[data-vika-tema="escuro"] .brighttheme-notice { background-color: #2b230b !important; color: #ffe08a !important; }
[data-vika-tema="escuro"] .brighttheme-info { background-color: #0b2a33 !important; color: #9be9f6 !important; }
[data-vika-tema="escuro"] .brighttheme-success { background-color: #0d2a1d !important; color: #8fe0b4 !important; }
[data-vika-tema="escuro"] .brighttheme-error { background-color: #2e1015 !important; color: #ffadb5 !important; }

/* ---------- árvores (fancytree), editor (quill), calendários e gráficos ---------- */
[data-vika-tema="escuro"] ul.fancytree-container { background-color: transparent !important; color: var(--vk-ink); border-color: var(--vk-border) !important; }
[data-vika-tema="escuro"] span.fancytree-title { color: var(--vk-ink) !important; }
[data-vika-tema="escuro"] span.fancytree-node:hover span.fancytree-title { background-color: rgba(92, 225, 242, .1) !important; border-color: transparent !important; }
[data-vika-tema="escuro"] span.fancytree-active span.fancytree-title,
[data-vika-tema="escuro"] span.fancytree-selected span.fancytree-title,
[data-vika-tema="escuro"] .fancytree-focused span.fancytree-title { background-color: rgba(92, 225, 242, .2) !important; color: #fff !important; border-color: rgba(92, 225, 242, .4) !important; }
[data-vika-tema="escuro"] span.fancytree-expander,
[data-vika-tema="escuro"] span.fancytree-checkbox,
[data-vika-tema="escuro"] span.fancytree-icon { filter: invert(.85) hue-rotate(180deg); }
[data-vika-tema="escuro"] span.fancytree-match { color: var(--vk-accent) !important; }

[data-vika-tema="escuro"] .ql-toolbar.ql-snow,
[data-vika-tema="escuro"] .ql-container.ql-snow { border-color: var(--vk-border-strong) !important; }
[data-vika-tema="escuro"] .ql-toolbar.ql-snow { background-color: var(--vk-surface-2); }
[data-vika-tema="escuro"] .ql-editor { background-color: var(--vk-field); color: var(--vk-ink); }
[data-vika-tema="escuro"] .ql-snow .ql-stroke { stroke: var(--vk-ink) !important; }
[data-vika-tema="escuro"] .ql-snow .ql-fill { fill: var(--vk-ink) !important; }
[data-vika-tema="escuro"] .ql-snow .ql-picker { color: var(--vk-ink) !important; }
[data-vika-tema="escuro"] .ql-snow .ql-picker-options { background-color: var(--vk-surface-2) !important; }
[data-vika-tema="escuro"] .ql-editor.ql-blank::before { color: rgba(164, 181, 202, .7) !important; }

/* tempus dominus (bootstrap 4) */
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget,
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget.dropdown-menu { background-color: var(--vk-surface-2) !important; color: var(--vk-ink) !important; border-color: var(--vk-border-strong) !important; }
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table td,
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table th { color: var(--vk-ink); }
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table td.day:hover,
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table td.hour:hover,
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table td.minute:hover,
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table td span:hover,
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table thead tr:first-child th:hover { background: rgba(92, 225, 242, .14) !important; }
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table td.old,
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table td.new { color: rgba(164, 181, 202, .55); }
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table td.active,
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table td span.active { background-color: var(--vk-accent) !important; color: var(--vk-accent-ink) !important; text-shadow: none; }
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget table td.today::before { border-bottom-color: var(--vk-accent); }
[data-vika-tema="escuro"] .bootstrap-datetimepicker-widget .btn { color: var(--vk-ink); }

/* fullcalendar (v5/v6: variáveis; v3/v4: classes) */
[data-vika-tema="escuro"] .fc {
    --fc-page-bg-color: var(--vk-surface);
    --fc-neutral-bg-color: rgba(149, 188, 221, .08);
    --fc-neutral-text-color: var(--vk-muted);
    --fc-border-color: var(--vk-border);
    --fc-today-bg-color: rgba(92, 225, 242, .1);
    --fc-list-event-hover-bg-color: rgba(92, 225, 242, .1);
    --fc-highlight-color: rgba(92, 225, 242, .16);
    --fc-non-business-color: rgba(2, 6, 15, .35);
    --fc-button-bg-color: var(--vk-surface-3);
    --fc-button-border-color: var(--vk-border-strong);
    --fc-button-text-color: var(--vk-ink);
    --fc-button-hover-bg-color: #223863;
    --fc-button-hover-border-color: rgba(92, 225, 242, .45);
    --fc-button-active-bg-color: #263f6f;
    --fc-button-active-border-color: rgba(92, 225, 242, .6);
    color: var(--vk-ink);
}
[data-vika-tema="escuro"] .fc-unthemed th,
[data-vika-tema="escuro"] .fc-unthemed td,
[data-vika-tema="escuro"] .fc-unthemed thead,
[data-vika-tema="escuro"] .fc-unthemed tbody,
[data-vika-tema="escuro"] .fc-unthemed .fc-divider,
[data-vika-tema="escuro"] .fc-unthemed .fc-row,
[data-vika-tema="escuro"] .fc-unthemed .fc-popover { border-color: var(--vk-border) !important; }
[data-vika-tema="escuro"] .fc-unthemed td.fc-today { background: rgba(92, 225, 242, .1) !important; }
[data-vika-tema="escuro"] .fc .fc-col-header-cell,
[data-vika-tema="escuro"] .fc .fc-col-header-cell-cushion,
[data-vika-tema="escuro"] .fc .fc-daygrid-day-number,
[data-vika-tema="escuro"] .fc .fc-toolbar-title { color: var(--vk-ink); }
[data-vika-tema="escuro"] .fc .fc-day-other .fc-daygrid-day-top { opacity: .45; }
[data-vika-tema="escuro"] .fc .fc-popover,
[data-vika-tema="escuro"] .fc .fc-more-popover { background: var(--vk-surface-2); border-color: var(--vk-border-strong); }
[data-vika-tema="escuro"] .fc .fc-popover-header { background: var(--vk-surface-3); color: var(--vk-ink); }

/* apexcharts (as cores das séries ficam; texto, grelha e tooltip passam a escuros) */
[data-vika-tema="escuro"] .apexcharts-text,
[data-vika-tema="escuro"] .apexcharts-xaxis-label,
[data-vika-tema="escuro"] .apexcharts-yaxis-label,
[data-vika-tema="escuro"] .apexcharts-title-text,
[data-vika-tema="escuro"] .apexcharts-datalabel-label,
[data-vika-tema="escuro"] .apexcharts-datalabel-value { fill: #c9d7e8 !important; }
[data-vika-tema="escuro"] .apexcharts-legend-text { color: #c9d7e8 !important; }
[data-vika-tema="escuro"] .apexcharts-gridline,
[data-vika-tema="escuro"] .apexcharts-grid line,
[data-vika-tema="escuro"] .apexcharts-xaxis line,
[data-vika-tema="escuro"] .apexcharts-yaxis line { stroke: rgba(149, 188, 221, .18) !important; }
[data-vika-tema="escuro"] .apexcharts-tooltip.apexcharts-theme-light { background: var(--vk-surface-2) !important; color: var(--vk-ink) !important; border-color: var(--vk-border-strong) !important; }
[data-vika-tema="escuro"] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title { background: var(--vk-surface-3) !important; border-color: var(--vk-border) !important; }
[data-vika-tema="escuro"] .apexcharts-xaxistooltip,
[data-vika-tema="escuro"] .apexcharts-yaxistooltip { background: var(--vk-surface-2) !important; color: var(--vk-ink) !important; border-color: var(--vk-border-strong) !important; }
[data-vika-tema="escuro"] .apexcharts-menu { background: var(--vk-surface-2) !important; border-color: var(--vk-border-strong) !important; color: var(--vk-ink); }
[data-vika-tema="escuro"] .apexcharts-menu-item:hover { background: rgba(92, 225, 242, .14) !important; }
[data-vika-tema="escuro"] .apexcharts-pie-area,
[data-vika-tema="escuro"] .apexcharts-donut-slice { stroke: var(--vk-surface) !important; }

/* openlayers */
[data-vika-tema="escuro"] .ol-tooltip,
[data-vika-tema="escuro"] .ol-popup { background: var(--vk-surface-2) !important; color: var(--vk-ink) !important; border-color: var(--vk-border-strong) !important; }
[data-vika-tema="escuro"] .ol-control button { background-color: rgba(19, 34, 63, .85); color: var(--vk-ink); }

/* barras de deslocamento */
[data-vika-tema="escuro"] .fancyScrollBar::-webkit-scrollbar-track,
[data-vika-tema="escuro"] .fancyScrollBar::-webkit-scrollbar-corner { background-color: var(--vk-surface) !important; }
[data-vika-tema="escuro"] * { scrollbar-color: rgba(149, 188, 221, .35) transparent; }

/* ---------- seletor de tema (Modo escuro / Modo claro) ---------- */
.dropdown-item[data-vika-tema-opcao].active { background-color: rgba(10, 162, 192, .14) !important; color: inherit !important; }
.dropdown-item[data-vika-tema-opcao].active i { color: #0a7f96 !important; }
[data-vika-tema="escuro"] .dropdown-item[data-vika-tema-opcao].active { background-color: rgba(92, 225, 242, .14) !important; color: #fff !important; }
[data-vika-tema="escuro"] .dropdown-item[data-vika-tema-opcao].active i { color: var(--vk-accent) !important; }

/* paginação: a app pinta os números com a cor do tema (escura demais sobre navy) */
[data-vika-tema="escuro"] .page-link { color: var(--vk-ink) !important; background-color: var(--vk-surface) !important; border-color: var(--vk-border) !important; }
[data-vika-tema="escuro"] .page-link:hover { color: var(--vk-accent) !important; background-color: var(--vk-surface-2) !important; }
[data-vika-tema="escuro"] .page-item.active .page-link,
[data-vika-tema="escuro"] .page-link.active { color: var(--vk-accent-ink) !important; background-color: var(--vk-accent) !important; border-color: var(--vk-accent) !important; }
[data-vika-tema="escuro"] .page-item.disabled .page-link,
[data-vika-tema="escuro"] .page-link:disabled { color: rgba(164, 181, 202, .55) !important; }
