/*
 * i18n.css — ما تحتاجه الشاشةُ حين تصير إنجليزية.
 *
 * الشجرةُ كُتبت عربيةً خالصة: `direction: rtl` مثبّتٌ في ٢١٤ ملفاً، والحشواتُ
 * والهوامشُ مكتوبةٌ بـ`right`/`left` صريحة. إعادةُ كتابتها كلَّها بخصائصَ
 * منطقية (`margin-inline-start`) عملٌ كبيرٌ يمسّ كلَّ ملفّ؛ وهذا الملفُّ يقلبها
 * من الجذر بدلاً من ذلك: كلُّ قاعدةٍ هنا مشروطةٌ بـ`[dir="ltr"]` فلا تُغيّر
 * شيئاً في الوضع العربي — أي أن العملاء الحاليين لا يرون فرقاً بايتاً واحداً.
 *
 * يُدرَج بعد بقيّة ملفّات CSS كي يفوز في الترجيح.
 */

/* ── الاتجاه العام ─────────────────────────────────────────────────────── */

html[dir="ltr"] body,
body[dir="ltr"],
[dir="ltr"] #reportsPage {
    direction: ltr !important;
    text-align: left;
}

/*
 * ── قلبُ الاتجاه من الجذر لا عنصراً عنصراً ────────────────────────────────
 * `direction: rtl` مُعلَنٌ صراحةً في ٢١٤ ملفاً على حاويات بأسماءٍ مختلفة
 * (`.erp-dashboard`، `.ins-shell`، `.nav-column`…)، وبعضُها يضع `dir="rtl"`
 * على الوسم نفسِه. والإعلانُ الصريح لا تتجاوزه الوراثة، فكان كلُّ إصلاحٍ
 * يلاحق اسمَ صنفٍ جديداً ويترك عشراتٍ غيره — وهو سباقٌ لا يُكسَب: أيُّ شاشةٍ
 * تُضاف غداً بحاويةٍ جديدة تعود مقلوبة.
 *
 * فنقلب الافتراضَ بدل مطاردته: في الوضع الإنجليزي كلُّ شيءٍ LTR. والنصُّ
 * العربيُّ داخل فقرةٍ LTR يظلّ يُعرَض صحيحاً — خوارزميةُ الاتجاهين تتكفّل
 * بذلك؛ الذي يتغيّر هو ترتيبُ الفقرة لا ترتيبُ حروفها.
 *
 * ولمن يحتاج جزيرةً عربيةً حقّاً (معاينةُ فاتورةٍ عربية داخل واجهةٍ إنجليزية)
 * صنفُ `keep-rtl` يستثني العنصرَ وذرّيتَه.
 */
[dir="ltr"] * {
    direction: ltr;
}

[dir="ltr"] .keep-rtl,
[dir="ltr"] .keep-rtl * {
    direction: rtl;
}

/* الجداول: العناوين والخلايا تتبع الاتجاه، إلّا أعمدةَ الأرقام فتبقى يميناً
   لأن محاذاة الأرقام إلى اليمين اصطلاحٌ محاسبيّ لا علاقةَ له باتجاه اللغة. */
[dir="ltr"] table th,
[dir="ltr"] table td {
    text-align: left;
}
[dir="ltr"] table th.num,
[dir="ltr"] table td.num,
[dir="ltr"] table th[data-num],
[dir="ltr"] table td[data-num],
[dir="ltr"] .amount,
[dir="ltr"] .qty,
[dir="ltr"] .total {
    text-align: right;
}

/* أعمدةُ النصّ في التقارير (`td.txt`: اسمُ المادة، اسمُ الحساب، البيان…):
   كلُّ ملفِّ تقريرٍ يثبّتها يميناً بمحدِّدٍ يحمل اسمَ جدولِه — `table.bal td.txt`
   و`table.rpt tbody td.txt` وأمثالُهما في خمسةَ عشرَ ملفاً — وتخصيصُها يغلب
   القاعدةَ العامّة أعلاه، فيبقى اسمُ المادة ملتصقاً باليمين في الإنجليزية بينما
   يبدأ سائرُ الجدول من اليسار. قاعدةٌ واحدةٌ بـ`!important` أوثقُ من مطاردةِ
   كلِّ محدِّدٍ على حدة. أمّا `.num` فتبقى بمحاذاةِ تقريرِها: صفُّ الأرقام
   اصطلاحٌ محاسبيٌّ لا اتجاهُ لغة. */
[dir="ltr"] table th.txt,
[dir="ltr"] table td.txt,
[dir="ltr"] table td.name,
[dir="ltr"] table td.label {
    text-align: left !important;
}

/* الحقول: النصّ يبدأ من اليسار، والأرقام تبقى LTR في الحالتين. */
[dir="ltr"] input[type="text"],
[dir="ltr"] input[type="search"],
[dir="ltr"] input[type="password"],
[dir="ltr"] textarea,
[dir="ltr"] select {
    direction: ltr;
    text-align: left;
}
input[type="number"],
input[type="tel"],
input.num {
    direction: ltr;
    text-align: right;
}

/* القوائم المنسدلة والأزرار المرصوفة: نعكس ترتيبَ الصفّ لا مواضعَ العناصر،
   فينقلب الشريط كاملاً بسطرٍ واحد بدل تعديل كلِّ عنصرٍ على حدة. */
[dir="ltr"] .navbar-nav,
[dir="ltr"] .btn-group,
[dir="ltr"] .toolbar,
[dir="ltr"] .actions {
    flex-direction: row;
}

[dir="ltr"] .dropdown-menu {
    right: auto;
    left: 0;
    text-align: left;
}

/* الأيقونةُ الملاصقةُ للنصّ: هامشُها كان على اليسار في العربية. */
[dir="ltr"] .fas,
[dir="ltr"] .far,
[dir="ltr"] .fab {
    margin-left: 0;
    margin-right: 6px;
}

/* ── الشريط الجانبي ────────────────────────────────────────────────────── */
/*
 * الشريطُ مثبَّتٌ إلى اليمين بـ`position:fixed; right:0`، فينتقل إلى اليسار في الإنجليزية.
 *
 * أمّا هامشُ الجسم الذي يترك له مكاناً (`margin-right:250px`) فموضعُ قلبه في
 * `Admin/Menu.php` نفسه لا هنا: الهامشُ مُعلَنٌ هناك داخل القائمة، وهذا الملفّ
 * يُحمّل في كلّ صفحة. فقاعدةٌ عامّةٌ هنا كانت تحجز ٢٥٠ بكسلاً فارغةً على يسار
 * الشاشات التي لا شريط لها أصلاً — شاشةُ اختيار السنة والدخول مثلاً — فتظهر
 * مزاحةً عن المركز في الإنجليزية وحدها.
 */
[dir="ltr"] .sidebar {
    right: auto;
    left: 0;
    direction: ltr;
    border-left: none;
    border-right: 1px solid var(--s-border, #34495e);
    box-shadow: 2px 0 22px var(--s-shadow, rgba(0, 0, 0, .28));
}

/*
 * `.nav-column` و`.nav-link-v` تُعلن `direction: rtl` بنفسها داخل Menu.php،
 * فلا يكفي قلبُ `.sidebar` وحده — الوراثةُ لا تتجاوز إعلاناً صريحاً على الابن.
 * والعُطلُ الناتج ليس محاذاةَ نصٍّ فحسب: البنودُ صناديقُ `flex`، واتجاهُ RTL
 * يجعل بدايةَ المحور يميناً فتُكدَّس الأيقونةُ والنصُّ إلى الحافة المقابلة.
 * لذلك نقلب الشجرة كلَّها لا العناصرَ المعروفةَ بأسمائها، لأن القائمة تنمو.
 */
[dir="ltr"] .sidebar,
[dir="ltr"] .sidebar * {
    direction: ltr;
}

[dir="ltr"] .sidebar .nav-link-v,
[dir="ltr"] .sidebar li a {
    text-align: left;
}

/* أيقونةُ بند القائمة كانت تُبعِد النصَّ بهامشٍ يساريّ في العربية. */
[dir="ltr"] .sidebar .nav-link-v i,
[dir="ltr"] .sidebar li a i {
    margin-left: 0;
    margin-right: 8px;
}

/* ── جداول الأدلة (محرّك accounting-report-helper) ─────────────────────── */
/*
 * ── لماذا الأرقام تحديداً ──────────────────────────────────────────────────
 * `.num-cell` لا تُعلن محاذاةً أصلاً، فكانت ترث `start` — وهي اليمينُ في
 * العربية. فبدت الأرقام محاذاةً لليمين «مجّاناً»، وهو الاصطلاح المحاسبي
 * الصحيح. وحين صار الاتجاه LTR انقلبت `start` إلى اليسار فتبعثرت خاناتُ
 * المدين والدائن والرصيد ولم تعد الفواصلُ العشرية على عمود واحد.
 *
 * والدرس أن المحاذاة هنا ليست تابعةً للّغة بل للمحتوى: الأرقام يميناً في
 * اللغتين معاً. لذلك نُثبّتها صراحةً بدل تركها للاتجاه.
 */
[dir="ltr"] .dir-table .num-cell,
[dir="ltr"] .dir-table th.num-cell,
[dir="ltr"] td[class*="num"],
[dir="ltr"] th[class*="num"] {
    text-align: right;
}

[dir="ltr"] .dir-table .name-cell,
[dir="ltr"] .dir-table th {
    text-align: left;
}

/*
 * عنوانُ العمود الرقمي يتبع أرقامَه.
 *
 * `num-head` صنفٌ لا تنسيقَ له في أيّ مكانٍ آخر، وهذه قاعدتُه الوحيدة وهي
 * مشروطةٌ بـ`[dir="ltr"]` — أي أن إضافته إلى الترويسة لا تُغيّر في العربية
 * بكسلاً واحداً. البديلُ (`th:nth-child(4)`) كان سيربط التنسيقَ بترتيب
 * الأعمدة، فينكسر صامتاً أوّلَ مرّة يُضاف عمودٌ أو يُخفى.
 */
[dir="ltr"] .dir-table th.num-head {
    text-align: right;
}

[dir="ltr"] .dir-table .code-cell {
    text-align: left;
}

/* كتلةُ الاسمين (الرئيسي فوق والثانوي تحته) تُعلن `text-align: right`. */
[dir="ltr"] .dir-leaf-name {
    text-align: left;
}

/*
 * إزاحةُ الشجرة مكتوبةٌ `padding-right` في الكود، وهي في الإنجليزية تدفع
 * الأبناءَ إلى الجهة الخطأ فيبدو التشجير معكوساً. صُحّح المصدرُ إلى
 * `padding-inline-start` (يعمل في الاتجاهين)، وهذا احتياطٌ لما لم يُصحَّح بعد.
 */
[dir="ltr"] .dir-node-cell {
    padding-right: 0;
}

/*
 * سهمُ الطيّ `fa-chevron-left` يشير إلى داخل الشجرة في العربية. في الإنجليزية
 * يجب أن يشير يميناً وهو مطويّ، وأسفلَ وهو مفتوح. القاعدةُ الثانية ضرورية
 * ووزنُها أعلى عمداً: بدونها يتساوى وزنُها مع `.dir-toggle.open i` في الأصل
 * فيحسمها ترتيبُ التحميل — وهو غيرُ مضمون بين ملفّين.
 */
[dir="ltr"] .dir-toggle i {
    transform: scaleX(-1);
}
[dir="ltr"] .dir-toggle.open i {
    transform: rotate(-90deg);
}

/* ── مبدّل اللغة ───────────────────────────────────────────── */
/* كان يفترض شريطاً داكناً دائماً (نصٌّ أبيض ثابت) ويحتاج صنف `on-light` يدوياً
   على الشاشات الفاتحة. مع ألوان النظام صار الشريط قد يكون فاتحاً أو داكناً في
   الصفحة نفسها، فلا يصحّ افتراضٌ ولا صنفٌ يدوي: الرموز تتبع السطح الذي يجلس
   عليه المبدّل. (يبقى `on-light` عاملاً لمن استعمله سابقاً.) */

.scss-lang-switch {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    border: 1px solid var(--surface-border, rgba(255, 255, 255, .35));
    border-radius: 999px;
    background: var(--chip-bg, rgba(255, 255, 255, .08));
    vertical-align: middle;
}

.scss-lang-opt {
    display: inline-block;
    min-width: 30px;
    padding: 3px 9px;
    border-radius: 999px;
    font: 600 12px/1.4 system-ui, "Segoe UI", Tahoma, sans-serif;
    color: var(--s-text, #fff);
    text-align: center;
    text-decoration: none;
    opacity: .82;
    transition: background .15s, opacity .15s;
}

.scss-lang-opt:hover {
    opacity: 1;
    text-decoration: none;
    color: var(--s-text, #fff);
    background: var(--row-hover, transparent);
}

.scss-lang-opt.is-on {
    background: var(--accent-solid, #fff);
    color: var(--on-accent, #1f2937);
    opacity: 1;
}

/* على خلفيةٍ فاتحة (شاشاتُ الإعدادات والتقارير) يُقلب التباين. */
.scss-lang-switch.on-light {
    border-color: var(--surface-border, #cbd5e1);
    background: var(--chip-bg, #f1f5f9);
}
.scss-lang-switch.on-light .scss-lang-opt {
    color: var(--s-text, #334155);
}
.scss-lang-switch.on-light .scss-lang-opt.is-on {
    background: var(--accent-solid, #334155);
    color: var(--on-accent, #fff);
}

/* الطباعة: لا معنى لمبدّل اللغة على الورق. */
@media print {
    .scss-lang-switch { display: none !important; }
}

/* ── محاذاةُ النصّ المكتوبةُ داخل السمة `style` ────────────────────────────
 * ٣٦٤ موضعاً في ١٥٦ ملفاً تكتب `text-align: right` سمةً سطرية، والسمةُ
 * السطرية تتقدّم على أيّ قاعدةٍ في ملفّ CSS مهما بلغت خصوصيّتُها. فبلا
 * `!important` هنا تبقى التسمياتُ محاذاةً لليمين فوق حقولٍ تسير يساراً —
 * وهو ما ظهر في بطاقة المادة: النصُّ إنجليزيٌّ والمحاذاةُ عربية.
 *
 * `td` مستثناةٌ عمداً: خلايا الأرقام تُحاذى يميناً في الإنجليزية أيضاً،
 * وهو عُرفٌ محاسبيٌّ لا يتغيّر بتغيّر اللغة.
 */
[dir="ltr"] label[style*="text-align: right"],
[dir="ltr"] label[style*="text-align:right"],
[dir="ltr"] th[style*="text-align: right"],
[dir="ltr"] th[style*="text-align:right"],
[dir="ltr"] ul[style*="text-align: right"],
[dir="ltr"] ul[style*="text-align:right"],
[dir="ltr"] div[style*="text-align: right"],
[dir="ltr"] div[style*="text-align:right"],
[dir="ltr"] table[style*="text-align: right"],
[dir="ltr"] table[style*="text-align:right"] {
    text-align: left !important;
}

/* حقولُ الإدخال تتبع اتجاهَ الصفحة لا محاذاةً مثبّتة. */
[dir="ltr"] input[style*="text-align: right"]:not([type="number"]),
[dir="ltr"] input[style*="text-align:right"]:not([type="number"]) {
    text-align: left !important;
}
