/* زامِن — نظام تصميم الموقع التسويقي (المرحلة ١). ذاتي الاستضافة بالكامل (المادة ٧). RTL أولاً. */

/* ===== الرموز (Design Tokens) ===== */
:root {
  /* الألوان — هوية زامِن (docs/02-brand-identity) */
  --navy: #0b2447;      /* Deep Sync Blue */
  --blue: #19376d;      /* Tech Blue */
  --cyan: #1fd8c7;      /* Pulse Cyan (لون البطل — بحذر) */
  --ink: #0a1128;       /* نص المتن */
  --paper: #eef3f8;     /* خلفيات فاتحة */
  --grey: #5a6b82;      /* نص ثانوي */
  --line: #dbe4ee;      /* حدود */
  --white: #ffffff;

  /* مقياس المسافات (8px base) */
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px;
  --s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 96px;

  /* أنصاف الأقطار والظلال */
  --r-sm: 8px; --r-md: 14px; --r-lg: 22px; --r-pill: 999px;
  --shadow-sm: 0 1px 3px rgba(11,36,71,.08);
  --shadow-md: 0 8px 24px rgba(11,36,71,.10);
  --shadow-lg: 0 20px 48px rgba(11,36,71,.14);

  --container: 1120px;
  --container-narrow: 760px;
}

/* ===== أساس ===== */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-body); color: var(--ink); background: var(--white); line-height: 1.75; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-family: var(--font-head); line-height: 1.25; color: var(--navy); }
p { color: var(--ink); }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, :focus-visible {
  outline: 3px solid var(--cyan); outline-offset: 2px; border-radius: 4px;
}

/* ★ **احترام تفضيل تقليل الحركة** (المرحلة ٦، بند الوصول).
   الموقع يستعمل انتقالات على الأزرار والبطاقات و`transform` عند التحويم؛ ومن
   ضبط النظام على «قلّل الحركة» يفعل ذلك لسببٍ طبّي غالباً (الدوار · حساسية
   الحركة). فتُلغى الحركة **ولا تُلغى الحالة**: التحويم يبقى مرئيّاً باللون
   والحدّ، وهو ما يهمّ. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }

  .btn:hover, .card:hover { transform: none; }
}
img { max-width: 100%; height: auto; }
.lat { font-family: var(--font-latin); direction: ltr; display: inline-block; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; inset-inline-start: -9999px; top: 0; background: var(--navy); color: #fff; padding: var(--s-3) var(--s-5); z-index: 100; }
.skip-link:focus { inset-inline-start: 0; }

/* ===== التخطيط ===== */
.wrap { max-width: var(--container); margin: 0 auto; padding: 0 var(--s-5); }
.wrap-narrow { max-width: var(--container-narrow); margin: 0 auto; padding: 0 var(--s-5); }
.section { padding: var(--s-8) 0; }
.section--paper { background: var(--paper); }
.section__head { text-align: center; max-width: 640px; margin: 0 auto var(--s-7); }
.section__head h2 { font-size: clamp(26px, 4vw, 36px); }
.section__head p { color: var(--grey); font-size: 18px; margin-top: var(--s-3); }
.grid { display: grid; gap: var(--s-5); }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 860px) { .grid--3, .grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; } }

/* ===== الأزرار ===== */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
  font-family: var(--font-head); font-weight: 700; font-size: 16px; padding: var(--s-3) var(--s-6);
  border-radius: var(--r-pill); border: 2px solid transparent; cursor: pointer; transition: transform .12s, box-shadow .12s, background .12s; text-decoration: none; }
.btn:hover { text-decoration: none; transform: translateY(-1px); }
.btn--primary { background: var(--cyan); color: var(--ink); box-shadow: var(--shadow-sm); }
.btn--primary:hover { box-shadow: var(--shadow-md); }
.btn--secondary { background: var(--blue); color: #fff; }
.btn--ghost { background: transparent; color: var(--navy); border-color: var(--line); }
.btn--ghost:hover { border-color: var(--blue); }

/* ★ **زرّ ghost على سطحٍ داكن كان غير مقروء حرفيّاً** (المرحلة ٦).
   لونه `--navy` وخلفية البطل تدرّجٌ من `--navy` — أي نصٌّ بلون خلفيّته: نسبة
   تباينٍ **1.00:1** حسبتُها لا قدّرتُها. وهو زرّ «تصفّح الحلول» في أوّل شاشة
   يراها الزائر، وأحد زرَّي صفحة الحلّ.
   والعلاج بالسياق لا بتغيير الأساس: الزرّ سليمٌ على الأبيض حيث يظهر في اثني عشر
   موضعاً آخر. */
.hero .btn--ghost,
.site-footer .btn--ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, .5);
}
.hero .btn--ghost:hover,
.site-footer .btn--ghost:hover {
  border-color: var(--cyan);
  background: rgba(255, 255, 255, .08);
}

/* وحلقة التركيز السماوية تختفي على الأبيض حين تلامس حدّاً فاتحاً — فتُضاف هالة
   داكنة تحتها. والاثنتان معاً مرئيّتان على كل سطح. */
.btn:focus-visible { outline-offset: 3px; }
.btn--block { width: 100%; }

/* ===== البطاقات ===== */
.card { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-md); padding: var(--s-6); box-shadow: var(--shadow-sm); transition: box-shadow .15s, transform .15s; }
.card:hover { box-shadow: var(--shadow-md); }
.card h3 { font-size: 20px; margin-bottom: var(--s-2); }
.card p { color: var(--grey); }
.card__icon { width: 48px; height: 48px; border-radius: var(--r-sm); background: var(--paper); display: grid; place-items: center; margin-bottom: var(--s-4); color: var(--blue); }

/* بطاقة حلّ */
.solution-card { display: block; color: inherit; }
.solution-card:hover { text-decoration: none; }
.solution-card .more { color: var(--blue); font-weight: 700; }

/* ===== الشارات وشريط الثقة ===== */
.badge { display: inline-block; font-size: 13px; font-weight: 700; color: var(--blue); background: rgba(31,216,199,.14); padding: var(--s-1) var(--s-3); border-radius: var(--r-pill); }
.trust-bar { display: flex; flex-wrap: wrap; gap: var(--s-5); justify-content: center; align-items: center; color: var(--grey); }
.trust-bar strong { color: var(--navy); }

/* ===== البطل (Hero) ===== */
.hero { background: linear-gradient(160deg, var(--navy), var(--blue)); color: #fff; padding: var(--s-9) 0; }
.hero h1 { color: #fff; font-size: clamp(30px, 5vw, 50px); }
.hero p { color: #cfe0f5; font-size: 20px; margin: var(--s-5) 0; max-width: 620px; }
.hero .actions { display: flex; flex-wrap: wrap; gap: var(--s-4); }

/* ===== جداول الأسعار ===== */
.plan-table { width: 100%; }
.plan-card { display: flex; flex-direction: column; }
.plan-card .price { font-family: var(--font-head); font-size: 34px; color: var(--navy); font-weight: 800; margin: var(--s-3) 0; }
.plan-card .price small { font-size: 15px; color: var(--grey); font-weight: 500; }
.plan-card ul { list-style: none; margin: var(--s-4) 0; display: grid; gap: var(--s-2); }
.plan-card li { padding-inline-start: var(--s-5); position: relative; color: var(--ink); }
.plan-card li::before { content: "✓"; position: absolute; inset-inline-start: 0; color: var(--cyan); font-weight: 800; }
.plan-card--featured { border-color: var(--cyan); box-shadow: var(--shadow-md); }
/* رابط التفاصيل: نصٌّ هادئ تحت الأزرار — مسارٌ للقارئ لا دعوة تنافس زرّ الشراء */
.plan-card__more { display: block; margin-top: var(--s-3); text-align: center; font-size: 14px; font-weight: 600; color: var(--grey); }
.plan-card__more:hover { color: var(--navy); }

/* ===== النماذج ===== */
.field { margin-bottom: var(--s-4); }
.field label { display: block; font-weight: 700; color: var(--navy); margin-bottom: var(--s-2); }
.field input, .field textarea, .field select { width: 100%; font-family: inherit; font-size: 16px; padding: var(--s-3) var(--s-4); border: 1px solid var(--line); border-radius: var(--r-sm); background: #fff; color: var(--ink); }
.field textarea { min-height: 140px; resize: vertical; }
.field .error-msg { color: #b3261e; font-size: 14px; margin-top: var(--s-2); }
.hp-field { position: absolute; inset-inline-start: -9999px; width: 1px; height: 1px; overflow: hidden; }
.alert { padding: var(--s-4) var(--s-5); border-radius: var(--r-sm); margin-bottom: var(--s-5); }
.alert--success { background: rgba(31,216,199,.14); color: #0a5a4f; border: 1px solid rgba(31,216,199,.4); }
.alert--error { background: #fdecea; color: #b3261e; border: 1px solid #f5c2c0; }

/* ===== دعوة ختامية ===== */
.cta-band { background: var(--navy); color: #fff; border-radius: var(--r-lg); padding: var(--s-8); text-align: center; }
.cta-band h2 { color: #fff; font-size: clamp(24px, 3.5vw, 34px); }
.cta-band p { color: #cfe0f5; margin: var(--s-4) 0 var(--s-6); }

/* ===== المقالات (Prose من Markdown آمن) ===== */
.prose { max-width: 720px; }
.prose h2, .prose h3 { margin: var(--s-6) 0 var(--s-3); }
.prose p, .prose ul, .prose ol { margin-bottom: var(--s-4); color: var(--ink); }
.prose ul, .prose ol { padding-inline-start: var(--s-5); }
.prose a { color: var(--blue); text-decoration: underline; }
.prose code { background: var(--paper); padding: 2px 6px; border-radius: 4px; }

/* ===== دراسة الحالة ===== */
.case-block { margin-bottom: var(--s-6); }
.case-block h3 { color: var(--blue); margin-bottom: var(--s-2); }
.results { display: flex; flex-wrap: wrap; gap: var(--s-5); }
.results .stat { background: var(--paper); border-radius: var(--r-md); padding: var(--s-5); text-align: center; min-width: 140px; }
.results .stat b { display: block; font-family: var(--font-head); font-size: 30px; color: var(--navy); }

/* ===== الترويسة والملاحة ===== */
.site-header { background: var(--navy); color: #fff; position: sticky; top: 0; z-index: 40; }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; height: 68px; }
.site-header .brand { font-family: var(--font-head); font-weight: 800; font-size: 22px; color: #fff; }
.site-header .brand:hover { text-decoration: none; }
/* `flex-wrap` لا فيضٌ أفقي: الكتالوج ينمو من اللوحة (المادة ٤)، فمنتجٌ جديد كان
   يدفع الملاحة خارج الشاشة في النطاق ٨٦١–١٠٠٠ بكسل — حيث لم تظهر أيقونة الجوّال
   بعد. والالتفاف يجعل العدد بلا سقف بلا سطر JavaScript. */
.main-nav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3) var(--s-5); }
.main-nav a { color: #dbe7f7; font-weight: 600; }
.main-nav a:hover { color: #fff; }
.main-nav .btn { padding: var(--s-2) var(--s-5); }
/* الصفحة الحالية: خطٌّ تحتها لا لونٌ وحده — التمييز باللون وحده يسقط عند ضعف
   تمييز الألوان، والوسم `aria-current` يقوله لقارئ الشاشة أصلاً. */
.main-nav a[aria-current="page"] { color: #fff; text-decoration: underline; text-underline-offset: 6px; }
/* ── الأب وأبناؤه: «الأسعار ▾» تطوي خمسة منتجات ──────────────────────────
   خمسة منتجات مسطّحة جعلت الشريط أربعة عشر عنصراً يلتفّ سطرين على ١٤٤٠ بكسل.
   والطيّ بـ`<details>` لا بسكربت: يعمل بالنقر وبلوحة المفاتيح، ويعلنه قارئ
   الشاشة مطويّاً/مفتوحاً بلا `aria` يدوي (المادة ٧). */
.nav-group { position: relative; }
.nav-group > summary {
    list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 5px;
    color: #dbe7f7; font-weight: 600;
}
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::marker { content: ''; }
.nav-group > summary:hover,
.nav-group[open] > summary,
.nav-group.is-active > summary { color: #fff; }
/* الأب موسومٌ حين يكون الابن هو الصفحة — بخطٍّ لا بلونٍ وحده */
.nav-group.is-active > summary { text-decoration: underline; text-underline-offset: 6px; }
.nav-group__caret { font-size: 11px; transition: transform .15s; }
.nav-group[open] .nav-group__caret { transform: rotate(180deg); }

.nav-group__panel {
    position: absolute; top: calc(100% + 12px); inset-inline-start: 0;
    min-width: 240px; display: grid; gap: 2px; z-index: 60;
    background: var(--navy); border: 1px solid rgba(219,231,247,.18);
    border-radius: var(--r-md); padding: var(--s-3);
    box-shadow: 0 18px 44px -20px rgba(0,0,0,.6);
}
.nav-group__panel a { display: block; padding: var(--s-2) var(--s-3); border-radius: var(--r-sm); }
.nav-group__panel a:hover { background: rgba(255,255,255,.09); color: #fff; }
.nav-group__panel a[aria-current="page"] { background: rgba(31,216,199,.14); color: #fff; text-decoration: none; }
/* الفاصل بعد «كل الباقات»: هو مدخل عامّ وما بعده منتجات بعينها */
.nav-group__panel a:first-child { border-bottom: 1px solid rgba(219,231,247,.16); border-radius: 0; margin-bottom: var(--s-2); padding-bottom: var(--s-3); }

/* مدخل العملاء: ثانويٌّ بحدٍّ خفيف — لا ينافس زرّ التواصل ولا يذوب في الروابط */
.nav-client { border: 1px solid rgba(219,231,247,.35); border-radius: var(--r-sm); padding: var(--s-2) var(--s-4); }
.nav-client:hover { border-color: rgba(255,255,255,.7); }
/* ملاحظة أسفل نموذج — نصٌّ صغير هادئ لا تحذير */
.form-note { font-size: 13.5px; color: var(--grey); margin-top: var(--s-4); }
/* ── الإفصاح الأصيل: `<details>` بلا JavaScript (المادة ٧) ────────────────── */

/* `display: contents` يُذيب غلاف `<details>` فتشارك الملاحة تخطيط الرأس كما كانت */
.nav-disclosure { display: contents; }

/* ★ ولا يكفي وحده منذ Chrome 131: المتصفّح صار يلفّ محتوى `<details>` في صندوق
   `::details-content` ويضع عليه `content-visibility: hidden` وهي مطويّة. فمع
   `display: contents` على `<details>` يصير **ذلك الصندوق** عنصرَ الفلكس في الرأس
   لا `<nav>`، وينهار عرضه إلى صفر — فتُصفّ روابط الشريط العلوي عموداً خارج الشاشة
   وتختفي **على الحاسب** بينما تعمل على الجوّال.
   وهو عطبٌ صامت: القياس يقول إنّ الروابط مُصيَّرة ولها أبعاد، وإحداثيّها السالب
   وحده يكشف أنّها خارج المنظور. فيُذاب الصندوق الوسيط كما أُذيب غلافه. */
.nav-disclosure::details-content { display: contents; content-visibility: visible; }

/* الشاشات العريضة: لا مقبض، والملاحة ظاهرة دائماً مهما كانت حالة الطيّ */
.nav-toggle { display: none; }
.nav-disclosure > .main-nav { display: flex; }

/* المثلّث الافتراضي لا يليق بمقبض ☰ */
.nav-toggle::-webkit-details-marker { display: none; }
.nav-toggle::marker { content: ''; }

@media (max-width: 860px) {
    .nav-toggle {
        display: block;
        list-style: none;
        background: none;
        border: 0;
        color: #fff;
        font-size: 24px;
        cursor: pointer;
        /* هدف لمسٍ ٤٤ بكسل — الحدّ الأدنى المريح على الجوّال */
        min-width: 44px;
        min-height: 44px;
        line-height: 44px;
        text-align: center;
    }

    /* مطويّة ⇒ مخفيّة · مفتوحة ⇒ عمود تحت الرأس. والحالة من HTML لا من صنف يضيفه سكربت. */
    .nav-disclosure > .main-nav { display: none; }

    .nav-disclosure[open] > .main-nav {
        display: flex;
        position: absolute;
        top: 68px;
        inset-inline: 0;
        flex-direction: column;
        align-items: stretch;
        background: var(--navy);
        padding: var(--s-4) var(--s-5);
        gap: var(--s-4);
        z-index: 20;
    }

    /* على الجوّال لا تطفو المجموعة فوق شيء — تنداح داخل العمود مُزاحةً بحدٍّ
       جانبي يقول «هؤلاء أبناء». والقائمة كلّها مطويّة أصلاً خلف المقبض ☰. */
    .nav-group__panel {
        position: static; min-width: 0; margin-top: var(--s-3);
        background: none; border: 0; box-shadow: none; padding: 0 0 0 0;
        border-inline-start: 2px solid rgba(31,216,199,.5);
        padding-inline-start: var(--s-4);
        gap: var(--s-3);
    }
    .nav-group__panel a:first-child { border-bottom: 0; margin-bottom: 0; padding-bottom: var(--s-2); }
    .nav-group__panel a { padding-inline: 0; }
}

/* ===== التذييل ===== */
.site-footer { background: var(--ink); color: #9fb6d6; padding: var(--s-8) 0 var(--s-6); }
.site-footer a { color: #cfe0f5; }
.footer-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: var(--s-6); margin-bottom: var(--s-6); }
@media (max-width: 760px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
.footer-col h4 { color: #fff; font-size: 15px; margin-bottom: var(--s-3); }
.footer-col ul { list-style: none; display: grid; gap: var(--s-2); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: var(--s-5); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); font-size: 14px; }
.markets { display: flex; gap: var(--s-3); flex-wrap: wrap; }

/* ===== محافظة على أنماط المرحلة ٠ (عدم انحدار: صفحات الأخطاء والتجريب) ===== */
main { min-height: 50vh; }
.demo h1 { font-size: 34px; color: var(--navy); margin-bottom: 12px; }
.lead { color: var(--grey); font-size: 18px; margin-bottom: 28px; }
.proof { display: grid; grid-template-columns: max-content 1fr; gap: 10px 20px; background: var(--paper); padding: 20px 24px; border-radius: 14px; }
.proof dt { font-weight: 700; color: var(--navy); }
.switch { margin-top: 24px; }
.error { text-align: center; padding: 64px 0; }
.error h1 { font-size: 64px; color: var(--cyan); }
.detail { text-align: start; background: var(--paper); padding: 12px; border-radius: 8px; overflow: auto; margin-top: 12px; }

/* ===== لوحة الإدارة — نظام «السجلّ» (المرحلة ٤)
   رصانة تحريرية: شريط navy بنبضة سيان على النشط، محتوى «ورقي»، جداول سجلّية
   بأرقام ثابتة الخانات. RTL بخصائص منطقية، بلا JS، صفر أصل خارجي (المادة ٧). ===== */
:root {
  --admin-rail: 248px;
  --ok: #0f7a68; --ok-bg: rgba(31,216,199,.16);
  --warn: #8a5a00; --warn-bg: rgba(240,175,40,.18);
  --danger: #b3261e; --danger-bg: rgba(179,38,30,.10);
}

.admin-shell { display: grid; grid-template-columns: var(--admin-rail) 1fr; min-height: 100vh; background: var(--paper); }

/* — الشريط الجانبي — */
.admin-side {
  background: linear-gradient(180deg, var(--navy) 0%, #081a35 100%);
  color: #fff; padding: var(--s-5) 0; display: flex; flex-direction: column;
  position: sticky; top: 0; align-self: start; max-height: 100vh; overflow-y: auto;
  border-inline-start: 3px solid var(--cyan);
}
.admin-side__brand {
  display: block; font-family: var(--font-head); font-weight: 800; font-size: 21px;
  color: #fff; padding: 0 var(--s-5) var(--s-5); letter-spacing: -.01em;
}
.admin-side__brand::after {
  content: ""; display: block; width: 34px; height: 3px; margin-top: var(--s-3);
  background: var(--cyan); border-radius: var(--r-pill);
}
.admin-side__group { padding: var(--s-3) 0; }
.admin-side__label {
  display: block; padding: 0 var(--s-5) var(--s-2);
  font-size: 11px; font-weight: 700; letter-spacing: .10em;
  color: rgba(207,224,245,.50); text-transform: uppercase;
}
.admin-side nav a {
  position: relative; display: block; color: #cfe0f5;
  padding: 9px var(--s-5); font-size: 14.5px; line-height: 1.5;
  border-inline-start: 3px solid transparent; transition: background .15s ease, color .15s ease;
}
.admin-side nav a:hover { background: rgba(255,255,255,.06); color: #fff; text-decoration: none; }
/* نبضة السيان — العنصر المميّز */
.admin-side nav a[aria-current="page"] {
  background: rgba(31,216,199,.10); color: #fff; font-weight: 600;
  border-inline-start-color: var(--cyan);
  box-shadow: inset 8px 0 18px -14px var(--cyan);
}
.admin-side__footer {
  margin-top: auto; padding: var(--s-4) var(--s-5) 0;
  border-top: 1px solid rgba(255,255,255,.10);
}
.admin-side__footer a { padding-inline: 0; font-size: 13.5px; color: rgba(207,224,245,.85); }
.admin-side__footer .btn { margin-top: var(--s-3); color: #fff; border-color: rgba(255,255,255,.28); }
.admin-side__footer .btn:hover { background: rgba(255,255,255,.10); }

/* — المحتوى والترويسة — */
.admin-main { padding: var(--s-6) var(--s-6) var(--s-8); min-width: 0; }
.admin-topbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--s-4); flex-wrap: wrap; padding-bottom: var(--s-4);
  border-bottom: 1px solid var(--line); margin-bottom: var(--s-5);
}
.admin-topbar h1 { font-size: 25px; line-height: 1.3; margin: 0; letter-spacing: -.015em; }
.admin-topbar .muted { font-size: 14px; }

/* — شريط أدوات القائمة والترقيم (مواصفة 014، ش٢) — */
.admin-main .list-toolbar {
  display: flex; align-items: center; gap: var(--s-3);
  flex-wrap: wrap; margin-bottom: var(--s-4);
}
.admin-main .list-toolbar input[type="search"] {
  flex: 1 1 220px; max-width: 340px; min-width: 0;
  padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--r-sm);
  font: inherit; background: #fff;
}
.admin-main .list-toolbar__count { margin-inline-start: auto; font-size: 14px; color: var(--grey); }

.admin-main .pager {
  display: flex; align-items: center; gap: var(--s-3);
  justify-content: center; margin-top: var(--s-5);
}
.admin-main .pager__state { font-size: 14px; color: var(--grey); }

/* — البطاقات: حدّ شعري + شريط علوي بدل الظلّ الثقيل — */
.admin-main .card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r-md);
  padding: var(--s-5); box-shadow: 0 1px 2px rgba(11,36,71,.04);
}
.admin-section { margin-top: var(--s-6); }
.admin-section > h2 {
  font-size: 17px; margin-bottom: var(--s-3); color: var(--navy);
  display: flex; align-items: center; gap: var(--s-3);
}
.admin-section > h2::before {
  content: ""; width: 3px; height: 15px; background: var(--cyan); border-radius: 2px;
}

/* — الجداول السجلّية — */
.admin-table {
  width: 100%; border-collapse: collapse; background: #fff;
  border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden;
}
.admin-table th, .admin-table td {
  padding: var(--s-3) var(--s-4); text-align: start;
  border-bottom: 1px solid var(--line); vertical-align: middle;
}
.admin-table thead th {
  background: var(--paper); font-family: var(--font-head); font-weight: 700;
  font-size: 13px; color: var(--navy); letter-spacing: .01em;
  border-bottom: 2px solid var(--navy); white-space: nowrap;
}
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table tbody tr:nth-child(even) { background: #fafcfe; }
.admin-table tbody tr:hover { background: rgba(31,216,199,.05); }
/* الأرقام والمراجع: خانات ثابتة واتجاه لاتيني */
.admin-table .lat, .lat { font-family: var(--font-latin); font-variant-numeric: tabular-nums; direction: ltr; unicode-bidi: isolate; }
/* `.lat` أداة عامّة بـdisplay:inline-block؛ على خلية جدول تكسر تخطيط الصفّ — تُعاد إلى خلية */
.admin-table td.lat, .admin-table th.lat { display: table-cell; white-space: nowrap; }
.admin-table .num { text-align: end; font-variant-numeric: tabular-nums; white-space: nowrap; }
.admin-table--wrap { overflow-x: auto; }

.admin-empty {
  text-align: center; padding: var(--s-8) var(--s-5); color: var(--grey);
  background: #fff; border: 1px dashed var(--line); border-radius: var(--r-md);
}
.table-actions { display: flex; gap: var(--s-2); flex-wrap: wrap; align-items: center; }

/* — الأزرار والشارات — */
.btn--sm { padding: var(--s-1) var(--s-3); font-size: 13.5px; }
.btn--danger { background: var(--danger); color: #fff; }
.btn--danger:hover { background: #99201a; }
.badge--ok { background: var(--ok-bg); color: var(--ok); }
.badge--muted { background: #e6ecf3; color: var(--grey); }
.badge--warn { background: var(--warn-bg); color: var(--warn); }
.badge--danger { background: var(--danger-bg); color: var(--danger); }
.status { display: inline-block; padding: 3px var(--s-3); border-radius: var(--r-pill); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.status--paid { background: var(--ok-bg); color: var(--ok); }
.status--partially_paid { background: var(--warn-bg); color: var(--warn); }
.status--unpaid { background: #e8eef6; color: var(--blue); }
.status--cancelled { background: var(--danger-bg); color: var(--danger); }
.status--draft { background: #eceff3; color: var(--grey); border: 1px dashed #c3cdd8; }

/* — قسم الفواتير والسندات (ميزة 007) — */
/* شريط تصفية: نموذج GET عادي يعمل بلا JavaScript (المادة ٧) */
.filter-bar {
  display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-4); align-items: flex-end;
  background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: var(--s-4) var(--s-5);
}
.filter-bar label { display: block; font-size: 12.5px; color: var(--grey); font-weight: 600; }
.filter-bar label > span { display: block; margin-bottom: var(--s-1); }
.filter-bar input, .filter-bar select { min-width: 160px; }
.filter-bar__actions { display: flex; gap: var(--s-2); margin-inline-start: auto; }

.card__title {
  font-family: var(--font-head); font-size: 16px; font-weight: 700; color: var(--navy);
  margin: 0 0 var(--s-4); padding-bottom: var(--s-3); border-bottom: 1px solid var(--line);
}
.admin-table tfoot th, .admin-table tfoot td {
  border-top: 1px solid var(--line); background: #fafcfe; font-weight: 700; color: var(--navy);
}
.notice { border-radius: var(--r-md); padding: var(--s-3) var(--s-4); border-inline-start: 4px solid var(--grey); background: #f4f7fa; }
.notice--warn { border-inline-start-color: var(--warn); background: var(--warn-bg); color: var(--warn); }
.notice--danger { border-inline-start-color: var(--danger); background: var(--danger-bg); color: var(--danger); }
.plain-list { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.stat__unit { font-size: 14px; font-weight: 600; color: var(--grey); margin-inline-start: var(--s-2); }


/* تذييل إجماليات مُنشئ الفاتورة (حساب استرشادي فوري) */
.totals-box { margin-inline-start: auto; max-width: 380px; }
.totals-box dl { display: grid; grid-template-columns: 1fr auto; gap: var(--s-2) var(--s-4); margin: 0; }
.totals-box dt { color: var(--grey); font-size: 13.5px; }
.totals-box dd { margin: 0; text-align: end; font-variant-numeric: tabular-nums; font-family: var(--font-latin); }
.totals-box .totals-box__grand { border-top: 1px solid var(--line); padding-top: var(--s-2); font-weight: 800; color: var(--navy); font-size: 17px; }

/* — النماذج — */
.admin-form { max-width: 760px; }
.admin-form--wide { max-width: 100%; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--s-4); }
.form-grid .field--full { grid-column: 1 / -1; }
.admin-fieldset { border: 0; padding: 0; margin: var(--s-5) 0 0; }
.admin-fieldset > legend {
  font-family: var(--font-head); font-weight: 700; font-size: 15px; color: var(--navy);
  padding: 0 0 var(--s-3); width: 100%; border-bottom: 1px solid var(--line); margin-bottom: var(--s-4);
}
/* محصورٌ باللوحة: `.field` نفسها يحملها نموذج التواصل العامّ، ومستهلكو `.hint`
   داخلها (منتقيا الوسائط وشاشة الإعدادات) إداريّون كلّهم. */
.admin-main .field .hint { display: block; font-size: 13px; color: var(--grey); margin-top: var(--s-1); }
.form-actions { display: flex; gap: var(--s-3); align-items: center; margin-top: var(--s-6); padding-top: var(--s-4); border-top: 1px solid var(--line); }
/* صفّ إجراء مضمّن (تسجيل دفعة) */
.inline-form { display: flex; gap: var(--s-3); flex-wrap: wrap; align-items: flex-end; }
.inline-form label { display: block; font-size: 12.5px; color: var(--grey); font-weight: 600; }
.inline-form input, .inline-form select { margin-top: var(--s-1); }

/* — لوحة القيادة: بطاقات مؤشّرات — */
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--s-4); }
.stat {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r-md);
  padding: var(--s-4) var(--s-5); position: relative; overflow: hidden;
}
.stat::before { content: ""; position: absolute; inset-block-start: 0; inset-inline: 0; height: 3px; background: var(--cyan); opacity: .55; }
.stat__label { display: block; font-size: 13px; color: var(--grey); }
.stat__value { display: block; font-family: var(--font-head); font-size: 30px; font-weight: 800; color: var(--navy); font-variant-numeric: tabular-nums; margin-top: var(--s-1); }

.admin-login { min-height: 100vh; display: grid; place-items: center; background: var(--paper); padding: var(--s-5); }
.admin-login .card { width: 100%; max-width: 400px; }
.admin-login h1 { font-size: 24px; margin-bottom: var(--s-5); text-align: center; }

/* — الاستجابة: الشريط يصبح أفقيّاً — */
@media (max-width: 900px) {
  .admin-shell { grid-template-columns: 1fr; }
  .admin-side {
    position: static; max-height: none; flex-direction: row; flex-wrap: wrap;
    align-items: center; gap: var(--s-2); padding: var(--s-4);
    border-inline-start: 0; border-block-end: 3px solid var(--cyan);
  }
  .admin-side__brand { padding: 0 var(--s-3) 0 0; font-size: 17px; white-space: nowrap; flex: 0 0 auto; }
  .admin-side__brand::after { display: none; }
  .admin-table td, .admin-table th { white-space: nowrap; }
  /* الملاحة شريط أفقي يُمرَّر (لا تلتهم الشاشة) */
  .admin-side { flex-wrap: nowrap; align-items: center; }
  .admin-side__group { padding: 0; display: contents; }
  .admin-side__label { display: none; }
  .admin-side nav {
    display: flex; flex-wrap: nowrap; gap: var(--s-1); flex: 1 1 auto;
    overflow-x: auto; scrollbar-width: thin; padding-bottom: 2px; min-width: 0;
  }
  .admin-side nav a { white-space: nowrap; flex: 0 0 auto; }
  .admin-side nav a { padding: 6px var(--s-3); border-inline-start: 0; border-radius: var(--r-pill); font-size: 13.5px; }
  .admin-side nav a[aria-current="page"] { box-shadow: none; background: rgba(31,216,199,.20); }
  .admin-side__footer { margin: 0; padding: 0; border: 0; display: flex; gap: var(--s-3); align-items: center; }
  .admin-side__footer .btn { margin-top: 0; }
  .admin-main { padding: var(--s-5) var(--s-4) var(--s-7); }
  .form-grid { grid-template-columns: 1fr; }
  /* الجداول تُمرَّر أفقيّاً داخل حدّها بدل دفع الصفحة (لا تمرير أفقي للمستند) */
  .admin-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .admin-topbar h1 { font-size: 21px; }
  .inline-form { gap: var(--s-2); }
}

/* ===== جداول مقارنة المواصفات (المرحلة ٣) — RTL، صفر أصول خارجية، بلا JS ===== */
.plan-compare { margin-top: var(--s-5); border: 1px solid var(--line); border-radius: var(--r-md); background: #fff; }
.plan-compare > summary { cursor: pointer; padding: var(--s-4) var(--s-5); font-family: var(--font-head); font-weight: 700; color: var(--navy); list-style: none; }
.plan-compare > summary::-webkit-details-marker { display: none; }
.plan-compare > summary::after { content: "▾"; float: inline-end; color: var(--cyan); }
.plan-compare[open] > summary::after { content: "▴"; }
/* T016: غلاف التمرير الأفقي على الجوّال */
.compare-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.compare-table { width: 100%; border-collapse: collapse; min-width: 39rem; }
.compare-table caption { text-align: start; }
.compare-table th, .compare-table td { padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--line); text-align: center; vertical-align: middle; }
.compare-table thead th { border-bottom: 2px solid var(--line); }
.compare-table .compare-plan { display: block; font-family: var(--font-head); font-weight: 800; color: var(--navy); }
.compare-table .compare-price { display: block; font-size: 14px; color: var(--grey); }
/* T016: عمود المواصفات لاصق يبقى مرئيّاً أثناء التمرير الأفقي (RTL عبر خاصية منطقية) */
.compare-table th[scope="row"], .compare-table thead th:first-child { position: sticky; inset-inline-start: 0; z-index: 1; text-align: start; min-width: 9rem; background: #fff; box-shadow: -1px 0 0 var(--line); }
.compare-table thead th:not(:first-child), .compare-table tfoot td:not(:first-child) { min-width: 10rem; }
.compare-table .spec-dash { color: var(--grey); }
.compare-table .spec-yes { color: var(--cyan); font-weight: 800; }
.compare-table .spec-no { color: var(--line); font-weight: 800; }
/* إبراز عمود الباقة المميّزة */
.compare-table th.is-featured, .compare-table td.is-featured { background: var(--paper); }
.compare-table thead th.is-featured { border-top: 3px solid var(--cyan); }

/* صفحة تفاصيل الباقة (المرحلة ٥) */
.price--lg { font-family: var(--font-head); font-size: 40px; color: var(--navy); font-weight: 800; margin-top: var(--s-3); }
.price--lg small { font-size: 16px; color: var(--grey); font-weight: 500; }
.plan-detail > div { margin-bottom: var(--s-6); }
.plan-detail__features ul { padding-inline-start: var(--s-5); }
.plan-detail__features li { margin-bottom: var(--s-2); }
.plan-specs-table { max-width: 640px; }
.plan-specs-table th[scope="row"] { text-align: start; font-weight: 600; }
.plan-detail__cta { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-5); }

/* محرّر الأزواج بعمودين في نموذج الإدارة (المرحلة ٥) */
.pairs-head { display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--s-2); font-weight: 700; color: var(--grey); font-size: 14px; margin-bottom: 6px; }
.pairs-head span:nth-child(2) { color: var(--line); }
.pairs-input { font-family: var(--font-mono, monospace); line-height: 1.9; }

.logo-preview { max-height: 64px; display: block; margin-bottom: var(--s-2); border: 1px solid var(--line); border-radius: var(--r-sm); padding: var(--s-2); background: #fff; }

/* ── لافتة الموقع (مواصفة 013) ───────────────────────────────────────────────
   شريطٌ فوق الرأس بلا زرّ إغلاق: إخفاءٌ يدوم بين الصفحات يحتاج كوكي أو سكربتاً،
   وإشعار الصيانة أصلاً يجب ألّا يُغلَق. تظهر بجدولها وتختفي بانتهائه. */
.site-banner { padding: var(--s-3) 0; font-size: 14.5px; font-weight: 600; text-align: center; }
.site-banner a { text-decoration: underline; text-underline-offset: 3px; }
.site-banner--info { background: var(--navy); color: #dbe7f7; }
.site-banner--info a { color: #fff; }
.site-banner--warn { background: var(--warn-bg); color: #7a5200; }
.site-banner--warn a { color: #5c3d00; }
.site-banner--promo { background: var(--cyan); color: var(--ink); }
.site-banner--promo a { color: var(--navy); }

/* سياق الطلب فوق نموذج الدخول — لافتةٌ على الجدار الذي كان بلا لافتة */
.order-intent { background: var(--paper); border-inline-start: 3px solid var(--cyan); border-radius: var(--r-sm); padding: var(--s-4); margin-bottom: var(--s-5); }
.order-intent__label { display: block; font-size: 13px; color: var(--grey); font-weight: 600; }
.order-intent__plan { display: block; font-family: var(--font-head); font-size: 19px; color: var(--navy); margin-top: var(--s-1); }
.order-intent__price { display: block; font-weight: 700; color: var(--blue); margin-top: var(--s-1); }
.order-intent__why { font-size: 13.5px; color: var(--grey); margin-top: var(--s-3); }

/* ── إثباتات التحويل التي أرسلها العميل (مواصفة 011) ────────────────────────
   بطاقةٌ لكل إثبات: المعلّق هادئ يقول «وصلنا»، والمرفوض يحمل **سببه** — وهو
   الذي كان يُسجَّل في القاعدة ولا يصل العميل في أي سطح. */
.pay-method { border: 1px solid var(--line); border-radius: var(--r-sm); padding: var(--s-4); margin-top: var(--s-3); }
.pay-submission { border: 1px solid var(--line); border-inline-start-width: 3px; border-radius: var(--r-sm); padding: var(--s-4); margin-top: var(--s-3); }
.pay-submission--pending { border-inline-start-color: var(--grey); }
.pay-submission--rejected { border-inline-start-color: var(--danger); background: var(--danger-bg); }
.pay-submission__head { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: center; }
.pay-submission__reason { margin-top: var(--s-2); color: var(--danger); }

/* ★ **أدوات مساعدة — وهي ليست ترفاً بل إصلاح عطب** (المرحلة ٦).
   سياسة الأمان على الإنتاج `default-src 'self'` بلا `style-src 'unsafe-inline'`،
   فكلّ `style="…"` في العروض **محجوب**: ٦١ نمطاً سطريّاً في ١٨ ملفّاً **لا يُطبَّق
   أصلاً على الموقع الحيّ**. سعرٌ كُتب له `font-size:32px` يُعرَض بحجم الافتراضي،
   وفراغٌ كُتب له `margin-top:24px` لا وجود له.
   والتقرير عدّ الأنماط السطرية «نظافة» (V-2)؛ والحقّ أنّها **معطّلة** — وهو أسوأ:
   المطوّر يكتب تنسيقاً ويراه يعمل محلّيّاً بلا CSP، ويظنّه يعمل على الحيّ. */
.mt-1 { margin-top: var(--s-1); }
.mt-2 { margin-top: var(--s-2); }
.mt-3 { margin-top: var(--s-3); }
.mt-4 { margin-top: var(--s-4); }
.mt-5 { margin-top: var(--s-5); }
.mt-6 { margin-top: var(--s-6); }
.mt-7 { margin-top: var(--s-7); }
.mb-4 { margin-bottom: var(--s-4); }
.pt-4 { padding-top: var(--s-4); }
.w-full { width: 100%; }
.inline-block { display: inline; }
/* المحاذاة **منطقية لا فيزيائية**: `start`/`end` تتبعان اتجاه الصفحة، فما يُحاذى
   يميناً في العربية يُحاذى يساراً في الإنجليزية بلا سطرٍ ثانٍ (المرحلة ٦/الطبقة الإنجليزية). */
.ta-center { text-align: center; }
.ta-start { text-align: start; }
.ta-end { text-align: end; }
.mx-auto { margin-inline: auto; }
.maxw-sm { max-width: 560px; }
.maxw-md { max-width: 640px; }
.maxw-lg { max-width: 720px; }
.my-3 { margin-block: var(--s-3); }
.summary--clickable { cursor: pointer; }

/* ═══ أصنافٌ بمعنًى حلّت محلّ أنماطٍ سطرية محجوبة (المرحلة ٦) ═══
   وهذه ليست أدواتٍ عمياء: كلٌّ منها يسمّي **دوراً** في الواجهة، فيبقى قابلاً
   للتعديل من مكانٍ واحد بدل أن يُنسَخ رقمُه في كل موضع. */

/* مقاسا السعر: البطل والفاتورة — والأساس `.price` قائم */
.price--md { font-size: 24px; }
.price__cycle { font-size: 16px; }

/* شارة سند القبض في صفحة الفاتورة: عدّةٌ تتراصّ بلا التصاق */
.receipt-chip { margin: var(--s-1); }

/* سطر «مَن كتب ومتى» فوق ردّ التذكرة */
.reply-meta { font-size: 13px; }

/* ترويسة منطقة العميل وتذييلها — كانتا تعتمدان على أنماطٍ محجوبة، فيظهر الاسم
   بلون النصّ العادي على خلفيةٍ داكنة وبلا خطّ العناوين. */
.client-side__brand {
  color: #fff;
  font-family: var(--font-head);
  font-weight: 800;
  font-size: 20px;
}
.client-side__footer { border-top: 1px solid rgba(255, 255, 255, .1); }
.client-side .btn--ghost,
.client-side__footer .btn--ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, .35);
}
.client-side .btn--ghost:hover,
.client-side__footer .btn--ghost:hover { border-color: var(--cyan); }
.admin-note { border: 1px solid var(--line); border-radius: var(--r-sm); padding: var(--s-3) var(--s-4); margin-top: var(--s-3); background: #fff; }
.admin-note--admin { border-inline-start: 3px solid var(--cyan); }
.mb-3 { margin-bottom: var(--s-3); }
[hidden] { display: none !important; }
/* جدول أصناف الفاتورة: حقول مضغوطة داخل الخلايا */
.items-table td { vertical-align: top; }
.items-table input, .items-table select { width: 100%; padding: var(--s-2) var(--s-3); font-size: 14px; }
.items-table td[data-line-total] { font-weight: 700; color: var(--navy); padding-top: var(--s-4); }
/* معاينة الشعار في الإعدادات */
.logo-preview { margin: 0 0 var(--s-3); padding: var(--s-4); border: 1px dashed var(--line); border-radius: var(--r-sm); background: var(--paper); display: inline-block; }
.logo-preview img { max-height: 72px; max-width: 260px; display: block; background: #fff; }
.logo-preview figcaption { margin-top: var(--s-2); }

/* ── مراقبة سلامة الدفتر (ميزة 008) ─────────────────────────────────────── */
.alert--warn { background: var(--warn-bg); color: var(--warn); border: 1px solid rgba(240,175,40,.45); }
/* شارة التنقّل: تُرى من أي شاشة إدارية — صفحة لا تُزار لا تنبّه */
.nav-badge { display: inline-block; min-width: 20px; margin-inline-start: var(--s-2); padding: 0 var(--s-2); border-radius: var(--r-pill); font-size: 12px; font-weight: 700; line-height: 20px; text-align: center; }
.nav-badge--danger { background: var(--danger); color: #fff; }
.nav-badge--warn { background: var(--warn); color: #fff; }
.health-card { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-5); align-items: baseline; margin: var(--s-5) 0; padding: var(--s-4) var(--s-5); border-radius: var(--r-sm); border-inline-start: 4px solid var(--line); background: var(--paper); font-size: 14px; }
.health-card__state { font-size: 17px; }
.health-card--ok { border-inline-start-color: var(--ok); background: var(--ok-bg); color: var(--ok); }
.health-card--bad { border-inline-start-color: var(--danger); background: var(--danger-bg); color: var(--danger); }
.health-card--warn { border-inline-start-color: var(--warn); background: var(--warn-bg); color: var(--warn); }
.check { margin: var(--s-4) 0; padding: var(--s-4) var(--s-5); border: 1px solid var(--line); border-radius: var(--r-sm); background: #fff; }
.check--ok { opacity: .75; }
.check--failed { border-color: rgba(179,38,30,.35); }
.check__title { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: center; margin: 0; font-size: 16px; }
.check__mark { font-weight: 700; }
.check--ok .check__mark { color: var(--ok); }
.check--failed .check__mark { color: var(--danger); }
.check__count { margin-inline-start: auto; font-weight: 700; }
.check__impact { margin: var(--s-3) 0 0; }
.check h4 { margin: var(--s-4) 0 var(--s-2); font-size: 14px; color: var(--grey); }
.check__records { margin: 0; padding-inline-start: var(--s-5); }
.check__records li { margin-bottom: var(--s-2); }
.check__remedy { margin: 0; padding-inline-start: var(--s-5); }
.check__remedy li { margin-bottom: var(--s-2); }
/* نموذج المعالجة الموجَّهة داخل سطر — لا يكسر تدفّق النصّ */
.fix-form { display: inline; }
.stat--ok .stat__value { color: var(--ok); }
.stat--bad .stat__value { color: var(--danger); }
.stat--warn .stat__value { color: var(--warn); }
.check--pending { opacity: .6; border-style: dashed; }

/* ── نظام المنتجات (ميزة 009) ───────────────────────────────────────────── */
.field__hint { display: block; margin: var(--s-2) 0 0; font-size: 13px; color: var(--grey); }
.field label + .field__hint { margin-top: calc(var(--s-2) * -1 + 2px); margin-bottom: var(--s-2); }
/* صفّ قيمة مقارنة: التسمية من قاموس المنتج ثابتة، والقيمة وحدها تُملأ */
.spec-row { display: grid; grid-template-columns: minmax(120px, 1fr) 2fr; gap: var(--s-3); align-items: center; margin-bottom: var(--s-2); }
.spec-row__label { font-size: 14px; color: var(--grey); }
.spec-row input { width: 100%; }
@media (max-width: 640px) { .spec-row { grid-template-columns: 1fr; gap: var(--s-1); } }
/* بطاقة طلب عرض سعر — لمنتج بلا باقات (009) */
.quote-card { text-align: center; max-width: 560px; margin-inline: auto; }

/* ── مكتبة الوسائط (ميزة 010) ────────────────────────────────────────────── */

/* صورة واحدة: `figure` بلا هوامش افتراضية، والصورة تملأ عرضها بنسبتها محفوظة */
.media-figure { margin: 0; }
.media-figure img { display: block; width: 100%; height: auto; border-radius: var(--r-md); }
.media-figure figcaption { margin: var(--s-2) 0 0; font-size: 14px; color: var(--grey); text-align: center; }

/* الرأس: عرضٌ محدود فلا تبتلع لقطةُ شاشةٍ عريضة الصفحةَ كلّها */
.media-figure--hero { max-width: var(--container-narrow); margin-inline: auto; }
.media-figure--hero img { box-shadow: 0 12px 32px rgba(11, 31, 59, .12); }

/* قسم الوسائط في صفحة الزائر */
.section--media { padding-block: var(--s-6); }

/* ── المعرض ── */
.media-gallery { margin-block: var(--s-6); }
.media-gallery h2 { margin: 0 0 var(--s-5); }

/* `auto-fill` لا `auto-fit`: بصورة واحدة باقية في صفّها لا تتمدّد لتملأ العرض
   كلّه فتبدو مقصودةً وهي بقيّة. */
.media-gallery__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--s-5);
}

.media-figure--tile img {
    border: 1px solid var(--line);
    background: var(--paper);
}

@media (max-width: 640px) {
    .media-gallery__grid { grid-template-columns: 1fr; gap: var(--s-4); }
}

/* ── منتقي اللوحة ── */
.media-picker { border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--s-5); }
.media-picker legend { padding-inline: var(--s-3); font-weight: 700; }
.media-picker .hint { margin: 0 0 var(--s-4); font-size: 14px; color: var(--grey); }

.media-picker__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--s-4);
}

.media-picker__item {
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: var(--s-3);
    background: #fff;
}

/* المرفَق يُميَّز بصريّاً — فيراه المدير قبل أن يقرأ */
.media-picker__item.is-selected { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(14, 116, 144, .12); }

.media-picker__item img {
    display: block;
    width: 100%;
    height: 120px;
    object-fit: cover;
    border-radius: var(--r-sm);
    margin-bottom: var(--s-3);
}

/* بديل الصورة الغائبة: النصّ البديل نفسه — فيبقى الصفّ قابلاً للتمييز */
.media-picker__missing {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 120px;
    padding: var(--s-2);
    border-radius: var(--r-sm);
    background: var(--paper);
    font-size: 13px;
    color: var(--grey);
    text-align: center;
    margin-bottom: var(--s-3);
}

.media-picker__item label { display: flex; align-items: center; gap: var(--s-2); font-size: 14px; margin-bottom: var(--s-2); }
.media-picker__item label:last-child { margin-bottom: 0; }
.media-picker__order input, .media-picker__caption input { flex: 1; min-width: 0; }

/* «بدون صورة رأس» يشغل الشبكة كلّها فلا يُلتبس ببطاقة صورة */
.media-picker__none {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: var(--s-2);
    padding: var(--s-3);
    border: 1px dashed var(--line);
    border-radius: var(--r-md);
}

/* نموذج حذف الصورة — فعلٌ لا رجوع فيه، فيُميَّز بحدّه */
.form--danger { border: 1px solid var(--danger); border-radius: var(--r-md); padding: var(--s-4); margin-top: var(--s-4); }
.form--danger .note { margin: 0 0 var(--s-3); font-size: 14px; color: var(--grey); }

/* ── إعدادات الموقع (شاشة مولَّدة من السجلّ) ─────────────────────────────── */
.settings-group { border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--s-5); margin-bottom: var(--s-6); }
.settings-group legend { padding-inline: var(--s-3); font-weight: 700; }
.settings-group > .hint { margin: 0 0 var(--s-4); font-size: 14px; color: var(--grey); }

/* ── هوية التذييل وروابط التواصل ─────────────────────────────────────────── */
.footer-brand { color: #fff; font-family: var(--font-head); font-weight: 800; font-size: 20px; }
.footer-tagline { margin-top: 12px; color: #9fb6d6; }
.footer-contact { list-style: none; margin: var(--s-4) 0 0; padding: 0; font-size: 14px; }
.footer-contact li { margin-bottom: var(--s-2); color: #9fb6d6; }
.footer-contact a { color: #9fb6d6; }
.footer-contact a:hover { color: #fff; }

/* أيقونات مضمَّنة ترث لون النصّ — بلا خطّ أيقونات ولا مرجع خارجي (المادة ٧) */
/* `.footer-col ul { display: grid }` أخصّ من فئة واحدة (0,1,1 مقابل 0,1,0) فيغلبها
   ويصفّ الأيقونات عموداً. الفئتان معاً (0,2,0) تستعيدان الصفّ بلا `!important`. */
.social-links,
.footer-col .social-links { list-style: none; display: flex; flex-wrap: wrap; gap: var(--s-3); margin: var(--s-5) 0 0; padding: 0; }
.social-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--r-pill);
    border: 1px solid rgba(159, 182, 214, .35);
    color: #9fb6d6;
}
.social-links a:hover { color: #fff; border-color: #fff; }
.social-links svg { display: block; }

/* ── منتقي صورة واحدة (حقل إعداد) ────────────────────────────────────────── */
.media-choice__none { display: flex; align-items: center; gap: var(--s-2); margin-bottom: var(--s-3); }
.media-choice__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: var(--s-3); }
.media-choice__item {
    display: block;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: var(--s-2);
    background: #fff;
    cursor: pointer;
}
.media-choice__item.is-selected { border-color: var(--primary); box-shadow: 0 0 0 2px rgba(14, 116, 144, .12); }
.media-choice__item img { display: block; width: 100%; height: 80px; object-fit: contain; margin-top: var(--s-2); }
.media-choice__missing { display: block; padding: var(--s-3) 0; font-size: 12px; color: var(--grey); text-align: center; }
.brand__logo { display: block; width: auto; max-height: 32px; }

/* ── إدارة القوائم ───────────────────────────────────────────────────────── */
.menu-block { margin-bottom: var(--s-5); }
.menu-block h2 { margin: 0 0 var(--s-4); font-size: 18px; }
.menu-add { margin-bottom: var(--s-5); }
.menu-add h3 { margin: 0 0 var(--s-4); font-size: 16px; }
/* صفٌّ لا يظهر للزائر — يُميَّز بلا أن يُخفى عن المدير */
.row--muted { opacity: .6; }
.badge--warn { display: inline-block; padding: 2px 8px; border-radius: var(--r-pill); background: var(--danger-bg); color: var(--danger); font-size: 12px; }

/* ═══════════════════════════════════════════════════════════════════════════
   لوحة الإدارة — الصقل التحريري (٢٠٢٦-٠٨)

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

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

   وتوسيعٌ للنظام القائم لا استبدالٌ له: الشريط navy والنبضة السيان لغةٌ متماسكة
   بُنيت في المرحلة ٤. والمشكلة كانت **التغطية** — شاشات جديدة بفئات بلا تنسيق
   (`.table` · `.media-grid` · `.page-head` · `.filters`) تُصيَّر خاماً.
   ═══════════════════════════════════════════════════════════════════════════ */

/* — عرضٌ محكوم: سطرٌ يمتدّ ١٤٤٠ بكسل لا يُقرأ، والجدول يتنفّس — */
.admin-main > * { max-width: 1180px; }
.admin-main > .admin-table--wrap,
.admin-main > .admin-table { max-width: 1180px; }

/* — الترويسة تلتصق أعلى الشاشة: في جدولٍ طويل يبقى العنوان والإجراء في المتناول — */
.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 12;
    background: var(--paper);
    padding-top: var(--s-4);
    margin-top: calc(var(--s-6) * -1);
    /* تدرّجٌ خفيف أسفلها يفصلها عن المحتوى المنزلق تحتها */
    box-shadow: 0 8px 12px -12px rgba(11, 36, 71, .45);
}

/* رأس صفحةٍ بإجراءات — نظير `admin-topbar` في الشاشات الأحدث */
.page-head {
    position: sticky;
    top: 0;
    z-index: 12;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--s-4);
    flex-wrap: wrap;
    background: var(--paper);
    padding-top: var(--s-4);
    margin-top: calc(var(--s-6) * -1);
    padding-bottom: var(--s-4);
    border-bottom: 1px solid var(--line);
    margin-bottom: var(--s-5);
    box-shadow: 0 8px 12px -12px rgba(11, 36, 71, .45);
}
.page-head h1 { font-size: 25px; line-height: 1.3; margin: 0; letter-spacing: -.015em; }
.page-head__actions { display: flex; gap: var(--s-2); flex-wrap: wrap; }

/* — التنبيه: شريطٌ نحيل بحافّة لا لوحٌ صارخ يسبق عنوان الصفحة — */
.admin-main .alert {
    display: flex;
    align-items: baseline;
    gap: var(--s-3);
    flex-wrap: wrap;
    padding: var(--s-3) var(--s-4);
    border: 1px solid var(--line);
    border-inline-start-width: 3px;
    border-radius: var(--r-sm);
    font-size: 14.5px;
    line-height: 1.65;
    margin-bottom: var(--s-4);
    background: #fff;
}
.admin-main .alert--warn { border-inline-start-color: var(--warn); background: var(--warn-bg); }
.admin-main .alert--error { border-inline-start-color: var(--danger); background: var(--danger-bg); }
.admin-main .alert--success { border-inline-start-color: var(--ok); background: var(--ok-bg); }
.admin-main .alert a { font-weight: 600; margin-inline-start: auto; white-space: nowrap; }

/* ── الجدول: ورقة السجلّ ─────────────────────────────────────────────────── */

/* `.table` كان **بلا تنسيق إطلاقاً** في ثلاث شاشات (القوائم · التصنيفات ·
   تفاصيل الصورة) فتُصيَّر جداول المتصفّح الخام. التوحيد هنا لا في القوالب:
   شاشةٌ جديدة تكتب `table` أو `admin-table` فتُصيب في الحالتين. */
.admin-table,
.admin-main .table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    overflow: hidden;
    font-size: 14.5px;
}

.admin-table th, .admin-table td,
.admin-main .table th, .admin-main .table td {
    padding: var(--s-3) var(--s-4);
    text-align: start;
    vertical-align: middle;
    border-bottom: 1px solid var(--line);
}

/* الترويسة: تسميةٌ لا عنوان — صغيرة ومتباعدة الحروف، وتلتصق عند التمرير */
.admin-table thead th,
.admin-main .table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f7fafd;
    color: var(--grey);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    white-space: nowrap;
    border-bottom: 2px solid var(--line);
}

.admin-table tbody tr:last-child td,
.admin-main .table tbody tr:last-child td { border-bottom: 0; }

/* تخطيطٌ يُحسّ ولا يُرى — لا يزاحم المحتوى */
.admin-table tbody tr:nth-child(even),
.admin-main .table tbody tr:nth-child(even) { background: #fcfdfe; }

/* ★ حافّة السيان: أين أنا في الجدول — تُعرَف بلا قراءة */
.admin-table tbody tr,
.admin-main .table tbody tr { transition: background .12s ease, box-shadow .12s ease; }

.admin-table tbody tr:hover,
.admin-main .table tbody tr:hover,
.admin-table tbody tr:focus-within,
.admin-main .table tbody tr:focus-within {
    background: rgba(31, 216, 199, .07);
    box-shadow: inset 3px 0 0 0 var(--cyan);
}

/* الأرقام: خاناتٌ ثابتة واتجاهٌ معزول — فلا تنقلب الفاصلة في سياق عربي */
.admin-table .num, .admin-main .table .num {
    text-align: end;
    font-variant-numeric: tabular-nums;
    unicode-bidi: isolate;
    direction: ltr;
    white-space: nowrap;
}

/* الصفّ المعطَّل: يُرى ولا يُقرأ أوّلاً */
.row--muted td { opacity: .55; }

/* تمريرٌ أفقي بظلّ يدلّ على وجود ما وراء الحافّة */
.admin-table--wrap {
    overflow-x: auto;
    border-radius: var(--r-md);
    background:
        linear-gradient(to left, #fff 30%, rgba(255, 255, 255, 0)) left center / 40px 100% no-repeat,
        linear-gradient(to left, rgba(11, 36, 71, .10), rgba(255, 255, 255, 0)) left center / 12px 100% no-repeat;
    background-attachment: local, scroll;
}

/* — الحالة الفارغة: دعوةٌ لا اعتذار — */
.admin-empty, .admin-main .empty {
    background: #fff;
    border: 1px dashed var(--line);
    border-radius: var(--r-md);
    padding: var(--s-7) var(--s-5);
    text-align: center;
    color: var(--grey);
    font-size: 15px;
}

/* — المؤشّرات: أرقامٌ متساوية العرض تُقرأ صفّاً واحداً — */
.stat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: var(--s-4); }
.stat-grid .stat {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: var(--s-4) var(--s-5);
    /* شريط علوي رفيع: هوية بلا ظلّ ثقيل */
    border-top: 2px solid var(--cyan);
}
.stat__label { display: block; font-size: 12.5px; font-weight: 600; color: var(--grey); letter-spacing: .02em; }
.stat__value {
    display: block;
    font-family: var(--font-head);
    font-size: 30px;
    line-height: 1.2;
    color: var(--navy);
    margin-top: var(--s-2);
    font-variant-numeric: tabular-nums;
}

/* ── مكتبة الوسائط: كانت بلا تنسيق كلّيّاً ──────────────────────────────── */
.media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: var(--s-4);
    margin-top: var(--s-5);
}
.media-card {
    display: block;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    overflow: hidden;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.media-card:hover {
    border-color: var(--cyan);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
    text-decoration: none;
}
/* نسبةٌ ثابتة: شبكةٌ لا تتعرّج مهما اختلفت أبعاد الصور */
.media-card img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: var(--paper);
}
.media-card__missing {
    display: grid;
    place-items: center;
    aspect-ratio: 4 / 3;
    background: var(--paper);
    color: var(--grey);
    font-size: 13px;
    padding: var(--s-3);
    text-align: center;
}
.media-card__name {
    display: block;
    padding: var(--s-3) var(--s-3) var(--s-1);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ink);
    /* اسمٌ طويل يُقصّ بثلاث نقاط بدل أن يكسر البطاقة */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.media-card__meta {
    display: block;
    padding: 0 var(--s-3) var(--s-3);
    font-size: 12px;
    color: var(--grey);
}

/* — شريط التصفية: نموذج GET في سطر واحد — */
.filters {
    display: flex;
    align-items: flex-end;
    gap: var(--s-3);
    flex-wrap: wrap;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: var(--s-4);
}
.filters label { display: flex; flex-direction: column; gap: var(--s-2); font-size: 13px; font-weight: 600; color: var(--grey); }

/* ── حقول النماذج: ارتفاعٌ واحد وحلقة تركيز واضحة ───────────────────────── */
.admin-main input[type="text"],
.admin-main input[type="email"],
.admin-main input[type="password"],
.admin-main input[type="file"],
.admin-main select,
.admin-main textarea,
.filters input, .filters select {
    font: inherit;
    font-size: 14.5px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    padding: 9px var(--s-3);
    min-height: 40px;
    width: 100%;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.admin-main textarea { min-height: 96px; line-height: 1.7; resize: vertical; }
.admin-main input:hover, .admin-main select:hover, .admin-main textarea:hover { border-color: #c3d2e2; }
.admin-main input:focus, .admin-main select:focus, .admin-main textarea:focus {
    border-color: var(--cyan);
    box-shadow: 0 0 0 3px rgba(31, 216, 199, .18);
    outline: none;
}
/* الحقول الرقمية الصغيرة داخل الجداول لا تُمدَّد */
.admin-main .admin-table input[type="text"],
.admin-main .table input[type="text"] { width: auto; min-width: 4.5rem; min-height: 34px; padding: 4px var(--s-2); }
.admin-main input[type="checkbox"], .admin-main input[type="radio"] {
    width: 18px; height: 18px; min-height: 0; accent-color: var(--cyan); cursor: pointer;
}
/* ★ مقصورةٌ على `.admin-main`: `.field` و`.hint` و`.error-msg` تستعملها **صفحة
   التواصل ومنطقة العميل** أيضاً (عشر شاشات). وقاعدةٌ عامّة هنا كانت ستغيّر مظهر
   نماذج الزائر — انحدارٌ حيث لم يُطلَب تغيير، ولا يظهر إلّا حين يشتكي عميل. */
.admin-main .field { margin-bottom: var(--s-4); }
.admin-main .field > label { display: block; font-size: 13.5px; font-weight: 600; color: var(--navy); margin-bottom: var(--s-2); }
.admin-main .field .hint, .admin-main .hint { display: block; font-size: 12.5px; color: var(--grey); line-height: 1.6; margin-top: var(--s-2); }
.admin-main .error-msg { display: block; font-size: 12.5px; color: var(--danger); font-weight: 600; margin-top: var(--s-2); }

/* — الشاشات الضيّقة: الشريط يصير أفقيّاً فوق المحتوى — */
@media (max-width: 900px) {
    .admin-shell { grid-template-columns: 1fr; }
    .admin-side { position: static; max-height: none; flex-direction: column; }
    .admin-side nav { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0 var(--s-3); }
    .admin-main { padding: var(--s-5) var(--s-4) var(--s-7); }
    .admin-topbar, .page-head { position: static; margin-top: 0; box-shadow: none; }
    /* الجداول تُمرَّر أفقيّاً بدل أن تُسحق */
    .admin-table, .admin-main .table { display: block; overflow-x: auto; white-space: nowrap; }
    .admin-table thead th, .admin-main .table thead th { position: static; }
}

/* — بطاقة المؤشّر رابطٌ لا لوح: تُنقَر فتفتح مصدرها — */
.stat-grid .stat { text-decoration: none; display: block; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.stat-grid .stat:hover { border-color: var(--cyan); box-shadow: var(--shadow-md); transform: translateY(-2px); text-decoration: none; }

/* الحالة تُلوّن الشريط العلوي — لونٌ يحمل معنى لا زينة */
.stat-grid .stat--ok { border-top-color: var(--ok); }
.stat-grid .stat--warn { border-top-color: var(--warn); }
.stat-grid .stat--bad { border-top-color: var(--danger); }

/* ★ قيمةُ حالةٍ **كلمةٌ لا رقم**: مقياس الأرقام (٣٠ بكسل) يجعلها تطغى على الشبكة
   كلّها — «لم يُشغَّل بعد» ليست ٦ ولا ١١. فتُصغَّر وتُسنَد بلونها. */
.stat--ok .stat__value, .stat--warn .stat__value, .stat--bad .stat__value {
    font-size: 19px;
    line-height: 1.45;
    font-weight: 700;
}
.stat--ok .stat__value { color: var(--ok); }
.stat--warn .stat__value { color: var(--warn); }
.stat--bad .stat__value { color: var(--danger); }
.stat__unit { display: block; font-size: 12.5px; font-weight: 600; color: var(--grey); margin-top: var(--s-2); }

/* — بطاقات المحتوى: مسافة أهدأ وعنوانٌ بحافّة — */
.admin-main .card { padding: var(--s-5); }
.admin-main .card > h2:first-child,
.admin-main .card > h3:first-child { margin-top: 0; }

/* — أزرار الجدول: صغيرة ولا تتمدّد — */
.admin-table .btn, .admin-main .table .btn { white-space: nowrap; }
/* محصورٌ باللوحة: التعليق أعلاه يقول «أزرار الجدول» — والنيّة إدارية. وغيرَ محصورٍ
   كان يُصغّر أزرار `plan-compare` العامّة ومكتبة العميل بلا قصد. */
.admin-main .btn--sm { padding: 5px var(--s-3); font-size: 13px; }

/* — قوائم السجلّات القابلة للإزالة (قاموس المقارنة · سجلّات التدقيق) —
   كانت نقاطاً خاماً بزرٍّ ملتصق. صارت صفوفاً بحدٍّ شعري: العنصر يميناً وإجراؤه
   يساراً — وهو النمط نفسه في الجداول، فتتّسق الشاشة مع نفسها. */
.admin-main .check__records {
    list-style: none;
    margin: var(--s-4) 0 0;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    background: #fff;
    overflow: hidden;
}
.admin-main .check__records li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--s-3);
    margin: 0;
    padding: var(--s-3) var(--s-4);
    border-bottom: 1px solid var(--line);
    font-size: 14.5px;
    transition: background .12s ease;
}
.admin-main .check__records li:last-child { border-bottom: 0; }
.admin-main .check__records li:hover { background: rgba(31, 216, 199, .06); }

/* — نموذج في سطر: إضافة سريعة بلا مغادرة الصفحة — */
.inline-form {
    display: flex;
    align-items: flex-end;
    gap: var(--s-3);
    flex-wrap: wrap;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: var(--s-4);
}
.inline-form label { display: flex; flex-direction: column; gap: var(--s-2); font-size: 13px; font-weight: 600; color: var(--grey); }
.inline-form input { min-width: 12rem; }
.inline-form input[size="4"], .inline-form input.lat[size] { min-width: 5rem; width: 5rem; }

/* — شريط بيانات الكيان أعلى صفحات التفاصيل — */
.admin-main .meta-bar, .admin-main .card--meta {
    display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-5);
    align-items: center; font-size: 14px; color: var(--grey);
}

/* — العنوان الثانوي داخل الصفحة — */
.admin-main > h2 {
    font-size: 18px; margin: var(--s-6) 0 var(--s-3); color: var(--navy);
    display: flex; align-items: center; gap: var(--s-3);
}
.admin-main > h2::before { content: ""; width: 3px; height: 16px; background: var(--cyan); border-radius: 2px; }
.admin-main > p.muted { color: var(--grey); font-size: 14px; margin-bottom: var(--s-4); }

/* — منتقي الصور: صندوقٌ محدود الارتفاع لا كتلةٌ تبتلع النموذج —
   بمكتبةٍ فيها أربعون صورة كان المنتقي يمتدّ ستّة صفوف فيدفع بقيّة الإعدادات
   خارج الشاشة. والحدّ يُبقي النموذج مقروءاً، والتمرير داخله لا يفقد السياق. */
.admin-main .media-choice__grid, .admin-main .media-picker__grid {
    max-height: 330px;
    overflow-y: auto;
    padding: var(--s-2);
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    background: #fbfdfe;
}
.admin-main .media-choice__none { margin-bottom: var(--s-3); font-weight: 600; }

/* — الحقل داخل بطاقة: مساحة أهدأ — */
.admin-main .admin-form .field:last-child { margin-bottom: 0; }
.settings-group { background: #fff; }
