/* ======================================================================
   EN Group ERP — تحسينات تصميم احترافية للوحة الإدارة (Filament 5.6)
   تُحقن عبر renderHook فوق أصول Filament — الوضع الفاتح وحده: الداكن مقفول (قرار المالك ١٠ أكتوبر).
   ====================================================================== */

:root {
    /* ── الألوان (المرحلة ٢ — قرار المالك ١٠ أكتوبر: «اللون الأساسي Teal») ──
       كل لونٍ في هذا الملف من ألوان اللوحة نفسها (AdminPanelProvider::colors): primary=Teal، gray=Slate،
       success=Emerald، warning=Amber، danger=Rose، info=Sky — بالدرجة نفسها (var(--primary-600) …) والشفافُ
       color-mix بالنسبة نفسها. فتغييرُ اللون الأساسي يكون هناك وحده، ولا لونَ حرفيًّا خارج هذه الكتلة. */
    --en-accent: var(--primary-500);
    --en-accent-soft: color-mix(in srgb, var(--primary-500) 12%, transparent);
    --en-accent-hover: color-mix(in srgb, var(--primary-500) 8%, transparent);
    /* فواصل الصفوف والخانات: slate-500 بشفافية أعلى — على الشاشات ضعيفة التباين كانت «سايحة» */
    --en-line: color-mix(in srgb, var(--gray-500) 38%, transparent);
    --en-white: #fff;
    --en-black: #000;
    /* ألوانٌ لها معنى بعينها خارج ألوان اللوحة */
    --en-empty-bg: #fef9c3;        /* تظليل الخانة الفارغة بالأصفر (بطلب المستخدم) — أصفرُ بعينه لا «تحذير» */
    --en-empty-line: #eab308;
    --en-violet-50: #f5f3ff;       /* بطاقة «المحصَّل» في التقارير، و«استلمها» في الواتساب القديم */
    --en-violet-500: #8b5cf6;
    --en-violet-600: #7c3aed;
    --en-violet-700: #6d28d9;
    --en-indigo-500: #6366f1;      /* لوحة «تبويبات الوثيقة» في شاشات الأدوار */

    /* ── الخطوط (قرار المالك ١٠ أكتوبر: Cairo من السيرفر، وأصغر حجم 12px) ──
       سلّمٌ واحد بالـrem: كل حجمٍ في الملف واحدٌ منه، والأصغر من 12px صار 12px. */
    --en-fs-xs: .75rem;            /* 12px — أصغر حجم */
    --en-fs-sm: .8125rem;          /* 13px */
    --en-fs-base: .875rem;         /* 14px — نصّ اللوحة */
    --en-fs-md: .9375rem;          /* 15px */
    --en-fs-lg: 1rem;              /* 16px */
    --en-fs-xl: 1.125rem;          /* 18px */
    --en-fs-2xl: 1.25rem;          /* 20px */
    --en-fs-3xl: 1.375rem;         /* 22px */
    --en-fs-icon: 2.875rem;        /* 46px — أيقونة حالة الواتساب (إيموجي) */
    --en-fs-map: 26px;             /* اسم المحافظة داخل خريطة التربة (وحدات الرسم نفسه) */
    --en-fs-none: 0;               /* نصٌّ مخفي تبقى أيقونته (أزرار الشريط المختصرة على التليفون) */

    /* الأوزان: الخطُّ مصرَّحٌ به 400–700 وحدها (public/css/en-font.css) — فلا 800: كانت تُرسم 700 */
    --en-fw-normal: 400;
    --en-fw-medium: 500;
    --en-fw-semibold: 600;
    --en-fw-bold: 700;

    /* تباعد الحروف */
    --en-ls-wide: .01em;
    --en-ls-tight: -.01em;
    --en-ls-tighter: -.02em;

    --en-radius: .85rem;
    /* محتوى الخلية 1.85rem يتّسع لحدود خانة الإدخال داخل صفٍّ من 42 بكسل بالضبط */
    --en-cell-content: 1.85rem;
    --en-row-h: 42px;
    /* أقلُّ مساحة لمسٍ لزرٍّ وحيد على التليفون (زرُّ الخروج في الشريط العلوي)، وأيقونتُه داخلها */
    --en-touch: 44px;
    --en-touch-icon: 20px;

    /* ── الجداول (المرحلة ٤ — توحيد الجداول) ──
       كلُّ جدولٍ في النظام من هذه الرموز وحدها: الصفُّ سطرٌ واحد بارتفاع --en-row-h، والرأسُ والخطوطُ والتظليلُ والشاراتُ
       والتلميحُ بشكلٍ واحد، والأرقامُ جدوليةُ العرض. وتنسيقُ القيمة (المال، التاريخ، القصّ، الحجم) من مصنع الأعمدة
       App\Filament\Design\Columns — لا من الشاشات. */
    --en-ta-pad-block: .3rem;              /* حشوُ الخلية الرأسي: سطرُ الاسم + الحشو = ٤٢ */
    --en-ta-stack-pad-block: .25rem;       /* الخليةُ المكدّسة (شارة أو نص + سطرُ وصف 12px): محتواها ٣٢ فيبقى صفُّها ٤٢ */
    --en-ta-text-max: 20rem;               /* أقصى عرضٍ لنصّ الخلية قبل «…» — ومقبضُ عرض العمود يتجاوزه */
    --en-ta-text-max-narrow: 16rem;        /* السقفُ الأضيق (Columns::clipped narrow): جدولٌ يتجاوز ١٢٨٠ والقائمةُ مفتوحة */
    --en-ta-head-bg: var(--gray-50);       /* رأسُ الجدول (ثابتٌ عند التمرير) */
    --en-ta-sticky-bg: var(--en-white);    /* الأعمدةُ المثبّتة وعمودُ الأزرار: معتمةٌ فلا يظهر ما تحتها */
    --en-ta-row-hover: var(--en-accent-hover);
    --en-ta-sticky-hover: color-mix(in srgb, var(--primary-500) 8%, var(--en-white));  /* تظليلُ الصف نفسه معتمًا */
    --en-ta-line: var(--gray-300);         /* فاصلُ الصفوف */
    --en-ta-head-line: var(--gray-400);    /* خطُّ أسفل الرأس */
    --en-ta-col-line: var(--gray-200);     /* فاصلُ الأعمدة */
    --en-ta-sticky-line: var(--gray-400);  /* حدُّ الأعمدة المثبّتة وعمود الأزرار */
    --en-ta-badge-pad-block: .1rem;        /* الشارةُ على ارتفاع سطر الاسم */
    /* التلميح: تلميحُ فيلامنت (x-tooltip) وصندوقُ الخلية المقصوصة (en-cell-tip) بشكلٍ واحد */
    --en-tip-bg: var(--en-white);
    --en-tip-fg: var(--gray-800);
    --en-tip-radius: .25rem;
    --en-tip-shadow: 0 0 20px 4px color-mix(in srgb, var(--gray-400) 15%, transparent),
        0 4px 80px -8px color-mix(in srgb, var(--gray-900) 25%, transparent),
        0 4px 4px -2px color-mix(in srgb, var(--gray-600) 15%, transparent);

    /* النوافذ والأقسام (المرحلة ٥): عنوانُ النافذة بحجم عنوان القسم ووزنه، ورأسُها وشريطُ أزرارها بخطٍّ فاصل وحشوٍ واحد —
       الوسطى كالمنزلقة. الحشوُ الجانبيّ ٢٠ بكسل في الثلاثة */
    --en-heading-fs: var(--en-fs-lg);      /* 16px — عنوانُ القسم وعنوانُ النافذة */
    --en-modal-pad-x: 1.25rem;
    --en-modal-head-pad-y: .85rem;
    --en-modal-body-pad-y: 1rem;
    --en-modal-foot-pad-y: .75rem;
    --en-modal-line: var(--gray-200);
}

* { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* ---------- الشريط الجانبي (Sidebar) ---------- */
.fi-sidebar .fi-sidebar-nav {
    gap: .125rem;
    padding: .65rem .55rem;
}

/* عناوين المجموعات: صغيرة، واضحة، رمادية هادئة، بمسافة علوية للفصل */
.fi-sidebar-group { margin-top: .7rem; }
.fi-sidebar-group:first-child { margin-top: .1rem; }
.fi-sidebar-group-label,
.fi-sidebar-group-btn .fi-sidebar-group-label {
    font-size: var(--en-fs-sm) !important;
    font-weight: var(--en-fw-bold) !important;
    letter-spacing: var(--en-ls-wide);
    padding-inline-start: .35rem;
}
.fi-sidebar-group-btn { border-radius: .55rem; }

/* عناصر التنقّل: مقاس مريح، خط متوسط، لون نص واضح، زوايا مستديرة */
.fi-sidebar-item-btn {
    border-radius: .55rem;
    padding-block: .5rem;
    transition: background-color .15s ease, color .15s ease;
}
.fi-sidebar-item-btn .fi-sidebar-item-label {
    font-size: var(--en-fs-md);
    font-weight: var(--en-fw-semibold);
}
.fi-sidebar-item-icon { width: 1.3rem; height: 1.3rem; }

/* العنصر النشط: خلفية teal خفيفة + نص/أيقونة teal + شريط تمييز على جهة البداية (يمين في RTL) */
.fi-sidebar-item.fi-active .fi-sidebar-item-btn,
.fi-sidebar-item-btn.fi-active {
    position: relative;
}
.fi-sidebar-item.fi-active .fi-sidebar-item-btn .fi-sidebar-item-label,
.fi-sidebar-item-btn.fi-active .fi-sidebar-item-label {
    font-weight: var(--en-fw-bold);
}
.fi-sidebar-item.fi-active .fi-sidebar-item-btn::before,
.fi-sidebar-item-btn.fi-active::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block: .35rem;
    width: 3px;
    border-radius: 99px;
}
.fi-sidebar-item.fi-active .fi-sidebar-item-btn .fi-sidebar-item-icon,
.fi-sidebar-item-btn.fi-active .fi-sidebar-item-icon {
    color: var(--en-accent) !important;
}

/* رأس الشعار */
.fi-sidebar-header {
    border-bottom: 1px solid var(--en-line);
    box-shadow: none;
}

/* ---------- الشريط العلوي (Topbar) ---------- */
.fi-topbar {
    box-shadow: 0 1px 0 var(--en-line);
}
.fi-topbar > nav { backdrop-filter: saturate(1.15); }

/* ---------- الأقسام والبطاقات ---------- */
.fi-section,
.fi-ta-ctn,
.fi-wi-stats-overview-stat {
    border-radius: var(--en-radius) !important;
}

/* ---------- بطاقات المؤشّرات (KPIs) ---------- */
.fi-wi-stats-overview-stat {
    border: 1px solid var(--en-line);
    box-shadow: 0 1px 2px color-mix(in srgb, var(--gray-900) 5%, transparent);
    transition: transform .16s ease, box-shadow .16s ease;
    overflow: hidden;
}
.fi-wi-stats-overview-stat:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px color-mix(in srgb, var(--gray-900) 12%, transparent);
}
.fi-wi-stats-overview-stat-value {
    font-weight: var(--en-fw-bold);
    letter-spacing: var(--en-ls-tight);
}
.fi-wi-stats-overview-stat-description { opacity: .85; }

/* ---------- العناوين ---------- */
.fi-header-heading,
.fi-section-header-heading {
    font-weight: var(--en-fw-bold);
    letter-spacing: var(--en-ls-tight);
}

/* ---------- الجداول (رموزُها في :root — «الجداول») ---------- */
.fi-ta-header-cell-label { font-weight: var(--en-fw-bold); }
.fi-ta-row { transition: background-color .12s ease; }
.fi-ta-row:hover { background-color: var(--en-ta-row-hover); }
/* الأرقامُ متساويةُ العرض فتصطفّ خاناتُها في العمود (المبالغ والتواريخ والأكواد). Cairo جدوليُّ الأرقام أصلًا (مقيس:
   ‎1111111111‎ و‎0000000000‎ بالعرض نفسه)، والرمزُ يحفظ الاصطفافَ متى رُسم الجدولُ بخطٍّ احتياطي قبل تحميله */
.fi-ta-table { font-variant-numeric: tabular-nums; }

/* ---------- الأزرار ---------- */
.fi-btn { font-weight: var(--en-fw-semibold); }

/* ---------- شارات (Badges) أوضح ---------- */
.fi-badge { font-weight: var(--en-fw-bold); }

/* ====== شريط جانبي داكن (طلب المستخدم: خليه غامق) ====== */
.fi-sidebar,
.fi-sidebar-header {
    background-color: var(--gray-900) !important;          /* slate-900 */
    border-color: color-mix(in srgb, var(--gray-400) 12%, transparent) !important;
}
.fi-sidebar { border-inline-end: 1px solid color-mix(in srgb, var(--gray-400) 14%, transparent) !important; }

/* اسم العلامة فاتح */
.fi-sidebar-header, .fi-sidebar-header * { color: var(--gray-200) !important; }

/* عناوين المجموعات */
.fi-sidebar-group-label,
.fi-sidebar-group-btn .fi-sidebar-group-label { color: var(--gray-300) !important; }
.fi-sidebar-group-btn { color: var(--gray-100) !important; }
.fi-sidebar-group-btn:hover { background-color: color-mix(in srgb, var(--en-white) 5%, transparent) !important; }

/* عناصر التنقّل */
.fi-sidebar-item-btn { color: var(--gray-50) !important; }
.fi-sidebar-item-icon { color: var(--gray-300) !important; }
.fi-sidebar-item-btn:hover {
    background-color: color-mix(in srgb, var(--primary-500) 14%, transparent) !important;
    color: var(--primary-300) !important;
}
.fi-sidebar-item-btn:hover .fi-sidebar-item-icon { color: var(--primary-400) !important; }

/* العنصر النشط */
.fi-sidebar-item.fi-active .fi-sidebar-item-btn,
.fi-sidebar-item-btn.fi-active {
    background-color: color-mix(in srgb, var(--primary-500) 20%, transparent) !important;
    color: var(--primary-300) !important;
}
.fi-sidebar-item.fi-active .fi-sidebar-item-icon,
.fi-sidebar-item-btn.fi-active .fi-sidebar-item-icon { color: var(--primary-400) !important; }
.fi-sidebar-item.fi-active .fi-sidebar-item-btn::before,
.fi-sidebar-item-btn.fi-active::before { background: var(--primary-400) !important; }

/* لون نص العناصر نفسه (الـlabel) فاتح — Filament يلوّنه بمفرده */
.fi-sidebar-item-btn .fi-sidebar-item-label { color: var(--gray-50) !important; }
.fi-sidebar-item-btn:hover .fi-sidebar-item-label,
.fi-sidebar-item.fi-active .fi-sidebar-item-btn .fi-sidebar-item-label,
.fi-sidebar-item-btn.fi-active .fi-sidebar-item-label { color: var(--primary-300) !important; }

/* ====== إخفاء أفاتار قائمة المستخدم (استُبدل بالاسم + زر خروج في الشريط العلوي) ====== */
.fi-user-menu { display: none !important; }

/* ====== تثبيت عمود الاسم (sticky) في الجداول العريضة — جهة البداية (يمين في RTL) ====== */
.en-sticky-col {
    position: sticky !important;
    inset-inline-start: 0;
    z-index: 5;
    background-color: var(--en-ta-sticky-bg);
    border-inline-end: 2px solid var(--en-line);
}

/* العمود المثبّت يتبع تظليل الصف عند مرور المؤشّر (يبقى مُعتمًا فلا يظهر ما تحته) — بلونه نفسه لا بأخضرٍ آخر */
.fi-ta-row:hover .en-sticky-col { background-color: var(--en-ta-sticky-hover); }

/* ====== رأس الجدول ثابت عند التمرير الرأسي ====== */
/* حاوية الجدول لها overflow-x:auto (للتمرير الأفقي والعمود المثبّت)، وهذا وحده
   يكسر ثبات الرأس رأسيًا. نجعل نفس الحاوية تمرّر رأسيًا (بارتفاع محدود) فيثبت
   الرأس داخلها، ويبقى ترقيم الصفحات أسفلها ثابتًا. */
.fi-ta-content-ctn {
    /* dvh لا vh: شريط المتصفّح المتحرك على الأجهزة يجعل vh أكبر من المعروض
       فعلًا، فينزل أسفل الحاوية — ومعه الشريط الأفقي — تحت حافة الشاشة.
       و12rem بدل 15: رأس الصفحة هنا سطران وشريط أدوات لا أكثر. */
    /* !important لازم: ستايل فيلامنت يُحمَّل بعد هذا الملف بنفس التخصيص
       فيعيد max-height إلى none وoverflow إلى auto (قِيس في المتصفّح). */
    max-height: calc(100dvh - 12rem) !important;
    overflow-y: scroll !important;   /* لا auto: الشريط ظاهر دائمًا فلا يُظنّ غير موجود */
    overflow-x: scroll !important;
}
/* شريطا التمرير أعرض وأوضح — الرفيع الافتراضي يكاد لا يُرى */
.fi-ta-content-ctn::-webkit-scrollbar { width: 13px; height: 13px; }
.fi-ta-content-ctn::-webkit-scrollbar-track { background: var(--gray-100); }
.fi-ta-content-ctn::-webkit-scrollbar-thumb {
    background: var(--gray-400); border-radius: 8px;
    border: 3px solid transparent; background-clip: content-box;
}
.fi-ta-content-ctn::-webkit-scrollbar-thumb:hover { background: var(--gray-500); background-clip: content-box; }
.fi-ta-content-ctn::-webkit-scrollbar-corner { background: var(--gray-100); }
.fi-ta-table thead .fi-ta-header-cell {
    /* !important لازم: قاعدة فيلامنت «.fi-ta th.fi-ta-header-cell» تخصيصها
       أعلى وتضع position: relative فتُبطل الثبات (قِيس في المتصفّح). */
    position: sticky !important;
    top: 0;
    z-index: 8;
    background-color: var(--en-ta-head-bg);
}
/* خلية رأس العمود المثبّت: تثبت أفقيًا ورأسيًا معًا (تبقى في الزاوية) */
.fi-ta-table thead .fi-ta-header-cell.en-sticky-col {
    z-index: 9;
    background-color: var(--en-ta-head-bg);
}

/* ====== فروزن: عمودان مثبّتان جهة البداية (يمين RTL) بعرض ثابت وإزاحات تراكمية ====== */
.en-frozen-1, .en-frozen-2 {
    position: sticky !important;
    z-index: 5;
    background-color: var(--en-ta-sticky-bg);
    width: 15rem; min-width: 15rem; max-width: 15rem;
}
.en-frozen-1 { inset-inline-start: 0; }
.en-frozen-2 { inset-inline-start: 15rem; border-inline-end: 2px solid var(--en-line); }
.fi-ta-row:hover .en-frozen-1, .fi-ta-row:hover .en-frozen-2 { background-color: var(--en-ta-sticky-hover); }
.fi-ta-table thead .fi-ta-header-cell.en-frozen-1,
.fi-ta-table thead .fi-ta-header-cell.en-frozen-2 { z-index: 9; background-color: var(--en-ta-head-bg); }

/* ====== الإجراءات مثبّتة جهة النهاية (شمال RTL) ====== */
.fi-ta-cell:has(.fi-ta-actions),
.fi-ta-table thead .fi-ta-actions-header-cell {
    position: sticky !important;
    inset-inline-end: 0;
    z-index: 6;
    background-color: var(--en-ta-sticky-bg);
    border-inline-start: 2px solid var(--en-line);
}
.fi-ta-table thead .fi-ta-actions-header-cell { z-index: 9; background-color: var(--en-ta-head-bg); }
.fi-ta-row:hover .fi-ta-cell:has(.fi-ta-actions) { background-color: var(--en-ta-sticky-hover); }

/* ====== صفوف أقصر (كثافة أعلى) في كل الجداول ====== */
.fi-ta-cell, .fi-ta-header-cell { padding-block: var(--en-ta-pad-block) !important; }
.fi-ta-cell .fi-ta-text { --gap: 0; }

/* ====== «لوحة التحكم» مثبّتة أعلى الشريط (لا تتحرك مع تمرير القائمة) ====== */
.fi-sidebar-nav-groups > li:first-child {
    position: sticky;
    top: 0;
    z-index: 20;
    margin-top: 0 !important;
    background-color: var(--gray-900);          /* مطابق لخلفية الشريط حتى تختفي العناصر خلفها */
    box-shadow: 0 8px 8px -8px color-mix(in srgb, var(--en-black) 55%, transparent);
}

/* ====== «خدمة وثائق تأمين»: قائمة منسدلة مطاطية (طي/فتح يدوي) ====== */
.fi-sidebar-item.en-reflist > .fi-sidebar-item-btn { cursor: pointer; }
.fi-sidebar-item.en-reflist > .fi-sidebar-item-btn .fi-sidebar-item-label::after {
    content: '▾';
    margin-inline-start: .4rem;
    font-size: var(--en-fs-xs);
    display: inline-block;
    transition: transform .15s ease;
}
.fi-sidebar-item.en-reflist.en-collapsed > .fi-sidebar-item-btn .fi-sidebar-item-label::after { transform: rotate(-90deg); }
.fi-sidebar-item.en-reflist.en-collapsed > ul.fi-sidebar-sub-group-items { display: none !important; }

/* ====== تقليل الفراغات الرأسية في الصفحات (كثافة أعلى) — كانت 2rem لكل منها ====== */
.fi-page-header-main-ctn { padding-block: .25rem !important; row-gap: .35rem !important; }
.fi-page-main { gap: .35rem !important; }
.fi-page-content { row-gap: .6rem !important; }

/* ====== وثائق التأمين: إخفاء شريط التبويبات (استُبدل بقائمة «المراحل» المنسدلة برأس الصفحة) ====== */
.en-hide-stage-tabs nav.fi-tabs { display: none !important; }

/* ====== مراحل خدمات النقابة على التليفون: الأزرار الستة شبكةٌ من عمودين بدل شريطٍ يُسحب جانبًا —
   كلُّ مرحلةٍ وعددُها أمام العين (بطلب المالك: «زر كل التقارير و علي الزر عدد كل التقارير …») ====== */
@media (max-width: 640px) {
    .fi-resource-list-records-page.fi-resource-consultant-reports nav.fi-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: calc(var(--spacing) * 1);
        width: 100%;
    }
}

/* ====== ومراحل طلبات الرسومات كذلك: سبعةُ أزرارٍ بأعدادها أعرضُ من الشريط الذي رفضه المالك
   في النقابة — الشبكةُ نفسها (بطلبه: «عايز الازرار الي فوق … وكل زر عليه الاعداد») ====== */
@media (max-width: 640px) {
    .fi-resource-list-records-page.fi-resource-drawing-requests nav.fi-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: calc(var(--spacing) * 1);
        width: 100%;
    }
}
/* وعلى الكمبيوتر حين لا تسعها المساحة تلتفّ سطرًا ثانيًا ولا تُقصّ: كانت «السجل» وعددُها تُقصّ على ١٢٨٠
   بالقائمة (٣٨ بكسل) وتغيب ثلاثةٌ منها خلف السحب الجانبي على ١٠٢٤ بها (٢٩٤ بكسل، مقيس) — والسحبُ الجانبيُّ
   هو الشريط الذي رفضه المالك أعلاه. والتي تسعها كما هي سطرًا واحدًا */
@media (min-width: 641px) {
    .fi-resource-list-records-page.fi-resource-drawing-requests nav.fi-tabs {
        flex-wrap: wrap;
        row-gap: calc(var(--spacing) * 1);
    }
}

/* ====== كثافة الفورمات: فراغات أقل بين الصفوف وارتفاع خانات أصغر ====== */
.fi-section-content-ctn > .fi-section-content { padding: .65rem .9rem !important; }
.fi-grid { gap: .55rem 1rem !important; }                       /* بين الحقول */
.fi-fo-field { row-gap: .2rem !important; }                     /* بين الليبل والخانة */
.fi-input { padding-block: .35rem !important; }                 /* ارتفاع خانة الإدخال */
.fi-select-input { padding-block: .35rem !important; }
.fi-section-header { padding-block: .55rem !important; }        /* رأس البطاقة */
.fi-fieldset { padding: .5rem .75rem !important; }              /* المجموعات الداخلية (الأبعاد/الشوارع…) */
.fi-fieldset-not-contained { padding-top: .7rem !important; }

/* ====== النوافذ والأقسام بشكلٍ واحد (المرحلة ٥ — «وحّد شكل النوافذ: العناوين والأزرار والمسافات») ======
   كانت النافذةُ الوسطى رأسًا بلا فاصل وعنوانًا أخفّ من عنوان القسم (600) وأزرارًا ملتصقةً بآخر خانة، والمنزلقةُ رأسًا وشريطَ
   أزرارٍ بخطٍّ فاصل وحشوٍ آخر. صارتا شكلًا واحدًا: عنوانٌ عريض بحجم عنوان القسم، وخطٌّ تحت الرأس، وشريطُ أزرارٍ بخطٍّ فوقه،
   وحشوٌ واحد. نوافذُ التأكيد (أيقونةٌ في الوسط بلا فورم) تبقى بشكلها المركزي — والعنوانُ العريض لها أيضًا.
   والحشوُ الجانبي للرأس من جهة البداية وحدها: جهةُ النهاية يحجزها فيلامنت لزرّ الإغلاق فلا يركبه عنوانٌ طويل */
.fi-modal-heading {
    font-size: var(--en-heading-fs);
    font-weight: var(--en-fw-bold);
}
.fi-modal-window.fi-modal-window-has-content:not(.fi-modal-window-has-icon) > .fi-modal-header {
    padding-block: var(--en-modal-head-pad-y) !important;
    padding-inline-start: var(--en-modal-pad-x) !important;
    border-bottom: 1px solid var(--en-modal-line);
}
.fi-modal-window.fi-modal-window-has-content:not(.fi-modal-window-has-icon) > .fi-modal-content {
    padding: var(--en-modal-body-pad-y) var(--en-modal-pad-x) !important;
}
.fi-modal-window.fi-modal-window-has-content:not(.fi-modal-window-has-icon) > .fi-modal-footer {
    padding: var(--en-modal-foot-pad-y) var(--en-modal-pad-x) !important;
    border-top: 1px solid var(--en-modal-line);
}
/* الأقسام: عنوانٌ واحدُ الحجم (كان ١٦ في التسعين قسمًا بلا تصريح؛ صار رمزًا مشتركًا مع عنوان النافذة) */
.fi-section-header-heading { font-size: var(--en-heading-fs); }
/* الإشعارُ المنبثق (.fi-no > إشعار — لا إشعاراتُ لوحة الجرس، فهي نافذةٌ منزلقة أيضًا وأزرارُها شغلُ الموظفين) والنافذةُ المنزلقة مفتوحة:
   كان «تمت الإضافة» يقع على ركن ✕ النافذة نفسه (بعد «إضافة» ثم فتحٍ فوري، وبعد «إضافة وبدء إضافة المزيد») و✕ الإشعار فوق ✕ النافذة.
   - الشاشةُ العريضة (تسع النافذةَ ٧٦٨ والإشعارَ ٣٨٤ جنبها): الإشعارُ في الجهة الأخرى فوق الخلفية — لا يغطي من النافذة شيئًا ويبقى كلُّه يُضغط.
   - الأضيق: يُترك ركنُ ✕ النافذة مكشوفًا (٤rem)، وجسمُ الإشعار يمرّر الضغطَ لما تحته (عنوانُ النافذة وأولُ خانة) وأزرارُه هو تُضغط فتغلقه وحده */
@media (min-width: 75rem) {
    body:has(.fi-modal-slide-over.fi-modal-open) .fi-no { align-items: flex-start; }
}
@media (max-width: 74.99rem) {
    body:has(.fi-modal-slide-over.fi-modal-open) .fi-no { inset-inline-end: 4rem; }
    body:has(.fi-modal-slide-over.fi-modal-open) .fi-no > .fi-no-notification { pointer-events: none; }
    body:has(.fi-modal-slide-over.fi-modal-open) .fi-no > .fi-no-notification :is(a, button) { pointer-events: auto; }
}

/* قائمة «تبديل الأعمدة»: أعمدتنا كثيرة (55+) — سكرول داخلي بدل تمطيط الصفحة
   (كانت تمتد لأسفل فيهبط الشريط الجانبي وتضيع أزرارها) */
.fi-ta-col-manager-dropdown .fi-dropdown-panel {
    max-height: 72vh !important;
    overflow-y: auto !important;
}

/* زر «تطبيق الأعمدة» مثبّت أسفل القائمة — يظهر دائمًا بلا نزول للسكرول */
.fi-ta-col-manager-dropdown .fi-ta-col-manager-actions-ctn {
    position: sticky;
    bottom: 0;
    background: var(--en-white);
    padding: .5rem 0 .25rem;
    margin-top: .25rem;
    box-shadow: 0 -6px 8px -6px color-mix(in srgb, var(--en-black) 18%, transparent);
}

/* «إعادة الضبط» في قائمة الأعمدة مخفيّ (بطلب المالك: «بدون ارجعها للافتراضي نهائي»): ضغطةٌ
   واحدة بلا تأكيد بجوار العنوان تمحو اختيار الموظف كلَّه وتحفظ الافتراضي — وكلُّ عمودٍ يُعلَّم
   ويُلغى بيده. ولا موضعَ «بلا زر» في فيلامنت (ColumnManagerResetActionPosition رأسٌ أو ذيل) */
.fi-ta-col-manager [wire\:click="resetTableColumnManager"] {
    display: none !important;
}

/* خانة الرسوم بورقة أوامر الدفع: على قدر 6 أرقام وكسرين — مطاطية داخل حدها */
.fi-ta td input[type="number"] {
    text-align: center;
}
/* خانةُ المبلغ (Columns::moneyInput) على الشمال كعمود المال (قرار المالك ١١ أكتوبر: «المبالغ في الجداول كلها على الشمال») —
   والتوسيطُ أعلاه باقٍ لخانات الأعداد (قراءاتُ العدادات، عددُ الأشهر) */
.fi-ta td input[type="number"].fi-align-end {
    text-align: end;
}

/* قوائم الاختيار داخل الجداول (نوع السداد…): على قدر الاختيار لا تتمدد */

/* عمودا «الرسوم» و«نوع السداد»: عرض العمود نفسه مقفول — الفراغ يذهب لأعمدة الأسماء */

/* بقية أعمدة الإدخال بورقة أوامر الدفع: عرض مقفول موحّد حتى لا تتزاحم الأعمدة */

/* كل خانة إدخال داخل الجدول تملأ عمودها بالضبط — لا تفيض على العمود المجاور */
.fi-ta td input[type="number"],
.fi-ta td input[type="date"],
.fi-ta td input[type="text"],
.fi-ta td select {
    min-width: 0 !important;
}
.fi-ta-cell-fees-amount, .fi-ta-cell-submitted-at, .fi-ta-cell-receipt-date,
.fi-ta-cell-payment-method, .fi-ta-cell-notes {
    padding-inline: 0.5rem !important;
}

/* خانة التاريخ الأصلية اتجاهها LTR داخل RTL — تُعرض كاملة بلا قص */
.fi-ta td input[type="date"] {
    direction: ltr;
    text-align: center;
}

/* غلاف خانات الإدخال في فيلامنت له عرض ثابت 12rem يفيض على الأعمدة الضيقة —
   يُجبر على عرض عموده (هذا كان سبب «الأعمدة دخلت في بعضها») */
.fi-ta td .fi-ta-text-input,
.fi-ta td .fi-ta-select {
    min-width: 0 !important;
}

/* خانة الرسوم: إخفاء سهمي الزيادة/النقصان — أرقام فقط */
.fi-ta td input[type="number"]::-webkit-outer-spin-button,
.fi-ta td input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.fi-ta td input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

/* عرض التاريخ يوم/شهر/سنة فوق خانة التاريخ الأصلية (كروم لا يسمح بتغيير صيغتها) */
.en-date-view {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    font-size: var(--en-fs-sm);
    letter-spacing: var(--en-ls-tight);
    direction: ltr;
    color: var(--gray-900);
    padding-inline-end: 1.4rem;
    white-space: nowrap;
    overflow: hidden;
}
/* إخفاء نصّ الخانة الأصلية تحت العرض المكتوب فوقها. سفاري على الآيفون لا
   يحترم ::-webkit-datetime-edit وحده، فيظهر تاريخُه فوق تاريخنا ويتراكبان
   («24Aug2026» فوق «2026-08-24») — بلاغ المستخدم: «مشكلة في عرض التاريخ على
   التليفون». إخفاء لون الحروف على الخانة نفسها يشمل الحالتين. */
.fi-ta td input[type="date"].en-date-masked,
.fi-ta td input[type="date"].en-date-masked::-webkit-datetime-edit,
.fi-ta td input[type="date"].en-date-masked::-webkit-datetime-edit-text,
.fi-ta td input[type="date"].en-date-masked::-webkit-datetime-edit-day-field,
.fi-ta td input[type="date"].en-date-masked::-webkit-datetime-edit-month-field,
.fi-ta td input[type="date"].en-date-masked::-webkit-datetime-edit-year-field {
    color: transparent !important;
    -webkit-text-fill-color: transparent;
}

/* عمود كود أمر الدفع بورقة أوامر الدفع: عرض مقفول */

/* ===== الوضع الديناميكي (بطلب المستخدم): كل عمود على قدر محتواه =====
   يلغي أقفال العرض السابقة — الخانة بمقاسها الطبيعي والعمود يلتف حولها */
.fi-ta-cell-fees-amount, .fi-ta-header-cell-fees-amount,
.fi-ta-cell-payment-method, .fi-ta-header-cell-payment-method,
.fi-ta-cell-submitted-at, .fi-ta-header-cell-submitted-at,
.fi-ta-cell-receipt-date, .fi-ta-header-cell-receipt-date,
.fi-ta-cell-receipt-code, .fi-ta-header-cell-receipt-code,
.fi-ta-cell-notes, .fi-ta-header-cell-notes {
    width: auto !important;
    max-width: none !important;
    white-space: nowrap;
}
.fi-ta td .fi-ta-text-input,
.fi-ta td .fi-ta-select {
    width: auto !important;
    max-width: none !important;
}
.fi-ta td input[type="date"] {
    width: 8.7rem !important;
    max-width: none !important;
}
.fi-ta td input[type="number"] {
    width: 6rem !important;
    max-width: none !important;
}
.fi-ta td select {
    width: auto !important;
    max-width: none !important;
}
.fi-ta td input[type="text"] {
    width: 9.5rem !important;
    max-width: none !important;
}

/* نوع السداد: «اختر» تظهر كاملة دائمًا؛ والملاحظات تتوسع أثناء الكتابة */
.fi-ta td select {
    min-width: 6.5rem !important;
    text-overflow: ellipsis;
}
.fi-ta td input[type="text"] {
    transition: width 0.15s ease;
}
.fi-ta td input[type="text"]:focus {
    width: 16rem !important;
}

/* ===== مقبض سحب عرض الأعمدة من رأس الجدول (بطلب المستخدم) ===== */
.fi-ta th.fi-ta-header-cell,
.fi-ta table thead th {
    position: relative;
}
.en-col-resizer {
    position: absolute;
    top: 0;
    bottom: 0;
    left: -4px;
    width: 11px;
    cursor: col-resize;
    z-index: 3;
    user-select: none;
    -webkit-user-select: none;
}
/* الفاصل ظاهر دائمًا بلون مميز في رأس الجدول (بطلب المستخدم) */
.en-col-resizer::after {
    content: '';
    position: absolute;
    top: 18%;
    bottom: 18%;
    left: 4px;
    width: 3px;
    border-radius: 2px;
    background: var(--primary-600);
    opacity: 0.65;
}
.en-col-resizer:hover,
.en-col-resizer.en-dragging {
    background: color-mix(in srgb, var(--warning-500) 15%, transparent);
    border-radius: 3px;
}
/* عند الوقوف عليه أو السحب: يتضخّم ويتحوّل كهرماني ليبان أنه ممسوك */
.en-col-resizer:hover::after,
.en-col-resizer.en-dragging::after {
    top: 4%;
    bottom: 4%;
    left: 3px;
    width: 5px;
    background: var(--warning-500);
    opacity: 1;
}
body.en-col-dragging {
    cursor: col-resize !important;
    user-select: none !important;
    -webkit-user-select: none !important;
}

/* ===== الأعمدة على أقل عرض تلقائيًا — والتكبير يدويًا بمقبض السحب (بطلب المستخدم) ===== */
.fi-ta table thead th {
    width: 1%;
    white-space: nowrap;
}
/* آخر عمود يمتص الفائض حتى لا تتمدد بقية الأعمدة */
.fi-ta table thead th:last-child {
    width: auto;
}
/* الخلايا سطر واحد (ارتفاع الصف ثابت) — عدا الأعمدة الملفوفة عمدًا */
.fi-ta table td {
    white-space: nowrap;
}
/* ===== بطلب المستخدم (كل الشاشات): الصف 1 سم على سطر واحد على قدر الاسم، النص الطويل يُقص «…»
   ويظهر كاملًا فور الوقوف عليه (صندوق en-cell-tip من admin-sidebar.js أو tooltip العمود) ===== */
/* الارتفاع على الصف والخلية معًا: على الصف وحده تتجاهله بعض الصفوف فتخرج أقصر */
.fi-ta table tbody tr,
.fi-ta table tbody td { height: var(--en-row-h); }
/* جداولُنا داخل النوافذ (عمليات/قراءات) ليست جداول فيلامنت وإن سكنت داخل
   .fi-ta: ارتفاعٌ مفروضٌ ٤٢ بكسل على صفوفها كان يجعل بطاقة التلفون (ستّ خانات
   فوق بعضها) تتراكب على نفسها (بلاغ المستخدم: «الشاشة بايظة») */
.en-ops table tbody tr,
.en-ops table tbody td { height: auto !important; }
.fi-ta table td .fi-ta-text {
    display: block;
    max-width: var(--en-text-max, var(--en-ta-text-max));   /* مقبض عرض العمود يلغي الحد عند التوسيع */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap !important;
}
/* نصٌّ حرٌّ بسقفٍ أضيق (Columns::clipped narrow — البيان في المحذوفات): الجدولُ يدخل في ١٢٨٠ والقائمةُ مفتوحة */
.fi-ta table td .fi-ta-text.en-text-narrow { max-width: var(--en-text-max, var(--en-ta-text-max-narrow)); }
/* عمودٌ على الشمال (alignEnd — المبالغ كلها، قرار المالك ١١ أكتوبر): صندوقُ النص بسقف عرضه يُدفع لنهاية الخلية، فالمبلغ على حافة
   العمود الشمال مهما اتّسع العمود — كان يقف عند ٢٠rem من اليمين في العمود الأعرض («الرصيد» في أكبر المدينين على ١٢٨٠ المطوية: من ٣٩٦ إلى ٥٨ بكسل، حافةُ العمود) */
.fi-ta table td.fi-align-end .fi-ta-text { margin-inline-start: auto; }
/* الأعمدة الملفوفة عمدًا والقوائم متعددة الأسطر: سطر واحد أيضًا */
.fi-ta table td .fi-ta-text.fi-wrapped,
.fi-ta table td .fi-ta-text.fi-ta-text-has-line-breaks { white-space: nowrap !important; }
.fi-ta table td .fi-ta-text .fi-ta-text-item { display: inline !important; white-space: nowrap !important; vertical-align: middle; }
.fi-ta table td .fi-ta-text .fi-ta-text-item + .fi-ta-text-item::before { content: '، '; color: var(--gray-400); }
/* الوصف (كان سطرًا ثانيًا) يلحق بالنص في نفس السطر */
.fi-ta table td .fi-ta-text .fi-ta-text-description { display: inline !important; margin: 0 !important; color: var(--gray-500); font-size: var(--en-fs-xs); }
.fi-ta table td .fi-ta-text .fi-ta-text-item + .fi-ta-text-description::before,
.fi-ta table td .fi-ta-text .fi-ta-text-description + .fi-ta-text-item::before { content: ' — '; color: var(--gray-400); }
/* الشارات قصيرة — بلا قص */
.fi-ta table td .fi-ta-text.fi-ta-text-has-badges { max-width: none; overflow: visible; }
/* رقم الوثيقة وتحته رقم الملحق (بطلب المستخدم): الوصف سطرٌ ثانٍ مضغوط داخل الصف نفسه — ٤٢ بكسل مقيسة */
.fi-ta table td .fi-ta-text.en-cell-stack { font-size: var(--en-fs-base); }
.fi-ta table td .fi-ta-text.en-cell-stack,
.fi-ta table td .fi-ta-text.en-cell-stack .fi-ta-text-item,
.fi-ta table td .fi-ta-text.en-cell-stack .fi-ta-text-description { line-height: 1.15 !important; }
.fi-ta table td .fi-ta-text.en-cell-stack .fi-ta-text-description { display: block !important; }
.fi-ta table td .fi-ta-text.en-cell-stack .fi-ta-text-item + .fi-ta-text-description::before { content: none; }
/* الشارة داخل الخلية المكدّسة بنصف حشوها الرأسي: الوصفُ تحتها صار 12px (أصغر حجم، المرحلة ٢) فلا يطول الصفُّ عمّا كان */
.fi-ta table tbody td .fi-ta-text.en-cell-stack .fi-badge { padding-block: .05rem !important; }
/* (المرحلة ٤) وحشوُ خليتها الرأسي أقلّ قليلًا: المكدّسُ ٣٢ بكسل + حشو ٠٫٣rem + خطّ الصف = ٤٢٫٨ — فكان صفُّ «حالة الوثيقة»
   في الرسومات وكلُّ صفٍّ برقم ملحقٍ تحت رقم الوثيقة أطولَ من صفوف النظام كلِّها (مقيس على الحي بعد خط Cairo) */
.fi-ta table tbody td:has(.fi-ta-text.en-cell-stack) { padding-block: var(--en-ta-stack-pad-block) !important; }
/* ملخّصُ المقدمات تحت اسم المالك في كشف العميل (D13 — AdvanceMemo::forEntries): يلتفّ داخل الخلية ولا يُقصّ رقمٌ مالي أبدًا.
   كان سطرًا واحدًا يُقصّ من الشمال بلا «…» حين صار أربعة أجزاء («مدفوع 115,000» ظهر «مدفوع 5,000» — مراجعة الشاشات الثانية).
   الرقمُ ملتصقٌ بعنوانه بمسافةٍ لا تنكسر فالالتفافُ بعد «•» وحده، والكاملُ بتواريخه في التلميح. والداكنُ برماديٍّ فاتحٍ مقروء:
   لونُ الأوصاف الثابت كان تباينُه نحو ٣٫٦ إلى ١ على خلفية الجدول الداكنة */
.fi-ta table td .fi-ta-text.en-adv-sum .fi-ta-text-description { white-space: normal !important; line-height: 1 !important; }
/* ثلاثةُ أسطرٍ (الاسمُ وسطرا الملخّص) في الصف الموحّد ٤٢ بكسل: بلا حشوٍ رأسي للخلية والاسمُ على خطّ القاعدة — مقيسة ٤٠٫٧ بكسل.
   والقصُّ أفقيٌّ وحده (clip لا hidden): ذيلُ الياء آخرَ الملخّص كان يُقصّ من تحت فتُقرأ «الباقي» «الباق» */
.fi-ta table tbody td:has(.fi-ta-text.en-adv-sum) { padding-block: 0 !important; }
.fi-ta table td .fi-ta-text.en-adv-sum { overflow-x: clip !important; overflow-y: visible !important; }
.fi-ta table td .fi-ta-text.en-adv-sum .fi-ta-text-item { vertical-align: baseline !important; }
.dark .fi-ta table td .fi-ta-text.en-adv-sum .fi-ta-text-description { color: var(--gray-400); }
/* (مراجعة الشاشات الثالثة) عرضٌ أدنى للخلية ذات الملخّص: صفحةٌ كلُّ أسماء ملاكها قصيرة كانت تضيّق العمود لأعرض كلمة فيلتفّ الملخّص
   ٣–٤ أسطر والصف ٥٤–٦٦ بكسل (العميل 21). و15rem تحمل أسوأ ملخّصٍ واقعي سطرين — أربعةُ أجزاءٍ بسبع خانات و«زيادة … له» بسبع خانات —
   مقيسة، و13rem كانت تترك «زيادة» ثلاثة أسطر. وسطرُ الاسم بارتفاع خطّه (1): نصفُ فراغه الزائد كان يدفع ذيلَ «مدفوع» آخرَ الملخّص
   فوق خطّ حدّ الصف — والآن حبرُ همزة الاسم وذيلُ «مدفوع» بين الخطّين (بكسلات لقطةٍ حقيقية على 1 و2 و3) */
.fi-ta table td .fi-ta-text.en-adv-sum { min-width: 15rem !important; line-height: 1 !important; }
.fi-ta table td .fi-ta-text.en-adv-sum .fi-ta-text-item { line-height: 1 !important; }
/* (مراجعة الشاشات الخامسة — بعد توحيد الشكل ٢: خط Cairo من السيرفر وأصغر خط 12px) حبرُ Cairo أطولُ من سطره: الاسمُ 14px
   وسطرا الملخّص 12px كانوا يلمسون خطّ حدّ الصف السفلي (ذيلُ «مدفوع» والياء)، وذيولُ الاسم الطويل تتراكب مع شدّة «اتسعّرتش» —
   بكسلات لقطاتٍ حقيقية على 390 و1280 والمطوية. الآن الخليةُ عمودٌ بارتفاع الصف: الاسمُ أعلاها والملخّصُ أسفلها والفراغُ بينهما
   (سطرٌ واحد ⟵ فراغٌ واسع، سطران ⟵ نحو ٢ بكسل)، وحشوٌ سفلي ٣ بكسل لذيل الياء آخرَ الملخّص، والاسمُ بأصغر حجم كالملخّص
   ويتميّز بلونه. والاسمُ بعرض نصّه فالوقوفُ عليه يُظهر التلميح، و«…» الاسم الطويل عليه هو بعد أن صارت الخليةُ عمودًا */
.fi-ta table td .fi-ta-text.en-adv-sum { display: flex !important; flex-direction: column; justify-content: space-between; gap: 0 !important; height: calc(var(--en-row-h) - 1px); padding-block: 0 3px !important; }
.fi-ta table td .fi-ta-text.en-adv-sum,
.fi-ta table td .fi-ta-text.en-adv-sum .fi-ta-text-item,
.fi-ta table td .fi-ta-text.en-adv-sum .fi-ta-text-item * { font-size: var(--en-fs-xs) !important; }
.fi-ta table td .fi-ta-text.en-adv-sum .fi-ta-text-item { align-self: flex-start; max-width: 100%; overflow-x: clip !important; overflow-y: visible !important; text-overflow: ellipsis; white-space: nowrap; }
/* صندوق النص الكامل عند الوقوف على خلية مقصوصة */
.en-cell-tip {
    position: fixed; z-index: 9999; max-width: 28rem; padding: .45rem .7rem; border-radius: var(--en-tip-radius);
    background: var(--en-tip-bg); color: var(--en-tip-fg); font-size: var(--en-fs-base); line-height: 1.5; white-space: normal;
    box-shadow: var(--en-tip-shadow); pointer-events: none; direction: rtl; text-align: right;
}
/* تلميحُ فيلامنت (x-tooltip — أزرار الصف والأعمدة ذات التلميح) بالرموز نفسها: كان صندوقُ الخلية المقصوصة داكنًا
   وتلميحُ العمود المجاور أبيضَ في الجدول الواحد. الأبيضُ بظلّه هو تلميحُ فيلامنت الفاتح كما كان، والسهمُ بلون الخلفية */
.tippy-box[data-theme~=light] {
    background-color: var(--en-tip-bg); color: var(--en-tip-fg); border-radius: var(--en-tip-radius); box-shadow: var(--en-tip-shadow);
}
.tippy-box[data-theme~=light][data-placement^=top] > .tippy-arrow::before { border-top-color: var(--en-tip-bg); }
.tippy-box[data-theme~=light][data-placement^=bottom] > .tippy-arrow::before { border-bottom-color: var(--en-tip-bg); }

/* ===== تظليل الخانات الناقصة بالأصفر في مرحلة ادخال البيانات (بطلب المستخدم) ===== */
.en-missing-field .fi-input-wrp {
    background-color: var(--en-empty-bg) !important;      /* أصفر فاتح */
    border-color: var(--en-empty-line) !important;
    box-shadow: inset 0 0 0 1px var(--en-empty-line) !important;
}
.en-missing-field .fi-input-wrp input,
.en-missing-field .fi-input-wrp textarea,
.en-missing-field .fi-input-wrp select {
    background-color: transparent !important;
}

/* ===== توحيد ارتفاع خانات الفورم: القوائم المنسدلة (بزر +) على ارتفاع خانة النص (بطلب المستخدم) ===== */
.fi-fo-field .fi-input-wrp:not(:has(textarea)) {
    min-height: 2.4rem;
    max-height: 2.4rem;
    align-items: center;
}
.fi-fo-field .fi-input-wrp .choices__inner {
    min-height: 0 !important;
    padding-top: 0.3rem !important;
    padding-bottom: 0.3rem !important;
}
.fi-fo-field .fi-input-wrp .choices__list--single {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* القيمة المختارة سطرٌ واحد بـ«…» تحت سقف الارتفاع أعلاه: اسمُ قريةٍ طويل («عزبةالوصيف الدواخلي - قرية ميت مرجا»)
   كان يلتفّ ثلاثة أسطر في خانةٍ ارتفاعها سطر فيطفح فوق عنوانها وعلى الخانة التي تحتها (نافذة «تعديل خدمة»،
   ٢٧ سبتمبر). والاسم كاملًا في القائمة عند فتحها. وعلى التلفون (≤640) لا سقف فيلتفّ ويكبر كما هو.
   والنصُّ الإرشادي (placeholder) مثلها (المرحلة ٥): «اختر المركز / المدينة أولًا» في عنوان الموقع الضيّق كان يلتفّ حرفًا حرفًا ويطفح */
@media (min-width: 641px) {
    fieldset:has(.fi-select-input),
    .fi-fo-field:has(.fi-select-input),
    .fi-fo-field .fi-input-wrp:has(.fi-select-input),
    .fi-fo-field .fi-input-wrp-content-ctn:has(.fi-select-input),
    .fi-fo-field .fi-select-input,
    .fi-fo-field .fi-select-input .fi-select-input-ctn,
    .fi-fo-field .fi-select-input .fi-select-input-btn,
    .fi-fo-field .fi-select-input .fi-select-input-value-ctn {
        min-width: 0;
    }
    .fi-fo-field .fi-select-input .fi-select-input-value-ctn {
        overflow: hidden;
    }
    .fi-fo-field .fi-select-input .fi-select-input-value-label,
    .fi-fo-field .fi-select-input .fi-select-input-placeholder {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        word-break: normal;
    }
}

/* ===== تظليل كل خانة فارغة بالأصفر في كل الفورمات (بطلب المستخدم) — يُطبَّق من admin-sidebar.js ===== */
.fi-input-wrp.en-empty-field {
    background-color: var(--en-empty-bg) !important;
    border-color: var(--en-empty-line) !important;
    box-shadow: inset 0 0 0 1px var(--en-empty-line) !important;
}
.fi-input-wrp.en-empty-field input,
.fi-input-wrp.en-empty-field textarea,
.fi-input-wrp.en-empty-field select,
.fi-input-wrp.en-empty-field .choices__inner {
    background-color: transparent !important;
}

/* ===== كشف الأسعار والأرباح لكل خدمة (شاشة العميل/المورّد + شاشة أرباح الخدمات) ===== */
.en-svc-wrap { font-size: var(--en-fs-base); }
table.en-svc-table { width: 100%; border-collapse: collapse; }
table.en-svc-table th, table.en-svc-table td { border: 1px solid var(--gray-200); padding: .35rem .5rem; }
table.en-svc-table thead th { background: var(--primary-600); color: var(--en-white); font-weight: var(--en-fw-bold); white-space: nowrap; }
table.en-svc-table td.c { text-align: center; }
table.en-svc-table .num { text-align: left; font-variant-numeric: tabular-nums; white-space: nowrap; direction: ltr; }
table.en-svc-table tr.grp td { background: var(--gray-100); font-weight: var(--en-fw-bold); color: var(--gray-900); }
table.en-svc-table tr.grp .cnt { color: var(--gray-500); font-weight: var(--en-fw-medium); }
table.en-svc-table tr.sub td { background: var(--gray-50); font-weight: var(--en-fw-bold); }
table.en-svc-table tfoot td { background: var(--success-50); font-weight: var(--en-fw-bold); }
table.en-svc-table .pos { color: var(--success-700); }
table.en-svc-table .neg { color: var(--danger-700); }
table.en-svc-table .muted { color: var(--gray-400); }
table.en-svc-table a.lnk { color: var(--primary-600); text-decoration: underline; }

/* بطلب المستخدم: لا نصوص توضيحية في البرنامج كله — عناوين الشرح تحت العناوين، شروح الأقسام، شروح الجداول الفارغة */
.fi-header-subheading,
.fi-section-header-description,
.fi-ta-empty-state-description { display: none !important; }
/* نص المساعدة تحت خانات الفورم (helperText يُرسم كـ Text أسفل الخانة) */
.fi-fo-field-content-col > .fi-sc-text { display: none !important; }
/* نص المساعدة يُرسم داخل حاوية fi-sc (inline) لا كابن مباشر — تعميم القاعدة لأي عمق */
.fi-fo-field-content-col .fi-sc-text { display: none !important; }

/* ===== بطلب المستخدم: فواصل الصفوف والخانات أوضح — على شاشات ضعيفة التباين كانت الصفحة «سايحة» =====
   حدود أغمق (slate-300/400 بدل gray-100/200) لصفوف الجداول وخلاياها، وخانات الفورم، وعناصر المكررات، والأقسام */
/* الفواصل على الخلايا لا على الصفوف: الجدول صار border-collapse:separate من أجل رأسه
   اللاصق في فَيَرفُكس (أسفل الملف)، وفي هذا النموذج تُهمَل حدود الصف فكانت
   فواصل الصفوف مُعطّلة بلا أثر (وجده فحص النظام: الصفوف متلاصقة) */
.fi-ta-table tbody td { border-bottom: 1px solid var(--en-ta-line) !important; }
.fi-ta-table thead th { border-bottom: 2px solid var(--en-ta-head-line) !important; }
.fi-ta-table tbody td + td,
.fi-ta-table thead th + th { border-inline-start: 1px solid var(--en-ta-col-line) !important; }  /* فواصل رأسية بين الخانات */
/* تفصيلٌ ثانويّ داخل خيار القائمة (رقم المحفظة، الرصيد): أصغر وأخفت من الاسم
   (بطلب المستخدم: «خلي رقم المحفظة جنب المحفظة بخط أصغر من الاسم») — ثلاث
   محافظ «وي باي» كانت تظهر بالاسم نفسه فلا يُعرف أيّها */
.en-opt-sub {
    font-size: var(--en-fs-xs);
    font-weight: var(--en-fw-medium);
    color: var(--gray-500);
    margin-inline-start: .4rem;
    direction: ltr;
    unicode-bidi: isolate;
}

/* خانات الإدخال: حد أوضح */
.fi-input-wrp { border: 1px solid var(--gray-400) !important; box-shadow: none; }         /* slate-400 */
.fi-input-wrp:focus-within { border-color: var(--primary-600) !important; box-shadow: 0 0 0 1px var(--primary-600) !important; }
/* عناصر المكررات (الأوراق المطلوبة، المُلّاك…): كل عنصر بإطار وفاصل واضح */
.fi-fo-repeater-item { border: 1px solid var(--gray-300) !important; border-radius: .5rem; }
.fi-fo-repeater-item + .fi-fo-repeater-item { margin-top: .35rem; }
.fi-fo-repeater-item-header { border-bottom: 1px solid var(--gray-200) !important; }
/* الأقسام والبطاقات والجداول: إطار خارجي أوضح */
.fi-section, .fi-ta-ctn, .fi-fieldset { border: 1px solid var(--gray-300) !important; }
.fi-section-header { border-bottom: 1px solid var(--gray-200) !important; }
/* الأعمدة والخلايا المثبّتة تحافظ على فاصلها المميز */
.en-sticky-col, .en-frozen-2, .fi-ta-cell:has(.fi-ta-actions) { border-color: var(--en-ta-sticky-line) !important; }

/* ===== شريحة الحفظ التلقائي (بطلب المستخدم) =====
   لا تغطي زرًّا (بلاغ ٢٨ سبتمبر: كانت أربع ثوانٍ فوق «حفظ/حفظ مؤقت/الطباعة» في شريط فورم الوثيقة، وعلى
   التليفون سطرين فوق الشريط كله): admin-sidebar.js يرفعها فوق أي شريط أزرار سفلي تتقاطع معه، ولا تلتقط
   الضغط (pointer-events) فما تحتها من خانات يُضغط كأنها غير موجودة. وتنكسر أسطرًا داخل الشاشة بلا قصّ
   (max-width)، وزاويتها 1.1rem: سطرٌ واحد (٣٥ بكسل) يبقى كبسولةً كما كان، وأكثر من سطر مستطيلٌ مستدير
   لا كبسولةٌ يخرج النصُّ من حوافّها. */
.en-autosave-chip {
    position: fixed; bottom: 1.1rem; left: 1.1rem; z-index: 60;
    max-width: calc(100vw - 2.2rem); pointer-events: none;
    padding: .4rem .9rem; border-radius: 1.1rem; font-size: var(--en-fs-base); font-weight: var(--en-fw-bold);
    box-shadow: 0 6px 18px color-mix(in srgb, var(--gray-900) 25%, transparent); direction: rtl;
}
.en-autosave-chip.is-saved { background: var(--success-100); color: var(--success-800); border: 1px solid var(--success-300); }
.en-autosave-chip.is-invalid { background: var(--warning-100); color: var(--warning-800); border: 1px solid var(--warning-300); }

/* ===== زر التعديل في الصف: تكرار مع الضغط على الصف (بطلب المستخدم) ===== */
/* في الجداول التي تُعدَّل في نافذة منزلقة، فيلامنت يجعل خلايا الصف نفسها تفتح
   نفس الإجراء (mountTableAction('edit')) فزر القلم تكرار محض. لا يُحذف من الكود:
   رابط الصف وإجراؤه يُستنتجان من وجود الإجراء (ListRecords::recordAction) فحذفه
   يقتل الضغط على الصف — لذلك يُخفى الزر وحده. الوسم للتوثيق: en-redundant-row-edit */
.fi-ta-actions button[wire\:click^="mountAction('edit'"] { display: none !important; }

/* ===== ارتفاع موحّد لصفوف كل الجداول — نظام جدول وثائق التأمين (بطلب المستخدم) =====
   المرجع المقيس: صف وثائق التأمين ٦٧ بكسل، محتوى الخلية فيه 2rem داخل .fi-ta-col.
   الصفوف التي تحمل خانات إدخال كانت ٨٠ بكسل لأن غلاف الخانة أطول (٦٩ بدل ٥٦)،
   فتُقيَّد الخانة هنا بنفس ارتفاع المحتوى ليتساوى الصف مع المرجع في كل الشاشات. */
/* ارتفاع محتوى الخلية: 1.85rem كي تتسع حدود خانة الإدخال داخل صف 42 بكسل بالضبط */

/* غلاف خانة الإدخال داخل خلية الجدول: بارتفاع المحتوى لا بارتفاع خانة الفورم */
.fi-ta table tbody td .fi-ta-text-input .fi-input-wrp,
.fi-ta table tbody td .fi-ta-select .fi-input-wrp {
    min-height: var(--en-cell-content);
    height: var(--en-cell-content);
    align-items: center;
}

/* الخانة نفسها: نفس الارتفاع بلا حشو رأسي — النص يتوسّط بـline-height */
.fi-ta table tbody td input:not([type="checkbox"]):not([type="radio"]),
.fi-ta table tbody td select {
    height: var(--en-cell-content) !important;
    min-height: 0 !important;
    padding-block: 0 !important;
    line-height: var(--en-cell-content) !important;
}

/* الأزرار والأيقونات داخل الصف لا تتجاوز ارتفاع المحتوى فتمدّ الصف */
.fi-ta table tbody td .fi-ta-actions .fi-icon-btn {
    min-height: 0;
}

/* ===== ارتفاع الصف على قد سطر الاسم (بطلب المستخدم) =====
   كان ٦٧ بكسل: مصدره حشو رأسي ١٦ بكسل أعلى وأسفل نص الخلية فيصير محتواها ٥٦.
   بإلغاء الحشو يعود المحتوى إلى ٢٤ بكسل = سطر الاسم، والصف يُثبَّت على ٤٢ بكسل
   وهو أطول محتوى ممكن (خانة إدخال ٢rem + حشو الخلية) فتتساوى كل صفوف النظام. */

/* نص الخلية بلا حشو رأسي — الحشو كان يضاعف ارتفاع الصف */
/* الغلاف والمحتوى معًا: الحشو الرأسي ١٦ بكسل على الغلاف كان يطوّل الصف */
.fi-ta table tbody td .fi-ta-text,
.fi-ta table tbody td .fi-ta-text-input,
.fi-ta table tbody td .fi-ta-select,
.fi-ta table tbody td .fi-ta-text-item,
.fi-ta table tbody td .fi-ta-text-description,
.fi-ta table tbody td .fi-ta-icon,
.fi-ta table tbody td .fi-ta-image {
    padding-block: 0 !important;
}
.fi-ta table tbody td > .fi-ta-col,
.fi-ta table tbody td > a.fi-ta-col,
.fi-ta table tbody td > button.fi-ta-col {
    min-height: 0 !important;
}

/* الشارات (المرحلة/الموقف) على ارتفاع سطر الاسم نفسه */
.fi-ta table tbody td .fi-badge {
    padding-block: var(--en-ta-badge-pad-block) !important;
}

/* ===== شاشة خزينة الفرع (بطلب المستخدم: احترافية لأقصى درجة) =====
   القالب كان بأصناف تيلويند غير موجودة في تنسيق اللوحة المبني، فكان يُرسم عاريًا.
   كل ما يلي أصناف حقيقية في هذا الملف الذي يُحقن مع كل صفحة. */

.en-tr-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: .5rem;
    margin-bottom: .9rem;
}
.en-tr-strip-cell {
    display: flex; flex-direction: column; gap: .15rem;
    padding: .6rem .85rem;
    background: var(--en-white);
    border: 1px solid var(--gray-300);
    border-radius: .6rem;
    border-inline-start: 4px solid var(--gray-400);
}
.en-tr-strip-cell.is-balance { border-inline-start-color: var(--primary-600); }
.en-tr-strip-cell.is-in      { border-inline-start-color: var(--success-600); }
.en-tr-strip-cell.is-out     { border-inline-start-color: var(--danger-600); }
.en-tr-strip-cell.is-closed  { border-inline-start-color: var(--info-600); }
.en-tr-strip-cell .en-tr-v { font-size: var(--en-fs-xl); font-weight: var(--en-fw-bold); letter-spacing: var(--en-ls-tight); }
.en-tr-strip-cell.is-balance .en-tr-v { color: var(--primary-700); }
.en-tr-strip-cell.is-in .en-tr-v { color: var(--success-700); }
.en-tr-strip-cell.is-out .en-tr-v { color: var(--danger-700); }
.en-tr-strip-cell.is-closed .en-tr-v { color: var(--info-700); }

.en-tr-k { font-size: var(--en-fs-xs); color: var(--gray-500); font-weight: var(--en-fw-semibold); }
.en-tr-n { font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); color: var(--gray-900); }
.en-tr-n i { font-style: normal; color: var(--gray-500); font-weight: var(--en-fw-medium); font-size: var(--en-fs-xs); }

/* بطاقات الخزائن صغيرة وفي صفّين على الأكثر (بطلب المستخدم): أحد عشر فرعًا
   كانت تأخذ ثلث الشاشة قبل أن تظهر الحركات. السقف بارتفاع صفّين مع تمرير
   رأسي — فلا يختفي فرع مهما ضاقت الشاشة. */
.en-tr-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
    gap: .4rem;
    margin-bottom: .7rem;
    max-height: 16rem;   /* كان 15.2rem — البطاقة أطول ١٢ بكسل مع حدّ 12px (المرحلة ٢) */
    overflow-y: auto;
    padding-inline-end: .15rem;
}
.en-tr-card {
    display: flex; flex-direction: column; gap: .3rem;
    padding: .45rem .55rem;
    background: var(--en-white);
    border: 1px solid var(--gray-300);
    border-radius: .55rem;
    box-shadow: 0 1px 2px color-mix(in srgb, var(--gray-900) 4%, transparent);
}
/* الخزينة التي بها نقدية لم تُقفَّل بعد: حافة تنبيه هادئة */
.en-tr-card.has-cash { border-color: var(--warning-300); background: linear-gradient(180deg, var(--warning-50) 0, var(--en-white) 2.6rem); }
.en-tr-card.is-main  { border-color: var(--primary-200); background: linear-gradient(180deg, var(--primary-50) 0, var(--en-white) 2.6rem); }

.en-tr-head { display: flex; align-items: center; gap: .3rem; }
.en-tr-name { font-weight: var(--en-fw-bold); font-size: var(--en-fs-sm); color: var(--gray-900); line-height: 1.25; }
.en-tr-chip {
    font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); color: var(--primary-700);
    background: var(--primary-100); border: 1px solid var(--primary-300);
    padding: .02rem .3rem; border-radius: 999px;
}

.en-tr-balance { display: flex; align-items: baseline; gap: .2rem; }
.en-tr-balance b { font-size: var(--en-fs-lg); font-weight: var(--en-fw-bold); letter-spacing: var(--en-ls-tighter); color: var(--gray-700); }
.en-tr-balance span { font-size: var(--en-fs-xs); color: var(--gray-400); font-weight: var(--en-fw-semibold); }
.en-tr-card.has-cash .en-tr-balance b { color: var(--warning-700); }
.en-tr-card.is-main .en-tr-balance b { color: var(--primary-700); }

.en-tr-stats { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem; }
.en-tr-stat {
    display: flex; flex-direction: column; gap: 0;
    padding: .2rem .35rem; border-radius: .35rem;
}
.en-tr-stat.is-in  { background: var(--success-50); }
.en-tr-stat.is-in .en-tr-n  { color: var(--success-700); }
.en-tr-stat.is-out { background: var(--danger-50); }
.en-tr-stat.is-out .en-tr-n { color: var(--danger-700); }

.en-tr-foot {
    display: flex; align-items: baseline; justify-content: space-between; gap: .35rem;
    padding-top: .3rem; border-top: 1px dashed var(--gray-200);
}

/* حدّ 12px (المرحلة ٢ — قرار المالك ١٠ أكتوبر) على بطاقات الخزائن: عناوينُها الصغيرة كانت 9.9–10.6px فصارت 12، فالتفّت
   «مصروف اليوم» و«آخر تقفيل» و«العهدة الثابتة» سطرين، وانكسر تاريخُ التقفيل عند شَرطته، وخرج فرقُ العهدة من إطاره (مقيس على
   ١٢٨٠ بالقائمة و٣٩٠). الحشوُ الأفقي أضيق والعنوانُ سطرٌ واحد، وما لا يتّسع في سطر العهدة أو التذييل ينزل سطرًا كاملًا
   لا حرفًا حرفًا، والتاريخُ كتلةٌ واحدة. عددُ البطاقات في الصف كما هو. */
.en-tr-card { padding-inline: .45rem; }
.en-tr-stat { padding-inline: .3rem; }
.en-tr-stat .en-tr-k,
.en-tr-custody > *,
.en-tr-foot > * { white-space: nowrap; }
.en-tr-custody,
.en-tr-foot { flex-wrap: wrap; row-gap: .1rem; }
.en-tr-n i { direction: ltr; unicode-bidi: isolate; white-space: nowrap; }

/* التلفون: بطاقة في كل سطر وأرقام أكبر قليلًا لسهولة القراءة */
@media (max-width: 640px) {
    .en-tr-grid { grid-template-columns: 1fr 1fr; max-height: 18rem; }
    .en-tr-strip { grid-template-columns: 1fr 1fr; }
    .en-tr-balance b { font-size: var(--en-fs-xl); }
}

/* ===== خانات الفورم على التلفون: لا سقف ارتفاع (en-narrow-field-fix) =====
   السقف 2.4rem أعلاه وُضع لتوحيد ارتفاع خانات الفورم على الكمبيوتر، وهو سليم هناك
   لأن محتوى الخانة يقع في سطر واحد. على عرض التلفون يلتف نص القائمة المنسدلة أو
   قيمتها المختارة إلى سطرين فيُقصّان تحت السقف، فتبدو القائمة «بايظة» عند فتحها.
   الحد الأدنى يبقى فيتوحّد الشكل، والسقف يُرفع للشاشات الضيقة وحدها. */
@media (max-width: 640px) {
    .fi-fo-field .fi-input-wrp:not(:has(textarea)) {
        max-height: none;
        height: auto;
    }
    /* لوحة الاختيار المنسدلة تعلو كل شيء ولا يقصّها أي غلاف */
    .fi-dropdown-panel, .choices__list--dropdown {
        z-index: 60;
        max-width: calc(100vw - 1.5rem);
    }
}

/* ===== التلفون: زر الحذف بعيد عن العرض والرفع (en-phone-delete-gap) =====
   أزرار صف الورقة الثلاثة متلاصقة، وعلى شاشة اللمس يسهل أن تقع الإصبع على الحذف
   بدل العرض أو الرفع. المسافة والفاصل هنا للشاشات الضيقة وحدها — الكمبيوتر كما هو. */
@media (max-width: 640px) {
    .fi-fo-repeater-item-header-end-actions {
        gap: 1rem;
        align-items: center;
    }
    /* الحذف وحده أحمر (fi-color-danger): يُفصَل بمسافة وحدّ خفيف قبله */
    .fi-fo-repeater-item-header-end-actions > li:has(.fi-color-danger) {
        margin-inline-start: 1.5rem;
        padding-inline-start: 1rem;
        border-inline-start: 1px solid var(--gray-200);
    }
    /* أهداف لمس أكبر لأزرار الصف على التلفون */
    .fi-fo-repeater-item-header-end-actions .fi-icon-btn {
        min-width: 2.25rem;
        min-height: 2.25rem;
    }
}

/* العهدة الثابتة داخل بطاقة الخزينة: مطابق/زائد/ناقص */
.en-tr-custody {
    display: flex; align-items: baseline; gap: .45rem;
    padding: .35rem .55rem; border-radius: .45rem;
    background: var(--gray-100); border: 1px dashed var(--gray-300);
}
.en-tr-custody .en-tr-gap { margin-inline-start: auto; font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); }
.en-tr-custody.is-exact .en-tr-gap { color: var(--success-700); }
.en-tr-custody.is-over  .en-tr-gap { color: var(--warning-700); }
.en-tr-custody.is-under .en-tr-gap { color: var(--danger-700); }

/* ===== شاشة «الدفع من المحافظ» ===== */
.en-wp-ask {
    display: flex; align-items: center; gap: .6rem; flex-wrap: wrap;
    padding: .55rem .8rem; margin-bottom: .7rem;
    background: var(--en-white); border: 1px solid var(--gray-300); border-radius: .6rem;
    border-inline-start: 4px solid var(--primary-600);
}
.en-wp-input {
    width: 11rem; padding: .35rem .55rem; font-size: var(--en-fs-lg); font-weight: var(--en-fw-bold);
    color: var(--gray-900); background: var(--gray-50); border: 1px solid var(--gray-300); border-radius: .45rem;
}
.en-wp-best {
    font-size: var(--en-fs-base); font-weight: var(--en-fw-bold); color: var(--success-700);
    background: var(--success-50); border: 1px solid var(--success-300); border-radius: 999px; padding: .12rem .6rem;
}
.en-wp-none {
    font-size: var(--en-fs-base); font-weight: var(--en-fw-bold); color: var(--danger-700);
    background: var(--danger-50); border: 1px solid var(--danger-300); border-radius: 999px; padding: .12rem .6rem;
}
.en-wp-card.is-best    { border-color: var(--success-400); background: linear-gradient(180deg, var(--success-50) 0, var(--en-white) 2.6rem); }
.en-wp-card.is-fit     { border-color: var(--success-200); }
.en-wp-card.is-blocked { opacity: .62; }
.en-wp-tag { font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); border-radius: 999px; padding: .05rem .45rem; margin-inline-start: auto; }
.en-wp-tag.is-best    { color: var(--success-800); background: var(--success-100); border: 1px solid var(--success-300); }
.en-wp-tag.is-blocked { color: var(--danger-800); background: var(--danger-100); border: 1px solid var(--danger-300); }
.en-wp-phone { font-size: var(--en-fs-xs); color: var(--gray-500); font-weight: var(--en-fw-semibold); margin-inline-start: auto; white-space: nowrap; }
/* حدّ 12px على بطاقات المحافظ (جولة إصلاح المرحلة ٢): الرقمُ «+201022949989» بجوار رصيدٍ من خمسة أرقام كان يخرج من
   إطار البطاقة ١٣ بكسل وتقصّه الشبكة (تمريرُها الرأسي يقصّ الأفقي أيضًا)، و«حساب بنكي» يلتفّ كلمتين داخل شريحته، وعلى ٣٩٠
   تتّسع البطاقتان أعرضَ من الشاشة. ما لا يتّسع ينزل سطرًا كاملًا: الهاتفُ تحت الرصيد والشريحةُ تحت الاسم، كلٌّ كتلةٌ واحدة. */
.en-wp-card .en-tr-balance { flex-wrap: wrap; row-gap: 0; }
.en-wp-card .en-tr-head { flex-wrap: wrap; row-gap: .15rem; }
.en-wp-card .en-tr-chip { white-space: nowrap; }
.en-wp-bars { display: grid; gap: .35rem; }
.en-wp-bar-top { display: flex; align-items: baseline; justify-content: space-between; gap: .4rem; }
.en-wp-track { height: .35rem; background: var(--gray-200); border-radius: 999px; overflow: hidden; }
.en-wp-track i { display: block; height: 100%; background: var(--primary-600); }
.en-wp-card.is-blocked .en-wp-track i { background: var(--danger-600); }

.en-wp-bars.is-ip { padding-top: .3rem; border-top: 1px dashed var(--gray-200); }
.en-wp-chan { font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); color: var(--info-700); }
.en-wp-bars.is-ip .en-wp-track i { background: var(--info-600); }

/* ===== التلفون: لا أعمدة مثبّتة في الجداول العريضة =====
   العمودان المثبّتان ١٥rem لكلٍّ (٤٨٠ بكسل معًا) أوسعُ من شاشة التلفون نفسها،
   فيغطّيان المنطقة المتحركة كلها: يُسحب الجدول أفقيًا فلا يتحرك تحت الإصبع شيء
   ويبدو الاسكرول «عالقًا» (بطلب المستخدم: «الاسكرول الافقي بيعلق من الهاتف»).
   على الشاشات الضيقة يتحرر الجدول: بلا تثبيت، وبلا ارتفاع محدود يجعل التمرير
   محبوسًا في صندوق داخل صفحة تُمرَّر هي الأخرى. */
@media (max-width: 900px) {
    /* relative لا static: خلية الرأس مرجعُ مقبض تغيير العرض المطلق، وstatic
       تفكّ ارتباطه بها فيمتدّ خطًّا أخضر على طول الجدول فوق الأسماء */
    .en-frozen-1,
    .en-frozen-2,
    .en-sticky-col,
    .fi-ta-table thead .fi-ta-header-cell {
        position: relative !important;
        z-index: auto !important;
        inset-inline-start: auto !important;
        inset-inline-end: auto !important;
        top: auto !important;
    }

    /* عمود الأزرار وحده يبقى مثبّتًا على الحافة اليسرى بعرض الأزرار فقط
       (بطلب المستخدم) — عمودُ أسماءٍ عريض يبتلع الشاشة، أما الأزرار فلا */
    .fi-ta-cell:has(.fi-ta-actions),
    .fi-ta-table thead .fi-ta-actions-header-cell {
        position: sticky !important;
        inset-inline-end: 0 !important;
        inset-inline-start: auto !important;
        top: auto !important;
        z-index: 6 !important;
        width: 1% !important;
        white-space: nowrap;
        padding-inline: .25rem !important;
    }

    .fi-ta-cell:has(.fi-ta-actions) .fi-ta-actions {
        flex-wrap: nowrap;
        gap: .15rem;
    }

    /* سحب عرض الأعمدة لا معنى له باللمس، والمقبض يعلو النص */
    .en-col-resizer {
        display: none !important;
    }

    .en-frozen-1,
    .en-frozen-2 {
        width: auto !important;
        min-width: 9rem !important;
        max-width: none !important;
    }

    .fi-ta-content-ctn {
        max-height: none !important;
        overflow-y: visible !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        touch-action: pan-x pan-y;
    }
}

/* العمود المثبّت الثاني حين يُخفى الأول: إزاحته ١٥rem تترك فراغًا وتغطّي ما تحته،
   فإن صار أول خلية في الصف رجع إلى الحافة (بعد أن صارت كل الأعمدة قابلة للإخفاء) */
.fi-ta-cell.en-frozen-2:first-child,
.fi-ta-header-cell.en-frozen-2:first-child { inset-inline-start: 0 !important; }

/* ===== شاشة الرسومات الهندسية (en-frozen-fit): «العميل» و«المالك» المثبّتان ١٢rem لا ١٥ =====
   عمودُ أزرارها عريض (حتى ٣١٣ بكسل عند الإدارة) فكان ١٥rem×٢ + الأزرار يتركان للتمرير ١٠١ بكسل على ١٢٨٠
   بالقائمة، ويغطّي عمودُ الأزرار «المالك» على ١٠٢٤–١١٠٠ بالقائمة (٤٧–١٥٥ بكسل، مقيس). والاسمُ الأطول يُقصّ بـ«…»
   وكاملًا في التلميح. وشاشةُ الوثائق كما هي (الصنف في هذه الشاشة وحدها) */
.fi-ta-table .en-frozen-fit.en-frozen-1,
.fi-ta-table .en-frozen-fit.en-frozen-2 { width: 12rem; min-width: 12rem; max-width: 12rem; }
.fi-ta-table .en-frozen-fit.en-frozen-2 { inset-inline-start: 12rem; }
/* وحين لا يتسع الجدول لهما وللأزرار ومعها ~١٨٠ بكسل تُمرَّر يُفكّان (يتحرّكان مع الجدول) — عرضُ الجدول
   الشاشةُ − ٦٦ بلا القائمة و− ٣٨٦ بها (مقيس)، فالحدّ ٩٤٠ بلا القائمة و١٢٦٠ بها. والرأسُ باقٍ ثابتًا رأسيًّا،
   وتحت ٩٠٠ قاعدةُ التليفون كما هي */
@media (min-width: 901px) and (max-width: 940px) {
    .fi-ta-table .fi-ta-cell.en-frozen-fit,
    .fi-ta-table .fi-ta-header-cell.en-frozen-fit { inset-inline-start: auto !important; }
}
@media (min-width: 1024px) and (max-width: 1260px) {
    body:has(.fi-sidebar.fi-sidebar-open) .fi-ta-table .fi-ta-cell.en-frozen-fit,
    body:has(.fi-sidebar.fi-sidebar-open) .fi-ta-table .fi-ta-header-cell.en-frozen-fit { inset-inline-start: auto !important; }
}
/* عدّادُ «الملفات» يعلو ركنَ زرّه جهةَ جاره: مسافةٌ بقدره فلا يركب «رفع ملفات» بجواره (٨×١٤ بكسل على الكمبيوتر
   و١٦×١٤ على التليفون، مقيس — وصار على كل الصفوف تقريبًا بعد عدّ ملفات الوثيقة) */
.fi-resource-drawing-requests .fi-ta-actions .fi-icon-btn:has(> .fi-icon-btn-badge-ctn) { margin-inline-end: .75rem; }
/* وعددُ النواقص الأحمر على «استلام الإدخال» («بانتظار الإدخال» في شاشة الإدخال) كان يقع فوق دائرة «نقل المرحلة» بجواره فيُقرأ
   عددًا لها — المسافةُ نفسُها تُبقيه على ركن زرّه */
.fi-ta-actions .fi-icon-btn[wire\:click^="mountAction('claimEntry'"]:has(> .fi-icon-btn-badge-ctn) { margin-inline-end: .75rem; }
/* قائمةُ «…» في صفّ جدول: خليةُ الأزرار المثبّتة طبقةٌ ٦ في كل صف، فكانت لوحتُها تنزل تحت خلايا الصفوف التالية فلا تُرى (مقيس)
   — الخليةُ التي قائمتُها مفتوحةٌ فوق جاراتها، وتحت رأس الجدول (٩) */
.fi-ta-cell:has(.fi-dropdown-panel:not([style*="display: none"])) { z-index: 8 !important; }

/* ===== شاشة الواتساب: صندوق مشترك يفتحه أكثر من موظف ===== */
.en-wa-offline {
    display: flex; align-items: center; gap: .7rem; flex-wrap: wrap;
    padding: .6rem .9rem; margin-bottom: .7rem;
    background: var(--danger-50); border: 1px solid var(--danger-300); border-radius: .6rem; color: var(--danger-800);
}
.en-wa-offline b { font-weight: var(--en-fw-bold); }
.en-wa-offline span { font-size: var(--en-fs-sm); }
.en-wa-offline a { margin-inline-start: auto; font-weight: var(--en-fw-bold); color: var(--primary-700); text-decoration: underline; }

.en-wa {
    display: grid; grid-template-columns: 21rem 1fr; gap: .6rem;
    height: calc(100vh - 12rem); min-height: 30rem;
}
.en-wa-list {
    display: flex; flex-direction: column; overflow: hidden;
    background: var(--en-white); border: 1px solid var(--gray-300); border-radius: var(--en-radius);
}
.en-wa-search { padding: .5rem; border-bottom: 1px solid var(--gray-200); }
.en-wa-search input {
    width: 100%; padding: .4rem .6rem; font-size: var(--en-fs-base);
    background: var(--gray-50); border: 1px solid var(--gray-300); border-radius: .45rem;
}
.en-wa-tabs { display: flex; gap: .25rem; padding: .4rem .5rem; border-bottom: 1px solid var(--gray-200); flex-wrap: wrap; }
.en-wa-tab {
    display: inline-flex; align-items: center; gap: .25rem;
    padding: .18rem .5rem; font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); color: var(--gray-600);
    background: var(--gray-100); border: 1px solid var(--gray-200); border-radius: 999px;
}
.en-wa-tab.is-on { background: var(--primary-600); border-color: var(--primary-600); color: var(--en-white); }
.en-wa-tab i { font-style: normal; font-size: var(--en-fs-xs); opacity: .85; }

.en-wa-chats { flex: 1; min-height: 0; overflow-y: auto; }
.en-wa-chat {
    display: block; width: 100%; text-align: start;
    padding: .5rem .6rem; border-bottom: 1px solid var(--gray-100); cursor: pointer;
    /* المكان محجوز دائمًا: وسمُ «جديدة» كان يزيح نصّ صفّه وحده ٣ بكسل */
    border-inline-start: 3px solid transparent;
}
.en-wa-chat:hover { background: var(--gray-50); }
.en-wa-chat.is-active { background: var(--success-50); }
.en-wa-chat.is-new { border-inline-start-color: var(--warning-500); }
.en-wa-chat-top { display: flex; justify-content: space-between; gap: .4rem; }
.en-wa-name { font-weight: var(--en-fw-bold); font-size: var(--en-fs-base); color: var(--gray-900); }
.en-wa-time { font-size: var(--en-fs-xs); color: var(--gray-400); }
.en-wa-chat-mid { display: flex; justify-content: space-between; gap: .4rem; align-items: center; min-width: 0; }
.en-wa-last {
    flex: 1; font-size: var(--en-fs-xs); color: var(--gray-500); overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap;
}
.en-wa-unread {
    font-style: normal; font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); color: var(--en-white);
    background: var(--success-600); border-radius: 999px; padding: .1rem .4rem; line-height: 1.5;
}
.en-wa-chat-foot { display: flex; gap: .3rem; flex-wrap: wrap; margin-top: .2rem; }
.en-wa-chip {
    font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); border-radius: 999px;
    padding: .12rem .45rem; line-height: 1.6;
}
.en-wa-chip.is-NEW  { color: var(--warning-800); background: var(--warning-100); border: 1px solid var(--warning-300); }
.en-wa-chip.is-OPEN { color: var(--info-800); background: var(--info-100); border: 1px solid var(--info-300); }
.en-wa-chip.is-DONE { color: var(--success-800); background: var(--success-100); border: 1px solid var(--success-300); }
.en-wa-who { font-size: var(--en-fs-xs); color: var(--gray-500); }
.en-wa-who.is-take { color: var(--en-violet-600); font-weight: var(--en-fw-bold); }
.en-wa-who.is-live { color: var(--warning-700); font-weight: var(--en-fw-bold); }

.en-wa-thread {
    display: flex; flex-direction: column; overflow: hidden;
    background: var(--en-white); border: 1px solid var(--gray-300); border-radius: var(--en-radius);
}
.en-wa-blank, .en-wa-empty {
    display: flex; align-items: center; justify-content: center;
    height: 100%; padding: 2rem; color: var(--gray-400); font-size: var(--en-fs-base);
}
.en-wa-pane { display: flex; flex-direction: column; height: 100%; }
.en-wa-head {
    display: flex; align-items: center; justify-content: space-between; gap: .6rem;
    padding: .55rem .8rem; border-bottom: 1px solid var(--gray-200); background: var(--gray-50);
}
.en-wa-head b { font-size: var(--en-fs-md); color: var(--gray-900); }
.en-wa-num { font-size: var(--en-fs-xs); color: var(--gray-400); margin-inline-start: .4rem; }
.en-wa-head-actions { display: flex; align-items: center; gap: .5rem; }
.en-wa-btn {
    font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); color: var(--primary-700);
    background: var(--primary-100); border: 1px solid var(--primary-300); border-radius: .4rem; padding: .18rem .55rem;
}

.en-wa-msgs { flex: 1; min-height: 0; overflow-y: auto; padding: .7rem; background: var(--gray-50); }
.en-wa-msg { display: flex; margin-bottom: .35rem; }
.en-wa-msg.is-out { justify-content: flex-start; }
.en-wa-msg.is-in { justify-content: flex-end; }
.en-wa-bubble {
    max-width: 70%; padding: .35rem .6rem; border-radius: .6rem;
    background: var(--en-white); border: 1px solid var(--gray-200); font-size: var(--en-fs-sm); color: var(--gray-900);
    display: flex; flex-direction: column; gap: .15rem;
}
.en-wa-msg.is-out .en-wa-bubble { background: var(--success-100); border-color: var(--success-200); }
.en-wa-author { font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); color: var(--primary-600); }
.en-wa-text { white-space: pre-wrap; word-break: break-word; }
.en-wa-file { font-weight: var(--en-fw-bold); color: var(--info-700); text-decoration: underline; }
/* الصورة داخل الفقاعة: تُعرض ولا يُنزَّل الملف لرؤيتها */
.en-wa-img { display: block; max-width: 260px; max-height: 260px; width: auto; height: auto;
    border-radius: 10px; margin: 4px 0; object-fit: cover; background: var(--gray-200); }
/* فاصل نتائج دفتر الأسماء عن المحادثات */
.en-wa-sep { padding: 6px 10px; font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); color: var(--gray-500);
    background: var(--gray-100); border-block: 1px solid var(--gray-200); }
.en-wa-chat.is-contact { opacity: .92; }
.en-wa-meta { display: flex; gap: .3rem; align-self: flex-end; }
.en-wa-meta i { font-style: normal; font-size: var(--en-fs-xs); color: var(--gray-400); }

.en-wa-compose {
    display: flex; align-items: flex-end; gap: .4rem;
    padding: .5rem; border-top: 1px solid var(--gray-200); background: var(--en-white);
}
.en-wa-compose textarea {
    flex: 1; resize: none; max-height: 7rem; padding: .45rem .6rem; font-size: var(--en-fs-base);
    background: var(--gray-50); border: 1px solid var(--gray-300); border-radius: .5rem;
}
.en-wa-attach {
    display: inline-flex; align-items: center; cursor: pointer;
    padding: .35rem; border-radius: .4rem; color: var(--gray-500);
}
.en-wa-attach:hover { background: var(--gray-100); color: var(--primary-700); }
.en-wa-send {
    font-weight: var(--en-fw-bold); font-size: var(--en-fs-sm); color: var(--en-white); background: var(--primary-600);
    border-radius: .5rem; padding: .45rem .9rem;
}
.en-wa-send:disabled { background: var(--gray-400); }

/* استجابةُ الأزرار والحقول كبقية اللوحة: كانت ساكنةً بلا تمرير ولا تركيز */
.en-wa-tab, .en-wa-btn, .en-wa-send { transition: background-color .15s ease, border-color .15s ease; }
.en-wa-tab:hover:not(.is-on) { background: var(--gray-200); }
.en-wa-btn:hover { background: var(--primary-200); }
.en-wa-send:hover:not(:disabled) { background: var(--primary-700); }
.en-wa-tab:focus-visible, .en-wa-btn:focus-visible, .en-wa-send:focus-visible,
.en-wa-attach:focus-visible, .en-wa-chat:focus-visible {
    outline: 2px solid var(--primary-600); outline-offset: 1px;
}
.en-wa-search input:focus, .en-wa-compose textarea:focus {
    outline: none; border-color: var(--primary-600); box-shadow: 0 0 0 1px var(--primary-600);
}

@media (max-width: 900px) {
    .en-wa { grid-template-columns: 1fr; height: auto; }
    .en-wa-list { max-height: 22rem; }
    .en-wa-thread { min-height: 28rem; }
    .en-wa-bubble { max-width: 88%; }
}

/* ===== كتل ورقة أوامر الدفع: عنوان الكتلة هو الفاصل بين المجموعات =====
   عنوان المجموعة في فيلامنت ٥ عنصر div بصنف fi-ta-group-header داخل صف
   fi-ta-group-header-row، وعنوانه fi-ta-group-heading — لا tr ولا
   fi-ta-group-header-heading (قواعد سابقة لم تطابق شيئًا فلم يظهر الفاصل). */
/* فاصلٌ ثقيل بين الكتل (بطلب المستخدم: «افصل كل فرع لوحده بفاصل ثقيل»):
   خطٌّ داكنٌ ثخين فوق عنوان الكتلة، وظلٌّ خفيف تحته يفصل بصريًّا. */
.fi-ta-group-header {
    border-top: 6px solid var(--gray-500) !important;
    background: var(--gray-200) !important;
    box-shadow: inset 0 -1px 0 var(--gray-300);
}
.fi-ta-group-heading {
    font-weight: var(--en-fw-bold) !important;
    font-size: var(--en-fs-md) !important;
    color: var(--gray-900) !important;
}
/* عنوان الكتلة يبقى ظاهرًا مع التمرير الأفقي (بطلب المستخدم: «وأنا بعمل
   اسكرول أفقي كلمة كتلة الورقة والاسم والعدد يظل ظاهر») — خلية العنوان تمتد
   على عرض الجدول كله (colspan)، فنصُّها يغيب يسارًا مع أول تمرير. الملصوق هو
   العنصرُ الملصوق هو ابنُ الغلاف لا الغلافُ نفسه ولا العنوانُ داخله: إلصاقُ
   الغلاف يجرّ معه الفاصل الثقيل فيصير شريطًا قصيرًا بدل خطٍّ يعبر الجدول،
   وإلصاقُ العنوان لا يعمل لأن غلافه المباشر عنصرٌ مرنٌ بعرض محتواه (١٥٢px
   مقيسًا) فلا مسافةَ التصاقٍ فيه — أما ابنُ الغلاف فكتلتُه الحاوية هي الغلاف
   بعرض الجدول كله (٣٠٠٠px). وخلفية الغلاف ممتدةٌ على العرض كله فلا حاجة
   لخلفيةٍ خاصة. */
.fi-ta-group-header-cell > .fi-ta-group-header > div:first-child {
    position: sticky;
    inset-inline-start: 1rem;
}

/* أول كتلة في الجدول لا تحتاج فاصلًا فوقها */
.fi-ta-group-header-row:first-child .fi-ta-group-header { border-top: 0 !important; }

/* فرع بلا عهدة مسجَّلة: يُنبَّه بهدوء بدل أن يختفي السطر فلا يُعرف أنه ناقص */
.en-tr-custody.is-unset { background: var(--warning-50); border: 1px dashed var(--warning-300); color: var(--warning-800); }
/* «متبقي X من الحد» — الحدّ أصغر وأخفت كي يُقرأ المتبقي أولًا */
.en-wp-bar-top .en-tr-n i { font-style: normal; font-size: var(--en-fs-xs); color: var(--gray-400); font-weight: var(--en-fw-medium); }

/* الشريط الثابت أسفل فورم الوثيقة: «المرحلة» وزرّا الحفظ والإلغاء في شريطٍ
   واحد (بطلب المستخدم مكرّرًا) — الشريط هو تذييل الفورم نفسه، فلا قسمَ لاصقًا
   فوق شريط. غلاف فيلامنت حول التذييل بارتفاعه نفسه وsticky لا تتحرك إلا داخل
   أبيها، فيُذاب الغلاف بـdisplay:contents ليصير الأب هو الفورم كله. */
.fi-fo-form-footer:has(.en-stage-bar),
.fi-sc-component:has(> .en-stage-bar),
.fi-grid-col:has(> .fi-sc-component > .en-stage-bar),
.fi-sc:has(> .fi-grid-col > .fi-sc-component > .en-stage-bar) { display: contents; }
.en-stage-bar {
    position: sticky;
    bottom: 0;
    z-index: 20;
    display: flex;
    gap: .75rem;
    padding: .55rem .9rem;
    background: var(--en-white);
    border-top: 1px solid color-mix(in srgb, var(--gray-400) 35%, transparent);
    box-shadow: 0 -6px 14px -10px color-mix(in srgb, var(--gray-900) 35%, transparent);
}
/* صفٌّ واحد دائمًا: المرحلة ثم الأزرار — حتى على التليفون (بطلب المستخدم).
   Flex في فيلامنت يوزّع أبناءه بالتساوي (flex:1 1 0) فتضيق خانة الأزرار على
   الشاشة الصغيرة وتنكسر أربعة أسطر فوق بعض. القائمة بعرضها والأزرار تأخذ
   الباقي، وما زاد عن العرض يُمرَّر أفقيًا بدل أن يتكوّم. */
/* التمرير الأفقي على خانة الأزرار وحدها لا على الشريط: overflow-x:auto مع
   overflow-y:visible لا وجود له في CSS — المحور «visible» يُحسب auto متى كان
   الآخر غيره، فكان الشريط (٨٠ بكسل) يقصّ قائمة المرحلة رأسيًا (بلاغ المستخدم:
   «القائمة تتقص»). الأزرار لا قوائم منسدلة فيها فتمريرها آمن. */
.en-stage-bar { overflow: visible; align-items: center; }
.en-stage-bar > *:last-child { overflow-x: auto; }
/* أي قائمة تُفتح من الشريط تفتح لأعلى كاملةً من أول ضغطة (بطلب المستخدم:
   «مش لازم اعمل اسكرول»): الشريط ملاصق لأسفل الشاشة فلا مساحة تحته، وفيلامنت
   يضع top بنمطٍ سطري فلا يُزاح إلا بـ!important. والمراحل أربع فلا تمرير. */
.en-stage-bar .fi-dropdown-panel {
    top: auto !important;
    bottom: calc(100% + .4rem) !important;
    max-height: min(60vh, 24rem) !important;
}
/* الابن الأول (المرحلة) بعرضٍ ثابت، والثاني (الأزرار) يأخذ الباقي ويُسمح له
   بالانكماش (min-width:0) وإلا دفع القائمةَ خارج الشاشة */
.en-stage-bar > *:first-child { flex: 0 0 14rem !important; width: 14rem; min-width: 0; }
.en-stage-bar > *:last-child { flex: 1 1 auto !important; min-width: 0; }
.en-stage-bar .en-stage-bar-select { min-width: 9rem; max-width: 20rem; }
.en-stage-bar .fi-ac,
.en-stage-bar .fi-sc-actions { flex-wrap: nowrap; justify-content: flex-start; align-items: center; gap: .4rem; }
.en-stage-bar .fi-ac button { white-space: nowrap; }
/* بين ٦٤١ و١١٥٠ تقريبًا (تليفون أفقي، آيباد، لابتوب بتكبير ١٢٥٪) تزيد الأزرار عن خانتها فيتوسّطها center ويُقصّ «حفظ» تحت قائمة
   المرحلة — safe يُبقي البداية ظاهرة (والفائض يتمرّر)، وحيث تتسع الأزرار لا يتغيّر شيء؛ ومتصفحٌ بلا safe يُسقط السطر كما اليوم */
.en-stage-bar .fi-sc-actions { align-items: safe center; }
/* على التليفون: صفٌّ واحد وكل الأزرار ظاهرةٌ بلا تمرير ومركزُ كلٍّ منها تحت الإصبع هو الزرّ نفسه
   (مقيسٌ ٢٨ سبتمبر على ٣٩٠ و٤٣٠ بـelementFromPoint). كان «حفظ» تحت قائمة المرحلة فيفتحها الإصبع
   بدل الحفظ: القائمة min-width 9rem في عمودٍ من 7.5rem تفيض ٢٤ بكسل فوق الأزرار ونصُّها ثلاثة أسطر،
   وخانة الأزرار عمودٌ مرن بـalign-items:center فتتوسّط الأزرار حين تزيد عن العرض وتُقصّ من الجهتين —
   «حفظ» من جهة البداية التي لا يصلها التمرير، و«إلغاء» من الأخرى. زادت الأزرار من ٧ سبتمبر إلى ستة.
   الآن: الأزرار بعرضها تبدأ من جهة القائمة، والقائمة تأخذ الباقي (5.5–14rem) بنصٍّ سطرٍ واحد ينتهي
   بنقاط، والشريط بعرض الشاشة (يلغي حشو الصفحة 1rem)، و«إلغاء» نصٌّ بلا أيقونة كـ«حفظ» وأزرار
   الطباعة أيقوناتٌ كما كانت. وما زاد يومًا (زرٌّ جديد، شاشةٌ أضيق) يُمرَّر داخل خانته من بدايتها. */
@media (max-width: 640px) {
    .en-stage-bar { gap: .3rem; padding: .4rem .5rem; margin-inline: -1rem; }
    /* القائمة تنكمش قبل الأزرار (1000 مقابل 1)؛ وwidth:auto لأن fi-growable في فيلامنت w-full فيبدأ كل عمودٍ بعرض الشريط */
    .en-stage-bar > *:first-child { flex: 1 1000 14rem !important; width: auto; min-width: 5.5rem; max-width: 14rem; }
    .en-stage-bar > *:last-child { flex: 0 1 auto !important; width: auto; }
    /* أغلفة الخانة (شبكة) أدنى عرضها طول النص — تُفكّ ليصير النص هو ما يضيق */
    .en-stage-bar > *:first-child .fi-grid-col,
    .en-stage-bar > *:first-child .fi-fo-field-label-col,
    .en-stage-bar > *:first-child .fi-fo-field-content-col,
    .en-stage-bar .fi-select-input-value-ctn { min-width: 0; }
    .en-stage-bar .en-stage-bar-select { min-width: 0; max-width: none; }
    .en-stage-bar .fi-select-input-value-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    /* المرحلة مطلوبة: زرّ المسح × لا يُنتج إلا «المرحلة مطلوبة»، ويحجز 1.5rem من نصٍّ ضيّق */
    .en-stage-bar .fi-select-input-value-remove-btn { display: none; }
    .en-stage-bar .fi-select-input-ctn-clearable .fi-select-input-btn { padding-inline: .5rem 2rem; }
    /* القائمة المفتوحة لا تضيق بضيق خانتها: تبدأ من حافّتها اليمنى وبعرض أطول مرحلة */
    .en-stage-bar .fi-select-input .fi-dropdown-panel { width: max-content !important; min-width: 100%; left: auto !important; right: 0 !important; }
    .en-stage-bar .fi-sc-actions { align-items: flex-start; }
    .en-stage-bar .fi-ac { gap: .3rem; }
    .en-stage-bar .fi-fo-field-wrp-label { font-size: var(--en-fs-xs); }
    .en-stage-bar .fi-ac button .fi-btn-label { font-size: var(--en-fs-xs); }
    /* نصّ الزر عقدةٌ نصّية حرّة لا عنصر له صنف — يُخفى بحجم خطٍّ صفر (--en-fs-none) وتبقى الأيقونة */
    .en-stage-bar .en-bar-compact { font-size: var(--en-fs-none); gap: 0; padding-inline: .55rem; }
    .en-stage-bar .en-bar-compact svg { width: 1.15rem; height: 1.15rem; }
    /* الرابط الوحيد في الشريط بلا en-bar-compact هو «إلغاء» (حفظ/حفظ مؤقت أزرار <button>) */
    .en-stage-bar .fi-ac > a:not(.en-bar-compact) > svg { display: none; }
}
/* أضيق من ٣٨٠ (آيفون SE/ميني ٣٧٥، أندرويد ٣٦٠): فراغاتٌ أقل ليبقى «إلغاء» كاملًا (كان يُقصّ ٧ و٢٢ بكسل) */
@media (max-width: 380px) {
    .en-stage-bar > *:first-child { min-width: 5rem; }
    .en-stage-bar .fi-ac { gap: .2rem; }
    .en-stage-bar .en-bar-compact { padding-inline: .45rem; }
}
/* سقف عرض القائمة المفتوحة في فيلامنت (max-width:100% !important) داخل طبقة components، و!important
   في طبقةٍ يغلب !important خارج الطبقات — فيُرفع من داخل الطبقة نفسها بمحدِّدٍ أخصّ. السمة تُحمَّل بعد
   أصول فيلامنت (panels::head.end) فالطبقة موجودة ولا يتغيّر ترتيب الطبقات. */
@layer components {
    @media (max-width: 640px) {
        .en-stage-bar .fi-select-input .fi-dropdown-panel { max-width: min(16rem, calc(100vw - 1rem)) !important; }
    }
}
/* الزر الرمادي في فيلامنت أبيضُ بإطارٍ باهت فيختفي في الشريط الأبيض (بلاغ المستخدم: «أظهر
   الزراير البيضاء دي») — يُعطى سطحًا وإطارًا ظاهرَين هنا، فيبقى لونُ كل زرٍّ لونَ وظيفته */
.en-stage-bar .fi-btn:not(.fi-color) { background-color: var(--gray-100); --tw-ring-color: var(--gray-300); }
.en-stage-bar .fi-btn:not(.fi-color):not(.fi-disabled):not([disabled]):hover { background-color: var(--gray-200); }
.en-stage-bar .fi-fo-field-wrp-label { font-weight: var(--en-fw-bold); }
/* اللصق يُبطله أي أب يقصّ محتواه — تُفتح الأغلفة الحاملة لهذا الشريط وحدها */
.fi-fo:has(.en-stage-bar),
.fi-sc:has(.en-stage-bar),
.fi-sc-form:has(.en-stage-bar),
.fi-form:has(.en-stage-bar),
.fi-page:has(.en-stage-bar) { overflow: visible; }

/* رأس الجدول اللاصق في فَيَرفُكس: لا يدعم position:sticky على خلايا جدولٍ
   border-collapse:collapse (قيدٌ قديم فيه، وكروم يدعمه) — فيبدو الرأس ثابتًا
   عندي ويتحرك عند المستخدم على نفس الصفحة (بلاغ: «الرأس مش ثابت، جرّب بنفسك»).
   التباعد صفر فالشكل كما هو، والحدود معرّفة على جهةٍ واحدة فلا تتضاعف. */
.fi-ta-table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

/* ===== الجدول يملأ الشاشة: رأسه وذيله ظاهران دائمًا (بطلب المستخدم) =====
   الارتفاع الثابت calc(100dvh - 12rem) تخمينٌ لا يصحّ لكل شاشة: صفحةٌ رأسها
   طويل تدفع ذيل الجدول (الترقيم) وشريط التمرير الأفقي تحت حافة العرض.
   هنا تُقاس المساحة الباقية فعلًا: سلسلة الأغلفة من .fi-page حتى حاوية
   الجدول تصير عمودًا مرنًا، فتأخذ الحاوية ما تبقّى بالضبط ويقف الترقيم
   تحتها داخل الشاشة أيًّا كان طول الرأس أو دقة الشاشة.
   السلسلة مقيسة في المتصفّح:
   fi-page › fi-page-header-main-ctn › fi-page-main › fi-page-content ›
   fi-ta › fi-ta-ctn › fi-ta-main › fi-ta-content-ctn */
/* صفحة الوثيقة تُستثنى: شريط المرحلة اللاصق يحتاج overflow ظاهرًا، وحبس
   الصفحة في صندوق ممرَّر يُبطله متى فُتحت لسانة مدير علاقة (فيها جدول) */
.fi-page:has(.fi-ta-content-ctn):not(:has(.en-stage-bar)) {
    display: flex;
    flex-direction: column;
    max-height: calc(100dvh - 4rem);   /* 4rem = الشريط العلوي */
    min-height: 0;
    /* أمان: صفحةٌ لا ينضغط محتواها (ويدجتات كثيرة فوق الجدول) تُمرَّر هي
       نفسها بدل أن يُقتطع ما لا يتّسع فيصير غير قابل للوصول */
    overflow-y: auto;
}
.fi-page:has(.fi-ta-content-ctn):not(:has(.en-stage-bar)) .fi-page-header-main-ctn,
.fi-page:has(.fi-ta-content-ctn) .fi-page-main,
.fi-page:has(.fi-ta-content-ctn) .fi-page-content,
.fi-page:has(.fi-ta-content-ctn) .fi-ta,
.fi-page:has(.fi-ta-content-ctn) .fi-ta-ctn,
.fi-page:has(.fi-ta-content-ctn) .fi-ta-main {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
.fi-page:has(.fi-ta-content-ctn):not(:has(.en-stage-bar)) .fi-ta-content-ctn {
    flex: 1 1 auto;
    min-height: 8rem;
    max-height: none !important;   /* المرونة تحسب الارتفاع، لا سقفٌ مخمَّن */
}
/* الترقيم لا ينكمش: هو ذيل الجدول ويجب أن يبقى ظاهرًا */
.fi-page:has(.fi-ta-content-ctn):not(:has(.en-stage-bar)) .fi-pagination { flex: 0 0 auto; }

/* أغلفة «المخطَّط» بين الصفحة والجدول تقطع سلسلة المرونة، فيرتفع الجدول فوق
   ما تسمح به الصفحة وتُمرَّر الصفحةُ نفسها — فيخرج رأس الجدول من الشاشة وهو
   ملتصقٌ بحاويةٍ لا تُمرَّر (بلاغ المستخدم: «راس الجدول مش ثابت»).
   قِيس في المتصفّح: .fi-page-content ٥٧٨ بكسل و.fi-ta ٦٢٥ لأن fi-sc (شبكة)
   وfi-grid-col وfi-sc-component بينهما بارتفاعٍ حرّ. تُذاب الثلاثة بـcontents
   حين يكون الجدول بداخلها، فيصير الجدول ابنًا مباشرًا للصفحة المرنة:
   الحاوية تأخذ ما بقي وتُمرَّر هي، والرأس يثبت فوقها. */
.fi-page:has(.fi-ta-content-ctn) .fi-sc:has(> .fi-grid-col > .fi-sc-component > .fi-ta),
.fi-page:has(.fi-ta-content-ctn) .fi-grid-col:has(> .fi-sc-component > .fi-ta),
.fi-page:has(.fi-ta-content-ctn) .fi-sc-component:has(> .fi-ta) { display: contents; }

/* التلفون: تُترك الصفحة تتمدّد وتُمرَّر كالمعتاد — الحبس في صندوق
   داخل صفحة تُمرَّر هي الأخرى يجعل التمرير يبدو عالقًا */
@media (max-width: 900px) {
    .fi-page:has(.fi-ta-content-ctn) { display: block; max-height: none; }
    .fi-page:has(.fi-ta-content-ctn) .fi-ta-content-ctn { min-height: 0; }
}

/* صفحةٌ تحتوي ما يُوضَع فيها مطلقًا (تأخذ الصنفَ بنفسها — getPageClasses): الصندوقُ الممرَّر أعلاه بلا سلفٍ مُموضَع، فالتسمياتُ
   المخفية (.fi-sr-only — position:absolute) تُحسب من المستند لا منه فتطوّله، ويقف تمريرُ النافذة على شاشةٍ فاضية تحت آخر
   الصفحة. قِيس في صفحة الرخصة: ٧٢ تسميةً في «بنود المصروفات» طوّلت المستند لـ٢١٢٩ بكسل والصفحةُ ٨٦٠ (مراجعة ١٧ أكتوبر).
   صنفٌ جديد لا يمسّ غير صفحته؛ وطلبُ الرسومات فيه العطلُ نفسُه من مكرِّره. */
.fi-page.en-page-contain { position: relative; }
/* وعلى التليفون تتمدّد الصفحةُ وتُمرَّر النافذة كما أرادت قاعدةُ التلفون أعلاه — وهي لا تغلب الأصلية (:not يرفع أولويتها):
   الصندوقُ يُبنى حين يُرسم جدولُ الأقساط الكسول فيقفز الموظفُ لأول الصفحة. بأولويةٍ مساوية وبعدها، لهذه الصفحة وحدها. */
@media (max-width: 900px) {
    .fi-page.en-page-contain:has(.fi-ta-content-ctn) { display: block; max-height: none; overflow-y: visible; }
}
/* خليةٌ بسقفٍ بالعرض لا بعدد الحروف (en-cell-tight — «الموافقة التخطيطية»: العميل والمالك والعنوان): ٢٠ حرفًا عريضة (ش/ص/ض)
   تركت الجدولَ أعرضَ من مكانه حتى ٦٩ بكسل على ١٢٨٠ والقائمةُ مفتوحة (مراجعة الشاشات الثالثة). مقيسٌ بنصوصٍ حقيقية (٤٠٠ صفحة وأسوأ
   تركيبة): ١٠rem وما تحتها صفر، و١١rem أعرضُ ٩ بكسل. والسقفُ على غلاف الخلية بأولويةٍ تحت مقبض عرض العمود (td.fi-ta-cell-… > *):
   السحبُ يوسّعه فيبان من الاسم أكثر — كان على النص نفسه فيبقى ١٠rem مهما اتّسع العمود (مراجعة الشاشات الرابعة). */
:where(.fi-ta table td.en-cell-tight) .fi-ta-col { max-width: var(--en-text-max, 10rem); }

/* محادثة بلا تاريخ محفوظ — نصٌّ يشرح بدل صندوقٍ أبيض يوهم بالعطل */
.en-wa-nohistory {
    margin: auto;
    max-width: 34rem;
    padding: 1rem 1.15rem;
    border: 1px dashed var(--gray-400);
    border-radius: .6rem;
    background: var(--gray-50);
    color: var(--gray-600);
    font-size: var(--en-fs-sm);
    line-height: 1.9;
    text-align: center;
}

/* ما يحجز موظف الفرع على شاشة العدادات — يُقال باسمه لا يُترك صمتًا */
.en-meter-block {
    margin-bottom: 1rem;
    border: 2px solid var(--warning-600);
    border-radius: .6rem;
    background: var(--warning-50);
    padding: .75rem 1rem;
    color: var(--warning-900);
}
.en-meter-block-h { font-weight: var(--en-fw-bold); margin-bottom: .35rem; }
.en-meter-block ul { margin: 0; padding-inline-start: 1.2rem; }
.en-meter-block li { padding: .1rem 0; }

/* خانة محسوبة (مساحة الأرضي/المتكرر): تُقرأ ولا تُكتب — تُميَّز بمظهرها وحده
   بلا نصّ (بلاغ المستخدم: كانت تبتلع ما يُكتب فيها بصمت لأنها تشبه أخواتها) */
.en-computed {
    background: color-mix(in srgb, var(--gray-400) 16%, transparent) !important;
    color: var(--gray-600) !important;
    cursor: default;
}

/* ======================================================================
   أقسام الشاشات — ما كان <style> وstyle="" داخل قوالبها (نُقل بلا تغيير مرئي)
   ====================================================================== */

/* ===== هيكل اللوحة: شعار العلامة، ترويسة الدخول، مستخدم الشريط العلوي، حقلا التاريخ والتاريخ/الوقت ===== */

/* ---------- شعار العلامة (brand-logo) ---------- */
.en-brand-logo {
    display: flex;
    align-items: center;
    gap: .55rem;
    line-height: 1.15;
    white-space: nowrap;
}
.en-brand-logo-img {
    height: 3.75rem;
    width: auto;
    flex: none;
}
.en-brand-logo-name {
    font-weight: var(--en-fw-bold);
    font-size: var(--en-fs-xl);
}

/* ---------- ترويسة صفحة الدخول (login-brand) ---------- */
.en-brand-login { margin-bottom: 1.5rem; }
.en-brand-login-card {
    border: 1px solid var(--en-line, color-mix(in srgb, var(--gray-400) 25%, transparent));
    border-radius: .85rem;
    padding: 1.1rem 1.25rem;
    background: linear-gradient(180deg, color-mix(in srgb, var(--primary-500) 6%, transparent), transparent);
    text-align: center;
}
.en-brand-login-title {
    font-size: var(--en-fs-3xl);
    font-weight: var(--en-fw-bold);
    color: var(--primary-700);
    letter-spacing: var(--en-ls-tight);
}
.en-brand-login-sub {
    font-size: var(--en-fs-base);
    color: var(--gray-500);
    margin-top: .2rem;
}
.en-brand-login-desc {
    font-size: var(--en-fs-sm);
    color: var(--gray-600);
    margin-top: .8rem;
    line-height: 1.8;
    margin-bottom: 0;
}
.en-brand-login-hint {
    font-size: var(--en-fs-xs);
    color: var(--gray-400);
    text-align: center;
    margin-top: .9rem;
    margin-bottom: 0;
}

/* ---------- مستخدم الشريط العلوي وزر الخروج (topbar-user) ---------- */
.en-topbar-user {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding-inline: .4rem;
    white-space: nowrap;
}
.en-topbar-user-name {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-weight: var(--en-fw-semibold);
    font-size: var(--en-fs-base);
}
.en-topbar-user-icon { color: var(--primary-600); }
.en-topbar-user-form { margin: 0; }
.en-topbar-user-logout {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    background: var(--danger-50);
    color: var(--danger-700);   /* لا 600: تباينه على الخلفية الوردية ٤٫١ — والأغمق ٥٫٥ */
    border: 1px solid var(--danger-200);
    border-radius: .5rem;
    padding: .32rem .7rem;
    font-size: var(--en-fs-xs);
    font-weight: var(--en-fw-bold);
    cursor: pointer;
    font-family: inherit;
}
/* التليفون (بلاغ المالك ١٧ أكتوبر: زرّ الخروج مش ظاهر تحت ٧٦٨): الشريطُ كان أعرضَ من الشاشة بالاسم كاملًا فيُدفع الزرُّ خارجها
   يسارًا (مقيس: x=-131 على ٣٦٠). الآن الزرُّ أيقونةٌ بمساحة لمسٍ كاملة لا تنضغط أبدًا، والاسمُ يأخذ ما بقي ويُقصّ بنقاط —
   والسلسلةُ كلُّها min-width: 0 كي يقبل كلُّ أبٍ أن يضيق. والكمبيوتر كما هو حرفًا. والشريطُ ثابتٌ مع التنقّل (x-persist) فهي
   قواعدُ عرضٍ لا تحتاج إعادة رسم */
@media (max-width: 767.98px) {
    .fi-topbar-end { min-width: 0; column-gap: .75rem; }
    .en-topbar-user { min-width: 0; flex: 0 1 auto; gap: .35rem; padding-inline: 0; }
    .en-topbar-user-name {
        display: block;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        font-size: var(--en-fs-sm);
    }
    .en-topbar-user-icon { display: inline; vertical-align: middle; margin-inline-end: .25rem; }
    .en-topbar-user-form { flex: none; }
    /* نصُّ «خروج» عقدةٌ حرّة في الزر — يُخفى بحجم خطٍّ صفر (--en-fs-none) فيبقى اسمَ الزر لقارئ الشاشة، والتلميحُ «تسجيل الخروج» */
    .en-topbar-user-logout {
        justify-content: center;
        width: var(--en-touch);
        height: var(--en-touch);
        padding: 0;
        gap: 0;
        border-radius: 9999px;
        font-size: var(--en-fs-none);
    }
    .en-topbar-user-logout svg { width: var(--en-touch-icon); height: var(--en-touch-icon); }
}
/* جداولُ التليفون (مراجعة ١٧ أكتوبر):
   - رأسا اليوم والعدد يلتفّان في سجلٍّ حدثُه كلمتان («يوم تسجيل الأتعاب» في سجل الوثائق الصادرة — InteractsWithArchiveLog):
     بعرضه كاملًا كان يدفع «عدد الوثائق» تحت عمود الأزرار الثابت (على ٣٩٠ مستخبٍّ كلُّه، وعلى ٤١٤ يظهر «1» من «11»)؛ ملتفَّين
     يظهر العددُ كاملًا من ٣٥٠ (والحيُّ من ٣٧٥). وبقيةُ الرؤوس سطرٌ واحد كما هي.
   - لوحةُ التصفيات بعمودين (أربعةُ فلاتر فأكثر — عرضُها 2xl) كانت بعرض الشاشة كلِّها وتبدأ من هامش الصفحة (١٦ بكسل) فيخرج طرفُها
     اليمين ١٦ بكسل خارجها ولا يُمرَّر إليه في RTL: أولُ حرفٍ من كل عنوان مقصوص («نواقص»، «فرع») وزرُّ «تطبيق التصفيات» كذلك
     (مقيس على ٣٩٠). الآن عرضُها الشاشةُ ناقصَ هامشَي الصفحة. والعرضُ لا السقف: سقفُ فيلامنت (max-width … !important) في طبقة
     components، و!important الطبقة يغلب كلَّ !important خارجها مهما علا محدِّدُه (لذلك لا تعمل قاعدةُ ٦٤٠ العامّة) — أما عرضُه
     100vw فعاديٌّ في الطبقة فيغلبه ما خارجها. واللوحةُ الأضيق من ذلك (فلترٌ أو اثنان) يحكمها سقفُها كما كانت */
@media (max-width: 767.98px) {
    .fi-ta table thead th.en-th-wrap-phone { white-space: normal; }
    .fi-ta-filters-dropdown .fi-dropdown-panel { width: calc(100vw - 2rem); }
}

/* ---------- حقل التاريخ وحقل التاريخ والوقت (date-input / date-time-input) ---------- */
.en-date-field {
    display: flex;
    align-items: center;
    width: 100%;
}
.en-date-text {
    flex: 1 1 auto;
    min-width: 0;
}
.en-date-picker {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    padding-inline: 0.625rem;
    cursor: pointer;
    color: var(--gray-400);
}
.en-date-icon {
    width: 1.15rem;
    height: 1.15rem;
}
.en-date-native {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

/* ===== شاشات التقارير: التقارير وأرباح الخدمات ومراحل وثائق التأمين ===== */

/* ----- مشترك بين التقارير وأرباح الخدمات: شريط الفلترة ----- */
.en-rpt-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
    background: var(--en-white);
    border: 1px solid var(--gray-200);
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
}
.en-rpt-field {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}
.en-rpt-label {
    font-size: var(--en-fs-sm);
    font-weight: var(--en-fw-semibold);
    color: var(--gray-700);
}
.en-rpt-input {
    border: 1px solid var(--gray-300);
    border-radius: 0.5rem;
    padding: 0.45rem 0.6rem;
    font-size: var(--en-fs-base);
    color: var(--gray-900);
    min-width: 11rem;
}
.en-rpt-spacer { flex: 1 1 auto; }
.en-rpt-print {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--primary-600);
    color: var(--en-white);
    border: none;
    border-radius: 0.5rem;
    padding: 0.55rem 1.1rem;
    font-size: var(--en-fs-base);
    font-weight: var(--en-fw-semibold);
    cursor: pointer;
}

/* ----- شاشة التقارير ----- */
.en-rep-wrap {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.en-rep-filters { box-shadow: 0 1px 2px color-mix(in srgb, var(--en-black) 5%, transparent); }
.en-rep-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 1rem;
}
/* ألوان كل بطاقة من مصفوفة القالب عبر خصائص مخصّصة على البطاقة */
.en-rep-kpi {
    background: var(--rep-kpi-bg);
    border: 1px solid var(--rep-kpi-border-soft);
    border-right: 4px solid var(--rep-kpi-border);
    border-radius: 0.75rem;
    padding: 1rem 1.15rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.en-rep-kpi-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.en-rep-kpi-icon { font-size: var(--en-fs-3xl); }
.en-rep-kpi-label {
    font-size: var(--en-fs-base);
    font-weight: var(--en-fw-semibold);
    color: var(--gray-600);
}
.en-rep-kpi-value {
    font-size: var(--en-fs-2xl);
    font-weight: var(--en-fw-bold);
    color: var(--rep-kpi-color);
}
.en-rep-card {
    background: var(--en-white);
    border: 1px solid var(--gray-200);
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
    box-shadow: 0 1px 2px color-mix(in srgb, var(--en-black) 5%, transparent);
}
.en-rep-card-title {
    font-size: var(--en-fs-lg);
    font-weight: var(--en-fw-bold);
    color: var(--gray-900);
    margin: 0 0 0.85rem;
}
.en-rep-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--en-fs-base);
}
.en-rep-head-row {
    background: var(--gray-50);
    text-align: right;
}
.en-rep-th {
    padding: 0.6rem 0.75rem;
    border-bottom: 2px solid var(--gray-200);
    color: var(--gray-700);
}
.en-rep-th-sm {
    padding: 0.55rem 0.75rem;
    border-bottom: 2px solid var(--gray-200);
    color: var(--gray-700);
}
.en-rep-row { border-bottom: 1px solid var(--gray-100); }
.en-rep-td-label {
    padding: 0.55rem 0.75rem;
    color: var(--gray-900);
    font-weight: var(--en-fw-semibold);
}
.en-rep-td {
    padding: 0.55rem 0.75rem;
    color: var(--gray-700);
}
.en-rep-total-row {
    background: var(--gray-50);
    font-weight: var(--en-fw-bold);
}
.en-rep-td-total {
    padding: 0.6rem 0.75rem;
    color: var(--gray-900);
}
.en-rep-td-sm {
    padding: 0.5rem 0.75rem;
    color: var(--gray-900);
}
.en-rep-td-sm-count {
    padding: 0.5rem 0.75rem;
    color: var(--gray-700);
    font-weight: var(--en-fw-semibold);
}
.en-rep-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: 1rem;
}

/* ----- شاشة أرباح الخدمات ----- */
.en-prof-wrap {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}
.en-prof-input { background: var(--en-white); }
/* مركّب ليغلب min-width في .en-rpt-input */
.en-prof-input.en-prof-input-wide { min-width: 16rem; }
.en-prof-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: .8rem;
}
.en-prof-kpi {
    background: var(--prof-kpi-bg);
    border-right: 4px solid var(--prof-kpi-border);
    border-radius: .6rem;
    padding: .7rem 1rem;
}
.en-prof-kpi-label {
    font-size: var(--en-fs-xs);
    color: var(--gray-600);
}
.en-prof-kpi-value {
    font-size: var(--en-fs-xl);
    font-weight: var(--en-fw-bold);
    color: var(--prof-kpi-color);
    font-variant-numeric: tabular-nums;
    direction: ltr;
    text-align: right;
}
.en-prof-card {
    background: var(--en-white);
    border: 1px solid var(--gray-200);
    border-radius: .75rem;
    padding: 1rem 1.25rem;
    overflow-x: auto;
}
.en-prof-card-title {
    font-weight: var(--en-fw-bold);
    margin-bottom: .6rem;
}
.en-prof-card-hint {
    color: var(--gray-500);
    font-weight: var(--en-fw-medium);
    font-size: var(--en-fs-sm);
}
.en-prof-row { cursor: pointer; }
.en-prof-row-open { background: var(--primary-50); }
.en-prof-strong { font-weight: var(--en-fw-bold); }

/* ----- شاشة مراحل وثائق التأمين ----- */
.en-pipe-board {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding-bottom: 1rem;
    align-items: flex-start;
}
/* لون رأس المرحلة خاصيةٌ مخصّصة على العمود يرثها الرأس وشريط الخطوات */
.en-pipe-col {
    flex: 0 0 18rem;
    width: 18rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.en-pipe-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 0.5rem;
    padding: 0.55rem 0.85rem;
    color: var(--en-white);
    font-weight: var(--en-fw-bold);
    background: var(--pipe-head);
}
.en-pipe-count {
    background: color-mix(in srgb, var(--en-white) 25%, transparent);
    border-radius: 9999px;
    padding: 0.1rem 0.55rem;
    font-size: var(--en-fs-xs);
}
.en-pipe-list {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}
.en-pipe-card {
    border: 1px solid var(--gray-200);
    border-radius: 0.6rem;
    background: var(--en-white);
    padding: 0.7rem 0.8rem;
    box-shadow: 0 1px 2px color-mix(in srgb, var(--en-black) 6%, transparent);
}
/* الكودُ كتلةٌ واحدة (جولة إصلاح المرحلة ٢): كان ينكسر عند شَرطته («-INS» في سطر والرقم تحته) في ١٠٨ من ٢١٣ بطاقة في
   الحي و١٢٤ مع حدّ 12px، فإن لم يتّسع بجوار اسم المالك نزل تحته في طرف البطاقة والاسمُ في سطرٍ كامل. */
.en-pipe-card-top {
    display: flex;
    flex-wrap: wrap;
    column-gap: .5rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.25rem;
}
.en-pipe-owner {
    font-size: var(--en-fs-base);
    font-weight: var(--en-fw-bold);
    color: var(--gray-900);
}
.en-pipe-code {
    font-size: var(--en-fs-xs);
    color: var(--gray-400);
    white-space: nowrap;
    unicode-bidi: isolate;
    margin-inline-start: auto;
}
.en-pipe-type {
    font-size: var(--en-fs-xs);
    color: var(--gray-600);
}
.en-pipe-tracks {
    display: flex;
    gap: 6px;
    margin-top: 0.3rem;
    flex-wrap: wrap;
}
.en-pipe-track {
    font-size: var(--en-fs-xs);
    padding: 2px 8px;
    border-radius: 9999px;
    font-weight: var(--en-fw-bold);
}
.en-pipe-track-done {
    background: var(--success-100);
    color: var(--success-800);
}
.en-pipe-track-pending {
    background: var(--warning-100);
    color: var(--warning-800);
}
.en-pipe-meta {
    font-size: var(--en-fs-xs);
    color: var(--gray-500);
}
.en-pipe-customer { margin-top: 0.2rem; }
.en-pipe-steps {
    margin-top: 0.5rem;
    font-size: var(--en-fs-xs);
    color: var(--gray-600);
}
.en-pipe-bar {
    height: 5px;
    background: var(--gray-200);
    border-radius: 9999px;
    margin-top: 3px;
    overflow: hidden;
}
.en-pipe-bar-fill {
    height: 100%;
    width: var(--pipe-pct);
    background: var(--pipe-head);
}
.en-pipe-pay { margin-top: 0.5rem; }
.en-pipe-pay-badge {
    display: inline-block;
    border-radius: 9999px;
    padding: 0.1rem 0.55rem;
    font-size: var(--en-fs-xs);
    font-weight: var(--en-fw-semibold);
}
.en-pipe-pay-paid {
    background: var(--success-100);
    color: var(--success-700);
}
.en-pipe-pay-unpaid {
    background: var(--danger-100);
    color: var(--danger-700);
}
.en-pipe-empty {
    border: 1px dashed var(--gray-300);
    border-radius: 0.6rem;
    padding: 1rem;
    text-align: center;
    font-size: var(--en-fs-xs);
    color: var(--gray-400);
}
.en-pipe-more {
    text-align: center;
    font-size: var(--en-fs-xs);
    color: var(--gray-400);
    padding: .35rem;
}

/* ===== شاشة إعدادات الاسكنر ===== */
.en-scan { max-width: 760px; }
.en-scan-intro { line-height: 2; margin-bottom: 1rem; }
.en-scan-intro-title { color: var(--success-600); font-size: var(--en-fs-lg); }

/* بطاقة حالة EN Scan الحيّة */
.en-scan-card {
    padding: 16px 18px;
    border-radius: 12px;
    border: 1px solid var(--gray-200);
    background: var(--en-white);
    margin-bottom: 1rem;
}
.en-scan-status { display: flex; align-items: center; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
.en-scan-status-label { font-weight: var(--en-fw-bold); }
.en-scan-state-checking { color: var(--gray-500); }
.en-scan-state-ready,
.en-scan-state-nosource,
.en-scan-state-offline { font-weight: var(--en-fw-bold); }
.en-scan-state-ready { color: var(--success-600); }
.en-scan-state-nosource { color: var(--warning-600); }
.en-scan-state-offline { color: var(--danger-600); }
.en-scan-actions { display: flex; gap: 8px; margin-top: 14px; justify-content: flex-end; flex-wrap: wrap; }
.en-scan-btn { border: none; border-radius: 8px; padding: 8px 16px; cursor: pointer; }
.en-scan-btn-source,
.en-scan-btn-machine { color: var(--en-white); font-weight: var(--en-fw-bold); }
.en-scan-btn-source { background: var(--primary-600); }
.en-scan-btn-machine { background: var(--primary-700); }
.en-scan-btn-refresh { background: var(--gray-200); color: var(--gray-800); }

/* صناديق EN Meter وEN CAD والتثبيت */
.en-scan-box { padding: 16px 18px; border-radius: 12px; line-height: 2; }
.en-scan-box-meter { background: color-mix(in srgb, var(--warning-600) 7%, transparent); border: 1px solid color-mix(in srgb, var(--warning-600) 30%, transparent); margin-bottom: 1rem; }
.en-scan-box-cad { background: color-mix(in srgb, var(--info-600) 6%, transparent); border: 1px solid color-mix(in srgb, var(--info-600) 25%, transparent); margin-bottom: 1rem; }
.en-scan-box-install { background: color-mix(in srgb, var(--primary-600) 7%, transparent); border: 1px solid color-mix(in srgb, var(--primary-600) 25%, transparent); }

.en-scan-meter-table { width: 100%; margin-top: .5rem; border-collapse: collapse; }
.en-scan-meter-row { border-top: 1px solid color-mix(in srgb, var(--gray-400) 25%, transparent); }
.en-scan-meter-branch,
.en-scan-meter-devices { padding: 6px 4px; }
.en-scan-meter-branch { font-weight: var(--en-fw-semibold); white-space: nowrap; }
.en-scan-device { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.en-scan-dot { width: 9px; height: 9px; border-radius: 50%; }
.en-scan-dot-live { background: var(--success-600); }
.en-scan-dot-dead { background: var(--danger-600); }
.en-scan-device-host { font-weight: var(--en-fw-semibold); }
.en-scan-device-meta { color: var(--gray-500); font-size: var(--en-fs-base); }
.en-scan-meter-install {
    display: inline-block;
    background: var(--warning-700);
    color: var(--en-white);
    text-decoration: none;
    border-radius: 8px;
    padding: 5px 16px;
    font-weight: var(--en-fw-bold);
    font-size: var(--en-fs-base);
}

.en-scan-cad-text { margin: .35rem 0; color: var(--gray-600); }
.en-scan-cad-cta { text-align: center; margin: .5rem 0 .25rem; }
.en-scan-cad-download,
.en-scan-install-download {
    display: inline-block;
    color: var(--en-white);
    text-decoration: none;
    border-radius: 10px;
    font-weight: var(--en-fw-bold);
}
.en-scan-cad-download { background: var(--info-700); padding: 10px 24px; }
.en-scan-cad-note { margin: 0; color: var(--gray-500); font-size: var(--en-fs-base); text-align: center; }

.en-scan-steps { color: var(--gray-600); padding: 0; }
.en-scan-steps-first { margin: .5rem 1.2rem .25rem 0; }
.en-scan-steps-rest { margin: 0 1.2rem 0 0; }
.en-scan-install-cta { text-align: center; margin: .5rem 0 1rem; }
.en-scan-install-download { background: var(--gray-900); padding: 12px 26px; font-size: var(--en-fs-lg); }
.en-scan-install-note { margin: .6rem 0 0; color: var(--gray-500); font-size: var(--en-fs-base); }

/* ===== شاشة حالة واتساب ===== */
.en-wast { max-width: 560px; }
.en-wast-card { border-radius: 12px; padding: 24px; text-align: center; }
.en-wast-card-ready { background: var(--success-50); border: 1px solid var(--success-300); }
.en-wast-card-auth { background: var(--info-50); border: 1px solid var(--info-300); }
.en-wast-card-qr { background: var(--warning-50); border: 1px solid var(--warning-300); }
.en-wast-icon { font-size: var(--en-fs-icon); line-height: 1; }
.en-wast-title { font-size: var(--en-fs-2xl); font-weight: var(--en-fw-bold); }
.en-wast-title-ready { color: var(--success-800); margin-top: 8px; }
.en-wast-title-auth { color: var(--info-800); margin-top: 8px; }
.en-wast-title-qr { color: var(--warning-800); }
.en-wast-sub { font-size: var(--en-fs-sm); margin-top: 6px; }
.en-wast-sub-ready { color: var(--success-700); }
.en-wast-sub-auth { color: var(--info-700); }
.en-wast-safety {
    font-size: var(--en-fs-xs);
    color: var(--success-700);
    margin-top: 12px;
    border-top: 1px dashed var(--success-300);
    padding-top: 10px;
}
.en-wast-steps {
    text-align: right;
    direction: rtl;
    font-size: var(--en-fs-base);
    color: var(--warning-700);
    margin: 14px auto 16px;
    max-width: 330px;
    line-height: 2.1;
}
.en-wast-qr {
    width: 300px;
    height: 300px;
    background: var(--en-white);
    border: 1px solid var(--gray-200);
    border-radius: 10px;
    padding: 6px;
}
.en-wast-qr-hint { font-size: var(--en-fs-xs); color: var(--gray-400); margin-top: 10px; }
.en-wast-qr-wait { color: var(--warning-700); font-size: var(--en-fs-sm); padding: 34px 10px; }
.en-wast-error {
    background: var(--danger-50);
    border: 1px solid var(--danger-300);
    border-radius: 8px;
    padding: 10px;
    margin-top: 12px;
    font-size: var(--en-fs-xs);
    color: var(--danger-700);
}
.en-wast-foot { font-size: var(--en-fs-xs); color: var(--gray-400); margin-top: 14px; line-height: 1.8; }

/* ===== شاشة صلاحيات الصفحات ===== */
.en-perm-intro { color: var(--gray-500); margin-bottom: 1rem; line-height: 1.9; }
.en-perm-intro-yes { color: var(--success-600); }
.en-perm-scroll { overflow-x: auto; }
.en-perm-table { width: 100%; border-collapse: collapse; font-size: var(--en-fs-base); white-space: nowrap; }
.en-perm-th { border-bottom: 2px solid color-mix(in srgb, var(--gray-400) 40%, transparent); }
.en-perm-th-page { text-align: right; padding: 10px 12px; }
.en-perm-th-role { padding: 10px 8px; text-align: center; }
.en-perm-row-alt { background: color-mix(in srgb, var(--gray-400) 7%, transparent); }
.en-perm-td-page { text-align: right; padding: 8px 12px; font-weight: var(--en-fw-semibold); }
.en-perm-td-cell { text-align: center; padding: 6px; }
.en-perm-yes { color: var(--success-600); font-weight: var(--en-fw-bold); }
.en-perm-no { color: color-mix(in srgb, var(--gray-400) 55%, transparent); }
/* لون الحدّ عند المرور يكتبه onmouseover في style العنصر فيغلب هذا */
.en-perm-toggle {
    cursor: pointer;
    background: none;
    border: 1px solid transparent;
    font-size: var(--en-fs-lg);
    padding: 3px 12px;
    border-radius: 6px;
}

/* ===== نافذتا المجمعة في المتابعة: آخر موقف للمشروع وخطابات الملاحظات ===== */
.en-eclip-stack { display: flex; flex-direction: column; gap: 10px; }
.en-eclip-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.en-eclip-code,
.en-eclip-hint { font-size: var(--en-fs-base); color: var(--gray-500); }
.en-eclip-code-value { color: var(--gray-900); }
.en-eclip-site-link { color: var(--primary-600); font-weight: var(--en-fw-semibold); text-decoration: none; font-size: var(--en-fs-base); }
.en-eclip-live {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid var(--info-200);
    background: var(--info-50);
    color: var(--info-700);
    border-radius: 10px;
    font-weight: var(--en-fw-semibold);
}
.en-eclip-spinner { width: 18px; height: 18px; animation: en-eclip-spin 1s linear infinite; }
@keyframes en-eclip-spin { to { transform: rotate(360deg); } }
.en-eclip-checked { font-size: var(--en-fs-xs); color: var(--gray-400); }
.en-eclip-error {
    padding: 14px;
    border: 1px solid var(--danger-200);
    background: var(--danger-50);
    color: var(--danger-700);
    border-radius: 10px;
    font-weight: var(--en-fw-semibold);
}
.en-eclip-empty {
    padding: 14px;
    border: 1px solid var(--gray-200);
    background: var(--gray-50);
    color: var(--gray-600);
    border-radius: 10px;
}
.en-eclip-row { display: flex; flex-direction: column; gap: 4px; }
.en-eclip-row-label { font-size: var(--en-fs-sm); font-weight: var(--en-fw-bold); color: var(--gray-600); }
/* ألوان الصف من مصفوفة القالب تصل متغيّراتٍ في style العنصر */
.en-eclip-row-value {
    padding: 10px 14px;
    border: 1px solid var(--eclip-tone-bd);
    background: var(--eclip-tone-bg);
    color: var(--eclip-tone-fg);
    border-radius: 10px;
    font-weight: var(--en-fw-semibold);
    line-height: 1.6;
}
.en-eclip-source { color: var(--gray-400); font-size: var(--en-fs-xs); margin-top: 2px; }

.en-eclip-letter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--warning-200);
    background: var(--warning-50);
    border-radius: 10px;
}
.en-eclip-letter-info { display: flex; flex-direction: column; gap: 3px; }
.en-eclip-letter-type { font-weight: var(--en-fw-bold); color: var(--warning-800); }
.en-eclip-letter-ref { font-size: var(--en-fs-sm); color: var(--gray-500); }
.en-eclip-letter-link { color: var(--primary-600); font-weight: var(--en-fw-bold); text-decoration: none; white-space: nowrap; }
.en-eclip-letter-pending { color: var(--gray-400); font-size: var(--en-fs-sm); white-space: nowrap; }
.en-eclip-letters-empty { color: var(--gray-500); }

/* ===== نوافذ سجلات اليوم: عمليات الفروع وتقفيل الخزينة واستلام الخدمات وقراءات العدادات ===== */
/* جدولٌ داخل نافذةٍ تسكن .fi-ta: ارتفاعُ صفوف فيلامنت المفروض لا يسري عليه */
.en-dlog-wrap table tbody tr,
.en-dlog-wrap table tbody td { height: auto !important; }
.en-dlog-wrap { font-size: var(--en-fs-base); }
.en-dlog-sum {
    display: flex; flex-wrap: wrap; gap: 8px 20px; margin-bottom: 10px;
    font-weight: var(--en-fw-semibold); color: var(--gray-700);
}
.en-dlog-sum .en-dlog-in { color: var(--primary-700); }
.en-dlog-sum .en-dlog-out { color: var(--danger-700); }
.en-dlog-empty { color: var(--gray-500); margin: 0; }
.en-dlog-scroll { max-height: 60vh; overflow: auto; border: 1px solid var(--gray-200); border-radius: 8px; }
.en-dlog-wrap table { width: 100%; table-layout: fixed; border-collapse: collapse; }
.en-dlog-wrap thead th {
    position: sticky; top: 0; z-index: 1;
    background: var(--gray-100); color: var(--gray-700); font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold);
    text-align: right; padding: 6px 8px; border-bottom: 1px solid var(--gray-200);
}
/* !important: قواعد .fi-ta العامة تقصّ الخلايا في سطرٍ واحد */
.en-dlog-wrap td {
    padding: 5px 8px; border-bottom: 1px solid var(--gray-100); vertical-align: top;
    overflow-wrap: anywhere !important; word-break: break-word !important;
    white-space: normal !important; line-height: 1.5;
}
.en-dlog-closing td { overflow: visible !important; max-width: none !important; }
.en-dlog-wrap tbody tr:last-child td { border-bottom: 0; }
.en-dlog-wrap tbody tr:nth-child(even) td { background: var(--gray-50); }

/* الوقت والأرقام نصٌّ لاتيني: بلا direction:ltr يقلبه RTL إلى «PM 12:46» */
.en-dlog-wrap .en-dlog-time { color: var(--gray-500); white-space: nowrap !important; direction: ltr; text-align: right; }
.en-dlog-wrap .en-dlog-amount { text-align: left; font-weight: var(--en-fw-bold); white-space: nowrap !important; direction: ltr; }
.en-dlog-wrap .en-dlog-amount.en-dlog-in { color: var(--primary-700); }
.en-dlog-wrap .en-dlog-amount.en-dlog-out { color: var(--danger-700); }
.en-dlog-wrap .en-dlog-num { text-align: center; direction: ltr; }
.en-dlog-wrap .en-dlog-code { direction: ltr; text-align: right; }
/* شحنُ الرصيد يُقرأ مع البداية: الاستهلاك = البداية + الشحن − النهاية */
.en-dlog-wrap .en-dlog-topup { display: block; font-size: var(--en-fs-xs); font-weight: var(--en-fw-semibold); color: var(--warning-700); }

/* عرضُ الأعمدة لكل سجل: مجموعه مئة بالضبط */
.en-dlog-ops .en-dlog-time { width: 10%; }
.en-dlog-ops .en-dlog-kind { width: 20%; }
.en-dlog-ops .en-dlog-client { width: 18%; }
.en-dlog-ops .en-dlog-emp { width: 12%; }
.en-dlog-ops .en-dlog-num { width: 8%; }
.en-dlog-ops .en-dlog-amount { width: 10.6%; }

.en-dlog-closing .en-dlog-time { width: 14%; }
.en-dlog-closing .en-dlog-kind { width: 20%; }
.en-dlog-closing .en-dlog-desc { width: 48%; }
.en-dlog-closing .en-dlog-amount { width: 18%; }

.en-dlog-handovers .en-dlog-time { width: 10%; }
.en-dlog-handovers .en-dlog-kind { width: 16%; }
.en-dlog-handovers .en-dlog-owner { width: 24%; font-weight: var(--en-fw-semibold); }
.en-dlog-handovers .en-dlog-client { width: 20%; }
.en-dlog-handovers .en-dlog-code { width: 15%; }
.en-dlog-handovers .en-dlog-emp { width: 15%; }

.en-dlog-meters .en-dlog-kind { width: 28%; font-weight: var(--en-fw-semibold); }
.en-dlog-meters .en-dlog-client { width: 14%; }
.en-dlog-meters .en-dlog-emp { width: 20%; }
.en-dlog-meters .en-dlog-amount { width: 12.6%; }

/* سجل الوثائق الصادرة: وثائق يوم إصدار */
.en-dlog-wrap .en-dlog-policy { direction: ltr; text-align: right; }
.en-dlog-wrap .en-dlog-files { white-space: nowrap !important; }
.en-dlog-wrap .en-dlog-files .en-file-open + .en-file-open { margin-inline-start: .5rem; }
.en-dlog-issued .en-dlog-code { width: 13%; }
.en-dlog-issued .en-dlog-owner { width: 17%; font-weight: var(--en-fw-semibold); }
.en-dlog-issued .en-dlog-client { width: 15%; }
.en-dlog-issued .en-dlog-kind { width: 9%; }
.en-dlog-issued .en-dlog-num { width: 13%; }
.en-dlog-issued .en-dlog-policy { width: 14%; }
.en-dlog-issued .en-dlog-amount { width: 8%; }
.en-dlog-issued .en-dlog-files { width: 8%; }
/* «الرسومات وكشف الحساب» في نافذة يوم السجل — النسبُ الباقية أُنقصت له لا زيدت على المئة */
.en-dlog-issued .en-dlog-sent { width: 13%; }
/* «المهندسين» (طلب المالك ١٧ أكتوبر — DayColumn::pairs): سطرٌ لكل مهندس «معماري: …» و«إنشائي: …»، تسميتُه صغيرةٌ باهتة والاسمُ بعدها */
.en-dlog-wrap .en-dlog-pair { display: block; }
.en-dlog-wrap .en-dlog-pair small { color: var(--gray-500); font-size: var(--en-fs-xs); font-weight: var(--en-fw-semibold); }
/* تاريخا الإصدار وتسجيل الأتعاب (طلب المالك ١٧ أكتوبر): «14/10» والسنةُ سطرًا صغيرًا تحته في عمودٍ ضيّق — وعلى التليفون (بطاقة)
   سطرٌ واحد «14/10/2026». بلا direction: ltr (en-dlog-time): الأرقامُ بشرطتها تبقى «14/10/2026» في RTL، وltr كانت تعكس سطرَ
   البطاقة (العنوانُ شمالًا والقيمةُ يمينًا خلافَ بقية سطورها) */
.en-dlog-wrap .en-dlog-date { color: var(--gray-500); white-space: nowrap !important; }
@media (max-width: 700px) {
    .en-dlog-issued .en-dlog-date br { display: none; }
    .en-dlog-issued .en-dlog-year { font-size: var(--en-fs-base); }
    .en-dlog-issued .en-dlog-year::before { content: '/'; }
}

/* نافذةُ اليوم العامّة لسجلات الحفظ (partials/archive-day): نسبةٌ معلنة للعمود (DayColumn::width) تغلب عرضَ عائلته —
   كانت نسبُ العائلة تبلغ ٩٩٪ قبل أعمدة سجل الحفظ الثلاثة الأخيرة فتُعصر حرفًا في كل سطر ويركب عنوانُها جارَه —
   والملفاتُ تلتفّ بين روابطها: كان «3 ↗» يُقصّ على ١٢٨٠ في سجل أوامر الدفع */
.en-dlog-wrap th.en-dlog-w { width: var(--en-w); white-space: normal !important; }
.en-dlog-wrap .en-dlog-files.en-dlog-wrapfiles { white-space: normal !important; }
.en-dlog-wrap .en-dlog-wrapfiles .en-file-open { white-space: nowrap; }
/* وعلى التليفون كلُّ خانةٍ سطرُ البطاقة كلُّه: «إرسال الوصل» كانت تبقى بعرض عائلتها (١٣٪) فتلتصق قيمتُها بعنوانها */
@media (max-width: 700px) {
    .en-dlog-wrap.en-dlog-archive td { width: auto; }
}

/* التلفون: الأعمدة تُضغط فتنكسر الكلمة حرفًا في كل سطر — فيصير كل صفٍّ بطاقةً:
   العنوان جنب قيمته في سطر، بلا جدولٍ يُضغط. يأتي بعد قواعد العرض ليغلبها */
@media (max-width: 700px) {
    .en-dlog-scroll { max-height: 62vh; border: 0; }
    .en-dlog-wrap table, .en-dlog-wrap tbody, .en-dlog-wrap tr, .en-dlog-wrap td { display: block; width: auto; }
    .en-dlog-wrap thead { display: none; }
    .en-dlog-wrap tbody tr {
        border: 1px solid var(--gray-200); border-radius: 10px;
        margin-bottom: 8px; padding: 4px 2px; background: var(--en-white);
    }
    .en-dlog-wrap tbody tr:nth-child(even) td,
    .en-dlog-wrap tbody tr td { background: transparent; }
    .en-dlog-wrap td {
        display: flex; justify-content: space-between; gap: 10px;
        padding: 4px 10px; border-bottom: 1px dashed var(--gray-100); text-align: right;
    }
    .en-dlog-wrap td:last-child { border-bottom: 0; }
    .en-dlog-wrap td::before {
        content: attr(data-label);
        color: var(--gray-500); font-weight: var(--en-fw-bold); font-size: var(--en-fs-xs); flex: 0 0 auto;
    }
    .en-dlog-wrap .en-dlog-time, .en-dlog-wrap .en-dlog-kind, .en-dlog-wrap .en-dlog-client,
    .en-dlog-wrap .en-dlog-emp, .en-dlog-wrap .en-dlog-num, .en-dlog-wrap .en-dlog-amount,
    .en-dlog-wrap .en-dlog-desc, .en-dlog-wrap .en-dlog-owner, .en-dlog-wrap .en-dlog-code,
    .en-dlog-wrap .en-dlog-policy, .en-dlog-wrap .en-dlog-files { width: auto; text-align: left; }
    .en-dlog-ops .en-dlog-kind, .en-dlog-ops .en-dlog-client, .en-dlog-ops .en-dlog-emp,
    .en-dlog-closing .en-dlog-kind { font-weight: var(--en-fw-semibold); }
    /* خانةٌ ltr (الكود ورقم المشروع ورقم الوثيقة والأتعاب) في بطاقة سجل الوثائق الصادرة: سطرُها كان معكوسًا — العنوانُ شمالًا والقيمةُ
       يمينًا خلافَ بقية سطور البطاقة (مراجعة ١٧ أكتوبر) — فيُعكس الصفُّ فيعود كجيرانه. وسجلاتُ الحفظ الأخرى كما هي */
    .en-dlog-issued td:is(.en-dlog-code, .en-dlog-num, .en-dlog-policy, .en-dlog-amount) { flex-direction: row-reverse; }
}

/* ===== بيانات المشروع في نافذة «الأوراق المحفوظة» للوثيقة ===== */
.en-dentry-box {
    border: 1px solid var(--gray-200); border-radius: 10px;
    padding: 8px 12px 12px; margin-bottom: 14px;
}
.en-dentry-box > summary { cursor: pointer; font-weight: var(--en-fw-bold); font-size: var(--en-fs-md); color: var(--gray-900); }
.en-dentry-grid {
    display: grid; gap: 12px; margin-top: 10px;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    align-items: start;
}
/* بلا هذا يتمدّد عنصر الشبكة بطول محتواه فتتراكب الأعمدة */
.en-dentry-grid > table { min-width: 0; }
.en-dentry-grid table {
    width: 100%; table-layout: fixed; border-collapse: collapse;
    border: 1px solid var(--gray-200); border-radius: 8px; overflow: hidden;
    font-size: var(--en-fs-sm);
}
.en-dentry-grid th {
    background: var(--gray-100); color: var(--gray-700); font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold);
    text-align: right; padding: 5px 8px; border-bottom: 1px solid var(--gray-200);
}
/* قواعد الثيم العامة تقصّ خلايا الجداول في سطرٍ واحد (صفوف ١ سم) — تُبطَل هنا */
.en-dentry-grid td, .en-dentry-grid th {
    padding: 4px 8px; border-bottom: 1px solid var(--gray-100); vertical-align: top;
    overflow-wrap: anywhere !important; word-break: break-word !important;
    white-space: normal !important; overflow: visible !important;
    max-width: none !important; text-overflow: clip !important;
    line-height: 1.5; height: auto !important;
}
.en-dentry-grid td > *, .en-dentry-grid th > * { max-width: none !important; overflow: visible !important; }
.en-dentry-grid tr:last-child td { border-bottom: 0; }
.en-dentry-grid td.en-dentry-key { width: 38%; color: var(--gray-500); }
.en-dentry-grid td.en-dentry-val { color: var(--gray-900); font-weight: var(--en-fw-semibold); }
.en-dentry-grid tbody tr:nth-child(even) td { background: var(--gray-50); }

/* ===== جدول كشف أسعار الخدمات وأرباحها (أرباح الخدمات) ===== */
.en-stmt-col-no { width: 2.5rem; }
.en-stmt-col-date { width: 6.5rem; }
.en-stmt-col-code { width: 8rem; }
.en-stmt-total-label { text-align: left; }

/* ===== قوائم الملفات ومعايناتها: ملفات الورقة، الأرشيف، أوراق المهندسين، ملفات الاستلام، إيصالات السداد، شاشة المسح، خانة كود أمر الدفع ===== */

/* --- صفّ الملف المشترك --- */
.en-file-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.en-file-groups {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.en-file-card {
    padding: 8px 12px;
    border: 1px solid var(--gray-200);
    border-radius: 8px;
}

.en-file-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.en-file-name {
    font-size: var(--en-fs-base);
    color: var(--gray-800);
}

.en-file-actions {
    display: flex;
    gap: 14px;
    align-items: center;
}

.en-file-open {
    color: var(--primary-600);
    font-weight: var(--en-fw-semibold);
    text-decoration: none;
}

.en-file-delete {
    color: var(--danger-600);
    background: none;
    border: none;
    cursor: pointer;
    font-weight: var(--en-fw-semibold);
}

.en-file-delete-flush {
    padding: 0;
}

.en-file-empty {
    color: var(--gray-500);
}

.en-file-audio {
    width: 100%;
}

/* --- معاينة ملف الورقة --- */
.en-scanprev {
    margin-top: 8px;
}

.en-scanprev-tools {
    display: flex;
    gap: 6px;
    margin-bottom: 6px;
}

.en-scanprev-rotate {
    border: 1px solid var(--gray-300);
    background: var(--en-white);
    border-radius: 6px;
    padding: 2px 10px;
    cursor: pointer;
    font-size: var(--en-fs-base);
}

.en-scanprev-deg {
    align-self: center;
    font-size: var(--en-fs-xs);
    color: var(--gray-500);
}

.en-scanprev-frame {
    overflow: hidden;
    text-align: center;
}

.en-scanprev-frame-turned {
    height: 320px;
}

/* الزاوية تُحسب وقت الرسم فتصل بمتغيّر --en-scanprev-deg على الصورة */
.en-scanprev-img {
    max-width: 100%;
    max-height: 420px;
    border-radius: 8px;
    border: 1px solid var(--gray-200);
    background: var(--gray-50);
    transform: rotate(var(--en-scanprev-deg, 0deg));
    transition: transform .15s;
}

.en-scanprev-pdf {
    width: 100%;
    height: 520px;
    border: 1px solid var(--gray-200);
    border-radius: 8px;
    background: var(--gray-50);
}

.en-scanprev-video {
    width: 100%;
    max-height: 420px;
    border-radius: 8px;
    background: var(--en-black);
}

.en-scanprev-text {
    max-height: 340px;
    overflow: auto;
    margin: 0;
    padding: 10px 12px;
    background: var(--gray-900);
    color: var(--gray-200);
    border-radius: 8px;
    font-size: var(--en-fs-xs);
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-word;
}

/* --- شريط أوتوكاد تحت الملف --- */
.en-cad-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 6px;
    padding: 6px 10px;
    background: color-mix(in srgb, var(--primary-600) 6%, transparent);
    border-radius: 8px;
    font-size: var(--en-fs-sm);
}

.en-cad-open {
    background: var(--primary-600);
    color: var(--en-white);
    border: none;
    border-radius: 6px;
    padding: 4px 12px;
    font-weight: var(--en-fw-bold);
    cursor: pointer;
}

.en-cad-lock {
    color: var(--warning-700);
    font-weight: var(--en-fw-semibold);
}

.en-cad-versions-toggle {
    cursor: pointer;
    color: var(--primary-700);
    font-weight: var(--en-fw-semibold);
}

.en-cad-versions {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 6px;
}

.en-cad-version {
    color: var(--gray-700);
    text-decoration: none;
}

/* كاد ٢٠٠٧: أصلٌ اتنقل لـ«للمسح» بعد ٣٠ يوم (Cad2007Trash) — سطرٌ باهت بلا رابط */
.en-cad-version-moved {
    color: var(--gray-500);
    cursor: default;
}

/* --- أرشيف الوثيقة --- */
.en-archive-paper {
    border: 1px solid var(--gray-200);
    border-radius: 10px;
    padding: 10px 12px;
}

.en-archive-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}

.en-archive-title {
    font-size: var(--en-fs-md);
    color: var(--gray-900);
}

.en-archive-count {
    font-size: var(--en-fs-xs);
    font-weight: var(--en-fw-bold);
}

.en-archive-count-none {
    color: var(--warning-700);
}

.en-archive-count-some {
    color: var(--primary-700);
}

/* --- أوراق مهندسي الوثيقة --- */
.en-file-eng {
    border: 1px solid var(--gray-200);
    border-radius: 10px;
    padding: 10px 14px;
}

.en-file-eng-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.en-file-eng-name {
    font-weight: var(--en-fw-bold);
    color: var(--gray-900);
}

.en-file-eng-role {
    font-size: var(--en-fs-xs);
    padding: 2px 8px;
    border-radius: 9999px;
    background: var(--info-100);
    color: var(--info-800);
}

.en-file-eng-paper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 10px;
    border-top: 1px solid var(--gray-100);
}

.en-file-eng-paper-name {
    font-size: var(--en-fs-base);
    color: var(--gray-800);
}

.en-file-eng-none {
    font-size: var(--en-fs-sm);
    color: var(--gray-400);
    margin: 0;
}

/* --- ملفات ورقة الاستلام --- */
.en-file-handover-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.en-file-handover {
    border: 1px solid var(--gray-200);
    border-radius: 10px;
    padding: 10px;
}

.en-file-handover-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    gap: 8px;
}

.en-file-handover-img {
    max-width: 100%;
    max-height: 70vh;
    border-radius: 8px;
    display: block;
    margin: 0 auto;
}

.en-file-handover-pdf {
    width: 100%;
    height: 60vh;
    border: 0;
    border-radius: 8px;
}

.en-file-handover-video {
    width: 100%;
    max-height: 60vh;
    border-radius: 8px;
    background: var(--en-black);
}

/* --- إيصالات السداد --- */
.en-file-receipts {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.en-file-receipt {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 12px;
    border: 1px solid var(--gray-200);
    border-radius: 8px;
}

.en-file-receipt-date {
    color: var(--gray-500);
    font-size: var(--en-fs-xs);
}

.en-file-receipt-link {
    display: block;
}

.en-file-receipt-img {
    max-height: 180px;
    max-width: 100%;
    object-fit: contain;
    border-radius: 6px;
    background: var(--gray-50);
}

/* --- شاشة مسح أوراق الوثيقة --- */
.en-file-scan-intro {
    margin-bottom: 1rem;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--primary-600) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--primary-600) 25%, transparent);
    border-radius: 8px;
    font-size: var(--en-fs-base);
    line-height: 1.9;
}

/* --- خانة كود أمر الدفع (شاشة المتابعة) --- */
/* «موقف المشروع» في المتابعة: على قدر عنوانه والباقي «…» والنصُّ كاملًا في التلميح
   (بطلب المالك: «يصغر علي قد عرض كلمة موقف المشروع و لما اقف عليه يظهر الكلام») */
.fi-ta table td.en-col-site-status .fi-ta-text { max-width: 7rem; }

/* «الرسومات وكشف الحساب» في الوثائق الصادرة: على قدر عنوانه والباقي «…» وما وصل وما لم
   يصل كاملًا في التلميح — سطرٌ واحد كي يبقى الصفُّ على ٤٢ بكسل (كما en-col-site-status) */
.fi-ta table td.en-col-send-pack .fi-ta-text { max-width: 11rem; }

/* «حالة الوثيقة» في الرسومات الهندسية: الشارةُ سطرٌ وأسماءُ النواقص سطرٌ تحتها (en-cell-stack)
   مقصوصٌ على عرض العمود والنصُّ كاملًا في التلميح — خليةُ الشارات عرضُها مطلقٌ بلا قصّ
   (fi-ta-text-has-badges) فيُعاد الحدُّ والقصُّ هنا كي يبقى الصفُّ على ٤٢ بكسل */
.fi-ta table td.en-col-doc-state .fi-ta-text { max-width: 16rem; }
.fi-ta table td.en-col-doc-state .fi-ta-text-description {
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.en-rcode-badge {
    cursor: pointer;
}
/* كودان فأكثر (تعديل الرسومات): تحت بعض، مضغوطَين على ارتفاع الصف الموحّد (--en-row-h) */
.en-rcode-stack {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}
.fi-ta table tbody td .en-rcode-stack .en-rcode-badge {
    padding-block: 0 !important;
    font-size: var(--en-fs-xs);
    line-height: 1.2;
}

.en-rcode-input {
    width: 9rem;
    padding: .25rem .5rem;
    font-size: var(--en-fs-sm);
}

/* صورةُ المعاينة تُفتح في عارض الصور (image-lightbox) — كان في <style> العارض */
.en-img-open { cursor: zoom-in; }

/* ===== خريطة التربة ===== */
.en-soilmap-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
@media (max-width: 1024px) { .en-soilmap-grid { grid-template-columns: minmax(0, 1fr); } }

.en-soilmap-canvas {
    background: var(--gray-50); border: 1px solid var(--gray-300); border-radius: 10px; padding: 10px;
}

.en-soilmap-gov { cursor: pointer; transition: opacity .12s, filter .12s; }
.en-soilmap-gov:hover { filter: brightness(1.12); }
.en-soilmap-gov.is-sel { stroke-width: 2.6; stroke: var(--gray-900); }
.en-soilmap-gov.is-dim { opacity: .38; }

.en-soilmap-gov-label {
    font-size: var(--en-fs-map); font-weight: var(--en-fw-bold); fill: var(--gray-900); paint-order: stroke;
    stroke: var(--en-white); stroke-width: 5px; stroke-linejoin: round;
}

.en-soilmap-credit { font-size: var(--en-fs-xs); color: var(--gray-500); margin-top: 6px; text-align: center; }

.en-soilmap-card {
    background: var(--en-white); border: 1px solid var(--gray-300); border-radius: 10px;
    padding: 10px 12px; margin-bottom: 12px;
}

.en-soilmap-h {
    font-weight: var(--en-fw-bold); color: var(--info-900); border-bottom: 1px solid var(--gray-200);
    padding-bottom: 5px; margin-bottom: 8px;
}
.en-soilmap-h2 { font-weight: var(--en-fw-bold); color: var(--gray-600); margin: 8px 0 4px; font-size: var(--en-fs-xs); }

.en-soilmap-legend { display: flex; align-items: center; gap: 7px; padding: 3px 0; font-size: var(--en-fs-sm); }
.en-soilmap-legend i { width: 16px; height: 12px; border: 1px solid var(--gray-600); border-radius: 3px; flex: 0 0 auto; }
/* حرفُ «ج» بحدّ 12px (كان 9px): سطرُه بارتفاع الخط وحده، ورأسُه أعلى من ذيله فيُرفع السطرُ ٣ بكسل (حشوٌ سفلي مع توسيط
   المحتوى) — الحبرُ في وسط الدائرة تمامًا (٣–١٣ من ١٦)، وكان ذيلُه يخرج منها ٢ بكسل أبيضَ على أبيض. مقيس بالبكسل. */
.en-soilmap-legend i.en-soilmap-dot {
    width: 16px; height: 16px; border-radius: 50%; background: var(--gray-900); color: var(--en-white);
    font-style: normal; font-size: var(--en-fs-xs); font-weight: var(--en-fw-bold); display: grid; place-items: center;
    line-height: 1; padding-bottom: 6px; box-sizing: border-box; place-content: center;
}
/* لونُ المنطقة يُحسب في القالب: متغيّرٌ على العنصر */
.en-soilmap-swatch { background: var(--en-soilmap-swatch); }
.en-soilmap-swatch-solid { background: var(--gray-400); }

.en-soilmap-legend i.en-soilmap-h-thin {
    background: var(--gray-400);
    background-image: repeating-linear-gradient(45deg, color-mix(in srgb, var(--en-white) 65%, transparent) 0 2px, transparent 2px 6px);
}
.en-soilmap-legend i.en-soilmap-h-none {
    background: var(--gray-400);
    background-image: repeating-linear-gradient(45deg, color-mix(in srgb, var(--en-white) 85%, transparent) 0 3px, transparent 3px 5px);
}

.en-soilmap-tag { font-size: var(--en-fs-xs); padding: 1px 6px; border-radius: 10px; font-weight: var(--en-fw-bold); }
.en-soilmap-tag.is-warn { background: var(--warning-100); color: var(--warning-800); border: 1px solid var(--warning-600); }

.en-soilmap-kv {
    display: flex; justify-content: space-between; gap: 8px; padding: 4px 0;
    border-bottom: 1px dotted var(--gray-200); font-size: var(--en-fs-sm);
}
.en-soilmap-kv:last-child { border-bottom: 0; }
.en-soilmap-kv span { color: var(--gray-500); }
.en-soilmap-kv b { text-align: end; color: var(--gray-900); }

.en-soilmap-note {
    margin-top: 8px; font-size: var(--en-fs-xs); color: var(--gray-600); background: var(--gray-50);
    border-inline-start: 3px solid var(--gray-400); padding: 6px 8px; border-radius: 4px; line-height: 1.7;
}

.en-soilmap-empty { font-size: var(--en-fs-xs); color: var(--gray-500); padding: 6px 0; }
.en-soilmap-split { display: flex; justify-content: space-between; gap: 6px; font-size: var(--en-fs-xs); padding: 2px 0; }
.en-soilmap-split b { color: var(--gray-900); }
.en-soilmap-split span { color: var(--gray-500); }

/* ===== معرض الصور (معاينة ملفات الأوراق) ===== */
.en-lb {
    position: fixed; inset: 0; z-index: 99999; background: color-mix(in srgb, var(--gray-900) 93%, transparent);
    display: flex; flex-direction: column;
}
.en-lb[hidden] { display: none; }
.en-lb-bar {
    display: flex; align-items: center; gap: 6px; padding: 8px 12px;
    background: var(--gray-800); color: var(--gray-200); flex: 0 0 auto;
}
.en-lb-bar button {
    min-width: 2rem; height: 2rem; padding: 0 .5rem; cursor: pointer;
    border: 1px solid var(--gray-600); background: var(--gray-700); color: var(--gray-200);
    border-radius: 6px; font-size: var(--en-fs-lg); line-height: 1;
}
.en-lb-bar button:hover { background: var(--gray-600); }
.en-lb-zoom { font-size: var(--en-fs-sm); min-width: 3.2rem; text-align: center; color: var(--gray-300); }
.en-lb-name {
    flex: 1 1 auto; font-size: var(--en-fs-sm); color: var(--gray-400); overflow: hidden;
    white-space: nowrap; text-overflow: ellipsis; padding: 0 .5rem;
}
.en-lb-x { background: var(--danger-700) !important; border-color: var(--danger-600) !important; }
.en-lb-stage {
    flex: 1 1 auto; overflow: hidden; display: flex; align-items: center;
    justify-content: center; cursor: grab;
}
.en-lb-stage.is-drag { cursor: grabbing; }
.en-lb-stage img {
    max-width: none; max-height: none; transform-origin: center center;
    user-select: none; -webkit-user-drag: none;
}

/* ===== ترتيب القوائم ===== */
.en-menu-group { border: 1px solid var(--gray-200); border-radius: .75rem; background: var(--en-white); margin-bottom: 1rem; overflow: hidden; }
.en-menu-head { display: flex; align-items: center; gap: .6rem; padding: .7rem 1rem; background: var(--gray-50); border-bottom: 1px solid var(--gray-200); font-weight: var(--en-fw-bold); font-size: var(--en-fs-lg); }
.en-menu-count { font-weight: var(--en-fw-normal); font-size: var(--en-fs-sm); color: var(--gray-500); }
.en-menu-row { display: grid; grid-template-columns: 4.2rem 1fr 14rem 2.6rem; align-items: center; gap: .6rem; padding: .45rem 1rem; border-bottom: 1px dashed var(--gray-200); }
.en-menu-row:last-child { border-bottom: 0; }
.en-menu-row.en-menu-hidden { opacity: .55; }
.en-menu-arrows { display: inline-flex; gap: .15rem; }
.en-menu-btn { width: 1.9rem; height: 1.9rem; display: inline-flex; align-items: center; justify-content: center; border-radius: .45rem; border: 1px solid var(--gray-300); background: var(--en-white); cursor: pointer; color: var(--gray-700); }
.en-menu-btn:hover { background: var(--primary-50); border-color: var(--primary-400); color: var(--primary-600); }
.en-menu-btn[disabled] { opacity: .3; cursor: default; pointer-events: none; }
.en-menu-label { display: flex; align-items: center; min-width: 0; }
.en-menu-name { width: 100%; border: 1px solid transparent; background: transparent; padding: .3rem .5rem; border-radius: .4rem; font-size: var(--en-fs-md); }
.en-menu-name:hover { border-color: var(--gray-300); }
.en-menu-name:focus { border-color: var(--primary-500); outline: none; background: var(--en-white); }
.en-menu-select { width: 100%; border: 1px solid var(--gray-300); border-radius: .4rem; padding: .3rem .5rem; font-size: var(--en-fs-base); background: var(--en-white); }
.en-menu-default { font-size: var(--en-fs-xs); color: var(--gray-400); margin-inline-start: .5rem; }
.en-menu-empty { padding: .8rem 1rem; color: var(--gray-500); font-size: var(--en-fs-base); }
.en-menu-wrap { max-width: 980px; }

/* ===== مؤشّرا القراءة الخلفية (الموافقة التخطيطية والبطاقات) ===== */
.en-poll { display: flex; align-items: center; gap: 8px; font-size: var(--en-fs-base); color: var(--gray-500); padding: 2px 0; }
/* اسمُ الحركة مسبوقٌ: لو بقي spin في السمة لأعاد تعريف دوران فيلامنت على كل الشاشات */
.en-poll-spinner { width: 15px; height: 15px; animation: en-poll-spin 1.2s linear infinite; }
@keyframes en-poll-spin { to { transform: rotate(360deg); } }

/* ===== الدفع من المحافظ ===== */
/* نسبةُ الاستهلاك تُحسب في القالب: متغيّرٌ على العنصر */
.en-wp-fill { width: var(--en-wp-fill); }

/* ===== ما كان style في PHP ===== */
/* تاريخٌ باتجاه LTR (أرقامُه لا تنقلب) بمحاذاة بداية السطر العربي — day() وdateTime12() وسجلات اليوم */
.en-date-cell { text-align: right; }
/* اسمُ المالك المقروء من البطاقة: أكبر كي تُراجَع حروفُه حرفًا حرفًا */
.en-card-name-input { font-size: var(--en-fs-xl); }
/* لوحاتُ ما تحت الشاشة في «شاشات الأدوار»: التحكمات، والأزرار، وتبويبات الوثيقة */
.en-role-panel { margin-inline-start: 1.9rem; margin-bottom: .5rem; padding: .5rem .75rem; border-radius: .375rem; }
.en-role-panel-controls { border-inline-start: 2px solid color-mix(in srgb, var(--primary-500) 40%, transparent); background: color-mix(in srgb, var(--primary-500) 5%, transparent); }
.en-role-panel-buttons { border-inline-start: 2px solid color-mix(in srgb, var(--warning-600) 45%, transparent); background: color-mix(in srgb, var(--warning-600) 6%, transparent); }
.en-role-panel-tabs { border-inline-start: 2px solid color-mix(in srgb, var(--en-indigo-500) 45%, transparent); background: color-mix(in srgb, var(--en-indigo-500) 6%, transparent); }

/* =====================================================================
   شاشة الواتساب الجديدة (.waw) — شكل واتساب ويب (بطلب المستخدم: «زي الشاشة دي بالظبط»)
   الألوان والمقاسات رموزٌ هنا وحدها، والقواعد تحتها var() فقط. الصفحة عربية (RTL):
   القائمة يمين، والرسائل الصادرة يسار والواردة يمين كواتساب بالعربي (قرار المالك).
   قواعد .en-wa-* القديمة فوق تبقى كما هي: الشاشة القديمة ما زالت عند بقية الفريق.
   ===================================================================== */
:root {
    --waw-panel: #fff;
    --waw-header: #f0f2f5;
    --waw-wallpaper: #efeae2;
    --waw-intro: #f0f2f5;
    --waw-drawer-bg: #f0f2f5;
    --waw-out: #d9fdd3;
    --waw-in: #fff;
    --waw-text: #111b21;
    --waw-muted: #667781;
    --waw-icon: #54656f;
    --waw-accent: #00a884;
    --waw-unread: #25d366;
    --waw-on-accent: #fff;
    --waw-on-unread: #fff;
    --waw-badge-muted: #8696a0;
    --waw-tick: #8696a0;
    --waw-tick-read: #53bdeb;
    --waw-row-hover: #f5f6f6;
    --waw-row-active: #f0f2f5;
    --waw-line: #e9edef;
    --waw-search: #f0f2f5;
    --waw-input: #fff;
    --waw-chip: #f0f2f5;
    --waw-chip-text: #54656f;
    --waw-chip-on: #d9fdd3;
    --waw-chip-on-text: #008069;
    --waw-menu: #fff;
    --waw-menu-hover: #f5f6f6;
    --waw-hover: rgba(11, 20, 26, .07);
    --waw-danger: #ea0038;
    --waw-hit: #ffd279;
    --waw-hit-text: #111b21;
    --waw-hit-cur: #f5a623;
    --waw-overlay: rgba(11, 20, 26, .35);
    --waw-shadow: rgba(11, 20, 26, .13);
    --waw-status-new: #f15c6d;
    --waw-status-open: #f5a623;
    --waw-status-done: #25d366;
    --waw-link: #027eb5;
    --waw-pill: #fff;
    --waw-strip: rgba(255, 255, 255, .55);
    --waw-note: #ffeecd;
    --waw-note-text: #54656f;
    --waw-banner: #fff3c4;
    --waw-banner-text: #3b2f06;
    --waw-media-meta: #fff;
    --waw-media-scrim: rgba(11, 20, 26, .45);
    --waw-video-bg: #0b141a;
    --waw-ph: rgba(11, 20, 26, .06);
    --waw-drop: rgba(240, 242, 245, .92);
    --waw-pv-bg: #e9edef;
    --waw-toast: #3b4a54;
    --waw-toast-text: #fff;
    --waw-av-bg: #dfe5e7;
    --waw-av-text: #fff;
    --waw-au-track: rgba(11, 20, 26, .18);
    --waw-doc-bg: rgba(11, 20, 26, .05);
    --waw-doc-hover: rgba(11, 20, 26, .09);
    --waw-doc-pdf: #e5252a;
    --waw-doc-word: #2b579a;
    --waw-doc-excel: #217346;
    --waw-doc-ppt: #d24726;
    --waw-doc-zip: #8b6d4a;
    --waw-doc-other: #8696a0;
    --waw-attach-doc: #7f66ff;
    --waw-attach-media: #007bfc;
    --waw-attach-cam: #ff2e74;
    --waw-scrollbar: rgba(11, 20, 26, .2);
    /* الاقتباس داخل الفقاعة وفوق خانة الكتابة، ووميض الرسالة الأصلية عند الضغط عليه */
    --waw-quote-bg: rgba(11, 20, 26, .05);
    --waw-quote-hover: rgba(11, 20, 26, .09);
    --waw-flash: rgba(0, 168, 132, .16);
    /* أسماء أعضاء المجموعة وخلفيات الأحرف الأولى — عشرة ألوان ثابتة لكل اسم */
    --waw-author-1: #1f7aec;
    --waw-author-2: #c2185b;
    --waw-author-3: #00897b;
    --waw-author-4: #7b1fa2;
    --waw-author-5: #e65100;
    --waw-author-6: #2e7d32;
    --waw-author-7: #8d6e63;
    --waw-author-8: #0097a7;
    --waw-author-9: #d84315;
    --waw-author-10: #5c6bc0;
    /* لون كل موظف لنقطة المحادثة (من يمسكها) */
    --waw-user-1: #e53935;
    --waw-user-2: #1e88e5;
    --waw-user-3: #43a047;
    --waw-user-4: #fb8c00;
    --waw-user-5: #8e24aa;
    --waw-user-6: #00acc1;
    --waw-user-7: #d81b60;
    --waw-user-8: #6d4c41;
    --waw-user-9: #3949ab;
    --waw-user-10: #7cb342;
    --waw-user-11: #f4511e;
    --waw-user-12: #00897b;
    --waw-user-13: #5e35b1;
    --waw-user-14: #b8860b;
    --waw-user-15: #546e7a;
    --waw-user-16: #c2185b;
    --waw-fs-msg: .8875rem;
    --waw-fs-name: 1.0625rem;
    --waw-fs-list: .9375rem;
    --waw-fs-meta: var(--en-fs-xs);
    --waw-fs-small: .8125rem;
    --waw-fs-jumbo: 2.5rem;
    --waw-fs-title: 1.375rem;
    --waw-fs-xl: 1.25rem;
    --waw-fs-hero: 4rem;
    --waw-fs-emoji: 1.5rem;
    --waw-fw-normal: 400;
    --waw-fw-name: 500;
    --waw-fw-semibold: var(--en-fw-semibold);
    --waw-fw-bold: var(--en-fw-bold);
    --waw-row-h: 72px;
    --waw-avatar: 49px;
    --waw-header-h: 59px;
    --waw-radius: 7.5px;
}

/* إطار الصفحة: بلا عنوان ولا حشو — إطارٌ واحد متصل بعرض الشاشة وارتفاعها */
.fi-main:has(.waw) { padding: 0 !important; }
.fi-page:has(.waw) .fi-page-header-main-ctn { padding: 0 !important; row-gap: 0 !important; }
.fi-page:has(.waw) .fi-page-main { gap: 0 !important; }
.fi-page:has(.waw) .fi-page-content { row-gap: 0 !important; }
.fi-page:has(.waw) .fi-header { display: none !important; }
.fi-body:has(.waw) { overflow: hidden; }

.waw {
    position: relative;
    display: grid;
    grid-template-columns: clamp(340px, 30%, 420px) minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    height: calc(100vh - var(--waw-top, 4rem));
    height: calc(var(--waw-vh, 100dvh) - var(--waw-top, 4rem));
    min-height: 24rem;
    overflow: hidden;
    background: var(--waw-panel);
    color: var(--waw-text);
    font-size: var(--waw-fs-list);
    line-height: 1.4;
    border-top: 1px solid var(--waw-line);
}
:where(.waw) button { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; }
:where(.waw) h2, :where(.waw) h3 { margin: 0; }
.waw-hidden { display: none !important; }
.waw-svg { display: block; flex: none; width: 24px; height: 24px; }
.waw-svg.is-xs { width: 16px; height: 16px; }
.waw-svg.is-sm { width: 18px; height: 18px; }
.waw-svg.is-tick { width: 18px; height: 12px; }
.waw-list, .waw-scroll, .waw-drawer-body, .waw-menu { scrollbar-width: thin; scrollbar-color: var(--waw-scrollbar) transparent; }

/* لافتة الربط (B6): حيّة وتختفي وحدها حين تعود الخدمة */
.waw-banner {
    grid-column: 1 / -1;
    display: flex; align-items: center; gap: 10px;
    padding: 9px 16px;
    background: var(--waw-banner); color: var(--waw-banner-text);
    font-size: var(--waw-fs-small);
}
.waw-banner-ico { display: inline-flex; }
.waw-banner-ico .waw-svg { width: 20px; height: 20px; }
.waw-banner-txt { flex: 1; min-width: 0; }
.waw-banner-link { font-weight: var(--waw-fw-bold); color: inherit; text-decoration: underline; white-space: nowrap; }

/* ----- الترويسات (٥٩ بكسل) والأزرار الدائرية ----- */
.waw-bar {
    display: flex; align-items: center; gap: 8px; flex: none; min-width: 0;
    height: var(--waw-header-h); padding-inline: 16px 10px;
    background: var(--waw-header);
}
.waw-bar-actions { display: flex; align-items: center; gap: 2px; margin-inline-start: auto; flex: none; }
.waw-ibtn {
    flex: none; width: 40px; height: 40px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--waw-icon); transition: background-color .15s ease;
}
.waw-ibtn:hover, .waw-ibtn.is-on { background: var(--waw-hover); }
.waw-ibtn:disabled { opacity: .4; cursor: default; background: none; }
.waw-ibtn.is-sm { width: 32px; height: 32px; }
.waw-ibtn .waw-svg { width: 22px; height: 22px; }
.waw-ibtn.is-sm .waw-svg { width: 18px; height: 18px; }
.waw-title { font-size: var(--waw-fs-title); font-weight: var(--waw-fw-bold); color: var(--waw-text); white-space: nowrap; }
.waw-title-row { display: flex; align-items: center; gap: 6px; min-width: 0; }
.waw-probe {
    padding: 2px 9px; border-radius: 999px; white-space: nowrap;
    background: var(--waw-status-open); color: var(--waw-on-accent);
    font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-bold);
}

/* ----- القوائم المنبثقة ----- */
.waw-menu-wrap { position: relative; flex: none; }
.waw-menu {
    position: absolute; top: calc(100% + 4px); inset-inline-end: 0; z-index: 40;
    min-width: 210px; max-height: 70vh; overflow-y: auto; padding: 8px 0;
    background: var(--waw-menu); border-radius: 6px;
    box-shadow: 0 2px 5px var(--waw-shadow), 0 4px 14px var(--waw-shadow);
}
.waw-menu.is-up { top: auto; bottom: calc(100% + 8px); inset-inline-end: auto; inset-inline-start: 0; }
.waw-menu.waw-pop { position: fixed; inset-inline-start: auto; inset-inline-end: auto; top: var(--y, 0); left: var(--x, 0); z-index: 60; }
.waw-menu-item {
    display: flex; align-items: center; gap: 12px; width: 100%;
    padding: 10px 20px; text-align: start; white-space: nowrap;
    font-size: var(--waw-fs-list); color: var(--waw-text);
}
.waw-menu-item:hover { background: var(--waw-menu-hover); }
.waw-menu-item.is-on { color: var(--waw-accent); font-weight: var(--waw-fw-semibold); }
.waw-menu-item b { margin-inline-start: auto; font-size: var(--waw-fs-meta); color: var(--waw-muted); font-weight: var(--waw-fw-bold); }
.waw-menu-sep { height: 1px; margin: 6px 0; background: var(--waw-line); }
.waw-menu-ico {
    width: 34px; height: 34px; border-radius: 50%; flex: none;
    display: inline-flex; align-items: center; justify-content: center; color: var(--waw-on-accent);
}
.waw-menu-ico .waw-svg { width: 20px; height: 20px; }
.waw-menu-ico.is-doc { background: var(--waw-attach-doc); }
.waw-menu-ico.is-media { background: var(--waw-attach-media); }
.waw-menu-ico.is-cam { background: var(--waw-attach-cam); }

/* ===================== قائمة الدردشات ===================== */
.waw-side {
    grid-row: 2; grid-column: 1; min-width: 0; min-height: 0;
    display: flex; flex-direction: column;
    background: var(--waw-panel); border-inline-end: 1px solid var(--waw-line);
}
.waw-side-head { background: var(--waw-panel); padding-inline: 20px 10px; }

.waw-search { flex: none; padding: 4px 12px 8px; }
.waw-pill {
    display: flex; align-items: center; gap: 10px; height: 38px; padding-inline: 12px 8px;
    border-radius: 19px; background: var(--waw-search); border: 2px solid transparent;
    transition: border-color .15s ease, background-color .15s ease;
}
.waw-pill.is-on { background: var(--waw-panel); border-color: var(--waw-accent); }
.waw-pill-ico { display: inline-flex; color: var(--waw-muted); }
.waw-pill.is-on .waw-pill-ico { color: var(--waw-accent); }
.waw-pill-ico .waw-svg { width: 20px; height: 20px; }
.waw-pill-input {
    flex: 1; min-width: 0; height: 100%; padding: 0; border: 0; outline: 0; box-shadow: none;
    background: transparent; color: var(--waw-text); font-size: var(--waw-fs-list);
}
.waw-pill-input:focus { outline: 0; box-shadow: none; }
.waw-pill-input::placeholder { color: var(--waw-muted); }
.waw-pill-x { display: inline-flex; color: var(--waw-muted); }
.waw-pill-x .waw-svg { width: 18px; height: 18px; }

.waw-chips { flex: none; display: flex; gap: 8px; padding: 0 12px 10px; overflow-x: auto; scrollbar-width: none; }
.waw-chips::-webkit-scrollbar { display: none; }
.waw-chip {
    flex: none; display: inline-flex; align-items: center; gap: 6px;
    height: 32px; padding: 0 13px; border-radius: 16px; white-space: nowrap;
    background: var(--waw-chip); color: var(--waw-chip-text); font-size: var(--waw-fs-small);
    transition: background-color .15s ease, color .15s ease;
}
.waw-chip:hover { background: var(--waw-row-active); }
.waw-chip.is-on { background: var(--waw-chip-on); color: var(--waw-chip-on-text); font-weight: var(--waw-fw-semibold); }
.waw-chip b { font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-bold); }

.waw-list { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; }
.waw-sec { padding: 14px 20px 8px; color: var(--waw-accent); font-size: var(--waw-fs-small); font-weight: var(--waw-fw-semibold); }
.waw-list-state {
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    padding: 24px 16px; color: var(--waw-muted); font-size: var(--waw-fs-small); text-align: center;
}
.waw-link-btn { color: var(--waw-accent); font-size: var(--waw-fs-small); font-weight: var(--waw-fw-semibold); }
.waw-link-btn:hover { text-decoration: underline; }

.waw-archived {
    display: flex; align-items: center; gap: 13px; height: 50px; padding-inline: 26px 20px;
    cursor: pointer; color: var(--waw-text); outline: 0;
}
.waw-archived:hover { background: var(--waw-row-hover); }
.waw-archived-ico { display: inline-flex; color: var(--waw-accent); }
.waw-archived-ico .waw-svg { width: 20px; height: 20px; }
.waw-archived-l { flex: 1; font-size: var(--waw-fs-list); font-weight: var(--waw-fw-name); }
.waw-archived-n { font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-bold); color: var(--waw-accent); }

/* الصف ٧٢ بكسل: صورة ٤٩، اسم ووقت، ثم المعاينة والعلامات وطبقة المكتب المختصرة */
.waw-row {
    position: relative; display: flex; align-items: center; gap: 13px;
    height: var(--waw-row-h); padding-inline: 13px 15px; cursor: pointer; outline: 0;
}
.waw-row:hover { background: var(--waw-row-hover); }
.waw-row.is-active { background: var(--waw-row-active); }
.waw-row-body {
    flex: 1; min-width: 0; height: 100%;
    display: flex; flex-direction: column; justify-content: center; gap: 3px;
    border-bottom: 1px solid var(--waw-line);
}
.waw-row:hover .waw-row-body, .waw-row.is-active .waw-row-body { border-bottom-color: transparent; }
.waw-row-top, .waw-row-bottom { display: flex; align-items: center; gap: 6px; min-width: 0; }
.waw-row-name {
    flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: var(--waw-fs-name); font-weight: var(--waw-fw-normal); color: var(--waw-text);
}
.waw-row.is-unread .waw-row-name { font-weight: var(--waw-fw-bold); }
/* رقمُ من سُمّي بدفتر الموبايل عبر رقمه أو من النظام أو باسم واتسابه بجوار اسمه (rowNumber): أخفتُ منه، ولا يثقل مع غير المقروء */
.waw-row-num { font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-normal); color: var(--waw-muted); }
.waw-row-time { flex: none; font-size: var(--waw-fs-meta); color: var(--waw-muted); }
.waw-row.is-unread .waw-row-time { color: var(--waw-unread); font-weight: var(--waw-fw-semibold); }
.waw-row-last {
    flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: var(--waw-fs-small); color: var(--waw-muted);
}
.waw-row.is-unread .waw-row-last { color: var(--waw-text); }
.waw-row-draft { color: var(--waw-accent); font-weight: var(--waw-fw-semibold); }
.waw-row-meta { flex: none; display: inline-flex; align-items: center; gap: 5px; color: var(--waw-muted); }
.waw-row-who {
    max-width: 5.5em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    padding: 0 6px; border-radius: 8px; line-height: 18px;
    background: var(--waw-chip-on); color: var(--waw-chip-on-text); font-size: var(--waw-fs-meta);
}
.waw-row-eye { display: inline-flex; align-items: center; gap: 2px; color: var(--waw-status-open); font-size: var(--waw-fs-meta); }
.waw-row-eye b { font-weight: var(--waw-fw-bold); }
.waw-row-ico { display: inline-flex; color: var(--waw-muted); }
.waw-badge {
    min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--waw-unread); color: var(--waw-on-unread);
    font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-bold);
}
.waw-badge.is-muted { background: var(--waw-badge-muted); }
/* «غير مقروءة» اليدوية (unreadCount -1 عند واتساب): الشارة نفسها دائرةً بلا عدد */
.waw-badge.is-dot { padding: 0; }
.waw-row-chev { display: inline-flex; width: 0; overflow: hidden; color: var(--waw-muted); transition: width .12s ease; }
.waw-row-chev .waw-svg { width: 20px; height: 20px; }
.waw-row:hover .waw-row-chev, .waw-row.is-menu .waw-row-chev, .waw-row:focus-within .waw-row-chev { width: 20px; }
@media (hover: none) { .waw-row-chev { width: 20px; } }
.waw-dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--waw-status-open); }
.waw-dot.is-NEW { background: var(--waw-status-new); }
.waw-dot.is-DONE { background: var(--waw-status-done); }
/* نقطة القائمة بلون الموظف الممسك بالمحادثة (بطلب المالك: لون لكل موظف) */
.waw-dot.waw-u-1 { background: var(--waw-user-1); }
.waw-dot.waw-u-2 { background: var(--waw-user-2); }
.waw-dot.waw-u-3 { background: var(--waw-user-3); }
.waw-dot.waw-u-4 { background: var(--waw-user-4); }
.waw-dot.waw-u-5 { background: var(--waw-user-5); }
.waw-dot.waw-u-6 { background: var(--waw-user-6); }
.waw-dot.waw-u-7 { background: var(--waw-user-7); }
.waw-dot.waw-u-8 { background: var(--waw-user-8); }
.waw-dot.waw-u-9 { background: var(--waw-user-9); }
.waw-dot.waw-u-10 { background: var(--waw-user-10); }
.waw-dot.waw-u-11 { background: var(--waw-user-11); }
.waw-dot.waw-u-12 { background: var(--waw-user-12); }
.waw-dot.waw-u-13 { background: var(--waw-user-13); }
.waw-dot.waw-u-14 { background: var(--waw-user-14); }
.waw-dot.waw-u-15 { background: var(--waw-user-15); }
.waw-dot.waw-u-16 { background: var(--waw-user-16); }
.waw-row.is-contact .waw-row-last { unicode-bidi: isolate; }

/* الصور الشخصية: الصورة أو الأحرف الأولى بلون ثابت للاسم */
.waw-av {
    position: relative; flex: none; width: var(--waw-avatar); height: var(--waw-avatar);
    border-radius: 50%; overflow: hidden; user-select: none;
    display: flex; align-items: center; justify-content: center;
    background: var(--waw-av-bg); color: var(--waw-av-text);
    font-size: var(--waw-fs-name); font-weight: var(--waw-fw-semibold);
}
.waw-av img { display: block; width: 100%; height: 100%; object-fit: cover; }
.waw-av-ico { display: flex; width: 56%; height: 56%; }
.waw-av-ico .waw-svg { width: 100%; height: 100%; }
.waw-av.is-sm { width: 40px; height: 40px; font-size: var(--waw-fs-list); }
.waw-av.is-xl { width: 200px; height: 200px; font-size: var(--waw-fs-hero); }
.waw-av.is-icon { background: var(--waw-accent); color: var(--waw-on-accent); }
.waw-av.is-icon .waw-svg { width: 24px; height: 24px; }
.waw-av-c1 { background: var(--waw-author-1); }
.waw-av-c2 { background: var(--waw-author-2); }
.waw-av-c3 { background: var(--waw-author-3); }
.waw-av-c4 { background: var(--waw-author-4); }
.waw-av-c5 { background: var(--waw-author-5); }
.waw-av-c6 { background: var(--waw-author-6); }
.waw-av-c7 { background: var(--waw-author-7); }
.waw-av-c8 { background: var(--waw-author-8); }
.waw-av-c9 { background: var(--waw-author-9); }
.waw-av-c10 { background: var(--waw-author-10); }

/* ===================== لوحة المحادثة ===================== */
.waw-main {
    grid-row: 2; grid-column: 2; position: relative; min-width: 0; min-height: 0;
    display: flex; flex-direction: column; overflow: hidden;
    background: var(--waw-wallpaper);
}
.waw-intro {
    flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
    background: var(--waw-intro); color: var(--waw-muted); border-bottom: 6px solid var(--waw-accent);
}
.waw-svg.is-hero { width: 88px; height: 88px; color: var(--waw-accent); }
.waw-intro-title { font-size: var(--waw-fs-title); font-weight: var(--waw-fw-normal); color: var(--waw-text); }
.waw-intro-sub { font-size: var(--waw-fs-small); }
.waw-chat { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; }

.waw-chat-head { position: relative; z-index: 3; padding-inline: 16px 10px; gap: 4px; }
.waw-back { display: none; }
.waw-head-id { flex: 1; min-width: 0; height: 100%; display: flex; align-items: center; gap: 15px; cursor: pointer; outline: 0; }
.waw-head-txt { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.waw-head-name {
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: var(--waw-fs-list); font-weight: var(--waw-fw-name); color: var(--waw-text);
}
.waw-head-sub { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--waw-fs-small); color: var(--waw-muted); }
.waw-head-office { margin-inline-start: 4px; color: var(--waw-status-open); font-weight: var(--waw-fw-semibold); }

.waw-find {
    flex: none; display: flex; align-items: center; gap: 4px; padding: 6px 12px;
    background: var(--waw-header); border-top: 1px solid var(--waw-line);
}
.waw-find-input {
    flex: 1; min-width: 0; height: 34px; padding: 0 12px; border: 0; border-radius: 8px; outline: 0; box-shadow: none;
    background: var(--waw-input); color: var(--waw-text); font-size: var(--waw-fs-small);
}
.waw-find-input:focus { outline: 0; box-shadow: none; }
.waw-find-n { min-width: 3.5em; text-align: center; direction: ltr; unicode-bidi: isolate; font-size: var(--waw-fs-meta); color: var(--waw-muted); }

.waw-body { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; container-type: inline-size; }
/* الهامش الجانبي بوحدة عرض المحادثة (cqi) لا بالنسبة المئوية: فاصل «غير مقروءة» يمتدّ بالقيمة نفسها
   سالبةً فيملأ عرض اللوحة كواتساب (المتصفح القديم يبقى على النسبة وشريطٍ داخل الهامش) */
.waw-scroll {
    position: relative; flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain;
    padding: 6px clamp(12px, 6%, 63px) 14px;
    padding-inline: clamp(12px, 6cqi, 63px);
}
.waw-day { position: relative; }
/* فاصل اليوم ثابتٌ أعلى المحادثة أثناء التمرير داخل يومه */
.waw-day-sep { position: sticky; top: 8px; z-index: 2; display: flex; justify-content: center; margin: 10px 0 4px; pointer-events: none; }
.waw-day-sep span, .waw-unread span, .waw-oldest span {
    pointer-events: auto; padding: 5px 12px 6px; border-radius: var(--waw-radius);
    background: var(--waw-pill); color: var(--waw-muted); font-size: var(--waw-fs-small);
    box-shadow: 0 1px .5px var(--waw-shadow);
}
.waw-unread { margin: 12px 0 6px; margin-inline: calc(-1 * clamp(12px, 6cqi, 63px)); padding: 5px 0; text-align: center; background: var(--waw-strip); }
.waw-oldest { display: flex; justify-content: center; margin: 8px 0; }
.waw-oldest span { background: var(--waw-note); color: var(--waw-note-text); }
.waw-older, .waw-state {
    display: flex; flex-direction: column; align-items: center; gap: 10px;
    padding: 16px; color: var(--waw-muted); font-size: var(--waw-fs-small); text-align: center;
}
.waw-state > span:not(.waw-spin) { padding: 6px 12px; border-radius: var(--waw-radius); background: var(--waw-pill); }
.waw-state.is-err > span:not(.waw-spin) { color: var(--waw-danger); }
.waw-spin {
    display: inline-block; width: 22px; height: 22px; border-radius: 50%;
    border: 2.5px solid var(--waw-line); border-top-color: var(--waw-accent);
    animation: waw-spin .8s linear infinite;
}
@keyframes waw-spin { to { transform: rotate(360deg); } }

/* ----- الفقاعات: ٢ بكسل داخل سلسلة المرسِل و١٢ بينها، والذيل على أولها فقط ----- */
.waw-item { display: flex; flex-direction: column; padding-top: 2px; }
.waw-item.is-first { padding-top: 12px; }
.waw-msg { display: flex; }
/* الصفحة RTL: البداية يمين — الوارد يمين والصادر يسار كواتساب بالعربي */
.waw-item.is-in .waw-msg { justify-content: flex-start; }
.waw-item.is-out .waw-msg { justify-content: flex-end; }
.waw-bubble {
    position: relative; min-width: 0; max-width: 65%;
    padding: 6px 9px 8px; border-radius: var(--waw-radius);
    background: var(--waw-in); color: var(--waw-text);
    box-shadow: 0 1px .5px var(--waw-shadow);
    font-size: var(--waw-fs-msg); line-height: 1.45; overflow-wrap: anywhere;
}
.waw-item.is-out .waw-bubble { background: var(--waw-out); }
.waw-item.is-in .waw-bubble.has-tail { border-start-start-radius: 0; }
.waw-item.is-out .waw-bubble.has-tail { border-start-end-radius: 0; }
.waw-bubble.has-tail::before { content: ''; position: absolute; top: 0; width: 8px; height: 13px; background: inherit; }
/* الذيل بالاتجاه الفعلي: الصفحة عربية دائمًا */
.waw-item.is-in .waw-bubble.has-tail::before { right: -8px; clip-path: polygon(0 0, 100% 0, 0 100%); }
.waw-item.is-out .waw-bubble.has-tail::before { left: -8px; clip-path: polygon(0 0, 100% 0, 100% 100%); }
.waw-item.is-hit .waw-bubble { box-shadow: 0 0 0 2px var(--waw-hit-cur); }

.waw-author { margin-bottom: 2px; font-size: var(--waw-fs-small); font-weight: var(--waw-fw-name); }
.waw-au-1 { color: var(--waw-author-1); }
.waw-au-2 { color: var(--waw-author-2); }
.waw-au-3 { color: var(--waw-author-3); }
.waw-au-4 { color: var(--waw-author-4); }
.waw-au-5 { color: var(--waw-author-5); }
.waw-au-6 { color: var(--waw-author-6); }
.waw-au-7 { color: var(--waw-author-7); }
.waw-au-8 { color: var(--waw-author-8); }
.waw-au-9 { color: var(--waw-author-9); }
.waw-au-10 { color: var(--waw-author-10); }

.waw-txt { white-space: pre-wrap; overflow-wrap: anywhere; }
.waw-txt.is-jumbo { font-size: var(--waw-fs-jumbo); line-height: 1.25; }
.waw-txt strong { font-weight: var(--waw-fw-bold); }
.waw-txt em { font-style: italic; }
.waw-txt .waw-hit { color: var(--waw-hit-text); }
.waw-more { margin-inline-start: 4px; color: var(--waw-link); font-size: var(--waw-fs-small); }
.waw-more:hover { text-decoration: underline; }
.waw-phtxt { font-style: italic; color: var(--waw-muted); }
/* فراغٌ خفيّ بعرض الوقت في آخر السطر الأخير: الوقت العائم في الركن لا يغطي الكلام */
.waw-spacer { display: inline-block; visibility: hidden; padding-inline-start: 12px; font-size: var(--waw-fs-meta); line-height: 1; white-space: nowrap; }
.waw-spacer-tick { display: inline-block; width: 21px; }

.waw-meta {
    position: absolute; bottom: 3px; inset-inline-end: 8px;
    display: inline-flex; align-items: center; gap: 3px; white-space: nowrap;
    font-size: var(--waw-fs-meta); line-height: 15px; color: var(--waw-muted);
}
.waw-bubble.is-ltr .waw-meta { inset-inline-end: auto; inset-inline-start: 8px; }
.waw-by { max-width: 9em; overflow: hidden; text-overflow: ellipsis; }
.waw-tick { display: inline-flex; color: var(--waw-tick); }
.waw-tick > span { display: inline-flex; }
.waw-tick.is-read { color: var(--waw-tick-read); }
.waw-tick.is-fail { color: var(--waw-danger); }
/* ملف وصوت ومعاينة: الوقت سطرٌ في آخر الفقاعة لا عائم */
.waw-bubble.is-flow .waw-meta { position: static; display: flex; justify-content: flex-end; margin-top: 3px; }
.waw-bubble.is-visual.is-flow .waw-meta { padding: 0 6px 3px; }
/* صورة أو فيديو بلا تعليق: الوقت فوق الصورة */
.waw-bubble.is-visual { padding: 3px; }
.waw-bubble.is-visual .waw-txt { padding: 5px 6px 4px; }
.waw-bubble.is-media .waw-meta {
    bottom: 7px; inset-inline-end: 9px; padding: 0 5px; border-radius: 4px;
    background: var(--waw-media-scrim); color: var(--waw-media-meta);
}
.waw-bubble.is-media .waw-tick:not(.is-read):not(.is-fail) { color: var(--waw-media-meta); }
/* الملصق بلا فقاعة */
.waw-bubble.is-sticker { background: transparent; box-shadow: none; padding: 0; }
.waw-bubble.is-sticker .waw-meta {
    width: max-content; margin-inline-start: auto; padding: 1px 6px; border-radius: 8px;
    background: var(--waw-pill);
}

.waw-fail { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 3px; font-size: var(--waw-fs-meta); color: var(--waw-danger); }
.waw-fail button { color: var(--waw-link); font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-semibold); }
.waw-fail button:hover { text-decoration: underline; }
/* ملفٌّ كبير في طريقه (بطلب المالك: «عايزه يبعت ملفات حجمها ٢ جيجا»): شريطُ الرفع ونصُّه وإلغاؤه — برموز الشاشة */
.waw-up { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 4px 12px; margin-top: 3px; font-size: var(--waw-fs-meta); color: var(--waw-muted); }
.waw-up-bar { position: relative; flex: 1 0 100%; height: 4px; border-radius: 2px; background: var(--waw-au-track); overflow: hidden; }
.waw-up-bar i { position: absolute; top: 0; bottom: 0; inset-inline-start: 0; width: var(--p, 0%); background: var(--waw-accent); transition: width .3s; }
.waw-up button { color: var(--waw-link); font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-semibold); }
.waw-up button:hover { text-decoration: underline; }
/* كاد ٢٠٠٧ في الإرسال اليدوي (WhatsAppCad): «بصيغته — ماتحوّلش ٢٠٠٧: …» بخلفية التنبيه، والباقي بلون .waw-up الباهت */
.waw-cad-warn { background: var(--waw-note); color: var(--waw-note-text); border-radius: 4px; padding: 0 6px; }

/* ----- الوسائط ----- */
.waw-media {
    position: relative; display: flex; align-items: center; justify-content: center;
    max-width: 330px; border-radius: 6px; overflow: hidden; background: var(--waw-ph);
}
.waw-media.is-wait { width: 200px; height: 200px; max-width: 100%; }
.waw-img { display: block; width: auto; height: auto; max-width: min(330px, 100%); max-height: 330px; object-fit: cover; cursor: zoom-in; }
.waw-media.is-sticker { width: 190px; height: 190px; background: transparent; }
.waw-media.is-sticker .waw-img { width: 190px; height: 190px; max-height: none; object-fit: contain; cursor: default; }
.waw-media-err { padding: 12px; font-size: var(--waw-fs-small); font-style: italic; color: var(--waw-muted); text-align: center; }
.waw-video { position: relative; width: 330px; max-width: 100%; border-radius: 6px; overflow: hidden; background: var(--waw-video-bg); }
.waw-video video { display: block; width: 100%; max-height: 360px; background: var(--waw-video-bg); }
.waw-video .waw-media-err { color: var(--waw-media-meta); }
.waw-play {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 56px; height: 56px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: var(--waw-media-scrim); color: var(--waw-media-meta);
}
.waw-play .waw-svg { width: 28px; height: 28px; }

.waw-audio { display: flex; align-items: center; gap: 10px; width: 300px; max-width: 100%; padding-top: 4px; }
.waw-av.is-au { width: 48px; height: 48px; overflow: visible; }
.waw-av.is-au img { border-radius: 50%; }
.waw-au-mic { position: absolute; bottom: -3px; inset-inline-end: -5px; display: flex; color: var(--waw-accent); }
.waw-au-ctl { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; }
.waw-au-play { flex: none; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; color: var(--waw-icon); }
.waw-au-play > span { display: inline-flex; }
.waw-au-play .waw-svg { width: 26px; height: 26px; }
.waw-au-track { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 7px; padding-top: 12px; }
.waw-au-bar { position: relative; height: 4px; border-radius: 2px; background: var(--waw-au-track); cursor: pointer; }
.waw-au-bar::before { content: ''; position: absolute; inset: -8px 0; }
.waw-au-bar i { position: absolute; top: 0; bottom: 0; inset-inline-start: 0; width: var(--p, 0%); border-radius: 2px; background: var(--waw-accent); }
.waw-au-bar i::after {
    content: ''; position: absolute; top: 50%; inset-inline-end: -6px; transform: translateY(-50%);
    width: 12px; height: 12px; border-radius: 50%; background: var(--waw-accent);
}
.waw-au-info { display: flex; align-items: center; justify-content: space-between; min-height: 16px; font-size: var(--waw-fs-meta); color: var(--waw-muted); }
.waw-au-rate { padding: 0 7px; border-radius: 9px; background: var(--waw-tick); color: var(--waw-on-accent); font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-bold); }
.waw-au-dl { display: inline-flex; align-items: center; gap: 8px; padding: 8px 4px; color: var(--waw-link); font-size: var(--waw-fs-small); text-decoration: none; }
.waw-au-dl .waw-svg { width: 20px; height: 20px; }
/* تنزيل الصوت والمشغّل يعمل (بطلب المالك: «امكانية تنزل التسجيلات الصوتية»): زرٌّ جنب الشريط،
   ومساحةُ لمسٍ ٤٤ بكسل حوله على الشاشة اللمسية بلا أن يكبر شكله */
.waw-au-get { position: relative; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; color: var(--waw-icon); text-decoration: none; }
.waw-au-get .waw-svg { width: 19px; height: 19px; }
.waw-au-get:hover { color: var(--waw-text); }
.waw-au-get::before { content: ''; position: absolute; inset: -9px; }

.waw-doc {
    display: flex; align-items: center; gap: 10px; width: 300px; max-width: 100%; padding: 10px;
    border-radius: 6px; background: var(--waw-doc-bg); color: var(--waw-text); text-decoration: none;
}
.waw-doc:hover { background: var(--waw-doc-hover); }
.waw-doc-ico {
    flex: none; width: 36px; height: 44px; padding-bottom: 5px; border-radius: 4px;
    display: flex; align-items: flex-end; justify-content: center;
    background: var(--waw-doc-other); color: var(--waw-on-accent);
    font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-bold);
}
.waw-doc-ico.is-pdf { background: var(--waw-doc-pdf); }
.waw-doc-ico.is-word { background: var(--waw-doc-word); }
.waw-doc-ico.is-excel { background: var(--waw-doc-excel); }
.waw-doc-ico.is-ppt { background: var(--waw-doc-ppt); }
.waw-doc-ico.is-zip { background: var(--waw-doc-zip); }
.waw-doc-ico.is-lg { width: 72px; height: 88px; padding-bottom: 10px; font-size: var(--waw-fs-small); }
.waw-doc-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.waw-doc-txt b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--waw-fs-small); font-weight: var(--waw-fw-name); }
.waw-doc-txt small { align-self: flex-start; direction: ltr; unicode-bidi: isolate; font-size: var(--waw-fs-meta); color: var(--waw-muted); }
.waw-doc-dl {
    flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--waw-muted);
    display: flex; align-items: center; justify-content: center; color: var(--waw-muted);
}
.waw-doc-dl .waw-svg { width: 18px; height: 18px; }
.waw-doc.is-row { width: 100%; padding: 10px 16px; border-radius: 0; background: transparent; border-bottom: 1px solid var(--waw-line); }
.waw-doc.is-row:hover { background: var(--waw-row-hover); }

.waw-down {
    position: absolute; bottom: 16px; inset-inline-end: 18px; z-index: 5;
    width: 42px; height: 42px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: var(--waw-panel); color: var(--waw-icon);
    box-shadow: 0 1px 3px var(--waw-shadow), 0 2px 8px var(--waw-shadow);
}
.waw-down b, .waw-send.is-lg b {
    position: absolute; top: -6px; inset-inline-start: -6px; min-width: 20px; height: 20px; padding: 0 5px;
    border-radius: 10px; display: flex; align-items: center; justify-content: center;
    background: var(--waw-unread); color: var(--waw-on-unread); font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-bold);
}

/* ----- خانة الكتابة (٦٢ بكسل وتكبر حتى ستة أسطر) ----- */
.waw-compose {
    position: relative; z-index: 4; flex: none;
    display: flex; align-items: flex-end; gap: 4px;
    min-height: 62px; padding: 5px 12px calc(5px + env(safe-area-inset-bottom));
    background: var(--waw-header);
}
.waw-compose > .waw-ibtn, .waw-compose > .waw-menu-wrap { margin-bottom: 6px; }
.waw-input { flex: 1; min-width: 0; display: flex; margin: 5px 4px; padding: 9px 12px; border-radius: 8px; background: var(--waw-input); }
.waw-input textarea {
    flex: 1; width: 100%; min-height: 22px; max-height: calc(1.45em * 6);
    padding: 0; border: 0; outline: 0; box-shadow: none; resize: none; overflow-y: hidden;
    background: transparent; color: var(--waw-text); font: inherit; font-size: var(--waw-fs-list); line-height: 1.45;
}
.waw-input textarea:focus { outline: 0; box-shadow: none; }
.waw-input textarea.is-scroll { overflow-y: auto; }
.waw-input textarea::placeholder { color: var(--waw-muted); }
.waw-input textarea:disabled { opacity: .55; }
.waw-send {
    flex: none; width: 42px; height: 42px; margin-bottom: 5px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--waw-accent); color: var(--waw-on-accent);
    transition: background-color .15s ease, color .15s ease;
}
.waw-send:disabled { background: transparent; color: var(--waw-icon); opacity: .55; cursor: default; }
.waw-send .waw-svg { width: 22px; height: 22px; }
.waw-send.is-lg { position: relative; width: 58px; height: 58px; margin: 0; }
.waw-send.is-lg .waw-svg { width: 26px; height: 26px; }
.waw-emoji-pane {
    position: absolute; bottom: 100%; inset-inline: 0; z-index: 6; height: 320px; overflow: hidden;
    background: var(--waw-panel); border-top: 1px solid var(--waw-line); box-shadow: 0 -2px 6px var(--waw-shadow);
}
.waw-emoji-pane .waw-emoji { height: 100%; }
.waw-emoji-pane .waw-emoji-body { max-height: none; }

/* ----- درج معلومات جهة الاتصال (ينزلق من جانب المحادثة) ----- */
.waw-drawer {
    position: absolute; inset-block: 0; inset-inline-end: 0; z-index: 20; width: min(400px, 100%);
    display: flex; flex-direction: column;
    background: var(--waw-drawer-bg); box-shadow: 0 0 12px var(--waw-shadow);
}
.waw-slide { transition: transform .2s ease; }
.waw-drawer.is-off { transform: translateX(-100%); }
.waw-drawer.is-on { transform: translateX(0); }
.waw-drawer-head { gap: 14px; padding-inline: 12px 16px; }
.waw-drawer-title { font-size: var(--waw-fs-list); font-weight: var(--waw-fw-name); }
.waw-drawer-body { flex: 1; min-height: 0; overflow-y: auto; }
.waw-info-top { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 28px 16px 20px; background: var(--waw-panel); }
.waw-info-name { font-size: var(--waw-fs-xl); color: var(--waw-text); text-align: center; }
.waw-info-num { display: flex; align-items: center; gap: 4px; font-size: var(--waw-fs-list); color: var(--waw-muted); }
.waw-info-party {
    display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; padding: 6px 14px;
    border-radius: 18px; border: 1px solid var(--waw-accent); color: var(--waw-accent);
    font-size: var(--waw-fs-small); font-weight: var(--waw-fw-semibold); text-decoration: none;
}
.waw-info-party .waw-svg { width: 18px; height: 18px; }
.waw-info-card { display: flex; flex-direction: column; gap: 9px; margin-top: 10px; padding: 14px 24px; background: var(--waw-panel); }
.waw-kv { display: flex; justify-content: space-between; gap: 12px; font-size: var(--waw-fs-small); }
.waw-kv > span { color: var(--waw-muted); }
.waw-kv b { display: inline-flex; align-items: center; gap: 6px; font-weight: var(--waw-fw-name); color: var(--waw-text); text-align: end; }
.waw-info-acts { display: flex; gap: 8px; padding-top: 6px; }
.waw-pill-btn {
    padding: 7px 16px; border-radius: 18px; background: var(--waw-accent); color: var(--waw-on-accent);
    font-size: var(--waw-fs-small); font-weight: var(--waw-fw-semibold);
}
.waw-pill-btn.is-quiet { background: var(--waw-chip); color: var(--waw-text); }
.waw-tabs { display: flex; margin-top: 10px; background: var(--waw-panel); border-bottom: 1px solid var(--waw-line); }
.waw-tab {
    flex: 1; height: 44px; display: flex; align-items: center; justify-content: center; gap: 6px;
    font-size: var(--waw-fs-small); color: var(--waw-muted); border-bottom: 3px solid transparent;
}
.waw-tab.is-on { color: var(--waw-accent); border-bottom-color: var(--waw-accent); font-weight: var(--waw-fw-semibold); }
.waw-tab b { font-size: var(--waw-fs-meta); }
.waw-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 8px; background: var(--waw-panel); }
.waw-thumb { display: block; aspect-ratio: 1; border-radius: 4px; overflow: hidden; background: var(--waw-ph); }
.waw-thumb-in { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--waw-muted); }
.waw-thumb-in img { width: 100%; height: 100%; object-fit: cover; }
.waw-docs, .waw-links { background: var(--waw-panel); }
.waw-link-row {
    display: flex; align-items: center; gap: 10px; padding: 12px 16px;
    border-bottom: 1px solid var(--waw-line); color: var(--waw-link); text-decoration: none; font-size: var(--waw-fs-small);
}
.waw-link-row:hover { background: var(--waw-row-hover); }
.waw-link-ico { flex: none; width: 36px; height: 36px; border-radius: 6px; display: flex; align-items: center; justify-content: center; background: var(--waw-chip); color: var(--waw-muted); }
.waw-link-ico .waw-svg { width: 20px; height: 20px; }
.waw-link-txt { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.waw-drawer-empty { padding: 24px; text-align: center; font-size: var(--waw-fs-small); color: var(--waw-muted); background: var(--waw-panel); }
/* ----- «السجل» في درج المعلومات: حركات المحادثة بالملّي (بطلب المالك: «سجل حركات للواتس … لكل مستخدم بالملي») -----
   يُلحق في public/css/admin-theme.css بعد قاعدة .waw-drawer-empty (قسم درج المعلومات). رموز .waw الموجودة وحدها،
   ولون الشارة باسم لون الحركة من الخادم (WhatsAppActivity::COLORS: gray/info/primary/success/danger/warning). */
.waw-log { background: var(--waw-panel); }
.waw-log-row {
    display: flex; flex-direction: column; gap: 3px; padding: 9px 16px;
    border-bottom: 1px solid var(--waw-line); font-size: var(--waw-fs-small);
}
.waw-log-top { display: flex; align-items: center; gap: 6px; min-width: 0; }
.waw-log-user {
    flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-weight: var(--waw-fw-name); color: var(--waw-text);
}
.waw-log-act {
    flex: none; padding: 1px 8px; border-radius: 10px; background: var(--waw-chip); color: var(--waw-muted);
    font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-semibold); white-space: nowrap;
}
.waw-log-act.is-info { color: var(--waw-accent); }
.waw-log-act.is-primary { color: var(--waw-link); }
.waw-log-act.is-success { color: var(--waw-status-done); }
.waw-log-act.is-danger { color: var(--waw-danger); }
.waw-log-act.is-warning { color: var(--waw-status-open); }
.waw-log-time {
    flex: none; margin-inline-start: auto; color: var(--waw-muted); font-size: var(--waw-fs-meta);
    font-variant-numeric: tabular-nums; white-space: nowrap;
}
.waw-log-det { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--waw-muted); }
.waw-log-wait { display: flex; justify-content: center; padding: 24px; }
/* زر «السجل» جنب عنوان «الدردشات» (للمدير العام والإداري والمالي) */
.waw-log-link {
    display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 14px;
    background: var(--waw-chip); color: var(--waw-muted); font-size: var(--waw-fs-meta);
    font-weight: var(--waw-fw-semibold); white-space: nowrap; text-decoration: none;
}
.waw-log-link:hover { background: var(--waw-hover); color: var(--waw-text); }
.waw-log-link:focus-visible { outline: 2px solid var(--waw-accent); outline-offset: 1px; }
.waw-log-link .waw-svg { width: 15px; height: 15px; }

/* ----- معاينة الملفات قبل الإرسال ----- */
.waw-pv { position: absolute; inset: 0; z-index: 25; display: flex; flex-direction: column; background: var(--waw-pv-bg); }
.waw-pv-head { gap: 12px; background: transparent; }
.waw-pv-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--waw-fs-list); color: var(--waw-text); }
.waw-pv-stage { flex: 1; min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 16px; }
.waw-pv-img { max-width: 100%; max-height: 100%; min-height: 0; object-fit: contain; border-radius: 4px; box-shadow: 0 1px 6px var(--waw-shadow); }
.waw-pv-file { display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--waw-text); text-align: center; }
.waw-pv-file small { direction: ltr; unicode-bidi: isolate; font-size: var(--waw-fs-small); color: var(--waw-muted); }
.waw-pv-err { font-size: var(--waw-fs-small); font-weight: var(--waw-fw-semibold); color: var(--waw-danger); }
/* موضعُ قائمة المنشن فوق خانة التعليق (mention-list.blade.php) — كما فوق خانة الكتابة */
.waw-pv-cap { position: relative; padding: 0 max(16px, 12%) 12px; }
.waw-pv-cap input {
    width: 100%; height: 44px; padding: 0 14px; border: 0; border-radius: 8px; outline: 0; box-shadow: none;
    background: var(--waw-input); color: var(--waw-text); font-size: var(--waw-fs-list);
}
.waw-pv-cap input:focus { outline: 0; box-shadow: none; }
.waw-pv-foot { display: flex; align-items: center; gap: 16px; padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--waw-line); }
.waw-pv-strip { flex: 1; min-width: 0; display: flex; justify-content: center; gap: 8px; padding: 4px; overflow-x: auto; }
.waw-pv-thumb {
    position: relative; flex: none; width: 52px; height: 52px; border-radius: 6px; overflow: hidden; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    background: var(--waw-chip); border: 2px solid transparent;
}
.waw-pv-thumb.is-on { border-color: var(--waw-accent); }
.waw-pv-thumb.is-bad { border-color: var(--waw-danger); }
.waw-pv-thumb img { width: 100%; height: 100%; object-fit: cover; }
.waw-pv-ext { font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-bold); color: var(--waw-muted); }
.waw-pv-x {
    position: absolute; top: 2px; inset-inline-end: 2px; width: 18px; height: 18px; border-radius: 50%;
    display: none; align-items: center; justify-content: center;
    background: var(--waw-media-scrim); color: var(--waw-media-meta);
}
.waw-pv-x .waw-svg { width: 12px; height: 12px; }
.waw-pv-thumb:hover .waw-pv-x, .waw-pv-thumb.is-on .waw-pv-x { display: flex; }
.waw-pv-add { flex: none; width: 52px; height: 52px; border-radius: 6px; border: 1px dashed var(--waw-muted); color: var(--waw-muted); display: flex; align-items: center; justify-content: center; }

.waw-drop {
    position: absolute; inset: 0; z-index: 30; pointer-events: none;
    display: flex; align-items: center; justify-content: center;
    background: var(--waw-drop); border: 3px dashed var(--waw-accent); color: var(--waw-accent);
    font-size: var(--waw-fs-title); font-weight: var(--waw-fw-semibold);
}
.waw-toast {
    position: absolute; bottom: 90px; left: 50%; z-index: 70; transform: translateX(-50%);
    max-width: min(90%, 420px); padding: 10px 18px; border-radius: 8px; pointer-events: none; text-align: center;
    background: var(--waw-toast); color: var(--waw-toast-text); font-size: var(--waw-fs-small);
    box-shadow: 0 2px 8px var(--waw-shadow);
}

/* ----- الرد وإعادة التوجيه والنسخ (بطلب المالك: «مفيش اعادة توجية للرسائل ليه او الرد علي الرسائل ليه») -----
   سهم القائمة على الفقاعة، والاقتباس داخلها وفوق خانة الكتابة، و«معاد توجيهها»، ونافذة التوجيه. */
.waw-item .waw-bubble { --waw-bb: var(--waw-in); }
.waw-item.is-out .waw-bubble { --waw-bb: var(--waw-out); }
.waw-bchev {
    position: absolute; top: 2px; inset-inline-end: 3px; z-index: 1;
    width: 22px; height: 18px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: var(--waw-muted); background: var(--waw-bb); box-shadow: 0 0 6px 5px var(--waw-bb);
    opacity: 0; transition: opacity .12s ease;
}
.waw-bchev .waw-svg { width: 18px; height: 18px; }
/* الفأرة فوق الفقاعة، أو رسالةٌ مختارة بلوحة المفاتيح — لا ضغطةٌ عابرة على النص (تركيزٌ بالفأرة) */
.waw-msg:hover .waw-bchev, .waw-item:focus-visible .waw-bchev, .waw-bchev.is-on { opacity: 1; }
.waw-bubble.is-visual .waw-bchev, .waw-bubble.is-sticker .waw-bchev {
    top: 6px; inset-inline-end: 6px; background: var(--waw-media-scrim); box-shadow: none; color: var(--waw-media-meta);
}
/* لمسٌ بلا مرور: السهم ظاهرٌ خافتًا دائمًا، ومساحةُ لمسه أوسع من رسمه (٢٢×١٨ لا تُصاب بإصبع) */
@media (hover: none) {
    .waw-bchev { opacity: .8; }
    .waw-bchev::before { content: ''; position: absolute; inset: -12px -8px -16px -16px; }
}
.waw-item:focus { outline: 0; }
.waw-item:focus-visible .waw-bubble { box-shadow: 0 0 0 2px var(--waw-accent); }
.waw-scroll:focus { outline: 0; }
.waw-scroll:focus-visible { box-shadow: inset 0 0 0 2px var(--waw-accent); }

/* ----- التفاعل بالإيموجي والحذف (بطلب المالك: «عايز في الواتس في الرسائل امكانية حذف الرسائل
   و عمل ايموجي علي الرسايل كاعجاب او ليك او لاف و هكذا») -----
   الشريط السريع فوق الفقاعة في مجرى المحادثة (لا يقصّه شيء على ٣٧٥ بكسل)، والشارات تحتها. */
.waw-react-bar {
    display: flex; gap: 2px; align-self: flex-start; max-width: 100%;
    margin: 4px 0 2px; padding: 4px 6px; border-radius: 999px;
    background: var(--waw-menu);
    box-shadow: 0 2px 5px var(--waw-shadow), 0 4px 14px var(--waw-shadow);
}
.waw-item.is-out .waw-react-bar { align-self: flex-end; }
.waw-react-pick {
    width: 38px; height: 38px; border-radius: 50%; flex: none;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: var(--waw-fs-emoji); line-height: 1;
}
.waw-react-pick:hover { background: var(--waw-menu-hover); }
.waw-react-pick.is-on { background: var(--waw-row-active); box-shadow: inset 0 0 0 2px var(--waw-accent); }
.waw-reacts { display: flex; flex-wrap: wrap; gap: 3px; align-self: flex-start; margin: -4px 8px 0; z-index: 1; }
.waw-item.is-out .waw-reacts { align-self: flex-end; }
.waw-react-chip {
    display: inline-flex; align-items: center; gap: 4px;
    min-height: 26px; padding: 2px 8px; border-radius: 999px;
    background: var(--waw-panel);
    box-shadow: 0 1px .5px var(--waw-shadow), 0 0 0 1px var(--waw-line);
    font-size: var(--waw-fs-small); line-height: 1; color: var(--waw-text);
}
.waw-react-chip b { font-size: var(--waw-fs-meta); font-weight: var(--waw-fw-semibold); color: var(--waw-muted); }
/* تفاعلي مميَّز بإطار بلون واتساب نفسه */
.waw-react-chip.is-mine { box-shadow: 0 1px .5px var(--waw-shadow), 0 0 0 1.5px var(--waw-accent); }
.waw-react-chip:disabled { cursor: default; }
.waw-menu-item.is-danger { color: var(--waw-danger); }
/* لمسٌ بلا مرور (المالك على آيفون ٣٧٥ بكسل): أهدافٌ أوسع للإصبع */
@media (hover: none) {
    .waw-react-pick { width: 42px; height: 42px; }
    .waw-react-chip { min-height: 30px; padding: 3px 10px; }
}

.waw-fwd-tag {
    display: flex; align-items: center; gap: 3px; margin-bottom: 2px;
    font-size: var(--waw-fs-small); font-style: italic; color: var(--waw-muted);
}
.waw-fwd-tag > span { display: inline-flex; }
.waw-fwd-tag .waw-svg { width: 16px; height: 16px; }
.waw-bubble.is-visual .waw-fwd-tag { padding: 2px 6px 0; }

.waw-quote {
    --waw-q: var(--waw-author-1);
    display: flex; flex-direction: column; gap: 1px; min-width: 0;
    margin-bottom: 5px; padding: 5px 10px 6px; border-radius: 6px;
    border-inline-start: 4px solid var(--waw-q);
    background: var(--waw-quote-bg); cursor: pointer; outline: 0;
}
.waw-quote:hover { background: var(--waw-quote-hover); }
.waw-quote.is-me { --waw-q: var(--waw-accent); }
.waw-qc-1 { --waw-q: var(--waw-author-1); }
.waw-qc-2 { --waw-q: var(--waw-author-2); }
.waw-qc-3 { --waw-q: var(--waw-author-3); }
.waw-qc-4 { --waw-q: var(--waw-author-4); }
.waw-qc-5 { --waw-q: var(--waw-author-5); }
.waw-qc-6 { --waw-q: var(--waw-author-6); }
.waw-qc-7 { --waw-q: var(--waw-author-7); }
.waw-qc-8 { --waw-q: var(--waw-author-8); }
.waw-qc-9 { --waw-q: var(--waw-author-9); }
.waw-qc-10 { --waw-q: var(--waw-author-10); }
.waw-quote-who {
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: var(--waw-fs-small); font-weight: var(--waw-fw-name); color: var(--waw-q);
}
.waw-quote-txt {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
    font-size: var(--waw-fs-small); line-height: 1.35; color: var(--waw-muted); overflow-wrap: anywhere;
}
.waw-bubble.is-visual .waw-quote { margin: 0 0 3px; }
.waw-quote.is-bar { flex: 1; margin: 0; cursor: default; }
.waw-quote.is-bar:hover { background: var(--waw-quote-bg); }
.waw-quote.is-bar .waw-quote-txt { -webkit-line-clamp: 2; }
.waw-reply {
    position: relative; z-index: 4; flex: none;
    display: flex; align-items: center; gap: 8px;
    padding: 8px 12px 0 16px; background: var(--waw-header);
}

/* قائمة المنشن فوق خانة الكتابة (بطلب المالك: «امكانية عمل منشن»): طافيةٌ فوق مجرى المحادثة
   (absolute داخل خانة الكتابة كلوحة الإيموجي) فلا تضغطه ولا تزيحه، وتُمرَّر إن طال عدد المشاركين */
.waw-mention {
    position: absolute; bottom: 100%; inset-inline: 0; z-index: 6;
    max-height: 244px; overflow-y: auto; overscroll-behavior: contain;
    scrollbar-width: thin; scrollbar-color: var(--waw-scrollbar) transparent;
    background: var(--waw-panel); box-shadow: 0 -2px 8px var(--waw-shadow);
}
.waw-mention-row {
    display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px;
    padding: 6px 16px; text-align: start; background: transparent;
}
.waw-mention-row.is-on, .waw-mention-row:hover { background: var(--waw-menu-hover); }
.waw-mention-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: var(--waw-fw-name); }
.waw-mention-num { flex: none; font-size: var(--waw-fs-meta); color: var(--waw-muted); unicode-bidi: isolate; }

/* الرسالة الأصلية بعد الضغط على اقتباسها: وميضٌ بعرض المحادثة */
.waw-item.is-flash { position: relative; }
.waw-item.is-flash::before {
    content: ''; position: absolute; inset-block: 0; inset-inline: calc(-1 * clamp(12px, 6cqi, 63px));
    background: var(--waw-flash); pointer-events: none; animation: waw-flash 1.6s ease-out forwards;
}
@keyframes waw-flash { 0%, 55% { opacity: 1; } 100% { opacity: 0; } }

.waw-mi-ico { display: inline-flex; color: var(--waw-icon); }
.waw-mi-ico .waw-svg { width: 20px; height: 20px; }
.waw-clip { position: fixed; top: 0; inset-inline-start: 0; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* نافذة إعادة التوجيه: فوق الشاشة كلها، وتحت الرسالة القصيرة (نتيجة كل وجهة) */
.waw-fwd {
    position: absolute; inset: 0; z-index: 65;
    display: flex; align-items: center; justify-content: center; padding: 16px;
    background: var(--waw-overlay);
}
.waw-fwd-box {
    width: min(460px, 100%); height: min(640px, 100%);
    display: flex; flex-direction: column; overflow: hidden;
    border-radius: 8px; background: var(--waw-panel);
    box-shadow: 0 2px 5px var(--waw-shadow), 0 8px 28px var(--waw-shadow);
}
.waw-fwd-head { gap: 14px; padding-inline: 12px 20px; background: var(--waw-header); }
.waw-fwd-title { font-size: var(--waw-fs-list); font-weight: var(--waw-fw-name); color: var(--waw-text); }
.waw-fwd-box .waw-search { padding-top: 10px; }
.waw-fwd-list { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--waw-scrollbar) transparent; }
.waw-row.is-pick { height: 64px; }
.waw-row.is-pick .waw-av { width: 42px; height: 42px; }
.waw-row.is-pick.is-off { opacity: .5; cursor: not-allowed; }
.waw-check {
    flex: none; width: 20px; height: 20px; border-radius: 3px;
    display: flex; align-items: center; justify-content: center;
    border: 2px solid var(--waw-muted); color: transparent;
}
.waw-check .waw-svg { width: 14px; height: 14px; }
.waw-row.is-on .waw-check { background: var(--waw-accent); border-color: var(--waw-accent); color: var(--waw-on-accent); }
.waw-fwd-foot {
    flex: none; display: flex; align-items: center; gap: 12px;
    padding: 10px 20px 10px 12px; background: var(--waw-header);
}
.waw-fwd-names { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--waw-text); }
.waw-fwd-foot .waw-send { margin: 0; }
.waw-send-ico { display: inline-flex; }
.waw-fwd-foot .waw-send:disabled .waw-spin { width: 20px; height: 20px; }
.waw-bchev:focus-visible, .waw-quote:focus-visible { outline: 2px solid var(--waw-accent); outline-offset: -2px; }
.waw-row.is-pick:focus-visible { outline: 2px solid var(--waw-accent); outline-offset: -2px; }
@media (max-width: 767.98px) {
    .waw-item.is-flash::before { inset-inline: -10px; }
    .waw-fwd { padding: 0; }
    .waw-fwd-box { width: 100%; height: 100%; border-radius: 0; }
    .waw-reply { padding-inline: 10px 6px; }
}

.waw-ibtn:focus-visible, .waw-chip:focus-visible, .waw-menu-item:focus-visible, .waw-send:focus-visible,
.waw-row:focus-visible, .waw-archived:focus-visible, .waw-head-id:focus-visible, .waw-tab:focus-visible,
.waw-pv-thumb:focus-visible, .waw-link-btn:focus-visible, .waw-phone:focus-visible {
    outline: 2px solid var(--waw-accent); outline-offset: -2px;
}

/* التلفون: لوحةٌ واحدة — القائمة ↔ المحادثة بسهم رجوع وزر الرجوع في الجهاز */
@media (max-width: 767.98px) {
    .waw { grid-template-columns: minmax(0, 1fr); border-top: 0; }
    .waw-main { grid-column: 1; display: none; }
    .waw.is-chat .waw-side { display: none; }
    .waw.is-chat .waw-main { display: flex; }
    .waw-back { display: inline-flex; }
    .waw-chat-head { padding-inline: 4px 6px; }
    .waw-head-id { gap: 10px; }
    .waw-scroll { padding-inline: 10px; }
    .waw-unread { margin-inline: -10px; }
    .waw-bubble { max-width: 85%; }
    .waw-compose { padding-inline: 6px; }
    .waw-drawer { width: 100%; }
    .waw-emoji-pane { height: 280px; }
    .waw-row-chev { width: 20px; }
}

/* ----- نص الرسالة المنسَّق (EnWaKit.formatText): الحاوية نفسها white-space: pre-wrap ----- */
.waw-t-mono,
.waw-t-code { font-family: ui-monospace, "Cascadia Mono", Consolas, "Courier New", monospace; }
.waw-t-mono { white-space: pre-wrap; }
.waw-t-code { background: var(--waw-chip); border-radius: 4px; padding: 0 .3em; }
.waw-t-quote {
    display: block; margin: .15rem 0; padding-inline-start: .6rem;
    border-inline-start: 3px solid var(--waw-muted); color: var(--waw-muted);
}
.waw-t-ul,
.waw-t-ol { margin: .1rem 0; padding-inline-start: 1.35rem; }
.waw-t-ul { list-style: disc; }
.waw-t-ol { list-style: decimal; }
.waw-t-link,
.waw-phone { color: var(--waw-link, var(--waw-tick-read)); text-decoration: none; cursor: pointer; overflow-wrap: anywhere; }
.waw-t-link:hover,
.waw-phone:hover { text-decoration: underline; }
.waw-hit { background: var(--waw-hit); border-radius: 2px; }

/* ----- منتقي الإيموجي (EnWaKit.emojiPicker) ----- */
.waw-emoji {
    display: flex; flex-direction: column; height: 100%; min-height: 0;
    background: var(--waw-panel); color: var(--waw-text);
}
.waw-emoji-tabs {
    display: flex; flex: 0 0 auto; padding: 0 .25rem; overflow-x: auto; scrollbar-width: none;
    border-bottom: 1px solid var(--waw-line);
}
.waw-emoji-tab {
    flex: 1 0 auto; min-width: 2.25rem; height: 2.6rem; padding: 0;
    display: flex; align-items: center; justify-content: center;
    background: transparent; border: 0; border-bottom: 3px solid transparent; cursor: pointer;
    font-size: var(--waw-fs-name); line-height: 1; opacity: .55; filter: grayscale(1);
    transition: opacity .15s ease, filter .15s ease;
}
.waw-emoji-tab:hover { opacity: .85; filter: none; }
.waw-emoji-tab[aria-selected="true"] { opacity: 1; filter: none; border-bottom-color: var(--waw-accent); }
.waw-emoji-tab[hidden],
.waw-emoji-sec[hidden] { display: none; }
.waw-emoji-body {
    position: relative; flex: 1 1 auto; min-height: 0; max-height: 20rem;
    overflow-y: auto; overscroll-behavior: contain; padding: 0 .5rem .5rem;
}
.waw-emoji-title {
    position: sticky; top: 0; z-index: 1; padding: .55rem .25rem .3rem;
    background: var(--waw-panel); color: var(--waw-muted);
    font-size: var(--waw-fs-small); font-weight: var(--en-fw-semibold);
}
.waw-emoji-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(2.5rem, 1fr)); }
.waw-emoji-cell {
    height: 2.5rem; padding: 0; display: flex; align-items: center; justify-content: center;
    background: transparent; border: 0; border-radius: var(--waw-radius); cursor: pointer;
    font-size: var(--waw-fs-emoji, var(--waw-fs-name)); line-height: 1;
}
.waw-emoji-cell:hover { background: var(--waw-row-hover); }
.waw-emoji-tab:focus-visible,
.waw-emoji-cell:focus-visible { outline: 2px solid var(--waw-accent); outline-offset: -2px; }

/* ----- معرض المحادثة (enLightbox مع list): عدّاد وتنزيل وأسهم — تستعير شكل أزرار .en-lb-bar فلا ألوان جديدة ----- */
.en-lb-count { font-size: var(--waw-fs-small); min-width: 3.2rem; text-align: center; opacity: .8; unicode-bidi: isolate; }
.en-lb .en-lb-nav {
    position: absolute; top: 50%; z-index: 2; transform: translateY(-50%);
    padding: 0; background: transparent;
}
.en-lb .en-lb-prev { inset-inline-start: 12px; }
.en-lb .en-lb-next { inset-inline-end: 12px; }
.en-lb .en-lb-nav button {
    width: 2.75rem; height: 2.75rem; min-width: 0; padding: 0; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
}
.en-lb-bar button svg { pointer-events: none; }
.en-lb-dl { display: inline-flex; align-items: center; justify-content: center; }
.en-lb-stage.is-loading img { visibility: hidden; }
.en-lb-stage.is-error img { display: none; }
.en-lb-err { color: var(--waw-tick); font-size: var(--waw-fs-list); }

/* ----- وضع التحديد: تحويل وحذف أكثر من رسالة معًا (بطلب المالك: «و لما يعمل فورورد عايزه يعمل لاكثر من رسالة
   مع بعض و كذلك الحذف») — شريطٌ مكان رأس المحادثة، ومربعُ اختيارٍ في بداية كل صف وطبقةٌ فوقه تلتقط النقرة، والصفُّ
   المحدَّد مظلَّلٌ بعرض المحادثة كلها كوميض الاقتباس. وبطاقة جهة الاتصال (بطلب المالك: «امكانية ارسال ارقام هواتف لاحد
   من المسجلين») في الفقاعة وفي نافذتها. الألوان رموزٌ هنا وحدها. ----- */
:root { --waw-attach-contact: #009de2; }

.waw-sel-bar { position: relative; z-index: 3; gap: 6px; padding-inline: 8px 10px; }
.waw-sel-count {
    flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: var(--waw-fs-list); font-weight: var(--waw-fw-name); color: var(--waw-text);
}
.waw-sel-bar .waw-bar-actions { gap: 4px; }
.waw-sel-btn {
    display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border-radius: 18px;
    color: var(--waw-icon); font-size: var(--waw-fs-small); font-weight: var(--waw-fw-semibold); white-space: nowrap;
    transition: background-color .15s ease;
}
.waw-sel-btn:hover { background: var(--waw-hover); }
.waw-sel-btn .waw-svg { width: 20px; height: 20px; }
.waw-sel-btn.is-danger { color: var(--waw-danger); }
.waw-sel-btn.is-off { opacity: .45; }
.waw-sel-btn:focus-visible { outline: 2px solid var(--waw-accent); outline-offset: -2px; }

.waw.is-sel .waw-item { position: relative; padding-inline-start: 34px; }
.waw-sel-hit {
    position: absolute; inset-block: 0; inset-inline: calc(-1 * clamp(12px, 6cqi, 63px)); z-index: 2;
    display: flex; align-items: center; padding-inline-start: calc(clamp(12px, 6cqi, 63px) + 6px); cursor: pointer;
}
.waw-sel-hit .waw-check { background: var(--waw-panel); }
.waw-sel-hit[aria-disabled="true"] .waw-check { opacity: .35; }
.waw-item.is-sel::before {
    content: ''; position: absolute; inset-block: 0; inset-inline: calc(-1 * clamp(12px, 6cqi, 63px));
    background: var(--waw-flash); pointer-events: none;
}
.waw-item.is-sel .waw-check { background: var(--waw-accent); border-color: var(--waw-accent); color: var(--waw-on-accent); }
.waw-fwd-names > span, .waw-fwd-units { display: block; overflow: hidden; text-overflow: ellipsis; }
.waw-fwd-units { font-size: var(--waw-fs-meta); color: var(--waw-muted); }

/* تأكيد الحذف الجماعي: بطاقةٌ في الوسط حتى على التلفون (نافذة التوجيه تملأ الشاشة هناك، والتأكيد لا) */
.waw-confirm-box {
    width: min(420px, 100%); display: flex; flex-direction: column; gap: 10px; padding: 22px 24px 18px;
    border-radius: 8px; background: var(--waw-panel);
    box-shadow: 0 2px 5px var(--waw-shadow), 0 8px 28px var(--waw-shadow);
}
.waw-confirm-title { font-size: var(--waw-fs-list); font-weight: var(--waw-fw-semibold); color: var(--waw-text); }
.waw-confirm-text { font-size: var(--waw-fs-small); color: var(--waw-muted); }
.waw-confirm-note { padding: 8px 10px; border-radius: 6px; background: var(--waw-note); color: var(--waw-note-text); font-size: var(--waw-fs-small); }
.waw-confirm-acts { display: flex; justify-content: flex-end; gap: 8px; margin-top: 6px; }
.waw-pill-btn.is-danger { background: var(--waw-danger); color: var(--waw-on-accent); }
.waw-pill-btn:disabled { opacity: .55; cursor: default; }
.waw-pill-btn:focus-visible { outline: 2px solid var(--waw-accent); outline-offset: 2px; }
.waw-pill-btn .waw-spin { width: 16px; height: 16px; }

/* بطاقة جهة الاتصال في الفقاعة: الاسم والرقم، وتحتهما «مراسلة» و«نسخ الرقم» كواتساب */
.waw-vcards { display: flex; flex-direction: column; gap: 6px; min-width: min(240px, 100%); margin-bottom: 2px; }
.waw-vcard { overflow: hidden; border-radius: 6px; background: var(--waw-quote-bg); }
.waw-vcard-top { display: flex; align-items: center; gap: 10px; padding: 8px 10px; }
.waw-vcard-av {
    flex: none; width: 40px; height: 40px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center; background: var(--waw-av-bg); color: var(--waw-av-text);
}
.waw-vcard-av .waw-svg { width: 24px; height: 24px; }
.waw-vcard-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.waw-vcard-txt b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--waw-fs-msg); font-weight: var(--waw-fw-name); }
.waw-vcard-txt small { align-self: flex-start; unicode-bidi: isolate; font-size: var(--waw-fs-meta); color: var(--waw-muted); }
.waw-vcard-acts { display: flex; border-top: 1px solid var(--waw-line); }
.waw-vcard-acts button { flex: 1; padding: 8px 6px; color: var(--waw-link); font-size: var(--waw-fs-small); font-weight: var(--waw-fw-semibold); }
.waw-vcard-acts button + button { border-inline-start: 1px solid var(--waw-line); }
.waw-vcard-acts button:hover { background: var(--waw-quote-hover); }
.waw-vcard-acts button:focus-visible { outline: 2px solid var(--waw-accent); outline-offset: -2px; }
.waw-vcard.is-plain { background: var(--waw-row-hover); }
.waw-menu-ico.is-contact { background: var(--waw-attach-contact); }

/* نافذة إرسال جهة اتصال (شكل نافذة التوجيه): تبويبات المصادر، والمختار شرائح، ورقمٌ جديد بخانتين، ثم التأكيد */
.waw-card-body { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.waw-card-body.is-sure { gap: 10px; padding: 16px 20px; overflow-y: auto; }
.waw-card-tabs { flex: none; margin-top: 0; }
.waw-card-chips { flex: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 12px 0; }
.waw-card-chip {
    display: inline-flex; align-items: center; gap: 4px; max-width: 100%; padding: 4px 6px; padding-inline-start: 10px;
    border-radius: 16px; background: var(--waw-chip-on); color: var(--waw-chip-on-text); font-size: var(--waw-fs-small);
}
.waw-card-chip bdi { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.waw-card-chip .waw-card-num { flex: none; opacity: .8; }
.waw-card-chip button { display: inline-flex; color: inherit; }
.waw-card-chip .waw-svg { width: 14px; height: 14px; }
.waw-card-find { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.waw-card-form { display: flex; flex-direction: column; gap: 12px; padding: 16px 20px; }
.waw-card-field { display: flex; flex-direction: column; gap: 6px; font-size: var(--waw-fs-small); color: var(--waw-muted); }
.waw-card-field input {
    height: 40px; padding: 0 12px; border: 1px solid var(--waw-line); border-radius: 8px; box-shadow: none;
    background: var(--waw-input); color: var(--waw-text); font-size: var(--waw-fs-list);
}
.waw-card-field input:focus { outline: 2px solid var(--waw-accent); outline-offset: -1px; border-color: transparent; box-shadow: none; }
.waw-card-form .waw-pill-btn { align-self: flex-start; }
.waw-card-err { flex: none; margin: 8px 20px; font-size: var(--waw-fs-small); color: var(--waw-danger); }
.waw-card-to { font-size: var(--waw-fs-small); color: var(--waw-muted); }
.waw-card-to bdi { color: var(--waw-text); font-weight: var(--waw-fw-semibold); }
.waw-card-src { display: block; padding: 0 10px 8px; font-size: var(--waw-fs-meta); color: var(--waw-muted); }
/* نافذة «ربط الجروب بعميل» في درج المجموعة (البند ٢٦): ‎.waw-card-body‎ بلا is-sure بلا حشو، فكان سطرا «الجروب:» و«الإرسال الآلي على:»
   لازقين في حافة النافذة على ١٢٨٠ وحافة الشاشة على ٣٩٠ — نصوصُها بحشو رأس النافذة (٢٠) */
.waw-gt-body .waw-card-to { flex: none; padding: 12px 20px 0; }
.waw-gt-body .waw-card-to + .waw-card-to { padding-top: 4px; }
.waw-gt-body .waw-card-to + .waw-card-tabs { margin-top: 6px; }
.waw-gt-body .waw-card-src { flex: none; padding: 8px 20px 12px; }
/* اسمُ جروبٍ طويل بلا مسافات (شرطاتٌ سفلية أو رابط) يلتفّ داخل النافذة: كان يخرج عن حافتها ويُزحزح محتواها كله عند الضغط */
.waw-gt-body .waw-card-to bdi { overflow-wrap: anywhere; }
.waw-gt-box:focus { outline: none; }
/* تذييلُها: الملخّصُ وسطرُ «الحفظ هينقل ربطه للجروب ده» كاملين ملتفّين (كانا يُقصّان بثلاث نقط على ٣٩٠ قبل الضغط) */
.waw-gt-foot .waw-fwd-names { white-space: normal; }
.waw-gt-foot .waw-fwd-names > span { overflow-wrap: anywhere; text-overflow: clip; }
/* «تغيير» صفٌّ واحد (كان ~٣٠٠ بكسل فارغة تحته): القائمةُ بطول صفّها والاتجاهُ تحته مباشرةً، والنافذةُ بطول محتواها على الشاشة
   الواسعة — والتلفونُ ملءُ الشاشة كما هو والفراغُ تحت المحتوى لا وسطه */
.waw-gt-box.is-change .waw-card-find, .waw-gt-box.is-change .waw-fwd-list { flex: none; }
@media (min-width: 768px) {
    .waw-gt-box.is-change { height: auto; max-height: min(640px, 100%); }
}
/* أزرارُ بطاقة الجروب في الدرج بارتفاعٍ واحد: «ملف العميل» (رابطٌ بإطار) كان ٣٢ و«تغيير»/«فك الربط» ٣٨ */
.waw-gt-acts { flex-wrap: wrap; align-items: center; }
.waw-gt-acts > .waw-info-party, .waw-gt-acts > .waw-pill-btn { min-height: 38px; margin-top: 0; }
.waw-row.is-soft .waw-row-name { color: var(--waw-muted); }
.waw-row.is-soft .waw-check { border-style: dashed; }
.waw-fwd-foot .waw-pill-btn { flex: none; }

@media (max-width: 767.98px) {
    .waw-sel-bar { padding-inline: 4px 6px; }
    .waw-sel-btn { padding: 0 8px; }
    .waw.is-sel .waw-item { padding-inline-start: 30px; }
    .waw-sel-hit { inset-inline: -10px; padding-inline-start: 12px; }
    .waw-item.is-sel::before { inset-inline: -10px; }
    .waw-fwd.waw-confirm { padding: 16px; }
    .waw-vcards { min-width: min(200px, 100%); }
}

/* =====================================================================
   تصنيفات واتساب بيزنس («القوائم») — بطلب المالك: «اعمل label في الواتس زي ده بالظبط» (لقطة واتساب بيزنس ويب):
   شريحة القوائم بعد «الكل» (سهمٌ وحده، أو المختارة بنقطتها واسمها)، وقائمتها المنسدلة، ونقطةٌ بلون التصنيف بجوار
   اسم المحادثة، ومنتقي «تصنيف المحادثة» بعلامات صح. لون كل تصنيف من الحساب نفسه متغيّرٌ على العنصر (--waw-lc يكتبه
   tagPaint بعد فحصه سداسيًّا) — لا لون حرفيّ هنا، والخافت إن غاب.
   ===================================================================== */
.waw-ldot { flex: none; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--waw-lc, var(--waw-badge-muted)); }
.waw-ldot.is-lg { width: 10px; height: 10px; }
/* الاسم يأخذ ما يحتاجه والنقاط بجواره، والفراغ بعدها — فتبقى النقاط لاصقةً بالاسم والوقت في طرفه */
.waw-row-top:has(> .waw-row-tags) > .waw-row-name { flex: 0 1 auto; }
.waw-row-tags { flex: 1 0 auto; display: inline-flex; align-items: center; gap: 3px; }
/* الشريحة الخامسة لا تُزاحم «بتاعتي»: سهمٌ وحده (٢٨ بكسل) ما لم تُختر قائمة — كواتساب ويب في الشاشة الضيقة — والشرائح
   ومسافاتها أضيق بقدره، فعرض الصف كله كما كان بلا القوائم حرفًا (٣٤٩ بكسل مقيسًا على ٣٩٠ و١٢٨٠). وبلا القدرة لا شريحة
   فلا شيء من هذا يسري */
.waw-chips:has(> .waw-chip.is-lists) { gap: 6px; padding-inline: 10px; }
.waw-chips:has(> .waw-chip.is-lists) > .waw-chip { padding-inline: 10px; }
.waw-chips:has(> .waw-chip.is-lists) > .waw-chip.is-lists { gap: 4px; padding-inline: 6px; }
.waw-chips:has(> .waw-chip.is-lists) > .waw-chip.is-lists.is-named { padding-inline: 10px 6px; }
.waw-chip.is-lists bdi { max-width: 7em; overflow: hidden; text-overflow: ellipsis; }
.waw-chip-chev { display: inline-flex; }
.waw-chip-chev .waw-svg { width: 16px; height: 16px; }
.waw-lists, .waw-tagpick { min-width: 240px; max-width: min(320px, calc(100vw - 16px)); }
.waw-lists-row { display: contents; }
.waw-tag-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.waw-menu-item.is-new, .waw-menu-item.is-new .waw-mi-ico { color: var(--waw-accent); }
/* الإجمالي رماديًّا (b العامّة في القائمة) وبجواره غير المقروء شارةً خضراء أصغر من شارة الصف — كشاشة Lists في الموبايل */
.waw-lists-n { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 6px; }
.waw-lists-n b { margin-inline-start: 0; }
.waw-lists-n .waw-badge { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; }
/* «أقدم»: محادثةٌ مُصنَّفة لم يحمّلها واتساب ويب — وسمٌ خافت مكان الوقت */
.waw-row-old {
    flex: none; margin-inline-start: auto; padding: 0 6px; border-radius: 8px; line-height: 16px;
    border: 1px solid var(--waw-line); color: var(--waw-muted); font-size: var(--waw-fs-meta);
}
.waw-row-tags ~ .waw-row-old { margin-inline-start: 0; }
.waw-menu-item.is-busy { opacity: .6; cursor: progress; }
.waw-tagpick-head {
    display: flex; flex-direction: column; gap: 2px; margin-bottom: 4px; padding: 4px 20px 8px;
    border-bottom: 1px solid var(--waw-line); font-size: var(--waw-fs-small); color: var(--waw-muted);
}
.waw-tagpick-head bdi { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--waw-text); font-weight: var(--waw-fw-semibold); }
/* مربّع الاختيار نفسه في نافذة التوجيه: فارغٌ ثم أخضر بعلامة صح */
.waw-tagpick .waw-check.is-on { background: var(--waw-accent); border-color: var(--waw-accent); color: var(--waw-on-accent); }
.waw-confirm-box .waw-card-err { margin: 0; }

/* ---------- «نقل الوثيقة» (زر النقل الموحّد) ---------- */
/* النافذة: فيلامنت يبهت الخيارَ المعطّل كلَّه (سببُ المنع slate-300 على أبيض، تباين ١٫٥:١ — مراجعة ٣ أكتوبر). والسببُ أهمُّ ما في
   الخيار المقفول: يُقرأ بتباين ٧:١، واسمُ الشاشة المقفولة أفتح منه (٤٫٨:١) فيبقى الفرقُ بين المفتوح والمقفول ظاهرًا */
.en-move-dest.fi-fo-radio > .fi-fo-radio-label:has(.fi-radio-input:disabled) > .fi-fo-radio-label-text { color: var(--gray-500); }
.en-move-dest.fi-fo-radio > .fi-fo-radio-label:has(.fi-radio-input:disabled) .fi-fo-radio-label-description { color: var(--gray-600); }
/* «هي هنا»: شارةٌ جنب اسم الشاشة الحالية لا سطرٌ باهت */
.en-move-here {
    display: inline-block; margin-inline-start: .4rem; padding: 0 .5rem; border-radius: 9999px;
    border: 1px solid var(--primary-300); background: var(--primary-50); color: var(--primary-800);
    font-size: var(--en-fs-xs); line-height: 1.25rem; font-weight: var(--en-fw-semibold); vertical-align: middle;
}
/* التركيزُ ليس اختيارًا: النافذةُ بلا تركيزٍ تلقائي (MoveDoc::modalAutofocus)، وخانةٌ غيرُ مختارة عليها التركيز (لوحة المفاتيح) حلقتُها
   متقطّعةٌ رمادية لا حلقةُ لون النظام التي تجعل الدائرةَ الفارغة تشبه المختارة (مراجعة ٣ أكتوبر) */
.en-move-dest.fi-fo-radio .fi-radio-input:focus:not(:checked) { --tw-ring-color: transparent; outline: 2px dashed var(--gray-400); outline-offset: 2px; }
/* ورقة أوامر الدفع على الكمبيوتر: «نقل الوثيقة» زرٌّ رابع في عمود أزرارٍ ثابت (مراجعة ٣ أكتوبر). مساحةُ ضغط كل زرّ ٢٤ بكسل لا تتراكب
   (كانت ٣٢ والبداياتُ ٢٢ فيشترك كلُّ زرّين في ١٠ بكسل: حافةُ «رفع إيصال» تفتح «نقل الوثيقة»)، وزرُّ العدّاد يُبعَد عن جاره بقدر
   نصف شارته فلا تغطي الشارةُ سهمَ «رفع»، والحشوُ الطرفيُّ للخلية أضيق بقدر ما زاد فيبقى العمودُ كالحي. والتليفونُ كما هو: الزرُّ هناك
   في شريط صفحة الوثيقة (PaymentOrdersSheet::withMoveDoc) */
@media (min-width: 901px) {
    .en-sheet-actions .fi-ta-cell .fi-ta-actions { gap: 4px; }
    .en-sheet-actions .fi-ta-cell .fi-ta-actions .fi-icon-btn { width: 24px; margin-inline: -2px; }
    .en-sheet-actions .fi-ta-cell .fi-ta-actions .fi-icon-btn:has(> .fi-icon-btn-badge-ctn) { margin-inline-end: 4px; }
    .en-sheet-actions .fi-ta-cell:has(.fi-ta-actions):last-of-type { padding-inline-end: 10px; }
}
/* المتابعة على التليفون: أزرارُ الصف متقاربة، وشارةُ عدد الإيصالات على ركن «عرض الإيصال» جهةَ «⋮» بجواره كانت تغطي نقطتَها
   العليا فتُقرأ «:» (مراجِع الشاشات، ٤ أكتوبر). تُزاح الشارةُ ٥ بكسل نحو أيقونتها هي، فتعلو ركنَ أيقونتها لا نقطةَ جارها — ولا يتحرك
   زرٌّ ولا يتّسع العمود. والكمبيوتر كما هو: النقاطُ الثلاث ظاهرةٌ هناك */
@media (max-width: 900px) {
    .fi-ta-actions > .fi-icon-btn[wire\:click^="mountAction('viewReceipts'"]:has(+ .fi-dropdown) > .fi-icon-btn-badge-ctn { --tw-translate-x: calc(50% + 5px); }
}
/* «الملاحظات» بلا «⋮» (طلب المالك ١٧ أكتوبر: «زرار المزيد ده انا مش عايزه»): جارُ «عرض الإيصال» صار «رفع إيصال» أو «تقديم الملحوظة» (✓)
   أو «إلغاء التقديم»، وشارةُ العدد على ركنه كانت تعلو أعلى دائرة ✓ فتُقرأ عددًا لها (تراكبٌ ١١٫٦×٧٫٦ بكسل على التليفون و٢×٧٫٦ على الكمبيوتر، مقيس).
   تُزاح الشارةُ ٥ بكسل نحو أيقونتها هي على كل مقاس، ويبتعد الجارُ على التليفون ١٠ بكسل فوق هامش فيلامنت السالب (-1.5) — على الصف الذي
   له إيصال وحده (الشارةُ عليه). الصنفُ من NotesScreen::getPageClasses */
.en-remarks-actions .fi-ta-actions > .fi-icon-btn[wire\:click^="mountAction('viewReceipts'"] > .fi-icon-btn-badge-ctn { --tw-translate-x: calc(50% + 5px); }
@media (max-width: 900px) {
    .en-remarks-actions .fi-ta-actions > .fi-icon-btn[wire\:click^="mountAction('viewReceipts'"]:has(> .fi-icon-btn-badge-ctn) { margin-inline-end: calc(var(--spacing) * -1.5 + 10px); }
}
/* تبويبٌ فُتح قبل نشر «الوضع الداكن مقفول» على جهازٍ داكن (جولة إصلاح المرحلة ٢): جذرُه ما زال «dark» وسمتُه تتبدّل وحدها
   فاتحةً (X-En-Theme) فتظهر الشاشة نصفين حتى أول تنقّل أو F5 — وسكربتُه القديم لا يعرف ما يُصلحها. الصفحةُ الجديدة لا تُلبس الجذرَ
   «dark» أبدًا (darkMode(false) وadmin-sidebar.js)، فهذا الشريطُ لا يظهر إلا في تلك الحالة العابرة، ولا يعترض ضغطة. */
html.dark body::after {
    content: 'حدّث الصفحة (F5) لتظهر بالشكل الجديد';
    position: fixed; inset-inline: 0; bottom: 0; z-index: 100;
    padding: .35rem 1rem; text-align: center; pointer-events: none;
    font-size: var(--en-fs-sm); font-weight: var(--en-fw-bold);
    color: var(--warning-900); background: var(--warning-100); border-top: 1px solid var(--warning-300);
}
/* ----- متابعة الإدارة الهندسية: جدولا المهندسين والمراجعين فوق سجل التكليفات (طلب المالك ١٧ أكتوبر) -----
   بطاقتان جنبًا إلى جنب على الكمبيوتر وتحت بعض على التليفون، وكلُّ جدولٍ يتمرّر داخل بطاقته برأسٍ ثابت. ارتفاعُ البطاقة ١٤rem (نحو
   سبعة صفوف) فيبقى للسجل تحتها مكانٌ على شاشة اللابتوب — ومن يريد السجلَّ كلَّه يطوي البطاقتين (الطيُّ محفوظ).
   الاسمُ زرٌّ يصفّي السجل، وصفُّ المختار مظلَّل؛ والجاري / تحت المراجعة بلون الانتظار، والصفرُ باهت، و«محذوف» شارةٌ لا تُقصّ. */
.en-team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
    gap: 1rem;
    align-items: start;
}
.en-team-card .fi-section-content-ctn > .fi-section-content { padding: 0 !important; }
.en-team-scroll {
    max-height: 14rem;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;   /* شريطُ ويندوز العريض (١٥ بكسل) كان يقصّ نصف الأسماء على ١٢٨٠ */
}
.en-team-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    font-size: var(--en-fs-sm);
    font-variant-numeric: tabular-nums;
}
.en-team-table th,
.en-team-table td {
    padding: .3rem .55rem;
    border-bottom: 1px solid var(--en-ta-line);
    text-align: center;
    white-space: nowrap;
}
/* الرأسُ سطران دائمًا («تحت المراجعة» و«طلبات الرسومات» سطران) فتتساوى البطاقتان طولًا */
.en-team-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    height: 2.9em;
    background: var(--en-ta-head-bg);
    border-bottom-color: var(--en-ta-head-line);
    color: var(--gray-700);
    font-size: var(--en-fs-xs);
    font-weight: var(--en-fw-semibold);
    white-space: normal;
    line-height: 1.25;
}
.en-team-table th:first-child,
.en-team-table td:first-child { text-align: start; }
/* الاسمُ نحو خُمسَي العرض والأعمدةُ الأربعة تتقاسم الباقي: الجدولُ لا يتجاوز بطاقته على أي عرض (٤٤٠ بالقائمة مفتوحة، ٣٥٨ على التليفون) */
.en-team-table thead th:first-child { width: 40%; }
.en-team-table tbody tr:hover { background: var(--en-ta-row-hover); }
.en-team-table tbody tr.en-team-row-on { background: var(--en-accent-soft); }
.en-team-table tfoot th,
.en-team-table tfoot td {
    position: sticky;
    bottom: 0;
    background: var(--gray-50);
    border-top: 1px solid var(--en-ta-head-line);
    border-bottom: 0;
    color: var(--gray-900);
    font-weight: var(--en-fw-bold);
}
.en-team-who {
    display: flex;
    align-items: center;
    gap: .3rem;
    min-width: 0;
}
.en-team-name {
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--primary-700);
    font-weight: var(--en-fw-semibold);
    text-align: start;
    cursor: pointer;
}
.en-team-name:hover { text-decoration: underline; }
.en-team-name:focus-visible { outline: 2px solid var(--en-accent); outline-offset: 2px; border-radius: .25rem; }
.en-team-row-on .en-team-name { color: var(--primary-800); }
.en-team-name-plain { color: var(--gray-700); font-weight: var(--en-fw-medium); cursor: default; }
.en-team-name-plain:hover { text-decoration: none; }
.en-team-gone {
    flex: none;
    padding: 0 .3rem;
    border-radius: .25rem;
    background: var(--danger-50);
    color: var(--danger-700);
    font-size: var(--en-fs-xs);
    font-weight: var(--en-fw-semibold);
    line-height: 1.5;
}
.en-team-hot { color: var(--warning-700); font-weight: var(--en-fw-bold); }
.en-team-zero { color: var(--gray-400); }
.en-team-empty { padding: .75rem .9rem; color: var(--gray-500); font-size: var(--en-fs-sm); }
/* التليفون والتابلت (≤٩٠٠): الصفحةُ تتمدّد وتُمرَّر كالمعتاد والسجلُّ بطوله تحت البطاقتين. قاعدةُ التليفون العامة أعلى الملف
   (.fi-page:has(.fi-ta-content-ctn) display:block) أضعفُ تخصيصًا من قاعدة الكمبيوتر (:not(:has(.en-stage-bar))) فتبقى الصفحةُ صندوقًا،
   والبطاقتان كانتا تحصران السجلَّ في ٨rem يتمرّر داخلها (مقيس على ٣٩٠: ١٢٨ بكسل وصفّان) — هنا بتخصيصٍ يغلبها لهذه الصفحة وحدها.
   وتمريرُ البطاقة يكمل للصفحة عند آخره (لا contain) فلا يبدو التمريرُ عالقًا. */
@media (max-width: 900px) {
    .fi-page:has(.en-team-grid):not(:has(.en-stage-bar)) { display: block; max-height: none; overflow: visible; }
    .fi-page:has(.en-team-grid):not(:has(.en-stage-bar)) .fi-ta-content-ctn { flex: none; min-height: 0; }
    .fi-page:has(.en-team-grid) .fi-ta { scroll-margin-top: 4.5rem; }   /* ضغطُ الاسم ينزل للسجل تحت الشريط العلوي */
    .en-team-scroll { overscroll-behavior: auto; }
}
/* التليفون: الاسمُ ثلثُ العرض على سطرين بدل قصّه (لا تلميحَ باللمس)، و«طلبات الرسومات» يتّسع لعموده، وشارةُ الفترة تلتفّ ولا تُقصّ */
@media (max-width: 640px) {
    .en-team-scroll { max-height: 17rem; }
    .en-team-table th,
    .en-team-table td { padding-inline: .3rem; }
    .en-team-table thead th:first-child { width: 32%; }
    .en-team-name {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        white-space: normal;
        line-height: 1.3;
    }
    .en-team-card .fi-section-header .fi-badge,
    .en-team-card .fi-section-header .fi-badge * { white-space: normal; min-width: 0; text-align: start; }
}
/* شاشةُ اللابتوب القصيرة (أقل من ٨٠٠ بكسل ارتفاعًا: ١٣٦٦×٧٦٨، و١٩٢٠×١٠٨٠ بتكبير ١٢٥٪): البطاقتان كانتا تتركان للسجل ٨rem (صفّين،
   والترقيمُ تحت حافة الشاشة) — فالصفحةُ هنا تُمرَّر كالتليفون، والسجلُّ صندوقٌ بارتفاع الشاشة إلا الشريط برأسٍ ثابت (التخمينُ القديم
   100dvh − 12rem)، فتنزل الصفحةُ إليه فيظهر كلُّه بترقيمه. والأطولُ من ٨٠٠ يبقى صندوقًا يملأ الشاشة (ستة صفوف فأكثر). */
@media (min-width: 901px) and (max-height: 800px) {
    .fi-page:has(.en-team-grid):not(:has(.en-stage-bar)) { display: block; max-height: none; overflow: visible; }
    .fi-page:has(.en-team-grid):not(:has(.en-stage-bar)) .fi-ta-content-ctn { flex: none; min-height: 0; max-height: calc(100dvh - 12rem) !important; }
    .fi-page:has(.en-team-grid) .fi-ta { scroll-margin-top: 4.5rem; }
}
/* ----- دورة حياة الوثيقة — نافذةُ «وثائق التأمين» المنزلقة (partials/doc-life.blade.php، قائمة المالك ١٧ أكتوبر البند ٨) -----
   خطٌّ رأسي بنقاطٍ مرقّمة بترتيب المالك: الخطوةُ التي حصلت بلون النظام الأساسي، والتي لم تحصل باهتةٌ بـ«—»، والمقرَّرةُ (تاريخُها لم
   يأتِ) «مقرر» بتاريخها، وآخرُ خطوةٍ وصلتها الوثيقة بهالة. رموزُ السمة وحدها. كانت ملفًّا (en-doc-life.css) يُطلب مع النافذة فتُرسم
   لحظةَ فتحها أولَ مرة بلا أنماط — هنا مع السمة في رأس كل صفحة (دمجُ ١٧ أكتوبر) */
.en-life-wrap { font-size: var(--en-fs-base); }
.en-life-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem 1.25rem;
    margin-block-end: 1rem;
    padding-block-end: .75rem;
    border-block-end: 1px solid var(--en-modal-line);
    color: var(--gray-600);
    font-size: var(--en-fs-sm);
}
.en-life-summary > span { display: inline-flex; align-items: center; gap: .4rem; }
.en-life-muted { color: var(--gray-500); }
.en-life { list-style: none; margin: 0; padding: 0; }
.en-life-step { position: relative; display: flex; gap: .75rem; padding-block-end: .85rem; }
/* الخطُّ بين نقطةٍ والتي تحتها: من أسفل النقطة إلى أول الخطوة التالية */
.en-life-step::before {
    content: '';
    position: absolute;
    inset-inline-start: calc(.85rem - 1px);
    inset-block: 1.7rem 0;
    inline-size: 2px;
    background: var(--gray-200);
}
.en-life-step:last-child::before { display: none; }
.en-life-step.is-done::before { background: color-mix(in srgb, var(--primary-500) 45%, transparent); }
.en-life-dot {
    flex: none;
    display: grid;
    place-items: center;
    inline-size: 1.7rem;
    block-size: 1.7rem;
    border-radius: 50%;
    border: 2px solid var(--gray-300);
    background: var(--en-white);
    color: var(--gray-500);
    font-size: var(--en-fs-xs);
    font-weight: var(--en-fw-semibold);
    font-variant-numeric: tabular-nums;
}
.en-life-step.is-done .en-life-dot { background: var(--primary-500); border-color: var(--primary-500); color: var(--en-white); }
.en-life-step.is-last .en-life-dot { box-shadow: 0 0 0 4px var(--en-accent-soft); }
.en-life-body { flex: 1; min-inline-size: 0; padding-block-start: .2rem; }
.en-life-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .15rem .75rem; }
.en-life-label { color: var(--gray-900); font-weight: var(--en-fw-semibold); }
.en-life-step.is-todo .en-life-label { color: var(--gray-500); font-weight: var(--en-fw-medium); }
.en-life-date { color: var(--gray-800); font-size: var(--en-fs-sm); font-variant-numeric: tabular-nums; white-space: nowrap; }
.en-life-step.is-todo .en-life-date { color: var(--gray-400); }
.en-life-time { margin-inline-start: .4rem; color: var(--gray-500); }
.en-life-who { color: var(--primary-700); font-size: var(--en-fs-sm); }
.en-life-note { color: var(--gray-500); font-size: var(--en-fs-xs); overflow-wrap: anywhere; }
.en-life-step.is-todo .en-life-planned { color: var(--warning-700); font-weight: var(--en-fw-semibold); }
.en-life-step.is-todo .en-life-who { color: var(--gray-500); }
