/* IBM Plex Sans Arabic — one family for Arabic and English on every screen,
 * self-hosted (no third-party font host: the app is meant for VPN-only
 * hosting, the service worker precaches /static/*, and a government
 * register should not tell a third party who is reading it).
 *
 * Four weights: 400 reading text, 500 small text and captions (the regular is
 * too thin under 14px in Arabic), 600 labels and figures, 700 headings.
 * Each weight is split into an Arabic and a Latin file; `unicode-range` means
 * a browser downloads a file only when a character in its range is on the
 * page. Licence: SIL Open Font License 1.1 (fonts/OFL.txt).
 *
 * The ranges are load-bearing, not an optimisation. Two faces of one family
 * at one weight are told apart by range; write `unicode-range: ;` and the
 * declaration is invalid and dropped, so both faces claim U+0-10FFFF, the
 * one declared second wins for every character, and the Arabic files are
 * never fetched at all. That is what happened here: Arabic fell through to
 * Tahoma on every screen. tests/test_static_assets.py now guards it.
 *
 * The print documents (report_export.html) load these same files.
 */

/* --- Arabic ------------------------------------------------------------ */

@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/plex-sans-arabic-400-arabic.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1,
    U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF,
    U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/plex-sans-arabic-500-arabic.woff2") format("woff2");
  unicode-range: U+0500-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1,
    U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF,
    U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/plex-sans-arabic-600-arabic.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1,
    U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF,
    U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/plex-sans-arabic-700-arabic.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1,
    U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF,
    U+FE70-FE74, U+FE76-FEFC;
}

/* --- Latin -------------------------------------------------------------- *
 * The Latin cut of the same family, so English and Arabic share one set of
 * proportions and one set of figures. The two ranges must not overlap: the
 * Arabic face above owns U+200C-200E and U+2010-2011, so this one steps
 * around them. Anything outside both ranges falls to the stack in
 * --font-family.                                                           */

@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/plex-sans-arabic-400-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-200B, U+200F, U+2012-204E,
    U+2050-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
    U+FFFD;
}

@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/plex-sans-arabic-500-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-200B, U+200F, U+2012-204E,
    U+2050-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
    U+FFFD;
}

@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/plex-sans-arabic-600-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-200B, U+200F, U+2012-204E,
    U+2050-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
    U+FFFD;
}

@font-face {
  font-family: "IBM Plex Sans Arabic";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/plex-sans-arabic-700-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-200B, U+200F, U+2012-204E,
    U+2050-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
    U+FFFD;
}

/* --- The interface's face: TheSans ------------------------------------------ *
 * The Centre's own licensed Sans (the owner's choice, 23 October 2026): one
 * family for Arabic and English on every screen, its Latin figures (0-9) for
 * every number. Two weights, Plain (400) and Bold (700); 500 resolves to Plain
 * and 600 to Bold. It leads the stack in --font-family / --page-font, with IBM
 * Plex Sans Arabic kept after it for the few codepoints TheSans does not carry.
 * Each weight is split into an Arabic and a Latin file by the same ranges as
 * Plex. Licence: a commercial LucasFonts licence held by the Centre, not an
 * open font and kept private to this repository (fonts/TheSans-LICENCE.txt). */

@font-face {
  font-family: "TheSans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/thesans-plain.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1,
    U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF,
    U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
  font-family: "TheSans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/thesans-plain.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-200B, U+200F, U+2012-204E,
    U+2050-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
    U+FFFD;
}

@font-face {
  font-family: "TheSans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/thesans-bold.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1,
    U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF,
    U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
  font-family: "TheSans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/thesans-bold.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-200B, U+200F, U+2012-204E,
    U+2050-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
    U+FFFD;
}

/* --- The command room's Arabic --------------------------------------------- */
/* Noto Sans Arabic, for the CEO's pages only (v2.css, body.ceo-viewer): the
 * modern, even-stroked Arabic the owner chose, the nearest free face to the
 * SF Arabic of the Claude app (which Apple's licence keeps off any other
 * site). One variable file carries every weight; its range is Arabic only, so
 * Latin letters and figures stay in Plex beside it. It runs a little wider
 * than Plex at one size, so it is left at its own size. Licence: SIL Open
 * Font License 1.1 (fonts/OFL-NotoSansArabic.txt). */

@font-face {
  font-family: "Noto Sans Arabic";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/noto-sans-arabic-arabic.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1,
    U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF,
    U+FE70-FE74, U+FE76-FEFC;
}

/* --- Every card's figure ------------------------------------------------------ */
/* Saira, semi-expanded: the figures of the card design the owner approved (design H,
 * 21 October 2026; v2.css, «Every figure card»), on every page. Its figures alone: the
 * digits and what is set beside them (% . , : / + − ( ) and the spaces), one variable
 * file from 400 to 700 at its 112.5 width, its tabular figures kept, about 11 KB. Any
 * other character in a figure (an Arabic unit, a dash) falls to the page's own face.
 * Licence: SIL Open Font License 1.1 (fonts/OFL-Saira.txt). */

@font-face {
  font-family: "Saira Figures";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/saira-figures.woff2") format("woff2");
  unicode-range: U+0020, U+0025, U+0028-0029, U+002B-002F, U+0030-003A, U+00A0, U+00B7,
    U+2212;
}
