/* ==========================================================================
   theme-dark.css — الوضع الداكن.

   ليس قلباً للألوان: القلبُ يجعل الأبيضَ أسودَ ويترك الكحليَّ كحلياً،
   فتختفي الكتابة. وهذه لوحةٌ مبنيّة — أسطحٌ متدرّجةٌ بميلٍ باردٍ تحفظ
   هُويّة التطبيق، وحبرٌ يُقرأ عليها كلِّها.

   ── القياس لا الذوق ──
   كلُّ لونٍ هنا مقيسٌ بمعيار WCAG على السطح الذي يقع عليه: ‎4.5:1‎ للنصّ
   العادي و‎3:1‎ للكبير. و`contrast.html` يمشي على الشاشات الثماني عشرة
   ويقيس كلَّ نصٍّ مرئي — فما يُقال هنا مُثبتٌ هناك.

   ── لماذا لا `* { color: white }` ──
   كانت هذه حيلةَ النسخة السابقة: صبغُ كلِّ نصٍّ بالأبيض. وهي تفشل من
   طرفيها — الأسطحُ المكتوبةُ حرفياً في `views.css` تبقى بيضاء فيصير
   الأبيضُ على الأبيض، والقواعدُ الأخصُّ منها (لونٌ كحليٌّ صريح) لا
   تتأثّر بها فيصير الكحليُّ على الداكن. فالعلاج قلبُ **الأسطح**، ثم
   الحبرُ يتبعها من رموزه.

   ── هذا الملفّ يقرأ من الشقّ ──
   `--ink-primary` و`--mix-base` و`--beige` في `main.css`: تبديلُها هنا
   يقلب مئةً وسبعةً وخمسين موضعاً بلا لمسِ قاعدةٍ منها.
   ========================================================================== */

/* ══════════════════════════════════════════════════════════════════════
   ١) الرموز
   ══════════════════════════════════════════════════════════════════════ */
body.theme-dark,
body.theme-auto.dark-active {
    /* الأسطح: أربعُ درجاتٍ بميلٍ كحليّ خفيف — لا رماديٌّ ميّت ولا أسودُ
       حادّ. والأسودُ الخالص يُجهد العين على الشاشات المضيئة. */
    --bg:            #0D1117;
    --surface:       #161C27;
    --surface-alt:   #1E2634;
    --surface-high:  #273040;

    --border:        #2C3545;
    --border-strong: #3D4859;

    /* الحبر: أبيضُ مكسورٌ لا خالص — الخالصُ يهتزّ على الداكن (halation).
       ‎#E8ECF3‎ على ‎#161C27‎ = ‎13.4:1‎، والخافتُ ‎7.1:1‎. */
    --text:          #E8ECF3;
    --text-muted:    #A3AEC0;
    /* «المعكوس» ليس عكسَ المظهر بل عكسُ السطح: هو لونُ الكتابة فوق
       الأسطح الملوّنة الصلبة — الكحليّ والأحمر. وهذه تبقى ملوّنةً في
       الداكن، فيبقى معكوسُها أبيض. وقلبُه إلى داكنٍ يجعل «فهمت» في
       التلميح داكناً على كحليّ: ‎1.38:1‎. */
    --text-inverse:  #FFFFFF;

    /* ══ البتروليُّ في الداكن أغمقُ منه في الفاتح ══
       كان يُفتَّح خطوةً (‎#0F4956‎) ليُفرَّق عن الأرضية الداكنة، فرأى المعلّمُ
       الفرقَ وطلب التطابق (١٧ أغسطس ٢٠٢٦) — فصار ‎#0A3F4A‎ في المظهرين.

       ثمّ طلب في ٤ سبتمبر ٢٠٢٦ **لوناً افتراضيّاً للوضع الداكن**، فعُرضت
       عليه سبعُ درجاتٍ من البترولي بأرقامها، فقال: **«خلّه بترولي أغمق»**
       ثمّ **«اعتمد اللي قلت لك بترولي غامق»**. فصار ‎#09363F‎ — درجتان
       أغمقُ من الفاتح.

       ── وما يربح وما يخسر، مقيساً ──
         الكتابةُ البيضاء فوقه  ‎11.84‎ ← ‎13.03‎   ▲
         وقتُ الحصّة في العمود  ‎6.48‎  ← ‎7.19‎    ▲
         انفصالُه عن الأرضيّة   ‎1.60‎  ← ‎1.45‎    ▼
       فالحبرُ يربح والانفصالُ يخسر — وهو الاختيارُ نفسُه الذي اختاره في
       أغسطس، مكرّراً بعد أن رأى البدائلَ السبعةَ بأرقامها. والفصلُ يحمله
       الحدُّ والظلُّ لا اللون.

       **ولا يمسّ هذا الوضعَ الفاتح**: ‎#0A3F4A‎ باقٍ هناك، وباقٍ لونَ
       الافتراضيّ في `theme-color.js` — فمن أعاد اللونَ إلى الافتراضيّ
       رأى البتروليَّ المنشورَ في الفاتح وهذا في الداكن. */
    --primary:       #09363F;
    --primary-dark:  #09363F;

    /* وسُلَّمُ التدرّج معه — محسوبٌ من الأساس الجديد بمحرّك الألوان نفسِه
       (`ThemeColor.scale(hex, true)`) فلا يُخمَّن ولا يتفرّق عنه. */
    --primary-mid:   #0F4955;
    --primary-lift:  #0F4550;
    --primary-deep:  #041D22;

    /* لونُ الهُويّة يبقى سطحاً (‎--primary‎)، وحبرُه أبيضُ لا فاتحاً منه.
       كان ‎#8FB4F5‎ — يُقرأ (‎8.1:1‎) لكنّ المعلّم رآه أزرقَ فاتحاً وطلب
       البياض (١٧ أغسطس ٢٠٢٦). وهو ‎#E8ECF3‎ نفسُ حبر النصّ العام: أبيضُ
       مكسورٌ لا خالص، فالخالصُ يهتزّ على الداكن. ‎13.4:1‎ على السطح.

       وقبل هذا التبديل ثُبِّتت تسعةُ مواضعَ كان حبرُها يقرأ هذا الرمزَ
       وأرضيّتُها فاتحةٌ **لا تتبع المظهر** (ذهبيٌّ وأبيضُ وبيجٌ صريح) —
       ولولا تثبيتُها لصارت بيضاءَ على فاتح. يحرسها الآن
       `tools/check-fixed-surfaces.mjs`. */
    --ink-primary:   #E8ECF3;

    /* و`--ink-fixed` و`--on-gold` **لا يُعاد تعريفُهما هنا عمداً**: هما
       حبرٌ على أسطحٍ فاتحةٍ لا تتبع المظهر (الذهبيُّ والأبيضُ الصريح)،
       فتبديلُهما في الداكن يجعلهما فاتحَين على فاتح — وهو العطبُ نفسُه
       الذي أُصلح صباحَ اليوم. */
    --primary-light: #1B859A;
/* ══ مُعايَرةُ السُّلَّم على سقف الأصل ══
   قبل ترميز الألوان كان تدرّجُ الأبطال في الداكن **مسطَّحاً**: `views.css`
   يكتب ‎#24498A‎ صريحاً و`--primary` الداكنُ ‎#24498A‎ نفسُه — فدرجةٌ واحدة.
   ثمّ أنشأ الترميزُ `--primary-mid` وأعطاه في الداكن ‎#2F5AA6‎ أفتحَ من
   `--primary`، فانكسر أربعةُ بنودٍ لم تكن مكسورة. ثمّ زاد البتروليُّ الفتحَ
   فصارت سبعة (٢٤ موضعاً في ثلاث شاشات).
   فعُوير السُّلَّمُ كلُّه على سطوع ‎#24498A‎ (‎0.0698‎) سقفاً لأفتحِ درجةٍ فيه،
   والصبغةُ البتروليّة محفوظةٌ لأن التعديل ضربٌ نسبيٌّ في المُركِّبات الثلاث.
   فصار للداكن تدرّجٌ حقيقيٌّ لم يكن له، ولا يرسب بندٌ واحد. */

    /* مرساةُ الخلطات: كانت بيضاء فتبني أسطحاً شبه بيضاء، فصارت داكنة —
       وانقلبت الأسطح كلُّها معها. */
    --mix-base:      #161C27;
    --beige:         #1E2634;

    /* حبرُ ملفّ الإنجاز: `portfolio-theme.css` يكتب بالرمز الخام
       (`--pf-charcoal` و`--pf-gray`) لا بالرمز العام، فلا يبلغه الشقّ.
       وقِيسا: كلاهما حبرٌ خالص لا يُستعمل خلفيةً ولا حدّاً — فتبديلُهما
       آمن. */
    --pf-charcoal:   #E8ECF3;
    --pf-gray:       #A3AEC0;

    /* البريقُ الأبيض على الداكن خيطٌ ناصعٌ يقطع البطاقة من أعلى. يُخفَّف
       إلى وميضٍ يُحسّ ولا يُرى، فيبقى التجسيم ويذهب الشقّ. */
    --sheen:         rgba(255, 255, 255, .06);

    /* شريطُ حالة الطالب حين لا تحضيرَ بعد: خمسةُ بكسلاتٍ رماديةٌ فاتحة على
       حافّة كل بطاقة — على الداكن عمودٌ ناصعٌ يشدّ العين إلى لا شيء.
       يُغمَّق ويبقى محايداً، وألوانُ الحضور والغياب على حالها. */
    --stripe-none:   #3D4859;

    /* الحالات: تُفتَّح لتُقرأ على الداكن، وتبقى هُويّتها اللونية. */
    --success:       #34D399;
    --warning:       #FBBF24;
    /* ذهبُ التقويم: `#8A6E2E` الفاتحُ يعطي 3.54:1 هنا — دون العتبة.
       و`#C29A45` يبلغ 6.51:1 ويبقى ذهباً يُعرف. */
    --gold-ink:      #C29A45;
    --danger:        #F87171;
    --info:          #7FB4FF;

    color: var(--text);
    background: var(--bg);
}

/* ══════════════════════════════════════════════════════════════════════
   ٢) الأرضية والقشرة
   ══════════════════════════════════════════════════════════════════════ */
body.theme-dark,
body.theme-auto.dark-active,
body.theme-dark #app,
body.theme-auto.dark-active #app,
body.theme-dark #app-main,
body.theme-auto.dark-active #app-main,
body.theme-dark [id^="view-"],
body.theme-auto.dark-active [id^="view-"] {
    background: var(--bg) !important;
    background-image: none !important;
}

body.theme-dark .app-header,
body.theme-auto.dark-active .app-header,
body.theme-dark .drawer,
body.theme-auto.dark-active .drawer,
body.theme-dark .modal,
body.theme-auto.dark-active .modal {
    background: var(--surface) !important;
    border-color: var(--border) !important;
}

/* ══════════════════════════════════════════════════════════════════════
   ٣) الأسطح المكتوبة حرفياً
   ══════════════════════════════════════════════════════════════════════
   مئةٌ وثلاثٌ وثلاثون قاعدةً في `views.css` تكتب خلفيةً فاتحةً بالاسم لا
   بالرمز. هذه هي التي تُقلب — وبعدها يصير الحبرُ الفاتح مقروءاً.
   ══════════════════════════════════════════════════════════════════════ */
body.theme-dark .card,
body.theme-auto.dark-active .card,
body.theme-dark .stat-card,
body.theme-auto.dark-active .stat-card,
body.theme-dark .start-add-class,
body.theme-auto.dark-active .start-add-class,
body.theme-dark .set-list,
body.theme-auto.dark-active .set-list,
body.theme-dark .set-row,
body.theme-auto.dark-active .set-row,
body.theme-dark .cls-row,
body.theme-auto.dark-active .cls-row,
body.theme-dark .flist,
body.theme-auto.dark-active .flist,
body.theme-dark .frow,
body.theme-auto.dark-active .frow,
body.theme-dark .fsubj,
body.theme-auto.dark-active .fsubj,
body.theme-dark .flogo,
body.theme-auto.dark-active .flogo,
body.theme-dark .ac-card,
body.theme-auto.dark-active .ac-card,
body.theme-dark .imp-box,
body.theme-auto.dark-active .imp-box,
body.theme-dark .sch-card:not(.on),
body.theme-auto.dark-active .sch-card:not(.on),
/* و`.sch-gcell` هنا لأن تدرّجه يكتب `#fff` و`#ECEAE3` صريحين ولا يقرؤهما
   من رمز: فبقي شريطاً أبيضَ في الوضع الداكن، وحبرُه الكحليُّ الفاتح عليه
   ‎1.74:1‎ — «الصف» يُقرأ بالكاد. */
body.theme-dark .sch-gcell:not(.on),
body.theme-auto.dark-active .sch-gcell:not(.on),
body.theme-dark .sch-sec:not(.on),
body.theme-auto.dark-active .sch-sec:not(.on),
body.theme-dark .sched-import,
body.theme-auto.dark-active .sched-import,
body.theme-dark .rem-card,
body.theme-auto.dark-active .rem-card,
body.theme-dark .rd-cal,
body.theme-auto.dark-active .rd-cal,
body.theme-dark .stg-card,
body.theme-auto.dark-active .stg-card,
body.theme-dark .tf-box,
body.theme-auto.dark-active .tf-box,
body.theme-dark .pstg-sum,
body.theme-auto.dark-active .pstg-sum,
body.theme-dark .enjaz-tile,
body.theme-auto.dark-active .enjaz-tile,
body.theme-dark .dp-item:not(.on),
body.theme-auto.dark-active .dp-item:not(.on),
body.theme-dark .hub-featured,
body.theme-auto.dark-active .hub-featured,
body.theme-dark .hub-tile,
body.theme-auto.dark-active .hub-tile,
body.theme-dark .class-card,
body.theme-auto.dark-active .class-card {
    background: var(--surface) !important;
    background-image: none !important;
    border-color: var(--border) !important;
}

/* الأسطحُ المرفوعة: ما يعلو البطاقة — حبّاتٌ وأزرارٌ ورؤوسُ جداول. */
body.theme-dark .chs-chip,
body.theme-auto.dark-active .chs-chip,
body.theme-dark .hub-tile-icon,
body.theme-auto.dark-active .hub-tile-icon,
body.theme-dark .hf-stat:not(.active),
body.theme-auto.dark-active .hf-stat:not(.active),
body.theme-dark .stu-up,
body.theme-auto.dark-active .stu-up,
body.theme-dark .cls-edit-btn,
body.theme-auto.dark-active .cls-edit-btn,
body.theme-dark .btn-back-box,
body.theme-auto.dark-active .btn-back-box,
body.theme-dark .sched-time-btn:not(.on),
body.theme-auto.dark-active .sched-time-btn:not(.on),
body.theme-dark .tf-chip:not(.on),
body.theme-auto.dark-active .tf-chip:not(.on),
body.theme-dark .sched-table thead th:not(.is-today),
body.theme-auto.dark-active .sched-table thead th:not(.is-today),
body.theme-dark .sched-corner,
body.theme-auto.dark-active .sched-corner,
body.theme-dark .bell-row,
body.theme-auto.dark-active .bell-row,
body.theme-dark .mvs-tab:not(.on),
body.theme-auto.dark-active .mvs-tab:not(.on),
body.theme-dark .col-chip:not(.active),
body.theme-auto.dark-active .col-chip:not(.active),
body.theme-dark .att-stat,
body.theme-auto.dark-active .att-stat,
body.theme-dark .popt:not(.on),
body.theme-auto.dark-active .popt:not(.on),
body.theme-dark .pseg:not(.on),
body.theme-auto.dark-active .pseg:not(.on),
body.theme-dark .badge,
body.theme-auto.dark-active .badge,
body.theme-dark .input,
body.theme-auto.dark-active .input,
body.theme-dark .select,
body.theme-auto.dark-active .select,
body.theme-dark .textarea,
body.theme-auto.dark-active .textarea,
body.theme-dark table thead th:not(.is-today),
body.theme-auto.dark-active table thead th:not(.is-today) {
    background: var(--surface-alt) !important;
    background-image: none !important;
    border-color: var(--border) !important;
    color: var(--text);
}

/* أسطحُ ملفّ الإنجاز والتقويم والتقارير — مسحُها بأداةِ «أين بقي البياض»
   بعد الجولة الأولى، لا بالتخمين. */
body.theme-dark .portfolio-section,
body.theme-auto.dark-active .portfolio-section,
body.theme-dark .portfolio-section.is-open,
body.theme-auto.dark-active .portfolio-section.is-open,
body.theme-dark .pf-id-card,
body.theme-auto.dark-active .pf-id-card,
body.theme-dark .btn-secondary,
body.theme-auto.dark-active .btn-secondary,
body.theme-dark .stg-btn.ghost,
body.theme-auto.dark-active .stg-btn.ghost,
body.theme-dark .box,
body.theme-auto.dark-active .box,
body.theme-dark table tr,
body.theme-auto.dark-active table tr,
/* ══ عمودُ اليومِ الحالي يبقى ذهبيّاً في الداكن ══
   قِيس في ١٨ أغسطس ٢٠٢٦: رأسُ اليوم وخلاياه كانا مطابقَين لبقيّة الأيام
   حرفاً بحرف — الذهبيُّ مقتولٌ في الاثنين. فالقاعدتان العامّتان
   (`thead th` و`tbody td`) تفرضان السطحَ بـ`!important` فتمحوان
   ‎.is-today‎ معه. والمعلّمُ يفتح الجدولَ ليعرف **أينَ هو اليوم** — فهذه
   العلامةُ هي وظيفتُه الأولى.

   والحرزُ `:not(.is-today)` كما في «✓ تم» و«حصة انتظار اليوم»: الحالةُ
   الملوّنةُ تُستثنى من قلب الأسطح، ويحرسها
   `tools/check-active-states.mjs`. */
/* ══ وعمودُ الحصص يُستثنى كذلك ══
   بلاغُه (٤ سبتمبر ٢٠٢٦): «لون عمود الحصص في الجدول باقي فيه مشكلة».
   وهو `td` في `tbody`، فكانت هذه القاعدةُ تفرض عليه `--surface` بـ‎!important‎
   فيصير **لونَ الخلايا نفسَه** (`#161C27`) — عمودٌ يذوب في جدوله، ولا يتبع
   لونَ التطبيق الذي اختاره المعلّم. قِيس: خلفيّتُه ‎rgb(22,28,39)‎ وخلفيّةُ
   الخانة ‎rgb(22,28,39)‎ — سواء.
   وهو سطحُ هُويّةٍ ملوّنٌ كـ`.is-today`، فيُستثنى مثلَه. */
body.theme-dark tbody td:not(.is-today):not(.sched-per),
body.theme-auto.dark-active tbody td:not(.is-today):not(.sched-per) {
    background: var(--surface) !important;
    background-image: none !important;
    border-color: var(--border) !important;
}

body.theme-dark .portfolio-section-body,
body.theme-auto.dark-active .portfolio-section-body,
body.theme-dark .pf-id-photo,
body.theme-auto.dark-active .pf-id-photo,
body.theme-dark .pf-id-photo-empty,
body.theme-auto.dark-active .pf-id-photo-empty,
body.theme-dark .rem-ic,
body.theme-auto.dark-active .rem-ic,
body.theme-dark .ac-which,
body.theme-auto.dark-active .ac-which,
body.theme-dark .ac-cell,
body.theme-auto.dark-active .ac-cell,
body.theme-dark .ac-span,
body.theme-auto.dark-active .ac-span {
    background: var(--surface-alt) !important;
    background-image: none !important;
    border-color: var(--border) !important;
}

/* عناوينُ ملفّ الإنجاز تقرأ الكحليَّ الخام (‎--pf-royal‎) لا الرمزَ العام،
   فلا يبلغها الشقّ. وهي ثلاثةَ عشرَ موضعاً. */
body.theme-dark #view-portfolio h1,
body.theme-auto.dark-active #view-portfolio h1,
body.theme-dark #view-portfolio h2,
body.theme-auto.dark-active #view-portfolio h2,
body.theme-dark #view-portfolio h3,
body.theme-auto.dark-active #view-portfolio h3,
body.theme-dark .portfolio-title,
body.theme-auto.dark-active .portfolio-title {
    color: var(--ink-primary) !important;
}

/* «تحضير الكل»: أبيضُ على أخضرَ ‎#059669‎ = ‎3.77:1‎ — دون العتبة في
   المظهرين. يُغمَّق الأخضرُ هنا فيبلغ ‎5.9:1‎. (وفي الفاتح كما هو —
   تبديلُه هناك قرارُ تصميمٍ لا إصلاحُ داكن.) */
body.theme-dark .mark-bar-btn,
body.theme-auto.dark-active .mark-bar-btn {
    background: #0B6B4A !important;
    color: #FFFFFF !important;
}

/* ══════════════════════════════════════════════════════════════════════
   ٤) الحبر
   ══════════════════════════════════════════════════════════════════════
   خمسةٌ وأربعون موضعاً تكتب لونَ نصٍّ داكناً بالاسم — تُقلب إلى نظيرها
   الفاتح مع حفظ العائلة اللونية: الكهرماني كهرماني والأحمر أحمر.
   ══════════════════════════════════════════════════════════════════════ */
body.theme-dark,
body.theme-auto.dark-active { color: var(--text); }

/* الرصاصيّ (‎#475467‎ وأخواته)

   و`.btn-ghost` منها: `components.css` يكتبه بالرمز الرصاصيّ فيتبع المظهر،
   لكن `portfolio-theme.css` يعيده كحلياً خالصاً (‎#0F2C5C‎) في كل التطبيق —
   وهو على الداكن ‎1.25:1‎، أي «إلغاء» لا يكاد يُرى. وأربعةٌ وأربعون موضعاً
   يستعمله، أكثرُها في اللوحات التي لا تبلغها أداةُ التباين. */
body.theme-dark .btn-ghost,
body.theme-auto.dark-active .btn-ghost,
body.theme-dark .btn-back-box,
body.theme-auto.dark-active .btn-back-box,
body.theme-dark .chs-chip,
body.theme-auto.dark-active .chs-chip,
body.theme-dark .hub-tile-count,
body.theme-auto.dark-active .hub-tile-count,
body.theme-dark .text-muted,
body.theme-auto.dark-active .text-muted,
body.theme-dark .stat-label,
body.theme-auto.dark-active .stat-label,
body.theme-dark .field-hint,
body.theme-auto.dark-active .field-hint,
body.theme-dark .chev,
body.theme-auto.dark-active .chev,
body.theme-dark .cls-s,
body.theme-auto.dark-active .cls-s,
body.theme-dark .vl.is-empty,
body.theme-auto.dark-active .vl.is-empty,
/* وحبرُ «لم تُنفَّذ» صار مكتوباً صريحاً في `views.css` ليعبر العتبة على
   أرضيّته الفاتحة — فيُعاد هنا إلى الرمز، وإلّا بقي داكناً على داكن. */
body.theme-dark .stg-top .badge.none,
body.theme-auto.dark-active .stg-top .badge.none,
body.theme-dark .lb,
body.theme-auto.dark-active .lb {
    color: var(--text-muted) !important;
}

/* الكهرمانيّ: الانتظار والتنبيه (‎#B45309‎ ‎#8A5A10‎ ‎#92400e‎ ‎#7A6224‎)

   و`:not(.on)` على زرّ الانتظار: حالتُه المفتوحة كهرمانيةٌ ممتلئةٌ بكتابةٍ
   بيضاء، فلو فُتّح حبرُها لصارت بيضاءَ على كهرمان. */
body.theme-dark .sched-box.wait,
body.theme-auto.dark-active .sched-box.wait,
body.theme-dark .sched-wait-btn:not(.on),
body.theme-auto.dark-active .sched-wait-btn:not(.on),
body.theme-dark .sched-v2.is-picking .sched-cell.is-pick .sched-box.empty,
body.theme-auto.dark-active .sched-v2.is-picking .sched-cell.is-pick .sched-box.empty,
body.theme-dark .sch-card.wait .g,
body.theme-auto.dark-active .sch-card.wait .g,
body.theme-dark .sch-card.wait .s,
body.theme-auto.dark-active .sch-card.wait .s,
body.theme-dark .sch-card.wait .chev,
body.theme-auto.dark-active .sch-card.wait .chev,
body.theme-dark .sch-cur .t,
body.theme-auto.dark-active .sch-cur .t,
body.theme-dark .sch-cur .x,
body.theme-auto.dark-active .sch-cur .x,
body.theme-dark .callout-warn,
body.theme-auto.dark-active .callout-warn {
    color: var(--warning) !important;
}

/* الأحمر: الحذف والنقص. ‎#DC2626‎ على الداكن ‎3.5:1‎ — يُفتَّح إلى
   ‎#F87171‎ فيبلغ ‎6.4:1‎ ويبقى أحمرَ يُفهم أنه خطر. */
body.theme-dark .sch-del,
body.theme-auto.dark-active .sch-del,
body.theme-dark .sched-clear,
body.theme-auto.dark-active .sched-clear,
body.theme-dark .mark-bar-miss,
body.theme-auto.dark-active .mark-bar-miss,
body.theme-dark .dz-btn,
body.theme-auto.dark-active .dz-btn,
body.theme-dark .set-logout,
body.theme-auto.dark-active .set-logout,
body.theme-dark .set-row.is-danger .t,
body.theme-auto.dark-active .set-row.is-danger .t {
    color: var(--danger) !important;
}

/* حبرُ بطاقة الهُويّة في ملفّ الإنجاز: كحليٌّ خامٌّ على سطحٍ داكن. */
body.theme-dark .pf-id-value,
body.theme-auto.dark-active .pf-id-value,
/* وسطرُ «المملكة العربية السعودية» صار كحلياً مثلَه، فيلحق به هنا. */
body.theme-dark .pf-id-country,
body.theme-auto.dark-active .pf-id-country,
body.theme-dark .btn-secondary,
body.theme-auto.dark-active .btn-secondary,
body.theme-dark #view-portfolio a,
body.theme-auto.dark-active #view-portfolio a {
    color: var(--ink-primary) !important;
}

/* ══════════════════════════════════════════════════════════════════════
   ٥) ما يبقى كما هو
   ══════════════════════════════════════════════════════════════════════
   الأسطحُ الملوّنة الصلبة — الكحليُّ والذهبيُّ والأخضر — تبقى بلونها،
   وكتابتُها البيضاء عليها مقروءةٌ أصلاً. وهي هُويّة التطبيق: لو قُلبت
   لصار مظهراً آخر لا مظهراً داكناً.
   ══════════════════════════════════════════════════════════════════════ */
body.theme-dark .btn-primary,
body.theme-auto.dark-active .btn-primary,
body.theme-dark .btn-danger,
body.theme-auto.dark-active .btn-danger {
    color: #FFFFFF !important;
}

/* الذهبيُّ سطحاً: كتابتُه تبقى داكنة — وهو أفتحُ من أن يُكتب عليه بالأبيض. */
body.theme-dark .badge-warning,
body.theme-auto.dark-active .badge-warning {
    background: #C9A961 !important;
    color: #1A1508 !important;
}


/* سهمُ منتقي المواد مرسومٌ رمادياً داكناً للأرضية البيضاء — يُفتَّح هنا
   وإلّا اختفى على الداكن. */
body.theme-dark .subp-select,
body.theme-auto.dark-active .subp-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 L6 6.5 L11 1.5' fill='none' stroke='%23A3AEC0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

/* حقولُ الإدخال: الكتابةُ فيها من الحبر لا من لون المتصفّح.

   و`background-color` لا `background`: المختصرُ يمحو أخواته كلَّها —
   `repeat` و`position` و`size` — ولو لم تُذكر. ومنتقي المواد يرسم سهمه
   صورةً بموضعٍ وبلا تكرار، فكان المختصرُ يُعيدهما إلى الأصل فينتشر
   السهمُ مكرَّراً على عرض الحقل: زخرفةٌ متعرّجةٌ تُغطّي اسم المادة.
   واللونُ وحده هو المقصود هنا، فيُكتب وحده. */
body.theme-dark input, body.theme-auto.dark-active input,
body.theme-dark textarea, body.theme-auto.dark-active textarea,
body.theme-dark select, body.theme-auto.dark-active select {
    color: var(--text);
    background-color: var(--surface-alt);
    border-color: var(--border);
}
body.theme-dark ::placeholder,
body.theme-auto.dark-active ::placeholder { color: var(--text-muted); opacity: 1; }

/* الشريطُ السفليُّ زجاجٌ لا سطح: أُخرج من قائمة الأسطح المقلوبة لأنها
   تفرض لوناً صلباً يُذهب الشفّ. وهذه لوحتُه الداكنة — السطحُ المرفوع
   بشفافيّة ‎74٪‎، وحدٌّ أبيضُ خافتٌ يفصله عن الأرضية السوداء. */
/* وحبرُ الأسماء أفتحُ من الخافت العام للسبب نفسِه معكوساً: أفتحُ أرضيةٍ
   يصنعها الزجاج الداكن (بطاقةٌ بيضاء تحته) تُهبط ‎#A3AEC0‎ إلى ‎4.20:1‎. */
body.theme-dark .bottom-nav .bn-item,
body.theme-auto.dark-active .bottom-nav .bn-item {
    color: #D2D8E2 !important;
}
/* والحبّةُ البيضاء تبقى بيضاءَ في الداكن، فحرفُها لا يجوز أن يبقى فاتحاً —
   ‎#D2D8E2‎ على أبيضَ ‎1.36:1‎. يعود إلى لون التطبيق. */
body.theme-dark .bottom-nav .bn-item.is-active,
body.theme-auto.dark-active .bottom-nav .bn-item.is-active {
    color: var(--primary) !important;
}
body.theme-dark .bottom-nav,
body.theme-auto.dark-active .bottom-nav {
    background: rgba(30, 38, 52, .78) !important;
    border-color: rgba(255, 255, 255, .16) !important;
    box-shadow: 0 8px 28px rgba(0, 0, 0, .55),
                0 2px 6px rgba(0, 0, 0, .3),
                inset 0 1px 0 rgba(255, 255, 255, .14) !important;
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    body.theme-dark .bottom-nav,
    body.theme-auto.dark-active .bottom-nav { background: var(--surface-alt) !important; }
}

/* وسمُ الواجب: حبرُه في اللوحة الفاتحة داكنٌ صريح (‎#7A6224‎ و‎#B42318‎)
   لأنه على أرضيّةٍ فاتحةٍ مخلوطة. وتلك الأرضيّةُ تُظلم مع المظهر بينما
   الحبرُ ثابت، فيهبط إلى ‎2.9‎ و‎2.6‎. فيُقلب الحبرُ هنا لا الأرضيّة:
   اللونُ يبقى دالّاً — ذهبيٌّ لليوم وأحمرُ للمتأخر — وهو ما يفيده الوسم. */
body.theme-dark .doc-tag.warn,
body.theme-auto.dark-active .doc-tag.warn { color: #EBD9A6; }
body.theme-dark .doc-tag.late,
body.theme-auto.dark-active .doc-tag.late { color: #F5A9A2; }

/* مربّعُ أيقونة القسم: حبرُه في اللوحة الفاتحة هو البترولي نفسُه على
   أرضيّةٍ منه مخفَّفة. وفي الداكن تُظلم الأرضيّةُ ويبقى الحبرُ بترولياً
   داكناً فيهبط إلى ‎1.46‎ — لا يُرى أصلاً. فيُقلب الحبرُ وأرضيّتُه معاً
   إلى الطرف الفاتح من البترولي، فيبقى اللونُ لونَ الهُويّة ويُقرأ.
   (وهي علّةُ «طباعة» في صفوف المحفوظ عينُها، وقد وقعتُ فيها مرّتين.) */
body.theme-dark .pf-chip,
body.theme-auto.dark-active .pf-chip {
    color: #7FCBDD;
    background: color-mix(in srgb, #7FCBDD 12%, var(--mix-base));
    border-color: color-mix(in srgb, #7FCBDD 26%, var(--mix-base));
}

/* حدُّ زرّ الحضور المُحدَّد (⏰ و📝): في الفاتح يُرسم بـ`--att-ink`
   الغامق، وهو يختفي هنا — قيس على `#161C27`: المتأخّرُ ‎2.41‎ والمستأذنُ
   ‎2.55‎، وعتبةُ الحدود ‎3‎. فيُقلب إلى `--att-color` الفاتح: ‎7.95‎ و‎4.64‎.

   ولمَ قاعدةٌ لا رمزٌ في الشقّ؟ جُرّب `--att-edge: var(--att-ink)` على
   `body` فخرج **فارغاً**: `--att-ink` سطريٌّ على كلّ زرّ ولا وجودَ له عند
   `body`، والرمزُ يُحسب حيث يُعلَن لا حيث يُستعمل — فبطل، ورسم الاحتياطيُّ
   الغامقَ في الوضعين. كشفه قياسُ `borderColor` في المتصفّح لا قراءةُ
   الملفّ. فالقاعدةُ تُوصف مرّتين لأنّ الرمزَ لا يقدر أن يحملها. */
body.theme-dark .att-btn.outline.active,
body.theme-auto.dark-active .att-btn.outline.active {
    border-color: var(--att-color);
    color: var(--att-color);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--att-color) 28%, transparent);
}

/* شريطُ التمرير ولونُ واجهة المتصفّح يتبعان المظهر. */
body.theme-dark, body.theme-auto.dark-active { color-scheme: dark; }

/* ══ ملاحظاتكم: حبرُ النتيجة يُقلب على الداكن ══
   الغامقُ الذي يُقرأ على الأبيض (‎#0E6B4A‎ و‎#B42318‎) يهبط إلى ‎1.6‎ و‎1.7‎
   على سطحٍ داكن — فيُبدَّل بلونَي الحالة الفاتحين: ‎8.88‎ و‎6.17‎ على
   ‎#161C27‎. وهذا عكسُ القاعدة في الفاتح، وهو صحيحٌ في الموضعين. */
body.theme-dark .fb-note.is-good,
body.theme-auto.dark-active .fb-note.is-good { color: var(--success) !important; }
body.theme-dark .fb-note.is-bad,
body.theme-auto.dark-active .fb-note.is-bad  { color: var(--danger)  !important; }
