@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;500;600;700;800&display=swap');
:root{
  --primary:#2563eb;
  --primary-light:#eff6ff;
  --bg:#f4f6f9;
  --card:#ffffff;
  --text:#1f2937;
  --muted:#6b7280;
  --border:#e5e7eb;
  --danger:#dc2626;
  --danger-light:#fef2f2;
  --success:#16a34a;
  --success-light:#f0fdf4;
  --warning:#d97706;
  --warning-light:#fffbeb;
  --info:#0284c7;
  --info-light:#f0f9ff;
  --sidebar-w:250px;
  --sidebar-bg:#111827;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Cairo','Segoe UI',Tahoma,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  direction:rtl;
  font-size:14px;
  line-height:1.6;
}
a{color:inherit;text-decoration:none;}
.app-shell{display:flex;min-height:100vh;}

/* الشريط الجانبي */
.sidebar{
  width:var(--sidebar-w);
  background:var(--sidebar-bg);
  color:#e5e7eb;
  flex-shrink:0;
  position:fixed;
  top:0;bottom:0;right:0;
  overflow-y:auto;
  transition:transform .2s ease;
  z-index:40;
  display:flex;flex-direction:column;
}
.sidebar nav{flex:1;}
/* رقم الإصدار أسفل القائمة الجانبية - ظاهر دائماً (حاسوب وجوال) ويفتح صفحة التحديثات */
.sidebar-version{
  display:block;padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  font-size:11px;color:#6b7280;text-align:center;
  border-top:1px solid rgba(255,255,255,.08);
}
.sidebar-version:hover{color:#e5e7eb;}
.sidebar .brand{
  display:flex;align-items:center;gap:10px;
  padding:18px 16px;font-weight:700;font-size:16px;color:#fff;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.sidebar .brand img{height:28px;width:28px;border-radius:6px;object-fit:cover;}
.nav-group-title{padding:14px 16px 6px;font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;}
.nav-divider{height:1px;background:rgba(255,255,255,.1);margin:10px 16px;}
.nav-link{
  display:flex;align-items:center;gap:10px;
  padding:10px 16px;color:#d1d5db;font-size:14px;
  border-right:3px solid transparent;
}
.nav-link:hover{background:rgba(255,255,255,.06);color:#fff;}
.nav-link.active{background:rgba(37,99,235,.18);color:#fff;border-right-color:var(--primary);}
.nav-link .ic{width:18px;text-align:center;flex-shrink:0;}
.nav-badge{
  background:var(--danger);color:#fff;font-size:11px;font-weight:700;
  border-radius:99px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;
  padding:0 5px;margin-inline-start:auto;
}

/* المحتوى */
.main{margin-right:var(--sidebar-w);flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{
  background:var(--card);border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 20px;position:sticky;top:0;z-index:30;
}
.topbar .page-title{font-size:17px;font-weight:700;}
.topbar-actions{display:flex;align-items:center;gap:14px;}
.topbar-search{margin:0;}
.topbar-search input{width:220px;padding:7px 12px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:13px;background:var(--bg);}
.topbar-search input:focus{outline:none;border-color:var(--primary);background:var(--card);}
.topbar-search-mobile{display:none;}
@media (max-width:768px){
  .topbar-search{display:none;}
  .topbar-search-mobile{display:inline-flex;}
}
.menu-toggle{display:none;background:none;border:0;font-size:20px;cursor:pointer;color:var(--text);}
.icon-btn{position:relative;background:none;border:0;font-size:18px;cursor:pointer;color:var(--muted);padding:6px;}
.icon-btn .dot{position:absolute;top:2px;left:2px;background:var(--danger);color:#fff;font-size:10px;border-radius:99px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0 3px;}
.user-menu{position:relative;}
.user-btn{display:flex;align-items:center;gap:8px;cursor:pointer;background:none;border:0;font-family:inherit;font-size:14px;color:var(--text);}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;}
.dropdown{position:absolute;left:0;top:calc(100% + 8px);background:var(--card);border:1px solid var(--border);border-radius:10px;min-width:200px;box-shadow:0 8px 24px rgba(0,0,0,.08);display:none;overflow:hidden;z-index:50;}
.dropdown.open{display:block;}
.dropdown a, .dropdown button{display:block;width:100%;text-align:right;padding:10px 14px;background:none;border:0;font-family:inherit;font-size:14px;cursor:pointer;color:var(--text);}
.dropdown a:hover, .dropdown button:hover{background:var(--bg);}
.dropdown .divider{border-top:1px solid var(--border);margin:4px 0;}
.notif-item{padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px;}
.notif-item:last-child{border-bottom:0;}
.notif-item.unread{background:var(--primary-light);}
.notif-empty{padding:24px;text-align:center;color:var(--muted);font-size:13px;}

.impersonation-bar{
  background:#fef3c7;color:#92400e;border-bottom:1px solid #fde68a;
  padding:9px 20px;display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:8px;font-size:13.5px;
}
.impersonation-bar .btn{background:#92400e;}
.impersonation-bar .btn:hover{opacity:.85;}

.content{padding:22px;flex:1;}
.app-footer{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 22px;font-size:12px;color:var(--muted);border-top:1px solid var(--border);
}
.app-footer a{color:var(--muted);text-decoration:none;}
.app-footer a:hover{color:var(--primary);text-decoration:underline;}
.page-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:18px;}
.page-head h1{font-size:20px;margin:0;}
.page-head p{color:var(--muted);margin:4px 0 0;font-size:13px;}
/* أزرار عنوان الصفحة (تعديل/رفع ملف/تصنيفات...) كانت أحياناً صفاً واحداً بلا التفاف،
   فتدفع كامل الصفحة للتمرير أفقياً على شاشات الجوال الضيقة إذا زاد عددها. */
.page-head > div:last-child{flex-wrap:wrap;}
/* نموذج البحث/الفلاتر أعلى الجداول (بحث + قوائم منسدلة + زر بحث) كان يضغط زر
   "بحث" بجانب آخر قائمة بدل أن يظهر بوضوح كصف مستقل - نُكدّس كل حقل بعرض كامل
   على الجوال بدل تركه يضيق حتى يفقد وضوحه. */
@media (max-width:600px){
  .filters-toolbar{flex-direction:column;align-items:stretch !important;}
  .filters-toolbar .field{width:100%;min-width:0 !important;flex:1 1 100% !important;}
  .filters-toolbar > button,
  .filters-toolbar > a.btn{width:100%;text-align:center;}
  .filters-toolbar .view-toggle{margin-inline-start:0 !important;width:100%;}
  .filters-toolbar .view-toggle > a{flex:1;}
}

/* بطاقات */
.cards-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:20px;}
.stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px;}
.stat-card .n{font-size:26px;font-weight:800;display:flex;align-items:center;gap:8px;}
.stat-card .stat-ic{font-size:19px;}
.stat-card .l{color:var(--muted);font-size:13px;margin-top:4px;}
.stat-card.c-primary{border-right:4px solid var(--primary);}
.stat-card.c-success{border-right:4px solid var(--success);}
.stat-card.c-warning{border-right:4px solid var(--warning);}
.stat-card.c-danger{border-right:4px solid var(--danger);}

.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:18px;}
.card-title{font-size:15px;font-weight:700;margin:0 0 14px;display:flex;justify-content:space-between;align-items:center;}

/* نماذج */
.field{margin-bottom:16px;}
label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=color],textarea,select{
  width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;background:#fff;color:var(--text);
}
textarea{resize:vertical;min-height:90px;}
input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:1px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.hint{color:var(--muted);font-size:12px;margin-top:4px;}
.form-actions{display:flex;gap:10px;margin-top:6px;}

/* أزرار */
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--primary);color:#fff;border:0;border-radius:8px;padding:9px 18px;font-size:14px;cursor:pointer;text-decoration:none;font-weight:600;font-family:inherit;}
.btn:hover{opacity:.92;}
.btn-outline{background:#fff;color:var(--text);border:1px solid var(--border);}
.btn-danger{background:var(--danger);}
.btn-sm{padding:6px 12px;font-size:13px;border-radius:6px;}
.btn-icon{padding:6px 10px;}

/* تنبيهات */
.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;display:flex;justify-content:space-between;align-items:center;}
.alert-danger{background:var(--danger-light);color:var(--danger);border:1px solid #fecaca;}
.alert-success{background:var(--success-light);color:var(--success);border:1px solid #bbf7d0;}
.alert-warning{background:var(--warning-light);color:var(--warning);border:1px solid #fde68a;}

/* جداول */
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:13.5px;}
th,td{padding:10px 12px;text-align:right;border-bottom:1px solid var(--border);}
th{color:var(--muted);font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.02em;}
tr:hover td{background:#fafbfc;}
.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:600;}
.badge-success{background:var(--success-light);color:var(--success);}
.badge-warning{background:var(--warning-light);color:var(--warning);}
.badge-danger{background:var(--danger-light);color:var(--danger);}
.badge-info{background:var(--info-light);color:var(--info);}
.badge-muted{background:#f3f4f6;color:var(--muted);}

.empty-state{text-align:center;padding:50px 20px;color:var(--muted);}
.empty-state .ic{font-size:36px;margin-bottom:10px;}

.pagination{display:flex;gap:6px;justify-content:center;margin-top:18px;}
.pagination a, .pagination span{padding:7px 12px;border-radius:6px;border:1px solid var(--border);font-size:13px;background:#fff;}
.pagination .active{background:var(--primary);color:#fff;border-color:var(--primary);}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:18px;flex-wrap:wrap;}
.tabs a{padding:10px 16px;font-size:13.5px;color:var(--muted);border-bottom:2px solid transparent;}
.tabs a.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:700;}

/* لوحة كانبان */
.board-wrap{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;align-items:flex-start;-webkit-overflow-scrolling:touch;}
.board-column{background:var(--card);border:1px solid var(--border);border-radius:12px;width:260px;flex-shrink:0;display:flex;flex-direction:column;max-height:calc(100vh - 220px);}
.board-column-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border);font-weight:700;font-size:13.5px;}
.board-column-body{padding:10px;overflow-y:auto;flex:1;min-height:80px;transition:background .15s;}
.board-column-body.drag-over{background:var(--primary-light);}
.board-card{
  display:block;background:var(--bg);border:1px solid var(--border);border-radius:10px;
  padding:10px 12px;margin-bottom:8px;cursor:grab;font-size:13px;
}
.board-card:active{cursor:grabbing;}
.board-card.dragging{opacity:.4;}
.board-card-title{font-weight:700;color:var(--text);margin-bottom:6px;}
.board-card-meta{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;}
.board-card-due{margin-top:6px;font-size:12px;color:var(--muted);}
.board-card-due.overdue{color:var(--danger);font-weight:700;}
.board-empty{text-align:center;color:var(--muted);font-size:12.5px;padding:16px 0;}
@media (max-width:900px){.board-column{width:220px;}}

/* القائمة الفرعية داخل المهمة */
.subtask-progress-bar{background:var(--bg);border-radius:99px;height:6px;overflow:hidden;margin:2px 0 12px;}
.subtask-progress-bar > div{background:var(--success);height:100%;transition:width .2s;}
.subtask-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);}
.subtask-item:last-child{border-bottom:0;}
.subtask-title.done{text-decoration:line-through;color:var(--muted);}
.subtask-delete{background:none;border:0;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;}
.subtask-delete:hover{color:var(--danger);}

.color-swatch{display:inline-block;width:16px;height:16px;border-radius:4px;vertical-align:middle;margin-left:6px;border:1px solid var(--border);}

/* ودجت الهاتف العائم (إضافة التلفون) */
.phone-widget{position:fixed;bottom:20px;left:20px;z-index:70;font-family:inherit;}
.phone-native-mount{position:fixed;left:-9999px;top:0;width:360px;height:0;overflow:hidden;pointer-events:none;}
.innocalls-webrtc{display:none!important;}
.phone-widget-toggle{
  display:flex;align-items:center;gap:8px;
  height:46px;padding:0 18px;border-radius:26px;background:var(--primary);color:#fff;border:0;
  font-size:14px;font-weight:700;font-family:inherit;box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer;position:relative;
}
.phone-widget-toggle.phone-ringing{background:var(--success);animation:phone-pulse 1s infinite;}
.phone-status-dot{width:10px;height:10px;border-radius:50%;border:2px solid #fff;background:#9ca3af;flex-shrink:0;display:inline-block;}
.phone-widget-toggle .phone-status-dot{position:relative;top:-8px;}
.phone-status-dot.online{background:var(--success);}
.phone-status-dot.offline{background:#9ca3af;}
.phone-status-dot.warning{background:var(--warning);}
.phone-widget-panel{
  position:absolute;bottom:64px;left:0;width:280px;background:var(--card);
  border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.15);
  padding:14px;
}
.phone-widget-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:10px;gap:8px;}
.phone-widget-dial{display:flex;gap:6px;margin-bottom:8px;}
.phone-widget-dial input{flex:1;padding:8px 10px;text-align:center;font-size:16px;letter-spacing:1px;}
.phone-dialpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 10px;}
.phone-dialpad-key{
  height:42px;border-radius:10px;border:1px solid var(--border);background:var(--bg);
  font-size:16px;font-weight:700;cursor:pointer;color:var(--text);
}
.phone-dialpad-key:hover{background:var(--primary-light);}
.phone-incoming-toast{
  position:absolute;bottom:64px;left:0;width:230px;background:var(--card);border:2px solid var(--success);
  border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:10px 14px;display:flex;align-items:center;gap:10px;
  cursor:pointer;animation:phone-pulse 1.4s infinite;
}
/* "display:flex" أعلاه له نفس أولوية [hidden] الافتراضية من المتصفح (كلاهما بمرتبة
   0-1-0) فيربح التعريف الأحدث بالترتيب - أي أن العنصر كان يبقى ظاهراً دائماً حتى مع
   وجود خاصية hidden. لازم قاعدة صريحة تربح فوق التعريف أعلاه. */
.phone-incoming-toast[hidden]{display:none;}
@keyframes phone-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.03);}}

/* محرر النصوص الغني (إضافة المستندات) */
.rte{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff;}
.rte-toolbar{display:flex;flex-wrap:wrap;gap:2px;padding:6px;background:var(--bg);border-bottom:1px solid var(--border);}
.rte-toolbar button{
  min-width:30px;height:30px;padding:0 6px;border:1px solid transparent;border-radius:6px;background:transparent;
  cursor:pointer;font-size:13px;color:var(--text);font-family:inherit;
}
.rte-toolbar button:hover{background:var(--primary-light);border-color:var(--primary);}
.rte-sep{width:1px;background:var(--border);margin:2px 4px;}
.rte-content{min-height:220px;max-height:480px;overflow-y:auto;padding:14px;font-size:14px;line-height:1.9;outline:none;}
.rte-content:empty::before{content:attr(data-placeholder);color:var(--muted);}

/* قوالب المستندات */
.doc-template-card{position:relative;}
.doc-template-preview{
  height:120px;border-radius:8px;background:var(--bg) center/cover no-repeat;border:1px solid var(--border);
  margin-bottom:10px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;
}
.doc-log{padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;}
.doc-log:last-child{border-bottom:0;}
.doc-log-meta{color:var(--muted);font-size:12px;}

/* التقويم الموحّد */
.cal-grid-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.cal-weekday{text-align:center;font-size:12px;font-weight:700;color:var(--muted);padding:6px 0;}
.cal-cell{
  min-height:96px;border:1px solid var(--border);border-radius:8px;padding:6px;
  display:flex;flex-direction:column;gap:3px;background:#fff;
}
.cal-cell-blank{border:0;background:transparent;}
.cal-cell-today{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset;}
.cal-day-num{font-size:12px;font-weight:700;color:var(--muted);}
.cal-event{
  display:block;font-size:11px;padding:2px 6px;border-radius:5px;color:#fff;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;
}
.cal-event bdi{unicode-bidi:isolate;}
.cal-event-tasks{background:#2563eb;}
.cal-event-archive{background:#16a34a;}
.cal-event-meetings{background:#d97706;}
.cal-event-documents{background:#7c3aed;}
.cal-event-company{background:#db2777;}
.cal-event-employees{background:#0891b2;}
.cal-more{font-size:11px;color:var(--muted);}
.cal-legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-inline-end:4px;vertical-align:middle;}
.cal-legend-dot.cal-event-tasks{background:#2563eb;}
.cal-legend-dot.cal-event-archive{background:#16a34a;}
.cal-legend-dot.cal-event-meetings{background:#d97706;}
.cal-legend-dot.cal-event-documents{background:#7c3aed;}
.cal-legend-dot.cal-event-company{background:#db2777;}
.cal-legend-dot.cal-event-employees{background:#0891b2;}
/*
  دون هذا: على شاشات الجوال الضيقة كانت الخلايا تُضغط لعرض 36px فقط، فيصبح نص
  الحدث (خصوصاً "الوقت" اللاتيني داخل حاوية RTL) مقطوعاً بشكل غير مقروء يظهر
  كأرقام مبعثرة تحت بعضها. الحل: عرض عمود أدنى مريح للقراءة (72px) مع السماح
  بتمرير أفقي للشبكة نفسها بدل ضغط محتواها.
*/
@media (max-width:900px){
  .cal-grid{grid-template-columns:repeat(7,minmax(72px,1fr));min-width:560px;}
  .cal-cell{min-height:64px;padding:4px;font-size:11px;}
  .cal-event{font-size:10px;padding:1px 4px;}
}

/* أرشيف الملفات */
.archive-card{display:block;}
.archive-thumb{
  height:110px;border-radius:8px;background:var(--bg) center/cover no-repeat;border:1px solid var(--border);
  margin-bottom:8px;display:flex;align-items:center;justify-content:center;
}
.archive-thumb-icon{font-size:40px;}
.archive-card-name{font-weight:600;font-size:13.5px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.doc-content-preview{line-height:1.9;font-size:14.5px;}
.doc-content-preview :is(ul,ol){padding-inline-start:24px;}

@media (max-width: 900px){
  .sidebar{transform:translateX(100%);}
  .sidebar.open{transform:translateX(0);box-shadow:0 0 40px rgba(0,0,0,.35);}
  .main{margin-right:0;}
  .menu-toggle{display:block;}
  .grid-2,.grid-3{grid-template-columns:1fr;}
  /* زر الهاتف العائم أسفل يسار الشاشة كان يتراكب فوق آخر عنصر بالصفحة (نص/أيقونة
     حالة فارغة مثلاً) على الصفحات القصيرة - نحجز له مساحة أسفل المحتوى دائماً. */
  .content{padding-bottom:88px;}
}

/* ===== تحسينات الجوال (نسخة الجوال / PWA) ===== */

/* فلاتر قابلة للطي (كل الشاشات): مقفلة افتراضياً والنتائج تظهر مباشرة، وتُفتح
   بنقرة على زر "البحث والتصفية". تُفتح تلقائياً فقط إن كانت هناك فلاتر نشطة. */
.filters-collapse{margin-bottom:16px;}
.filters-collapse > summary{
  cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;
  font-size:13px;font-weight:700;color:var(--muted);
  padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);
}
.filters-collapse > summary:hover{color:var(--primary);border-color:var(--primary);}
.filters-collapse > summary::-webkit-details-marker{display:none;}
.filters-collapse[open] > summary{margin-bottom:12px;color:var(--primary);border-color:var(--primary);background:var(--primary-light);}
.filters-collapse .filters-toolbar{margin-bottom:0 !important;}

/* بانر تفعيل تنبيهات الجوال بنقرة واحدة */
.push-banner{
  display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
  background:var(--primary-light);border:1px solid var(--primary);
  border-radius:10px;padding:10px 14px;margin-bottom:16px;font-size:13px;
}
.push-banner-actions{display:flex;align-items:center;gap:6px;}
.push-banner-close{
  background:none;border:0;cursor:pointer;color:var(--muted);
  font-size:15px;padding:4px 8px;line-height:1;
}
.push-banner-close:hover{color:var(--text);}

/* صفحة التقارير الموحّدة: صف لكل قسم وأرقامه كحبوب مضغوطة بجانبه */
.report-card{padding:6px 20px;}
.report-row{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:14px 0;border-bottom:1px solid var(--border);
}
.report-row:last-child{border-bottom:0;}
.report-module{min-width:170px;font-weight:700;font-size:14px;}
.report-stats{display:flex;gap:8px;flex-wrap:wrap;flex:1;}
.report-stat{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 13px;border:1px solid var(--border);border-radius:99px;
  font-size:12.5px;color:var(--muted);background:var(--bg);
}
.report-stat b{font-size:15px;color:var(--text);}
.report-stat.c-danger b{color:var(--danger);}
.report-stat.c-success b{color:var(--success);}
.report-stat.c-warning b{color:var(--warning);}
.report-stat.c-info b{color:var(--info);}
.report-stat.c-primary b{color:var(--primary);}
a.report-stat:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light);}
@media (max-width: 600px){
  .report-module{min-width:100%;}
  .report-row{padding:12px 0;gap:8px;}
}

/* جداول تتحول لبطاقات على الجوال: أضف class="table-cards" لأي جدول قوائم
   (رسائل، مهام...) فتصبح كل صف بطاقة عمودية مريحة بدل جدول معصور بتمرير أفقي. */
@media (max-width: 700px){
  table.table-cards{border-collapse:separate;}
  table.table-cards thead{display:none;}
  table.table-cards, table.table-cards tbody{display:block;width:100%;}
  table.table-cards tr{
    display:block;background:#fff;border:1px solid var(--border);
    border-radius:12px;margin-bottom:10px;padding:10px 4px;
    box-shadow:0 1px 4px rgba(0,0,0,.04);
  }
  table.table-cards tr:hover td{background:transparent;}
  table.table-cards td{
    display:block;width:100%;border:0;padding:3px 12px;
    max-width:none !important;white-space:normal;
  }
  table.table-cards td:first-child{font-weight:700;padding-top:5px;}
  table.table-cards td:empty{display:none;}
}

/* بطاقة الترحيب بالرئيسية: تدرج بهوية المجرات (أزرق الشركة ← بنفسجي) */
.dash-greeting{
  background:linear-gradient(135deg,var(--primary) 0%,#7c3aed 100%);
  color:#fff;border-radius:16px;padding:20px 22px;margin-bottom:18px;
  box-shadow:0 6px 20px rgba(37,99,235,.22);
}
.dash-greeting h1{margin:0 0 4px;font-size:20px;}
.dash-greeting p{margin:0;font-size:13px;opacity:.88;}

/* شريط التنقل السفلي - يظهر على الجوال فقط */
.bottom-nav{display:none;}
@media (max-width: 900px){
  .bottom-nav{
    position:fixed;bottom:0;right:0;left:0;z-index:60;
    display:flex;align-items:stretch;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    border-top:1px solid var(--border);
    padding:7px 6px calc(7px + env(safe-area-inset-bottom, 0px));
    box-shadow:0 -4px 20px rgba(0,0,0,.05);
  }
  .bottom-nav-item{
    flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
    padding:3px 0;font-size:10.5px;font-weight:600;color:var(--muted);
    background:none;border:0;font-family:inherit;cursor:pointer;
    position:relative;border-radius:10px;text-decoration:none;
  }
  .bottom-nav-item .bn-ic{
    font-size:20px;line-height:1;
    filter:grayscale(1);opacity:.65;
    transition:filter .15s,opacity .15s,transform .15s;
  }
  .bottom-nav-item.active{color:var(--primary);font-weight:800;}
  .bottom-nav-item.active .bn-ic{filter:none;opacity:1;transform:translateY(-2px) scale(1.08);}
  .bn-badge{
    position:absolute;top:-2px;right:calc(50% - 20px);
    background:var(--danger);color:#fff;font-size:9.5px;font-weight:700;
    min-width:16px;height:16px;border-radius:99px;
    display:flex;align-items:center;justify-content:center;padding:0 4px;
    border:2px solid #fff;
  }

  /* الشريط العلوي أصبح نظيفاً: كل أدوات التنقل انتقلت للشريط السفلي */
  .topbar .menu-toggle{display:none;}
  .topbar-search-mobile{display:none !important;}
  .notif-menu{display:none;}

  /* الفوتر يزاحم الشريط السفلي بلا فائدة على الجوال */
  .app-footer{display:none;}

  /* إفساح المجال للشريط السفلي + رفع ودجت الهاتف فوقه */
  .content{padding-bottom:calc(96px + env(safe-area-inset-bottom, 0px)) !important;}
  .phone-widget{bottom:calc(78px + env(safe-area-inset-bottom, 0px));}
}

/* خلفية معتمة خلف القائمة الجانبية المفتوحة على الجوال: توضح أن القائمة طبقة
   فوق المحتوى، والنقر عليها يغلقها (كما يتوقع مستخدم أي تطبيق جوال). */
.sidebar-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:35;
  opacity:0;transition:opacity .2s ease;
}
.sidebar-backdrop.visible{opacity:1;}
@media (min-width: 901px){.sidebar-backdrop{display:none !important;}}

html{-webkit-text-size-adjust:100%;}
body{-webkit-tap-highlight-color:transparent;}

@media (max-width: 600px){
  .content{padding:12px 10px 88px;}
  .topbar{padding:10px 12px;}
  .topbar .page-title{font-size:15.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:38vw;}
  .topbar-actions{gap:8px;}
  .user-btn > span:last-child{display:none;} /* اسم المستخدم يكفي عنه الحرف بالدائرة */
  .card{padding:12px;border-radius:10px;margin-bottom:12px;}
  .card-title{font-size:13.5px;margin-bottom:10px;}
  .page-head{margin-bottom:12px;gap:8px;}
  .page-head h1{font-size:17px;}
  .page-head p{font-size:12px;}
  .tabs{margin-bottom:12px;}
  /* أهداف لمس مريحة */
  .btn{padding:10px 16px;}
  .btn-sm{padding:8px 12px;}
  .nav-link{padding:13px 16px;}
  .dropdown a, .dropdown button{padding:12px 14px;}
  /* بطاقات الأرقام: شبكة مكثفة بإحساس تطبيق - أرقام واضحة وأيقونات صغيرة
     ومسافات مشدودة بدل الفراغات المتعبة */
  .cards-row{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px;}
  /* عدد فردي من البطاقات: الأخيرة تمتد على العمودين بدل ترك خلية فارغة متعبة للنظر */
  .cards-row > *:last-child:nth-child(odd){grid-column:1 / -1;}
  .stat-card{padding:10px 12px;border-radius:10px;}
  .stat-card .n{font-size:18px;gap:6px;}
  .stat-card .stat-ic{font-size:14px;}
  .stat-card .l{font-size:11px;margin-top:2px;}
  /* بطاقة الترحيب أصغر وأخف على الجوال */
  .dash-greeting{padding:13px 16px;border-radius:12px;margin-bottom:12px;}
  .dash-greeting h1{font-size:16px;}
  .dash-greeting p{font-size:11.5px;}
  /* عناصر القوائم (آخر الرسائل، مهامي القادمة...) أكثف */
  .notif-item{padding:9px 10px;font-size:12.5px;}
  /* بانر تفعيل التنبيهات أكثف على الجوال */
  .push-banner{padding:8px 12px;font-size:12px;gap:6px;margin-bottom:12px;}
  .push-banner .btn-sm{padding:6px 12px;font-size:12px;}
  /* قائمة الإشعارات المنسدلة كانت أعرض من الشاشة أحياناً */
  .dropdown{max-width:calc(100vw - 24px);}
  .user-menu .dropdown#notif-dropdown{position:fixed;left:12px;right:12px;top:56px;width:auto !important;}
  /* أزرار النماذج بعرض كامل */
  .form-actions{flex-direction:column;}
  .form-actions .btn{width:100%;justify-content:center;}
  .pagination{flex-wrap:wrap;}
  .tabs a{padding:9px 12px;font-size:13px;}
  th,td{padding:9px 8px;font-size:13px;}
  /* أزرار رأس الصفحة تتوزع بعرض مريح بدل التزاحم */
  .page-head > div:last-child{width:100%;}
  .page-head > div:last-child .btn{flex:1;justify-content:center;}
}

/* منطقة الأمان لآيفون بوضع التطبيق المستقل (النوتش وشريط الإيماءات) */
@supports (padding: env(safe-area-inset-bottom)){
  @media (max-width: 900px){
    .content{padding-bottom:calc(88px + env(safe-area-inset-bottom));}
    .phone-widget{bottom:calc(20px + env(safe-area-inset-bottom));}
  }
  .sidebar{padding-bottom:env(safe-area-inset-bottom);}
  .topbar{padding-top:calc(12px + env(safe-area-inset-top));}
  @media (min-width: 901px){
    .topbar{padding-top:12px;}
  }
}
