/* ==========================================================================
   RTL (Right-to-Left) Language Support
   Arabic, Hebrew, and other RTL languages support
   ========================================================================== */

/* Base RTL Styles */
[dir="rtl"] {
    text-align: right;
}

[dir="rtl"] body {
    font-family: var(--font-family-arabic);
    line-height: 1.6;
    /* Arabic text needs more line height for readability */
}

/* Layout Adjustments for RTL */
[dir="rtl"] .container,
[dir="rtl"] .container-fluid {
    direction: rtl;
}

[dir="rtl"] .row {
    direction: rtl;
}

/* Navigation RTL Support */
[dir="rtl"] .navbar-nav {
    flex-direction: var(--flex-row-reverse);
}

[dir="rtl"] .nav-link {
    text-align: right;
}

/* Sidebar RTL Positioning */
[dir="rtl"] .sidebar {
    right: var(--position-right);
    left: auto;
    border-left: var(--border-thin) solid var(--color-border);
    border-right: none;
}

/* Sidebar width fix for RTL */
[dir="rtl"] .sidebar {
    width: var(--rtl-margin-right-lg) !important;
    /* Slightly wider to accommodate Arabic text */
}

[dir="rtl"] .sidebar .nav-link {
    padding-right: var(--padding-md);
    padding-left: var(--padding-xl);
    text-align: right;
    display: var(--display-flex);
    align-items: var(--align-center);
}

/* Direct navigation items (not in groups) */
[dir="rtl"] .nav-item:not(.nav-group) .nav-link .nav-icon {
    order: 1;
    margin-left: var(--margin-none);
    margin-right: calc(var(--margin-sm) + var(--margin-xs));
}

[dir="rtl"] .nav-item:not(.nav-group) .nav-link .nav-text {
    order: 2;
    flex: var(--flex-grow-1);
    text-align: right;
}

/* Generic fallback for sidebar nav icons and text */
[dir="rtl"] .sidebar .nav-icon {
    margin-left: calc(var(--margin-sm) + var(--margin-xs));
    margin-right: var(--margin-none);
}

[dir="rtl"] .sidebar .nav-text {
    text-align: right;
}

/* Navigation expand icons RTL */
[dir="rtl"] .nav-expand-icon {
    margin-left: var(--margin-auto);
    margin-right: var(--margin-none);
    order: 0;
}

/* Navigation children RTL */
[dir="rtl"] .nav-children {
    text-align: right;
}

[dir="rtl"] .nav-child .nav-link {
    padding-right: var(--padding-xl);
    padding-left: calc(var(--padding-xl) + var(--padding-md));
}

[dir="rtl"] .nav-child .nav-icon {
    margin-left: var(--margin-sm);
    margin-right: var(--margin-none);
}

/* Main Content Area RTL */
[dir="rtl"] main {
    margin-right: calc(3 * var(--size-xxxl) + var(--size-xxs));
    margin-left: var(--margin-none);
}

[dir="rtl"] .sidebar.collapsed+main {
    margin-right: var(--rtl-margin-right-xs);
    margin-left: var(--margin-none);
}

/* Top row navigation RTL */
[dir="rtl"] .top-row {
    direction: rtl;
}

[dir="rtl"] .top-row .navbar-brand {
    margin-right: var(--margin-none);
    margin-left: var(--margin-auto);
}

[dir="rtl"] .logo {
    margin-left: var(--margin-sm);
    margin-right: var(--margin-none);
}

/* Form Elements RTL */
[dir="rtl"] .form-label {
    text-align: right;
}

[dir="rtl"] .form-control,
[dir="rtl"] .form-select {
    text-align: right;
}

[dir="rtl"] .input-group .form-control {
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

[dir="rtl"] .input-group-text {
    border-radius: var(--radius-md) 0 0 var(--radius-md);
}

[dir="rtl"] .integral-input-wrapper {
    flex-direction: var(--flex-row-reverse);
}

[dir="rtl"] .integral-input-icon {
    right: auto;
    left: calc(var(--padding-sm) + var(--padding-xs));
}

[dir="rtl"] .integral-input {
    padding-right: calc(var(--padding-sm) + var(--padding-xs));
    padding-left: var(--size-lg);
    text-align: right;
}

/* Button Groups RTL */
[dir="rtl"] .btn-group {
    flex-direction: var(--flex-row-reverse);
}

[dir="rtl"] .btn-group .btn:first-child {
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

[dir="rtl"] .btn-group .btn:last-child {
    border-radius: var(--radius-md) 0 0 var(--radius-md);
}

/* Cards RTL */
[dir="rtl"] .card-header .card-title {
    text-align: right;
}

[dir="rtl"] .card-body {
    text-align: right;
}

/* Tables RTL */
[dir="rtl"] .table th,
[dir="rtl"] .table td {
    text-align: right;
}

[dir="rtl"] .table th:first-child,
[dir="rtl"] .table td:first-child {
    border-right: none;
}

[dir="rtl"] .table th:last-child,
[dir="rtl"] .table td:last-child {
    border-left: none;
}

/* Dropdown RTL */
[dir="rtl"] .dropdown-menu {
    right: var(--position-right) !important;
    left: auto !important;
    text-align: right;
}

[dir="rtl"] .dropdown-item {
    text-align: right;
}

/* Modal RTL */
[dir="rtl"] .modal-header {
    flex-direction: var(--flex-row-reverse);
}

[dir="rtl"] .modal-header .btn-close {
    margin-left: var(--margin-none);
    margin-right: var(--margin-auto);
}

[dir="rtl"] .modal-title {
    text-align: right;
}

[dir="rtl"] .modal-body {
    text-align: right;
}

[dir="rtl"] .modal-footer {
    flex-direction: var(--flex-row-reverse);
}

/* Alert RTL */
[dir="rtl"] .alert {
    text-align: right;
}

[dir="rtl"] .alert .alert-heading {
    text-align: right;
}

/* Badge RTL */
[dir="rtl"] .badge {
    direction: rtl;
}

/* Breadcrumb RTL */
[dir="rtl"] .breadcrumb {
    flex-direction: row-reverse;
}

[dir="rtl"] .breadcrumb-item+.breadcrumb-item::before {
    content: "‹";
    float: right;
    padding-right: var(--padding-none);
    padding-left: var(--padding-sm);
}

/* Pagination RTL */
[dir="rtl"] .pagination {
    flex-direction: row-reverse;
}

[dir="rtl"] .page-link {
    text-align: center;
}

/* List Group RTL */
[dir="rtl"] .list-group-item {
    text-align: right;
}

/* Progress RTL */
[dir="rtl"] .progress {
    flex-direction: row-reverse;
}

/* Toast RTL */
[dir="rtl"] .toast {
    text-align: right;
}

[dir="rtl"] .toast-header {
    flex-direction: row-reverse;
}

/* Offcanvas RTL */
[dir="rtl"] .offcanvas-start {
    right: var(--position-right);
    left: auto;
    transform: translateX(var(--size-full));
}

[dir="rtl"] .offcanvas-end {
    right: auto;
    left: var(--position-left);
    transform: translateX(calc(-1 * var(--size-full)));
}

/* Spacing Utilities RTL Override */
[dir="rtl"] .me-1 {
    margin-left: var(--margin-xs) !important;
    margin-right: var(--margin-none) !important;
}

[dir="rtl"] .me-2 {
    margin-left: var(--margin-sm) !important;
    margin-right: var(--margin-none) !important;
}

[dir="rtl"] .me-3 {
    margin-left: var(--margin-md) !important;
    margin-right: var(--margin-none) !important;
}

[dir="rtl"] .me-4 {
    margin-left: var(--margin-lg) !important;
    margin-right: var(--margin-none) !important;
}

[dir="rtl"] .me-5 {
    margin-left: calc(var(--margin-xl) + var(--margin-md)) !important;
    margin-right: var(--margin-none) !important;
}

[dir="rtl"] .ms-1 {
    margin-right: var(--margin-xs) !important;
    margin-left: var(--margin-none) !important;
}

[dir="rtl"] .ms-2 {
    margin-right: var(--margin-sm) !important;
    margin-left: var(--margin-none) !important;
}

[dir="rtl"] .ms-3 {
    margin-right: var(--margin-md) !important;
    margin-left: var(--margin-none) !important;
}

[dir="rtl"] .ms-4 {
    margin-right: var(--margin-lg) !important;
    margin-left: var(--margin-none) !important;
}

[dir="rtl"] .ms-5 {
    margin-right: calc(var(--margin-xl) + var(--margin-md)) !important;
    margin-left: var(--margin-none) !important;
}

[dir="rtl"] .pe-1 {
    padding-left: var(--padding-xs) !important;
    padding-right: var(--padding-none) !important;
}

[dir="rtl"] .pe-2 {
    padding-left: var(--padding-sm) !important;
    padding-right: var(--padding-none) !important;
}

[dir="rtl"] .pe-3 {
    padding-left: var(--padding-md) !important;
    padding-right: var(--padding-none) !important;
}

[dir="rtl"] .pe-4 {
    padding-left: var(--padding-lg) !important;
    padding-right: var(--padding-none) !important;
}

[dir="rtl"] .pe-5 {
    padding-left: calc(var(--padding-xl) + var(--padding-md)) !important;
    padding-right: var(--padding-none) !important;
}

[dir="rtl"] .ps-1 {
    padding-right: var(--padding-xs) !important;
    padding-left: var(--padding-none) !important;
}

[dir="rtl"] .ps-2 {
    padding-right: var(--padding-sm) !important;
    padding-left: var(--padding-none) !important;
}

[dir="rtl"] .ps-3 {
    padding-right: var(--padding-md) !important;
    padding-left: var(--padding-none) !important;
}

[dir="rtl"] .ps-4 {
    padding-right: var(--padding-lg) !important;
    padding-left: var(--padding-none) !important;
}

[dir="rtl"] .ps-5 {
    padding-right: calc(var(--padding-xl) + var(--padding-md)) !important;
    padding-left: var(--padding-none) !important;
}

/* Float Utilities RTL Override */
[dir="rtl"] .float-start {
    float: right !important;
}

[dir="rtl"] .float-end {
    float: left !important;
}

/* Text Alignment RTL Override */
[dir="rtl"] .text-start {
    text-align: right !important;
}

[dir="rtl"] .text-end {
    text-align: left !important;
}

/* Flex Utilities RTL Override */
[dir="rtl"] .justify-content-start {
    justify-content: var(--justify-end) !important;
}

[dir="rtl"] .justify-content-end {
    justify-content: var(--justify-start) !important;
}

/* Border Utilities RTL Override */
[dir="rtl"] .border-start {
    border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
    border-left: 0 !important;
}

[dir="rtl"] .border-end {
    border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
    border-right: 0 !important;
}

/* Rounded Utilities RTL Override */
[dir="rtl"] .rounded-start {
    border-top-right-radius: var(--bs-border-radius) !important;
    border-bottom-right-radius: var(--bs-border-radius) !important;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

[dir="rtl"] .rounded-end {
    border-top-left-radius: var(--bs-border-radius) !important;
    border-bottom-left-radius: var(--bs-border-radius) !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

/* Custom Components RTL */
[dir="rtl"] .integral-login-card {
    text-align: right;
}

[dir="rtl"] .integral-title {
    text-align: right;
}

/* Navigation specific RTL fixes */
[dir="rtl"] .nav-icon+.nav-text,
[dir="rtl"] .nav-icon+span {
    margin-right: calc(var(--margin-sm) + var(--margin-xs));
    margin-left: var(--margin-none);
}

/* Fix for navbar brand and elements in RTL */
[dir="rtl"] .navbar-brand {
    margin-left: var(--margin-auto);
    margin-right: var(--margin-none);
}

[dir="rtl"] .navbar-brand .logo {
    margin-left: var(--margin-sm);
    margin-right: var(--margin-none);
}

/* Navigation groups and children alignment */
[dir="rtl"] .nav-group {
    direction: rtl;
}

[dir="rtl"] .nav-parent {
    display: var(--display-flex);
    align-items: var(--align-center);
}

[dir="rtl"] .nav-parent .nav-icon {
    order: 1;
    margin-left: var(--margin-none);
    margin-right: calc(var(--margin-sm) + var(--margin-xs));
}

[dir="rtl"] .nav-parent .nav-text {
    order: 2;
    flex: var(--flex-grow-1);
    text-align: right;
}

[dir="rtl"] .nav-parent .nav-expand-icon {
    order: 3;
    margin-left: calc(var(--margin-sm) + var(--margin-xs));
    margin-right: var(--margin-none);
}

/* Child navigation items */
[dir="rtl"] .nav-child {
    display: var(--display-flex);
    align-items: var(--align-center);
}

[dir="rtl"] .nav-child .nav-icon {
    order: 1;
    margin-left: var(--margin-none);
    margin-right: var(--margin-sm);
}

[dir="rtl"] .nav-child .nav-text {
    order: 2;
    flex: var(--flex-grow-1);
    text-align: right;
}

/* Language switcher RTL */
[dir="rtl"] .ms-auto {
    margin-left: var(--margin-none) !important;
    margin-right: var(--margin-auto) !important;
}

/* Desktop RTL Layout */
@media (min-width: 768px) {
    [dir="rtl"] .sidebar {
        right: var(--position-right);
        left: auto;
        width: var(--rtl-margin-right-lg);
        /* Wider sidebar for Arabic text */
    }

    [dir="rtl"] main {
        margin-right: var(--rtl-margin-right-lg);
        /* Match wider sidebar */
        margin-left: var(--margin-none);
    }

    [dir="rtl"] .sidebar.collapsed+main {
        margin-right: var(--rtl-margin-right-xs);
        margin-left: var(--margin-none);
    }
}

/* Mobile RTL Adjustments */
@media (max-width: 768px) {
    [dir="rtl"] main {
        margin-right: var(--margin-none);
        margin-left: var(--margin-none);
    }

    [dir="rtl"] .sidebar {
        right: var(--rtl-right-negative);
        left: auto;
    }

    [dir="rtl"] .sidebar.show {
        right: var(--position-right);
        left: auto;
    }

    /* Mobile hamburger button RTL positioning - move to left side */
    [dir="rtl"] .navbar-toggler {
        right: auto !important;
        left: var(--spacing-md) !important;
    }

    /* Mobile nav scrollable RTL */
    [dir="rtl"] .nav-scrollable {
        right: var(--position-right);
        left: auto;
        text-align: right;
    }
}

/* ==========================================================================
   Scroll Button RTL Support
   The MudScrollToTopButton and MudScrollToBottomButton components
   automatically handle RTL positioning via IIntegralLocalizer.IsRightToLeft
   ========================================================================== */

/* Note: Scroll buttons (MudScrollToTopButton, MudScrollToBottomButton) automatically
   position themselves correctly for RTL layouts through C# code that checks 
   IIntegralLocalizer.IsRightToLeft and applies either 'left' or 'right' CSS property.
   No additional CSS rules are needed as the positioning is handled dynamically. */