/* ============================================================
   Menu Profile Card — بطاقة الملف الشخصي في الترويسة (Modernize)
   ------------------------------------------------------------
   توقيع بصري معزول بأصناف .mpc-* (menu profile card)، يستهلك توكنز
   Modernize فقط فيتكيّف تلقائياً مع الوضع الليلي (dark.css يقلب التوكنز).
   RTL أصلي عبر inset-inline-end و transform-origin لكل اتجاه.
   ============================================================ */

/* ---- جذر البطاقة ---- */
.mpc-root {
    position: relative;
    display: inline-flex;
    align-items: center;
}

/* ---- زر التشغيل (pill) ---- */
.mpc-trigger {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 3px 10px 3px 6px;
    cursor: pointer;
    color: var(--text-title);
    transition: background-color .18s ease, border-color .18s ease;
}
.mpc-trigger:hover { background: var(--surface-hover); border-color: var(--border-main); }
.mpc-trigger:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px var(--surface-solid), 0 0 0 4px var(--primary);
}

/* ---- الأفاتار (متدرّج Modernize) ---- */
.mpc-avatar {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    font-weight: 800;
    font-size: 13px;
    letter-spacing: .3px;
    color: #fff;
    background: linear-gradient(135deg, var(--primary), var(--accent));
    box-shadow: 0 3px 8px color-mix(in srgb, var(--primary) 30%, transparent);
    flex: none;
}
.mpc-trigger-avatar { width: 32px; height: 32px; font-size: 12px; position: relative; }
.mpc-head-avatar { width: 44px; height: 44px; font-size: 16px; }

/* ---- شارة «إشعارات غير مقروءة» على زاوية أفاتار الزر ----
   جرس مصغّر بارز (أوضح من نقطة الجرس الدقيقة): قرمزي بتوهّج خفيف وحدّ
   بسطح البطاقة كي ينفصل عن الصورة المتدرّجة. الزاوية الخارجية للصورة
   (inline-start) في الاتجاهين كي لا تدخل تحت اسم الحساب في RTL. */
.mpc-notif-flag {
    position: absolute;
    top: -5px;
    inset-inline-start: -5px;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--danger);
    color: #fff;
    border: 2px solid var(--surface-solid);
    box-shadow: 0 2px 6px color-mix(in srgb, var(--danger) 40%, transparent);
}
.mpc-notif-flag[hidden] { display: none; }
.mpc-notif-flag svg { width: 9px; height: 9px; stroke-width: 2.6; }
/* حركة القرع نفسها لجرس الزاوية الصغير + هالة كهرمانية متحركة للفت
   الانتباه (نفس مفاتيح جرس رأس الحساب). الشارة hidden عند لا مقروء
   فيتوقف الرسم تلقائياً. */
.mpc-notif-flag svg {
    transform-origin: 50% 3px;
    animation: mpc-bell-ring 2.2s ease-in-out infinite;
}
.mpc-notif-flag::after {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: 50%;
    border: 2px solid color-mix(in srgb, var(--warning) 70%, transparent);
    pointer-events: none;
    animation: mpc-bell-halo 2.2s cubic-bezier(0.16, 1, 0.3, 1) infinite;
}

/* ---- بيانات الزر ---- */
.mpc-meta { display: flex; flex-direction: column; line-height: 1.2; text-align: start; min-width: 0; }
.mpc-name {
    font-size: 13px; font-weight: 700; color: var(--text-title);
    max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mpc-sub { font-size: 11px; font-weight: 600; color: var(--text-secondary); }
.mpc-caret { color: var(--text-secondary); flex: none; transition: transform .2s ease; }
.mpc-root[data-open="true"] .mpc-caret { transform: rotate(180deg); }
@media (max-width: 600px) { .mpc-meta { display: none; } }

/* ---- القائمة المنسدلة ----
   إخفاء/إظهار عبر visibility مع تأخير مغلق كي تعمل حركة الخروج (enter/exit)
   بلا الحاجة لمكتبة حركة. القائمة position:absolute فلا تؤثّر على التخطيط. */
.mpc-menu {
    position: absolute;
    top: calc(100% + 10px);
    inset-inline-end: 0;
    width: 288px;
    max-width: calc(100vw - 2rem);
    background: var(--surface-solid);
    border: 1px solid var(--border-main);
    border-radius: 14px;
    box-shadow: var(--shadow-lg);
    padding: 8px;
    z-index: var(--z-dropdown);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px) scale(.96);
    pointer-events: none;
    transition: opacity .18s cubic-bezier(.16, 1, .3, 1),
                transform .18s cubic-bezier(.16, 1, .3, 1),
                visibility 0s linear .18s;
}
.mpc-menu.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
    pointer-events: auto;
    transition: opacity .18s cubic-bezier(.16, 1, .3, 1),
                transform .18s cubic-bezier(.16, 1, .3, 1),
                visibility 0s linear 0s;
}
/* مرتكز التحجيم عند زاوية الزر (يمين في LTR، يسار في RTL) */
.mpc-menu { transform-origin: top right; }
[dir="rtl"] .mpc-menu { transform-origin: top left; }

/* ---- رأس القائمة ---- */
.mpc-head { display: flex; align-items: center; gap: 12px; padding: 6px 6px 12px; }
.mpc-head-info { min-width: 0; flex: 1; }
.mpc-head-row { display: flex; align-items: center; gap: 6px; }
.mpc-head-name {
    font-size: 14px; font-weight: 700; color: var(--text-title);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mpc-role {
    flex: none;
    font-size: 10px; font-weight: 700; letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--primary);
    background: var(--light-primary);
    padding: 2px 7px; border-radius: 999px;
}
.mpc-head-email {
    display: block; margin-top: 2px;
    font-size: 12px; color: var(--text-secondary);
    direction: ltr; text-align: start;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ---- جرس الإشعارات داخل رأس القائمة ----
   بعد دمج زر الإشعارات في بطاقة الحساب: رأس القائمة dir=ltr دائماً فيصبح
   الجرس على يمين معلومات الحساب بالعربية والإنجليزية سواء. اللوحة (.nc-panel)
   شقيقة للقائمة داخل .mpc-root فترتكز على هندسته نفسها وتغطيها عند الفتح،
   وترتفع درجة تراكبها درجة واحدة فوق القائمة. */
.mpc-head .notification-center { flex: none; }
.mpc-root > .nc-panel { z-index: calc(var(--z-dropdown) + 1); }

/* ---- جرس رأس الحساب: بلون شارة الأفاتار (قرمزي) + هالة + قرع ----
   يعمل فقط مع إشعارات غير مقروءة (.has-unread يضبطه render في
   notifications.js). اللون مطابق لجرس زاوية الصورة (.mpc-notif-flag)،
   والهالة حلقة تنبثق من محيط الزر وتتلاشى (نمط radar-ping) عبر
   ::after — بلا وسوم إضافية. والجرس يقرع حول مرتكز أعلى الأيقونة. */
.mpc-head .notification-center.has-unread {
    background: color-mix(in srgb, var(--danger) 16%, var(--surface-solid));
    border-color: color-mix(in srgb, var(--danger) 48%, var(--border-main));
    color: var(--danger);
}
.mpc-head .notification-center.has-unread::after {
    content: '';
    position: absolute;
    inset: -1px; /* يغطي الحدّ كي تنبثق الهالة من محيطه الظاهر */
    border-radius: 50%;
    border: 2px solid color-mix(in srgb, var(--danger) 55%, transparent);
    pointer-events: none;
    animation: mpc-bell-halo 2.2s cubic-bezier(0.16, 1, 0.3, 1) infinite;
}
.mpc-head .notification-center.has-unread svg {
    transform-origin: 50% 4px;
    animation: mpc-bell-ring 2.2s ease-in-out infinite;
}
@keyframes mpc-bell-halo {
    0%   { transform: scale(1); opacity: .9; }
    70%  { transform: scale(1.55); opacity: 0; }
    100% { transform: scale(1.55); opacity: 0; }
}
@keyframes mpc-bell-ring {
    0%, 58%, 100% { transform: rotate(0); }
    62%  { transform: rotate(13deg); }
    70%  { transform: rotate(-11deg); }
    78%  { transform: rotate(8deg); }
    86%  { transform: rotate(-6deg); }
    94%  { transform: rotate(2deg); }
}
@media (prefers-reduced-motion: reduce) {
    .mpc-head .notification-center.has-unread,
    .mpc-head .notification-center.has-unread::after,
    .mpc-head .notification-center.has-unread svg,
    .mpc-notif-flag svg,
    .mpc-notif-flag::after { animation: none; }
    .mpc-head .notification-center.has-unread::after,
    .mpc-notif-flag::after { opacity: 0; }
}

/* ---- شريط الاستخدام (اختياري) ---- */
.mpc-meter { padding: 0 6px 12px; }
.mpc-meter-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.mpc-meter-label { font-size: 11px; font-weight: 600; color: var(--text-secondary); }
.mpc-meter-val { font-size: 11px; color: var(--text-title); font-variant-numeric: tabular-nums; font-family: var(--app-mono-family); }
.mpc-meter-track { position: relative; height: 6px; border-radius: 999px; background: var(--border-main); overflow: hidden; }
.mpc-meter-fill {
    width: 0;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--primary), var(--accent));
    transition: width .6s cubic-bezier(.16, 1, .3, 1);
    position: relative;
    overflow: hidden;
}
.mpc-menu.is-open .mpc-meter-fill { width: var(--mpc-pct, 0%); }
.mpc-meter-fill::after {
    content: "";
    position: absolute;
    inset: 0;
    width: 50%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .5), transparent);
    animation: mpc-shimmer 2.4s ease-in-out infinite;
}
@keyframes mpc-shimmer {
    0%   { transform: translateX(-140%); }
    100% { transform: translateX(260%); }
}

/* ---- فواصل ---- */
.mpc-sep { height: 1px; background: var(--border-main); margin: 4px 0; }

/* ---- عناصر القائمة ---- */
.mpc-item {
    display: flex; align-items: center; gap: 12px;
    width: 100%;
    padding: 9px 10px;
    border: none;
    background: transparent;
    border-radius: 10px;
    color: var(--text-title);
    font-size: 13.5px; font-weight: 500;
    cursor: pointer;
    text-align: start;
    transition: background-color .15s ease, color .15s ease;
}
.mpc-item:hover,
.mpc-item[data-active="true"] { background: var(--surface-hover); }
.mpc-item:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--primary); }
.mpc-item-ic { display: inline-grid; place-items: center; color: var(--text-secondary); flex: none; }
.mpc-item:hover .mpc-item-ic,
.mpc-item[data-active="true"] .mpc-item-ic { color: var(--primary); }
.mpc-item-main { min-width: 0; flex: 1; }
.mpc-item-label {
    display: block; font-weight: 600; color: var(--text-title);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mpc-item-desc {
    display: block; font-size: 11px; color: var(--text-muted);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ---- تسجيل الخروج (نمط خطر) ---- */
.mpc-item--signout { color: var(--danger); font-weight: 600; }
.mpc-item--signout:hover,
.mpc-item--signout[data-active="true"] { background: color-mix(in srgb, var(--danger) 12%, transparent); }
.mpc-item--signout .mpc-item-ic,
.mpc-item--signout:hover .mpc-item-ic,
.mpc-item--signout[data-active="true"] .mpc-item-ic { color: var(--danger); }
.mpc-item--signout .mpc-item-label { color: var(--danger); }

/* ---- تقليل الحركة ---- */
@media (prefers-reduced-motion: reduce) {
    .mpc-meter-fill::after { animation: none !important; }
    .mpc-menu,
    .mpc-meter-fill { transition: none !important; }
}
