/*
 * Self-hosted brand typography (Roboto Flex + Roboto Mono, variable woff2,
 * Google Fonts v30/v31 builds). Served same-origin so the production CSP
 * (style-src/font-src 'self') holds, and no visitor IP ever reaches Google.
 */

/* Roboto Flex — latin-ext */
@font-face {
  font-family: 'Roboto Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/roboto-flex-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Roboto Flex — latin */
@font-face {
  font-family: 'Roboto Flex';
  font-style: normal;
  font-weight: 400 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/roboto-flex-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Roboto Serif — display titles (verify redesign). Static instance
 * (wght 600, opsz 36) subset to latin: 19.7 KB instead of the 147 KB
 * variable build — the H1 verdict does not need nine weights. */
@font-face {
  font-family: 'Roboto Serif';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/roboto-serif-display-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212;
}
/* Roboto Mono — latin-ext */
@font-face {
  font-family: 'Roboto Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url(/fonts/roboto-mono-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Roboto Mono — latin */
@font-face {
  font-family: 'Roboto Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url(/fonts/roboto-mono-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/*
 * Brand lockup — the mark is ALWAYS followed by the EVIDIQ wordmark
 * (brand rule, 2026-08-24). Same pairing as the apps' EvidiqBrandLockup on
 * iOS and Android; the three must not drift.
 *
 * Here rather than in each page's <style>: the portal CSP is
 * style-src 'self' with a per-request nonce, so an inline style attribute
 * would be blocked, and five copies of the same rule would drift. Every
 * template that draws the lockup already links this file.
 */
.evidiq-lockup {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
}
.evidiq-lockup .evidiq-wordmark {
  font-family: 'Roboto Flex', system-ui, sans-serif;
  font-weight: 600;
  font-size: 20px;
  letter-spacing: .054em;
  color: #1A2942;
  line-height: 1;
}
