/* ============================================================
 * admin-common.css — قواعد CSS مشتركة لكل صفحات /admin/
 * يُحمَّل من كل صفحة قبل أنماطها الخاصة
 * ============================================================ */

/* مظهر البوابة الديناميكي (يُدار من /admin/?page=appearance) — يجب أن يسبق كل القواعد */
@import url('/assets/portal-theme.css.php');

/* إجبار الوضع الفاتح (Light Mode) ـــ
 * Firefox/Chrome على Linux يرسمان القائمة المنسدلة <select> باستخدام ثيم
 * نظام التشغيل (GTK). لو كان النظام في الوضع الداكن، نصوص <option> تصير
 * غير ظاهرة فوق خلفية غامقة. color-scheme: light يجبر المتصفح على
 * استخدام الوضع الفاتح لكل عناصر النموذج. */
html {
    color-scheme: light only;
}
select, option, input, textarea, button {
    color-scheme: light;
}

/* تنسيق احتياطي للـ <option> لو احترم المتصفح CSS */
.form-select option,
select option {
    background-color: #ffffff !important;
    color: #1f2a44 !important;
    padding: 6px 10px;
}
.form-select option:checked,
select option:checked {
    background-color: #dbeafe !important;
    color: #1f2a44 !important;
}

/* ===== تكبير الخط قليلاً عبر كل صفحات البوابة (الافتراضي 16px) ===== */
html { font-size: 17px; }

/* الأصفر الافتراضي (Bootstrap .text-warning = #ffc107) ضعيف التباين على الخلفية الفاتحة
   → كهرماني داكن مقروء. (badge bg-warning غير متأثّر لأنه يستعمل text-dark) */
.text-warning { color: #b45309 !important; }

/* ============================================================
 * طبقة تحسين المظهر (Polish) — تنطبق على كل صفحات البوابة.
 * تُحمَّل قبل أنماط كل صفحة، لذا نرفع التخصيص بـ "body ..." عند الحاجة
 * لتجاوز الأنماط المكرّرة داخل كل صفحة. كلها تحسينات لطيفة لا تغيّر الهوية.
 * ============================================================ */

/* تنعيم الخطوط ووضوحها */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* انتقالات ناعمة موحَّدة للعناصر التفاعلية */
.btn, .btn-icon, .nav-link, .panel, .site-card, .stat-card, .card,
.form-control, .form-select, .svc-badge, .badge {
    transition: background-color .18s ease, border-color .18s ease,
                color .18s ease, box-shadow .22s ease, transform .18s ease;
}

/* البطاقات: حواف أنعم + ظلّ ألطف + ارتفاع خفيف عند المرور */
body .panel {
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 6px 18px rgba(15,23,42,.05);
}
body .panel:hover {
    box-shadow: 0 2px 4px rgba(15,23,42,.05), 0 14px 32px rgba(15,23,42,.09);
    border-color: #d6deea;
}

/* الأزرار: رفع/ضغط لطيف وظلّ ملوّن للأساسي */
.btn { border-radius: 9px; font-weight: 600; }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn-primary { box-shadow: 0 2px 8px rgba(37,99,235,.25); }
.btn-primary:hover { box-shadow: 0 5px 16px rgba(37,99,235,.34); }
.btn-warning  { box-shadow: 0 2px 8px rgba(245,158,11,.22); }
.btn-danger   { box-shadow: 0 2px 8px rgba(220,38,38,.22); }
.btn-success  { box-shadow: 0 2px 8px rgba(16,185,129,.22); }

/* الشريط الجانبي: عنصر نشط بمؤشّر جانبي ووزن أوضح */
body .sidebar .nav-link { position: relative; font-weight: 600; }
body .sidebar .nav-link:hover { transform: translateX(-2px); }
body .sidebar .nav-link.active {
    background: linear-gradient(90deg, rgba(37,99,235,.13), rgba(37,99,235,.04));
    color: #1d4ed8;
}
body .sidebar .nav-link.active::before {
    content: ''; position: absolute; right: 0; top: 7px; bottom: 7px;
    width: 3px; border-radius: 3px; background: var(--accent, #2563eb);
}

/* الجداول: تمييز الصف عند المرور أوضح قليلاً */
body .table tbody tr:hover td,
body .table tr:hover td { background: rgba(37,99,235,.05); }

/* بطاقات الإحصائيات: ارتفاع خفيف عند المرور */
body .stat-card { transition: box-shadow .2s ease, transform .2s ease; }
body .stat-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(15,23,42,.07); }

/* الشارات */
.badge { font-weight: 600; letter-spacing: .2px; }

/* عناوين الصفحات */
.ptitle { letter-spacing: .2px; }

/* تحديد النص */
::selection { background: rgba(37,99,235,.18); color: #1f2a44; }

/* شريط تمرير رفيع وأنيق */
* { scrollbar-width: thin; scrollbar-color: #c2cdda transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
    background: #c2cdda; border-radius: 8px;
    border: 2px solid transparent; background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover { background: #94a3b8; background-clip: content-box; }

/* ظهور لطيف للوحات والبطاقات (يُحترَم تفضيل تقليل الحركة) */
@media (prefers-reduced-motion: no-preference) {
    .panel, .site-card, .stat-card { animation: portalFade .4s ease both; }
    @keyframes portalFade {
        from { opacity: 0; transform: translateY(6px); }
        to   { opacity: 1; transform: none; }
    }
}

/* ===== مقاساتٌ مشتركة: تمنع انحرافَ صفحةٍ عن أخواتها =====
   كلُّ صفحاتِ البوابة تكرّر هذه الأحجام في نمطها الخاصّ، وصفحةُ المهامّ
   المجدولة كانت تُغفلها فيرث كلُّ شيءٍ فيها جذرَ ‎17px‎ فتبدو أكبر.
   وُضعت هنا افتراضاً؛ ونمطُ كلّ صفحةٍ يُحمَّل بعد هذا الملفّ فيَغلبه
   متى أرادت الصفحةُ غيرَه. */
.brand       { font-size: 1.05rem; }
.nav-link    { font-size: .88rem; }
.form-label  { font-size: .83rem; }
.table       { font-size: .85rem; }
.card-header { font-size: .95rem; }
.ptitle      { font-size: 1.15rem; }
.btn-icon    { font-size: .8rem; }

/* ===== قائمةُ الجانب تتمرّر حين تطول =====
   ‏.sidebar ارتفاعُها ‎100vh‎ ولا شيءَ فيها يتمرّر، فكلُّ سطرٍ يُضاف إلى
   القائمة يدفع ما تحته تحت حافّة الشاشة — و«خروج» آخِرُها، فيسقط أوّلاً
   ولا سبيلَ إليه. فنجعل المتمرِّرَ هو ‎nav‎ وحدَه: يبقى العنوانُ فوقه
   ثابتاً، ويظهر الشريطُ عند الحاجة لا قبلها.
   و‎min-height:0‎ لازمٌ هنا: عنصرُ flex يرفض أن يصغر عن محتواه بدونها،
   فيبقى المتمرِّرُ بلا أثر. */
.sidebar nav { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.sidebar nav::-webkit-scrollbar       { width: 6px; }
.sidebar nav::-webkit-scrollbar-thumb { background: rgba(100,116,139,.4); border-radius: 3px; }
.sidebar nav::-webkit-scrollbar-track { background: transparent; }
