/* Self-hosted fonts (2026-08-26). Previously loaded from fonts.googleapis.com;
   self-hosted so the webmail has ZERO third-party requests in its load path
   (a transient CDN/network failure used to leave the UI half-styled).
   - roboto-var.woff2: Roboto variable, covers all weights.
   - material-symbols-subset.woff2: Material Symbols Outlined SUBSET containing
     ONLY the icons the UI uses:
       attach_file, chevron_left, chevron_right, close, delete, draft, edit,
       folder, inbox, refresh, report, send, settings, visibility,
       visibility_off
     If you add a new <md-icon>NAME</md-icon> to the UI (incl. app.js's
     folderIcon map), re-generate the subset with the icon_names= parameter
     (see README's "Icon font subset" section for the exact command) or the new icon renders as its
     text name. */
/* Roboto: three STATIC latin cuts from Fontsource. (The first attempt used a
   file picked out of Google's css2 response that turned out to be the
   CYRILLIC subset - it registered as 'Roboto', loaded "successfully", and
   every Latin glyph fell back to the browser default serif. Lesson, now
   enforced: verify a font file's actual cmap coverage with fontTools before
   shipping it - FontFace status 'loaded' proves nothing about glyphs.) */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/roboto-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/roboto-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/roboto-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Material Symbols Outlined';
  font-style: normal;
  font-weight: 100 700;
  font-display: block;
  src: url('fonts/material-symbols-subset.woff2') format('woff2');
}
