/* =====================================================================================
   Colours: University of Houston College of Optometry palette (as used on the MyUHCO portal)
     red #C8102E (main), brick #960C22 (hover/dark red), slate #54585A, dark slate #303335,
     light gray #EEEEEE, highlight #FFF9D9.
   Bootstrap 5.3 reads most colours from CSS variables, so "primary" is re-pointed to UH red
   here and every btn-primary / bg-primary / link / active item follows.
   ===================================================================================== */
:root {
  --uh-red: #C8102E;
  --uh-red-rgb: 200, 16, 46;
  --uh-brick: #960C22;
  --uh-brick-rgb: 150, 12, 34;
  --uh-slate: #54585A;
  --uh-slate-dark: #303335;

  --bs-primary: var(--uh-red);
  --bs-primary-rgb: var(--uh-red-rgb);
  --bs-primary-text-emphasis: #500612;
  --bs-primary-bg-subtle: #f9e2e6;
  --bs-primary-border-subtle: #ec9fab;
  --bs-link-color: var(--uh-red);
  --bs-link-color-rgb: var(--uh-red-rgb);
  --bs-link-hover-color: var(--uh-brick);
  --bs-link-hover-color-rgb: var(--uh-brick-rgb);
  --bs-focus-ring-color: rgba(200, 16, 46, 0.25);
}

/* 16px everywhere: readable on phones, and iOS doesn't zoom into form fields. */
html {
  font-size: 16px;
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 40px;
}

::selection {
  background: #FFF9D9;
  color: var(--uh-slate);
}

/* --- Buttons, form controls, active items in UH red --- */
.btn-primary {
  --bs-btn-bg: var(--uh-red);
  --bs-btn-border-color: var(--uh-red);
  --bs-btn-hover-bg: var(--uh-brick);
  --bs-btn-hover-border-color: var(--uh-brick);
  --bs-btn-active-bg: #7d0a1c;
  --bs-btn-active-border-color: #7d0a1c;
  --bs-btn-disabled-bg: var(--uh-red);
  --bs-btn-disabled-border-color: var(--uh-red);
  --bs-btn-focus-shadow-rgb: var(--uh-red-rgb);
}
.btn-outline-primary {
  --bs-btn-color: var(--uh-red);
  --bs-btn-border-color: var(--uh-red);
  --bs-btn-hover-bg: var(--uh-red);
  --bs-btn-hover-border-color: var(--uh-red);
  --bs-btn-active-bg: var(--uh-brick);
  --bs-btn-active-border-color: var(--uh-brick);
  --bs-btn-disabled-color: var(--uh-red);
  --bs-btn-disabled-border-color: var(--uh-red);
  --bs-btn-focus-shadow-rgb: var(--uh-red-rgb);
}
.btn-outline-secondary {
  --bs-btn-color: var(--uh-slate);
  --bs-btn-border-color: var(--uh-slate);
  --bs-btn-hover-bg: var(--uh-slate);
  --bs-btn-hover-border-color: var(--uh-slate);
  --bs-btn-active-bg: var(--uh-slate-dark);
  --bs-btn-active-border-color: var(--uh-slate-dark);
}
.list-group {
  --bs-list-group-active-bg: var(--uh-red);
  --bs-list-group-active-border-color: var(--uh-red);
}
.nav-pills {
  --bs-nav-pills-link-active-bg: var(--uh-red);
}
.nav:not(.navbar-nav) {
  --bs-nav-link-color: var(--uh-red);
  --bs-nav-link-hover-color: var(--uh-brick);
}
.dropdown-menu {
  --bs-dropdown-link-active-bg: var(--uh-red);
}
.form-check-input:checked {
  background-color: var(--uh-red);
  border-color: var(--uh-red);
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: #e3889a;
  box-shadow: 0 0 0 0.25rem rgba(200, 16, 46, 0.25);
}
.form-switch .form-check-input:focus:not(:checked) {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23e3889a'/%3e%3c/svg%3e");
}
.btn:focus-visible {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgba(200, 16, 46, 0.6);
}

/* --- Top bar: white text on red (Bootstrap's default is a faint 55% white). --- */
.navbar-dark {
  --bs-navbar-color: rgba(255, 255, 255, 0.92);
  --bs-navbar-hover-color: #fff;
  --bs-navbar-active-color: #fff;
  --bs-navbar-brand-color: #fff;
  --bs-navbar-brand-hover-color: #fff;
}
.navbar-dark .nav-link:hover,
.navbar-dark .nav-link:focus {
  text-decoration: underline;
}
.navbar.bg-primary {
  border-bottom: 3px solid var(--uh-brick);
}
.navbar-brand {
  letter-spacing: 0.02em;
}

/* Posting / conversation text: keep the poster's line breaks, wrap long words and links. */
.posting-message {
  white-space: pre-line;
  overflow-wrap: anywhere;
}

details > summary {
  cursor: pointer;
}

/* Cards with a red top edge (like the portal's "card-outline" cards). */
.card.shadow-sm {
  border-top: 3px solid var(--uh-red);
}

/* =====================================================================================
   Signed-out pages (sign in, request membership, forgot/reset password, contact admin):
   dark slate background shading into UH red, top bar sits on it, white card in the middle
   with a red header.
   ===================================================================================== */
body.signed-out {
  min-height: 100vh;
  margin-bottom: 0;
  padding-bottom: 40px;
  background: var(--uh-slate-dark) linear-gradient(155deg, var(--uh-slate-dark) 0%, var(--uh-slate) 55%, var(--uh-brick) 100%) fixed;
}
body.signed-out .navbar {
  background-color: transparent !important;
}
body.signed-out .navbar-brand {
  font-size: 1.6rem;
  font-weight: 700;
}
.auth-tagline {
  color: rgba(255, 255, 255, 0.85);
}
.auth-back a {
  color: #fff;
}
.auth-back a:hover {
  color: #FFF9D9;
}
.auth-card {
  border: 0;
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.35);
}
.auth-card > .card-header {
  background-color: var(--uh-red);
  color: #fff;
  border-bottom: 3px solid var(--uh-brick);
  padding: 1rem 1.25rem;
}
.auth-card > .card-header h1 {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 600;
}
.auth-card > .card-body {
  padding: 1.5rem 1.25rem;
}
.auth-card > .card-footer {
  background-color: #EEEEEE;
  border-top: 0;
}
.auth-card .card-footer a {
  color: var(--uh-slate-dark);
  font-weight: 500;
}
.auth-card .card-footer a:hover {
  color: var(--uh-red);
}
