:root {
  /* Primary Theme Colors */
  --bs-primary: #3498db;
  --bs-primary-rgb: 52, 152, 219;
  --bs-secondary: #2c3e50;
  --bs-secondary-rgb: 44, 62, 80;
  --bs-success: #2ecc71;
  --bs-success-rgb: 46, 204, 113;
  --bs-info: #3498db;
  --bs-info-rgb: 52, 152, 219;
  --bs-warning: #f39c12;
  --bs-warning-rgb: 243, 156, 18;
  --bs-danger: #e74c3c;
  --bs-danger-rgb: 231, 76, 60;
  
  /* UI Component Colors */
  --bs-body-bg: #f8f9fa;
  --bs-body-color: #333;
  --bs-border-color: #e9ecef;
  
  /* Sidebar Colors */
  --sidebar-bg: var(--bs-secondary);
  --sidebar-color: #fff;
  --sidebar-link-hover: rgba(255, 255, 255, 0.1);
  --sidebar-active-bg: var(--bs-primary);
  --sidebar-active-color: #fff;
  
  /* Navbar Colors */
  --navbar-bg: #fff;
  --navbar-border: var(--bs-border-color);
}

/* Dark Theme (will be toggled via JavaScript) */
[data-theme="dark"] {
  --bs-body-bg: #121212;
  --bs-body-color: #e0e0e0;
  --bs-border-color: #2a2a2a;
  
  --navbar-bg: #1e1e1e;
  --navbar-border: #2a2a2a;
  
  --sidebar-bg: #1a1a1a;
  --sidebar-color: #e0e0e0;
  --sidebar-link-hover: rgba(255, 255, 255, 0.05);
}

/* Apply theme variables to components */
#sidebar-wrapper {
  background-color: var(--sidebar-bg) !important;
  color: var(--sidebar-color);
}

#sidebar-wrapper .nav-link {
  color: var(--sidebar-color);
}

#sidebar-wrapper .nav-link:hover {
  background-color: var(--sidebar-link-hover);
}

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

.navbar {
  background-color: var(--navbar-bg) !important;
  border-bottom: 1px solid var(--navbar-border);
}

.card {
  border-radius: 0.5rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s, box-shadow 0.2s;
}

.card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
}

/* Custom Button Styles */
.btn {
  border-radius: 0.25rem;
}

.btn-primary {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

/* Additional accessibility for focus states */
:focus {
  outline: 3px solid rgba(var(--bs-primary-rgb), 0.4);
  outline-offset: 2px;
} 