/**
 * GEST Fleet Management - Dark Mode Theme
 * Works with Jobie's built-in toggle: body[data-theme-version="dark"]
 * Overrides GEST premium inline styles that use !important
 */

/* ══════════════════════════════════════════════
   CSS Variables for dark theme
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] {
    --gest-light: #1a1d29;
    --gest-border: #3a3f51;
    --gest-card-shadow: 0 2px 12px rgba(0,0,0,0.25);
    --gest-card-shadow-hover: 0 8px 24px rgba(0,0,0,0.35);
    --gest-muted: #8a8d91;
    --gest-slate: #b0b3b8;
    --gest-navy: #e4e6eb;
    --gest-dark: #e4e6eb;

    --dm-bg-primary: #1a1d29;
    --dm-bg-secondary: #252837;
    --dm-bg-card: #252837;
    --dm-bg-tertiary: #2d3142;
    --dm-bg-hover: #343850;
    --dm-text-primary: #e4e6eb;
    --dm-text-secondary: #b0b3b8;
    --dm-text-muted: #8a8d91;
    --dm-border: #3a3f51;
    --dm-border-light: #2d3142;

    color-scheme: dark;
}

/* ══════════════════════════════════════════════
   Content Area - Override GEST premium !important
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .content-body {
    background: var(--dm-bg-primary) !important;
}

/* ══════════════════════════════════════════════
   Cards - Override .card { background: #fff !important }
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .card {
    background: var(--dm-bg-card) !important;
    border-color: var(--dm-border) !important;
    box-shadow: var(--gest-card-shadow) !important;
    color: var(--dm-text-primary);
}

[data-theme-version="dark"] .card:hover {
    box-shadow: var(--gest-card-shadow-hover) !important;
}

[data-theme-version="dark"] .card-header,
[data-theme-version="dark"] .card-footer {
    background-color: var(--dm-bg-tertiary);
    border-color: var(--dm-border);
}

[data-theme-version="dark"] .card-title,
[data-theme-version="dark"] .card-header h4,
[data-theme-version="dark"] .card-header h5,
[data-theme-version="dark"] .card-header h6 {
    color: var(--dm-text-primary) !important;
}

/* ══════════════════════════════════════════════
   Forms - Override premium !important styles
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .form-control,
[data-theme-version="dark"] .form-select {
    background-color: var(--dm-bg-tertiary) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text-primary) !important;
}

[data-theme-version="dark"] .form-control::placeholder {
    color: var(--dm-text-muted) !important;
}

[data-theme-version="dark"] .form-control:hover,
[data-theme-version="dark"] .form-select:hover {
    border-color: #5a5f71 !important;
}

[data-theme-version="dark"] .form-control:focus,
[data-theme-version="dark"] .form-select:focus {
    background-color: var(--dm-bg-tertiary) !important;
    border-color: var(--gest-primary) !important;
    color: var(--dm-text-primary) !important;
    box-shadow: 0 0 0 4px rgba(67, 24, 255, 0.2) !important;
}

[data-theme-version="dark"] .form-control:disabled,
[data-theme-version="dark"] .form-control[readonly],
[data-theme-version="dark"] .form-select:disabled {
    background-color: var(--dm-bg-secondary) !important;
    border-color: var(--dm-border-light) !important;
    color: var(--dm-text-muted) !important;
}

[data-theme-version="dark"] .form-control[type="file"]::file-selector-button {
    background: linear-gradient(135deg, var(--gest-primary), var(--gest-primary-dark)) !important;
    color: #fff !important;
}

[data-theme-version="dark"] .form-label,
[data-theme-version="dark"] .col-form-label {
    color: var(--dm-text-secondary) !important;
}

[data-theme-version="dark"] .form-text {
    color: var(--dm-text-muted) !important;
}

[data-theme-version="dark"] .form-check-label {
    color: var(--dm-text-secondary) !important;
}

[data-theme-version="dark"] .input-group .input-group-text {
    background: var(--dm-bg-tertiary) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text-muted) !important;
}

/* ══════════════════════════════════════════════
   Tables - Override premium table styles
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .table {
    color: var(--dm-text-primary);
}

[data-theme-version="dark"] .table > thead > tr > th {
    color: var(--dm-text-muted);
    border-bottom-color: var(--dm-border);
}

[data-theme-version="dark"] .table > :not(caption) > * > * {
    border-bottom-color: var(--dm-border-light);
}

[data-theme-version="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: rgba(255, 255, 255, 0.02);
}

[data-theme-version="dark"] .table-hover > tbody > tr:hover > * {
    background-color: var(--dm-bg-hover);
}

[data-theme-version="dark"] .table-light {
    background-color: var(--dm-bg-tertiary) !important;
    color: var(--dm-text-primary);
}

/* DataTables */
[data-theme-version="dark"] .dataTables_wrapper .dataTables_filter input,
[data-theme-version="dark"] .dataTables_wrapper .dataTables_length select {
    background-color: var(--dm-bg-tertiary) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text-primary) !important;
}

[data-theme-version="dark"] .dataTables_wrapper .dataTables_info,
[data-theme-version="dark"] .dataTables_wrapper .dataTables_paginate {
    color: var(--dm-text-secondary);
}

[data-theme-version="dark"] .page-link {
    background-color: var(--dm-bg-secondary);
    border-color: var(--dm-border);
    color: var(--dm-text-primary);
}

[data-theme-version="dark"] .page-link:hover {
    background-color: var(--dm-bg-hover);
    border-color: var(--dm-border);
}

[data-theme-version="dark"] .page-item.active .page-link {
    background-color: var(--gest-primary);
    border-color: var(--gest-primary);
}

/* ══════════════════════════════════════════════
   Dropdowns
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .dropdown-menu {
    background-color: var(--dm-bg-card);
    border-color: var(--dm-border);
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
}

[data-theme-version="dark"] .dropdown-item {
    color: var(--dm-text-primary);
}

[data-theme-version="dark"] .dropdown-item:hover,
[data-theme-version="dark"] .dropdown-item:focus {
    background-color: var(--dm-bg-hover);
    color: var(--dm-text-primary);
}

[data-theme-version="dark"] .dropdown-divider {
    border-top-color: var(--dm-border);
}

/* ══════════════════════════════════════════════
   Modals
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .modal-content {
    background-color: var(--dm-bg-card);
    border-color: var(--dm-border);
}

[data-theme-version="dark"] .modal-header,
[data-theme-version="dark"] .modal-footer {
    border-color: var(--dm-border);
}

[data-theme-version="dark"] .modal-header .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

[data-theme-version="dark"] .modal-title {
    color: var(--dm-text-primary);
}

/* ══════════════════════════════════════════════
   Alerts
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .alert-info {
    background-color: rgba(6, 182, 212, 0.15);
    border-color: rgba(6, 182, 212, 0.25);
    color: #6ec9e6;
}

[data-theme-version="dark"] .alert-warning {
    background-color: rgba(245, 158, 11, 0.15);
    border-color: rgba(245, 158, 11, 0.25);
    color: #ffd54f;
}

[data-theme-version="dark"] .alert-success {
    background-color: rgba(34, 197, 94, 0.15);
    border-color: rgba(34, 197, 94, 0.25);
    color: #3dd598;
}

[data-theme-version="dark"] .alert-danger {
    background-color: rgba(239, 68, 68, 0.15);
    border-color: rgba(239, 68, 68, 0.25);
    color: #fb8da0;
}

[data-theme-version="dark"] .alert-primary {
    background-color: rgba(67, 24, 255, 0.15);
    border-color: rgba(67, 24, 255, 0.25);
    color: #a5acff;
}

/* ══════════════════════════════════════════════
   Badges & List Groups
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .badge.bg-light {
    background-color: var(--dm-bg-tertiary) !important;
    color: var(--dm-text-primary) !important;
}

[data-theme-version="dark"] .list-group-item {
    background-color: var(--dm-bg-card);
    border-color: var(--dm-border);
    color: var(--dm-text-primary);
}

[data-theme-version="dark"] .list-group-item:hover {
    background-color: var(--dm-bg-hover);
}

/* ══════════════════════════════════════════════
   Text & Background Overrides
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .text-muted {
    color: var(--dm-text-muted) !important;
}

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

[data-theme-version="dark"] .text-body {
    color: var(--dm-text-primary) !important;
}

[data-theme-version="dark"] .text-black {
    color: var(--dm-text-primary) !important;
}

[data-theme-version="dark"] .bg-light {
    background-color: var(--dm-bg-tertiary) !important;
}

[data-theme-version="dark"] .bg-white {
    background-color: var(--dm-bg-card) !important;
}

[data-theme-version="dark"] .border {
    border-color: var(--dm-border) !important;
}

[data-theme-version="dark"] .border-bottom {
    border-bottom-color: var(--dm-border) !important;
}

[data-theme-version="dark"] .border-top {
    border-top-color: var(--dm-border) !important;
}

[data-theme-version="dark"] hr {
    border-top-color: var(--dm-border);
}

/* ══════════════════════════════════════════════
   Buttons - Override premium gradient buttons
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .btn-light {
    background-color: var(--dm-bg-tertiary) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text-primary) !important;
    box-shadow: none !important;
}

[data-theme-version="dark"] .btn-outline-secondary {
    border-color: var(--dm-border) !important;
    color: var(--dm-text-secondary) !important;
}

[data-theme-version="dark"] .btn-outline-secondary:hover {
    background-color: var(--dm-bg-hover) !important;
    color: var(--dm-text-primary) !important;
}

[data-theme-version="dark"] .btn-outline-primary {
    border-color: var(--gest-primary-light) !important;
    color: var(--gest-primary-light) !important;
}

[data-theme-version="dark"] .btn-outline-primary:hover {
    background: var(--gest-primary) !important;
    color: #fff !important;
}

/* ══════════════════════════════════════════════
   Select2 - Override premium styles
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .select2-container--default .select2-selection--single,
[data-theme-version="dark"] .select2-container--default .select2-selection--multiple {
    background-color: var(--dm-bg-tertiary) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text-primary) !important;
}

[data-theme-version="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--dm-text-primary) !important;
}

[data-theme-version="dark"] .select2-dropdown {
    background-color: var(--dm-bg-card);
    border-color: var(--dm-border);
}

[data-theme-version="dark"] .select2-results__option {
    color: var(--dm-text-primary);
}

[data-theme-version="dark"] .select2-results__option--highlighted {
    background-color: var(--gest-primary) !important;
    color: #fff !important;
}

[data-theme-version="dark"] .select2-search__field {
    background-color: var(--dm-bg-tertiary) !important;
    color: var(--dm-text-primary) !important;
    border-color: var(--dm-border) !important;
}

/* ══════════════════════════════════════════════
   Flatpickr dark overrides
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .flatpickr-calendar {
    background: var(--dm-bg-card) !important;
    border-color: var(--dm-border) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4) !important;
}

[data-theme-version="dark"] .flatpickr-day {
    color: var(--dm-text-primary);
}

[data-theme-version="dark"] .flatpickr-day:hover {
    background: var(--dm-bg-hover);
    border-color: var(--dm-bg-hover);
}

[data-theme-version="dark"] .flatpickr-day.today {
    border-color: var(--gest-primary);
}

[data-theme-version="dark"] .flatpickr-day.selected {
    background: var(--gest-primary) !important;
    border-color: var(--gest-primary) !important;
}

[data-theme-version="dark"] span.flatpickr-weekday {
    color: var(--dm-text-muted);
}

[data-theme-version="dark"] .flatpickr-day.flatpickr-disabled {
    color: var(--dm-text-muted) !important;
}

/* ══════════════════════════════════════════════
   GEST-specific components
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] .stat-card,
[data-theme-version="dark"] .kpi-card {
    background-color: var(--dm-bg-card);
}

[data-theme-version="dark"] .empty-state {
    background: linear-gradient(135deg, var(--dm-bg-secondary) 0%, var(--dm-bg-tertiary) 100%);
}

[data-theme-version="dark"] .filter-bar .card-header {
    background-color: var(--dm-bg-tertiary);
}

/* Glass effect in dark mode */
[data-theme-version="dark"] .glass {
    background: rgba(37, 40, 55, 0.7) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Progress bars */
[data-theme-version="dark"] .progress {
    background-color: var(--dm-bg-tertiary);
}

/* Toast */
[data-theme-version="dark"] .toast {
    background-color: var(--dm-bg-card);
    border-color: var(--dm-border);
    color: var(--dm-text-primary);
}

/* Footer */
[data-theme-version="dark"] .footer {
    background-color: var(--dm-bg-secondary);
    border-top-color: var(--dm-border);
    color: var(--dm-text-secondary);
}

/* Global search results dropdown */
[data-theme-version="dark"] #globalSearchResults {
    background-color: var(--dm-bg-card) !important;
}

[data-theme-version="dark"] #globalSearchResults .bg-light {
    background-color: var(--dm-bg-tertiary) !important;
}

[data-theme-version="dark"] #globalSearchResults .search-result-item {
    color: var(--dm-text-primary) !important;
}

[data-theme-version="dark"] #globalSearchResults .search-result-item:hover {
    background-color: var(--dm-bg-hover) !important;
}

/* Header profile text */
[data-theme-version="dark"] .header-info span.text-black {
    color: var(--dm-text-primary) !important;
}

/* Module grid dropdown hover */
[data-theme-version="dark"] .hover-bg-light:hover {
    background-color: var(--dm-bg-hover) !important;
}

/* ══════════════════════════════════════════════
   Scrollbar - dark theme
   ══════════════════════════════════════════════ */
[data-theme-version="dark"] ::-webkit-scrollbar-track {
    background: var(--dm-bg-secondary);
}

[data-theme-version="dark"] ::-webkit-scrollbar-thumb {
    background: var(--dm-bg-tertiary);
    border-radius: 3px;
}

[data-theme-version="dark"] ::-webkit-scrollbar-thumb:hover {
    background: var(--dm-border);
}

/* ══════════════════════════════════════════════
   Smooth transition for theme switching
   ══════════════════════════════════════════════ */
body,
.card,
.form-control,
.form-select,
.content-body,
.dropdown-menu,
.modal-content,
.list-group-item,
.table {
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
