:root {
  /* Modern light palette */
  --bg-color: #f7f8fc;
  --text-color: #0f172a;
  --muted-text: #4b5563;
  --card-bg: #ffffff;
  --navbar-bg: #ffffff;
  --navbar-text: #0f172a;
  --border-color: rgba(15, 23, 42, 0.08);
  --primary: #7c3aed;            /* violet-600 */
  --primary-dark: #6d28d9;       /* violet-700 */
  --primary-contrast: #ffffff;
  --secondary: #06b6d4;          /* cyan-500 */
}

html[data-theme="dark"] {
  /* Modern dark palette */
  --bg-color: #0b1020;
  --text-color: #e5e7eb;
  --muted-text: #9ca3af;
  --card-bg: #12172b;
  --navbar-bg: #0d1226;
  --navbar-text: #e5e7eb;
  --border-color: rgba(229, 231, 235, 0.1);
  --primary: #8b5cf6;            /* violet-500/600 mix */
  --primary-dark: #7c3aed;
  --primary-contrast: #0b1020;
  --secondary: #22d3ee;          /* cyan-400 */
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
}

.card,
.modal-content,
.dropdown-menu,
.list-group-item {
  background-color: var(--card-bg);
  color: var(--text-color);
  border-color: var(--border-color);
}

.navbar,
.navbar.navbar-light,
.navbar.navbar-dark {
  background-color: var(--navbar-bg) !important;
}

.navbar .nav-link,
.navbar .navbar-brand,
.navbar .navbar-text {
  color: var(--navbar-text) !important;
}

/* Links */
a { color: var(--primary); }
a:hover { color: var(--primary-dark); }

/* Inputs */
.form-control,
.custom-select,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  background-color: var(--card-bg);
  color: var(--text-color);
  border-color: var(--border-color);
}

.form-control:focus,
.custom-select:focus {
  background-color: var(--card-bg);
  color: var(--text-color);
  border-color: var(--border-color);
  box-shadow: 0 0 0 0.2rem rgba(124, 58, 237, 0.15);
}

/* Tables */
.table {
  color: var(--text-color);
}
.table thead th { border-bottom-color: var(--border-color); }
.table td, .table th { border-top-color: var(--border-color); }

/* Utility */
.theme-toggle-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--border-color);
  background: transparent;
  color: var(--text-color);
}

.theme-toggle-btn:hover { opacity: 0.85; }

/* Logo theming */
.logo-light { display: inline; }
.logo-dark { display: none; }
html[data-theme="dark"] .logo-light { display: none; }
html[data-theme="dark"] .logo-dark { display: inline; }

/* Buttons - primary */
.btn-primary,
.btn.btn-primary {
  background-color: var(--primary);
  border-color: var(--primary);
  color: var(--primary-contrast);
}
.btn-primary:hover,
.btn.btn-primary:hover {
  background-color: var(--primary-dark);
  border-color: var(--primary-dark);
}
.btn-outline-primary,
.btn.btn-outline-primary {
  color: var(--primary);
  border-color: var(--primary);
  background-color: transparent;
}
.btn-outline-primary:hover,
.btn.btn-outline-primary:hover {
  color: var(--primary-contrast);
  background-color: var(--primary);
  border-color: var(--primary);
}

/* Badges and pills */
.badge-primary { background-color: var(--primary); }

/* Daterangepicker/select2 small harmonization */
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--text-color); }
.select2-container--default .select2-selection--single { height: 38px; }



