/*
 * static/css/fonts.css — تایپوگرافی یکپارچه‌ی سامانه
 *
 * متن (فارسی و انگلیسی)  → Estedad   (static/fonts/estedad)
 * سریال‌ها و کدها         → IBM Plex Mono  (کلاس font-mono، static/fonts/plex)
 *
 * چرا Estedad؟ کاربر ظاهر ERP «همکاران سیستم» را پسندید. فونت آن‌ها
 * (SG Fanoos، طراح: رضا بختیاری‌فرد) انحصاری همکاران سیستم است و مجوز
 * استفاده ندارد؛ Estedad نزدیک‌ترین فونت آزاد به همان سبک (هندسی، گرد،
 * خانواده‌ی یکان) است. مجوز: SIL Open Font License — رایگان و قابل انتشار.
 *
 * Estedad در اندازه‌ی یکسان حدود ۱۲٪ کوچک‌تر از SG Fanoos دیده می‌شود؛
 * size-adjust آن را هم‌اندازه‌ی ظاهر همکاران می‌کند (۱۱۰٪ تا چیدمان صفحه‌ها
 * به‌هم نریزد).
 *
 * با هر تغییر این فایل، عدد ?v= لینک آن را در قالب‌ها بالا ببرید (کش مرورگر).
 */

/* Estedad — فونت متغیر: همه‌ی وزن‌ها (۱۰۰ تا ۹۰۰) و حروف فارسی + لاتین در یک فایل */
@font-face {
  font-family: 'Estedad';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/estedad/Estedad-VF.woff2') format('woff2');
  size-adjust: 110%;
}

/* ErpDigits — نمایش ارقام به فارسی (۰-۹) بدون تغییر داده.
   فونت ۴ کیلوبایتیِ ساخته‌شده از خود Estedad که فقط ۱۰ رقم دارد و کدهای
   رقم لاتین (0-9) را با شکل ارقام فارسی می‌کشد. چون فقط «نمایش» عوض
   می‌شود، مقدار واقعی در دیتابیس، فرم‌ها، جستجو و محاسبات همان لاتین
   می‌ماند و هیچ کدی خراب نمی‌شود. (مشتق از Estedad تحت OFL 1.1 با نام جدید.)
   ساخت دوباره: python tools/build_digits.py (fontTools subset + نگاشت cmap). */
@font-face {
  font-family: 'ErpDigits';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/estedad/ErpDigits-VF.woff2') format('woff2');
  unicode-range: U+0030-0039;
  size-adjust: 110%;
}

/* IBM Plex Mono 400 — latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/plex/PlexMono-400-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;
}

/* IBM Plex Mono 400 — latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/plex/PlexMono-400-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;
}

/* IBM Plex Mono 500 — latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/plex/PlexMono-500-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;
}

/* IBM Plex Mono 500 — latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/plex/PlexMono-500-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;
}

/* IBM Plex Mono 600 — latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/plex/PlexMono-600-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;
}

/* IBM Plex Mono 600 — latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/plex/PlexMono-600-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;
}

/* ── اعمال سراسری ─────────────────────────────────────────────────── */
:root {
  --font-ui:     'ErpDigits', 'Estedad', Tahoma, sans-serif;   /* ارقام فارسی */
  --font-latin:  'Estedad', Tahoma, sans-serif;                /* ارقام لاتین */
  --font-code:   'IBM Plex Mono', 'Estedad', Consolas, monospace;
}
html, body,
button, input, select, textarea, optgroup, option,
.font-vazir, .font-sans {
  font-family: var(--font-ui) !important;
}
/* استثنا: کدها و محتوای چپ‌به‌راست (سریال، شماره‌ی بیجک، ایمیل، ورودی‌های
   dir="ltr") با ارقام لاتین می‌مانند — همان‌طور که روی برچسب دستگاه چاپ
   شده و مشتری/تعمیرکار همان را می‌خواند و تایپ می‌کند. */
[dir="ltr"], [dir="ltr"] *,
input[type="email"], input[type="url"],
.latin-digits, .latin-digits * {
  font-family: var(--font-latin) !important;
}
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
/* سریال‌ها، کدها و شماره‌ها (ارقام لاتین؛ بعد از قاعده‌ی dir=ltr تا برنده باشد) */
.font-mono, code, kbd, samp, pre,
[dir="ltr"].font-mono, [dir="ltr"] .font-mono {
  font-family: var(--font-code) !important;
  letter-spacing: 0;
}
/* ارقام هم‌عرض (tabular) در Estedad خیلی پهن‌اند و تاریخ‌ها را از هم باز
   می‌کنند (1405 / 07 / 07)؛ پس فقط در فونت سریال‌ها (که ذاتاً هم‌عرض است). */
.tnum, table { font-variant-numeric: normal; }
.font-mono { font-variant-numeric: tabular-nums; }
