/*
 * Salonto typeface — Yekan Bakh FaNum, shipped inside the plugin.
 *
 * تا پیش از این، افزونه هیچ فونتی نداشت: هر ۲۴۱ اعلانِ font-family یا
 * `inherit` بود یا مستقیم از متغیرِ المنتور می‌خواند. یعنی قلمِ برنامه را
 * قالب تعیین می‌کرد و با هر تغییرِ قالب، ظاهرِ کلِ برنامه عوض می‌شد.
 *
 * حالا فایل‌ها داخل بسته‌اند و نشانی‌ها نسبی است، پس نه به قالب وابسته‌ایم
 * نه به CDN. `font-display: swap` تا متن پیش از رسیدنِ فونت هم خوانا باشد.
 *
 * وزن‌های موجودِ این قلم: 100 · 300 · 400 · 600 · 700 · 800 · 900 · 950
 * ⚠ وزنِ 500 (Medium) در این خانواده وجود ندارد. برای همین در
 *   salonto-scale-v1.css توکنِ medium به 600 نگاشته شده — وگرنه مرورگر
 *   ۵۰۰ را به ۴۰۰ فرومی‌کاهد و آن پله بی‌اثر می‌شود.
 */

@font-face {
	font-family: "Yekan Bakh FaNum";
	font-style: normal;
	font-weight: 100;
	font-display: swap;
	src: url("../fonts/yekanbakh-fanum/YekanBakhFaNum-Thin.woff2") format("woff2");
}

@font-face {
	font-family: "Yekan Bakh FaNum";
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url("../fonts/yekanbakh-fanum/YekanBakhFaNum-Light.woff2") format("woff2");
}

@font-face {
	font-family: "Yekan Bakh FaNum";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/yekanbakh-fanum/YekanBakhFaNum-Regular.woff2") format("woff2");
}

@font-face {
	font-family: "Yekan Bakh FaNum";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../fonts/yekanbakh-fanum/YekanBakhFaNum-SemiBold.woff2") format("woff2");
}

@font-face {
	font-family: "Yekan Bakh FaNum";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/yekanbakh-fanum/YekanBakhFaNum-Bold.woff2") format("woff2");
}

@font-face {
	font-family: "Yekan Bakh FaNum";
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url("../fonts/yekanbakh-fanum/YekanBakhFaNum-ExtraBold.woff2") format("woff2");
}

@font-face {
	font-family: "Yekan Bakh FaNum";
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url("../fonts/yekanbakh-fanum/YekanBakhFaNum-Black.woff2") format("woff2");
}

/*
 * پشتوانه‌ها عمداً فقط فونت‌های سیستمی‌اند — نه نامِ فونتی که قالب یا
 * المنتور ثبت کرده باشد. اگر یکان‌بخ نرسد، برنامه به قلمِ سیستمِ کاربر
 * می‌افتد، نه به انتخابِ قالب.
 */
:root {
	--salonto-font-stack:
		"Yekan Bakh FaNum",
		"Segoe UI",
		system-ui,
		-apple-system,
		"Noto Sans Arabic",
		sans-serif;
}

/* --------------------------------------------------------------------------
 * مالکیتِ قلم — هیچ چیز از قالب گرفته نمی‌شود
 * --------------------------------------------------------------------------
 *
 * پیش از این، سه ریشه‌ی واقعیِ برنامه (app-shell، share-sheet،
 * support-drawer) هیچ اعلانِ font-family نداشتند و از body ارث می‌بردند —
 * یعنی از Astra. اندازه‌گیری نشان داد قلمشان `-apple-system` است.
 *
 * گزینشگرِ زیر عمداً فهرست‌محور نیست: هر عنصری که کلاسش با `salonto-`
 * شروع شود قلمِ بسته را می‌گیرد. مؤلفه‌ی تازه هم خودبه‌خود پوشش داده
 * می‌شود و این قاعده کهنه نمی‌شود.
 *
 * ⚠ `body` عمداً بیرون است. body کلاسِ حالتِ `salonto-onboarding-enabled`
 * را دارد و اگر شاملش می‌شد، قلمِ محتوای قالب و المنتور را در همان صفحه
 * عوض می‌کردیم — دقیقاً کاری که نباید بکنیم.
 */
:where(body) [class^="salonto-"],
:where(body) [class*=" salonto-"] {
	font-family: var(--salonto-font-stack);
}

/*
 * اندازه‌ی پایه روی ریشه‌ها.
 *
 * ۸ ریشه از ۹ ریشه روی ۱۶px بودند — نه چون کسی ۱۶ خواسته بود، بلکه چون
 * هیچ قاعده‌ای نداشتند و پیش‌فرضِ مرورگر/قالب را می‌گرفتند. هر فرزندی هم
 * که اندازه‌ی خودش را نداشت همان ۱۶ را ارث می‌برد؛ منشأ ۵۵ عنصرِ
 * «خارج از مقیاس» در هر صفحه همین بود.
 *
 * حالا ریشه اندازه‌ی متنِ خودِ برنامه را می‌گیرد. این قاعده اول از همه
 * بارگذاری می‌شود، پس هر مؤلفه‌ای که اندازه‌ی صریح دارد (مثل toast روی
 * ۱۲px) همچنان برنده است.
 */
.salonto-desktop-app-shell,
.salonto-global-search,
.salonto-notifications-drawer,
.salonto-onboarding-modal,
.salonto-qa-modal,
.salonto-saved-toast,
.salonto-share-sheet,
.salonto-success-path,
.salonto-support-drawer {
	font-size: var(--s-font-sm);
	line-height: var(--s-leading-normal, 1.7);
}
