/* الوضع الليلي — كل قواعد [data-theme="dark"] مجمّعة.
   يُحمَّل أخيرًا؛ وكل قاعدة هنا أعلى تخصيصًا من نظيرتها الأساسية.

   ⚠️ قاعدة المعايرة (issue #164): النهار يبني التباين **نزولاً** عن خلفية فاتحة، والليل
   يبنيه **صعوداً** عن خلفية داكنة — فالقيمة نفسها لا تصلح للوضعين. الأخضر الغابي
   (‎--primary:#0E352C‎) مثلاً تباينه مع خلفية الليل 1.25:1 فقط، أي إنه يذوب فيها ولا يصلح
   أساساً هنا. لذلك تُعاد كل ألوان الهوية تعريفاً في هذه الكتلة بدرجات أفتح، ومنها وحدها
   يرث كل عنصر في التطبيق (الصفحة الرئيسية، المسار، النوافذ، لوحة الإدارة) لونه الليلي —
   بلا تعديل لأي خطة أو صفحة على حدة، ولمسّ الوضع النهاري إطلاقاً.

   الأرقام أدناه نسب تباين WCAG محسوبة على ‎--surface‎ ما لم يُذكر غير ذلك:
   نص عادي ≥ 4.5:1، وعنصر/حدّ ≥ 3:1. */

[data-theme="dark"]{
  /* ---- ألوان الهوية معايَرة للّيل ---- */
  --primary:#2A7D68;        /* غابة مضيئة — أسطح مصمتة (عقد منجزة، مقاطع نشطة). أبيض فوقه 4.96:1 */
  --interactive:#35A388;    /* فيروزي التفاعل — روابط وحدود وتعبئة ناعمة. على الخلفية 5.78:1 */
  --accent:#3DC9B0;         /* فيروزي الحالة الحية — لون هوية لا يتغيّر بين الوضعين */
  --sand:#E7E5D9;           /* ورق — يُستعمل ليلاً بنِسَب منخفضة فقط */
  --ok:#46C275;             /* أخضر ورقي: يفصل «منجز» عن فيروزي «الحالي» بفارق درجة لوني لا بإضاءة فقط */
  --info:#66ACDC; --warn:#F3C43C; --danger:#BE4E2F; --pink:#F065A2;

  /* ---- الطبقات: فارق محسوس بين كل طبقة والتي تحتها (1.22:1 ثم 1.36:1) ---- */
  --bg:#061A15;
  --surface:#102D25;
  --surface2:#1E4438;

  --text:#F6F5EF;
  --muted:#A3B8AC;          /* 7.03:1 على السطح، 5.16:1 على السطح الثاني */
  --border:rgba(246,245,239,.10);
  --border-strong:rgba(246,245,239,.20);

  /* ---- الأحبار: كلها ≥ 4.9:1 فوق تعبئة شارتها، ومتباعدة في الدرجة اللونية عن بعضها ---- */
  --brand-ink:#D6F0E7;
  --accent-ink:#7BE9D6;
  --ok-ink:#8AE8A6; --info-ink:#A8D8FB; --warn-ink:#F8D975; --danger-ink:#FF9E85; --pink-ink:#FFA3CC;
  /* لوحة خطوط خارطة المتطلبات (issue #211) — تباين مركَّب فوق شريط الفصل (c0..c5):
     إبراز 100%: 10.78 · 10.34 · 8.78 · 7.58 · 6.33 · 5.65 — معيار ≥ 3:1 محقَّق هنا وحده
     سكون 45%:   3.34 · 3.23 · 2.89 · 2.65 · 2.38 · 2.20 — أخفت من السابقة (حتى 3.76)، مقايضة مقصودة */
  --pm-teal:#7BE9D6; --pm-blue:#A8D8FB; --pm-violet:#C9B8FF;
  --pm-teal-2:#3DC9B0; --pm-blue-2:#66ACDC; --pm-violet-2:#A48CF0;
  /* حبر داكن فوق الأسطح المصمتة بلون الهوية (الأبيض فوق الفيروزي 2:1 فقط) */
  --on-brand:#04241C;

  /* ---- قوة التعبئة والحدّ للشارات ليلاً — مصدر واحد لكل العائلات في آخر الملف ----
     نِسَب النهار (10–18%) تُنتج فوق خلفية داكنة فرقاً 1.1:1، أي شارة بلا حدود مرئية.
     الأصفر أفتح أصلاً فيكفيه نصف القوة وإلا طغى على بقية الحالات. */
  --tint:34%;
  --tint-warm:24%;
  --edge:70%;

  --shadow:0 1px 2px rgba(0,0,0,.3), 0 12px 30px -14px rgba(0,0,0,.5);
  --shadow-lift:0 2px 6px rgba(0,0,0,.35), 0 20px 48px -16px rgba(0,0,0,.6);
  --ring:rgba(61,201,176,.4);
  --hero-tint:radial-gradient(720px 340px at 82% -10%, rgba(61,201,176,.10), transparent 60%),
              radial-gradient(640px 320px at 12% -14%, rgba(53,163,136,.12), transparent 60%);
  /* السطح الداكن شبه الشفاف يحتاج نسبة أعلى ليبقى تباين النص كافياً فوق التدرّج */
  --glass-bg:color-mix(in srgb, var(--surface) 72%, transparent);
  --glass-border:color-mix(in srgb, var(--border-strong) 85%, transparent);
}

/* ===================== الأسطح المصمتة بلون الهوية =====================
   الأبيض يكفي فوق ‎--primary‎ و‎--danger‎ (≥4.8:1) لكنه يسقط فوق الفيروزي والأخضر
   (2–3:1) — فتلك وحدها تأخذ الحبر الداكن. */
[data-theme="dark"] .btn-primary{background:var(--accent); color:var(--on-brand)}
[data-theme="dark"] .btn-primary:hover:not(:disabled){background:#6FE3CE; box-shadow:0 0 24px rgba(61,201,176,.35)}
[data-theme="dark"] .pmap-crit.active{background:var(--accent); border-color:var(--accent); color:var(--on-brand)}
[data-theme="dark"] .nc-course.is-on .c-check-box,
[data-theme="dark"] .pr-opt.is-on .pr-box,
[data-theme="dark"] .b-ai{color:var(--on-brand)}

/* ===================== الأزرار الثانوية =====================
   الفرق بين الثلاثة يجب أن يُقرأ من نظرة واحدة: الرئيسي فيروزي مصمت، والناعم لوح أخضر
   بحدّ ملوّن (3.07:1 على السطح)، والشبح شفاف بحدّ رمادي محايد. */
[data-theme="dark"] .btn-soft{
  background:color-mix(in srgb, var(--interactive) var(--tint), transparent);
  border-color:color-mix(in srgb, var(--interactive) var(--edge), transparent);
  color:var(--brand-ink);
}
[data-theme="dark"] .btn-soft:hover:not(:disabled){background:color-mix(in srgb, var(--interactive) 46%, transparent)}

/* ===================== الشارات والحبوب — تعبئة بقوة ‎--tint‎ =====================
   مجمّعة بلون الحالة لا بالمكوّن: كل ما يحمل الدلالة نفسها يأخذ التعبئة نفسها، فتبقى
   الشارة الواحدة متطابقة أينما ظهرت (بطاقة الفصل، النافذة، شريط الإحصائيات). */
[data-theme="dark"] :is(.b-core,.opt-icon,.ob-num,.auth-avatar-fb){
  background:color-mix(in srgb, var(--interactive) var(--tint), transparent);
  border-color:color-mix(in srgb, var(--interactive) var(--edge), transparent);
}
[data-theme="dark"] :is(.b-elec,.chip-state-current,.st-current,.stat-here,.opt-tag){
  background:color-mix(in srgb, var(--accent) var(--tint), transparent);
}
[data-theme="dark"] :is(.b-coop,.chip-state-past,.st-done,.p-ok){
  background:color-mix(in srgb, var(--ok) var(--tint), transparent);
}
[data-theme="dark"] :is(.b-free,.p-up){
  background:color-mix(in srgb, var(--info) var(--tint), transparent);
}
[data-theme="dark"] :is(.b-uni,.chip-state-summer,.st-deferred,.soon-badge){
  background:color-mix(in srgb, var(--warn) var(--tint-warm), transparent);
}
[data-theme="dark"] :is(.b-grad,.chip-state-grad,.piv-chip,.p-ov){
  background:color-mix(in srgb, var(--pink) var(--tint), transparent);
}
[data-theme="dark"] .p-no{background:color-mix(in srgb, var(--danger) var(--tint), transparent)}

/* الحدود الملوّنة لما يملك حدّاً أصلاً (‎.st-pill‎ و‎.lg-pill‎ و‎.piv-chip‎) */
[data-theme="dark"] :is(.st-current,.stat-here){border-color:color-mix(in srgb, var(--accent) var(--edge), transparent)}
[data-theme="dark"] :is(.st-done,.p-ok){border-color:color-mix(in srgb, var(--ok) var(--edge), transparent)}
[data-theme="dark"] .p-up{border-color:color-mix(in srgb, var(--info) var(--edge), transparent)}
[data-theme="dark"] .st-deferred{border-color:color-mix(in srgb, var(--warn) var(--edge), transparent)}
[data-theme="dark"] :is(.piv-chip,.p-ov){border-color:color-mix(in srgb, var(--pink) var(--edge), transparent)}
[data-theme="dark"] .p-no{border-color:color-mix(in srgb, var(--danger) var(--edge), transparent)}

/* حبوب الورق: ‎--sand‎ فاتح جداً، فنسبته تبقى دون ‎--tint‎ حتى لا تنقلب لوحاً أبيض */
[data-theme="dark"] .uni-pill{background:color-mix(in srgb, var(--sand) 16%, transparent); border-color:color-mix(in srgb, var(--sand) 28%, transparent)}
[data-theme="dark"] .chip-h{background:color-mix(in srgb, var(--sand) 22%, transparent); color:var(--sand)}

/* ===================== خط الرحلة =====================
   الخط المتقطّع مرسوم بـ35% من ‎--primary‎ (1.49:1 ليلاً) — ليلاً يُرسم بالفيروزي
   ليبقى المسار القادم مقروءاً، والعقدة الحالية تحتفظ بهالتها المنوّرة. */
[data-theme="dark"] .term-wrap::before{
  background:repeating-linear-gradient(180deg,
    color-mix(in srgb, var(--interactive) 55%, transparent) 0 7px, transparent 7px 15px);
}
[data-theme="dark"] .k-current .term-node{
  border-color:var(--accent);
  box-shadow:0 0 0 5px rgba(61,201,176,.2), 0 0 16px rgba(61,201,176,.5);
}

/* حقل «عدد المقررات» الرقمي وأسهم spinner الخاصة به أُزيلا مع إعادة هيكلة المقررات غير
   الأساسية (issue #92) — لم يعد في المسار الجديد أي إدخال يدوي لعدد ساعات أو اسم مادة. */
