/* ─── Font tự host cho tem nhãn (Cài đặt → 🏷 Tem nhãn) — MỘT LUẬT MỘT CHỖ ───
   App nạp qua globals.css, CỬA SỔ IN nạp qua <link> tuyệt đối (inCacTem trong lib/tem-may.ts).
   File vietnamese khai SAU file latin + unicode-range để dấu tiếng Việt ăn đúng font.
   SF Pro Display: font gốc Apple (đã kiểm phủ tiếng Việt), 6 mức đậm 400–900 (900 = Black).
   Inter · Roboto Condensed: bản variable — một file đủ mọi mức đậm 100–900. */

@font-face { font-family: 'SF Pro Display'; font-weight: 400; src: url('SF-Pro-Display-Regular.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'SF Pro Display'; font-weight: 500; src: url('SF-Pro-Display-Medium.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'SF Pro Display'; font-weight: 600; src: url('SF-Pro-Display-Semibold.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'SF Pro Display'; font-weight: 700; src: url('SF-Pro-Display-Bold.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'SF Pro Display'; font-weight: 800; src: url('SF-Pro-Display-Heavy.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'SF Pro Display'; font-weight: 900; src: url('SF-Pro-Display-Black.woff2') format('woff2'); font-display: swap; }

@font-face { font-family: 'Inter'; font-weight: 100 900; src: url('inter-latin-wght.woff2') format('woff2-variations'); font-display: swap; }
@font-face { font-family: 'Inter'; font-weight: 100 900; src: url('inter-vietnamese-wght.woff2') format('woff2-variations'); font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }

@font-face { font-family: 'Roboto Condensed'; font-weight: 100 900; src: url('roboto-condensed-latin-wght.woff2') format('woff2-variations'); font-display: swap; }
@font-face { font-family: 'Roboto Condensed'; font-weight: 100 900; src: url('roboto-condensed-vietnamese-wght.woff2') format('woff2-variations'); font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }

@font-face { font-family: 'Be Vietnam Pro'; font-weight: 400; src: url('be-vietnam-pro-latin-400.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Be Vietnam Pro'; font-weight: 500 600; src: url('be-vietnam-pro-latin-500.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Be Vietnam Pro'; font-weight: 700; src: url('be-vietnam-pro-latin-700.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Be Vietnam Pro'; font-weight: 800 900; src: url('be-vietnam-pro-latin-800.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Be Vietnam Pro'; font-weight: 400; src: url('be-vietnam-pro-vietnamese-400.woff2') format('woff2'); font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Be Vietnam Pro'; font-weight: 500 600; src: url('be-vietnam-pro-vietnamese-500.woff2') format('woff2'); font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Be Vietnam Pro'; font-weight: 700; src: url('be-vietnam-pro-vietnamese-700.woff2') format('woff2'); font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Be Vietnam Pro'; font-weight: 800 900; src: url('be-vietnam-pro-vietnamese-800.woff2') format('woff2'); font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }

/* Pacifico — chữ viết tay tròn, gần nét "hello" của Apple nhất trong các font được phép dùng
   thương mại (SIL OFL, kèm OFL-Pacifico.txt — giấy phép OFL BẮT BUỘC đi kèm file font).
   Đã cắt gọn còn Latin + tiếng Việt: 329KB → 43KB, đủ 74/74 chữ có dấu. Chỉ có một mức đậm. */
@font-face { font-family: 'Pacifico'; font-weight: 400; src: url('pacifico.woff2') format('woff2'); font-display: swap; }

/* ─── Font VIẾT TAY thêm 14/10/2026 — SIL OFL, mỗi font kèm OFL-<Tên>.txt (OFL bắt buộc) ───
   Đã cắt gọn còn Latin + tiếng Việt (pyftsubset), kiểm đủ 74/74 chữ có dấu từng font.
   Loại vì THIẾU chữ Việt: Caveat (thiếu 42) · Kalam (51) · Sacramento (48).
   Nối nét: Dancing Script (variable 400–700) · Lobster · Great Vibes (mảnh — chỉ hợp chữ TO) · Charm
   Tách chữ, dễ đọc nhất khi in nhỏ: Patrick Hand · Mali (400 + 700) */
@font-face { font-family: 'Dancing Script'; font-weight: 400 700; src: url('dancing-script-wght.woff2') format('woff2-variations'); font-display: swap; }
@font-face { font-family: 'Lobster'; font-weight: 400; src: url('lobster.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Great Vibes'; font-weight: 400; src: url('great-vibes.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Charm'; font-weight: 400; src: url('charm.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Patrick Hand'; font-weight: 400; src: url('patrick-hand.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Mali'; font-weight: 400; src: url('mali-400.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Mali'; font-weight: 700; src: url('mali-700.woff2') format('woff2'); font-display: swap; }

/* ─── Đợt 2 font VIẾT TAY — 14/10/2026, SIL OFL, mỗi font kèm OFL-<Tên>.txt ───
   Lọc từ 99 font viết tay Google Fonts khai có tiếng Việt; tự kiểm 74/74 chữ có dấu từng tệp
   SAU KHI cắt gọn. Bỏ: Borel (chữ quá cao, dấu chồng nhau trên tem nhỏ) · Alex Brush · Gwendolyn ·
   Arizonia · Style Script (mảnh, trùng kiểu Great Vibes/Charm đã có).
   Amatic SC: chữ HẸP NHẤT (0.30em/ký tự) — hợp tên máy dài. Playpen Sans 219KB vì giữ đủ trục đậm
   100–800 (font chỉ tải khi có tem dùng tới, không tải sẵn). */
@font-face { font-family: 'Playpen Sans'; font-weight: 100 800; src: url('playpen-sans-wght.woff2') format('woff2-variations'); font-display: swap; }
@font-face { font-family: 'Merienda'; font-weight: 300 900; src: url('merienda-wght.woff2') format('woff2-variations'); font-display: swap; }
@font-face { font-family: 'Itim'; font-weight: 400; src: url('itim.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Sriracha'; font-weight: 400; src: url('sriracha.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Bad Script'; font-weight: 400; src: url('bad-script.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Amatic SC'; font-weight: 400; src: url('amatic-sc-400.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Amatic SC'; font-weight: 700; src: url('amatic-sc-700.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Fuzzy Bubbles'; font-weight: 400; src: url('fuzzy-bubbles-400.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'Fuzzy Bubbles'; font-weight: 700; src: url('fuzzy-bubbles-700.woff2') format('woff2'); font-display: swap; }
