/* ==========================================================================
   VCM Office – Dark Theme
   Activated via [data-theme="dark"] on <html>, toggled by site.js
   ========================================================================== */

/* ---------- Palette (scoped to dark mode) ---------- */
[data-theme="dark"] {
    --dark-bg: #1a1d23;
    --dark-surface: #22262e;
    --dark-surface-2: #2a2f38;
    --dark-border: #3a3f4a;
    --dark-text: #e2e6ec;
    --dark-text-muted: #8a94a6;
    --dark-input-bg: #2a2f38;
    --dark-hover: #313640;
    --dark-shadow: rgba(0, 0, 0, .35);
}

    /* ---------- Global ---------- */
    [data-theme="dark"] body {
        background-color: var(--dark-bg);
        color: var(--dark-text);
    }

    [data-theme="dark"] *,
    [data-theme="dark"] *::before,
    [data-theme="dark"] *::after {
        transition: background-color .2s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
    }

    /* ---------- Sidenav ---------- */
    [data-theme="dark"] .sidenav.bg-white,
    [data-theme="dark"] .sidenav.navbar-light {
        background-color: var(--dark-surface) !important;
    }

    [data-theme="dark"] .sidenav .navbar-brand-img {
        filter: brightness(1.15);
    }

    [data-theme="dark"] .sidenav .nav-link {
        color: var(--dark-text) !important;
    }

        [data-theme="dark"] .sidenav .nav-link:hover {
            background-color: var(--dark-hover) !important;
        }

        [data-theme="dark"] .sidenav .nav-link.active {
            /* keep brand active colour */
        }

    [data-theme="dark"] .sidenav-header {
        border-bottom-color: var(--dark-border);
    }

    [data-theme="dark"] .scrollbar-inner > .scroll-element .scroll-bar {
        background-color: var(--dark-border);
    }

    /* ---------- Top Navbar ---------- */
    [data-theme="dark"] .navbar-top.bg-primary {
        background-color: var(--dark-surface) !important;
        border-bottom-color: var(--dark-border) !important;
    }

    /* ---------- Header / Page banner ---------- */
    [data-theme="dark"] .header.bg-primary {
        background-color: var(--dark-surface-2) !important;
    }

    [data-theme="dark"] .bg-gradient-primary {
        background: linear-gradient(87deg, var(--dark-surface-2) 0%, var(--dark-surface) 100%) !important;
    }

    /* ---------- Main content area ---------- */
    [data-theme="dark"] .main-content {
        background-color: var(--dark-bg);
    }

    /* ---------- Cards ---------- */
    [data-theme="dark"] .card {
        background-color: var(--dark-surface);
        border-color: var(--dark-border);
        box-shadow: 0 0 2rem 0 var(--dark-shadow);
        color: var(--dark-text);
    }

    [data-theme="dark"] .card-header {
        background-color: var(--dark-surface);
        border-bottom-color: var(--dark-border);
        color: var(--dark-text);
    }

    [data-theme="dark"] .card-footer {
        background-color: var(--dark-surface);
        border-top-color: var(--dark-border);
    }

    [data-theme="dark"] .card .card-body {
        color: var(--dark-text);
    }

    [data-theme="dark"] .bg-secondary {
        background-color: var(--dark-surface) !important;
    }

    [data-theme="dark"] .bg-default {
        background-color: var(--dark-surface) !important;
    }

    /* ---------- Tables ---------- */
    [data-theme="dark"] .table {
        color: var(--dark-text);
    }

        [data-theme="dark"] .table thead th {
            background-color: var(--dark-surface-2);
            border-bottom-color: var(--dark-border);
            color: var(--dark-text-muted);
        }

        [data-theme="dark"] .table td,
        [data-theme="dark"] .table th {
            border-top-color: var(--dark-border);
        }

    [data-theme="dark"] .table-striped tbody tr:nth-of-type(odd) {
        background-color: var(--dark-surface-2);
    }

    [data-theme="dark"] .table-hover tbody tr:hover {
        background-color: var(--dark-hover);
    }

    [data-theme="dark"] .table-flush td,
    [data-theme="dark"] .table-flush th {
        border-color: var(--dark-border);
    }

    /* ---------- Forms ---------- */
    [data-theme="dark"] .form-control {
        background-color: var(--dark-input-bg);
        border-color: var(--dark-border);
        color: var(--dark-text);
    }

        [data-theme="dark"] .form-control:focus {
            background-color: var(--dark-input-bg);
            border-color: var(--main);
            color: var(--dark-text);
            box-shadow: 0 0 0 .2rem rgba(26, 102, 163, .25);
        }

        [data-theme="dark"] .form-control::placeholder {
            color: var(--dark-text-muted);
        }

        [data-theme="dark"] .form-control:disabled,
        [data-theme="dark"] .form-control[readonly] {
            background-color: var(--dark-surface);
            opacity: .7;
        }

    [data-theme="dark"] select.form-control {
        background-color: var(--dark-input-bg);
        color: var(--dark-text);
    }

    [data-theme="dark"] .input-group-text {
        background-color: var(--dark-surface-2);
        border-color: var(--dark-border);
        color: var(--dark-text-muted);
    }

    [data-theme="dark"] .custom-select {
        background-color: var(--dark-input-bg);
        border-color: var(--dark-border);
        color: var(--dark-text);
    }

    [data-theme="dark"] .custom-control-label::before {
        background-color: var(--dark-input-bg);
        border-color: var(--dark-border);
    }

    /* ---------- Buttons ---------- */
    [data-theme="dark"] .btn-neutral,
    [data-theme="dark"] .btn-outline-default,
    [data-theme="dark"] .btn-white {
        background-color: var(--dark-surface-2);
        border-color: var(--dark-border);
        color: var(--dark-text) !important;
    }

        [data-theme="dark"] .btn-neutral:hover,
        [data-theme="dark"] .btn-outline-default:hover,
        [data-theme="dark"] .btn-white:hover {
            background-color: var(--dark-hover);
            border-color: var(--dark-border);
            color: #fff !important;
        }

    [data-theme="dark"] .btn-secondary {
        background-color: var(--dark-surface-2);
        border-color: var(--dark-border);
        color: var(--dark-text);
    }

    /* ---------- Dropdowns ---------- */
    [data-theme="dark"] .dropdown-menu {
        background-color: var(--dark-surface);
        border-color: var(--dark-border);
        box-shadow: 0 50px 100px var(--dark-shadow);
    }

    [data-theme="dark"] .dropdown-item {
        color: var(--dark-text);
    }

        [data-theme="dark"] .dropdown-item:hover,
        [data-theme="dark"] .dropdown-item:focus {
            background-color: var(--dark-hover);
            color: #fff;
        }

    [data-theme="dark"] .dropdown-divider {
        border-top-color: var(--dark-border);
    }

    /* ---------- Modals ---------- */
    [data-theme="dark"] .modal-content {
        background-color: var(--dark-surface);
        border-color: var(--dark-border);
        color: var(--dark-text);
    }

    [data-theme="dark"] .modal-header {
        border-bottom-color: var(--dark-border);
    }

    [data-theme="dark"] .modal-footer {
        border-top-color: var(--dark-border);
    }

    [data-theme="dark"] .close {
        color: var(--dark-text);
        text-shadow: none;
    }

    /* ---------- Nav pills / tabs ---------- */
    [data-theme="dark"] .nav-pills .nav-link {
        background-color: var(--dark-surface-2);
        color: var(--dark-text);
    }

        [data-theme="dark"] .nav-pills .nav-link:hover {
            background-color: var(--dark-hover);
            color: #fff;
        }

    [data-theme="dark"] .nav-tabs .nav-link {
        border-color: transparent;
        color: var(--dark-text-muted);
    }

        [data-theme="dark"] .nav-tabs .nav-link.active {
            background-color: var(--dark-surface);
            border-color: var(--dark-border) var(--dark-border) var(--dark-surface);
            color: var(--dark-text);
        }

    [data-theme="dark"] .nav-tabs {
        border-bottom-color: var(--dark-border);
    }

    /* ---------- Pagination ---------- */
    [data-theme="dark"] .page-link {
        background-color: var(--dark-surface);
        border-color: var(--dark-border);
        color: var(--dark-text);
    }

        [data-theme="dark"] .page-link:hover {
            background-color: var(--dark-hover);
            border-color: var(--dark-border);
            color: #fff;
        }

    /* ---------- Badges ---------- */
    [data-theme="dark"] .badge-default {
        background-color: var(--dark-surface-2);
        color: var(--dark-text);
    }

    /* ---------- Breadcrumbs ---------- */
    [data-theme="dark"] .breadcrumb {
        background-color: transparent;
    }

    [data-theme="dark"] .breadcrumb-item,
    [data-theme="dark"] .breadcrumb-item a {
        color: var(--dark-text-muted);
    }

        [data-theme="dark"] .breadcrumb-item.active {
            color: var(--dark-text);
        }

    /* ---------- Alerts ---------- */
    [data-theme="dark"] .alert-default {
        background-color: var(--dark-surface-2);
        border-color: var(--dark-border);
        color: var(--dark-text);
    }

    /* ---------- Progress bars ---------- */
    [data-theme="dark"] .progress {
        background-color: var(--dark-surface-2);
    }

    /* ---------- List groups ---------- */
    [data-theme="dark"] .list-group-item {
        background-color: var(--dark-surface);
        border-color: var(--dark-border);
        color: var(--dark-text);
    }

        [data-theme="dark"] .list-group-item:hover {
            background-color: var(--dark-hover);
        }

    /* ---------- Footer ---------- */
    [data-theme="dark"] .footer {
        background-color: var(--dark-bg);
        border-top-color: var(--dark-border);
    }

        [data-theme="dark"] .footer .nav-link {
            color: var(--dark-text-muted) !important;
        }

    /* ---------- Text utilities ---------- */
    [data-theme="dark"] .text-muted {
        color: var(--dark-text-muted) !important;
    }

    [data-theme="dark"] .text-dark {
        color: var(--dark-text) !important;
    }

    [data-theme="dark"] .text-body {
        color: var(--dark-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"] .h1, [data-theme="dark"] .h2,
    [data-theme="dark"] .h3, [data-theme="dark"] .h4,
    [data-theme="dark"] .h5, [data-theme="dark"] .h6 {
        color: var(--dark-text);
    }

    /* ---------- Border utilities ---------- */
    [data-theme="dark"] .border,
    [data-theme="dark"] .border-top,
    [data-theme="dark"] .border-bottom,
    [data-theme="dark"] .border-left,
    [data-theme="dark"] .border-right {
        border-color: var(--dark-border) !important;
    }

    [data-theme="dark"] hr {
        border-top-color: var(--dark-border);
    }

    /* ---------- Shadow override ---------- */
    [data-theme="dark"] .shadow,
    [data-theme="dark"] .shadow-sm,
    [data-theme="dark"] .shadow-lg {
        box-shadow: 0 0 2rem 0 var(--dark-shadow) !important;
    }

    /* ---------- Popover & tooltip ---------- */
    [data-theme="dark"] .popover {
        background-color: var(--dark-surface);
        border-color: var(--dark-border);
    }

    [data-theme="dark"] .popover-body {
        color: var(--dark-text);
    }

    [data-theme="dark"] .tooltip-inner {
        background-color: var(--dark-surface-2);
        color: var(--dark-text);
    }

    /* ---------- Selectize plugin (if used) ---------- */
    [data-theme="dark"] .selectize-input {
        background-color: var(--dark-input-bg) !important;
        border-color: var(--dark-border) !important;
        color: var(--dark-text);
    }

    [data-theme="dark"] .selectize-dropdown {
        background-color: var(--dark-surface) !important;
        border-color: var(--dark-border) !important;
        color: var(--dark-text);
    }

        [data-theme="dark"] .selectize-dropdown .active {
            background-color: var(--dark-hover) !important;
            color: #fff;
        }

    /* ---------- DataTables (if used) ---------- */
    [data-theme="dark"] .dataTables_wrapper .dataTables_length,
    [data-theme="dark"] .dataTables_wrapper .dataTables_filter,
    [data-theme="dark"] .dataTables_wrapper .dataTables_info,
    [data-theme="dark"] .dataTables_wrapper .dataTables_paginate {
        color: var(--dark-text-muted);
    }

    /* ---------- Calendar overrides (FullCalendar) ---------- */
    [data-theme="dark"] .fc .fc-toolbar-title {
        color: var(--dark-text);
    }

    [data-theme="dark"] .fc .fc-col-header-cell {
        background-color: var(--dark-surface-2);
        color: var(--dark-text-muted);
    }

    [data-theme="dark"] .fc .fc-daygrid-day {
        background-color: var(--dark-surface);
    }

    [data-theme="dark"] .fc td,
    [data-theme="dark"] .fc th {
        border-color: var(--dark-border);
    }

    /* ---------- Froala editor (if used) ---------- */
    [data-theme="dark"] .fr-box .fr-wrapper {
        background-color: var(--dark-input-bg) !important;
        color: var(--dark-text);
    }

    [data-theme="dark"] .fr-box .fr-toolbar {
        background-color: var(--dark-surface-2) !important;
        border-color: var(--dark-border) !important;
    }

    /* ---------- Chart.js canvas containers ---------- */
    [data-theme="dark"] .chart {
        filter: brightness(.9) saturate(1.1);
    }

    /* ---------- Toggle button icon swap ---------- */
    [data-theme="dark"] #theme-toggle .fa-moon::before {
        content: "\f185"; /* swaps to fa-sun */
    }

    /* ---------- Scrollbar styling (Webkit) ---------- */
    [data-theme="dark"] ::-webkit-scrollbar {
        width: 8px;
        height: 8px;
    }

    [data-theme="dark"] ::-webkit-scrollbar-track {
        background: var(--dark-bg);
    }

    [data-theme="dark"] ::-webkit-scrollbar-thumb {
        background-color: var(--dark-border);
        border-radius: 4px;
    }

        [data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
            background-color: var(--dark-text-muted);
        }

    /* ---------- Misc ---------- */
    [data-theme="dark"] .fill-default {
        fill: var(--dark-surface);
    }

    [data-theme="dark"] .bg-white {
        background-color: var(--dark-surface) !important;
    }

    [data-theme="dark"] code {
        background-color: var(--dark-surface-2);
        color: #e06c75;
    }

    [data-theme="dark"] pre {
        background-color: var(--dark-surface-2);
        color: var(--dark-text);
        border-color: var(--dark-border);
    }

    [data-theme="dark"] ::selection {
        background: rgba(26, 102, 163, .4);
        color: #fff;
    }


    /* ---------- Edit card (dark-mode-friendly green tint) ---------- */
    [data-theme="dark"] .card-edit {
        background-color: #1a3a32 !important;
        border-color: #2a5e4a !important;
    }

        [data-theme="dark"] .card-edit .form-control {
            background-color: #1e3d35;
            border-color: #2a5e4a;
        }

        [data-theme="dark"] .card-edit h3,
        [data-theme="dark"] .card-edit label {
            color: #8fdcc8;
        }

    [data-theme="dark"] .fr-box.fr-basic .fr-element {
        color: white
    }
