:root {
  --bg-color: #121212;
  --text-color: #e0e0e0;
  --primary-color: #bb86fc;
  --secondary-color: #03dac6;
  --accent-color: #ff0266;
  --card-bg: #1e1e1e;
  --border-color: #333;
  --table-header-bg: #2d2d2d;
  --table-row-hover: #2d2d2d;
  --header-bg: #1e1e1e;
  --footer-bg: #1e1e1e;
  --analytics-bg: #252525;
  --analytics-card-bg: #2d2d2d;
  --analytics-border: #444;
  --analytics-text: #ffffff;
}

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

.container-main {
  background-color: var(--card-bg) !important;
  color: var(--text-color) !important;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5) !important;
}

.btn-custom {
  background-color: var(--primary-color) !important;
  color: var(--bg-color) !important;
  border: none !important;
}

.btn-custom:hover {
  background-color: #a86ffc !important;
}

.btn-dark {
  background-color: var(--border-color) !important;
  border-color: var(--border-color) !important;
}

.btn-dark:hover {
  background-color: #444 !important;
  border-color: #444 !important;
}

.btn-outline-secondary {
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

.btn-outline-secondary:hover {
  background-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

.table {
  color: var(--text-color) !important;
  background-color: transparent !important;
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: var(--card-bg) !important;
}

.table-striped tbody tr:nth-of-type(even) {
  background-color: #252525 !important;
}

.table-striped tbody tr:hover {
  background-color: var(--table-row-hover) !important;
}

.table thead th {
  background-color: var(--table-header-bg) !important;
  border-bottom: 1px solid var(--border-color) !important;
  color: var(--text-color) !important;
}

.table th,
.table td {
  border-top: 1px solid var(--border-color) !important;
}

.form-control {
  background-color: var(--card-bg) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--border-color) !important;
}

.form-control:focus {
  background-color: var(--card-bg) !important;
  color: var(--text-color) !important;
  border-color: var(--primary-color) !important;
  box-shadow: 0 0 0 0.25rem rgba(187, 134, 252, 0.25) !important;
}

.form-select {
  background-color: var(--card-bg) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--border-color) !important;
}

.form-select:focus {
  background-color: var(--card-bg) !important;
  color: var(--text-color) !important;
  border-color: var(--primary-color) !important;
  box-shadow: 0 0 0 0.25rem rgba(187, 134, 252, 0.25) !important;
}

.alert {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
  color: var(--text-color) !important;
}

.alert-success {
  background-color: #0a3d2d !important;
  border-color: #0f5d45 !important;
  color: var(--text-color) !important;
}

.alert-danger {
  background-color: #4a0a1a !important;
  border-color: #7a1a3a !important;
  color: var(--text-color) !important;
}

.alert-info {
  background-color: #0a3d5d !important;
  border-color: #0f5d8d !important;
  color: var(--text-color) !important;
}

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

.modal-content {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
  color: var(--text-color) !important;
}

.dropdown-menu {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
}

.dropdown-item {
  color: var(--text-color) !important;
}

.dropdown-item:hover {
  background-color: var(--table-row-hover) !important;
}

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

.nav-link:hover {
  color: var(--primary-color) !important;
}

.badge {
  background-color: var(--primary-color) !important;
  color: var(--bg-color) !important;
}

/* Override inline badge styles for genre and location filters */
.badge[style*="background-color: #e67e22"] {
  background-color: var(--primary-color) !important;
  color: var(--bg-color) !important;
}

.badge[style*="background-color: #d35400"] {
  background-color: var(--secondary-color) !important;
  color: var(--bg-color) !important;
}

.badge[style*="background-color: #f5f5f5"] {
  background-color: var(--card-bg) !important;
  color: var(--text-color) !important;
}

/* Ensure badge links have proper contrast in dark mode */
.badge a {
  color: inherit !important;
}

/* Calendar container styles */
.calendar-container {
  background-color: var(--card-bg) !important;
  color: var(--text-color) !important;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5) !important;
}

/* Filter section styles */
.filter-section {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
  border-radius: 8px !important;
  padding: 15px !important;
  margin-bottom: 20px !important;
}

/* Calendar-specific styles */
.calendar-header {
  background-color: var(--header-bg) !important;
  border-bottom: 1px solid var(--border-color) !important;
  color: var(--text-color) !important;
}

.calendar-day.today {
  background-color: transparent !important;
  border: 2px solid #87CEEB !important;
  color: var(--text-color) !important;
}

.movie-screening {
  color: var(--text-color) !important;
}

.movie-screening:hover {
  background-color: var(--primary-color) !important;
  color: var(--bg-color) !important;
}

.hour-slot {
  cursor: default !important;
}

/* Screening detail page styles */
.detail-content {
  background-color: var(--card-bg) !important;
}

.detail-container {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.5) !important;
}

.detail-label {
  color: var(--text-color) !important;
}

.movie-title {
  color: var(--primary-color) !important;
}

.calendar-day-header {
  background-color: var(--table-header-bg) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--border-color) !important;
}

.calendar-day {
  background-color: var(--table-row-hover) !important;
  border: 1px solid var(--primary-color) !important;
  color: var(--text-color) !important;
}

.calendar-day:hover {
  background-color: var(--table-row-hover) !important;
}

.movie-card {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
  color: var(--text-color) !important;
}

.movie-card:hover {
  border-color: var(--primary-color) !important;
}

.filter-section {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
}

.filter-select {
  background-color: var(--card-bg) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--border-color) !important;
}

.filter-select:focus {
  border-color: var(--primary-color) !important;
}

.week-navigation {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
}

.week-navigation button {
  background-color: var(--card-bg) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--border-color) !important;
}

.week-navigation button:hover {
  background-color: var(--primary-color) !important;
  color: var(--bg-color) !important;
}

.week-navigation button:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
}

/* Admin-specific styles */
.admin-content {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
  padding: 20px !important;
  border-radius: 8px !important;
}

.admin-card {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
  margin-bottom: 20px !important;
  padding: 15px !important;
  border-radius: 5px !important;
}

.admin-card:hover {
  background-color: var(--table-row-hover) !important;
}

.form-container {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
}

.genres-content {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
}

.screenings-list-content {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
}

.screening-table {
  color: var(--text-color) !important;
  background-color: transparent !important;
}

.screening-table th {
  background-color: var(--table-header-bg) !important;
  border-bottom: 1px solid var(--border-color) !important;
  color: var(--text-color) !important;
}

.screening-table td {
  border-top: 1px solid var(--border-color) !important;
}

/* Footer styles */
.footer {
  background-color: var(--footer-bg) !important;
  border-top: 1px solid var(--border-color) !important;
  color: var(--text-color) !important;
}

/* Analytics-specific styles for better contrast */
.analytics-page {
  background-color: var(--analytics-bg) !important;
  color: var(--analytics-text) !important;
  padding: 20px !important;
  border-radius: 8px !important;
  min-height: 80vh !important;
}

.analytics-section {
  margin-bottom: 30px !important;
  padding: 20px !important;
  background-color: var(--analytics-card-bg) !important;
  border-radius: 8px !important;
  border: 1px solid var(--analytics-border) !important;
  color: var(--analytics-text) !important;
}

.analytics-card {
  padding: 15px !important;
  border-radius: 5px !important;
  background-color: var(--card-bg) !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
  margin-bottom: 15px !important;
  border: 1px solid var(--analytics-border) !important;
  color: var(--analytics-text) !important;
}

.analytics-card h4 {
  color: var(--analytics-text) !important;
  border-bottom: 1px solid var(--analytics-border) !important;
  padding-bottom: 10px !important;
  margin-bottom: 15px !important;
}

.list-group-item {
  border: none !important;
  padding: 8px 0 !important;
  background-color: transparent !important;
  color: var(--analytics-text) !important;
}

.badge {
  font-size: 0.85em !important;
  background-color: var(--primary-color) !important;
  color: var(--bg-color) !important;
}

/* Header styles */
.d-flex.justify-content-between-align-items-center {
  border-bottom: 1px solid var(--border-color) !important;
}

/* Display styles */
.display-4 {
  color: var(--text-color) !important;
}

/* Link styles */
a {
  color: var(--primary-color) !important;
}

a:hover {
  color: #a86ffc !important;
}
