/* ------------------------------------------------------------------
   Theme palette
   #2f3c58  navy        (primary)
   #646d80  slate       (secondary)
   #979ba6  gray
   #afb2b9  light gray  (borders)
   #f8f5ee  cream       (background)
------------------------------------------------------------------ */
:root {
  --pal-nav: #2f3c58;
  --pal-slate: #646d80;
  --pal-gray: #979ba6;
  --pal-lightgray: #afb2b9;
  --pal-cream: #f8f5ee;

  /* Remap Bootstrap theme tokens to the palette. Utilities that use these
     (bg-primary, text-primary, text-bg-primary/secondary/dark/light, link
     colors, .text-muted) follow automatically. */
  --bs-primary: #2f3c58;
  --bs-primary-rgb: 47, 60, 88;
  --bs-secondary: #646d80;
  --bs-secondary-rgb: 100, 109, 128;
  --bs-light: #f8f5ee;
  --bs-light-rgb: 248, 245, 238;
  --bs-dark: #2f3c58;
  --bs-dark-rgb: 47, 60, 88;
  --bs-body-bg: #f8f5ee;
  --bs-body-color: #2f3c58;
  --bs-secondary-color: #646d80;
  --bs-border-color: #afb2b9;
  --bs-link-color-rgb: 47, 60, 88;
  --bs-link-hover-color-rgb: 100, 109, 128;
}

body {
  min-height: 100vh;
  background-color: var(--pal-cream);
  color: var(--pal-nav);
}

/* ---------------------------------------------------------------- navbar */
.navbar.bg-primary {
  background-color: var(--pal-nav) !important;
}

.navbar-brand {
  letter-spacing: 0.01em;
}

.navbar-dark .navbar-brand,
.navbar-dark .navbar-nav .nav-link {
  color: rgba(248, 245, 238, 0.92);
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus {
  color: #ffffff;
}

.navbar-dark .navbar-toggler {
  border-color: rgba(248, 245, 238, 0.4);
}

/* BETA badge on the dark navbar */
.navbar .badge.bg-warning {
  background-color: var(--pal-cream) !important;
  color: var(--pal-nav) !important;
}

/* ---------------------------------------------------------------- buttons */
.btn-primary {
  --bs-btn-bg: #2f3c58;
  --bs-btn-border-color: #2f3c58;
  --bs-btn-hover-bg: #26314a;
  --bs-btn-hover-border-color: #26314a;
  --bs-btn-active-bg: #1e2740;
  --bs-btn-active-border-color: #1e2740;
  --bs-btn-disabled-bg: #646d80;
  --bs-btn-disabled-border-color: #646d80;
  --bs-btn-color: #f8f5ee;
  --bs-btn-hover-color: #ffffff;
  --bs-btn-active-color: #ffffff;
}

.btn-outline-primary {
  --bs-btn-color: #2f3c58;
  --bs-btn-border-color: #2f3c58;
  --bs-btn-hover-bg: #2f3c58;
  --bs-btn-hover-border-color: #2f3c58;
  --bs-btn-hover-color: #f8f5ee;
  --bs-btn-active-bg: #26314a;
  --bs-btn-active-border-color: #26314a;
  --bs-btn-active-color: #f8f5ee;
}

.btn-outline-secondary {
  --bs-btn-color: #646d80;
  --bs-btn-border-color: #979ba6;
  --bs-btn-hover-bg: #646d80;
  --bs-btn-hover-border-color: #646d80;
  --bs-btn-hover-color: #f8f5ee;
  --bs-btn-active-bg: #646d80;
  --bs-btn-active-border-color: #646d80;
  --bs-btn-active-color: #f8f5ee;
}

.btn-link {
  --bs-btn-color: #2f3c58;
  --bs-btn-hover-color: #646d80;
}

/* ---------------------------------------------------------------- text + links */
.text-muted {
  color: var(--pal-slate) !important;
}

.link-secondary {
  color: var(--pal-slate) !important;
}

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

.form-control:focus,
.form-select:focus {
  border-color: var(--pal-gray);
  box-shadow: 0 0 0 0.25rem rgba(47, 60, 88, 0.15);
}

/* ---------------------------------------------------------------- cards + tables */
.card {
  border: 1px solid var(--pal-lightgray);
  background-color: #ffffff;
}

.card-header,
.card-footer {
  background-color: var(--pal-cream);
  border-color: var(--pal-lightgray);
}

.table td,
.table th {
  vertical-align: middle;
}

.table-light {
  --bs-table-bg: #f8f5ee;
  --bs-table-color: #2f3c58;
  --bs-table-border-color: #afb2b9;
}

/* ---------------------------------------------------------------- progress bars */
.progress {
  --bs-progress-bg: #e4e1d8;
  --bs-progress-bar-bg: #2f3c58;
}

/* ---------------------------------------------------------------- alerts */
.alert-info {
  --bs-alert-color: #2f3c58;
  --bs-alert-bg: #eceef2;
  --bs-alert-border-color: #afb2b9;
}
