:root {
  --ubc-blue: #002145;
  --ubc-blue-light: #0055B7;
  --ubc-teal: #00A499;
  --ubc-gold: #F5A623;
  --ubc-grey-light: #F8F9FA;
  --ubc-grey-border: #DEE2E6;
}

/* Bootstrap primary override */
.btn-primary, .bg-primary { background-color: var(--ubc-blue-light) !important; border-color: var(--ubc-blue-light) !important; }
.btn-primary:hover { background-color: var(--ubc-blue) !important; border-color: var(--ubc-blue) !important; }
.btn-outline-primary { color: var(--ubc-blue-light) !important; border-color: var(--ubc-blue-light) !important; }
.btn-outline-primary:hover { background-color: var(--ubc-blue-light) !important; color: #fff !important; }
a { color: var(--ubc-blue-light); }
a:hover { color: var(--ubc-blue); }

/* Navbar */
.ubc-navbar { background-color: var(--ubc-blue); padding: 0.75rem 0; }
.ubc-wordmark {
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #fff;
  border-right: 1px solid rgba(255,255,255,0.3);
  padding-right: 0.75rem;
  margin-right: 0.5rem;
}
.navbar-title { font-size: 0.95rem; color: rgba(255,255,255,0.9); }
.nav-logout { color: rgba(255,255,255,0.7) !important; }
.nav-logout:hover { color: #fff !important; }

/* Footer */
.ubc-footer { background-color: var(--ubc-blue); color: rgba(255,255,255,0.75); }
.footer-link { color: rgba(255,255,255,0.9); }
.footer-link:hover { color: #fff; }

/* Impersonation banner */
.impersonation-banner {
  background-color: #b02a37;
  color: #fff;
  font-size: 0.9rem;
  border-bottom: 2px solid #8a1f2a;
}
.impersonation-banner strong { color: #fff; }

/* Cards */
.card { border: 1px solid var(--ubc-grey-border); border-radius: 0.5rem; }
.card-header { background-color: var(--ubc-grey-light); border-bottom: 1px solid var(--ubc-grey-border); }

/* Status badges */
.badge-submitted { background-color: #6c757d; }
.badge-pending { background-color: var(--ubc-gold); color: #212529; }
.badge-approved { background-color: var(--ubc-teal); }
.badge-returned { background-color: #fd7e14; }
.badge-declined { background-color: #842029; }
.badge-withdrawn { background-color: #adb5bd; color: #212529; }
.badge-deleted { background-color: #dc3545; }
.badge-granted { background-color: #198754; }

/* Forms */
.form-label { font-weight: 500; }
.required-mark { color: #dc3545; }
.form-section-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--ubc-blue);
  border-bottom: 2px solid var(--ubc-blue-light);
  padding-bottom: 0.4rem;
  margin-bottom: 1.25rem;
  margin-top: 1.75rem;
}

/* Agreement text box */
.agreement-box {
  background: var(--ubc-grey-light);
  border: 1px solid var(--ubc-grey-border);
  border-radius: 0.375rem;
  padding: 1rem 1.25rem;
  max-height: 200px;
  overflow-y: auto;
  font-size: 0.875rem;
  white-space: pre-wrap;
  margin-bottom: 0.75rem;
}

/* Request status timeline */
.timeline { border-left: 3px solid var(--ubc-blue-light); padding-left: 1.25rem; }
.timeline-item { position: relative; margin-bottom: 1rem; }
.timeline-item::before {
  content: '';
  position: absolute;
  left: -1.56rem;
  top: 0.3rem;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  background: var(--ubc-blue-light);
  border: 2px solid #fff;
}

/* Page header */
.page-header {
  border-bottom: 1px solid var(--ubc-grey-border);
  padding-bottom: 1rem;
  margin-bottom: 1.75rem;
}
.page-header h1 { font-size: 1.5rem; color: var(--ubc-blue); margin-bottom: 0.25rem; }

/* Recommender slots */
.recommender-slot {
  background: var(--ubc-grey-light);
  border: 1px solid var(--ubc-grey-border);
  border-radius: 0.5rem;
  padding: 1.25rem;
  margin-bottom: 1rem;
}
.recommender-slot-title {
  font-weight: 600;
  color: var(--ubc-blue);
  margin-bottom: 1rem;
}

/* Rich text content rendered from Quill */
.front-page-intro p { margin-bottom: 0.75rem; }
.front-page-intro p:last-child { margin-bottom: 0; }
.front-page-intro ul, .front-page-intro ol { padding-left: 1.5rem; margin-bottom: 0.75rem; }
.front-page-intro a { color: var(--ubc-blue-light); }

/* Rich text content rendered from Quill in forms and cards */
.rich-text-content p { margin-bottom: 0.75rem; }
.rich-text-content p:last-child { margin-bottom: 0; }
.rich-text-content ul, .rich-text-content ol { padding-left: 1.5rem; margin-bottom: 0.75rem; }
.rich-text-content a { color: var(--ubc-blue-light); }
.rich-text-content strong { font-weight: 600; }

/* Question labels — preserve admin-entered line breaks */
.question-label-text { white-space: pre-wrap; }

/* Visually distinguish a requester's answer from the question label.
   Indented with a left border bar; one .answer-line per response so
   multi-select answers stack instead of running together with commas. */
.answer-block {
  margin-top: 0.25rem;
  margin-left: 0.25rem;
  padding-left: 0.75rem;
  border-left: 3px solid var(--ubc-blue-light);
  color: #202020;
}
.answer-block .answer-line { white-space: pre-wrap; }
.answer-block .answer-line + .answer-line { margin-top: 0.2rem; }
.answer-block .answer-empty { color: #888; font-style: italic; }

/* Role badges */
.role-badge-super_admin { background-color: #4a148c; color: #fff; }
.role-badge-admin       { background-color: #842029; color: #fff; }
.role-badge-staff       { background-color: var(--ubc-blue-light); color: #fff; }
.role-badge-requester   { background-color: #146c43; color: #fff; }