/* Modern Dark Mode Dashboard Theme */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
  /* Colors - Base */
  --bg-base: #000000;
  --bg-surface: #0c0c0c;
  --bg-surface-hover: #1a1a1a;
  --bg-input: #121212;
  
  /* Colors - Text */
  --text-primary: #ffffff;
  --text-secondary: #a1a1aa; /* Zinc 400 */
  --text-muted: #71717a; /* Zinc 500 */
  
  /* Colors - Accents */
  --accent-primary: #ffffff;
  --accent-primary-hover: #e4e4e7;
  --accent-success: #10b981; /* Emerald 500 */
  --accent-success-bg: rgba(16, 185, 129, 0.15);
  --accent-danger: #ef4444; /* Red 500 */
  --accent-danger-bg: rgba(239, 68, 68, 0.15);
  --accent-border: #27272a; /* Zinc 800 */
  
  /* Borders & Shadows */
  --border-radius-sm: 6px;
  --border-radius-md: 10px;
  --border-radius-lg: 16px;
  --border-radius-pill: 9999px;
  --border-subtle: 1px solid var(--accent-border);
  
  /* Typography */
  --font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Global Overrides */
body {
  background-color: var(--bg-base) !important;
  color: var(--text-primary) !important;
  font-family: var(--font-family-base) !important;
  -webkit-font-smoothing: antialiased;
}

/* Base Card & Container Overrides */
.card, .page-wrapper {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.card-header {
  background-color: transparent !important;
  border-bottom: var(--border-subtle) !important;
  padding: 1.5rem !important;
}

.card-title {
  color: var(--text-primary) !important;
  font-weight: 600 !important;
  font-size: 1.25rem !important;
}

.card-body, .card-table {
  background-color: var(--bg-surface) !important;
  border: var(--border-subtle) !important;
  border-radius: var(--border-radius-md) !important;
  padding: 1.5rem !important;
}

/* Header & Typography Overrides */
.page-title {
  color: var(--text-primary) !important;
  font-weight: 600 !important;
  font-size: 1.75rem !important;
}

.page-pretitle {
  color: var(--text-secondary) !important;
  text-transform: none !important;
  font-size: 0.9rem !important;
  letter-spacing: normal !important;
}

label.form-label {
  color: var(--text-secondary) !important;
  font-weight: 500 !important;
  font-size: 0.875rem !important;
  margin-bottom: 0.5rem !important;
}

.form-hint {
  color: var(--text-muted) !important;
}

/* Form Controls & Inputs */
.form-control, .form-select {
  background-color: var(--bg-input) !important;
  border: var(--border-subtle) !important;
  color: var(--text-primary) !important;
  border-radius: var(--border-radius-sm) !important;
  padding: 0.625rem 1rem !important;
}

.form-control:focus, .form-select:focus {
  border-color: var(--text-secondary) !important;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1) !important;
}

/* Buttons */
.btn-primary {
  background-color: var(--text-primary) !important;
  color: var(--bg-base) !important;
  border: none !important;
  font-weight: 500 !important;
  border-radius: var(--border-radius-pill) !important;
  padding: 0.5rem 1.25rem !important;
  transition: all 0.2s ease;
}

.btn-primary:hover {
  background-color: var(--accent-primary-hover) !important;
  transform: translateY(-1px);
}

.btn-white, .btn-secondary {
  background-color: var(--bg-surface) !important;
  color: var(--text-primary) !important;
  border: var(--border-subtle) !important;
  font-weight: 500 !important;
  border-radius: var(--border-radius-pill) !important;
}

.btn-white:hover, .btn-secondary:hover {
  background-color: var(--bg-surface-hover) !important;
  color: var(--text-primary) !important;
}

.btn-danger {
  background-color: var(--accent-danger-bg) !important;
  color: var(--accent-danger) !important;
  border: 1px solid rgba(239, 68, 68, 0.2) !important;
  border-radius: var(--border-radius-pill) !important;
}

.btn-danger:hover {
  background-color: rgba(239, 68, 68, 0.25) !important;
}

/* Sidebar Navigation (Pill Style) */
.navbar-vertical {
  background-color: var(--bg-base) !important;
  border-right: var(--border-subtle) !important;
  width: var(--sidebar-width, 260px) !important;
}

.navbar-vertical .navbar-brand {
    padding: 1.5rem 1.25rem !important;
    justify-content: flex-start !important;
}

.navbar-vertical .navbar-brand h3 {
    color: var(--text-primary) !important;
    font-weight: 600 !important;
    margin: 0 !important;
}

.navbar-vertical .nav-link {
  color: var(--text-secondary) !important;
  padding: 0.625rem 1rem !important;
  margin: 0.25rem 1rem !important;
  border-radius: var(--border-radius-pill) !important;
  transition: all 0.2s;
  font-weight: 500 !important;
}

.navbar-vertical .nav-link:hover {
  color: var(--text-primary) !important;
  background-color: var(--bg-surface) !important;
}

.navbar-vertical .nav-item.active .nav-link {
  color: var(--text-primary) !important;
  background-color: var(--bg-surface-hover) !important;
}

/* Tables */
table.table {
  color: var(--text-primary) !important;
}

.table thead th {
  background-color: var(--bg-surface) !important;
  color: var(--text-muted) !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.5px;
  border-bottom: var(--border-subtle) !important;
  padding: 1rem !important;
}

.table tbody tr {
  border-bottom: var(--border-subtle) !important;
}

.table tbody tr:hover td {
  background-color: var(--bg-surface-hover) !important;
}

.table td {
  padding: 1rem !important;
  vertical-align: middle;
  border: none !important;
}

/* Status Badges */
.badge {
  font-weight: 500 !important;
  padding: 0.35em 0.8em !important;
  border-radius: var(--border-radius-pill) !important;
}

.bg-green, .bg-emerald-lt {
  background-color: var(--accent-success-bg) !important;
  color: var(--accent-success) !important;
  border: 1px solid rgba(16, 185, 129, 0.2) !important;
}

.bg-red, .bg-danger-lt {
  background-color: var(--accent-danger-bg) !important;
  color: var(--accent-danger) !important;
  border: 1px solid rgba(239, 68, 68, 0.2) !important;
}

.bg-purple-lt, .bg-blue-lt {
  background-color: var(--bg-surface-hover) !important;
  color: var(--text-primary) !important;
  border: var(--border-subtle) !important;
}

/* Avatar overrides */
.avatar {
  background-color: var(--bg-surface-hover) !important;
  color: var(--text-primary) !important;
  border: var(--border-subtle) !important;
  font-weight: 500 !important;
}

/* Utilities */
.text-muted { color: var(--text-muted) !important; }
.text-danger { color: var(--accent-danger) !important; }
.text-success { color: var(--accent-success) !important; }

/* Modals */
.modal-content {
  background-color: var(--bg-surface) !important;
  border: var(--border-subtle) !important;
  color: var(--text-primary) !important;
}

.modal-header, .modal-footer {
  border-color: var(--accent-border) !important;
}

/* List Groups */
.list-group-item {
  background-color: var(--bg-surface) !important;
  border-color: var(--accent-border) !important;
  color: var(--text-primary) !important;
}

.list-group-item-action:hover, .list-group-item-action:focus {
  background-color: var(--bg-surface-hover) !important;
  color: var(--text-primary) !important;
}

/* Alerts */
.alert {
  border-radius: var(--border-radius-md) !important;
}

.alert-warning {
  background-color: rgba(255, 193, 7, 0.05) !important;
  border: 1px solid rgba(255, 193, 7, 0.2) !important;
  color: var(--text-primary) !important;
}

.alert-warning .alert-title {
  color: #ffc107 !important;
}

/* Text Overrides */
.text-secondary {
  color: var(--text-secondary) !important;
}

/* Fix for Light Background/Text in Dark Mode */
.bg-light { background-color: var(--bg-surface-hover) !important; }
.text-dark { color: var(--text-primary) !important; }
