SimpliFi captive portal - self-hosted fonts (modules M5 / B2-PD)

Captive-portal walled gardens block font CDNs, so the portal never loads Google / Bunny
fonts. Themes use system font stacks by default (config/portal_themes.php "fonts"); the
fonts in this folder are the self-hosted alternatives offered in Settings > Captive Portal
> Style > Font. Each one is served from this folder only, with font-display: swap.

Files and licences (see the LICENSE-*.txt files next to them):

  dejavu-sans-400/700.woff     DejaVu Sans         Bitstream Vera licence (LICENSE-DejaVu.txt)
  dejavu-serif-400/700.woff    DejaVu Serif        Bitstream Vera licence
  dejavu-mono-400/700.woff     DejaVu Sans Mono    Bitstream Vera licence
  roboto-400/700.woff2         Roboto              Apache License 2.0 (LICENSE-Roboto.txt)
  public-sans-400/700.woff2    Public Sans         SIL Open Font License 1.1 (LICENSE-OFL.txt)
  source-sans-400.woff         Source Sans Pro     SIL Open Font License 1.1 (regular weight only)

The DejaVu and Source Sans files are Latin subsets (Latin-1, the Twi / Ga / Ewe / Dagbani /
Hausa letters, French oe / y-diaeresis, the cedi, naira and euro signs and common
punctuation) produced with php-font-lib (a dompdf dependency) and wrapped as WOFF, so every
file stays under 30 KB and a portal page with two weights stays inside the 120 KB budget
enforced by tests/Feature/PortalDesigner/RenderAllThemesTest.

To add another font: put its WOFF/WOFF2 files here, add an entry under "fonts" in
config/portal_themes.php with `family`, `stack` and `files` (weight => file name), and add
its licence. A font is only offered when every listed file exists. Only use fonts whose
licence allows self-hosting and keep the Latin subset small (< 40 KB per file).
