/**
 * Dark theme compatibility for shared Bootstrap patterns and legacy utility classes.
 * Loaded after main.css on every base.html page.
 */

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

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

[data-bs-theme="dark"] .bg-light,
[data-bs-theme="dark"] .bg-body-secondary {
  background-color: var(--bs-secondary-bg) !important;
  color: var(--bs-body-color);
}

[data-bs-theme="dark"] .text-bg-light,
[data-bs-theme="dark"] .text-bg-secondary {
  background-color: var(--bs-tertiary-bg) !important;
  color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .nav-card,
[data-bs-theme="dark"] .list-group-item,
[data-bs-theme="dark"] .metric-card {
  background-color: #222933 !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}

[data-bs-theme="dark"] .border,
[data-bs-theme="dark"] .border-top,
[data-bs-theme="dark"] .border-bottom,
[data-bs-theme="dark"] .border-start,
[data-bs-theme="dark"] .border-end {
  border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--bs-body-color);
  --bs-table-striped-bg: rgba(255, 255, 255, 0.04);
  --bs-table-hover-bg: rgba(255, 255, 255, 0.07);
  --bs-table-border-color: rgba(255, 255, 255, 0.18);
}

[data-bs-theme="dark"] .table-light {
  --bs-table-bg: #2a313b;
  --bs-table-color: var(--bs-body-color);
  --bs-table-border-color: rgba(255, 255, 255, 0.18);
}

[data-bs-theme="dark"] .modal-content {
  background-color: var(--bs-modal-bg);
  color: var(--bs-body-color);
  border-color: var(--bs-border-color);
}

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

[data-bs-theme="dark"] .dropdown-menu {
  background-color: var(--bs-dropdown-bg);
  color: var(--bs-dropdown-link-color);
  border-color: var(--bs-dropdown-border-color);
}

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

[data-bs-theme="dark"] .list-group-item {
  background-color: var(--bs-list-group-bg);
  color: var(--bs-body-color);
  border-color: var(--bs-list-group-border-color);
}

[data-bs-theme="dark"] .list-group-item-action:hover,
[data-bs-theme="dark"] .list-group-item-action:focus {
  background-color: var(--bs-list-group-action-hover-bg);
  color: var(--bs-list-group-action-hover-color);
}

[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select,
[data-bs-theme="dark"] .form-control:disabled,
[data-bs-theme="dark"] .form-select:disabled {
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  border-color: var(--bs-primary);
}

[data-bs-theme="dark"] .input-group-text {
  background-color: var(--bs-tertiary-bg);
  color: var(--bs-body-color);
  border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .nav-tabs .nav-link.active {
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);
}

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

[data-bs-theme="dark"] .accordion-item {
  background-color: var(--bs-accordion-bg);
  color: var(--bs-accordion-color);
  border-color: var(--bs-accordion-border-color);
}

[data-bs-theme="dark"] .accordion-button {
  background-color: var(--bs-accordion-btn-bg);
  color: var(--bs-accordion-btn-color);
}

[data-bs-theme="dark"] .accordion-button:not(.collapsed) {
  background-color: var(--bs-accordion-active-bg);
  color: var(--bs-accordion-active-color);
}

[data-bs-theme="dark"] pre,
[data-bs-theme="dark"] code {
  color: var(--bs-body-color);
}

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

[data-bs-theme="dark"] .img-thumbnail {
  background-color: var(--bs-body-bg);
  border-color: var(--bs-border-color);
}

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

[data-bs-theme="dark"] .page-item.active .page-link {
  background-color: var(--bs-pagination-active-bg);
  border-color: var(--bs-pagination-active-border-color);
}

[data-bs-theme="dark"] .toast {
  background-color: var(--bs-toast-bg);
  color: var(--bs-toast-color);
  border-color: var(--bs-toast-border-color);
}

[data-bs-theme="dark"] .offcanvas {
  background-color: var(--bs-offcanvas-bg);
  color: var(--bs-offcanvas-color);
}

[data-bs-theme="dark"] .badge.bg-light.text-dark {
  background-color: var(--bs-secondary-bg) !important;
  color: var(--bs-body-color) !important;
}

/* Semantic warning/editing highlights (legacy light yellow panels) */
[data-bs-theme="dark"] .zone-item-editing,
[data-bs-theme="dark"] .alert-warning {
  background-color: var(--bs-warning-bg-subtle) !important;
  color: var(--bs-warning-text-emphasis) !important;
  border-color: var(--bs-warning-border-subtle) !important;
}

[data-bs-theme="dark"] .ollama-hero,
[data-bs-theme="dark"] .ollama-chat-log,
[data-bs-theme="dark"] .location-details-hero,
[data-bs-theme="dark"] .tenders-hero,
[data-bs-theme="dark"] .invoice-creator-hero,
[data-bs-theme="dark"] .offer-creator-hero,
[data-bs-theme="dark"] .directed-graph-hero,
[data-bs-theme="dark"] .admin-process-hero,
[data-bs-theme="dark"] .instance-start-hero {
  background: linear-gradient(180deg, var(--bs-tertiary-bg) 0%, var(--bs-body-bg) 100%) !important;
  border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .ollama-status {
  color: var(--bs-warning-text-emphasis) !important;
  border-color: var(--bs-warning-border-subtle) !important;
}

[data-bs-theme="dark"] .zone-item-editing {
  background-color: var(--bs-warning-bg-subtle) !important;
  color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .ollama-status--error {
  background: var(--bs-danger-bg-subtle) !important;
  color: var(--bs-danger-text-emphasis) !important;
  border-color: var(--bs-danger-border-subtle) !important;
}

[data-bs-theme="dark"] .card-footer.bg-body,
[data-bs-theme="dark"] .card-footer {
  background-color: var(--bs-card-bg) !important;
  border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .systems-filter-panel {
  background: linear-gradient(180deg, var(--bs-tertiary-bg) 0%, var(--bs-body-bg) 100%);
}

[data-bs-theme="dark"] .progress-custom,
[data-bs-theme="dark"] .progress-custom-large {
  background-color: var(--bs-secondary-bg);
}

[data-bs-theme="dark"] .progress-text {
  color: var(--bs-body-color);
}

[data-bs-theme="dark"] .chat-messages {
  background: linear-gradient(180deg, var(--bs-tertiary-bg) 0%, var(--bs-body-bg) 100%) !important;
}

[data-bs-theme="dark"] pre.bg-light,
[data-bs-theme="dark"] .ops-pre-wrap.bg-light {
  background-color: var(--bs-tertiary-bg) !important;
  color: var(--bs-body-color);
  border: 1px solid var(--bs-border-color);
}

[data-bs-theme="dark"] .philosophy-page {
  --phil-bg: var(--bs-body-bg);
  --phil-bg-alt: var(--bs-tertiary-bg);
  --phil-text: var(--bs-body-color);
  --phil-text-secondary: var(--bs-secondary-color);
  --phil-accent-soft: var(--bs-primary-bg-subtle);
  --phil-border: var(--bs-border-color);
}

[data-bs-theme="dark"] thead.table-light th {
  background-color: #2a313b;
  color: var(--bs-body-color);
  border-color: rgba(255, 255, 255, 0.18);
}
