/* ============================================================================
   enhanced-fields.css — خان البناء
   ثيم موحد بهوية الموقع لـ Select2 و Flatpickr (RTL)
   الألوان: rev-green #009739 | ink #0A1912/#0A1912 | red #E91924 | gray #F6F7F6
   ========================================================================== */

:root {
    --ef-green: #009739;
    --ef-green-dark: #00702a;
    --ef-ink: #0A1912;
    --ef-black: #0A1912;
    --ef-red: #E91924;
    --ef-gray: #F6F7F6;
    --ef-line: rgba(11, 18, 16, 0.12);
    --ef-ring: rgba(0, 151, 57, 0.15);
    --ef-radius: 0.5rem;
}

/* ============================================================
   1) Select2 — الثيم المخصص (theme: 'ef') وتوحيد الخط الشامل
   ============================================================ */

.select2-container,
.select2-container *,
.select2-dropdown,
.select2-search__field,
.select2-results__option,
.flatpickr-calendar,
.flatpickr-calendar * {
    font-family: 'IBM Plex Sans Arabic', 'Cairo', system-ui, sans-serif !important;
}

/* الحاوية */
.select2-container--ef {
    display: block;
    width: 100% !important;
    font-family: 'IBM Plex Sans Arabic', 'Cairo', system-ui, sans-serif;
}
.select2-container--ef .select2-selection--single,
.select2-container--ef .select2-selection--multiple {
    height: auto;
    box-sizing: border-box;
    cursor: pointer;
    user-select: none;
    background-color: #fff;
    border: 1.5px solid var(--ef-line);
    border-radius: var(--ef-radius);
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
    outline: none !important;
}

/* --- اختيار مفرد --- */
.select2-container--ef .select2-selection--single {
    padding: 0.625rem 2.25rem 0.625rem 0.875rem; /* RTL: مساحة للسهم يمين */
}
.select2-container--ef .select2-selection--single .select2-selection__rendered {
    padding: 0;
    color: var(--ef-ink);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.55;
    text-align: right;
}
.select2-container--ef .select2-selection--single .select2-selection__placeholder {
    color: #9ca3af;
    font-weight: 500;
}
.select2-container--ef .select2-selection--single .select2-selection__clear {
    float: left; /* RTL */
    margin-right: 0.5rem;
    color: #9ca3af;
    font-size: 1rem;
    line-height: 1.3;
    transition: color .15s ease;
}
.select2-container--ef .select2-selection--single .select2-selection__clear:hover {
    color: var(--ef-red);
}

/* السهم: شيفرون أنيق بدل المثلث */
.select2-container--ef .select2-selection--single .select2-selection__arrow {
    height: 100%;
    width: 2rem;
    left: 0.35rem; /* RTL: السهم يسار */
    right: auto;
}
.select2-container--ef .select2-selection--single .select2-selection__arrow b {
    display: inline-block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -65%) rotate(45deg);
    width: 0.5em;
    height: 0.5em;
    border: none;
    border-bottom: 2px solid #6b7280;
    border-right: 2px solid #6b7280;
    border-radius: 1px;
    transition: transform .2s cubic-bezier(.16,1,.3,1), border-color .2s ease;
    margin: 0;
}
.select2-container--ef.select2-container--open .select2-selection--single .select2-selection__arrow b {
    transform: translate(-50%, -25%) rotate(225deg);
    border-color: var(--ef-green);
}

/* --- اختيار متعدد (وسوم) --- */
.select2-container--ef .select2-selection--multiple {
    padding: 0.3rem 0.5rem;
    min-height: calc(0.625rem * 2 + 1.4em);
    position: relative;
}
.select2-container--ef .select2-selection--multiple .select2-selection__rendered {
    padding: 0;
    margin: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}
.select2-container--ef .select2-selection--multiple .select2-selection__choice {
    background: rgba(0, 151, 57, 0.10);
    border: 1px solid rgba(0, 151, 57, 0.25);
    border-radius: 0.375rem;
    color: var(--ef-green-dark);
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.18rem 0.6rem;
    margin: 0;
    float: none;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.select2-container--ef .select2-selection--multiple .select2-selection__choice__remove {
    color: var(--ef-red);
    font-weight: 900;
    margin-left: 0.35rem;
    margin-right: 0;
    float: none;
    transition: transform .15s ease;
}
.select2-container--ef .select2-selection--multiple .select2-selection__choice__remove:hover {
    color: #b00f17;
    background: transparent;
    transform: scale(1.15);
}
.select2-container--ef .select2-search--inline {
    float: none;
    display: inline-flex;
    margin: 0;
}
.select2-container--ef .select2-search--inline .select2-search__field {
    min-width: 6ch;
    margin: 0.1rem 0;
    padding: 0.28rem 0.5rem;
    border: none !important;
    outline: none !important;
    background: transparent;
    font-family: inherit;
    font-size: 0.85rem;
    color: var(--ef-ink);
    box-shadow: none !important;
}
.select2-container--ef .select2-selection--multiple .select2-selection__clear {
    position: absolute;
    top: 0.45rem;
    left: 0.6rem;
    color: #9ca3af;
}
.select2-container--ef .select2-selection--multiple .select2-selection__clear:hover { color: var(--ef-red); }

/* --- حالات التركيز والفتح والتمرير --- */
.select2-container--ef.select2-container--focus .select2-selection--single,
.select2-container--ef.select2-container--open .select2-selection--single,
.select2-container--ef.select2-container--focus .select2-selection--multiple,
.select2-container--ef.select2-container--open .select2-selection--multiple {
    border-color: var(--ef-green);
    box-shadow: 0 0 0 3px var(--ef-ring);
}
.select2-container--ef:not(.select2-container--open):not(.select2-container--disabled):hover .select2-selection--single,
.select2-container--ef:not(.select2-container--open):not(.select2-container--disabled):hover .select2-selection--multiple {
    border-color: rgba(0, 151, 57, 0.45);
}

/* --- معطل --- */
.select2-container--ef.select2-container--disabled .select2-selection--single,
.select2-container--ef.select2-container--disabled .select2-selection--multiple {
    background-color: var(--ef-gray);
    cursor: not-allowed;
    opacity: 0.75;
}
.select2-container--ef.select2-container--disabled .select2-selection__arrow b { opacity: .35; }

/* حالة خطأ تحقق يدوية: أضف class="is-invalid" على الـ select */
.select2-container--ef.select2-container--is-invalid .select2-selection--single,
.select2-container--ef.select2-container--is-invalid .select2-selection--multiple {
    border-color: var(--ef-red);
    box-shadow: 0 0 0 3px rgba(233, 25, 36, 0.12);
}

/* العنصر الأصلي المخفي يبقى متاحاً للتحقق */
.select2-container--ef .select2-selection[aria-disabled="true"] { cursor: not-allowed; }

/* --- القائمة المنسدلة --- */
.select2-container--ef .select2-dropdown {
    border: 1px solid rgba(11, 18, 16, 0.08);
    border-radius: 0.75rem;
    background-color: #fff;
    box-shadow: 0 4px 6px rgba(11, 18, 16, 0.04), 0 20px 44px -14px rgba(11, 18, 16, 0.22);
    overflow: hidden;
    font-family: 'IBM Plex Sans Arabic', 'Cairo', system-ui, sans-serif;
    z-index: 1060;
}
.select2-container--ef .select2-dropdown--above { border-radius: 0.75rem 0.75rem 0.75rem 0.75rem; margin-bottom: 4px; }
.select2-container--ef .select2-dropdown--below { border-radius: 0.75rem; margin-top: 4px; }

/* حقل البحث داخل القائمة */
.select2-container--ef .select2-search--dropdown {
    padding: 0.55rem 0.65rem;
    border-bottom: 1px solid rgba(11, 18, 16, 0.06);
    background: var(--ef-gray);
}
.select2-container--ef .select2-search--dropdown .select2-search__field {
    min-height: 0;
    width: 100%;
    padding: 0.5rem 0.8rem;
    border: 1.5px solid var(--ef-line);
    border-radius: var(--ef-radius);
    background: #fff;
    font-family: inherit;
    font-size: 0.85rem;
    color: var(--ef-ink);
    outline: none;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.select2-container--ef .select2-search--dropdown .select2-search__field:focus {
    border-color: var(--ef-green);
    box-shadow: 0 0 0 3px var(--ef-ring);
}
.select2-container--ef .select2-search--dropdown .select2-search__field::placeholder { color: #9ca3af; }

/* الخيارات — التمرير على القائمة الجذرية فقط */
.select2-container--ef .select2-results > .select2-results__options {
    max-height: 320px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--ef-green) #f1f1f1;
}
.select2-container--ef .select2-results > .select2-results__options::-webkit-scrollbar { width: 6px; }
.select2-container--ef .select2-results > .select2-results__options::-webkit-scrollbar-track { background: #f1f1f1; }
.select2-container--ef .select2-results > .select2-results__options::-webkit-scrollbar-thumb { background: var(--ef-green); border-radius: 3px; }

/* القوائم المتداخلة داخل المجموعات (optgroup): بلا تمرير أو ارتفاع خاص */
.select2-container--ef ul.select2-results__options--nested,
.select2-container--ef li.select2-results__option--group > ul.select2-results__options {
    max-height: none !important;
    overflow: visible;
    margin: 0;
    padding: 0 0.25rem 0.25rem 0;
    list-style: none;
}

.select2-container--ef .select2-results > li,
.select2-container--ef ul.select2-results__options li {
    text-align: right;
}
/* اتجاه LTR (عند تبديل اللغة) */
html[dir="ltr"] .select2-container--ef .select2-results > li,
html[dir="ltr"] .select2-container--ef ul.select2-results__options li { text-align: left; }
html[dir="ltr"] .select2-container--ef ul.select2-results__options--nested { padding: 0 0 0.25rem 0.25rem; }
html[dir="ltr"] .select2-container--ef .select2-results__group { text-align: left; }

/* حاوية المجموعة نفسها لا تتصرف كخيار قابل للاختيار */
.select2-container--ef li.select2-results__option--group {
    padding: 0 !important;
    cursor: default;
}
.select2-container--ef li.select2-results__option--group:hover { background: transparent; }

.select2-container--ef .select2-results__option:not(.select2-results__option--group) {
    padding: 0.55rem 0.9rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ef-ink);
    transition: background-color .12s ease, color .12s ease;
}
.select2-container--ef .select2-results__option--highlighted[aria-selected],
.select2-container--ef .select2-results__option--highlighted[aria-selected]:hover {
    background-color: rgba(0, 151, 57, 0.09);
    color: var(--ef-green-dark);
}
.select2-container--ef .select2-results__option[aria-selected="true"] {
    background-color: var(--ef-green);
    color: #fff;
    font-weight: 800;
}
.select2-container--ef .select2-results__option[aria-selected="true"]:hover {
    background-color: var(--ef-green-dark);
    color: #fff;
}
.select2-container--ef .select2-results__option.select2-results__message {
    color: #6b7280;
    font-weight: 500;
    text-align: center;
}
.select2-container--ef .select2-results__option[aria-disabled="true"] {
    color: #b0b6b3;
    cursor: not-allowed;
}

/* مجموعات الخيارات (optgroup) — ترويسة ثابتة أعلى القائمة أثناء التمرير */
.select2-container--ef .select2-results__group {
    display: block;
    padding: 0.5rem 0.9rem;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    color: #6b7280;
    background: var(--ef-gray);
    border-bottom: 1px solid rgba(11, 18, 16, 0.06);
    text-align: right;
}
.select2-container--ef li.select2-results__option--group:first-child > strong.select2-results__group {
    position: sticky;
    top: 0;
    z-index: 1;
}

/* مؤشر التحميل */
.select2-container--ef .select2-results__option.loading-results {
    text-align: center;
    color: var(--ef-green);
}

/* ============================================================
   2) Flatpickr — التقويم بهوية الموقع (RTL)
   ============================================================ */

.flatpickr-calendar.efCalendar {
    font-family: 'IBM Plex Sans Arabic', 'Cairo', system-ui, sans-serif;
    direction: rtl;
    border-radius: 0.9rem;
    border: 1px solid rgba(11, 18, 16, 0.07);
    box-shadow: 0 4px 6px rgba(11, 18, 16, 0.05), 0 24px 48px -16px rgba(11, 18, 16, 0.25);
    overflow: hidden;
    z-index: 1070;
}
.flatpickr-calendar.efCalendar.open { animation: efCalIn .18s cubic-bezier(.16,1,.3,1); }
@keyframes efCalIn {
    from { opacity: 0; transform: translateY(-6px) scale(.98); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* الرأس */
.flatpickr-calendar.efCalendar .flatpickr-months {
    background: var(--ef-black);
}
.flatpickr-calendar.efCalendar .flatpickr-month {
    color: #fff;
    height: 46px;
}
.flatpickr-calendar.efCalendar .flatpickr-current-month {
    font-weight: 800;
    font-size: 0.95rem;
    padding-top: 8px;
}
.flatpickr-calendar.efCalendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-calendar.efCalendar .flatpickr-current-month input.cur-year {
    font-weight: 800;
    color: #fff;
}
.flatpickr-calendar.efCalendar .flatpickr-monthDropdown-months:hover,
.flatpickr-calendar.efCalendar .numInputWrapper:hover .cur-year {
    background: rgba(255, 255, 255, 0.08);
}
.flatpickr-calendar.efCalendar .flatpickr-monthDropdown-month {
    background: var(--ef-black);
    color: #fff;
}
.flatpickr-calendar.efCalendar .flatpickr-prev-month,
.flatpickr-calendar.efCalendar .flatpickr-next-month {
    fill: #fff;
    color: #fff;
    transition: background-color .15s ease;
    border-radius: 0.5rem;
}
.flatpickr-calendar.efCalendar .flatpickr-prev-month:hover,
.flatpickr-calendar.efCalendar .flatpickr-next-month:hover {
    background: rgba(0, 151, 57, 0.35);
    fill: #fff;
    color: #fff;
}

/* أيام الأسبوع */
.flatpickr-calendar.efCalendar span.flatpickr-weekday {
    color: var(--ef-green);
    font-weight: 900;
    font-size: 0.72rem;
}

/* الأيام */
.flatpickr-calendar.efCalendar .dayContainer { padding: 0.4rem; }
.flatpickr-calendar.efCalendar .flatpickr-day {
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--ef-ink);
    transition: background-color .12s ease, color .12s ease, transform .12s ease;
}
.flatpickr-calendar.efCalendar .flatpickr-day:hover {
    background: rgba(0, 151, 57, 0.10);
    border-color: transparent;
    color: var(--ef-green-dark);
}
.flatpickr-calendar.efCalendar .flatpickr-day.today {
    border-color: var(--ef-green);
    color: var(--ef-green);
    font-weight: 900;
}
.flatpickr-calendar.efCalendar .flatpickr-day.today:hover {
    background: var(--ef-green);
    color: #fff;
}
.flatpickr-calendar.efCalendar .flatpickr-day.selected,
.flatpickr-calendar.efCalendar .flatpickr-day.selected:hover,
.flatpickr-calendar.efCalendar .flatpickr-day.startRange,
.flatpickr-calendar.efCalendar .flatpickr-day.endRange {
    background: var(--ef-green);
    border-color: var(--ef-green);
    color: #fff;
    font-weight: 800;
    box-shadow: 0 6px 16px -6px rgba(0, 151, 57, 0.55);
}
.flatpickr-calendar.efCalendar .flatpickr-day.inRange {
    background: rgba(0, 151, 57, 0.08);
    border-color: transparent;
    box-shadow: -5px 0 0 rgba(0,151,57,.08), 5px 0 0 rgba(0,151,57,.08);
}
.flatpickr-calendar.efCalendar .flatpickr-day.flatpickr-disabled,
.flatpickr-calendar.efCalendar .flatpickr-day.prevMonthDay,
.flatpickr-calendar.efCalendar .flatpickr-day.nextMonthDay {
    color: #c3c8c5;
}

/* الوقت */
.flatpickr-calendar.efCalendar .flatpickr-time {
    border-top: 1px solid rgba(11, 18, 16, 0.06);
    background: var(--ef-gray);
}
.flatpickr-calendar.efCalendar .flatpickr-time input:hover,
.flatpickr-calendar.efCalendar .flatpickr-time input:focus {
    background: #fff;
}
.flatpickr-calendar.efCalendar .flatpickr-time input:focus {
    border-color: var(--ef-green);
    box-shadow: 0 0 0 2px var(--ef-ring);
}
.flatpickr-calendar.efCalendar .flatpickr-time .flatpickr-time-separator,
.flatpickr-calendar.efCalendar .flatpickr-time .flatpickr-am-pm {
    color: var(--ef-ink);
    font-weight: 700;
}
.flatpickr-calendar.efCalendar .flatpickr-am-pm:focus {
    background: #fff;
    outline: none;
    border-color: var(--ef-green);
}

/* زر "اليوم" عند التفعيل */
.flatpickr-calendar.efCalendar .flatpickr-buttons .btn-today {
    background: var(--ef-green);
    color: #fff;
    border: none;
    border-radius: 0.4rem;
    font-family: inherit;
    font-weight: 800;
    font-size: 0.78rem;
    padding: 0.4rem 0.9rem;
    margin: 0.4rem;
    cursor: pointer;
    transition: background-color .15s ease;
}
.flatpickr-calendar.efCalendar .flatpickr-buttons .btn-today:hover { background: var(--ef-green-dark); }

/* حقل الإدخال البديل (altInput): يحافظ على كلاسات الحقل الأصلية + أيقونة تقويم */
input.ef-alt-input {
    padding-left: 2.5rem !important; /* مساحة الأيقونة في الطرف الأيسر (RTL) */
    cursor: pointer;
    background: #ffffff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23009739' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2.5'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3Cpath d='m9 16 2 2 4-4'/%3E%3C/svg%3E") no-repeat left 0.8rem center / 1.05rem auto !important;
}
input.ef-alt-input:focus {
    border-color: var(--ef-green) !important;
    box-shadow: 0 0 0 3px var(--ef-ring);
}

/* إخفاء الحقل الأصلي بشكل نظيف */
input[data-ef-original] {
    display: none !important;
}

/* توافق مع النوافذ المنبثقة/القوائم ذات z-index العالي */
.modal .select2-container--ef .select2-dropdown,
.fixed .select2-container--ef .select2-dropdown { z-index: 1080; }

/* تقليل الحركة */
@media (prefers-reduced-motion: reduce) {
    .select2-container--ef *,
    .flatpickr-calendar.efCalendar * { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
