:root {
  --brand-primary: #244c8a;
  --brand-accent: #326b63;
  --brand-background: #f4f6fa;
  --brand-surface: #ffffff;
  --brand-text: #17263b;
  --brand-muted: #526278;
  --brand-radius: .75rem;
  --brand-width: 74rem;
  --brand-spacing: 1.5rem;
}
body { background: var(--brand-background); color: var(--brand-text); }
.container { max-width: var(--brand-width); padding-inline: var(--brand-spacing); }
a { color: var(--brand-primary); }
.card { background: var(--brand-surface); border-radius: var(--brand-radius); border-color: #dce2eb; }
.auth-panel { max-width: 32rem; }
label { display: block; font-weight: 600; margin-bottom: .35rem; }
input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea { display: block; width: 100%; border: 1px solid #758298; border-radius: .35rem; padding: .6rem .75rem; }
input[type=range] { width: 100%; }
.scorecard-preview-list { list-style-position: inside; padding: 0; }
input[aria-invalid=true] { border-color: #b02a37; }
.btn-primary { --bs-btn-bg: var(--brand-primary); --bs-btn-border-color: var(--brand-primary); --bs-btn-hover-bg: #173662; --bs-btn-hover-border-color: #173662; }
.btn-outline-primary { --bs-btn-color: var(--brand-primary); --bs-btn-border-color: var(--brand-primary); --bs-btn-hover-bg: var(--brand-primary); }
:focus-visible { outline: 3px solid var(--brand-accent); outline-offset: 3px; }
.skip-link { background: white; padding: .75rem; }
.text-secondary { color: var(--brand-muted) !important; }
.entity-image { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border: 1px solid #dce2eb; border-radius: var(--brand-radius); background: #e7ebf1; }
.entity-image-fallback { display: grid; place-items: center; color: var(--brand-muted); font-size: clamp(1.5rem, 7vw, 3rem); font-weight: 700; }
.entity-image-profile { width: 8rem; aspect-ratio: 1; border-radius: 50%; }
.entity-image-card { aspect-ratio: 3 / 2; }
.entity-image-item { max-width: 30rem; }
.entity-image-thumb { width: 5rem; min-width: 5rem; aspect-ratio: 1; }

/* Reflow long member-supplied text without hiding inaccessible overflow. */
body { overflow-wrap: anywhere; }
.row > *, .d-flex > *, .vstack > * { min-width: 0; }
fieldset { min-width: 0; }
legend { float: none; width: auto; }
.btn, .nav-link, .navbar-toggler, .page-link { min-height: 2.75rem; min-width: 2.75rem; }
.btn { display: inline-flex; align-items: center; justify-content: center; white-space: normal; }
label:has(input[type=radio]), label:has(input[type=checkbox]), .form-check-label { min-height: 2.75rem; padding-block: .5rem; }
input[type=checkbox], input[type=radio] { min-width: 1.5rem; min-height: 1.5rem; accent-color: var(--brand-primary); vertical-align: middle; }
input[type=range] { min-height: 2.75rem; accent-color: var(--brand-primary); }
input, select, textarea { max-width: 100%; }
select[multiple] { min-height: 8rem; }
:focus-visible { position: relative; z-index: 1; }
@media (max-width: 575.98px) {
  :root { --brand-spacing: 1rem; }
  .card-body.p-4, .card-body.p-5 { padding: 1rem !important; }
  main.container { padding-block: 2rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
.btn-outline-secondary { --bs-btn-color: #526278; --bs-btn-border-color: #526278; --bs-btn-hover-bg: #526278; --bs-btn-hover-border-color: #526278; --bs-btn-active-bg: #526278; --bs-btn-active-border-color: #526278; }
.btn-outline-danger { --bs-btn-color: #b02a37; --bs-btn-border-color: #b02a37; --bs-btn-hover-bg: #b02a37; --bs-btn-hover-border-color: #b02a37; --bs-btn-active-bg: #b02a37; --bs-btn-active-border-color: #b02a37; }
.text-danger { color: #b02a37 !important; }
.btn-link { --bs-btn-color: #244c8a; --bs-btn-hover-color: #173662; --bs-btn-active-color: #173662; }
.card-body { min-width: 0; }
.table-responsive { width: 100%; max-width: 100%; }
/* Keep absolutely positioned accessible table labels inside their scroll region. */
.table-responsive { position: relative; }
