/* Logical Properties for Better RTL/LTR Support */
/* These properties automatically adapt to text direction without needing [dir="rtl"] selectors */

/* Positioning - Using logical properties */
.left-0 { inset-inline-start: 0; }
.left-1 { inset-inline-start: 0.25rem; }
.left-2 { inset-inline-start: 0.5rem; }
.left-3 { inset-inline-start: 0.75rem; }
.left-4 { inset-inline-start: 1rem; }
.left-5 { inset-inline-start: 1.25rem; }
.left-6 { inset-inline-start: 1.5rem; }

.right-0 { inset-inline-end: 0; }
.right-1 { inset-inline-end: 0.25rem; }
.right-2 { inset-inline-end: 0.5rem; }
.right-3 { inset-inline-end: 0.75rem; }
.right-4 { inset-inline-end: 1rem; }
.right-5 { inset-inline-end: 1.25rem; }
.right-6 { inset-inline-end: 1.5rem; }

/* Margin - Using logical properties */
.ml-1 { margin-inline-start: 0.25rem; }
.ml-2 { margin-inline-start: 0.5rem; }
.ml-3 { margin-inline-start: 0.75rem; }
.ml-4 { margin-inline-start: 1rem; }
.ml-5 { margin-inline-start: 1.25rem; }
.ml-6 { margin-inline-start: 1.5rem; }
.ml-8 { margin-inline-start: 2rem; }
.ml-10 { margin-inline-start: 2.5rem; }
.ml-12 { margin-inline-start: 3rem; }

.mr-1 { margin-inline-end: 0.25rem; }
.mr-2 { margin-inline-end: 0.5rem; }
.mr-3 { margin-inline-end: 0.75rem; }
.mr-4 { margin-inline-end: 1rem; }
.mr-5 { margin-inline-end: 1.25rem; }
.mr-6 { margin-inline-end: 1.5rem; }
.mr-8 { margin-inline-end: 2rem; }
.mr-10 { margin-inline-end: 2.5rem; }
.mr-12 { margin-inline-end: 3rem; }

/* Padding - Using logical properties */
.pl-1 { padding-inline-start: 0.25rem; }
.pl-2 { padding-inline-start: 0.5rem; }
.pl-3 { padding-inline-start: 0.75rem; }
.pl-4 { padding-inline-start: 1rem; }
.pl-5 { padding-inline-start: 1.25rem; }
.pl-6 { padding-inline-start: 1.5rem; }
.pl-8 { padding-inline-start: 2rem; }
.pl-10 { padding-inline-start: 2.5rem; }
.pl-12 { padding-inline-start: 3rem; }

.pr-1 { padding-inline-end: 0.25rem; }
.pr-2 { padding-inline-end: 0.5rem; }
.pr-3 { padding-inline-end: 0.75rem; }
.pr-4 { padding-inline-end: 1rem; }
.pr-5 { padding-inline-end: 1.25rem; }
.pr-6 { padding-inline-end: 1.5rem; }
.pr-8 { padding-inline-end: 2rem; }
.pr-10 { padding-inline-end: 2.5rem; }
.pr-12 { padding-inline-end: 3rem; }

/* Border - Using logical properties */
.border-l { border-inline-start-width: 1px; border-inline-start-style: solid; }
.border-r { border-inline-end-width: 1px; border-inline-end-style: solid; }

/* Only override with physical properties when specifically needed for RTL */
/* These are the exceptions where we need explicit RTL handling */

/* Text alignment needs explicit RTL handling */
[dir="rtl"] .text-left { text-align: right; }
[dir="rtl"] .text-right { text-align: left; }

/* Float needs explicit RTL handling */
[dir="rtl"] .float-left { float: right; }
[dir="rtl"] .float-right { float: left; }

/* Some transforms need explicit RTL handling */
[dir="rtl"] .transform {
  transform: scaleX(-1);
}

[dir="rtl"] .rotate-90 {
  transform: rotate(-90deg);
}

[dir="rtl"] .rotate-180 {
  transform: rotate(180deg);
}

[dir="rtl"] .rotate-270 {
  transform: rotate(90deg);
}

/* Flexbox needs explicit RTL handling */
[dir="rtl"] .flex-col {
  flex-direction: column;
}

[dir="rtl"] .justify-start {
  justify-content: flex-end;
}

[dir="rtl"] .justify-end {
  justify-content: flex-start;
}

[dir="rtl"] .items-start {
  align-items: flex-end;
}

[dir="rtl"] .items-end {
  align-items: flex-start;
}

/* Grid needs explicit RTL handling */
[dir="rtl"] .grid {
  direction: rtl;
}

/* Typography needs explicit RTL handling */
[dir="rtl"] {
  direction: rtl;
}

[dir="ltr"] {
  direction: ltr;
}

[dir="rtl"] h1,
[dir="rtl"] h2,
[dir="rtl"] h3,
[dir="rtl"] h4,
[dir="rtl"] h5,
[dir="rtl"] h6 {
  text-align: right;
}

[dir="rtl"] p,
[dir="rtl"] div,
[dir="rtl"] span {
  text-align: right;
}

/* Navigation RTL styles */
[dir="rtl"] .nav,
[dir="rtl"] .navbar {
  direction: rtl;
}

/* Dropdown RTL styles */
[dir="rtl"] .dropdown-menu {
  text-align: right;
}

[dir="rtl"] .dropdown-item {
  text-align: right;
}

/* Form RTL styles */
[dir="rtl"] .form-group {
  text-align: right;
}

[dir="rtl"] .form-label {
  text-align: right;
  display: block;
}

[dir="rtl"] .form-control,
[dir="rtl"] .form-select,
[dir="rtl"] .form-textarea {
  text-align: right;
  direction: rtl;
}

[dir="rtl"] .form-check {
  text-align: right;
}

[dir="rtl"] .btn-group {
  direction: rtl;
}

/* Table RTL styles */
[dir="rtl"] .table {
  direction: rtl;
}

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

[dir="rtl"] .table-responsive {
  direction: rtl;
}

/* Card RTL styles */
[dir="rtl"] .card {
  direction: rtl;
}

[dir="rtl"] .card-header,
[dir="rtl"] .card-body,
[dir="rtl"] .card-footer {
  text-align: right;
}

/* Modal RTL styles */
[dir="rtl"] .modal-dialog {
  direction: rtl;
}

[dir="rtl"] .modal-header,
[dir="rtl"] .modal-body,
[dir="rtl"] .modal-footer {
  text-align: right;
}

/* Alert RTL styles */
[dir="rtl"] .alert {
  direction: rtl;
  text-align: right;
}

/* Badge RTL styles */
[dir="rtl"] .badge {
  direction: rtl;
}

/* Breadcrumb RTL styles */
[dir="rtl"] .breadcrumb {
  direction: rtl;
}

/* Pagination RTL styles */
[dir="rtl"] .pagination {
  direction: rtl;
}

/* Progress RTL styles */
[dir="rtl"] .progress {
  direction: rtl;
}

[dir="rtl"] .progress-bar {
  direction: ltr;
}

/* List group RTL styles */
[dir="rtl"] .list-group {
  direction: rtl;
}

[dir="rtl"] .list-group-item {
  text-align: right;
}

/* Tooltip RTL styles */
[dir="rtl"] .tooltip {
  direction: rtl;
}

[dir="rtl"] .tooltip-inner {
  text-align: right;
}

/* Popover RTL styles */
[dir="rtl"] .popover {
  direction: rtl;
}

[dir="rtl"] .popover-header,
[dir="rtl"] .popover-body {
  text-align: right;
}

/* Sidebar RTL styles */
[dir="rtl"] .sidebar {
  direction: rtl;
}

[dir="rtl"] .sidebar-nav {
  direction: rtl;
}

[dir="rtl"] .sidebar-nav .nav-link {
  text-align: right;
}

/* Header RTL styles */
[dir="rtl"] .header {
  direction: rtl;
}

[dir="rtl"] .header-nav {
  direction: rtl;
}

/* Footer RTL styles */
[dir="rtl"] .footer {
  direction: rtl;
}

[dir="rtl"] .footer-nav {
  direction: rtl;
}

[dir="rtl"] .footer-nav .nav-link {
  text-align: right;
}

/* Language switcher RTL styles */
[dir="rtl"] .language-switcher {
  direction: rtl;
}

/* Search RTL styles */
[dir="rtl"] .search-form {
  direction: rtl;
}

[dir="rtl"] .search-input {
  text-align: right;
}

/* Tab RTL styles */
[dir="rtl"] .nav-tabs {
  direction: rtl;
}

[dir="rtl"] .tab-content {
  direction: rtl;
}

/* Accordion RTL styles */
[dir="rtl"] .accordion {
  direction: rtl;
}

[dir="rtl"] .accordion-header {
  text-align: right;
}

[dir="rtl"] .accordion-button {
  text-align: right;
}

/* Carousel RTL styles */
[dir="rtl"] .carousel {
  direction: rtl;
}

[dir="rtl"] .carousel-indicators {
  direction: ltr;
}

/* Offcanvas RTL styles */
[dir="rtl"] .offcanvas-header {
  text-align: right;
}

[dir="rtl"] .offcanvas-body {
  text-align: right;
}

/* Custom RTL utilities */
.rtl-flip {
  transform: scaleX(-1);
}

.rtl-text-right {
  text-align: right !important;
}

.rtl-text-left {
  text-align: left !important;
}

.rtl-float-right {
  float: right !important;
}

.rtl-float-left {
  float: left !important;
}
