/**
 * Global Dark Mode Overrides for Bootstrap 5.1.3
 *
 * Bootstrap 5.1.3 has no native dark mode. This file provides
 * [data-bs-theme="dark"] overrides for all common Bootstrap components.
 * Loaded globally via mstBase.html so every page gets dark mode support.
 *
 * Theme CSS variables (defined in partials/theme_css.html):
 *   --mst-bg-primary: #212529
 *   --mst-bg-secondary: #343a40
 *   --mst-text-primary: #f8f9fa
 *   --mst-text-secondary: #adb5bd
 *   --mst-border-color: #495057
 *   --mst-card-bg: #2b3035
 *   --mst-table-bg: #2b3035
 *   --mst-table-hover: #343a40
 */

/* ── Cards ── */

[data-bs-theme="dark"] .card {
  background-color: var(--mst-card-bg, #2b3035);
  color: var(--mst-text-primary, #f8f9fa);
  border-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .card-header {
  border-bottom-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .card-footer {
  border-top-color: var(--mst-border-color, #495057);
}

/* ── Shadows ── */

[data-bs-theme="dark"] .shadow-sm,
[data-bs-theme="dark"] .card.shadow-sm {
  box-shadow: 0 0.125rem 0.25rem rgba(255, 255, 255, 0.075) !important;
}

[data-bs-theme="dark"] .shadow,
[data-bs-theme="dark"] .card.shadow {
  box-shadow: 0 0.5rem 1rem rgba(255, 255, 255, 0.15) !important;
}

[data-bs-theme="dark"] .shadow-lg,
[data-bs-theme="dark"] .card.shadow-lg {
  box-shadow: 0 1rem 3rem rgba(255, 255, 255, 0.175) !important;
}

/* ── Tables ── */

[data-bs-theme="dark"] .table {
  --bs-table-bg: var(--mst-bg-primary, #212529);
  --bs-table-color: var(--mst-text-primary, #f8f9fa);
  --bs-table-border-color: var(--mst-border-color, #495057);
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-accent-bg: rgba(255, 255, 255, 0.05);
  --bs-table-striped-color: var(--mst-text-primary, #f8f9fa);
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .table-striped > tbody > tr > * {
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .table-hover > tbody > tr:hover > * {
  --bs-table-accent-bg: var(--mst-table-hover, #343a40);
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .table thead th,
[data-bs-theme="dark"] .table thead td {
  border-bottom-color: var(--mst-border-color, #495057);
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .table a:not(.btn) {
  color: #6ea8fe;
}

[data-bs-theme="dark"] .table-secondary {
  --bs-table-bg: var(--mst-bg-secondary, #343a40);
  --bs-table-color: var(--mst-text-primary, #f8f9fa);
}

/* ── Forms ── */

[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
  background-color: var(--mst-bg-secondary, #343a40);
  color: var(--mst-text-primary, #f8f9fa);
  border-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
  background-color: #3d4349;
  color: var(--mst-text-primary, #f8f9fa);
  border-color: #6c757d;
}

[data-bs-theme="dark"] .form-control::placeholder {
  color: var(--mst-text-secondary, #adb5bd);
}

[data-bs-theme="dark"] .form-check-input {
  background-color: var(--mst-bg-secondary, #343a40);
  border-color: #6c757d;
}

[data-bs-theme="dark"] .form-check-input:checked {
  background-color: #0d6efd;
  border-color: #0d6efd;
}

[data-bs-theme="dark"] .form-check-label,
[data-bs-theme="dark"] .form-label {
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .form-text {
  color: var(--mst-text-secondary, #adb5bd);
}

[data-bs-theme="dark"] .input-group-text {
  background-color: var(--mst-bg-secondary, #343a40);
  color: var(--mst-text-primary, #f8f9fa);
  border-color: var(--mst-border-color, #495057);
}

/* ── bg-light utility ── */

[data-bs-theme="dark"] .bg-light {
  background-color: var(--mst-bg-secondary, #343a40) !important;
  color: var(--mst-text-primary, #f8f9fa);
}

/* ── List Groups ── */

[data-bs-theme="dark"] .list-group-item {
  background-color: var(--mst-card-bg, #2b3035);
  color: var(--mst-text-primary, #f8f9fa);
  border-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .list-group-item-action:hover,
[data-bs-theme="dark"] .list-group-item-action:focus {
  background-color: var(--mst-bg-secondary, #343a40);
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .list-group-item-danger {
  background-color: rgba(220, 53, 69, 0.15);
  color: #f5c2c7;
}

/* ── Horizontal Rules ── */

[data-bs-theme="dark"] hr {
  border-color: var(--mst-border-color, #495057);
  opacity: 0.5;
}

/* ── Badges ── */

[data-bs-theme="dark"] .badge {
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* ── Toast Notifications ── */

[data-bs-theme="dark"] .toast {
  background-color: var(--mst-bg-primary, #212529);
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .toast-header {
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--mst-text-primary, #f8f9fa);
}

/* ── Modals ── */

[data-bs-theme="dark"] .modal-content {
  background-color: var(--mst-bg-primary, #212529);
  color: var(--mst-text-primary, #f8f9fa);
  border-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .modal-header {
  border-bottom-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .modal-footer {
  border-top-color: var(--mst-border-color, #495057);
}

/* ── Offcanvas ── */

[data-bs-theme="dark"] .offcanvas {
  background-color: var(--mst-bg-primary, #212529);
  color: var(--mst-text-primary, #f8f9fa);
}

/* ── Accordion ── */

[data-bs-theme="dark"] .accordion-item {
  background-color: var(--mst-bg-primary, #212529);
  color: var(--mst-text-primary, #f8f9fa);
  border-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .accordion-button {
  background-color: var(--mst-bg-secondary, #343a40);
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .accordion-button:not(.collapsed) {
  background-color: rgba(13, 110, 253, 0.15);
  color: #6ea8fe;
}

/* ── Tabs / Nav ── */

[data-bs-theme="dark"] .nav-tabs .nav-link {
  color: var(--mst-text-secondary, #adb5bd);
}

[data-bs-theme="dark"] .nav-tabs .nav-link.active {
  background-color: var(--mst-bg-primary, #212529);
  color: var(--mst-text-primary, #f8f9fa);
  border-color: var(--mst-border-color, #495057) var(--mst-border-color, #495057) var(--mst-bg-primary, #212529);
}

[data-bs-theme="dark"] .nav-tabs {
  border-bottom-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .tab-content {
  color: var(--mst-text-primary, #f8f9fa);
}

/* ── Alerts ── */

[data-bs-theme="dark"] .alert-info {
  background-color: rgba(13, 202, 240, 0.15);
  color: #6edff6;
  border-color: rgba(13, 202, 240, 0.3);
}

[data-bs-theme="dark"] .alert-warning {
  background-color: rgba(255, 193, 7, 0.15);
  color: #ffda6a;
  border-color: rgba(255, 193, 7, 0.3);
}

[data-bs-theme="dark"] .alert-danger {
  background-color: rgba(220, 53, 69, 0.15);
  color: #ea868f;
  border-color: rgba(220, 53, 69, 0.3);
}

[data-bs-theme="dark"] .alert-success {
  background-color: rgba(25, 135, 84, 0.15);
  color: #75b798;
  border-color: rgba(25, 135, 84, 0.3);
}

/* ── Breadcrumbs ── */

[data-bs-theme="dark"] .breadcrumb {
  background-color: var(--mst-bg-secondary, #343a40);
}

[data-bs-theme="dark"] .breadcrumb-item + .breadcrumb-item::before {
  color: var(--mst-text-secondary, #adb5bd);
}

[data-bs-theme="dark"] .breadcrumb-item.active {
  color: var(--mst-text-secondary, #adb5bd);
}

/* ── Pagination ── */

[data-bs-theme="dark"] .page-link {
  background-color: var(--mst-bg-primary, #212529);
  color: var(--mst-text-primary, #f8f9fa);
  border-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .page-item.active .page-link {
  background-color: #0d6efd;
  border-color: #0d6efd;
}

[data-bs-theme="dark"] .page-item.disabled .page-link {
  background-color: var(--mst-bg-secondary, #343a40);
  color: var(--mst-text-secondary, #adb5bd);
}

/* ── DataTables ── */

[data-bs-theme="dark"] .dataTables_wrapper {
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] table.dataTable tbody tr {
  background-color: var(--mst-bg-primary, #212529);
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] table.dataTable tbody tr.odd {
  background-color: var(--mst-bg-secondary, #343a40);
}

[data-bs-theme="dark"] table.dataTable thead th,
[data-bs-theme="dark"] table.dataTable thead td {
  border-bottom-color: var(--mst-border-color, #495057);
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] table.dataTable.no-footer {
  border-bottom-color: var(--mst-border-color, #495057);
}

/* DataTables sorting column highlights */
[data-bs-theme="dark"] table.dataTable.order-column tbody tr > .sorting_1,
[data-bs-theme="dark"] table.dataTable.order-column tbody tr > .sorting_2,
[data-bs-theme="dark"] table.dataTable.order-column tbody tr > .sorting_3 {
  background-color: rgba(255, 255, 255, 0.03);
}

[data-bs-theme="dark"] table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
  background-color: rgba(255, 255, 255, 0.06);
}

/* DataTables controls */
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_info,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate {
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter input,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length select {
  background-color: var(--mst-bg-secondary, #343a40);
  color: var(--mst-text-primary, #f8f9fa);
  border: 1px solid var(--mst-border-color, #495057);
  border-radius: 4px;
  padding: 4px 8px;
}

[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button {
  color: var(--mst-text-primary, #f8f9fa) !important;
}

[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  color: #fff !important;
  background: var(--mst-bg-secondary, #343a40);
  border-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
  color: var(--mst-text-secondary, #adb5bd) !important;
}

/* DataTables export buttons */
[data-bs-theme="dark"] .dt-button {
  background-color: var(--mst-bg-secondary, #343a40) !important;
  color: var(--mst-text-primary, #f8f9fa) !important;
  border: 1px solid var(--mst-border-color, #495057) !important;
}

[data-bs-theme="dark"] .dt-button:hover {
  background-color: var(--mst-border-color, #495057) !important;
}

[data-bs-theme="dark"] table.dataTable a:not(.btn) {
  color: #6ea8fe;
}

/* ── btn-outline-dark visibility ── */

[data-bs-theme="dark"] .btn-outline-dark {
  color: var(--mst-text-secondary, #adb5bd);
  border-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .btn-outline-dark:hover {
  background-color: var(--mst-border-color, #495057);
  color: var(--mst-text-primary, #f8f9fa);
}

/* ── Links (general) ── */

[data-bs-theme="dark"] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item) {
  color: #6ea8fe;
}

/* ── text-muted ── */

[data-bs-theme="dark"] .text-muted {
  color: var(--mst-text-secondary, #adb5bd) !important;
}

/* ── Dropdown menus ── */

[data-bs-theme="dark"] .dropdown-menu {
  background-color: var(--mst-card-bg, #2b3035);
  border-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .dropdown-item {
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .dropdown-item:hover,
[data-bs-theme="dark"] .dropdown-item:focus {
  background-color: var(--mst-bg-secondary, #343a40);
  color: var(--mst-text-primary, #f8f9fa);
}

[data-bs-theme="dark"] .dropdown-divider {
  border-top-color: var(--mst-border-color, #495057);
}

[data-bs-theme="dark"] .dropdown-header {
  color: var(--mst-text-secondary, #adb5bd);
}
