@font-face {
  font-family: 'Inter';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/inter-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/inter-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/inter-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/inter-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Roboto';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/roboto-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Roboto';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/roboto-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Roboto';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/roboto-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Open Sans';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/open-sans-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Open Sans';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/open-sans-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Open Sans';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/open-sans-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Lato';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/lato-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Lato';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/lato-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/montserrat-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/montserrat-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/montserrat-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/montserrat-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Poppins';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/poppins-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Poppins';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/poppins-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Poppins';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/poppins-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Source Sans 3';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/source-sans-3-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Source Sans 3';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/source-sans-3-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Source Sans 3';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/source-sans-3-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Nunito';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/nunito-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Nunito';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/nunito-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Nunito';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/nunito-700.woff2') format('woff2');
}

@font-face {
  font-family: 'DM Sans';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/dm-sans-400.woff2') format('woff2');
}

@font-face {
  font-family: 'DM Sans';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/dm-sans-500.woff2') format('woff2');
}

@font-face {
  font-family: 'DM Sans';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/dm-sans-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/noto-sans-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/noto-sans-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Noto Sans';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/noto-sans-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Merriweather';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/merriweather-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Merriweather';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/merriweather-700.woff2') format('woff2');
}

@font-face {
  font-family: 'Lora';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/lora-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Lora';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/lora-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Lora';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/lora-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Playfair Display';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/playfair-display-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Playfair Display';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/playfair-display-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Playfair Display';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/playfair-display-700.woff2') format('woff2');
}

@font-face {
  font-family: 'JetBrains Mono';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/jetbrains-mono-400.woff2') format('woff2');
}

@font-face {
  font-family: 'JetBrains Mono';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/jetbrains-mono-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Source Code Pro';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/source-code-pro-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Source Code Pro';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/source-code-pro-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Source Code Pro';
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/source-code-pro-600.woff2') format('woff2');
}

/* ─── Portal UI fonts (added Ship 0, HIPAA safeguards) ──────────────────────
   These three families were previously loaded from fonts.googleapis.com in
   layouts/app.hbs and layouts/auth.hbs. Every portal page displays PHI, so
   those requests sent the viewer's IP and referring URL to a third party on
   every fax view — a standard security-questionnaire failure, and already
   against this project's own CLAUDE.md rule. Files are the latin subsets
   pulled from Google Fonts, so rendering is unchanged.
   Raleway ships as a variable font: one file covers 400-700. */

@font-face {
  font-family: 'Raleway';
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/raleway-var.woff2') format('woff2-variations'),
       url('/public/fonts/raleway-var.woff2') format('woff2');
}

@font-face {
  font-family: 'Open Sans';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/open-sans-500.woff2') format('woff2');
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/ibm-plex-mono-400.woff2') format('woff2');
}

@font-face {
  font-family: 'IBM Plex Mono';
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url('/public/fonts/ibm-plex-mono-500.woff2') format('woff2');
}
