/* Self-hosted webfaces (TRUST-01 / CSP-01, UI/UX audit 2026-07-26).
   Replaces the Google Fonts CDN link that used to sit in App.razor.

   Why self-hosted: a prospect's DPO running a network trace saw every user's IP going to
   Google on every page view, from a vendor whose /sub-processors page does not list it.
   Locked-down SOCs and default-deny egress proxies also block fonts.gstatic.com, and when
   they do the entire type system silently falls back to system-ui for exactly the most
   security-conscious buyer. The PDF pipeline already reached this conclusion and embeds its
   TTFs; this carries it into the app shell.

   font-display:swap preserves the previous &display=swap first-paint behaviour.
   Filenames follow google-webfonts-helper's convention. The version segments below
   (v12/v20/v24) were verified against the actual download on 2026-07-26 and DO move --
   re-check them when refreshing these files, because a filename typo degrades silently to
   a system font rather than erroring. */

/* ---- Plus Jakarta Sans -- display / headings ---- */
@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('fonts/plus-jakarta-sans-v12-latin_latin-ext-regular.woff2') format('woff2');
}
@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('fonts/plus-jakarta-sans-v12-latin_latin-ext-500.woff2') format('woff2');
}
@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('fonts/plus-jakarta-sans-v12-latin_latin-ext-600.woff2') format('woff2');
}
@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('fonts/plus-jakarta-sans-v12-latin_latin-ext-700.woff2') format('woff2');
}

/* ---- Inter -- UI / body ---- */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url('fonts/inter-v20-latin_latin-ext-300.woff2') format('woff2');
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('fonts/inter-v20-latin_latin-ext-regular.woff2') format('woff2');
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('fonts/inter-v20-latin_latin-ext-500.woff2') format('woff2');
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('fonts/inter-v20-latin_latin-ext-600.woff2') format('woff2');
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('fonts/inter-v20-latin_latin-ext-700.woff2') format('woff2');
}

/* ---- JetBrains Mono -- identifiers, hashes, CVEs, timestamps ---- */
@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('fonts/jetbrains-mono-v24-latin_latin-ext-regular.woff2') format('woff2');
}
@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('fonts/jetbrains-mono-v24-latin_latin-ext-500.woff2') format('woff2');
}
