:root {
  --color-navy: #06224a;
  --color-gold: #ffcd00;
  --color-blue: #165a96;
  --color-canvas: #eff4f8;
  --color-surface: #ffffff;
  --color-text: #172033;
  --color-text-muted: #475569;
  --color-border: #cbd5e1;
  --color-focus: #005fcc;
  --color-focus-contrast: #ffffff;
  --color-danger: #b42318;

  --font-sans: Roboto, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;

  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --shadow-sm: 0 1px 2px rgb(15 23 42 / 12%);

  --content-max-width: 72rem;
  --breakpoint-sm: 40rem;
  --breakpoint-md: 48rem;
  --breakpoint-lg: 64rem;
}


@font-face { font-family: Roboto; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/fonts/roboto-latin-wght-normal.woff2') format('woff2'); }
* { box-sizing: border-box; }
html { color: var(--color-text); background: var(--color-canvas); font-family: var(--font-sans); line-height: 1.55; }
body { margin: 0; min-width: 320px; }

a { color: var(--color-blue); text-underline-offset: .2em; }
h1, h2, h3, h4 { color: var(--color-navy); line-height: 1.2; text-wrap: balance; }
h1 { font-size: clamp(1.8rem, 3.5vw, 2.75rem); letter-spacing: -.035em; margin: 0 0 1rem; }
h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); letter-spacing: -.025em; margin: 0 0 .65rem; }
h3 { font-size: 1.15rem; margin: 0 0 1rem; }
p { margin: 0 0 1rem; }
:focus-visible { outline: 0.125rem solid var(--color-focus-contrast); outline-offset: 0.125rem; box-shadow: 0 0 0 0.25rem var(--color-focus); }
.site-header { background: var(--color-navy); color: white; border-bottom: 3px solid var(--color-gold); }
.site-header-inner { max-width: 1248px; margin: auto; padding: 1rem 2rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.portal-brand { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.portal-brand img { display: block; width: 180px; height: auto; flex-shrink: 0; }
.portal-brand h1 { color: white; font-size: 1.1rem; margin: 0; letter-spacing: -.015em; }
.portal-brand p { color: #bcd1e7; font-size: .75rem; margin: .2rem 0 0; }
.portal-content { max-width: 1248px; margin: auto; padding: 2rem 2rem 4rem; }
.site-footer { max-width: 1184px; margin: 0 auto; padding: 1.5rem 2rem; border-top: 1px solid var(--color-border); color: var(--color-text-muted); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; font-size: .8125rem; }
.portal-content { max-width:none; width:100%; padding-inline:clamp(1rem,3vw,3rem); }
.portal-content > :not(:has(.committee-workspace)):not(.committee-workspace):not(.review-workspace) { margin-inline:auto; }
.site-header h1 { color: white; margin: 0; }
.portal-content { max-width: 56rem; }
.portal-content nav { margin-top: 2rem; line-height: 2; }
dd { margin: .25rem 0 1rem; }
@media (max-width: 600px) { .site-header-inner { flex-direction: column; align-items: flex-start; padding: 1.25rem; } .portal-content, .site-footer { padding: 1.25rem; } }
