:root {
  --bg-dark: #0f172a;
  --bg-card: #1e293b;
  --bg-input: #0b1329;
  --bg-darker: #020617;
  --text-main: #f8fafc;
  --text-muted: #94a3b8; /* High contrast light slate */
  --accent: #f5a623;
  --accent-hover: #fbbf24;
  --challenge-color: #f43f5e;
  --benefit-color: #10b981;
}

/* Flexbox Layout for Sticky Footer */
html, body {
  height: 100%;
  margin: 0;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background-color: var(--bg-dark) !important;
  color: var(--text-main) !important;
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
}

.main-wrapper {
  flex: 1 0 auto;
}

footer {
  flex-shrink: 0;
  margin-top: auto !important;
  background-color: var(--bg-darker) !important;
}

/* High-Contrast Colors */
.text-muted { color: var(--text-muted) !important; }
.text-amber { color: var(--accent) !important; }
.bg-slate { background-color: var(--bg-card) !important; }
.bg-darker { background-color: var(--bg-darker) !important; }

/* Form Elements & Inputs */
.form-label, label {
  color: #f8fafc !important;
  font-weight: 600;
}

.form-control, .form-select {
  background-color: var(--bg-input) !important;
  border-color: #334155 !important;
  color: #ffffff !important;
}

.form-control::placeholder {
  color: #64748b !important;
}

.form-control:focus, .form-select:focus {
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 0.25rem rgba(245, 166, 35, 0.25) !important;
  color: #ffffff !important;
}

/* Modal High Contrast Overrides */
.modal-content {
  background-color: var(--bg-card) !important;
  color: #ffffff !important;
}

.modal-header, .modal-footer {
  border-color: #334155 !important;
}

/* Auth Cards */
.auth-card {
  background: var(--bg-card);
  border: 1px solid #334155;
  border-radius: 12px;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
}

/* FullCalendar Visual Overrides */
.fc {
  --fc-page-bg-color: var(--bg-card);
  --fc-neutral-bg-color: #334155;
  --fc-list-event-hover-bg-color: #334155;
  --fc-theme-standard-border-color: #334155;
  --fc-border-color: #334155;
}

.fc .fc-col-header-cell-cushion,
.fc .fc-daygrid-day-number,
.fc .fc-toolbar-title {
  color: #ffffff !important;
  text-decoration: none !important;
  font-weight: 600;
}

.fc-theme-standard td, .fc-theme-standard th {
  border-color: #334155 !important;
}

.fc-event-title {
  color: #ffffff !important;
  font-weight: 600;
}

.text-muted {
  color: white !important;
}