/* ═══ الطبقةُ ①: الرموزُ والسمة ═══════════════════════════════════════════
   الخطوطُ · `:root` · قلبُ الوضع الليليّ. **مقياسُ الهويّة كلِّه هنا** — وهو ما
   ينتقل أوّلاً إلى المكتبة المشتركة (نظيرُ `ThemeData`).
   ⚗️ **وقُطع حيث القطعُ صادق**: كلُّ تعريفِ رمزٍ (`--x:`) في المستودع داخلَ هذا
   الملفّ — **صفرٌ خارجه**، قِيس. و`:root` واحدةٌ في التطبيق كلِّه.
   ⚠️ **والترتيبُ حمّالٌ**: هذا أوّلُ ما يُحمَّل، وترتيبُ الأربعة في `App.razor`
   يحرسه `StylesheetLayerTests` — فتبديلُ رابطين يقلب فائزَ التتالي بلا خطأِ بناء. */

/* =========================================================================
   MWPortal — الهوية البصرية المنقولة من نظام تصميم ZkPush (نمط Notion فاتح).
   الفلسفة: Lime ‎#D4FF3C باعتدال (≤3 مواضع بالصفحة: نقطة التنقل النشط +
   CTA واحد + بطاقة السايدبار)، باستيلات للفئات، أبيض/رمادي slate لكل ما عدا
   ذلك، حدود ناعمة لا ظلال ثقيلة. فاتح فقط حالياً — الداكن token-first لاحقاً.
   المرجع: Obsidian → Visual Identity Transfer (قرارات Q1-Q8).
   ⚠️ أسماء الأصناف/المعرّفات الحاملة لسلوك JS/Blazor لم تتغير — قيم فقط.
   ========================================================================= */

/* خط Cairo — ملفات محلية (متغير الوزن 200-1000) يعمل بدون إنترنت */
@font-face {
    font-family: "Cairo";
    font-style: normal;
    font-weight: 200 1000;
    font-display: swap;
    src: url("fonts/cairo-arabic.woff2") format("woff2");
    unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
    font-family: "Cairo";
    font-style: normal;
    font-weight: 200 1000;
    font-display: swap;
    src: url("fonts/cairo-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
}

/* خط Vazirmatn — للكردية وحدها. سببه أن Cairo يفتقد خمسة حروف كردية أساسية
   (ڕ ڵ ۆ ێ ە) فيسقط المتصفّح إليها حرفاً حرفاً من خطّ النظام، فينكسر وصل
   الحروف وتخرج الكلمة الواحدة بخطّين. محلّي لا CDN — كبقية خطوطنا يعمل بلا إنترنت. */
@font-face {
    font-family: "Vazirmatn";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("fonts/vazirmatn-arabic.woff2") format("woff2");
    unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
    font-family: "Vazirmatn";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("fonts/vazirmatn-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
}

/* ── خطّ الكردية ────────────────────────────────────────────────────────────
   يُفرض على الصفحات الكردية وحدها (html[lang="ku"]) — والعربية والإنكليزية
   تبقيان على Cairo/Inter بلا مساس.
   ⚠️ المطابقة تامّة: تسجيل الثقافة في Program.cs يجب أن يبقى `ku` محايدة؛
      أي `ku-IQ` يجعل lang="ku-IQ" فلا يُطابِق هذا المحدِّد ويفشل الخطّ صامتاً.
   والسياقات الرقمية تُستعاد إلى Inter لحفظ محاذاة الأرقام (tabular-nums)، لكن
   احتياطها هنا **Vazirmatn لا Cairo**: بعضها يخالطه نصّ (مثل .dash-row-count
   الذي يضمّ count-unit)، فلو بقي Cairo لانكسرت حروفه الكردية. */
html[lang="ku"] body,
html[lang="ku"] body * {
    font-family: "Vazirmatn", "Cairo", system-ui, "Segoe UI", sans-serif !important;
}

html[lang="ku"] .num,
html[lang="ku"] .table .num,
html[lang="ku"] .kpi-num,
html[lang="ku"] .ops-chip b,
html[lang="ku"] .recent-no,
html[lang="ku"] .attr-type,
html[lang="ku"] .dash-row-count,
html[lang="ku"] code,
html[lang="ku"] pre,
html[lang="ku"] time {
    font-family: "Inter", "Vazirmatn", sans-serif !important;
}

/* خط Inter — للأرقام والرموز اللاتينية في الجداول والإحصاءات (tabular-nums) */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/Inter-400.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/Inter-500.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/Inter-600.woff2") format("woff2"); }

:root {
    /* ---- اللكنة (باعتدال) ---- */
    --lime: #D4FF3C;
    --lime-soft: #F0FFC4;
    --lime-hover: #C0EC2A;

    /* ↺ **و‍`--zebra` عادت رمزاً حيّاً** — كانت في مقبرة الأسماء البديلة أدناه
       (`--zebra: var(--bg-hover)`) **بصفر مستهلك**: قِيس `var(--zebra)` = ٠ في كلّ
       css و razor و js. أصلُها من الإيداع الأوّل (`#f4f8f4`) ونقلُ الهويّة `3597fb0`
       نزع قاعدتَها وأبقى اسمَها. فتُعاد بلونها لا باسمها وحدَه.

       ↺ **ورُدَّت عن الليم إلى رماديّ الصفحة** (قرارُ المالك 2026-08-20): تينتٌ ليميٌّ
          على نصف صفوف كلّ جدولٍ يصادم «Lime باعتدال: ≤٣ مواضعَ بالصفحة» أعلاه؛
          والرماديُّ يترك ميزانيّةَ اللكنة كاملةً كما هي.
       ⚖️ **وهو `--bg-page` مخفَّفاً لا كاملاً — والسببُ مقيس**: `#F5F5F5` كاملاً يبعد
          عن البطاقة `0.0869` بينما المرورُ كان يبعد `0.0464` — أي **١٫٨٧× المرور**،
          فيصير المرورُ على صفٍّ زوجيٍّ **تفتيحاً** وعلى فرديٍّ إعتاماً: إشارةٌ تنقلب
          باتّجاهها. فنصفُ الخطوة (`#FAFAFA` ‏= 0.044) هو الشريط.
       🔴 **ولم يكن ذلك كافياً وحدَه**: `#FAFAFA` يبعد 0.95× ما يبعده المرورُ القديم —
          أي شريطٌ يزاحم الإشارةَ. **والعلّةُ في المرور لا في الشريط**: `#F8FAFC` سبعُ
          درجاتٍ من ٢٥٥ فوق الأبيض، همسٌ لا إشارة. فنزل المرورُ خطوةً (انظر `--bg-hover`
          أدناه) وصار الشريطُ **0.48×** منه — والإشارتان سليمتان معاً. */
    --zebra: #FAFAFA;

    /* ---- باستيلات -50 (خلفيات الرقاقات/البطاقات/البانرات) ---- */
    --peach-50: #FFF7ED;
    --blue-50: #EFF6FF;
    --purple-50: #F5F3FF;
    --teal-50: #F0FDFA;
    --amber-50: #FFFBEB;
    --yellow-50: #FEFCE8;
    --green-50: #ECFDF5;
    --red-50: #FEF2F2;

    /* ═══ سلّمُ شدّة الحركة — أربعُ درجاتٍ **كلُّها بحبرٍ داكن** ═══
       ↺ **فُتح بأمر المالك 2026-08-21**: كانت القمّةُ وحدَها **كتلةً مصمتةً داكنة**
       (`--status-green` بنصٍّ أبيض) والثلاثُ الباقياتُ نبراتٍ عند ٩٧٪ إضاءة — فالسلّمُ
       قفزةٌ لا تدرّج، والقمّةُ تصرخ. ⚠️ **ولا تُفتح القمّةُ وحدَها**: لو خفّت وبقيت
       الثلاثُ كما هنّ لانبسط السلّمُ ولم تُميَّز درجةٌ من أختها. فرُفعت الأربعُ معاً.
       🔒 **والحبرُ الداكنُ في الأربع ليس ذوقاً**: النصُّ الأبيضُ هو ما جعل الخليّةَ
       تُمحى مرّتين حين غلبت قاعدةٌ خلفيّتَها (`c1b7382`) — **ومن لا نصَّ أبيضَ له
       لا يُمحى**. فالفتحُ يغلق باباً لا يفتح آخر.
       📐 والدلالةُ محفوظة: أخضرُ حركةٌ وافرة · عنبريٌّ متوسّط · أحمرُ ركود.
       🎨 **والدرجاتُ الأربعُ ليست ألواناً جديدة — هي رموزُ التطبيق نفسُها بدرجتها
       الفاتحة** (‏تنقيحُ المالك 2026-08-21): حواشي الحالة `--edge-*` وأفتحُ نبراتها.
       ↺ **وسبقتها محاولةُ مزجٍ حسابيّةٌ فلم تُعجب**: خلطُ الأخضر الداكن بالأبيض أخرج
       **سِجّيّاً باهتاً** لا يشبه أخضرَ التطبيق — والدرسُ أنّ الفاتحَ يُؤخذ من عائلة
       اللون، **لا يُحسَب من أدكنِ أفرادها**.
       📌 **وبالإحالة لا بالنسخ**: فالوضعُ الليليُّ يأتي مجّاناً — تلك الرموزُ تُعاد
       تعريفُها هناك أصلاً، فلا كتلةَ ليليّةٍ لهذا السلّم ولا قيمةٌ تُنسى عند التحديث. */
    --heat-4: var(--edge-green);   /* مرتفع  ‏≥ ٦٠٪ */
    --heat-3: var(--green-50);     /* متوسط  ‏≥ ٣٠٪ */
    /* ⚗️ **والعنبريُّ والأحمرُ درجةً أهدأ من حاشيتيهما** (‏ملاحظةُ المالك 2026-08-21:
       «ألوانُ وسيلة الإيضاح أهدأ من التي داخل الجدول»): **وهي الألوانُ نفسُها حرفاً** —
       قِيس: المربّعُ والخليّةُ بنفس الـhex تماماً، **والفارقُ مساحةٌ لا لوناً**: الخليّةُ
       **٧٤ ضعفَ** المربّع، واللونُ الواحدُ يشتدّ كلّما اتّسعت رقعتُه.
       ✅ فخُفّف ما يتّسع: كلٌّ منهما **منتصفُ الطريق بين نبرته الفاتحة وحاشيته** —
       فيبقى من عائلة اللون نفسِها، ويهدأ في الرقعة الكبيرة. والمربّعاتُ تتبعه فلا يكذب المفتاح.
       📌 **وأمّا الأخضران فبقيا**: تخفيفُهما يقارب بينهما (‏٦٢ ⇐ ٣٠) فتُقرأ درجةٌ أختَها. */
    --heat-2: #FEF0BA;             /* منخفض  ‏≥ ١٠٪ — بين amber-50 وedge-amber */
    --heat-1: #FEDEDE;             /* ضئيل   ‏> ٠   — بين red-50 وedge-red */

    /* ---- الأسطح ---- */
    --bg-page: #F5F5F5;
    --bg-card: #FFFFFF;
    /* ↺ **ونزل خطوةً من `#F8FAFC` إلى ‎`#F1F5F9`** (2026-08-20) — قرارُ المالك حين
       دخل الشريطُ المتناوب: خطوةُ المرور كانت `0.0464` فصارت `0.0915`، فيتّسع تحتها
       شريطٌ يُرى (0.48×) بدل شريطٍ يزاحمها (0.95×). **والسببُ أنّ المرورَ كان ضعيفاً
       أصلاً** لا أنّ الشريطَ قويّ. ويسري على ٥٧ موضعاً تقرأ الرمزَ — وهو المقصود.
       ⚠️ **وصار مساوياً لـ`--bg-input` قيمةً** (slate-100): فحصتُ التصادمَ المخيف —
          «خلفيّتُه لونُ الحقل ومرورُه لونُ المرور» = **صفرُ حالة**. والثمنُ الوحيدُ
          المقيس: `.opening-row` و`.totals-row` في كارت المادّة كانتا بلونين فصارتا
          بلونٍ واحد — ويفرّقهما حدُّ الإجماليات العلويُّ (2px) وحدَه. */
    --bg-hover: #F1F5F9;
    --bg-input: #F1F5F9;

    /* ---- الحدود ---- */
    --border-subtle: #F1F5F9;
    --border-default: #E5E7EB;
    --border-hover: #CBD5E1;

    /* 🔑 **وحدُّ حقلِ الإدخال مستقلٌّ عن `--border-default`** — والفرقُ مقصود:
       معيارُ WCAG 1.4.11 يطلب ٣:١ **لحدود المكوّنات التي يُتفاعَل معها** لا لحدود
       البطاقات والفواصل. فرفعُ `--border-default` كان سيُثقل المخطَّطَ كلَّه بلا موجب.
       ⚗️ **والقيمةُ مقيسة**: `#E5E7EB` على بطاقةٍ بيضاء = **1.24** — وحشوةُ الحقل
       مطابقةٌ لحشوة البطاقة، **فالحدُّ وحدَه يقول «هنا يُكتب»** ولا شيءَ يسنده.
       و`#8794A5` = **3.08**، أي أقلُّ ارتفاعٍ يجتاز العتبة فلا يُفقَد الهدوءُ المقصود. */
    --border-input: #8794A5;

    /* ---- العناصر المقلوبة (شريحة/رقم صفحة نشط: خلفية داكنة بنص فاتح — تنقلب في الليلي) ---- */
    --inverse-bg: var(--text-primary);
    --inverse-fg: #FFFFFF;

    /* ---- تراكب فاتح فوق الأسطح الملوّنة (أيقونات البطاقات الباستيلية وما شابه) ---- */
    --overlay-light: rgba(255, 255, 255, .7);

    /* ---- لوحُ شعار الشركة (‏قرارُ المالك «ب»، 2026-10-03) ----
       🔴 **الشعارُ يُرسم كما رُفع**: خطٌّ داكنٌ بلا خلفيّةٍ على بطاقة الليل — ⚗️ الأسودُ **1.21:1** على `#171A21`
          والكحليُّ **1.03:1** — فيختفي أكثرُ الشعارات. ✅ **فيقف ليلاً على لوحٍ أبيض** كما يقف نهاراً وعلى الورق.
       📐 **ونهاراً شفّاف**: البطاقةُ بيضاءُ أصلاً. **والليليُّ داخل `@media screen` أدناه** فلا يبلغ الورق —
          والورقُ يبقى كما كان بلا قاعدة طباعة. تلبسه صورُ الشعار كلُّها، ويحرسه `LogoNightPlateTests`. */
    --logo-plate: transparent;

    /* ---- حواف الليم (شرائح/أزرار اللكنة) ---- */
    --lime-edge: #D9F99D;
    --on-lime: #0F172A;   /* نص فوق الليم — ثابت في الوضعين لأن الليم يبقى فاتحاً */

    /* ---- النص (سلّم slate) ---- */
    --text-primary: #0F172A;
    --text-secondary: #475569;
    /* ↺ ‏أُغمق درجةً 2026-10-02 (‏قرارُ المالك «أ») — وكان `#64748B`.
       🔴 ⚗️ قِيس على 27 شاشة: 572 نصّاً بهذا اللون، **و264 منها تحت 4.5:1** — 4.34 على `--bg-hover`
       (‏ترويساتُ الجداول) · 4.36 على `--bg-page` · 4.49 على بطاقة المستخدم الليميّة؛ والباقي 4.76 على الأبيض.
       ✅ `#566377`: 6.09 على الأبيض · 5.59 على الصفحة · 5.56 على الترويسة — ويبقى أفتحَ من الثانويّ (‏7.58).
       📐 لونٌ لا حجم: لا يتحرّك عنصرٌ من مكانه. والوضعُ الليليُّ لم يُمسّ (‏5.69 على البطاقة).
       🛡️ يحرسه `TextContrastTests` — يحسب التباينَ من هذه الرموز نفسِها. */
    --text-tertiary: #566377;
    --text-placeholder: #94A3B8;

    /* ---- ألوان الحالات -700 + حدودها -200 ---- */
    --status-green: #047857;
    --status-red: #B91C1C;
    --status-blue: #1D4ED8;
    --status-amber: #B45309;
    --status-yellow: #A16207;
    --status-teal: #0F766E;
    --status-purple: #7C3AED;
    /* الخوخيّ درجةٌ بين الكهرمانيّ والأحمر — **يستعمله بانرُ مهلة السماح**: انتهى
       الاشتراكُ فعلاً (أشدُّ من «يقترب») ولم يتوقّف النظامُ بعد (أهونُ من «متوقّف»). */
    --status-peach: #9A3412;
    --edge-green: #BBF7D0;
    --edge-red: #FECACA;
    --edge-blue: #BFDBFE;
    --edge-amber: #FDE68A;
    --edge-teal: #99F6E4;
    --edge-purple: #DDD6FE;
    --edge-peach: #FED7AA;

    /* ---- الزوايا ---- */
    --r-card: 16px;
    --r-card-sm: 14px;
    --r-control: 12px;
    --r-btn: 10px;
    --r-pill: 100px;

    /* 🖐️ ارتفاعُ الهدف اللمسيّ على شاشات الحساب — **استثناءٌ موثَّقٌ عن 36px** المعتمدة
       داخل التطبيق: هناك مستخدمٌ جالسٌ أمام شاشة يعمل بالفأرة، وهنا رجلٌ واقفٌ في مخزن
       بيدٍ واحدة. والفرقُ ٨ بكسل يفصل نقرةً تُصيب عن نقرةٍ تُخطئ. */
    --control-h-block: 44px;
    --r-tile: 8px;
    --control-h: 36px;   /* ارتفاع موحّد لعناصر شريط القائمة (بحث/قائمة/زر) */
    /* ⚖️ **وشريطُ الترقيم مقياسُه أصغر** — 32px لا 36px، وهو مقصود: أدواتُ تنقّلٍ ثانوية
       أسفلَ الجدول لا أوامرُ عمل. 🔴 **لكنّه كان مقياسين**: `.pg-btn` مربّعٌ 32px
       و`.pg-size select` ‏30px بجواره — قِيس على تسع شاشات. فصار المقياسُ اسماً واحداً
       يُقرأ من موضعٍ واحد بدل رقمين متجاورين يفترقان. */
    --pager-h: 32px;

    /* ---- الظلال ---- */
    --shadow-rgb: 15, 23, 42;
    --shadow-card: 0 1px 2px rgba(var(--shadow-rgb), .04);
    --shadow-lift: 0 12px 32px -8px rgba(var(--shadow-rgb), .12);

    /* ---- الخريطة الحرارية: أساس اللون = الأخضر البراند (نشاط = صحّة)، بشفافية متدرّجة ---- */
    --heat-rgb: 4, 120, 87;

    /* ---- الشريط العلوي (تصميم منقول من تطبيق الحضور — CH: topbar transfer) ---- */
    --topbar-h: 60px;
    /* حشوةُ المحتوى حول كلّ شاشة — تقرؤها `.content` في `shell.css`، **وتقرؤها القائمةُ الجانبيّة**
       لتُنزل أوّلَ مداخلها إلى سطر عنوان الشاشة (`--topbar-h` + هذه). ⚗️ قِيس 2026-09-03: العنوانُ
       يبدأ عند 92 من أعلى الشاشة. 📐 رمزٌ واحدٌ لا رقمٌ في موضعين: إن تغيّر تبعته القائمةُ ولم يفترقا.
       ويحرس القراءتَين `KpiStripFitTests` (يقرأ الرقمَ من الرمز) و`SidebarShapeTests`. */
    --content-pad: 32px;
    /* وأقصى عرضٍ للمحتوى — تقرؤه `.content-container` **ويقرؤه الشريطُ العلويُّ** فيبدأ البحثُ حيث يبدأ عنوانُ الشاشة
       (‏قرارُ المالك «ب»، 2026-10-03). ⚗️ وكان رقماً في الحاوية وحدَها، فافترق البحثُ عن المحتوى 16 بكسلاً على 1366 و177 على 1907.
       ويحرسه `KpiStripFitTests` و`TopbarAlignmentSmokeTests`.
       ↺ **وصار 1600 يومَ 2026-10-07** (‏البند 9، حرفُ المالك «أ»: «المحتوى يتّسع ليملأ الشاشة») — وكان 1280.
          🔴 ⚗️ الحاويةُ تتوسّط ما زاد عن سقفها، فعلى 1907 (‏شاشتُه) كان **201.5 بين بطاقة الشعار والبحث**، ومثلُها بين القائمة
             الجانبيّة والمحتوى تحتها، و193.5 في الطرف البعيد — وعلى 1366 الفراغُ 40. وهو ثمنُ محاذاة البحث الذي أُعلن له يومَها.
          ✅ ⚗️ وبعده على 1907: الحاويةُ 1600 (‏المتاحُ بين الحشوتَين 1603) والفراغُ 41.5 من جهة القائمة و33.5 في الطرف البعيد؛
             وعلى 1920: 48 و40. 📐 **سقفٌ لا إطلاق**: على 2560 تبقى 1600 في الوسط (‏360 من كلّ جهة) — جدولٌ بعرض 2256 لا يُقرأ.
          ⚗️ **ودون 1584 لا شيءَ تبدّل** (‏240 للقائمة + ضِعفُ الحشوة + 1280: المحتوى لم يكن يبلغ سقفَه القديم هناك): بصمةُ مواضع
             أربعٍ وعشرين شاشةً على 1366×768 وعلى 375×812 متطابقةٌ قبلاً وبعداً.
          ⚠️ **وثمنُه على الشاشة العريضة أنّ كلَّ ما يملأ حاويتَه يتّسع ربعاً** — ⚗️ على 1907: الجداولُ 1278 ⇐ 1591 (‏فجدولُ «إعادة
             الطلب» يتّسع في بطاقته بصفحاته الثماني واللغات الثلاث: أدنى عرضه 1233–1517)، وبطاقاتُ المؤشّرات الأربعُ 391 لكلٍّ،
             **والفراغُ بين نصّ القرار وعدده في لوحة المعلومات 153–342 ⇐ 345–534**. وشاشاتُ الإعدادات والحساب على سقفها 860 كما هي.
       ويحرسه `ContentWidthSmokeTests` (‏الفراغُ والسقفُ والتوسّط). */
    --content-max: 1600px;
    /* ═══ إنسِتُ بطاقات القشرة — رمزان يخدمان العمودَ الجانبيَّ والشريطَ العلويَّ معاً ══════════
       ↺ **كانا `--sidebar-*` حتى 2026-09-06**، فلمّا صار الشريطُ العلويُّ بطاقتَين على الطراز نفسِه
       (قرارُ المالك «أ») **صار الاسمُ يكذب**: رمزٌ يخدم القشرةَ كلَّها باسم أحد نصفيها. وهو الفخُّ
       المسجَّلُ في الورقة («بادئةُ الاسم شهادةُ زور») — فرُدَّ الاسمُ إلى ما يصفه.

       · **الأوّل: ما بين البطاقة وحافّة ما يحويها** — تقرؤه بطاقاتُ العمود الثلاث (`.sidebar-brand` ·
         `.nav-list` · `.sidebar-account`) وبطاقتا الشريط (`.searchbox` · `.topbar-actions`).
         ⚗️ قِيس 2026-09-04: كانت القائمةُ 8 والكتلةُ 12 فخرجت المداخلُ 223 والصفّان 215 — فوُحّدا.
       · **والثاني: ما بداخل البطاقة** بين حافّتها وصفوفها. ⚗️ قِيس 2026-09-06: بها يضيق صفُّ
         القائمة 223 ⇐ 206 (‏حشوةٌ 8 وحدُّ بطاقةٍ 1 من كلّ جانب).
       📐 **ورمزان لا رمزٌ واحد**: يتساويان اليومَ ولا يلزم أن يتساويا غداً، ومن وحّدهما حبس أحدَهما
          بالآخر. ويحرسهما `SidebarShapeTests` و`ShellCardsTests`. */
    --shell-inset: 8px;
    --shell-card-pad: 8px;

    /* ---- أسماء قديمة = أسماء بديلة (توافق خلفي للأنماط المضمّنة في razor) ---- */
    --bg: var(--bg-page);
    --surface: var(--bg-card);
    --border: var(--border-default);
    --text: var(--text-primary);
    --text-2: var(--text-secondary);
    --danger: var(--status-red);
    --success: var(--status-green);
    --primary: var(--status-green);       /* الأخضر ‎#047857 نفسه — بقي للنجاح/الفعّال */
    --primary-dark: #065F46;
    --primary-vivid: #059669;
    --primary-light: var(--green-50);
    --radius: var(--r-card-sm);
    --radius-s: var(--r-btn);
    --shadow: var(--shadow-card);
}

/* ============================================================
   الوضع الليلي — تُقلب الرموز فقط والمكوّنات كلها تتبعها.
   السمة تُرسم من الخادم على <html> (كوكي mw.theme) فلا وميض،
   والتبديل عميلي فوري (mw-list.js: data-mw-action="theme").
   اللكنة الليمية تبقى كما هي — نصّها --on-lime ثابت داكن.
   ============================================================ */
/* 🔴 **ومقصورةٌ على الشاشة — والورقُ أبيضُ في كلّ الأحوال** (بلاغ المالك 2026-08-31):
   ⚗️ الطباعةُ `window.print()` **على الصفحة الحيّة**، فالسمةُ حاضرةٌ ساعةَ الطبع
   و`--text-primary` هنا **#E8EAEE** — **حبرٌ شبهُ أبيضَ على ورقٍ أبيض**. والخلفيّاتُ
   الداكنةُ لا تُطبع (‏لا `print-color-adjust`) فلا تنقذه، **فيخرج المستندُ شبهَ خالٍ**.
   🔑 **والعلاجُ حصرُ المقلوبات لا تكرارُ قيمها**: خارجَ `screen` يعود القاموسُ إلى
      `‎:root` النهاريّ **بقيمةٍ واحدةٍ لا نسختين تنحرفان**.
   ⚠️ **و`color-scheme` يُقلب صراحةً في الطباعة**: `App.razor` يكتبه **سمةً مضمَّنة**
      على `html` (لدفع الومضة البيضاء)، **والمضمَّنُ يغلب الورقةَ إلّا بـ`!important`**. */
@media screen {

html[data-theme="dark"] {
    color-scheme: dark;

    /* اللكنة: تينت الليم الناعم يصير شفافاً بدل الباستيل الفاتح */
    --lime-soft: rgba(212, 255, 60, .14);
    --lime-edge: rgba(212, 255, 60, .32);

    /* ✅ **وفي الداكن يؤخذ `--bg-page` كاملاً** — والحسابُ ينقلب هنا لا الذوق:
       ⚗️ **مقيسٌ في المتصفّح** (سطوعٌ نسبيّ: البطاقة `#171A21`، المرور `#1F242E`
          يبعد `0.0072` — وهي سعةٌ أضيقُ ستَّ مرّاتٍ من سعة الفاتح):
            `#0F1115` (لونُ الصفحة كاملاً) → يبعد `0.0047` = **0.66× المرور** ✅
       🔑 **وهو يُعتِم بينما المرورُ يُفتِح** — فالإشارتان تتحرّكان في اتّجاهين متضادّين،
          وهو أوضحُ فصلٍ ممكن. وفي الفاتح تتحرّكان في اتّجاهٍ واحدٍ فلزم التخفيف.
       📐 **والقوّةُ النسبيّةُ واحدةٌ في السمتين** (‏0.67× و0.66×) رغم اختلاف القيمتين —
          فالرمزُ يُقاس بجارِه لا بمقدارِه. والقاعدةُ التي يحرسها `RowStripeTests`:
          بُعدُ المرور عن البطاقة يجب أن **يزيد** على بُعد الشريط عنها. */
    --zebra: #0F1115;

    /* الباستيلات -50 → تينتات شفافة داكنة بنفس الأدوار */
    --peach-50: rgba(251, 146, 60, .13);
    --blue-50: rgba(96, 165, 250, .14);
    --purple-50: rgba(167, 139, 250, .14);
    --teal-50: rgba(45, 212, 191, .13);
    --amber-50: rgba(251, 191, 36, .13);
    --yellow-50: rgba(250, 204, 21, .12);
    --green-50: rgba(52, 211, 153, .13);
    --red-50: rgba(248, 113, 113, .13);


    /* الأسطح (سلّم slate ليلي) */
    --bg-page: #0F1115;
    --bg-card: #171A21;
    --bg-hover: #1F242E;
    --bg-input: #232936;

    /* الحدود */
    --border-subtle: #20242D;
    --border-default: #2E3542;
    --border-hover: #3D4656;
    /* ⚗️ نظيرُ النهاريّ ومقيسٌ مثلُه: `#2E3542` على بطاقةٍ داكنة = **1.41**، و`#5C687C` = **3.09**. */
    --border-input: #5C687C;

    /* النص */
    --text-primary: #E8EAEE;
    --text-secondary: #A8B0BC;
    --text-tertiary: #8B94A3;
    --text-placeholder: #667082;

    /* الحالات: -400 (تُقرأ نصاً فوق التينتات الداكنة) وحوافها شفافة */
    --status-green: #34D399;
    --status-red: #F87171;
    --status-blue: #60A5FA;
    --status-amber: #FBBF24;
    --status-yellow: #FACC15;
    --status-teal: #2DD4BF;
    --status-purple: #A78BFA;
    --status-peach: #FDBA74;
    --edge-green: rgba(52, 211, 153, .35);
    --edge-red: rgba(248, 113, 113, .35);

    /* درجتا السلّم المخفّفتان — والأخضران يتبعان حاشيتيهما بالإحالة */
    --heat-2: rgba(251, 191, 36, .22);
    --heat-1: rgba(248, 113, 113, .22);
    --edge-blue: rgba(96, 165, 250, .35);
    --edge-amber: rgba(251, 191, 36, .35);
    --edge-teal: rgba(45, 212, 191, .35);
    --edge-purple: rgba(167, 139, 250, .35);
    --edge-peach: rgba(251, 146, 60, .35);

    /* الظلال أعمق على الأسطح الداكنة */
    --shadow-card: 0 1px 2px rgba(0, 0, 0, .5);
    --shadow-lift: 0 12px 32px -8px rgba(0, 0, 0, .6);

    /* الخريطة الحرارية بأخضر أفتح */
    --heat-rgb: 52, 211, 153;

    /* المقلوبات: شريحة/رقم نشط = فاتح بنص داكن */
    --inverse-bg: #E8EAEE;
    --inverse-fg: #14171E;

    /* التراكب الفاتح يخفت لومضة زجاجية */
    --overlay-light: rgba(255, 255, 255, .08);

    /* لوحُ الشعار أبيضُ ليلاً — الشعارُ على ما صُمّم له (‏قرارُ المالك «ب»، 2026-10-03؛ والتعليلُ في الفاتح أعلاه) */
    --logo-plate: #FFFFFF;

    /* الأخضر الممتلئ (أزرار النجاح القديمة) أفتح قليلاً للتباين */
    --primary-dark: #10B981;
    --primary-vivid: #34D399;
}

}   /* ← نهايةُ `@media screen`: مقلوباتُ الوضع الليليّ لا تبلغ الورق */

/* ‏والسمةُ المضمَّنةُ على `html` تغلب الورقةَ — فتُقلب هنا صراحةً */
@media print {
    html { color-scheme: light !important; }
}

/* مقلوبات مكوّنية في الليلي: نص داكن فوق تعبئات الحالة التي صارت فاتحة.
   ↺ **وخرجت منها `heat-high` 2026-08-21**: تعبئتُها لم تعد فاتحةً بل شفّافةً فوق بطاقةٍ
   داكنة — ⚗️ فأبقى المقلوبُ حبراً داكناً على داكن: **1.87:1**. والحبرُ اليوم `--text-primary`
   يتبع السمةَ وحدَه. **ومقلوبٌ بقي بعد زوال علّته يقلب الصواب.** */
html[data-theme="dark"] .hm-qcard--warn .ico,
html[data-theme="dark"] .hm-qcard--ok .ico,
html[data-theme="dark"] .icon-btn-badge { color: #10131A; }
html[data-theme="dark"] .zk-skeleton::after {
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .07), transparent);
}

/* أيقونتا مبدّل الوضع: القمر في النهاري والشمس في الليلي.
   ↺ ‏**الصنفُ صار `‎.icon-btn` 2026-08-20** — واسمُ `‎.theme-toggle` انقضى: الزرُّ مكوّنٌ
   في المكتبة يخدم الوضعَ والجرسَ والمساعدةَ معاً، **والأيقونتان تبقيان هنا** لأنّهما
   تُبدَّلان بسمةِ الجذر لا بحال المكوّن. */
.icon-btn .theme-ico-sun { display: none; }
html[data-theme="dark"] .icon-btn .theme-ico-moon { display: none; }
html[data-theme="dark"] .icon-btn .theme-ico-sun { display: block; }