/**
 * سیستم پایه UI/UX سراسری افزونه Davari CRM.
 *
 * این فایل استانداردهای تایپوگرافی، اندازه حداقل لمس (Touch Target) و
 * جهت‌دهی RTL مشترک بین تمام ماژول‌ها (identity-gateway، coaching-booking،
 * business-tests، mbti، vcard) را — هم در فرانت‌اند و هم در پیشخوان مدیریت —
 * به‌صورت متغیرهای CSS (Custom Properties) و چند قاعده پایه تعریف می‌کند.
 * فایل‌های CSS اختصاصی هر ماژول این متغیرها را برای مقداردهی اندازه‌ها
 * استفاده می‌کنند تا از تعریف مقادیر تکراری/ناهماهنگ جلوگیری شود.
 *
 * @package DavariCRM
 */

:root {
	/* --- تایپوگرافی: تیترهای اصلی --- */
	--davari-h1-desktop: 24px;
	--davari-h1-mobile: 20px;
	--davari-h1-weight: 700;

	/* --- تایپوگرافی: زیرتیترها --- */
	--davari-h2-desktop: 16px;
	--davari-h2-mobile: 15px;

	/* --- تایپوگرافی: متن بدنه --- */
	--davari-body-font: 15px;
	--davari-body-line-height: 1.75;

	/* --- تایپوگرافی: لیبل/کپشن --- */
	--davari-caption-font: 13px;

	/* --- استانداردهای لمسی موبایل --- */
	--davari-touch-min-height: 50px;
	--davari-touch-padding-y: 12px;
	--davari-touch-padding-x: 16px;

	/* --- شعاع گردی و سایه استاندارد --- */
	--davari-radius: 12px;
	--davari-radius-sm: 8px;
	--davari-shadow-soft: 0 10px 25px rgba(15, 23, 42, 0.06);
}

/* کلاس محدوده (Scope) عمومی: هر بخش از افزونه که این کلاس را روی ریشه خود
   داشته باشد، به‌صورت خودکار تایپوگرافی/جهت استاندارد را دریافت می‌کند. */
.davari-crm-scope {
	direction: rtl;
	text-align: right;
	font-size: var( --davari-body-font );
	line-height: var( --davari-body-line-height );
}

.davari-crm-scope h1,
.davari-crm-scope h2.davari-crm-heading,
.davari-crm-scope .davari-crm-h1 {
	font-size: var( --davari-h1-desktop );
	font-weight: var( --davari-h1-weight );
	line-height: 1.4;
}

.davari-crm-scope h2,
.davari-crm-scope h3,
.davari-crm-scope .davari-crm-h2 {
	font-size: var( --davari-h2-desktop );
	font-weight: 700;
	line-height: 1.5;
}

.davari-crm-scope small,
.davari-crm-scope .davari-crm-caption {
	font-size: var( --davari-caption-font );
}

.davari-crm-scope button,
.davari-crm-scope input[type="text"],
.davari-crm-scope input[type="tel"],
.davari-crm-scope input[type="number"],
.davari-crm-scope input[type="url"],
.davari-crm-scope input[type="email"],
.davari-crm-scope select,
.davari-crm-scope .davari-crm-touch-target {
	min-height: var( --davari-touch-min-height );
	padding: var( --davari-touch-padding-y ) var( --davari-touch-padding-x );
	box-sizing: border-box;
}

/* آیکون‌های داخل متن راست‌چین باید هم‌جهت با متن بچرخند/جابه‌جا شوند */
.davari-crm-scope [dir="rtl"] .icon-flip,
.davari-crm-scope .icon-flip {
	transform: scaleX( -1 );
}

@media ( max-width: 768px ) {
	.davari-crm-scope h1,
	.davari-crm-scope h2.davari-crm-heading,
	.davari-crm-scope .davari-crm-h1 {
		font-size: var( --davari-h1-mobile );
	}

	.davari-crm-scope h2,
	.davari-crm-scope h3,
	.davari-crm-scope .davari-crm-h2 {
		font-size: var( --davari-h2-mobile );
	}

	.davari-crm-scope button,
	.davari-crm-scope input[type="text"],
	.davari-crm-scope input[type="tel"],
	.davari-crm-scope input[type="number"],
	.davari-crm-scope input[type="url"],
	.davari-crm-scope input[type="email"],
	.davari-crm-scope select,
	.davari-crm-scope .davari-crm-touch-target {
		min-height: 48px;
	}
}

/* حالت لودینگ عمومی برای دکمه‌ها/باکس‌های در انتظار پاسخ AJAX در کل افزونه */
.davari-crm-loading {
	position: relative;
	pointer-events: none;
	opacity: 0.65;
}

.davari-crm-loading::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 14px;
	width: 16px;
	height: 16px;
	margin-top: -8px;
	border: 2px solid rgba(255, 255, 255, 0.5);
	border-top-color: #fff;
	border-radius: 50%;
	animation: davari-crm-spin 0.7s linear infinite;
}

.davari-crm-loading.is-light::after {
	border-color: rgba(15, 23, 42, 0.15);
	border-top-color: #0f172a;
}

@keyframes davari-crm-spin {
	to {
		transform: rotate( 360deg );
	}
}
