/* ===========================================================
   0-أ. الخطوط — عدّل هذه القيم وحدها لتغيير الطباعة
   -----------------------------------------------------------
   ‎--x-font-body‎ : متن الدرس والتمارين (قراءة طويلة)
   ‎--x-font-head‎ : العناوين وواجهة الموقع
   ‎--x-font-mono‎ : الرموز والشيفرة

   بدائل جاهزة (كلّها برخصة SIL OFL مجّانية):
     مدرسيّ نسخيّ   Noto Naskh Arabic + Noto Sans Arabic   ← المعتمد
     كلاسيكيّ مطبعيّ Amiri + Cairo
     شاشة أولا      IBM Plex Sans Arabic (للاثنين معا)

   عند تغيير الخط، غيّر أيضا رابط التحميل في mkdocs.yml ← extra_css
   =========================================================== */

:root {
  --x-font-body: "Noto Naskh Arabic", "Amiri", "Times New Roman", serif;
  --x-font-head: "Noto Sans Arabic", "Cairo", system-ui, sans-serif;
  --x-font-mono: "IBM Plex Mono", ui-monospace, monospace;

  --md-text-font-family: var(--x-font-body);
  --md-code-font-family: var(--x-font-mono);
}

/* ===========================================================
   0-ب. لوحة الخلفيات — عدّل هذه القيم وحدها لتغيير مظهر الموقع
   -----------------------------------------------------------
   ‎--x-page‎  : خلفية الصفحة (المساحة الكبرى)
   ‎--x-panel‎ : خلفية البطاقات والجداول وكتل الحلول (طبقة فوق الصفحة)
   بدائل جاهزة للوضع النهاري:
     ورقيّ دافئ   #faf8f4 / #ffffff
     رماديّ بارد  #f6f7f9 / #ffffff      ← المعتمد
     أبيض صريح    #ffffff / #f6f7f9
   بدائل جاهزة للوضع الليلي:
     رماديّ أزرق  #20242d / #272c37      ← المعتمد
     فحميّ محايد  #212121 / #2a2a2a
     داكن عميق    #16181d / #1e2129
   =========================================================== */

/* الوضع النهاري: خلفية عاجية هادئة بدل الأبيض الصريح،
   لتقليل الوهج في جلسات المراجعة الطويلة. */
[data-md-color-scheme="default"] {
  --x-page:  #f6f7f9;
  --x-panel: #ffffff;

  --md-default-bg-color: var(--x-page);
  --md-typeset-color: #1a1c22;
  --md-default-fg-color: #1a1c22;

  --md-code-bg-color: #eef0f4;

  --x-tag-bg: #e7eaf0;
  --x-tag-fg: #363a45;
  --x-rule: #d4d8e0;

  --x-lvl1-bg: #d9f0da;  --x-lvl1-fg: #1b5e20;
  --x-lvl2-bg: #d6ebfb;  --x-lvl2-fg: #01579b;
  --x-lvl3-bg: #fde8cf;  --x-lvl3-fg: #9c4a00;
  --x-lvl4-bg: #fbdcda;  --x-lvl4-fg: #a81c14;
}

/* الوضع الليلي: خلفية داكنة معتدلة لا سوداء، ونصّ عالي التباين.
   المشكلة الأصلية كانت في استعمال متغيّرات Material الباهتة
   (‎--md-default-fg-color--lightest‎) التي تكاد تختفي فوق الخلفية الداكنة. */
[data-md-color-scheme="slate"] {
  --x-page:  #20242d;
  --x-panel: #272c37;

  --md-default-bg-color: var(--x-page);
  --md-default-bg-color--light: var(--x-panel);
  --md-default-bg-color--lighter: #2e3441;

  --md-code-bg-color: #2b313d;

  --md-typeset-color: #e9ecf2;
  --md-default-fg-color: #f2f4f8;
  --md-default-fg-color--light: #c3c8d4;
  --md-default-fg-color--lighter: #9aa1b1;

  --md-typeset-a-color: #8ab4ff;

  --x-tag-bg: #333846;
  --x-tag-fg: #dfe3ec;
  --x-rule: #3d4353;

  --x-lvl1-bg: #23402a;  --x-lvl1-fg: #a9e0af;
  --x-lvl2-bg: #1c3a52;  --x-lvl2-fg: #93cdf5;
  --x-lvl3-bg: #4a3418;  --x-lvl3-fg: #f2c78a;
  --x-lvl4-bg: #4c2523;  --x-lvl4-fg: #f4a9a3;
}

/* روابط أوضح في الوضع الليلي */
[data-md-color-scheme="slate"] .md-typeset a {
  color: var(--md-typeset-a-color);
}

/* الجداول: تُرسم كطبقة فوق خلفية الصفحة في الوضعين */
.md-typeset table:not([class]) {
  background: var(--x-panel);
  border: 1px solid var(--x-rule);
}
.md-typeset table:not([class]) th {
  background: var(--x-thead, var(--x-tag-bg));
  color: var(--md-default-fg-color);
}
.md-typeset table:not([class]) td {
  border-top: 1px solid var(--x-rule);
}

/* ===========================================================
   2. عرض الرياضيات داخل نصّ عربي (من اليمين إلى اليسار)
   =========================================================== */

/* الصيغ تُكتب من اليسار إلى اليمين، ويجب عزلها عن اتّجاه الفقرة
   حتى لا تنقلب الأقواس ولا ترتيب الرموز — العزل هو ما يحمي
   المجالات من الشكل ]A;+∞[ من الانقلاب. */
/* ملاحظة: لا نغيّر خطوط KaTeX (KaTeX_Main / KaTeX_Math) لأنّها مضبوطة
   على مقاسات دقيقة؛ تغييرها يكسر محاذاة الكسور والجذور والأسس.
   نكتفي بتكبيرها قليلا لتوازن ارتفاع حرف النسخ العربي المجاور. */
.katex {
  direction: ltr;
  unicode-bidi: isolate;
  font-size: 1.12em;
  color: inherit;
}

.katex-display {
  direction: ltr;
  unicode-bidi: isolate;
  text-align: center;
  margin: 0.9em 0;
  overflow-x: auto;
  overflow-y: hidden;
  padding-block: 0.2em;
}

/* ===========================================================
   3. قراءة النصّ العربي
   =========================================================== */

.md-typeset {
  font-family: var(--x-font-body);
  line-height: 2.0;
  text-align: right;
  font-size: 0.85rem;
  text-rendering: optimizeLegibility;
}

/* العناوين وواجهة الموقع بخطّ سانس، لتمييزها عن متن النسخ */
.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-typeset h4,
.md-typeset h5,
.md-header,
.md-tabs,
.md-nav,
.md-footer {
  font-family: var(--x-font-head);
}

.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-typeset h4 {
  font-weight: 700;
  color: var(--md-default-fg-color);
  line-height: 1.6;
}

/* ‼ العربية لا تُباعَد حروفها إطلاقا: التباعد يشوّه الوصلات بين الحروف.
   ‏Material يضبط letter-spacing سالبا على العناوين، فنُلغيه هنا. */
.md-typeset,
.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-typeset h4,
.md-typeset h5,
.md-typeset h6,
.md-nav,
.md-header,
.md-tabs {
  letter-spacing: normal !important;
  word-spacing: normal;
}

/* الأرقام: نفرض الأرقام العربية الغربية (1 2 3) وهي المعتمدة في الجزائر،
   لا الأرقام الهندية (١ ٢ ٣)، ونمنع الأرقام القديمة المتفاوتة الارتفاع. */
.md-typeset {
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
}

/* الأعداد داخل النصّ العربي تبقى بترتيبها الصحيح */
.md-typeset .exercise-head .num,
.md-typeset table:not([class]) td {
  unicode-bidi: plaintext;
}

.md-typeset table:not([class]) {
  text-align: right;
  font-size: 0.76rem;
}

.md-typeset__table {
  overflow-x: auto;
}

/* ===========================================================
   4. التمارين
   =========================================================== */

.exercise-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  margin-block: 1.6em 0.4em;
  padding-bottom: 0.35em;
  border-bottom: 2px solid var(--x-rule);
}

.exercise-head .num {
  font-weight: 700;
  font-size: 1.05em;
  color: var(--md-primary-fg-color);
}

[data-md-color-scheme="slate"] .exercise-head .num {
  color: #9db4ff;
}

/* وسوم النوع والمستوى */
.tag {
  font-size: 0.68rem;
  font-weight: 600;
  padding: 0.12em 0.6em;
  border-radius: 1em;
  white-space: nowrap;
  background: var(--x-tag-bg);
  color: var(--x-tag-fg);
}

.lvl-1 { background: var(--x-lvl1-bg); color: var(--x-lvl1-fg); }
.lvl-2 { background: var(--x-lvl2-bg); color: var(--x-lvl2-fg); }
.lvl-3 { background: var(--x-lvl3-bg); color: var(--x-lvl3-fg); }
.lvl-4 { background: var(--x-lvl4-bg); color: var(--x-lvl4-fg); }

/* ===========================================================
   5. الكتل القابلة للطيّ (الإرشادات والحلول)
   =========================================================== */

/* كتل الإرشادات والحلول والتنبيهات: طبقة فاتحة فوق خلفية الصفحة،
   بشريط ملوّن على اليمين (اتّجاه الكتابة العربية). */
.md-typeset details,
.md-typeset .admonition {
  font-size: 0.97em;
  border: 1px solid var(--x-rule);
  border-right: 0.2rem solid;
  box-shadow: none;
  background: var(--x-panel);
  color: var(--md-typeset-color);
}

.md-typeset details > summary,
.md-typeset .admonition > .admonition-title {
  font-weight: 700;
}

/* ===========================================================
   6. الطباعة: تُفتح كلّ الإرشادات والحلول
   =========================================================== */
@media print {
  .md-typeset details { page-break-inside: avoid; }
  .md-typeset details > summary { font-weight: 700; }
  .md-typeset details:not([open]) > *:not(summary) { display: revert !important; }
}
