/* ==========================================================================
   صفحة «قاعدة العملاء» (#/clients) — نقل حرفي لتصميم madar-client-management.
   كل القواعد **مسكوبة تحت `.cdb`** عشان ما تسرّبش على باقي صفحات النظام
   (التصميم الأصلي بيستخدم أسماء عامة زي table / header / footer / .panel).
   الألوان الثابتة بتاعت التصميم اتحوّلت لمتغيّرات على `.cdb`، وتحت
   `[data-theme="dark"]` بتتبدّل بمتغيّرات النظام عشان الصفحة ما تتكسرش
   في الثيم الغامق.
   ========================================================================== */

.cdb-page { max-width: 1700px; }

.cdb,
.modal.cdb-hist {
  /* ------- نهاري: نفس قيم التصميم المرجعي بالحرف ------- */
  --c-ink: #17223b;
  --c-muted: #7b8498;
  --c-line: #e7e9f0;
  --c-card: #fff;
  --c-head: #fafbfc;
  --c-rowline: #f0f1f5;
  --c-th: #777f91;
  --c-small: #8e96a7;
  --c-hint: #8b93a4;
  --c-num: #30394c;
  --c-link: #5d36c7;
  --c-purple: #6e42da;
  --c-field: #4f586c;
  --c-fieldline: #e0e3ea;
  --c-wa: #13885d;
  --c-call: #3266b1;
  --c-green: #087849;
  --c-red: #bd2730;
  --c-blue: #2863bb;
  --c-amber: #9a650e;
  --c-loss: #a52b31;
  --c-lossmuted: #6c7280;
  --c-dash: #a3a9b6;
  --c-dup-fg: #b45a00;
  --c-dup-bg: #fff0e1;
  --c-chip-fg: #747d8e;
  --c-on-fg: #6339c8;
  --c-on-bg: #eee9ff;
  --c-sep: #e2e4ea;
  --c-stat1-fg: #5934b5;
  --c-stat1-bg: #f7f5ff;
  --c-stat2-fg: #275fa8;
  --c-stat2-bg: #f2f7ff;
  --c-statline: #edf0f4;
  --c-statnum: #273148;
  --c-total-bg: #fafbfc;
  --c-shadow: 0 2px 10px rgba(23, 34, 59, .03);

  color: var(--c-ink);
  font-family: Tahoma, Arial, sans-serif;
  font-size: 14px;
}

/* ------- ليلي: نفس التخطيط، ألوان النظام ------- */
:root[data-theme="dark"] .cdb,
:root[data-theme="dark"] .modal.cdb-hist {
  --c-ink: var(--ink);
  --c-muted: var(--muted);
  --c-line: var(--line);
  --c-card: var(--card);
  --c-head: var(--card-2);
  --c-rowline: var(--line);
  --c-th: var(--muted);
  --c-small: var(--faint);
  --c-hint: var(--faint);
  --c-num: var(--ink);
  --c-link: #b39bf5;
  --c-purple: #a98af0;
  --c-field: var(--ink);
  --c-fieldline: var(--line-strong);
  --c-wa: #3fbd8d;
  --c-call: #6fa0f0;
  --c-green: var(--ok);
  --c-red: var(--danger);
  --c-blue: var(--info);
  --c-amber: var(--warn);
  --c-loss: var(--danger);
  --c-lossmuted: var(--faint);
  --c-dash: var(--faint);
  --c-dup-fg: #e0a35f;
  --c-dup-bg: #33251a;
  --c-chip-fg: var(--muted);
  --c-on-fg: #c3aefb;
  --c-on-bg: #241a3d;
  --c-sep: var(--line-strong);
  --c-stat1-fg: #c3aefb;
  --c-stat1-bg: #201a33;
  --c-stat2-fg: #8db4f5;
  --c-stat2-bg: #16203a;
  --c-statline: var(--line);
  --c-statnum: var(--ink);
  --c-total-bg: var(--card-2);
  --c-shadow: 0 2px 10px rgba(0, 0, 0, .35);
}
/* لو المستخدم على «تفضيل النظام» ومفيش data-theme صريح */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .cdb,
  :root:not([data-theme="light"]) .modal.cdb-hist {
    --c-ink: var(--ink); --c-muted: var(--muted); --c-line: var(--line);
    --c-card: var(--card); --c-head: var(--card-2); --c-rowline: var(--line);
    --c-th: var(--muted); --c-small: var(--faint); --c-hint: var(--faint);
    --c-num: var(--ink); --c-link: #b39bf5; --c-purple: #a98af0;
    --c-field: var(--ink); --c-fieldline: var(--line-strong);
    --c-wa: #3fbd8d; --c-call: #6fa0f0;
    --c-green: var(--ok); --c-red: var(--danger); --c-blue: var(--info); --c-amber: var(--warn);
    --c-loss: var(--danger); --c-lossmuted: var(--faint); --c-dash: var(--faint);
    --c-dup-fg: #e0a35f; --c-dup-bg: #33251a;
    --c-chip-fg: var(--muted); --c-on-fg: #c3aefb; --c-on-bg: #241a3d; --c-sep: var(--line-strong);
    --c-stat1-fg: #c3aefb; --c-stat1-bg: #201a33; --c-stat2-fg: #8db4f5; --c-stat2-bg: #16203a;
    --c-statline: var(--line); --c-statnum: var(--ink); --c-total-bg: var(--card-2);
    --c-shadow: 0 2px 10px rgba(0, 0, 0, .35);
  }
}

/* ------------------------------- الهيدر ------------------------------- */
.cdb > header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; }
.cdb > header p { color: #8d95a7; margin: 0 0 7px; font-size: 12px; }
:root[data-theme="dark"] .cdb > header p { color: var(--faint); }
.cdb > header h1 { margin: 0 0 7px; font-size: 25px; font-family: Tahoma, Arial, sans-serif; }
.cdb > header span { color: var(--c-muted); }

/* ------------------------------- فلتر الفترة ------------------------------- */
.cdb .date-filter { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.cdb .date-filter > b { color: #5d6576; font-size: 12px; }
:root[data-theme="dark"] .cdb .date-filter > b { color: var(--muted); }
.cdb .date-filter label { color: #7c8495; display: flex; align-items: center; gap: 7px; font-size: 10px; }
:root[data-theme="dark"] .cdb .date-filter label { color: var(--faint); }
.cdb .date-filter input {
  color: var(--c-field); background: var(--c-card); border: 1px solid var(--c-fieldline);
  border-radius: 8px; padding: 7px 9px; font: inherit; font-size: 12px;
}
/* السهمين و«اليوم» بياخدوا كلاسات النظام العامة (`icon-btn`/`btn-ghost`) عشان
   يبقوا **نفس** أزرار شريط الاجتماعات بالظبط — واللي هنا **مقاسات وبس**:
   الزرار العام ٣٨px وخانات الفترة هنا أصغر، فكان هيطول عليها.
   ⚠️ ومافيش لون مكتوب هنا عن قصد: الألوان بتيجي من توكنز النظام،
      فأي تعديل في الثيم بيطبّق على الشريطين مع بعض. */
.cdb .date-filter .icon-btn { width: 32px; height: 32px; border-radius: 8px; }
.cdb .date-filter .btn-ghost { padding: 7px 13px; font-size: 12px; border-radius: 8px; }

/* ------------------------------- كرتا الإحصاء ------------------------------- */
.cdb .company-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 18px; }
.cdb .company-stats section {
  background: var(--c-card); border: 1px solid var(--c-line); border-radius: 12px; overflow: hidden;
}
.cdb .company-stats h3 {
  color: var(--c-stat1-fg); background: var(--c-stat1-bg); margin: 0; padding: 10px 14px;
  font-size: 12px; font-family: Tahoma, Arial, sans-serif;
}
.cdb .company-stats section:nth-child(2) h3 { color: var(--c-stat2-fg); background: var(--c-stat2-bg); }
.cdb .company-stats section > div { display: grid; grid-template-columns: repeat(3, 1fr); }
.cdb .company-stats span {
  color: #777f90; border-left: 1px solid var(--c-statline); padding: 11px 14px; font-size: 10px;
}
:root[data-theme="dark"] .cdb .company-stats span { color: var(--muted); }
.cdb .company-stats span:last-child { border-left: 0; }
.cdb .company-stats b { color: var(--c-statnum); margin-top: 3px; font-size: 19px; display: block; }
.cdb .company-stats .total { background: var(--c-total-bg); font-weight: 700; }

/* ------------------------------- البانل والتولبار ------------------------------- */
.cdb .panel {
  border: 1px solid var(--c-line); background: var(--c-card); border-radius: 15px;
  overflow: hidden; box-shadow: var(--c-shadow);
}
.cdb .toolbar {
  border-bottom: 1px solid var(--c-line); display: flex; justify-content: space-between;
  align-items: center; padding: 20px 22px; gap: 15px;
}
.cdb .toolbar h2 { margin: 0 0 5px; font-size: 18px; font-family: Tahoma, Arial, sans-serif; }
.cdb .toolbar p { color: var(--c-muted); margin: 0; font-size: 12px; }
.cdb .filter-area { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.cdb .quick-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.cdb .quick-filters button {
  color: var(--c-chip-fg); background: none; border: 0; border-radius: 7px;
  padding: 7px 9px; font: inherit; font-size: 10px; cursor: pointer;
}
.cdb .quick-filters button.on { color: var(--c-on-fg); background: var(--c-on-bg); font-weight: 700; }
.cdb .quick-filters i { background: var(--c-sep); width: 1px; height: 22px; margin: 0 3px; }
/* عناوين أقسام البطاقة — التذاكر فوق والتواصلات تحت */
.modal.cdb-hist .hist-sub {
  margin: 16px 0 8px; font-size: 13px; font-weight: 700; color: var(--c-th);
}
.modal.cdb-hist .hist-sub:first-of-type { margin-top: 4px; }

/* المراجعة: نفس عناصر الاجتماعات (btn sm + mdot ok) — الكلاسات عامة، وده كل
   اللي محتاجينه هنا هو تصغير المقاس شوية عشان الجدول كتيف. */
.cdb .cdb-rev .btn.sm { font-size: 11px; padding: 4px 12px; }
.cdb .cdb-rev .mdot { font-size: 11px; max-width: 110px; }

/* خانة سلاك: بتفضل «…» لحد ما رد slack-link يوصل.
   ⚠️ **الاتنين لازم**: البطاقة بتتبني في `body` **بره `.cdb`** (زي كل كلاسات الخانات
   تحت)، فكتابة `.cdb` لوحدها كانت هتخلّي عمود سلاك جوّه البطاقة بلا تنسيق. */
.cdb .cdb-slack, .modal.cdb-hist .cdb-slack {
  display: inline-flex; flex-direction: column; gap: 2px;
}

/* ------------------- قايمة اختيار متعدّد (القناة / الحالة) -------------------
   ⚠️ مش `<select multiple>`: ده محتاج Ctrl+click، ومابيبانش فيه إيه المختار، وشكله
   مابيتنسّقش. زرار + لوحة تشيك بوكس، وكل الألوان من متغيّرات `.cdb` القايمة فمافيش
   لون منسوخ يقع في الدارك مود.
   📌 اللوحة **جوّه** `.ms` اللي `position:relative` فبتفتح تحت الزرار بالظبط في RTL. */
.cdb .ms { position: relative; }
.cdb .ms-btn {
  display: flex; align-items: center; gap: 7px; cursor: pointer;
  border: 1px solid var(--c-line); background: var(--c-head); color: var(--c-field);
  border-radius: 9px; padding: 7px 11px; font: inherit; font-size: 12px;
}
.cdb .ms-btn:hover { border-color: var(--c-fieldline); }
.cdb .ms-lab { color: var(--c-th); font-size: 10px; }
.cdb .ms-val { font-weight: 700; max-width: 150px; overflow: hidden;
               text-overflow: ellipsis; white-space: nowrap; }
.cdb .ms-arrow { width: 0; height: 0; flex: none;
  border-inline: 4px solid transparent; border-top: 5px solid var(--c-th); }
.cdb .ms.open .ms-arrow { transform: rotate(180deg); }

.cdb .ms-panel {
  display: none; position: absolute; z-index: 40; inset-inline-start: 0; top: calc(100% + 5px);
  min-width: 190px; max-height: 260px; overflow-y: auto;
  background: var(--c-card); border: 1px solid var(--c-line);
  border-radius: 10px; box-shadow: var(--c-shadow); padding: 5px;
}
.cdb .ms.open .ms-panel { display: block; }
/* 🔴 **الخيار `<label>` وهو جوّه `.cdb-selects`** — والقاعدة القديمة
   `.cdb .cdb-selects label` (0,2,1) كانت **بتغلب** `.cdb .ms-opt` (0,2,0) على
   الـspecificity، فكل خيار كان بياخد `font-size:10px` و`padding:0 11px` وخلفية
   الحبّة وبردر — والنتيجة **حبّة فاضية فيها تشيك بوكس بلا اسم** (م. قطب: «ايش
   عرفني انا معلّمة على ايه»).
   الحل: القواعد القديمة بتاعت الـ`<select>` اتشالت (بقت ميتة أصلاً — مافيش
   `<select>` في التولبار بعد التحويل للاختيار المتعدّد)، والقاعدة دي بقت
   `.cdb .ms .ms-opt` (0,3,0) فمستحيل أي قاعدة `label` عامة تغلبها تاني.
   ⚠️ والاسم بقى **`flex:1`** كمان: عنصر flex فيه `overflow:hidden` بياخد
   `min-width:0`، فكان يقدر ينكتم لصفر عرض لو المساحة ضاقت. */
.cdb .ms .ms-opt {
  display: flex; align-items: center; gap: 8px; padding: 7px 9px;
  border: 0; background: none; border-radius: 7px; cursor: pointer;
  font: inherit; font-size: 12px; color: var(--c-field);
}
.cdb .ms .ms-opt:hover { background: var(--c-head); }
.cdb .ms .ms-opt input {
  accent-color: var(--c-purple); flex: none; margin: 0;
  width: 15px; height: 15px; cursor: pointer;
}
.cdb .ms .ms-opt span {
  flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cdb .ms-empty { padding: 8px; font-size: 11px; color: var(--c-hint); }

/* ------- فلتر التكرار: قايمة اختيار **واحد**، بلا مربّع -------
   القوايم التانية (القناة/الحالة) بتفضل بالتشيك بوكس — الاختيار فيها متعدّد فعلاً
   وبيوصل ٢٣ خيار، والمربّع هو اللي بيوضّح إن ده اختيار متعدّد. التكرار تلات خيارات
   وأسماؤها بتوصف الحالة، فالمربّع كان زحمة.
   ⚠️ والعنصر `<input type="radio">` **فاضل في الـDOM ومخفي بـCSS**: الـradio بنفس
   الـ`name` هو اللي بيضمن إن **واحد بس** يبقى مختار — المتصفح بيعمل ده، مش كود
   بنكتبه. شيله كان معناه منطق حصر في الجافاسكريبت يقدر يغلط.
   ⚠️ و`visually-hidden` مش `display:none` عشان قارئ الشاشة يفضل يقراه.
   📌 والمختار بيبان **باللون والخط العريض** — نفس لون الشريحة الشغّالة
   (`--c-on-fg`) عشان الشكل يبقى واحد في التولبار. */
.cdb .ms.ms-one .ms-opt input {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.cdb .ms.ms-one .ms-opt span { flex: 1; }
/* 📌 مافيش علامة قبل الاسم — اللون والخط العريض كفاية للمختار، والقايمة بتتقفل
   بعد الاختيار فالمستخدم شايف اختياره على الزرار نفسه كمان. */
.cdb .ms.ms-one .ms-opt input:checked + span { color: var(--c-on-fg); font-weight: 700; }
/* التركيز بالكيبورد لازم يبان — المربّع مخفي فمافيش حلقة تركيز تلقائية */
.cdb .ms.ms-one .ms-opt input:focus-visible + span { outline: 2px solid var(--c-purple); outline-offset: 2px; }

/* ⚠️ **مافيش قاعدة `label` هنا عن قصد.** كان فيه `.cdb .cdb-selects label` (حبّة
   بحدود وخلفية) للـ`<select>` القديم — وبعد التحويل للاختيار المتعدّد بقى الـlabel
   الوحيد جوّه `.cdb-selects` هو **خيار القايمة** (`.ms-opt`)، فالقاعدة كانت
   بتتسرّب عليه وتغلبه على الـspecificity وتخبّي اسمه. أي تنسيق للـ`.ms` يتكتب على
   `.cdb .ms …` مش على `label`. (وقواعد `<select>` اتشالت — مافيش select في التولبار.) */
.cdb .cdb-selects { display: flex; gap: 9px; flex-wrap: wrap; }
.cdb .tools { display: flex; gap: 9px; }
.cdb .tools label {
  border: 1px solid var(--c-line); color: #9299a9; background: var(--c-head);
  border-radius: 9px; display: flex; align-items: center; padding: 0 11px;
}
:root[data-theme="dark"] .cdb .tools label { color: var(--faint); }
.cdb .tools input {
  background: none; border: 0; outline: 0; width: 210px; padding: 9px;
  font: inherit; font-size: 12px; color: var(--c-ink);
}
/* زرار الـ PDF — نفس ارتفاع وحدود خانة البحث اللي جنبه */
.cdb .cdb-pdf {
  border: 1px solid var(--c-line); background: var(--c-head); color: var(--c-field);
  border-radius: 9px; display: inline-flex; align-items: center; gap: 6px;
  padding: 0 13px; font: inherit; font-size: 12px; cursor: pointer; white-space: nowrap;
  transition: background .15s, border-color .15s, color .15s;
}
.cdb .cdb-pdf:hover { color: var(--c-on-fg); background: var(--c-on-bg); border-color: var(--c-on-fg); }
.cdb .cdb-pdf:focus-visible { outline: 2px solid var(--c-on-fg); outline-offset: 2px; }

/* ------------------------------- الجدول ------------------------------- */
/* 🔴 **القواعد دي كانت `.cdb table` / `.cdb th` / `.cdb td` — بمحدّد عنصر.**
   يعني بتطبّق على **أي** جدول جوّه الصفحة، وهي مكتوبة لجدول واحد بالذات:
   جدول السجل بأعمدته التلاتاشر. وأول جدول جديد نزل في الصفحة (جدول القنوات في
   تاب الإحصائيات) ورث `min-width: 1150px` — فطلع **١١٥٠ بكسل جوّه كارت ٦٨٩**،
   و`overflow: hidden` بتاعت الكارت قصّت عمود «تواصلات» بالكامل. مافيش خطأ،
   ومافيش رسالة: عمود بعنوانه وأرقامه موجود في الـDOM ومش على الشاشة، والكارت
   التاني بيرسم فوق الزيادة فمالوش أثر يدلّ عليه.
   📌 **والحل جوّه المشكلة مش جنبها**: القواعد اتربطت بـ`.tech-table` (الجدول
      اللي اتكتبت له)، بدل ما نحطّ `min-width: 0` على كل جدول جديد بعد كده —
      ده كان بيسيب اللغم لكل حد جاي.
   ⚠️ **ومافيش جدول تاني كان بيعتمد عليها**: جداول المودال (`.hist-tickets` ·
      `.mtg-tbl`) بتتبني في `body` **برّه** `.cdb`، فقواعدها مكتوبة لها صريح
      تحت (`.modal.cdb-hist …`) — وده بالظبط سبب وجود التعليق اللي تحت.
   (نفس عيلة `.cdb .cdb-selects label` اللي كانت لعنصر مااتشالش وفضلت تكسب.) */
.cdb .tablewrap { overflow: auto; }
.cdb .tech-table { border-collapse: collapse; text-align: right; width: 100%; min-width: 1150px; }
.cdb .tech-table th {
  color: var(--c-th); border-bottom: 1px solid var(--c-line); white-space: nowrap;
  background: var(--c-head); padding: 16px 15px; font-size: 11px; font-weight: 600;
}
.cdb .tech-table td {
  vertical-align: middle; border-bottom: 1px solid var(--c-rowline);
  padding: 16px 15px; font-size: 12px;
}

/* 💎 عمود VIP + خلفية صف العميل المميز (طلب فراس ٢٠٢٦-٠٩-٠٩).
   🎯 **`--accent-tint` — نفس توكن صفحة الصفقات بالحرف**، فالصفحتين بيتلوّنوا زي
      بعض. لون مكتوب هنا كان بيدّي درجتين لنفس المعنى.
   ⚠️ **ومافيش `!important`**: جدول قاعدة العملاء **مالوش قاعدة hover على
      الصفوف** (اتفحص) — فالـ`!important` اللي في `deals.css` مالهاش لزمة هنا،
      وحطّها بيكسر أي تلوين حالة يتضاف بعدين.
   ⚠️ **والشارة نفسها شكلها من `deals.css`** (قواعدها مش مقيّدة بـ`.dls`) —
      فمافيش نسخة تانية تفرق. */
.cdb tr.cdb-viprow > td { background: var(--accent-tint); }
.cdb .tech-table th.cdb-vip, .cdb .tech-table td.cdb-vip { text-align: center; }
.cdb .tech-table td b { margin-bottom: 4px; font-size: 11px; display: block; }
.cdb .tech-table td small { color: var(--c-small); font-size: 9px; display: block; }
/* العمود الأول والسادس ليهم سطر تحتاني في الهيدر (زي التصميم) */
.cdb .tech-table th .th-sub { color: #a0a6b2; margin-top: 4px; font-size: 8px; font-weight: 400; display: block; }
:root[data-theme="dark"] .cdb .tech-table th .th-sub { color: var(--faint); }
/* ⚠️ خلايا مشتركة بين الجدول ومودالات السجل. المودال بيتبني في body برّه `.cdb`،
   فأي قاعدة هنا لازم تتكتب للاتنين — لو اتكتبت لـ `.cdb` بس، الكود جوّه المودال
   بياخد لون الروابط العام بتاع النظام (أخضر) والحالة تطلع بلا لون. */
.cdb .ltr, .modal.cdb-hist .ltr { direction: ltr; text-align: right; }
.cdb .phone-text, .modal.cdb-hist .phone-text { margin-bottom: 5px; display: block; }
.cdb .main-link, .modal.cdb-hist .main-link {
  color: var(--c-link); margin-bottom: 5px; font-size: 12px; font-weight: 700;
  text-decoration: none; display: block;
}
.cdb .main-link:hover, .modal.cdb-hist .main-link:hover { text-decoration: underline; }
.cdb .link-hint, .modal.cdb-hist .link-hint {
  margin-top: 3px; display: block; color: var(--c-hint) !important; font-size: 9px !important;
}

/* هنت «الرقم ده له رقم تاني» — تذكرة أودو بتشيل phone و mobile، فالعميل ممكن
   يكون مسجّل بمدخلين واللي بيراجع يفتحهم على إنهم عميلين.
   📌 وبيتطبع: رقم تاني للعميل معلومة على الورق، مش زرار. */
.cdb .cdb-alt, .modal.cdb-hist .cdb-alt {
  margin-top: 3px; display: block; color: var(--c-hint); font-size: 10px; line-height: 1.5;
}
.cdb .cdb-alt b, .modal.cdb-hist .cdb-alt b { color: var(--c-num); font-weight: 700; }

/* عنوان مجموعة جوّه قايمة القناة (157) — «قنوات الواتساب» / «خطوط الاتصال».
   🔴 **الاسم لوحده مابقاش مميّز**: «CS - SOCIAL» إنبوكس شات ووت **ورقم حملة**
      في الكول سنتر، فالقايمة لازم تقول الخيار ده بتاع إيه.
   ⚠️ **ومش خيار**: مالوش تشيك بوكس ومالوش `cursor:pointer` عشان محدش يدوس. */
.cdb .ms-head {
  padding: 7px 11px 4px; color: var(--c-th); font-size: 9px; font-weight: 700;
  border-top: 1px solid var(--c-line); margin-top: 3px; cursor: default;
}
.cdb .ms-panel .ms-head:first-child { border-top: 0; margin-top: 0; }

/* هنت خط الكول سنتر تحت الرقم (157) — منقولة من صفحة مينا «عملاء جدد».
   ⚠️ **وبتتطبع**: دي معلومة على الورق (زي «كمان: …»)، مش زرار. */
.cdb .cdb-notes { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 4px; }
.cdb .cdb-note {
  display: inline-block; padding: 2px 7px; border-radius: 6px;
  font-size: 9px !important; font-weight: 700; line-height: 1.6; cursor: help;
}
.cdb .cdb-note.out  { color: var(--c-call);   background: var(--c-stat2-bg); }

/* زرارا الرقم: نسخ · افتح البحث السريع (م. قطب).
   ⚠️ مقاسات وألوان من توكنز الصفحة (`--c-*`) زي باقي الخلايا — مافيش لون مكتوب،
      فالدارك مود بيمشي لوحده.
   📌 وبيبانوا في **الجدول بس**: `no-print` على الحاوية عشان زرار مالوش معنى على
      الورق (نفس قاعدة عمود «مخالفة» و«تعديل»). */
.cdb .cdb-pacts { display: inline-flex; gap: 4px; margin-top: 4px; }
.cdb .cdb-pact {
  display: inline-grid; place-items: center; width: 22px; height: 22px;
  border: 1px solid var(--c-line); background: var(--c-card); color: var(--c-hint);
  border-radius: 6px; cursor: pointer; padding: 0; font: inherit;
  transition: color .15s, border-color .15s;
}
.cdb .cdb-pact:hover { color: var(--c-link); border-color: var(--c-link); text-decoration: none; }
/* ⚠️ زرار البحث `<a>` مش `<button>` (بيفتح تاب جديد بالمتصفّح)، فمحتاج تصفير
   تنسيق الرابط عشان الاتنين يبانوا **نفس الحاجة** — خط تحت على واحد بس بيخلّي
   المستخدم يفتكرهم نوعين مختلفين. */
.cdb a.cdb-pact { text-decoration: none; }

/* ------------------- مودال «اجتماعات الرقم» (122) -------------------
   الرقم في العمود بقى زرار بيفتح البطاقة.
   ⚠️ **مش `no-print`**: الرقم نفسه **معلومة** لازم تتطبع — اللي بيتشال في
      الطباعة هو **شكل** الزرار وبس، مش قيمته. */
.cdb .cdb-mtgbtn {
  font: inherit; border: 0; background: none; padding: 0; cursor: pointer;
  color: var(--c-num); font-weight: 700;
  text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 3px;
}
.cdb .cdb-mtgbtn:hover { color: var(--c-purple); }

/* الحالة الرمادية — التلات حالات اللي مش نتيجة (قديم · ملغي · اتمسح).
   ⚠️ **الاتنين لازم**: البطاقة بتتبني في `body` **بره `.cdb`**، فكتابة `.cdb`
      لوحدها كانت هتسيب الشارة بلا لون جوّه المودال. */
.cdb .status-text.mute, .modal.cdb-hist .status-text.mute { color: var(--c-lossmuted); }

.modal.cdb-hist .mtg-tblwrap {
  overflow-x: auto; border: 1px solid var(--c-line); border-radius: 11px;
}
.modal.cdb-hist table.mtg-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.modal.cdb-hist table.mtg-tbl th {
  text-align: right; font-size: 10.5px; font-weight: 600; color: var(--c-th);
  background: var(--c-head); padding: 8px 12px;
  border-bottom: 1px solid var(--c-line); white-space: nowrap;
}
.modal.cdb-hist table.mtg-tbl td {
  padding: 9px 12px; border-bottom: 1px solid var(--c-rowline); white-space: nowrap;
}
.modal.cdb-hist table.mtg-tbl tr:last-child td { border-bottom: 0; }

@media print { .cdb .cdb-pacts { display: none; } }
.cdb .source-text, .modal.cdb-hist .source-text { font-weight: 700; }
.cdb .source-text.whatsapp, .modal.cdb-hist .source-text.whatsapp { color: var(--c-wa); }
.cdb .source-text.call, .modal.cdb-hist .source-text.call { color: var(--c-call); }
.cdb .plain-number { color: var(--c-num); font-size: 15px; }
.cdb .status-text, .modal.cdb-hist .status-text { font-weight: 700; }
.cdb .status-text.red, .modal.cdb-hist .status-text.red { color: var(--c-red); }
.cdb .status-text.green, .modal.cdb-hist .status-text.green { color: var(--c-green); }
.cdb .status-text.blue, .modal.cdb-hist .status-text.blue { color: var(--c-blue); }
.cdb .status-text.amber, .modal.cdb-hist .status-text.amber { color: var(--c-amber); }
.cdb .loss-text, .modal.cdb-hist .loss-text { color: var(--c-loss); display: grid; gap: 5px; }
.cdb .loss-text small, .modal.cdb-hist .loss-text small { color: var(--c-lossmuted); font-size: 10px; }
.cdb .muted-dash, .modal.cdb-hist .muted-dash { color: var(--c-dash); }
.cdb .duplicate {
  color: var(--c-dup-fg); background: var(--c-dup-bg); border: 0; border-radius: 99px;
  padding: 7px 12px; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer;
}
.cdb .text-action { background: none; border-radius: 0; padding: 0; text-decoration: underline; }

/* عمود «مخالفة» — نفس فكرة أيقونة التحذير في جدول الاجتماعات: أصفر، صامت لحد ما
   تعدّي عليه. بيتكتب بمتغيّرات النظام مش بقيم التصميم عشان يشتغل في الوضعين. */
.cdb .tech-table td.cdb-viol { text-align: center; }
.cdb .cdb-violbtn {
  background: none; border: 1px solid transparent; border-radius: 8px; cursor: pointer;
  color: var(--warn, #d9822b); font-size: 15px; line-height: 1; padding: 6px 9px;
  transition: background .15s, border-color .15s;
}
.cdb .cdb-violbtn:hover { background: color-mix(in srgb, var(--warn, #d9822b) 14%, transparent); border-color: var(--warn, #d9822b); }
.cdb .cdb-violbtn:focus-visible { outline: 2px solid var(--warn, #d9822b); outline-offset: 2px; }

/* ------------------------------- الفوتر ------------------------------- */
.cdb .panel > footer {
  color: #7d8698; display: flex; justify-content: space-between; padding: 15px 22px; font-size: 11px;
}
:root[data-theme="dark"] .cdb .panel > footer { color: var(--muted); }

/* ------------------------------- مودالات السجل ------------------------------- */
/* بيتحطّوا جوّه .modal-overlay بتاع النظام، لكن الكارت نفسه بتصميم المرجع */
.modal.cdb-hist {
  background: var(--c-card, #fff); border: 0; border-radius: 16px; padding: 28px;
  position: relative; box-shadow: 0 20px 70px rgba(0, 0, 0, .2);
  font-family: Tahoma, Arial, sans-serif;
}
.modal.cdb-hist.narrow { max-width: min(500px, 94vw); }
/* ٦ أعمدة بعد إضافة سلاك لجدول التذاكر (م. قطب) — 850 كانت بتزنق الكود والحالة */
.modal.cdb-hist.wide { max-width: min(950px, 96vw); }
.modal.cdb-hist h2 { font-size: 18px; margin: 0 0 5px; font-family: Tahoma, Arial, sans-serif; }
.modal.cdb-hist .history-note { color: var(--c-muted); margin: 4px 0 0; font-size: 11px; }
.modal.cdb-hist .close {
  color: #81889a; background: none; border: 0; font-size: 26px; line-height: 1;
  position: absolute; top: 14px; left: 18px; cursor: pointer;
}
.modal.cdb-hist table {
  border: 1px solid var(--c-line); border-radius: 10px; min-width: 0; width: 100%;
  margin-top: 18px; overflow: hidden; border-collapse: collapse; text-align: right;
}
.modal.cdb-hist th, .modal.cdb-hist td { padding: 13px 15px; font-size: 12px; }
.modal.cdb-hist th {
  color: var(--c-th); background: var(--c-head); border-bottom: 1px solid var(--c-line);
  font-size: 11px; font-weight: 600; white-space: nowrap;
}
.modal.cdb-hist td { border-bottom: 1px solid var(--c-rowline); vertical-align: middle; }
.modal.cdb-hist td small { color: var(--c-hint); margin-top: 4px; display: block; font-size: 9px; }
/* 📌 عمود «رقم الجوال» مش بيتولد أصلاً في البطاقة العريضة — كل سطورها لنفس
   الرقم، فتكراره كان ضوضاء. (كانت فيه قاعدة CSS بتخفيه؛ اتشالت مع العمود عشان
   ما تخفيش «مصدر العميل» اللي بقى أول عمود.) */

/* ------------------------------- الشاشات الصغيرة ------------------------------- */
@media (max-width: 1200px) {
  .cdb .filter-area { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 1100px) {
  .cdb .toolbar { flex-direction: column; align-items: flex-start; gap: 15px; }
  .cdb .tools { flex-wrap: wrap; width: 100%; }
  .cdb .tools label { flex: 1; }
  .cdb .tools input { width: 100%; }
}
@media (max-width: 700px) {
  .cdb .company-stats { grid-template-columns: 1fr; }
  .cdb .date-filter { flex-wrap: wrap; align-items: flex-start; }
  .cdb .date-filter > b { width: 100%; }
  .cdb > header h1 { font-size: 19px; }
  .cdb .tools label { min-width: 100%; }
}

/* ==========================================================================
   الطباعة / تحميل PDF
   بيطبع اللي على الشاشة بالظبط — يعني نتيجة الفلتر. أدوات الفلترة نفسها
   بتختفي (.no-print) وسطر #cdbPrintHead بيبان مكانها بالفترة والفلاتر والعدد.

   ⚠️ بنفرض ألوان النهار هنا حتى لو المستخدم على الثيم الغامق: الصفحة دي جدول
   ١٠ أعمدة مليان، ولو اتطبع بخلفية غامقة بيطلع مستطيل أسود بيشرب الحبر ومش
   مقروء على الورق. القيم دي هي **نفس** قيم `.cdb` النهارية فوق بالحرف؛ لو
   اتغيّرت هناك لازم تتغيّر هنا. `!important` عشان تغلب `[data-theme="dark"]`
   و`prefers-color-scheme` من غير ما نكرّر المحدِّدات التلاتة.
   ========================================================================== */
/* ==========================================================================
   «خارج الفترة» — الفلترة و«مكرر ×N» بقوا على تواصلات الفترة (2026-09-08)
   ⚠️ **الكلاسات دي لازم يكون لها تعريف**: كلاس مخترع مالوش CSS بيعمل **لا حاجة**
      في صمت — الخانة بتطلع نص عادي، والأعراض بتودّي للمكان الغلط.
   📌 وكلها بتوكنز `--c-*` بتاعت الصفحة، فالدارك مود ماشي لوحده.
   ========================================================================== */
/* سطر شرح فوق جدول المودال — بيقول إن الجدول كل التاريخ وكام سطر برّه الفترة */
.modal.cdb-hist .cdb-hist-note {
  margin: 0 0 12px; padding: 9px 11px; border-radius: 8px;
  background: var(--c-head); border: 1px solid var(--c-line);
  color: var(--c-muted); font-size: 11px; line-height: 1.7;
}
.modal.cdb-hist .cdb-hist-note b { color: var(--c-ink); font-weight: 700; }

/* السطر اللي برّه الفترة: باهت + علامة صريحة. **مش مخفي** — الفرق بين
   «تواصل في فترتك» و«تواصل قديم» هو المعلومة نفسها. */
.modal.cdb-hist tr.cdb-hist-out { background: var(--c-head); }
.modal.cdb-hist tr.cdb-hist-out td { opacity: .72; }
.modal.cdb-hist .cdb-outtag {
  display: inline-block; margin-top: 4px; padding: 2px 7px; border-radius: 99px;
  background: var(--c-dup-bg); color: var(--c-dup-fg);
  font-size: 9px; font-weight: 700;
}


/* ==========================================================================
   تاب «إحصائيات العملاء» (م. قطب 2026-09-08)
   ⚠️ كله بتوكنز `--c-*` بتاعت الصفحة — مافيش لون مكتوب بالإيد، فالثيم الغامق
      ماشي لوحده. (والتوكنز معرَّفة على `.cdb` فوق.)
   ⚠️ **وكل كلاس هنا له تعريف**: كلاس مخترع مالوش CSS بيعمل **لا حاجة** في صمت،
      والأعراض بتودّي للمكان الغلط.
   ========================================================================== */

/* 🔴 **`display` في CSS بيكسب على `hidden`** — والكروت فضلت ظاهرة فوق التاب.
   سمة `hidden` مجرد `display: none` جاية من ستايل المتصفّح، وأي قاعدة بنكتبها
   إحنا (`.cdb .company-stats { display: grid }`) أعلى منها في الأولوية. فـ
   `el.hidden = true` **مانفّذش حاجة** — بلا خطأ، بلا أي أثر، والتابين ظهروا
   فوق بعض. أي عنصر بناخد له `display` ونخبّيه بـ`hidden` محتاج السطر ده.
   📌 والحرس في `clients-data.test.mjs` بيقرا `app.js` ويطلّع كل عنصر بيتخبّى
      بـ`.hidden =`، ويتأكّد إن له قاعدة `[hidden]` هنا. */
.cdb .company-stats[hidden],
.cdb .cdb-statspane[hidden],
.cdb .panel[hidden] { display: none !important; }

/* حاوية تاب الإحصائيات — الجسم جوّاها (`.cdb-stats`) هو اللي شايل التخطيط */
.cdb .cdb-statspane { display: block; }

/* شريط التابات — نفس شكل تابات صفحة التعاقدات (`.ctr-tabs`) عن قصد: نفس
   الأداة لازم تبقى نفس الشكل، وإلا المستخدم يتعلّمها مرتين. */
.cdb .cdb-tabs {
  display: flex; gap: 6px; padding: 5px; width: max-content;
  background: var(--c-head); border: 1px solid var(--c-line);
  border-radius: 12px; margin-bottom: 18px;
}
.cdb .cdb-tabs button {
  color: var(--c-chip-fg); cursor: pointer; white-space: nowrap; background: none;
  border: 0; border-radius: 8px; padding: 10px 18px; font: inherit;
  font-size: 11.5px; font-weight: 700;
}
.cdb .cdb-tabs button.active {
  color: var(--c-on-fg); background: var(--c-card); box-shadow: var(--c-shadow);
}

/* الكروت فوق الجدول: الرقم الكبير = **عملاء**، وجنبه التواصلات بوحدتها.
   🔴 الوحدة مكتوبة عشان «واتساب 367» مايتقراش «٣٦٧ عميل» وهي تواصلات. */
.cdb .company-stats i {
  font-style: normal; color: var(--c-hint); font-size: 9px; display: block; margin-top: 1px;
}
.cdb .company-stats em {
  font-style: normal; color: var(--c-hint); font-size: 9.5px; display: block;
  margin-top: 5px; padding-top: 5px; border-top: 1px dashed var(--c-statline);
}
.cdb .company-stats .stat-note {
  display: block; padding: 8px 14px; border-top: 1px solid var(--c-statline);
  color: var(--c-hint); font-size: 9.5px; line-height: 1.6;
}
.cdb .company-stats .stat-note b { display: inline; font-size: inherit; margin: 0; color: var(--c-dup-fg); }

/* ------------------------------ جسم التاب ------------------------------ */
.cdb .cdb-stats { display: grid; gap: 16px; }

.cdb .cst-scope, .cdb .cst-foot {
  margin: 0; padding: 10px 13px; border-radius: 10px;
  background: var(--c-head); border: 1px solid var(--c-line);
  color: var(--c-muted); font-size: 11px; line-height: 1.75;
}
.cdb .cst-scope b, .cdb .cst-foot b { color: var(--c-ink); }

/* 🔴 تحذير القصّ — لازم يبان قبل الأرقام مش تحتها: رقم إحصائي ناقص وشكله
   كامل هو أخطر حاجة في الشاشة دي. */
.cdb .cst-capped {
  padding: 11px 14px; border-radius: 10px;
  background: var(--c-dup-bg); border: 1px solid var(--c-dup-fg);
  color: var(--c-dup-fg); font-size: 11.5px; font-weight: 700; line-height: 1.8;
}

.cdb .cst-top { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cdb .cst-kpi {
  background: var(--c-card); border: 1px solid var(--c-line); border-radius: 12px;
  padding: 15px 17px; box-shadow: var(--c-shadow);
}
.cdb .cst-kpirow {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
}
.cdb .cst-kpirow > span { color: var(--c-th); font-size: 11px; font-weight: 700; }
.cdb .cst-kpival { display: flex; align-items: baseline; gap: 6px; }
.cdb .cst-kpival b { color: var(--c-statnum); font-size: 30px; line-height: 1.1; }
.cdb .cst-kpival i { font-style: normal; color: var(--c-hint); font-size: 11px; }
.cdb .cst-kpi > small {
  display: block; color: var(--c-hint); font-size: 9.5px; margin-top: 7px;
  padding-top: 7px; border-top: 1px dashed var(--c-statline); line-height: 1.6;
}

/* شرايط نوع الطلب — «كم متاجر وكم تطبيق». كل شريط شايل رقمه جواه. */
.cdb .cst-reqchips { display: flex; flex-wrap: wrap; gap: 6px; }
.cdb .cst-reqchips button {
  color: var(--c-chip-fg); background: var(--c-card); border: 1px solid var(--c-line);
  border-radius: 99px; padding: 7px 13px; font: inherit; font-size: 10.5px; cursor: pointer;
}
.cdb .cst-reqchips button b { color: var(--c-num); font-weight: 700; margin-right: 4px; }
.cdb .cst-reqchips button.on {
  color: var(--c-on-fg); background: var(--c-on-bg); border-color: var(--c-on-fg); font-weight: 700;
}
.cdb .cst-reqchips button.on b { color: var(--c-on-fg); }

.cdb .cst-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
.cdb .cst-co {
  background: var(--c-card); border: 1px solid var(--c-line); border-radius: 12px;
  overflow: hidden; box-shadow: var(--c-shadow);
}
.cdb .cst-co > header {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  padding: 12px 15px; background: var(--c-stat1-bg);
}
.cdb .cst-grid .cst-co:nth-child(2) > header { background: var(--c-stat2-bg); }
.cdb .cst-co > header h3 { margin: 0; font-size: 12.5px; color: var(--c-stat1-fg); font-family: inherit; }
.cdb .cst-grid .cst-co:nth-child(2) > header h3 { color: var(--c-stat2-fg); }
.cdb .cst-co > header div { text-align: left; }
.cdb .cst-co > header b { color: var(--c-statnum); font-size: 20px; }
.cdb .cst-co > header i { font-style: normal; color: var(--c-hint); font-size: 10px; margin-right: 4px; }
.cdb .cst-co > header em { font-style: normal; display: block; color: var(--c-hint); font-size: 9.5px; }

.cdb .cst-co table { width: 100%; border-collapse: collapse; }
.cdb .cst-co th {
  color: var(--c-th); background: var(--c-head); text-align: right; font-weight: 400;
  padding: 8px 14px; font-size: 9.5px; border-bottom: 1px solid var(--c-line);
}
.cdb .cst-co td {
  padding: 10px 14px; border-bottom: 1px solid var(--c-rowline); font-size: 11px;
  vertical-align: top;
}
.cdb .cst-co tr:last-child td { border-bottom: 0; }
.cdb .cst-co td:first-child b { display: block; font-weight: 700; }
.cdb .cst-co tr.wa td:first-child b { color: var(--c-wa); }
.cdb .cst-co tr.call td:first-child b { color: var(--c-call); }
.cdb .cst-co td small { display: block; color: var(--c-hint); font-size: 9px; margin-top: 3px; }
.cdb .cst-co .cst-n { color: var(--c-statnum); font-size: 15px; font-weight: 700; }
/* 🔴 المستبعَد بقاعدة م. قطب — على السطر نفسه، مش في حاشية تحت */
.cdb .cst-co .cst-ex { color: var(--c-dup-fg) !important; font-weight: 700; }

.cdb .cst-co > footer {
  display: grid; gap: 8px; padding: 11px 15px; background: var(--c-total-bg);
  border-top: 1px solid var(--c-line); color: var(--c-muted); font-size: 10.5px;
}
.cdb .cst-co > footer b { color: var(--c-statnum); font-size: 14px; }
.cdb .cst-co > footer small { display: block; color: var(--c-hint); font-size: 9px; margin-top: 3px; line-height: 1.6; }

.cdb .cst-empty {
  padding: 40px 20px; text-align: center; color: var(--c-muted); font-size: 12px;
  background: var(--c-card); border: 1px solid var(--c-line); border-radius: 12px;
}

/* ── مصفوفة «نوع الطلب × القناة» (م. قطب 2026-09-13) ──────────────────────
   ⚠️ **`min-width` على الجدول نفسه والحاوية بتسكرول**: الجدول بيكبر بعدد
      القنوات، ولو انكتم على شاشة ضيّقة الأرقام بتلزق ويبقى مستحيل يتقرا.
      الحاوية `overflow-x:auto` فبيتسحب بالإصبع جوّاها — **والصفحة مابتطفحش
      أفقيًا** (القاعدة العاشرة في `CLAUDE.md`).
   📌 و`.cst-matrix` كلاس بذاته مش `table` — قاعدة `.cdb table` العامة هي اللي
      قصّت عمود «تواصلات» قبل كده، والدرس إن أي جدول جديد بيتسمّى. */
.cdb .cst-mwrap {
  background: var(--c-card); border: 1px solid var(--c-line); border-radius: 12px;
  overflow-x: auto; box-shadow: var(--c-shadow);
}
.cdb .cst-matrix {
  width: 100%; min-width: 640px; border-collapse: collapse; text-align: center;
}
.cdb .cst-matrix th {
  background: var(--c-head); color: var(--c-th); font-weight: 400;
  padding: 10px 12px; font-size: 10px; border-bottom: 1px solid var(--c-line);
  white-space: nowrap; vertical-align: bottom;
}
.cdb .cst-matrix th b { display: block; font-size: 11.5px; font-weight: 700; color: var(--c-ink); }
.cdb .cst-matrix th small { display: block; margin-top: 3px; color: var(--c-hint); font-size: 9px; }
.cdb .cst-matrix th.wa b { color: var(--c-wa); }
.cdb .cst-matrix th.call b { color: var(--c-call); }
.cdb .cst-matrix td {
  padding: 10px 12px; border-bottom: 1px solid var(--c-rowline); font-size: 12px;
}
.cdb .cst-matrix tr:last-child td { border-bottom: 0; }
.cdb .cst-matrix td b { color: var(--c-statnum); font-size: 15px; font-weight: 700; }
/* 🔴 الصفر بيتكتب **صفر** — «—» معناها «مانعرفش»، وإحنا عارفين إنه صفر */
.cdb .cst-matrix .cst-z { color: var(--c-dash); font-size: 12px; }
/* عمود الطلب ورأسه: يمين، ومالوش لفّ عشان الأرقام تفضل متحاذية */
.cdb .cst-matrix .cst-mh { text-align: right; white-space: nowrap; font-weight: 700; }
.cdb .cst-matrix td.cst-mh { color: var(--c-ink); }
/* عمود الإجمالي وصف «كل الطلبات»: خلفية خفيفة عشان يتفرزوا من التفصيل */
.cdb .cst-matrix .cst-mt { background: var(--c-total-bg); }
.cdb .cst-matrix tr.cst-rall td { background: var(--c-total-bg); font-weight: 700; }
.cdb .cst-matrix tr.cst-rall td b { font-size: 16px; }

/* قاعدة م. قطب في الاتصال — سؤال تاني غير اللي الجدول بيجاوبه، فسطر لوحده */
.cdb .cst-callrule {
  padding: 10px 13px; border-radius: 10px;
  background: var(--c-head); border: 1px solid var(--c-line);
  color: var(--c-muted); font-size: 11px; line-height: 1.8;
}
.cdb .cst-callrule b { color: var(--c-ink); }
.cdb .cst-callrule small { color: var(--c-hint); font-size: 9.5px; }

/* الموبايل: عمود واحد — الكارتين جنب بعض على ٣٧٥px بيخلّوا الأرقام تتقصّ */
@media (max-width: 820px) {
  .cdb .cst-top, .cdb .cst-grid, .cdb .company-stats { grid-template-columns: 1fr; }
  .cdb .cdb-tabs { width: 100%; overflow-x: auto; }
}


@media print {
  .cdb, .modal.cdb-hist {
    --c-ink: #17223b !important;      --c-muted: #7b8498 !important;
    --c-line: #e7e9f0 !important;     --c-card: #fff !important;
    --c-head: #fafbfc !important;     --c-rowline: #f0f1f5 !important;
    --c-th: #777f91 !important;       --c-small: #8e96a7 !important;
    --c-hint: #8b93a4 !important;     --c-num: #30394c !important;
    --c-link: #5d36c7 !important;     --c-purple: #6e42da !important;
    --c-field: #4f586c !important;    --c-fieldline: #e0e3ea !important;
    --c-wa: #13885d !important;       --c-call: #3266b1 !important;
    --c-green: #087849 !important;    --c-red: #bd2730 !important;
    --c-blue: #2863bb !important;     --c-amber: #9a650e !important;
    --c-loss: #a52b31 !important;     --c-lossmuted: #6c7280 !important;
    --c-dash: #a3a9b6 !important;     --c-dup-fg: #b45a00 !important;
    --c-dup-bg: #fff0e1 !important;   --c-chip-fg: #747d8e !important;
    --c-on-fg: #6339c8 !important;    --c-on-bg: #eee9ff !important;
    --c-sep: #e2e4ea !important;      --c-stat1-fg: #5934b5 !important;
    --c-stat1-bg: #f7f5ff !important; --c-stat2-fg: #275fa8 !important;
    --c-stat2-bg: #f2f7ff !important; --c-statline: #edf0f4 !important;
    --c-statnum: #273148 !important;  --c-total-bg: #fafbfc !important;
    --c-shadow: none !important;
  }
  .cdb-page { max-width: none !important; padding: 0 !important; }
  .cdb > header { padding-bottom: 6px !important; }
  .cdb > header h1 { font-size: 16px !important; }
  .cdb > header p, .cdb > header span { font-size: 10px !important; }
  /* الجدول يفرد على كل الورقة، رأسه يتكرر في كل صفحة، والصف ما يتقسّمش على صفحتين */
  .cdb .panel { border: 1px solid var(--c-line) !important; }
  .cdb .tablewrap { overflow: visible !important; }
  .cdb .tech-table { min-width: 0 !important; width: 100% !important; font-size: 9px !important; }
  .cdb .tech-table thead { display: table-header-group; }
  .cdb .tech-table th, .cdb .tech-table td { padding: 4px 5px !important; white-space: normal !important; word-break: break-word; }
  .cdb .tech-table tr { break-inside: avoid; }
  /* عمود «مخالفة» زرار — مالوش أي معنى على الورق (نفس قاعدة عمود «تعديل» في الاجتماعات) */
  .cdb .tech-table th:last-child, .cdb .tech-table td.cdb-viol { display: none !important; }
  /* الاسم بيتطبع، بس من غير خلفية ولا نقطة — نفس اللي الاجتماعات بتعمله */
  .cdb .cdb-rev .mdot { background: none !important; padding: 0 !important;
                        color: var(--c-green) !important; font-size: 9px !important; }
  .cdb .cdb-rev .mdot::before { display: none !important; }
  .cdb .company-stats { break-inside: avoid; }
  /* تاب الإحصائيات بيتطبع (Ctrl+P) — الكروت مايتقسموش على صفحتين */
  .cdb .cst-co, .cdb .cst-kpi, .cdb .cst-capped { break-inside: avoid; }
  .cdb .cst-grid, .cdb .cst-top { grid-template-columns: 1fr 1fr !important; }
}
