/* Centralized brand tokens and overrides */
:root {
  --brand-primary: #1F5A8A;
  --brand-primary-contrast: #ffffff;
  --brand-primary-hover: #4FA0E6; /* lighter hover */
}

/* Buttons */
.btn-primary,
.btn.btn-primary {
  color: var(--brand-primary-contrast) !important;
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
  color: var(--brand-primary-contrast) !important;
  background-color: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
}
.btn-primary.disabled,
.btn-primary:disabled {
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
}

.btn-secondary,
.btn.btn-secondary {
  color: var(--brand-primary-contrast) !important;
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
}
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active,
.btn-secondary.active,
.show > .btn-secondary.dropdown-toggle {
  color: var(--brand-primary-contrast) !important;
  background-color: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
}

.btn-outline-primary {
  color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-outline-primary.active,
.show > .btn-outline-primary.dropdown-toggle {
  background-color: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
  color: #fff !important;
}

.btn-outline-secondary {
  color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
}
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:active,
.btn-outline-secondary.active,
.show > .btn-outline-secondary.dropdown-toggle {
  background-color: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
  color: #fff !important;
}

/* Links */
a,
a.text-decoration-underline {
  color: var(--brand-primary) !important;
}
a:hover,
a:focus {
  color: var(--brand-primary-hover) !important;
  text-decoration: underline;
}

/* Keep top navbar links readable (do not inherit global link color) */
.navbar-dark .navbar-brand {
  color: #fff !important;
}
.navbar-dark .navbar-brand:hover,
.navbar-dark .navbar-brand:focus {
  color: #fff !important;
}
.navbar-dark .navbar-nav .nav-link {
  color: rgba(255, 255, 255, 0.85) !important;
}
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus {
  color: #ffffff !important;
}

/* Navbar light theme: keep links dark and readable */
.navbar-light .navbar-brand {
  color: #212529 !important;
}
.navbar-light .navbar-brand:hover,
.navbar-light .navbar-brand:focus {
  color: #212529 !important;
}
.navbar-light .navbar-nav .nav-link {
  color: rgba(0, 0, 0, 0.85) !important;
}
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus {
  color: #000 !important;
}

/* Mobile/collapsed menu panel background for readability */
@media (max-width: 991.98px) {
  .navbar .navbar-collapse {
    background-color: rgba(255, 255, 255, 0.98) !important;
    padding: 0.75rem 1rem;
    border-radius: 0.25rem;
  }
  /* Ensure menu links are dark in the collapsed panel */
  .navbar .navbar-collapse .navbar-nav .nav-link,
  .navbar .navbar-collapse .dropdown-item {
    color: #212529 !important;
  }
  .navbar .navbar-collapse .navbar-nav .nav-link:hover,
  .navbar .navbar-collapse .dropdown-item:hover,
  .navbar .navbar-collapse .navbar-nav .nav-link:focus,
  .navbar .navbar-collapse .dropdown-item:focus {
    color: #000 !important;
  }
}

/* Toggler contrast */
.navbar-light .navbar-toggler {
  border-color: rgba(0, 0, 0, 0.15) !important;
}
.navbar-dark .navbar-toggler {
  border-color: rgba(255, 255, 255, 0.25) !important;
}

/* Nav pills active */
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
}
.nav-pills .nav-link:hover {
  background-color: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
}

/* Pagination active */
.page-item.active .page-link {
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
}
.page-link:hover {
  color: #fff !important;
  background-color: var(--brand-primary-hover) !important;
  border-color: var(--brand-primary-hover) !important;
}

/* List group active */
.list-group-item.active {
  background-color: var(--brand-primary) !important;
  border-color: var(--brand-primary) !important;
}

/* Custom controls (checkbox/radio) */
.custom-control-input:checked ~ .custom-control-label::before {
  color: #fff !important;
  border-color: var(--brand-primary) !important;
  background-color: var(--brand-primary) !important;
}
.custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(79, 160, 230, 0.25) !important;
}

/* Utility classes */
.text-primary { color: var(--brand-primary) !important; }
.bg-primary { background-color: var(--brand-primary) !important; }
.border-primary { border-color: var(--brand-primary) !important; }
.badge-primary { background-color: var(--brand-primary) !important; }
.alert-primary { background-color: color-mix(in srgb, var(--brand-primary) 15%, white) !important; border-color: var(--brand-primary) !important; }
.fill-primary { fill: var(--brand-primary) !important; }
.stroke-primary { stroke: var(--brand-primary) !important; }

.text-secondary { color: var(--brand-primary) !important; }
.bg-secondary { background-color: var(--brand-primary) !important; }
.border-secondary { border-color: var(--brand-primary) !important; }
.badge-secondary { background-color: var(--brand-primary) !important; }
.alert-secondary { background-color: color-mix(in srgb, var(--brand-primary) 15%, white) !important; border-color: var(--brand-primary) !important; }
.fill-secondary { fill: var(--brand-primary) !important; }
.stroke-secondary { stroke: var(--brand-primary) !important; }

/* Background layer helpers that used primary/secondary */
.bg-layer-primary-top-0-left-0::before,
.bg-layer-primary-top-0-right-0::before,
.bg-layer-primary-bottom-0-left-0::before,
.bg-layer-primary-bottom-0-right-0::before,
.bg-layer-secondary-top-0-left-0::before,
.bg-layer-secondary-top-0-right-0::before,
.bg-layer-secondary-bottom-0-left-0::before,
.bg-layer-secondary-bottom-0-right-0::before {
  background-color: var(--brand-primary) !important;
}
