/* ═══════════════ نافذة التأكيد — als-confirm ═══════════════
   بديل محلّي عن window.confirm وعن SweetAlert2.

   ⚠️ لماذا لا SweetAlert2 من CDN كما في AMS؟
   سياسة المشروع تمنع أصول CDN (fontawesome محلّي لهذا السبب)، والشبكة قد
   تُحجب. ونافذة تأكيد تفشل في التحميل تعني إمّا زرّ حذف لا يعمل، وإمّا —
   وهو الأسوأ — حذفاً يقع بلا سؤال. فالتأكيد أصلٌ لا يُحمَّل من الخارج.

   الألوان من متغيّرات :root في _Layout — لا ألوان محلية هنا.
   ودرجات الخطورة تطابق تدرّج als-deadline.css و als-notify.css:
   خطرٌ واحد بلغتين بصريتين يجعل المحامي يتعلّم لونين لمعنى واحد ثم يخلط بينهما. */

.als-confirm-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2000;                       /* فوق القائمة الجانبية (1000) والترويسة اللاصقة */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background: rgba(10, 23, 41, .55);   /* --ink-900 شفّافاً: تعتيمٌ بلون الهوية لا رمادٌ محايد */
    backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity var(--transition-fast);
}

.als-confirm-backdrop.is-open { opacity: 1; }

.als-confirm {
    width: 100%;
    max-width: 430px;
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: 0 20px 45px -12px rgba(10, 23, 41, .45);
    overflow: hidden;
    transform: translateY(10px) scale(.97);
    transition: transform var(--transition-fast);
    text-align: center;
    direction: rtl;
}

.als-confirm-backdrop.is-open .als-confirm { transform: none; }

/* ── الأيقونة: دائرة ملوّنة تُقرأ قبل النصّ ──
   المستخدم يميّز «أحمر» قبل أن يقرأ كلمة، فاللون هو أول ما يقول له
   إن كان الفعل هدماً أو بناءً. */
.als-confirm-icon {
    width: 62px;
    height: 62px;
    margin: 1.5rem auto .25rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    border: 3px solid transparent;
}

.als-confirm-body { padding: 0 1.5rem 1.25rem; }

.als-confirm-title {
    font-family: 'Amiri', serif;         /* العناوين وحدها — كبقية النظام */
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--ink-800);
    margin: .5rem 0 .35rem;
}

.als-confirm-text {
    font-size: .93rem;
    line-height: 1.85;
    color: var(--gray-600);
    margin: 0;
    word-break: break-word;              /* عنوان مستند طويل بلا مسافات لا يمدّ النافذة */
}

/* ملاحظة ثانوية تحت المتن — لتفصيلٍ لا يجوز أن ينافس السؤال نفسه */
.als-confirm-note {
    display: block;
    margin-top: .6rem;
    font-size: .8rem;
    color: var(--gray-500);
}

.als-confirm-actions {
    display: flex;
    gap: .6rem;
    padding: 1rem 1.5rem 1.35rem;
    justify-content: center;
}

.als-confirm-btn {
    min-width: 116px;
    padding: .58rem 1.1rem;
    border-radius: var(--radius);
    border: 1px solid transparent;
    font-family: inherit;
    font-size: .9rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition-fast);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
}

.als-confirm-btn:focus-visible {
    outline: 2px solid var(--brass-500);
    outline-offset: 2px;
}

/* ⚠️ «إلغاء» أولاً في ترتيب الـDOM ويحمل التركيز الابتدائي.
   الضغط الأعمى على Enter يجب أن ينتهي إلى «لا يقع شيء» لا إلى «وقع الحذف». */
.als-confirm-cancel {
    background: var(--white);
    border-color: var(--gray-300);
    color: var(--gray-700);
}

.als-confirm-cancel:hover { background: var(--gray-100); border-color: var(--gray-400); }

.als-confirm-ok { color: var(--white); }

/* ── درجات الخطورة ──────────────────────────────────────── */

/* danger — فعلٌ يهدم صفّاً لا يعود */
.als-confirm[data-kind="danger"] .als-confirm-icon {
    background: #fef2f2;
    border-color: #fecaca;
    color: var(--danger);
}
.als-confirm[data-kind="danger"] .als-confirm-ok { background: var(--danger); }
.als-confirm[data-kind="danger"] .als-confirm-ok:hover { background: #dc2626; }

/* warning — فعلٌ يُبقي الصفّ لكنه يغيّر أثراً قانونياً أو يفتح عدّاداً */
.als-confirm[data-kind="warning"] .als-confirm-icon {
    background: #fffbeb;
    border-color: #fde68a;
    color: #d97706;
}
.als-confirm[data-kind="warning"] .als-confirm-ok { background: #d97706; }
.als-confirm[data-kind="warning"] .als-confirm-ok:hover { background: #b45309; }

/* primary — فعلٌ إجرائي عادي، النبرة نبرة النظام لا نبرة إنذار */
.als-confirm[data-kind="primary"] .als-confirm-icon {
    background: var(--ink-100);
    border-color: #c9d6e6;
    color: var(--ink-700);
}
.als-confirm[data-kind="primary"] .als-confirm-ok { background: var(--ink-800); }
.als-confirm[data-kind="primary"] .als-confirm-ok:hover { background: var(--ink-900); }

/* success — فعلٌ بنّاء: إتمام مهمّة، إعادة قضية إلى التداول */
.als-confirm[data-kind="success"] .als-confirm-icon {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #059669;
}
.als-confirm[data-kind="success"] .als-confirm-ok { background: #059669; }
.als-confirm[data-kind="success"] .als-confirm-ok:hover { background: #047857; }

/* حالة الإرسال: النافذة تبقى وتُقفل أزرارها بدل أن تختفي فيظنّ المستخدم
   أن شيئاً لم يحدث فيعيد الضغط — والفعل قد يكون غير قابل للتكرار. */
.als-confirm.is-busy .als-confirm-btn { pointer-events: none; opacity: .6; }

@media (max-width: 480px) {
    .als-confirm-actions { flex-direction: column-reverse; }
    .als-confirm-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .als-confirm-backdrop,
    .als-confirm { transition: none; }
}

/* الطباعة لا تحمل نوافذ حوار */
@media print { .als-confirm-backdrop { display: none !important; } }
