/* ══════════════════════════════════════════════════════════════════════════
   قشرةُ m.finviro.com — الأنماطُ كلُّها.

   ⛔ **كانت مضمَّنةً في كلّ صفحة** (17,772 محرفاً × 5 شاشات): تُرسَل من جديدٍ
      مع كلّ تنقّلٍ بين التبويبات، ولا تُخزَّن أبداً.
   ⚖ **وملفٌّ مُبصَمٌ يُخزَّن مرّةً**: `?v=` يتغيّر مع المحتوى، فالتحديثُ فوريٌّ
     والتخزينُ دائم. وعاملُ الخدمة يُخزّنه مسبقاً، فأوّلُ رسمٍ بعد أوّل زيارةٍ
     بلا شبكةٍ إطلاقاً — بينما تبقى صفحاتُ HTML **شبكةً أوّلاً** كما هي.
   ⛔ ولا يُعاد تضمينُها: نسختان تعنيان انحرافَهما.
   ══════════════════════════════════════════════════════════════════════════ */
:root{
    /* ⛔ **`color-scheme` كانت غائبةً** (قِيس حيّاً 2026-08-30): فتُرسم ضوابطُ
         النظام — أشرطةُ التمرير وحقولُ الإدخال والقوائم — **فاتحةً على صفحةٍ
         داكنة**. والموقعُ الرئيس يُعلنها منذ البدء (`finviro-base:2667`).
       ⚖ **و`light dark` لا `dark`**: هذا النطاقُ **يتبع تفضيلَ النظام** أدناه،
         وإعلانُ الداكن وحدَه يقلب العطبَ على مستعملِ الوضع الفاتح. */
    color-scheme: light dark;

            /* design-lint:allow-hex — انظر السبب أدناه.
            /* ⚠ **قيمٌ مطابقةٌ لرموز `finviro-base.css`** (--fnv-ink · --fnv-border · --fnv-up …).
               تُكرَّر هنا عمداً لا اختلافاً: نسخةُ الهاتف لا تُحمّل الورقةَ الكاملة (64ك)
               حفاظاً على الخفّة، فالقيم تُنسخ ويُوثَّق مصدرُها. أيّ تغييرٍ في النظام
               يُنقل إلى هنا يدويّاً — وهذا ثمنُ الخفّة، مدفوعٌ بوعي. */
            /* ⛔ **سبعةُ رموزٍ كانت تُعرَّف بـ`var(--fnv-*)` — ولا وجودَ لها هنا**
                 (أُصلح 2026-08-14). التعليقُ أعلاه يقول صراحةً إنّ القيم **تُنسخ**
                 لأنّ نسخةَ الهاتف لا تُحمّل `finviro-base.css` — ثمّ عُرِّف نصفُها
                 **بالإحالة إلى تلك الورقة نفسِها**، فسقطت كلُّها إلى الفراغ.

               ⚖ **ولم يظهر العطبُ لأنّ أغلبَ أثره كان محايداً**: النصُّ يبقى
                 أسودَ افتراضاً، والحدودُ تسقط بهدوء. لكنّ
                 `.m-row--now{background:var(--ink)}` صارت **شفّافةً** ونصُّها
                 أبيض ⇒ **السعرُ الحاليُّ أبيضُ على أبيض، غيرُ مرئيٍّ أصلاً**
                 في شاشتَي «اليوم» و«الرمز». و`--up`/`--dn` فارغتان فلم يظهر
                 الأخضرُ ولا الأحمرُ على رقمٍ واحد.

               ⛔ فالقيمُ **صريحةٌ الآن** كما تقتضي نيّةُ التعليق — مأخوذةً حرفيّاً
                 من `finviro-base.css` (‏--fnv-dark-bg · --fnv-on-dark-1/2 ·
                 --fnv-up/down · --fnv-surface/-2). وأيُّ تغييرٍ في النظام يُنقل
                 يدويّاً؛ وهذا ثمنُ الخفّة، مدفوعٌ بوعي — أمّا الإحالةُ إلى ورقةٍ
                 غيرِ محمّلةٍ فليست خفّةً بل عطبٌ صامت. */
            --ink:#0A0A0A; --ink-2:#555; --ink-3:#666; --line:#e8e8e8; --bg:#fff;
            /* مرادفان بأسماء النظام — يستهلكهما جزءٌ مشترك (`partials/chatwoot`)
               يعمل في الغلافين. بدونهما يسقط الجزء على قيمةٍ غير معرَّفة. */
            --fnv-ink:#0A0A0A; --fnv-bg:#fff;
            /* ⚠ يستهلكهما هذا الغلافُ في 13 موضعاً ولم يكونا معرَّفين قطُّ. */
            --fnv-surface:#FFFFFF; --fnv-surface-2:#FAFAFA;
            /* نصٌّ على خلفيّةٍ سوداء — بقيم --fnv-on-dark-1/2 نفسها */
            --on-dark-1:#E8EAED; --on-dark-2:#9AA0A6;
            --fnv-on-dark-1:#E8EAED; --fnv-on-dark-2:#9AA0A6;
            /* 🎨 الأخضر/الأحمر **لنصّ الأرقام وحده** (ميثاق §4) — لا كخلفيّةٍ ولا كإطار. */
            --up:#15803D; --dn:#B91C1C;
            /* ⛔ البرتقاليّ أُزيل من الواجهة: الميثاق يحصره في **بيانات** الغاما/السيولة،
               وإطارُ تنبيهٍ برتقاليّ لونُ واجهةٍ لا لونُ بيان. البديل التحريريّ:
               حدٌّ أسودُ ثخين — يلفت النظر بالتباين لا باللون. */
            /* ⚠ آخرُ رمزٍ ناجٍ من العائلة نفسِها: `--fnv-font-body` تُعرَّف في
                 `finviro-base.css` **التي لا تُحمَّل هنا**، فالبندُ الأوّلُ في
                 كومة الخطوط ساقطٌ دائماً ويقع الحملُ على 'Readex Pro' بعده.
                 يعمل بالصدفة لا بالتصميم — والقيمةُ تُنسخ كسابقاتها.
                 (كشفه `finviro:design-guard` · 2026-08-14.) */
            --fnv-font-body:'Readex Pro',sans-serif;
            /*
             * ⛔ **`--m` كانت كومةً مكسورة** (صُحّحت 2026-08-15):
             *   `var(--fnv-font-body),'Readex Pro',monospace` تتوسّع إلى
             *   `'Readex Pro',sans-serif,'Readex Pro',monospace` — و`sans-serif`
             *   **عائلةٌ عامّةٌ تُنهي السلسلة**، فما بعدها نصٌّ ميّتٌ يُشحن في كلّ
             *   صفحة. عملت بالصدفة (الاسمُ الأوّلُ صحيح) لا بالتصميم.
             * ⚖ **ولا خطَّ ثانيَ أصلاً**: الميثاق §4 «الخطّ Readex Pro وحده».
             *   فسببُ وجود `--m` ليس عائلةً مختلفةً بل **أرقامٌ ذاتُ عرضٍ ثابت** —
             *   وهذا `font-variant-numeric` لا `font-family`. فصارت `--m` تشير
             *   إلى `--f` نفسِها، وانتقل المعنى إلى الخاصّيّة التي تحمله فعلاً.
             */
            --f:'Readex Pro',system-ui,sans-serif; --m:var(--f);
            /* ⚖ `--tab` مقاسُ **محتوى** الشريط، و`--tab-clear` ما **يشغله** فعلاً
               (زائداً حدَّه العلويّ 1.5px). فصلُهما مقصود: رفعُ `--tab` وحده يرفع
               الشريطَ نفسَه فيطارد الخلوصُ هدفاً متحرّكاً — جُرّب وقِيس (58 ⇒ 60). */
            --tab:56px;
            --tab-clear:calc(56px + 2px);
            /* ⛔ **الوثيقةُ كانت تتمدّد بلا حدّ** (قِيس عند 1440px: العرضُ 1440
                 و`max-width:none` ⇒ **960 بكسل فراغٍ ميّت**، والبطاقاتُ 1412px).
               ⚖ ومن يقع فيه ليس حالةً نادرة: كلُّ لوحٍ · كلُّ هاتفٍ أفقيّاً ·
                 وكلُّ من فتح `m.` من الحاسوب — والنطاقُ مذكورٌ نصّاً في `/app`. */
            --shell:480px;
            /* ⛔ **رمزٌ للسطح الداكن الثابت — لا يُستبدَل بـ`--ink`.**
                 `--ink` رمزُ **نصّ**؛ واستعمالُه خلفيّةً للشريط والأزرار كان يعمل
                 ما دامت السمةُ واحدةً (نصٌّ أسودُ = خلفيّةٌ سوداء بالصدفة). وأوّلُ
                 ليلةٍ داكنةٍ قلبته إلى **#F5F5F5**، فصار الشريطُ أبيضَ ونصُّه أبيض:
                 **تباينٌ 1.09:1** — مُقاسٌ لا مُقدَّر.
               ⚖ وهو الفخُّ نفسُه الذي أسقط سعرَ `.m-row--now` هذا الصباح: **الدورُ
                 لا القيمة**. فما يجب أن يبقى داكناً يأخذ رمزَه الخاصّ. */
            --bar:#0A0A0A;
            --on-bar:#FFFFFF;
        }

        /* ══ السمةُ الداكنة ══
           ⛔ **تطبيقٌ يُقرأ قبل الفجر بلا وضعٍ داكن**: المنتجُ نفسُه يقول إنّه
              يُقرأ «قبل الافتتاح» = 13:30 UTC صيفاً — أي ليلاً في الخليج والمغرب.
              وشاشةٌ بيضاءُ بالكامل في العتمة، بينما `theme_color` أسود.
           ⚖ **والقيمُ من نظام الموقع الرئيس** (`finviro-base.css`) لا مخترَعةٌ هنا:
             نفسُ الأسطح ونفسُ نصوص الداكن — كي لا تتباعد السمتان.
           ⚠ والترتيبُ ملزِم: الافتراضيُّ فاتحٌ على `:root` العارية، ثمّ الداكنُ
             تحت الاستعلام **مشروطاً بألّا يكون الاختيارُ اليدويُّ فاتحاً**، ثمّ
             `[data-theme=dark]` كي يفوز المبدّلُ في الاتّجاهين. */
        @media (prefers-color-scheme: dark) {
            :root:not([data-theme="light"]) {
                --ink:#F5F5F5; --ink-2:#A3A3A3; --ink-3:#8A8A8A;
                --line:#262626; --bg:#0A0A0A;
                --fnv-ink:#F5F5F5; --fnv-bg:#0A0A0A;
                --fnv-surface:#0A0A0A; --fnv-surface-2:#141414;
                --up:#3ECF8E; --dn:#FF6B6B;
                --on-dark-1:#F5F5F5; --on-dark-2:#A3A3A3;
            }
        }
        :root[data-theme="dark"] {
            --ink:#F5F5F5; --ink-2:#A3A3A3; --ink-3:#8A8A8A;
            --line:#262626; --bg:#0A0A0A;
            --fnv-ink:#F5F5F5; --fnv-bg:#0A0A0A;
            --fnv-surface:#0A0A0A; --fnv-surface-2:#141414;
            --up:#3ECF8E; --dn:#FF6B6B;
            --on-dark-1:#F5F5F5; --on-dark-2:#A3A3A3;
        }
        *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
        html{-webkit-text-size-adjust:100%;}
        body{font-family:var(--f);background:var(--bg);color:var(--ink);font-size:15px;
            line-height:1.75;padding-bottom:calc(var(--tab-clear) + env(safe-area-inset-bottom));}

        /*
         * ⛔ **عناصرُ النموذج لا ترث الخطَّ — يفرض المتصفّحُ عليها Arial.**
         *   قِيس على الشاشات الثماني (2026-08-15): مبدّلُ السمة في **كلّ** شاشة،
         *   وزرُّ «اعرض المزيد» في الغاما، ومُرشِّحاتُ المسرد **بنصٍّ عربيّ**
         *   («الاستراتيجيات» · «مؤشّرات مركّبة») — كلُّها Arial لا Readex Pro.
         * ⛔ **والعلاجُ لم يكن قاعدةً بل رقعاً**: كان في «الخدمات» زرٌّ يحمل
         *   `style="font-family:inherit"` مضمَّناً — رقعةٌ تُصلح موضعاً واحداً
         *   وتُخفي أنّ الصنفَ نفسَه مكسورٌ في كلّ موضعٍ آخر. فالقاعدةُ هنا،
         *   والرقعةُ أُزيلت.
         * ⚠ `font-family` وحدَها لا `font: inherit`: الثانيةُ تدهس المقاسَ والوزنَ
         *   المكتوبَين في الأصناف فتُغيّر تخطيطاً لم يُطلَب تغييرُه.
         */
        button,input,select,textarea,optgroup{font-family:inherit;}

        /*
         * ⚖ **وما كانت `--m` تعنيه فعلاً يُنفَّذ هنا.** الميثاق §5: «الأرقام
         *   والرموز داخل نصٍّ عربيّ: `<span dir="ltr">` + `tabular-nums`» —
         *   والشقُّ الثاني كان **غائباً عن نسخة الهاتف كلِّها** (صفرُ ورودٍ
         *   لـ`font-variant-numeric`)، فكانت أرقامُ الأسعار تتراقص عرضاً مع كلّ
         *   تحديث. و`<html>` هنا `dir="rtl"` دائماً، فالمُحدِّدُ يصيب النطاقاتِ
         *   المعزولةَ وحدَها — بما فيها ما يبنيه JS بعد التحميل.
         */
        [dir="ltr"]{font-variant-numeric:tabular-nums;}

        .m-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;
            justify-content:space-between;gap:10px;padding:11px 14px;
            background:var(--bar);color:var(--on-bar);padding-top:calc(11px + env(safe-area-inset-top));}
        /* ⛔ **هدفُ لمسٍ 30×30px** (قِيس على 390px): رابطُ العودة إلى الرئيسة دون حدّ 44.
   ⚖ الحشوةُ تُوسّع **منطقة اللمس** والشعارُ يبقى 30px بصريّاً — لا يتغيّر الشكل.
   والهامشُ السالب يمنع الحشوةَ من إزاحة الترويسة. */
.m-logo{display:flex;align-items:center;justify-content:center;text-decoration:none;
        min-width:44px;min-height:44px;margin-inline-start:-7px;}
        .m-logo img{display:block;width:30px;height:30px;object-fit:contain;}
        .m-top .s{font-family:var(--m);font-size:.8125rem;color:var(--on-dark-1);}
        /* ⚠ الشريطُ أسودُ في السمتين، فألوانُ الزرّ ثابتةٌ لا رمزيّة — ورمزُ
           السمة لا يتبع النصَّ العامّ. و44px حدُّ الهدف اللمسيّ. */
        .m-theme{min-width:44px;min-height:44px;margin-inline-end:-7px;background:none;
            border:0;border-radius:0;color:#fff;font-size:1.15rem;line-height:1;cursor:pointer;}
        .m-theme:focus-visible{outline:2px solid #fff;outline-offset:-4px;}

        .m-wrap{padding:14px;max-width:var(--shell);margin-inline:auto;}

        /* ══ إطارُ التطبيق فوق 640px ══
           ⚖ **لا يُمنَع التمدّدُ فحسب بل يُؤطَّر**: شريطٌ أسودُ يمتدّ عرضَ الشاشة
             ومحتوىً يطفو في وسطه يبدو عطباً؛ وقشرةٌ محدودةٌ بحدٍّ جانبيٍّ على
             أرضيّةٍ أخفتَ تُقرأ **تطبيقاً على شاشةٍ واسعة** — وهي الحقيقة.
           ⚠ والشريطُ السفليُّ `position:fixed`، فالتوسيطُ لا يكفيه `margin`:
             يُثبَّت عند 50٪ ويُزاح بنصف عرضه. */
        @media (min-width:640px){
            body{background:var(--fnv-surface-2);}
            .m-top{max-width:var(--shell);margin-inline:auto;}
            .m-wrap{background:var(--bg);border-inline:1.5px solid var(--line);
                min-height:calc(100dvh - var(--tab-clear));}
            /* ⛔ **جُرّب `inset-inline-start:50%` مع `translateX` فخرج الشريطُ عن
                 الشاشة** (قِيس: 1200→1680 على منفذ 1440). العلّةُ أنّ الإزاحةَ
                 **فيزيائيّةٌ** والتثبيتَ **منطقيّ**، فيتعاكسان في RTL — ثمّ تفوز
                 قاعدةُ `[dir=rtl]` بالتخصيص فتُضاعف الخطأ.
               ⚖ والبديلُ لا يعرف الاتّجاهَ أصلاً: طرفان صفران وهامشٌ تلقائيٌّ —
                 يُوسّط عنصراً مثبَّتاً في LTR وRTL بالقاعدة نفسِها. */
            .m-tabs{inset-inline:0;margin-inline:auto;
                max-width:var(--shell);border-inline:1.5px solid var(--line);}
        }
        .m-card{border:1.5px solid var(--ink);background:var(--fnv-surface);margin-bottom:12px;}
        .m-card__h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;
            padding:10px 13px;border-bottom:1.5px solid var(--ink);}
        /* ⛔ **لا تباعدَ حرفيّاً ولا خطّاً أحاديّاً على وسمٍ عربيّ**: التباعد يفكّ اتّصال
   الحروف («إنشاء الحساب» تخرج مفكّكة)، و JetBrains Mono بلا محارف عربيّة.
   الجزءُ اللاتينيّ وحده يأخذ المعالجة عبر `.n` — والعربيّة على خطّ الجسم.
   (تكرّر الخطأ نفسه في صفحة النماذج السعريّة قبل يوم — فليُسجَّل.) */
        /* ⛔ **أرضيّةُ 13px للعربيّة على الهاتف** (بلاغ المالك: «كلمات صغيرة … لا تحترم
           شروط كتابة وحجم اللغة العربية»). حارسُ `arabic-legibility` أرضيّتُه 12px
           وكانت هذه عندها **بالضبط** فمرّت — والمرورُ ليس مقروئيّة: العربيّةُ تحمل
           نقاطاً وهمزاتٍ تحت 13px تلتحم. ⚖ وما بقي 12px هنا **أرقامٌ لاتينيّةٌ
           بخطٍّ أحاديّ** (`.m-row .d` · `.m-srv .live` · `.m-top .s`) لا نصٌّ عربيّ. */
        .m-card__k{font-size:.8125rem;font-weight:700;color:var(--ink-3);}
        .m-card__k .n{font-family:var(--m);letter-spacing:normal;text-transform:uppercase;}
        .m-card__b{padding:12px 13px;}

        .m-big{font-family:var(--m);font-size:2rem;font-weight:700;line-height:1;}
        /* الرقمُ الكبير أسودُ دائماً؛ والاتّجاه يُقرأ من الرقم المصاحب لا من لون العنوان.
   (كان الحكم يُطبع أخضرَ كاملاً — لونٌ على نصٍّ ليس رقماً، خارج §4.) */
        .m-big{color:var(--ink);}
        .m-num.up{color:var(--up);} .m-num.dn{color:var(--dn);}
        .m-sub{margin-top:5px;font-size:.875rem;color:var(--ink-2);line-height:1.85;}

        .m-row{display:grid;grid-template-columns:1fr auto 66px;align-items:center;gap:9px;
            padding:8px 0;border-bottom:1px solid var(--line);}
        .m-row:last-child{border-bottom:0;}
        .m-row .k{font-size:.8125rem;color:var(--ink-2);}
        .m-row .v{font-family:var(--m);font-size:.95rem;font-weight:700;}
        .m-row .d{font-family:var(--m);font-size:.8125rem;font-weight:700;color:var(--ink-3);text-align:end;}
        /* التغيّرُ رقمٌ ⇒ يأخذ الأخضر/الأحمر (§4: على نصّ الأرقام). */
        .m-row .d.up{color:var(--up);} .m-row .d.dn{color:var(--dn);}
        /* زرُّ «تابِع» داخل صفّ الاكتشاف — ⚠ 44px حدُّ الهدف اللمسيّ. */
        .m-add{min-height:44px;padding:0 10px;border:1.5px solid var(--line);border-radius:0;
            background:var(--fnv-surface);color:var(--ink);cursor:pointer;
            font-family:var(--f);font-size:.75rem;font-weight:700;white-space:nowrap;}
        .m-add:active{background:var(--fnv-surface-2);}
        .m-add:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}

        /* صفٌّ قابلٌ للضغط: يفتح شاشةَ الرمز.
           ⚠ 44px حدُّ الهدف اللمسيّ — الصفُّ الافتراضيّ ‎~36px فلا يكفي إبهاماً.
           ⛔ ولا لونَ رابطٍ ولا تسطير: §4 يحصر التمييزَ في البنية لا الزخرفة،
             والسهمُ يكفي دلالةً على أنّ الصفَّ يفتح شيئاً. */
        a.m-row--tap{min-height:44px;text-decoration:none;color:inherit;}

        /* **رابطٌ نصّيٌّ مستقلٌّ يملأ فقرتَه** ⇒ هدفٌ لمسيٌّ كامل (أُضيف 2026-08-18).
           ⚖ قِيس في متصفّحٍ حقيقيٍّ على `m.finviro.com`: «أو راسلنا عبر النموذج»
             **18 بكسلاً** — أقلُّ من نصف الحدّ.
           ⛔ ولا يسري على روابط الجُمل: تلك يستثنيها WCAG 2.5.5 صراحةً، وتكبيرُها
              يكسر إيقاعَ السطر. فالصنفُ يُطلَب صراحةً ولا يُفرَض على `.m-sub a`. */
        .m-taplink{display:inline-flex;align-items:center;min-height:44px;}
        a.m-row--tap .k::after{content:' ›';color:var(--ink-3);font-weight:700;}
        a.m-row--tap:active{background:var(--fnv-surface-2);}
        a.m-row--tap:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
        .m-row--now{background:var(--bar);margin:4px -13px;padding:9px 13px;}
        .m-row--now .k{color:var(--on-dark-1);font-weight:700;} .m-row--now .v{color:#fff;font-size:1.15rem;}
        .m-row--now .d{color:var(--on-dark-2);}

        .m-note{font-size:.8125rem;color:var(--ink-3);line-height:1.7;}
        .m-empty{padding:22px 14px;text-align:center;color:var(--ink-2);font-size:.85rem;}

        /* شريط التبويب: إبهامٌ واحد يبلغ كلّ شيء — لا قائمةَ هامبرغر تُخفي الأدوات. */
        .m-tabs{position:fixed;inset-inline:0;bottom:0;z-index:30;display:grid;
            /* ⚖ خمسةٌ لا أربعة: أُضيف تبويبُ الغاما — وخمسةٌ حدُّ ما يُقرأ ويُلمَس
   على 320px (كلٌّ 64px ≥ حدّ الهدف اللمسيّ عرضاً). */
            grid-template-columns:repeat(5,1fr);background:var(--fnv-surface);border-top:1.5px solid var(--ink);
            padding-bottom:env(safe-area-inset-bottom);}
        .m-tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;
            gap:3px;height:var(--tab);text-decoration:none;color:var(--ink-3);font-size:.8125rem;font-weight:600;}
        /* ⚖ **مخفيٌّ بصريّاً لا عن قارئ الشاشة**: `display:none` كان سيحذفه من
           شجرة الوصول أيضاً. الصفحةُ كانت بلا **أيّ** عنوانٍ دلاليّ، وقارئُ الشاشة
           يتنقّل بالعناوين — فبلا عنوانٍ لا خريطةَ للصفحة. */
        .fnv-skip{position:fixed;inset-inline-start:12px;top:-100px;z-index:10000;
            background:var(--bar);color:var(--on-bar) !important;padding:12px 20px;min-height:44px;
            display:inline-flex;align-items:center;font-size:.9375rem;font-weight:700;
            text-decoration:none;border:2px solid #fff;transition:top .15s ease-out;}
        .fnv-skip:focus{top:12px;}
        #m-main:focus{outline:none;}
        .m-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
            clip:rect(0 0 0 0);white-space:nowrap;border:0;}
        /* ترقيةُ عناوين الأقسام إلى h2 دلاليّاً **بلا أثرٍ بصريّ** */
        h2.m-card__k{margin:0;font-size:inherit;font-weight:inherit;color:inherit;line-height:inherit;}
        .m-tabs a.on{color:var(--ink);}
        .m-tabs a.on i{background:var(--ink);}
        .m-tabs i{width:20px;height:3px;background:transparent;display:block;}

        /* بطاقةُ خدمة: عنوان + جملةٌ واحدة + حالةٌ حيّة إن وُجدت */
        .m-srv{border-bottom:1px solid var(--line);padding:11px 0;}
        .m-srv:last-child{border-bottom:0;}
        .m-srv b{display:block;font-size:.88rem;font-weight:700;}
        .m-srv p{margin-top:3px;font-size:.8125rem;color:var(--ink-2);line-height:1.8;}
        .m-srv .live{display:inline-block;margin-top:5px;font-family:var(--m);font-size:.8125rem;
            font-weight:700;border:1px solid var(--line);padding:2px 8px;}

        /* قائمةُ المتابعة: رقاقاتٌ تُزال بلمسة + حقلُ إضافةٍ بإكمالٍ أصليّ.
           ⚠ 44px حدُّ الهدف اللمسيّ — أصغرُ منه يُخطئه الإبهامُ فيُزال الرمزُ الخطأ. */
        .m-chips{display:flex;flex-wrap:wrap;gap:7px;}
        .m-chips form{margin:0;}
        .m-chips button{display:inline-flex;align-items:center;gap:6px;min-height:44px;
            padding:0 12px;border:1.5px solid var(--line);background:var(--fnv-surface);
            border-radius:0;font-family:var(--m);font-size:.8125rem;font-weight:700;
            color:var(--ink);cursor:pointer;}
        .m-chips button:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
        /* ⛔ 16px حدّاً أدنى: أصغرُ منه يُكبّر iOS الصفحةَ تلقائيّاً عند التركيز. */
        .m-in{width:100%;min-height:48px;padding:0 12px;border:1.5px solid var(--line);
            border-radius:0;background:var(--fnv-surface);color:var(--ink);
            font-family:var(--m);font-size:16px;font-weight:700;}
        .m-in:focus{outline:2px solid var(--ink);outline-offset:-2px;border-color:var(--ink);}

        /* مُنتقي الوحدات: خياراتٌ تُلمس لا قائمةٌ منسدلة */
        .m-pick{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
        .m-pick label{display:flex;align-items:center;gap:8px;padding:11px 12px;min-height:62px;
            border:1.5px solid var(--line);font-size:.8125rem;font-weight:600;cursor:pointer;line-height:1.5;}
        /* ⛔ `accent-color` يُبقي استدارةَ النظام — و§4 صفرُ استدارة. مربّعٌ مبنيٌّ يدويّاً:
   حدٌّ أسود، وعلامةُ صحٍّ تُرسم بـclip-path بلا صورةٍ ولا خطّ أيقونات. */
        .m-pick input{appearance:none;-webkit-appearance:none;width:19px;height:19px;flex:0 0 19px;
            border:1.5px solid var(--ink);background:var(--fnv-surface);border-radius:0;display:grid;place-content:center;}
        .m-pick input::before{content:'';width:11px;height:11px;transform:scale(0);background:var(--ink);
            clip-path:polygon(14% 44%,0 65%,40% 100%,100% 16%,80% 0,38% 62%);}
        .m-pick input:checked{background:var(--fnv-surface);}
        .m-pick input:checked::before{transform:scale(1);}
        .m-pick input:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
        .m-pick label:has(input:checked){border-color:var(--ink);background:var(--fnv-surface-2);}

        .m-btn{display:block;padding:13px;border:1.5px solid var(--bar);background:var(--bar);
            color:var(--m-btn-fg,#fff)!important;text-align:center;text-decoration:none;font-weight:700;font-size:.88rem;}
        /* ⚖ لونُ النصّ رمزٌ محلّيّ (2026-09-28): الـ!important القائمُ يقرؤه، فيُغيَّر بإعادة تعريف الرمز لا بـ!important ثانٍ */
        .m-btn--ghost{background:var(--fnv-surface);--m-btn-fg:var(--ink);}

        /*
         * ── مُرشِّحاتٌ (شرائحُ ترشيحٍ في الغاما والمسرد) ──
         *
         * ⛔ **كانت مُعرَّفةً في `mobile/gamma` وحدَه ومُستعمَلةً في المسرد أيضاً.**
         *    وأنماطُ الشاشة لا تعبر إلى شاشةٍ أخرى — فسبعُ شرائحَ في المسرد
         *    («التحليل الكمّيّ» · «التدفّق والمؤسّسات» …) كانت **أزراراً بلا نمط**:
         *    خلفيّةُ المتصفّح الافتراضيّة `#EFEFEF` ونصٌّ أسود — **جزيرةٌ فاتحةٌ
         *    وسط سمةٍ داكنة**. (قِيس 2026-08-15 على 375px.)
         * ⚠ ولم يلتقطها فحصُ التباين: النسبةُ 18.26 — سليمةٌ رقميّاً، والعطبُ
         *   أنّ اللونَ ليس لوناً اخترناه أصلاً.
         * ⚖ فالتعريفُ هنا **مرّةً واحدة**، وحُذفت النسخةُ من `gamma`.
         */
        .g-filt{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap;}
        /* ⚠ 44px حدُّ الهدف اللمسيّ. */
        .g-f{min-height:44px;padding:0 13px;border:1.5px solid var(--line);background:var(--fnv-surface);
            color:var(--ink-2);border-radius:0;font-size:.8125rem;font-weight:700;cursor:pointer;}
        .g-f.on{border-color:var(--ink);color:var(--ink);background:var(--fnv-surface-2);}
        .g-f:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}

        /* إشعار الحاسوب: يظهر قبل أيّ إجراءٍ يستحقّ شاشةً أوسع */
        .m-desk{border:1.5px solid var(--ink);border-inline-start-width:5px;padding:12px 14px;
            margin-bottom:12px;font-size:.8125rem;line-height:1.85;color:var(--ink-2);}
        .m-desk b{color:var(--ink);}

        a{color:inherit;}
        /* ⛔ **كان استعلامين بصيغتين** (`reduce)` و`reduce)` بمسافة) في موضعين
             متباعدين — أي قاعدةً واحدةً في مكانين تنحرفان. وُحّدا هنا. */
        @media (prefers-reduced-motion:reduce){
            /* ⚖ **`0.01ms` لا `none`** (وُوئمت 2026-08-18 مع `finviro-base`):
                 `none` يُلغي الحركةَ فلا يُطلَق `animationend`/`transitionend`،
                 فيتعلّق كودٌ ينتظره. والواحدُ من مئة ملّي ينهيها فوراً **ويُطلق الحدث**. */
            *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
                transition-duration:.01ms!important;scroll-behavior:auto!important;}
            .fnv-skip{transition-duration:.01ms;}
        }

/* ══ صدرُ الشاشة والباقات (2026-09-28 · بلاغُ المالك: «تصميمٌ جذّابٌ مثل الرئيسيّة · عمليّةٌ في الاشتراك») ══
   ⚖ لغةُ الرئيسيّة نفسُها: لوحٌ حبريٌّ بعنوانٍ ثقيل وكلمةٌ في صندوقٍ مقلوب · زاويةٌ صفريّة · بلا ظلال (§4أ). */
.m-hero{background:var(--bar);color:var(--on-bar);padding:20px 16px 18px;margin:0 -14px 14px;border-bottom:1.5px solid var(--ink);}
.m-hero__k{font-size:.8125rem;font-weight:700;color:var(--on-dark-2);margin:0 0 8px;}
.m-hero__h{font-size:2rem;font-weight:800;line-height:1.25;margin:0 0 10px;color:var(--on-bar);}
.m-hero__h span{display:inline-block;background:var(--on-bar);color:var(--bar);padding:0 8px;}
.m-hero__p{font-size:.94rem;line-height:1.95;color:var(--on-dark-1);margin:0 0 12px;}
.m-hero__live{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin:0 0 14px;padding:9px 0;
    border-block:1px solid var(--on-dark-2);font-size:.8125rem;color:var(--on-dark-1);}
.m-hero__live b{font-weight:800;color:var(--on-bar);}
.m-hero__acts{display:grid;gap:9px;}
.m-hero .m-btn{background:var(--on-bar);--m-btn-fg:var(--bar);border-color:var(--on-bar);}
.m-hero .m-btn--ghost{background:transparent;--m-btn-fg:var(--on-bar);border-color:var(--on-bar);}
.m-hero__note{margin:10px 0 0;font-size:.8125rem;color:var(--on-dark-2);}
.m-pill{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;margin-inline-start:auto;
    border:1.5px solid var(--on-bar);color:var(--on-bar);font-size:.8125rem;font-weight:800;text-decoration:none;}
.m-pill:focus-visible{outline:2px solid var(--on-bar);outline-offset:2px;}

.m-plan{border:1.5px solid var(--ink);background:var(--fnv-surface);padding:14px 14px 16px;margin-bottom:12px;}
.m-plan--best{border-width:3px;}
.m-plan__hd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.m-plan__n{margin:0;font-size:1.1rem;font-weight:800;}
.m-plan__tag{font-size:.8125rem;font-weight:800;background:var(--ink);color:var(--bg);padding:2px 8px;}
.m-plan__price{display:flex;align-items:baseline;gap:8px;margin:4px 0;}
.m-plan__price b{font-family:var(--m);font-size:2.1rem;font-weight:800;line-height:1;}
.m-plan__price span{font-size:.875rem;color:var(--ink-2);}
.m-plan__sub{margin:0 0 8px;font-size:.8125rem;color:var(--ink-3);}
.m-plan__f{list-style:none;margin:8px 0 6px;padding:0;border-top:1px solid var(--line);}
.m-plan__f li{position:relative;padding:7px 18px 7px 0;border-bottom:1px solid var(--line);font-size:.875rem;line-height:1.7;}
.m-plan__f li::before{content:'✓';position:absolute;inset-inline-start:0;top:7px;font-weight:800;}
.m-plan__more{margin:0 0 12px;font-size:.8125rem;color:var(--ink-3);}
.m-sub--flush{margin-top:0;}
.m-gap{margin-top:10px;}
.m-row__live{font-family:var(--f);font-size:.8125rem;font-weight:600;color:var(--ink-2);}
/* شاهدُ الرقم وما يعرفه السوقُ مسبقاً (FNV-D410) — المكوّنُ نفسُه في الحاسوب، وهنا مظهرُه بلغة الهاتف */
.fnv-wit{display:block;margin-top:2px;font-family:var(--f);font-size:.8125rem;font-weight:400;line-height:1.6;color:var(--ink-3);}
.fnv-wit.is-held{color:var(--ink-2);font-weight:700;}
.m-cal{list-style:none;margin:0;padding:0;}
.m-cal li{padding:9px 0;border-top:1px solid var(--line);}
.m-cal li:first-child{border-top:0;padding-top:0;}
.m-cal b{display:block;font-size:.8125rem;color:var(--ink-3);}
.m-cal span{display:block;font-size:.875rem;line-height:1.8;color:var(--ink);}
.m-cal small{display:block;font-size:.8125rem;color:var(--ink-2);}
