/* ══════════════════════════════════════════════════════════════════════
   خط ثمانية  —  معتمَدٌ تجارياً بقرار سعود (١٦ سبتمبر ٢٠٢٦)
   ══════════════════════════════════════════════════════════════════════
   🔴 **ولا ينكسر شيءٌ إن غابت ملفاته.** الرموز أدناه تسرد ثمانية
      **أولاً** و`YearCamel` بعده، فالمتصفّح يسقط على الثاني حين لا يجد
      الأول. ⇒ الموقع يعمل اليوم كما هو، ويتحوّل **بمجرّد رفع الملفات**
      بلا تعديل سطرٍ واحد.

   🔴 **أربعة ملفات لا خمسة عشر.** الحزمة ثلاث عائلاتٍ بخمسة أوزان =
      ١٥ ملفاً. وصفحة العريس تُفتح آلافاً، فتحميلُ كلّها يجعل **علاجَ
      «الفخامة» سببَ البطء**. والمختار:
        · العناوين → Serif Display وزن ٧٠٠   (الفخامة تُرى هنا)
        · النصوص  → Sans وزن ٤٠٠ و٥٠٠ و٧٠٠  (الوضوح يُحتاج هنا)

   ⚠️ **والأسماء منقولةٌ من `index.css` في مستودع الحزمة، لا من صفحة
      الوصف** — فتلك كتبت الاسم بصيغتين (`thmanyah-sans-Regular` و
      `ThmanyahSans-Regular`)، **وخطأٌ في اسم ملفٍ يسقط على الاحتياطي
      بصمت فيبدو أن الخطّ يعمل** ولا شيء تغيّر.

   ⚠️ **واستضافةٌ ذاتية لا CDN:** صفحةُ العريس يفتحها عملاء، وCDN خارجيّ
      **نقطةُ فشلٍ خارجية** عليها. والمشروع يستضيف `YearCamel` محلياً
      أصلاً، فلا سبب لاختلاف.

   🔴 **ومصيدة النشر:** الملفات تدخل **المستودع** ولا تُرفع على الخادم
      يدوياً. فملفٌّ موجودٌ على الخادم غير متتبَّع ثم يُضاف إلى git
      بالمسار نفسه **يُجهض `git pull` إلى الأبد**.

   ⚠️ **ومسألتان تُقاسان عند وصول الملفات ولا تُفترضان:**
      ١. **رمز الريال الجديد** — توثيق ثمانية يقول «استعمل ر.س»، وجذلة
         منصّةٌ ماليةٌ فيها كشوفٌ وفواتير.
      ٢. **`tabular-nums`** — إن لم يدعمه، تبقى الأرقام على
         `--font-num` وحده (ولهذا هو رمزٌ ثالثٌ منفصل).
   ══════════════════════════════════════════════════════════════════════ */

/* 🔴 و`700 900` **مدىً لا قيمة** — والفرق مقيسٌ لا تجميليّ.
   ١٢ موضعاً في `console.css` و`guest-comments.css` تكتب `font-weight:800`.
   فبـ`700` وحدها **لا يجد المتصفّح وجهاً لذلك الوزن فيُصنّعه اصطناعياً**
   (faux bold: يُثخّن الحدود برمجياً) — وهو أردأ من العريض الحقيقي،
   وأوضحُ ما يكون في العربية حيث تلتحم الحروف.
   ⇒ المدى يجعل ٧٠٠ و٨٠٠ و٩٠٠ تُرسَم بالملفّ نفسه، **بلا ملفٍّ خامس**. */
@font-face{font-family:'Thmanyah Serif Display';font-weight:700 900;font-display:swap;
  src:url('/assets/fonts/thmanyah/thmanyah-serif-display-Bold.woff2') format('woff2')}
@font-face{font-family:'Thmanyah Sans';font-weight:400;font-display:swap;
  src:url('/assets/fonts/thmanyah/thmanyah-sans-Regular.woff2') format('woff2')}
@font-face{font-family:'Thmanyah Sans';font-weight:500;font-display:swap;
  src:url('/assets/fonts/thmanyah/thmanyah-sans-Medium.woff2') format('woff2')}
@font-face{font-family:'Thmanyah Sans';font-weight:700 900;font-display:swap;
  src:url('/assets/fonts/thmanyah/thmanyah-sans-Bold.woff2') format('woff2')}

/* ═════ YearCamel — الاحتياطيّ الأول في الرموز الثلاثة، **ومصدرُ الأرقام** ═════
   🔴 **ولماذا هنا لا في كل صفحة:** الرموز أعلاه تسرد `'YearCamel'` بعد
      ثمانية، و`--font-num` تسرده **أولاً** لأنه الوحيد الذي فيه ميزة
      `tnum` (ثمانية بلا `tnum` — مقيسٌ بـfontTools لا بالنظر).
      🔑 **واسمُ عائلةٍ في سلسلةٍ بلا `@font-face` في أي مكانٍ يُتخطّى
      بصمت** — لا خطأ ولا رسالة. فأربعةُ ملفاتٍ تحمّل هذه الورقة ولا
      تعرّف YearCamel بنفسها كانت أرقامُها تسقط إلى Tajawal أو النظام،
      ومنها `book.php` (شريط الإجمالي) و`admin/tools/archive_thumbs.php`
      — أي **`font-variant-numeric:tabular-nums` مكتوبةٌ ولا تفعل شيئاً،
      فتتراقص الأرقام أمام من يحجز**. (محقَّقٌ بجردٍ على ٤٤ مستدعياً.)
   ⚠️ **وتعريفٌ مكرّر لا يضرّ:** تسعة عشر ملفاً تعرّفه لنفسها وتبقى كما
      هي — نفس الاسم ونفس المصدر، فالنتيجة واحدة. ولم تُحذف منها لأن
      بعضها **لا يحمّل هذه الورقة أصلاً** (`admin/index.php` مثلاً)،
      وحذفُها منه يُطفئ خطّه.
   ⚠️ **ولا ملفّ يُحمَّل بلا استعمال:** المتصفّح يجلب الوجه عند أول
      استخدامٍ فعليّ، فصفحةٌ لا تستعمل YearCamel لا تدفع بايتاً. */
@font-face{font-family:'YearCamel';font-weight:100 300;font-display:swap;
  src:url('/assets/fonts/YearCamel-Light.woff2') format('woff2')}
@font-face{font-family:'YearCamel';font-weight:400 600;font-display:swap;
  src:url('/assets/fonts/YearCamel-Regular.woff2') format('woff2')}
@font-face{font-family:'YearCamel';font-weight:700 900;font-display:swap;
  src:url('/assets/fonts/YearCamel-Bold.woff2') format('woff2')}


/* ════════════════════════════════════════════════════════════════════════
   جذلة — رموز التصميم  ·  المصدر الواحد
   ════════════════════════════════════════════════════════════════════════
   🔑 **لماذا وُجد هذا الملف — بالأرقام لا بالظنّ:**

   كان `portal.css` و`console.css` يعرّفان **ستّة رموز بالأسماء نفسها
   وبقيمٍ مختلفة**:

       --bg    #08080b  ↔  #0b0b0e
       --line  #2a2a34  ↔  #2d2d36
       --txt   #f4f4f6  ↔  #f3f3f5
       --r     14px     ↔  16px

   ✅ ولا صفحة تحمّل الاثنين اليوم، فلا تصادم بعد.
   🔴 **والفروق صغيرة إلى حدّ أن لا أحد يلاحظها — وهذا أسوأ لا أفضل.**
      انحرافٌ غير مرئيّ لا يُصحَّح، بل يتّسع. ويوم تُحمَّل الورقتان في
      صفحةٍ واحدة **يفوز آخرهما بصمت**.

   ⇒ فالرموز هنا وحدها. والورقتان تستهلكانها ولا تعرّفانها.

   ── ترتيب التحميل إلزاميّ ──────────────────────────────────────────────
       <link rel="stylesheet" href="/assets/css/tokens.css?v=3">
       <link rel="stylesheet" href="/assets/css/portal.css?v=5">    ← أو console.css

   ⚠️ **والرقم أعلاه مثالٌ يرثّ** — الحيّ يُقرأ ولا يُحفظ، وقيمةٌ واحدة
      لا غير عبر المستدعين كلّهم:
          git grep -ho "tokens.css?v=[0-9.]*" -- '*.php' '*.css' | sort | uniq -c

   ⚠️ **و`tokens` أولاً دائماً.** فالخصوصية متساوية، ومن يأتي أخيراً يفوز —
      فلو حُمّل بعدهما لَأعاد كتابة ما خصّصاه عمداً.

   ⚠️ **ولا `@import` من داخل CSS:** يُنشئ طلباً **متسلسلاً حاجباً** —
      المتصفّح لا يعرف بوجوده حتى يُنزّل الملف الأول ويحلّله. ووسمان
      متجاوران يُنزَّلان **معاً**.

   🔑 **وحارسٌ بصريّ في الورقتين:** `var(--bg, #08080b)` على `body` —
      فلو تعذّر تحميل هذا الملف تبقى الصفحة **مقروءة** بدل نصٍّ فاتحٍ
      على أبيض. والاحتياطي في موضعين اثنين لا في خمسين.
   ════════════════════════════════════════════════════════════════════════ */

:root{

  /* ═══ ١) الخطوط — رموزٌ لا أسماء ═════════════════════════════════════
     🔑 **ولهذا وُجدت:** الخطّ قرارُ هويةٍ قد يتغيّر. فاسمٌ مكتوبٌ في
        خمسة عشر موضعاً يعني خمسة عشر تعديلاً وموضعاً منسيّاً، ورمزٌ
        واحد يعني سطراً.
     ⚠️ وثلاثة أدوارٍ لا خطٌّ واحد: العناوين تُرى، والنصوص تُقرأ،
        والأرقام تُقارَن — ولكلٍّ ما يناسبه.                             */
  --font-display: 'Thmanyah Serif Display', 'YearCamel', 'Tajawal', -apple-system, 'Segoe UI', Tahoma, sans-serif;
  --font-body:    'Thmanyah Sans', 'YearCamel', 'Tajawal', -apple-system, 'Segoe UI', Tahoma, sans-serif;
  /* 🔑 والأرقام رمزٌ ثالثٌ منفصل عمداً: إن تبيّن أن ثمانية لا يدعم
     `tabular-nums` أو رمز الريال، تُرَدّ الأرقام وحدها إلى خطٍّ يدعمهما
     **بلا أن تُمسّ العناوين ولا النصوص**.

     🔴 **وقد تبيّن — قياساً لا ظنّاً (١٧ سبتمبر ٢٠٢٦).** فُحصت ملفّات
        ثمانية الخمسة وملفّات YearCamel الثلاثة بـ`fontTools`:

          خط ثمانية Sans : tnum ❌ غائبة في الخمسة كلِّها
                           وعرضُ الأرقام لاتينياً ٣٧٨–٦٦٠ من ١٠٠٠ (١٫٧٥×)
                           وعربياً ١٩٢–٦٥١ (٣٫٤×)
                           ورمزُ الريال الجديد U+20C0 ❌ غائب
          YearCamel      : tnum ✅ موجودة في الثلاثة

        و`.u-kpi b` يُصرّح `font-variant-numeric: tabular-nums` أصلاً —
        **لكنّ التصريحَ لاغٍ على خطٍّ بلا `tnum`**. أي أنّ وصولَ ثمانية
        **عطّل الضمانةَ الوحيدة التي بناها نظامُ التصميم، بصمت**:
        البطاقةُ تبدو سليمة، والأرقامُ تتراقص عند كلّ تحديث.

     🔑 فخرج ثمانية من الأرقام وحدها، ودخل YearCamel أوّلاً — **فعاد
        `tabular-nums` يعمل بلا تعديل سطرٍ في المستهلك**. وهذا بعينه
        سببُ وجود هذا الرمز الثالث.

     ⚠️ و`--fw-black` (٩٠٠) لا وزنَ له في YearCamel (٣٠٠·٤٠٠·٧٠٠)
        فيُصطنَع أو يقع على ٧٠٠ — والأرقامُ المصطفّة أهمُّ من ثقلٍ
        زائدٍ فيها. */
  --font-num:     'YearCamel', 'Tajawal', -apple-system, 'Segoe UI', Tahoma, sans-serif;

  /* ═══ ٢) الأسطح — خمس طبقاتٍ لا لونان ════════════════════════════════
     العمق يُبنى بالتدرّج لا بالحدود وحدها.                              */
  --bg:#08080b;
  --surface:#131318;
  --surface-2:#1a1a21;
  --surface-3:#24242c;
  --surface-4:#2e2e38;
  --line:#2a2a34;
  --line-soft:#ffffff0f;

  /* ═══ ٣) الهوية ══════════════════════════════════════════════════════ */
  --gold:#D4AF37;
  --gold-bright:#EACB66;
  --gold-dim:#8f7622;
  --gold-deep:#b8941e;
  /* ⚠️ مرادفٌ مقصود — لا تكرارٌ سهو. `CLAUDE.md` يسمّي هذا اللون
     `--gold-dark` في قسم الهوية البصرية، ونظام البوابات يسمّيه
     `--gold-deep`. و`partner/cashier.php` كتب الأول فعلاً.
     🔑 وأُمسك باحتياطيّه المكتوب (`var(--gold-dark,#B8941E)`) فلم يقع
        عطل — وهذا **حظٌّ لا تصميم**: نفس الموضع بلا احتياطي يُسقط
        الخاصية بصمت (سابقة `--gold-light` في `portal.css`).
     ⇒ فالاسمان يعيشان هنا، ومن كتب أيّهما أصاب. */
  --gold-dark:#b8941e;

  /* ═══ ٤) النصّ — ثلاث درجات ══════════════════════════════════════════ */
  --txt:#f4f4f6;
  --txt-2:#adafb8;
  --txt-3:#71717c;

  /* ═══ ٥) الحالات — ولكلٍّ ثلاثة: اللون · الخلفية · النصّ عليها ════════
     🔴 **وهذا ما كان ناقصاً:** الألوان النصّية كانت مكتوبةً حرفياً
        (`#6fe0a7` · `#ff8f93` · `#f9a45f`) في كل موضعٍ يحتاجها — فلا
        أحد يعرف أنها جزءٌ من نظام، فتُخترع رابعةٌ في أول مكوّنٍ جديد. */
  --ok:#34c77b;    --ok-bg:rgba(52,199,123,.12);   --ok-fg:#6fe0a7;
  --warn:#f97316;  --warn-bg:rgba(249,115,22,.12); --warn-fg:#f9a45f;
  --bad:#f2555a;   --bad-bg:rgba(242,85,90,.12);   --bad-fg:#ff8f93;
  --info:#D4AF37;  --info-bg:rgba(212,175,55,.10); --info-fg:#EACB66;

  /* لونان تستعملهما لوحة الإدارة وحدها — للتصنيف لا للحالة. */
  --blue:#4f9df0; --violet:#8b5cf6;

  /* أسماء قديمة — تبقى لئلّا تنكسر ورقةٌ قائمة. جمعيّ بحت. */
  --danger:#f2555a; --green:#34c77b; --orange:#f97316;

  /* ═══ ٦) المسافات — سلّم ٤ بكسل ══════════════════════════════════════
     🔑 **والإحساس بالجودة يأتي من الاتساق الرياضي قبل الألوان.**
        وكانت المسافات أرقاماً حرفيةً منثورة، فيبدو التخطيط «مجمَّعاً»
        لا «مصمَّماً» — والناظر يراه ولا يعرف لماذا.                     */
  --sp-1:4px;  --sp-2:8px;   --sp-3:12px; --sp-4:16px;
  --sp-5:20px; --sp-6:24px;  --sp-8:32px; --sp-10:40px;
  --sp-12:48px; --sp-16:64px;

  /* ═══ ٧) الخطوط: السلّم ══════════════════════════════════════════════
     🔴 **كان اثنا عشر حجماً بلا سلّم:** 11.5 · 12 · 12.5 · 13 · 13.5 ·
        14 · 15 · 15.5 · 16 · 19 · 21 · 26. وفرقُ نصف بكسلٍ لا يراه أحد،
        **لكنّ غياب النظام يُرى**.
     ⚠️ والقيم أدناه اختيرت **أقرب ما يكون إلى القائم** فلا تقفز صفحةٌ
        حيّة: أكبر انحرافٍ نصفُ بكسل في الأصغر، وثلاثةٌ في العناوين.     */
  --fs-xs:12px;   --fs-sm:13px;  --fs-md:14px;   --fs-base:15px;
  --fs-lg:17px;   --fs-xl:20px;  --fs-2xl:24px;  --fs-3xl:30px;

  /* 🔴 **ولا يتبع السلّم — وهذا مقصود.**
     سفاري على iOS **يُكبّر الصفحة تلقائياً** عند التركيز على حقلٍ
     أصغر من ١٦ بكسل، فيقفز التخطيط ويفقد العريس مكانه. وهو أشهر عيبٍ
     في نماذج الجوال، وعلاجه هذا الرقم بعينه — فلا يُقرَّب ولا يُنقَص
     ولو خالف سلّم الأحجام. */
  --fs-input:16px;

  /* ═══ ٨) الأوزان ═════════════════════════════════════════════════════
     ⚠️ ومحدودةٌ بما يحمله الخطّ فعلاً: `YearCamel` ثلاثة ملفات تغطّي
        100–300 و400–600 و700–900. فوزنٌ خارجها يُحاكيه المتصفّح
        بتغليظٍ صناعيّ — ويبدو رديئاً في العربية خاصّة.                  */
  /* ⚠️ **٥٠٠ لا ٦٠٠** — وهو تصحيحٌ لا تفضيل: ثمانية يوفّر ٣٠٠ و٤٠٠
     و٥٠٠ و٧٠٠ و٩٠٠، **ولا وزن ٦٠٠**. فطلبُه يجعل المتصفّح يُغلّظ
     الأربعمئة صناعياً — ويبدو رديئاً في العربية خاصّة.
     و`YearCamel` يغطّي ٤٠٠–٦٠٠ بملفٍ واحد فـ٥٠٠ تعمل عليه كما كانت. */
  --fw-light:300; --fw-normal:400; --fw-medium:500;
  --fw-bold:700;  --fw-black:900;

  /* ═══ ٩) ارتفاع السطر ════════════════════════════════════════════════
     ⚠️ والعربية تحتاج فسحةً أكثر من اللاتينية — للتشكيل والنقاط
        والحروف النازلة. فالأساس ١٫٧٥ لا ١٫٥.                            */
  --lh-tight:1.35; --lh-snug:1.55; --lh-base:1.75; --lh-loose:1.9;

  /* ═══ ١٠) الحواف ═════════════════════════════════════════════════════ */
  --r-xs:6px; --r-sm:10px; --r:14px; --r-lg:20px; --r-xl:26px; --r-full:999px;

  /* ═══ ١١) الظلّ — ولا ظلّ أسود صريح، بل ممتزجٌ بالخلفية ═══════════════ */
  --sh-1:0 1px 2px rgba(0,0,0,.5);
  --sh-2:0 4px 16px -4px rgba(0,0,0,.55);
  --sh-3:0 12px 40px -12px rgba(0,0,0,.7);
  --glow:0 0 24px -6px rgba(212,175,55,.45);

  /* ═══ ١٢) الحركة — منحنىً واحدٌ للكلّ ════════════════════════════════
     🔑 والاتساق يُشعر بالجودة أكثر من السرعة.                           */
  --ease:cubic-bezier(.22,.61,.36,1);
  --t-fast:.16s; --t-base:.22s; --t-slow:.36s;

  /* ═══ ١٣) العروض ═════════════════════════════════════════════════════
     🔴 **كان عرضان اثنان:** ٤٦٠ و٩٠٠. والأول يناسب شاشة دخول
        **ويضيق بكشف مستحقاتٍ أو معرضٍ أو خريطةٍ مرحلية**.               */
  --w-narrow:460px;  --w-base:720px;  --w-wide:1040px;

  /* ═══ ١٤) الطبقات — مسمّاةٌ لا مرقّمةٌ ارتجالاً ═══════════════════════
     ⚠️ و`z-index:9999` المنثورة هي ما يجعل نافذةً تختفي خلف شريطٍ
        لاصقٍ بلا أن يعرف أحدٌ لماذا.                                    */
  --z-base:1; --z-sticky:50; --z-nav:100;
  --z-overlay:500; --z-modal:600; --z-toast:700;
}
