/* Theme Styles for Light/Dark Mode */

/* Light Theme (Default) */
:root {
  --body-bg: #f8f9fa;
  --body-color: #212529;
  --card-bg: #ffffff;
  --card-border: #dee2e6;
  --input-bg: #ffffff;
  --input-border: #ced4da;
  --sidebar-bg: #e2e4e7;
  --sidebar-hover: rgba(0, 60, 160, 0.05);
  --sidebar-active: rgba(0, 60, 160, 0.1);
  --navbar-bg: var(--brand-blue-dark);
  --navbar-color: #ffffff;
  --dropdown-bg: #ffffff;
  --dropdown-border: rgba(0, 0, 0, 0.15);
  --dropdown-link-hover: #f8f9fa;
  --modal-bg: #ffffff;
  --toast-bg: #ffffff;
  --toast-header-bg: rgba(255, 255, 255, 0.85);
  --shadow-color: rgba(0, 0, 0, 0.15);
}

/* Dark Theme */
[data-bs-theme="dark"] {
  --body-bg: #212529;
  --body-color: #f8f9fa;
  --card-bg: #2c3034;
  --card-border: #495057;
  --input-bg: #2c3034;
  --input-border: #495057;
  --sidebar-bg: #343a40;
  --sidebar-hover: rgba(255, 255, 255, 0.05);
  --sidebar-active: rgba(255, 255, 255, 0.1);
  --navbar-bg: #212529;
  --navbar-color: #ffffff;
  --dropdown-bg: #343a40;
  --dropdown-border: rgba(255, 255, 255, 0.15);
  --dropdown-link-hover: #2c3034;
  --modal-bg: #343a40;
  --toast-bg: #343a40;
  --toast-header-bg: rgba(52, 58, 64, 0.85);
  --shadow-color: rgba(0, 0, 0, 0.5);
}

/* Apply theme variables */
body {
  background-color: var(--body-bg);
  color: var(--body-color);
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Navbar theme */
.tw-nav {
  background-color: var(--navbar-bg) !important;
  color: var(--navbar-color);
}

/* Sidebar theme */
.sidebar {
  background-color: var(--sidebar-bg) !important;
  box-shadow: 0 0 10px var(--shadow-color);
}

.sidebar .nav-link:hover:not(.active) {
  background-color: var(--sidebar-hover);
}

.sidebar .nav-link.active {
  background-color: var(--sidebar-active);
}

/* Card theme */
.card {
  background-color: var(--card-bg);
  border-color: var(--card-border);
}

.card-header {
  border-bottom-color: var(--card-border);
}

/* Form controls */
.form-control, .form-select {
  background-color: var(--input-bg);
  border-color: var(--input-border);
  color: var(--body-color);
}

/* Dropdowns */
.dropdown-menu {
  background-color: var(--dropdown-bg);
  border-color: var(--dropdown-border);
}

.dropdown-item:hover {
  background-color: var(--dropdown-link-hover);
}

/* Modals */
.modal-content {
  background-color: var(--modal-bg);
}

/* Theme toggle icon */
[data-bs-theme="light"] [data-bs-theme-value="light"] {
  display: inline-block !important;
}

[data-bs-theme="light"] [data-bs-theme-value="dark"] {
  display: none !important;
}

[data-bs-theme="dark"] [data-bs-theme-value="light"] {
  display: none !important;
}

[data-bs-theme="dark"] [data-bs-theme-value="dark"] {
  display: inline-block !important;
}

/* Theme transition */
.theme-transition {
  transition: all 0.3s ease;
}

/* Improved contrast for dark mode links */
[data-bs-theme="dark"] a:not(.btn):not(.nav-link) {
  color: var(--brand-blue-light);
}

[data-bs-theme="dark"] a:not(.btn):not(.nav-link):hover {
  color: #6fa8ff;
}

/* Dark mode table styling */
[data-bs-theme="dark"] .table {
  color: var(--body-color);
}

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

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

/* Dark mode alerts */
[data-bs-theme="dark"] .alert-success {
  background-color: rgba(25, 135, 84, 0.2);
  border-color: rgba(25, 135, 84, 0.4);
  color: #75b798;
}

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

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

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