/* Assistant — self-hosted (R-shell-1, DESIGN_DEBT_MAP.md §3/§7 round 1). Sol is an offline-first PWA
   (sw.js caches the whole shell); fonts previously loaded from Google Fonts over the network only
   (never cached — see sw.js comment "Supabase + fonts: network, never cached here"). Assistant is now
   the primary UI font (tokens.css --font-ui), so it's vendored into app/vendor/fonts/ and added to the
   sw.js SHELL cache list, same treatment as every other shell-critical asset.
   Two variable-weight files (hebrew + latin subsets, weights 400–800 baked into one file each, same
   split Google Fonts itself serves — byte-identical files, just re-hosted). Multiple @font-face rules
   per subset, one per weight, all pointing at the SAME file: this mirrors Google's own css2 output
   exactly so the browser's variable-font weight matching behaves identically to the CDN version. */
@font-face {
  font-family: 'Assistant';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../vendor/fonts/assistant-hebrew.woff2') format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Assistant';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../vendor/fonts/assistant-hebrew.woff2') format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Assistant';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../vendor/fonts/assistant-hebrew.woff2') format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Assistant';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../vendor/fonts/assistant-hebrew.woff2') format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Assistant';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../vendor/fonts/assistant-hebrew.woff2') format('woff2');
  unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Assistant';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../vendor/fonts/assistant-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;
}
@font-face {
  font-family: 'Assistant';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../vendor/fonts/assistant-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;
}
@font-face {
  font-family: 'Assistant';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../vendor/fonts/assistant-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;
}
@font-face {
  font-family: 'Assistant';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../vendor/fonts/assistant-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;
}
@font-face {
  font-family: 'Assistant';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../vendor/fonts/assistant-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;
}

/* ============================================================================
   W5-FIX F4 — shekel (₪, U+20AA) glyph override (W5B CRIT-1). IBM Plex Mono's
   own U+20AA glyph renders corrupted/overlapping in DOM text at every weight
   tested (500=loaded, 800=synthesized) — confirmed: the system-fallback
   monospace renders ₪ correctly, and ECharts' own canvas-rendered tooltip
   values render ₪ correctly too, so this is specific to the IBM Plex Mono
   webfont file itself, not RTL/bidi or the app's number-formatting logic.
   IBM Plex Mono is loaded via the Google Fonts CDN <link> in index.html (NOT
   vendored like Assistant above — confirmed by reading index.html <head>
   before this fix). 'PlexNum' below is a new family: block 1 reuses IBM Plex
   Mono's OWN already-requested gstatic file (same URL the Google Fonts
   stylesheet's weight-400 latin subset uses — same URL means a browser cache
   hit, not a second download) for every character EXCEPT U+20AA; block 2
   overrides ONLY U+20AA to a known-good local system font. tokens.css
   --font-num now points at 'PlexNum' first, keeping 'IBM Plex Mono',
   monospace as the fallback chain — every other character unchanged. */
@font-face {
  font-family: 'PlexNum';
  font-style: normal;
  font-display: swap;
  src: url('https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1i8q131nj-o.woff2') format('woff2');
  unicode-range: U+0000-20A9, U+20AB-10FFFF; /* everything EXCEPT U+20AA — that codepoint is the next block */
}
@font-face {
  font-family: 'PlexNum';
  font-style: normal;
  font-display: swap;
  src: local('Arial'), local('Helvetica Neue');
  unicode-range: U+20AA; /* ₪ only — IBM Plex Mono's own glyph for this codepoint renders corrupted (W5B CRIT-1) */
}
