/* Global theme styles */
:root {
  --fd-bg: #ffffff;
  --fd-text: #212529;
  --fd-card-bg: #ffffff;
  --fd-card-border: rgba(0,0,0,0.125);
  --fd-list-bg: #ffffff;
  --fd-list-border: rgba(0,0,0,0.125);
  --fd-input-bg: #ffffff;
  --fd-input-text: #212529;
  --fd-input-border: #ced4da;
  --fd-alert-bg: #f8f9fa;
  --fd-alert-text: #212529;
  --fd-navbar-bg: #0d6efd; /* bootstrap primary */
  --fd-navbar-text: #ffffff;
}

body {
  background-color: var(--fd-bg);
  color: var(--fd-text);
}

/* Dark mode overrides */
body.dark-mode {
  --fd-bg: #121212;
  --fd-text: #e6e6e6;
  --fd-card-bg: #1e1e1e;
  --fd-card-border: rgba(255,255,255,0.1);
  --fd-list-bg: #1e1e1e;
  --fd-list-border: rgba(255,255,255,0.1);
  --fd-input-bg: #2a2a2a;
  --fd-input-text: #e6e6e6;
  --fd-input-border: #3a3a3a;
  --fd-alert-bg: #222;
  --fd-alert-text: #e6e6e6;
  --fd-navbar-bg: #212529; /* bootstrap dark */
  --fd-navbar-text: #f8f9fa;
}

/* Navbar color override while keeping existing classes */
.navbar {
  background-color: var(--fd-navbar-bg) !important;
}
.navbar .navbar-brand,
.navbar .nav-link,
.navbar .navbar-text {
  color: var(--fd-navbar-text) !important;
}
.navbar .nav-link.active {
  color: #fff !important;
}

/* Cards */
.card {
  background-color: var(--fd-card-bg);
  color: var(--fd-text);
  border-color: var(--fd-card-border);
}
.card .card-header {
  border-bottom-color: var(--fd-card-border);
}
/* Keep context header colors but tone them down in dark mode for contrast */
body.dark-mode .card .card-header.bg-primary { background-color: rgba(13,110,253,0.25) !important; color: #fff; }
body.dark-mode .card .card-header.bg-success { background-color: rgba(25,135,84,0.25) !important; color: #d1ffd1; }
body.dark-mode .card .card-header.bg-danger  { background-color: rgba(220,53,69,0.25) !important; color: #ffd6d6; }
body.dark-mode .card .card-header.bg-warning { background-color: rgba(255,193,7,0.25) !important; color: #fff2b3; }

/* Lists */
.list-group-item {
  background-color: var(--fd-list-bg);
  color: var(--fd-text);
  border-color: var(--fd-list-border);
}

/* Alerts */
.alert {
  background-color: var(--fd-alert-bg);
  color: var(--fd-alert-text);
  border-color: var(--fd-card-border);
}

/* Forms */
.form-control, .form-select {
  background-color: var(--fd-input-bg);
  color: var(--fd-input-text);
  border-color: var(--fd-input-border);
}
.form-control::placeholder { color: #9aa0a6; }
.form-control:focus, .form-select:focus {
  background-color: var(--fd-input-bg);
  color: var(--fd-input-text);
  border-color: #66a3ff;
  box-shadow: 0 0 0 0.2rem rgba(13,110,253,.25);
}

/* Buttons - keep Bootstrap defaults; ensure secondary is legible in dark */
body.dark-mode .btn-secondary { background-color: #495057; border-color: #495057; color: #fff; }

/* Toggle button */
.theme-toggle-btn {
  border: 1px solid rgba(255,255,255,0.5);
  color: var(--fd-navbar-text) !important;
}
body.dark-mode .theme-toggle-btn { border-color: rgba(255,255,255,0.35); }

/* Utility to hide/show icons */
.theme-icon { display: none; }
.theme-icon.active { display: inline-block; }

/* Select2 (Bootstrap-5 theme) adjustments */
/* Base selection box */
.select2-container--bootstrap-5 .select2-selection {
  background-color: var(--fd-input-bg);
  color: var(--fd-input-text);
  border-color: var(--fd-input-border);
}
.select2-container--bootstrap-5.select2-container--focus .select2-selection,
.select2-container--bootstrap-5 .select2-selection:focus {
  border-color: #66a3ff;
  box-shadow: 0 0 0 0.2rem rgba(13,110,253,.25);
}
/* Rendered text and placeholder */
.select2-container--bootstrap-5 .select2-selection__rendered,
.select2-container--bootstrap-5 .select2-selection__placeholder {
  color: var(--fd-input-text);
}
.select2-container--bootstrap-5 .select2-selection__placeholder {
  opacity: 0.7;
}
/* Multiple selection chips */
body.dark-mode .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice {
  background-color: #0d6efd;
  border-color: #0d6efd;
  color: #fff;
}
body.dark-mode .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice__remove {
  color: rgba(255,255,255,0.9);
}
/* Dropdown panel */
.select2-container--bootstrap-5 .select2-dropdown {
  background-color: var(--fd-card-bg);
  color: var(--fd-input-text);
  border-color: var(--fd-card-border);
}
/* Search field within dropdown */
.select2-container--bootstrap-5 .select2-search .select2-search__field {
  background-color: var(--fd-input-bg);
  color: var(--fd-input-text);
  border-color: var(--fd-input-border);
}
/* Options */
.select2-container--bootstrap-5 .select2-results__option {
  color: var(--fd-input-text);
}
body.dark-mode .select2-container--bootstrap-5 .select2-results__option--highlighted {
  background-color: #0d6efd;
  color: #fff;
}
.select2-container--bootstrap-5 .select2-results__option[aria-selected=true] {
  background-color: rgba(13,110,253,0.2);
  color: var(--fd-input-text);
}
/* No results message */
.select2-container--bootstrap-5 .select2-results__message {
  color: var(--fd-input-text);
  opacity: 0.8;
}

/* Tables (Bootstrap 5) */
body.dark-mode .table {
  --bs-table-color: var(--fd-text);
  --bs-table-bg: var(--fd-card-bg);
  --bs-table-border-color: var(--fd-card-border);
  --bs-table-striped-bg: rgba(255,255,255,0.05);
  --bs-table-striped-color: var(--fd-text);
  --bs-table-hover-bg: rgba(255,255,255,0.08);
  --bs-table-hover-color: var(--fd-text);
  --bs-table-active-bg: rgba(255,255,255,0.1);
  --bs-table-active-color: var(--fd-text);
  color: var(--fd-text);
  background-color: var(--fd-card-bg);
}
body.dark-mode .table thead th {
  background-color: #262626;
  color: var(--fd-text);
  border-color: var(--fd-card-border);
}
