/* ═══════════════════════════════════════════════════════════════════════════
   NOTO SANS — FONT CHỮ CỦA APP  (anh Quang chốt 27/08/2026, theo ảnh thiết kế)
   ---------------------------------------------------------------------------
   VÌ SAO TỰ CHỨA CHỨ KHÔNG GỌI GOOGLE FONTS
   Windows KHÔNG cài sẵn Noto Sans. Chỉ đổi `font-family` mà không nạp file thì
   trình duyệt âm thầm rơi về Segoe UI — nhìn y như chưa sửa gì, kiểu hỏng khó
   thấy nhất. Còn gọi `fonts.googleapis.com` thì app nội bộ này phụ thuộc mạng
   ngoài: mất mạng hay sau firewall công ty là chữ đổi font giữa chừng.
   Ba file .woff2 dưới đây nằm trong `static/fonts/` (220KB, giấy phép OFL —
   được phép đóng gói kèm). Lấy từ Google Fonts Noto Sans v42.

   MỘT FILE LO CẢ 6 ĐỘ ĐẬM
   Đây là font BIẾN THIÊN (variable): `font-weight:100 900` nghĩa là một file
   phủ mọi độ đậm app đang dùng (500 · 600 · 700 · 800 · 900) thay vì 5 file
   riêng. Không cần khai thêm @font-face nào khi dùng độ đậm mới.

   `unicode-range` LÀ THỨ GIỮ CHO NÓ NHẸ
   Trình duyệt CHỈ tải file nào chứa ký tự đang thật sự có trên trang. Trang
   tiếng Việt tải latin (35KB) + vietnamese (14KB) = 49KB; khối latin-ext 164KB
   chỉ tải khi trang có ký tự Đông Âu — gần như không bao giờ.

   `font-display:swap` — hiện chữ ngay bằng font dự phòng rồi mới đổi sang Noto
   Sans khi tải xong. Không có nó thì chữ trắng trơn trong ~100ms đầu.

   ĐỔI FONT SAU NÀY: thay 3 file trong `static/fonts/` rồi TĂNG `?v=` ở chỗ nạp
   (`_header.html`, `login.html`, `403.html`). Service worker `static/sw.js`
   cache-first mọi .css/.woff2 — quên tăng là máy người dùng giữ bản cũ mãi.
   ═══════════════════════════════════════════════════════════════════════════ */

/* latin — bộ chữ cái cơ bản */
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/static/fonts/noto-sans-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;
}

/* vietnamese — dấu tiếng Việt (ă â ê ô ơ ư + thanh điệu) */
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/static/fonts/noto-sans-vietnamese.woff2') format('woff2');
  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;
}

/* latin-ext — Đông Âu, hiếm dùng ở đây nên tải sau cùng */
@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/static/fonts/noto-sans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
