/*!
 * Dark mode companion for SB Admin 2 overrides.
 * Mirrors the light mode customisations declared in custom.css so every component
 * keeps consistent styling when the dark theme is active.
 */

html.dark-mode {
  --sb-body-bg: #111827;
  --sb-body-color: #d1d5db;
  --sb-card-bg: #1f2937;
  --sb-card-border: rgba(255, 255, 255, 0.08);
  --sb-card-header-bg: #273549;
  --sb-card-header-color: #93c5fd;
  --sb-border-color: rgba(148, 163, 184, 0.35);
  --sb-heading-color: #f9fafb;
  --sb-muted-color: #9ca3af;
  --sb-link-color: #93c5fd;
  --sb-link-hover: #60a5fa;
  --sb-input-bg: #1f2937;
  --sb-input-border: rgba(148, 163, 184, 0.35);
  --sb-input-focus: rgba(96, 165, 250, 0.35);
  --sb-modal-backdrop: rgba(0, 0, 0, 0.7);
  --sb-glass: rgba(17, 24, 39, 0.8);
  --sb-chip-bg: rgba(96, 165, 250, 0.1);
  --sb-chip-border: rgba(147, 197, 253, 0.25);
  --sb-chip-text: #dbeafe;
  --sb-muted-surface: #0f172a;
}

html.dark-mode body,
html.dark-mode #content-wrapper {
  background-color: var(--sb-body-bg) !important;
  color: var(--sb-body-color) !important;
}

html.dark-mode .text-gray-600,
html.dark-mode .text-muted,
html.dark-mode p,
html.dark-mode .small {
  color: var(--sb-muted-color) !important;
}

html.dark-mode .navbar.topbar {
  background-color: #1f2937 !important;
  box-shadow: 0 0.35rem 1.5rem rgba(0, 0, 0, 0.35) !important;
}

html.dark-mode .navbar.topbar .nav-link,
html.dark-mode .navbar.topbar .nav-link i {
  color: var(--sb-body-color) !important;
}

html.dark-mode .dropdown-menu,
html.dark-mode .dropdown-list {
  background-color: #1f2937;
  border-color: var(--sb-border-color);
  box-shadow: 0 0.35rem 1.5rem rgba(0, 0, 0, 0.4);
}

html.dark-mode .dropdown-item {
  color: var(--sb-body-color);
}

html.dark-mode .dropdown-item:hover,
html.dark-mode .dropdown-item:focus {
  color: #fff;
  background-color: rgba(96, 165, 250, 0.25);
}

html.dark-mode .dropdown-divider {
  border-top-color: var(--sb-border-color);
}

html.dark-mode .sidebar,
html.dark-mode .sticky-footer {
  background-color: #0f172a !important;
  background-image: none !important;
}

html.dark-mode .sidebar .nav-link,
html.dark-mode .sidebar .collapse-inner .collapse-item {
  color: var(--sb-body-color) !important;
}

html.dark-mode .sidebar-dark .nav-item.active .nav-link,
html.dark-mode .sidebar .nav-item .nav-link:not(.collapsed) {
  background-color: rgba(148, 163, 184, 0.12);
  color: #f8fafc !important;
}

html.dark-mode .sidebar .collapse .collapse-inner {
  background-color: rgba(15, 23, 42, 0.85) !important;
}

html.dark-mode .card,
html.dark-mode .bg-white {
  background-color: var(--sb-card-bg) !important;
  border-color: var(--sb-card-border) !important;
  color: var(--sb-body-color) !important;
  box-shadow: 0 0.3rem 1.8rem rgba(0, 0, 0, 0.35) !important;
}

html.dark-mode .card .card-header,
html.dark-mode .card .card-footer {
  background-color: var(--sb-card-header-bg) !important;
  border-color: var(--sb-border-color) !important;
  color: var(--sb-card-header-color) !important;
}

html.dark-mode .card .card-title,
html.dark-mode .card .card-subtitle {
  color: var(--sb-card-header-color) !important;
}

html.dark-mode .stat-card__label {
  color: var(--sb-muted-color) !important;
}

html.dark-mode .stat-card__value {
  color: #f9fafb !important;
}

html.dark-mode .stat-card--warning .stat-card__icon {
  color: #111827;
}

html.dark-mode .table {
  color: var(--sb-body-color);
}

html.dark-mode .table th,
html.dark-mode .table td {
  border-color: var(--sb-border-color) !important;
}

html.dark-mode .table thead th {
  color: #dbeafe;
  background-color: rgba(59, 130, 246, 0.18);
}

html.dark-mode .table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(59, 130, 246, 0.08);
}

html.dark-mode .table-hover tbody tr:hover {
  background-color: rgba(59, 130, 246, 0.15);
}

html.dark-mode .table-responsive {
  box-shadow: 0 0.3rem 1.6rem rgba(0, 0, 0, 0.45);
}

html.dark-mode .table-modern tbody tr:hover {
  background-color: rgba(96, 165, 250, 0.18);
}

html.dark-mode .table-modern .table-empty {
  color: var(--sb-muted-color);
}

html.dark-mode .badge {
  background-color: rgba(59, 130, 246, 0.25);
  color: #bfdbfe;
}

html.dark-mode .filter-chip {
  background-color: var(--sb-chip-bg);
  color: var(--sb-chip-text);
  border-color: var(--sb-chip-border);
}

html.dark-mode .filter-summary {
  background: rgba(59, 130, 246, 0.08);
}

html.dark-mode .filter-summary__placeholder {
  color: var(--sb-muted-color);
}

html.dark-mode .btn-primary,
html.dark-mode .btn-success,
html.dark-mode .btn-warning,
html.dark-mode .btn-danger {
  box-shadow: 0 0.35rem 0.75rem rgba(0, 0, 0, 0.45);
}

html.dark-mode .btn-outline-primary {
  border-color: rgba(147, 197, 253, 0.75);
  color: #bfdbfe;
}

html.dark-mode .btn-outline-primary:hover {
  background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
  color: #fff;
}

html.dark-mode .form-control,
html.dark-mode .custom-select {
  background-color: var(--sb-input-bg);
  color: var(--sb-body-color);
  border-color: var(--sb-input-border);
}

html.dark-mode .form-control:focus,
html.dark-mode .custom-select:focus {
  border-color: #60a5fa;
  box-shadow: 0 0 0 0.2rem var(--sb-input-focus);
}

html.dark-mode .form-control::placeholder {
  color: rgba(209, 213, 219, 0.65);
}

html.dark-mode .input-group-text {
  background-color: rgba(59, 130, 246, 0.12);
  color: #bfdbfe;
  border-color: var(--sb-input-border);
}

html.dark-mode .autocomplete-results {
  background: var(--sb-card-bg);
  border-color: var(--sb-border-color);
  box-shadow: 0 0.45rem 1.5rem rgba(0, 0, 0, 0.45);
}

html.dark-mode .badge-soft {
  background: rgba(147, 197, 253, 0.12);
  color: #bfdbfe;
}

html.dark-mode .badge-soft-success {
  background: rgba(74, 222, 128, 0.12);
  color: #bbf7d0;
}

html.dark-mode .badge-soft-info {
  background: rgba(103, 232, 249, 0.12);
  color: #a5f3fc;
}

html.dark-mode .badge-soft-warning {
  background: rgba(250, 204, 21, 0.16);
  color: #fde68a;
}

html.dark-mode .custom-control-label::before {
  background-color: rgba(148, 163, 184, 0.25);
  border-color: var(--sb-input-border);
}

html.dark-mode .custom-switch .custom-control-input:checked ~ .custom-control-label::before {
  background-color: #3b82f6;
  border-color: #2563eb;
}

html.dark-mode .modal-content {
  background-color: var(--sb-card-bg);
  border-color: var(--sb-border-color);
  color: var(--sb-body-color);
}

html.dark-mode .modal-header,
html.dark-mode .modal-footer {
  border-color: var(--sb-border-color);
}

html.dark-mode .modal-header .close {
  color: var(--sb-muted-color);
}

html.dark-mode .alert {
  background-color: rgba(59, 130, 246, 0.15);
  color: #dbeafe;
}

html.dark-mode .pagination .page-link {
  background-color: rgba(17, 24, 39, 0.8);
  border-color: var(--sb-border-color);
  color: #bfdbfe;
}

html.dark-mode .pagination .page-link:hover,
html.dark-mode .pagination .page-item.active .page-link {
  background-color: #3b82f6;
  border-color: #3b82f6;
  color: #fff;
}

html.dark-mode .breadcrumb-item a,
html.dark-mode .breadcrumb-item.active {
  color: var(--sb-muted-color);
}

html.dark-mode .list-group-item {
  background-color: rgba(15, 23, 42, 0.75);
  border-color: var(--sb-border-color);
  color: var(--sb-body-color);
}

html.dark-mode .list-group-item:hover {
  background-color: rgba(59, 130, 246, 0.12);
}

html.dark-mode #mobileMenuModal .modal-content {
  background-color: #0f172a;
}

html.dark-mode .mobile-menu .list-group-item {
  background-color: rgba(17, 24, 39, 0.85);
  color: var(--sb-body-color);
  border-bottom-color: rgba(148, 163, 184, 0.25);
}

html.dark-mode .live-search-results {
  background-color: #1f2937;
  color: var(--sb-body-color);
  border-color: var(--sb-border-color);
}

html.dark-mode .progress {
  background-color: rgba(148, 163, 184, 0.25);
}

html.dark-mode .progress-bar {
  background-image: linear-gradient(135deg, #60a5fa 0%, #2563eb 100%);
}

html.dark-mode .wizard-nav .nav-link {
  background-color: rgba(17, 24, 39, 0.85);
  border-color: var(--sb-border-color);
  color: var(--sb-body-color);
}

html.dark-mode .wizard-nav .nav-link.active {
  background-color: #3b82f6;
  border-color: #2563eb;
  color: #fff;
}

html.dark-mode .login-container {
  background-color: #111827 !important;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.45) !important;
}

html.dark-mode .live-search-results {
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.6);
}

html.dark-mode .enhanced-multiselect {
  background-color: #111827;
  border-color: rgba(148, 163, 184, 0.35);
}

html.dark-mode .enhanced-multiselect__options {
  border-color: rgba(148, 163, 184, 0.2);
}

html.dark-mode .enhanced-multiselect__option:hover {
  background-color: rgba(59, 130, 246, 0.2);
}

@media (max-width: 767.98px) {
  html.dark-mode .modal-mobile-full .modal-content {
    background-color: #111827;
    color: var(--sb-body-color);
  }
}

html.dark-mode .step-title {
  color: #93c5fd;
  border-bottom-color: #93c5fd;
}

html.dark-mode .saving-indicator {
  color: #34d399 !important;
}

html.dark-mode .budget-input.is-valid {
  border-color: #34d399 !important;
}

html.dark-mode footer.sticky-footer .copyright span {
  color: var(--sb-muted-color) !important;
}

html.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button.current,
html.dark-mode .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: #3b82f6 !important;
  border-color: #3b82f6 !important;
  color: #fff !important;
}

html.dark-mode .dataTables_wrapper .dataTables_filter input,
html.dark-mode .dataTables_wrapper .dataTables_length select {
  background-color: rgba(17, 24, 39, 0.9);
  color: var(--sb-body-color);
  border-color: var(--sb-input-border);
}

html.dark-mode .dataTables_wrapper .dataTables_filter input:focus {
  box-shadow: 0 0 0 0.2rem var(--sb-input-focus);
}

html.dark-mode .custom-control-label::before,
html.dark-mode .custom-switch .custom-control-input:checked ~ .custom-control-label::before {
  box-shadow: none;
}

/* Support header switch inside modals */
html.dark-mode .modal-header .custom-control-label,
html.dark-mode .modal-body .custom-control-label {
  color: var(--sb-body-color);
}
