/**
 * EnayaMed RTL (Right-to-Left) Support
 *
 * MINIMAL OVERRIDES ONLY
 *
 * The base CSS now uses logical properties (inset-inline-start/end,
 * margin-inline-start/end, padding-inline-start/end, etc.) so most
 * RTL behavior happens automatically. This file only contains:
 *
 * 1. Global direction settings
 * 2. Directional icons that need flipping
 * 3. Third-party component fixes
 * 4. Edge cases that can't use logical properties
 */

/* ============================================
   1. GLOBAL RTL SETTINGS
   ============================================ */
[dir="rtl"] {
  direction: rtl;
  text-align: start;
}

[dir="rtl"] body {
  direction: rtl;
  text-align: start;
}

/* ============================================
   2. PAGE CONTAINER LAYOUT
   ============================================ */
[dir="rtl"] .page-container {
  margin-inline: 0;
  padding-left: 0;
  padding-right: var(--sidebar-width);
}

[dir="rtl"] .app.is-collapsed .page-container {
  padding-right: var(--sidebar-collapsed-width);
}

/* Mobile: No margin needed */
@media (max-width: 991.98px) {
  [dir="rtl"] .page-container {
    margin-inline: 0;
    padding-left: 0;
    padding-right: 0;
  }
}

/* ============================================
   3. DIRECTIONAL ICONS - FLIP FOR RTL
   ============================================ */
/* Arrows and chevrons that indicate direction */
[dir="rtl"] .ti-angle-right:not(.no-flip),
[dir="rtl"] .ti-arrow-right:not(.no-flip),
[dir="rtl"] .ti-chevron-right:not(.no-flip),
[dir="rtl"] .fa-chevron-right:not(.no-flip),
[dir="rtl"] .fa-arrow-right:not(.no-flip),
[dir="rtl"] .bi-chevron-right:not(.no-flip),
[dir="rtl"] .bi-arrow-right:not(.no-flip) {
  transform: scaleX(-1);
}

[dir="rtl"] .ti-angle-left:not(.no-flip),
[dir="rtl"] .ti-arrow-left:not(.no-flip),
[dir="rtl"] .ti-chevron-left:not(.no-flip),
[dir="rtl"] .fa-chevron-left:not(.no-flip),
[dir="rtl"] .fa-arrow-left:not(.no-flip),
[dir="rtl"] .bi-chevron-left:not(.no-flip),
[dir="rtl"] .bi-arrow-left:not(.no-flip) {
  transform: scaleX(-1);
}

/* Mobile toggle rotation */
[dir="rtl"] .sidebar-logo .mobile-toggle i {
  transform: scaleX(-1);
}

/* ============================================
   4. BOOTSTRAP COMPONENT FIXES
   ============================================ */

/* Button Groups */
[dir="rtl"] .btn-group > .btn:not(:first-child) {
  margin-inline-start: -1px;
  margin-inline-end: 0;
}

[dir="rtl"] .btn-group > .btn {
  border-radius: 0;
}

[dir="rtl"] .btn-group > .btn:first-child {
  border-start-end-radius: var(--bs-btn-border-radius);
  border-end-end-radius: var(--bs-btn-border-radius);
  border-start-start-radius: 0;
  border-end-start-radius: 0;
}

[dir="rtl"] .btn-group > .btn:last-child {
  border-start-start-radius: var(--bs-btn-border-radius);
  border-end-start-radius: var(--bs-btn-border-radius);
  border-start-end-radius: 0;
  border-end-end-radius: 0;
}

[dir="rtl"] .btn-group > .btn:only-child {
  border-radius: var(--bs-btn-border-radius);
}

[dir="rtl"] .btn-toolbar .btn-group + .btn-group {
  margin-inline-start: 0.5rem;
  margin-inline-end: 0;
}

/* Input Groups */
[dir="rtl"] .input-group > .form-control:not(:last-child),
[dir="rtl"] .input-group > .form-select:not(:last-child) {
  border-start-end-radius: 0;
  border-end-end-radius: 0;
  border-start-start-radius: var(--bs-border-radius);
  border-end-start-radius: var(--bs-border-radius);
}

[dir="rtl"] .input-group > .form-control:not(:first-child),
[dir="rtl"] .input-group > .form-select:not(:first-child) {
  border-start-start-radius: 0;
  border-end-start-radius: 0;
  border-start-end-radius: var(--bs-border-radius);
  border-end-end-radius: var(--bs-border-radius);
}

/* Dropdown Alignment */
[dir="rtl"] .dropdown-menu-end {
  --bs-position: start;
  inset-inline-end: 0;
  inset-inline-start: auto;
}

[dir="rtl"] .dropdown-menu-start {
  --bs-position: end;
  inset-inline-start: 0;
  inset-inline-end: auto;
}

/* List Groups */
[dir="rtl"] .list-group-horizontal > .list-group-item + .list-group-item {
  border-inline-start-width: 0;
  border-inline-end-width: var(--bs-list-group-border-width);
}

/* ============================================
   5. FLEX DIRECTION OVERRIDES
   ============================================ */
/* Some flex containers need explicit row direction in RTL */
[dir="rtl"] .nav-section-left {
  flex-direction: row;
}

/* Keep internal order for navigation sections */
[dir="rtl"] .sidebar-toggle {
  order: -1;
}

/* Card header actions */
[dir="rtl"] .card-header .card-header-actions {
  margin-inline-start: auto;
  margin-inline-end: 0;
}

/* ============================================
   6. MARGIN/PADDING UTILITY FIXES
   ============================================ */
/* Bootstrap margin utilities that need swapping */
[dir="rtl"] .me-1 { margin-inline-end: 0.25rem !important; }
[dir="rtl"] .me-2 { margin-inline-end: 0.5rem !important; }
[dir="rtl"] .me-3 { margin-inline-end: 1rem !important; }
[dir="rtl"] .me-4 { margin-inline-end: 1.5rem !important; }
[dir="rtl"] .me-5 { margin-inline-end: 3rem !important; }

[dir="rtl"] .ms-1 { margin-inline-start: 0.25rem !important; }
[dir="rtl"] .ms-2 { margin-inline-start: 0.5rem !important; }
[dir="rtl"] .ms-3 { margin-inline-start: 1rem !important; }
[dir="rtl"] .ms-4 { margin-inline-start: 1.5rem !important; }
[dir="rtl"] .ms-5 { margin-inline-start: 3rem !important; }
[dir="rtl"] .ms-auto { margin-inline-start: auto !important; }

[dir="rtl"] .pe-1 { padding-inline-end: 0.25rem !important; }
[dir="rtl"] .pe-2 { padding-inline-end: 0.5rem !important; }
[dir="rtl"] .pe-3 { padding-inline-end: 1rem !important; }
[dir="rtl"] .pe-4 { padding-inline-end: 1.5rem !important; }
[dir="rtl"] .pe-5 { padding-inline-end: 3rem !important; }

[dir="rtl"] .ps-1 { padding-inline-start: 0.25rem !important; }
[dir="rtl"] .ps-2 { padding-inline-start: 0.5rem !important; }
[dir="rtl"] .ps-3 { padding-inline-start: 1rem !important; }
[dir="rtl"] .ps-4 { padding-inline-start: 1.5rem !important; }
[dir="rtl"] .ps-5 { padding-inline-start: 3rem !important; }

/* ============================================
   7. TEXT ALIGNMENT
   ============================================ */
[dir="rtl"] .text-start {
  text-align: start !important;
}

[dir="rtl"] .text-end {
  text-align: end !important;
}

/* ============================================
   8. STATS CARDS
   ============================================ */
[dir="rtl"] .stat-card .card-icon {
  margin-inline-start: 0.75rem;
  margin-inline-end: 0;
}

/* ============================================
   9. DATATABLES RTL
   ============================================ */
[dir="rtl"] .dataTables_wrapper .dataTables_filter {
  text-align: start;
}

[dir="rtl"] .dataTables_wrapper .dataTables_length {
  text-align: end;
}

[dir="rtl"] .dataTables_wrapper .dataTables_info {
  text-align: start;
}

[dir="rtl"] .dataTables_wrapper .dataTables_paginate {
  text-align: start;
}

[dir="rtl"] table.dataTable thead th,
[dir="rtl"] table.dataTable thead td {
  text-align: start;
}

[dir="rtl"] table.dataTable tbody th,
[dir="rtl"] table.dataTable tbody td {
  text-align: start;
}

/* ============================================
   10. FORM ELEMENTS
   ============================================ */
[dir="rtl"] .form-check {
  padding-inline-start: 1.5em;
  padding-inline-end: 0;
}

[dir="rtl"] .form-check .form-check-input {
  float: inline-start;
  margin-inline-start: -1.5em;
  margin-inline-end: 0;
}

[dir="rtl"] .form-switch {
  padding-inline-start: 2.5em;
}

[dir="rtl"] .form-switch .form-check-input {
  margin-inline-start: -2.5em;
}

/* ============================================
   11. BREADCRUMBS
   ============================================ */
[dir="rtl"] .breadcrumb-item + .breadcrumb-item::before {
  float: inline-start;
  padding-inline-end: var(--bs-breadcrumb-item-padding-x);
  padding-inline-start: 0;
}

/* ============================================
   12. MODALS & OFFCANVAS
   ============================================ */
[dir="rtl"] .modal-header .btn-close {
  margin: calc(-.5 * var(--bs-modal-header-padding-y)) auto calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x));
}

[dir="rtl"] .offcanvas-start {
  inset-inline-start: 0;
  inset-inline-end: auto;
  transform: translateX(100%);
}

[dir="rtl"] .offcanvas-end {
  inset-inline-end: 0;
  inset-inline-start: auto;
  transform: translateX(-100%);
}

/* ============================================
   13. ALERTS & TOASTS
   ============================================ */
[dir="rtl"] .alert-dismissible {
  padding-inline-end: 3rem;
  padding-inline-start: var(--bs-alert-padding-x);
}

[dir="rtl"] .alert-dismissible .btn-close {
  inset-inline-end: 0;
  inset-inline-start: auto;
}

[dir="rtl"] .toast-header .btn-close {
  margin-inline-end: var(--bs-toast-padding-x);
  margin-inline-start: calc(-.5 * var(--bs-toast-padding-x));
}

/* ============================================
   14. PRINT STYLES
   ============================================ */
@media print {
  [dir="rtl"] .page-container {
    margin-inline-end: 0;
  }
}
