/* ══════════════════════════════════════════════════════════════════════
   ฟอนต์ของหน้าเว็บทั้งหมด — ★ แหล่งความจริงแหล่งเดียว ★ (7 ก.ย. 2026)

   ทั้ง dashboard (index.html) และหน้าเข้าสู่ระบบ (login.html + auth.css)
   ลิงก์ไฟล์นี้ แล้วใช้ var(--font-sans) / var(--font-mono) เท่านั้น
   ★ ห้ามเขียนชื่อฟอนต์ตรง ๆ ที่อื่นอีก ★ ไม่งั้นวันหนึ่งจะมีหน้าหนึ่งถูกแก้
   แล้วอีกหน้าถูกลืม — ซึ่งคนใช้จะเห็นเป็น "สองหน้าที่ดูไม่เหมือนกัน"

   ══ ★★ ทำไมเก็บไฟล์ฟอนต์ไว้เอง ไม่เรียก Google Fonts CDN ★★ ═══════════

   1. ★ ไม่เพิ่มจุดพังในเส้นทางวาดหน้าแรก ★ เอกสารโปรเจคบันทึกปัญหาเครือข่าย
      ไว้เองหลายหน้า (IPv6/Happy Eyeballs · Firewall บล็อก node.exe) และทีม
      ภาคสนามเปิดหน้านี้จากเน็ตที่ไม่แน่นอน — stylesheet จากภายนอกที่โหลด
      ไม่ขึ้นจะบล็อกการวาดหน้าทั้งหน้า
   2. ไม่ส่งข้อมูลผู้ใช้ (IP · User-Agent · หน้าที่เปิด) ไปที่เซิร์ฟเวอร์ Google
   3. express.static(PUBLIC_DIR) เสิร์ฟให้อยู่แล้ว — วางไฟล์แล้วใช้ได้เลย
      ไม่ต้องมีขั้นตอน build อะไรเพิ่ม

   ══ ★★ ทำไมต้องมีสองฟอนต์ ★★ ════════════════════════════════════════

   ★ Inter ไม่มีอักษรไทยเลย ★ (ตรวจจาก subset ที่ Google Fonts มีให้จริง:
   latin · latin-ext · greek · cyrillic · vietnamese — ไม่มี thai)
   และหน้านี้เป็นภาษาไทยเกือบทั้งหมด

   ถ้าโหลดแค่ Inter → ตัวอักษรไทยจะตกไปให้ระบบปฏิบัติการเลือกเอง ซึ่งได้
   คนละแบบในแต่ละเครื่อง (วัดจากเครื่องพัฒนาแล้วได้ Tahoma) — หน้าเดียวกัน
   จะหน้าตาไม่เหมือนกันเลยระหว่างเครื่อง โดยไม่มีอะไรบอกว่าทำไม

   ── ★ ลำดับใน stack สำคัญ ★ ────────────────────────────────────────
   เบราว์เซอร์เลือกฟอนต์ ★ ทีละตัวอักษร ★ ไม่ใช่ทีละบล็อกข้อความ:
   ตัวอักษรลาตินเจอ Inter ก่อนจึงใช้ Inter · ตัวอักษรไทยไม่มีใน Inter
   จึงเดินต่อไปเจอ Noto Sans Thai

   ── ★ unicode-range คือตัวที่ทำให้ไม่เปลืองแบนด์วิดท์ ★ ───────────────
   เบราว์เซอร์ ★ ดาวน์โหลดเฉพาะไฟล์ที่มีตัวอักษรซึ่งโผล่บนหน้าจริง ★
   หน้าไทยล้วนจึงไม่โหลด latin-ext (83 KB) เลยจนกว่าจะมีชื่อหรืออีเมล
   ที่มีอักษรมีเครื่องหมายกำกับโผล่ขึ้นมา
   ══════════════════════════════════════════════════════════════════════ */

/* ── Inter — ตัวอักษรลาติน ────────────────────────────────────────────
   ★ variable font ไฟล์เดียวครอบน้ำหนัก 400–700 ★ ไม่ต้องโหลดแยกไฟล์ต่อ
   น้ำหนัก (หน้านี้ใช้ 400 · 600 · 700) */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  /* ★ swap ★ แสดงข้อความด้วยฟอนต์สำรองทันที แล้วสลับเมื่อฟอนต์จริงมาถึง
     — ดีกว่าปล่อยให้หน้าว่างเปล่ารอ ซึ่งคนหน้างานจะอ่านว่า "เว็บค้าง" */
  font-display: swap;
  src: url('/fonts/inter-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: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/inter-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;
}

/* ── Noto Sans Thai — ตัวอักษรไทย ─────────────────────────────────────
   เอาเฉพาะ subset ไทย ★ ไม่เอา latin ของมัน ★ เพราะ Inter มาก่อนใน stack
   อยู่แล้ว — โหลดมาก็ไม่มีวันถูกใช้ */
@font-face {
  font-family: 'Noto Sans Thai';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/noto-sans-thai-thai.woff2') format('woff2');
  unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
}

:root {
  --font-sans: 'Inter', 'Noto Sans Thai', -apple-system, BlinkMacSystemFont,
    'Helvetica Neue', Arial, sans-serif;

  /* ── ★ ฟอนต์ความกว้างเท่ากันทุกตัว — ไม่เปลี่ยนตาม --font-sans ★ ──
     ใช้กับเลขทะเบียนและตัวเลือกรองของ ALPR: การไล่สายตาเทียบตัวอักษรที่
     ต่างกันเพียงตัวเดียว (เช่น ด กับ ต) ทำได้ง่ายกว่ามากเมื่อตัวอักษร
     เรียงตรงกันเป็นคอลัมน์

     ⚠️ ข้อจำกัดที่มีมาตั้งแต่ต้นและไม่ได้เกิดจากการเปลี่ยนฟอนต์ครั้งนี้:
     ฟอนต์ monospace พวกนี้ไม่มี glyph ไทย ★ ส่วนที่เป็นอักษรไทยของทะเบียน
     จึงไม่เคยถูกวาดด้วย monospace อยู่แล้ว ★ (ตกไปที่ฟอนต์ไทยตามลำดับ) */
  --font-mono: ui-monospace, 'Cascadia Mono', Consolas, monospace;
}
