/* ============================================================================
   AML v2 — web typography system (V1 ui.css parity).
   Served as a STATIC asset under /app/app-fonts.css and injected into the export's
   <head> as a <link> by a post-export step in Dockerfile.web. We do NOT `import` it
   through Metro on purpose: a Metro `.css` import pulls in `lightningcss`, whose musl
   native binary is absent in the node:alpine build image (bundling fails). As a plain
   static file it needs no transformer and still loads on every route (the SPA has one
   index.html). A no-op on native.

   Fonts are self-hosted (woff2 in /public/fonts → served under /app/fonts), so there is
   no external font host — CSP-safe and offline-capable. Only latin, only the weights we
   use (~144 KB total).
   ========================================================================== */

@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("/app/fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("/app/fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("/app/fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("/app/fonts/ibm-plex-sans-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/app/fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/app/fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/app/fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2"); }

/* IBM Plex Sans app-wide. react-native-web renders every <Text> as an element with
   dir="auto" and a base reset class whose `font:` shorthand pins the system stack, so a
   plain body{font-family} does NOT cascade — we set the family on the Text/input elements
   directly. !important beats the RNW reset that is injected at runtime (after this file). */
[dir="auto"], input, select, textarea, button {
  font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

body {
  font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* IBM Plex Mono for DATA cells. These are RNW 0.21's STABLE atomic classes:
   `.r-1ghxqbu` = fontVariant:['tabular-nums'] (the shared DataTable numeric cells, the
   Pager count, the results count), and `.r-zz5t5d.r-b88u0q` = the shared StatCard value
   (28px / weight 700). Targeting them here switches every stat tile + data cell to mono
   without editing each screen or the shared @dloizides kit. Kept AFTER the Sans rule so it
   wins for these cells (equal specificity, later source order). */
.r-1ghxqbu,
.r-zz5t5d.r-b88u0q {
  font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace !important;
  font-variant-numeric: tabular-nums;
}
