/* Bootstrap RTL Overrides - Comprehensive RTL Support */

/* Base RTL Direction */
html[dir="rtl"],
html[dir="rtl"] body {
    direction: rtl;
}

html[dir="rtl"] .container,
html[dir="rtl"] .container-fluid {
    direction: rtl;
}

/* Grid System RTL */
html[dir="rtl"] .row {
    direction: rtl;
}

html[dir="rtl"] [class*="col-"] {
    direction: rtl;
}

/* Flexbox RTL */
html[dir="rtl"] .d-flex {
    direction: rtl;
}

html[dir="rtl"] .flex-row {
    flex-direction: row-reverse;
}

html[dir="rtl"] .flex-row-reverse {
    flex-direction: row;
}

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

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

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

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

/* Comprehensive Margin RTL - Swapping left/right */
html[dir="rtl"] .ml-0 { margin-left: 0 !important; margin-right: 0 !important; }
html[dir="rtl"] .ml-1 { margin-left: 0 !important; margin-right: 0.25rem !important; }
html[dir="rtl"] .ml-2 { margin-left: 0 !important; margin-right: 0.5rem !important; }
html[dir="rtl"] .ml-3 { margin-left: 0 !important; margin-right: 1rem !important; }
html[dir="rtl"] .ml-4 { margin-left: 0 !important; margin-right: 1.5rem !important; }
html[dir="rtl"] .ml-5 { margin-left: 0 !important; margin-right: 3rem !important; }

html[dir="rtl"] .mr-0 { margin-right: 0 !important; margin-left: 0 !important; }
html[dir="rtl"] .mr-1 { margin-right: 0 !important; margin-left: 0.25rem !important; }
html[dir="rtl"] .mr-2 { margin-right: 0 !important; margin-left: 0.5rem !important; }
html[dir="rtl"] .mr-3 { margin-right: 0 !important; margin-left: 1rem !important; }
html[dir="rtl"] .mr-4 { margin-right: 0 !important; margin-left: 1.5rem !important; }
html[dir="rtl"] .mr-5 { margin-right: 0 !important; margin-left: 3rem !important; }

html[dir="rtl"] .ml-auto { margin-left: 0 !important; margin-right: auto !important; }
html[dir="rtl"] .mr-auto { margin-right: 0 !important; margin-left: auto !important; }

/* Comprehensive Padding RTL - Swapping left/right */
html[dir="rtl"] .pl-0 { padding-left: 0 !important; padding-right: 0 !important; }
html[dir="rtl"] .pl-1 { padding-left: 0 !important; padding-right: 0.25rem !important; }
html[dir="rtl"] .pl-2 { padding-left: 0 !important; padding-right: 0.5rem !important; }
html[dir="rtl"] .pl-3 { padding-left: 0 !important; padding-right: 1rem !important; }
html[dir="rtl"] .pl-4 { padding-left: 0 !important; padding-right: 1.5rem !important; }
html[dir="rtl"] .pl-5 { padding-left: 0 !important; padding-right: 3rem !important; }

html[dir="rtl"] .pr-0 { padding-right: 0 !important; padding-left: 0 !important; }
html[dir="rtl"] .pr-1 { padding-right: 0 !important; padding-left: 0.25rem !important; }
html[dir="rtl"] .pr-2 { padding-right: 0 !important; padding-left: 0.5rem !important; }
html[dir="rtl"] .pr-3 { padding-right: 0 !important; padding-left: 1rem !important; }
html[dir="rtl"] .pr-4 { padding-right: 0 !important; padding-left: 1.5rem !important; }
html[dir="rtl"] .pr-5 { padding-right: 0 !important; padding-left: 3rem !important; }

/* Responsive Margin RTL */
@media (min-width: 576px) {
    html[dir="rtl"] .ml-sm-0 { margin-left: 0 !important; margin-right: 0 !important; }
    html[dir="rtl"] .ml-sm-1 { margin-left: 0 !important; margin-right: 0.25rem !important; }
    html[dir="rtl"] .ml-sm-2 { margin-left: 0 !important; margin-right: 0.5rem !important; }
    html[dir="rtl"] .ml-sm-3 { margin-left: 0 !important; margin-right: 1rem !important; }
    html[dir="rtl"] .ml-sm-4 { margin-left: 0 !important; margin-right: 1.5rem !important; }
    html[dir="rtl"] .ml-sm-5 { margin-left: 0 !important; margin-right: 3rem !important; }
    html[dir="rtl"] .ml-sm-auto { margin-left: 0 !important; margin-right: auto !important; }
    
    html[dir="rtl"] .mr-sm-0 { margin-right: 0 !important; margin-left: 0 !important; }
    html[dir="rtl"] .mr-sm-1 { margin-right: 0 !important; margin-left: 0.25rem !important; }
    html[dir="rtl"] .mr-sm-2 { margin-right: 0 !important; margin-left: 0.5rem !important; }
    html[dir="rtl"] .mr-sm-3 { margin-right: 0 !important; margin-left: 1rem !important; }
    html[dir="rtl"] .mr-sm-4 { margin-right: 0 !important; margin-left: 1.5rem !important; }
    html[dir="rtl"] .mr-sm-5 { margin-right: 0 !important; margin-left: 3rem !important; }
    html[dir="rtl"] .mr-sm-auto { margin-right: 0 !important; margin-left: auto !important; }
    
    html[dir="rtl"] .pl-sm-0 { padding-left: 0 !important; padding-right: 0 !important; }
    html[dir="rtl"] .pl-sm-1 { padding-left: 0 !important; padding-right: 0.25rem !important; }
    html[dir="rtl"] .pl-sm-2 { padding-left: 0 !important; padding-right: 0.5rem !important; }
    html[dir="rtl"] .pl-sm-3 { padding-left: 0 !important; padding-right: 1rem !important; }
    html[dir="rtl"] .pl-sm-4 { padding-left: 0 !important; padding-right: 1.5rem !important; }
    html[dir="rtl"] .pl-sm-5 { padding-left: 0 !important; padding-right: 3rem !important; }
    
    html[dir="rtl"] .pr-sm-0 { padding-right: 0 !important; padding-left: 0 !important; }
    html[dir="rtl"] .pr-sm-1 { padding-right: 0 !important; padding-left: 0.25rem !important; }
    html[dir="rtl"] .pr-sm-2 { padding-right: 0 !important; padding-left: 0.5rem !important; }
    html[dir="rtl"] .pr-sm-3 { padding-right: 0 !important; padding-left: 1rem !important; }
    html[dir="rtl"] .pr-sm-4 { padding-right: 0 !important; padding-left: 1.5rem !important; }
    html[dir="rtl"] .pr-sm-5 { padding-right: 0 !important; padding-left: 3rem !important; }
}

@media (min-width: 768px) {
    html[dir="rtl"] .ml-md-0 { margin-left: 0 !important; margin-right: 0 !important; }
    html[dir="rtl"] .ml-md-1 { margin-left: 0 !important; margin-right: 0.25rem !important; }
    html[dir="rtl"] .ml-md-2 { margin-left: 0 !important; margin-right: 0.5rem !important; }
    html[dir="rtl"] .ml-md-3 { margin-left: 0 !important; margin-right: 1rem !important; }
    html[dir="rtl"] .ml-md-4 { margin-left: 0 !important; margin-right: 1.5rem !important; }
    html[dir="rtl"] .ml-md-5 { margin-left: 0 !important; margin-right: 3rem !important; }
    html[dir="rtl"] .ml-md-auto { margin-left: 0 !important; margin-right: auto !important; }
    
    html[dir="rtl"] .mr-md-0 { margin-right: 0 !important; margin-left: 0 !important; }
    html[dir="rtl"] .mr-md-1 { margin-right: 0 !important; margin-left: 0.25rem !important; }
    html[dir="rtl"] .mr-md-2 { margin-right: 0 !important; margin-left: 0.5rem !important; }
    html[dir="rtl"] .mr-md-3 { margin-right: 0 !important; margin-left: 1rem !important; }
    html[dir="rtl"] .mr-md-4 { margin-right: 0 !important; margin-left: 1.5rem !important; }
    html[dir="rtl"] .mr-md-5 { margin-right: 0 !important; margin-left: 3rem !important; }
    html[dir="rtl"] .mr-md-auto { margin-right: 0 !important; margin-left: auto !important; }
    
    html[dir="rtl"] .pl-md-0 { padding-left: 0 !important; padding-right: 0 !important; }
    html[dir="rtl"] .pl-md-1 { padding-left: 0 !important; padding-right: 0.25rem !important; }
    html[dir="rtl"] .pl-md-2 { padding-left: 0 !important; padding-right: 0.5rem !important; }
    html[dir="rtl"] .pl-md-3 { padding-left: 0 !important; padding-right: 1rem !important; }
    html[dir="rtl"] .pl-md-4 { padding-left: 0 !important; padding-right: 1.5rem !important; }
    html[dir="rtl"] .pl-md-5 { padding-left: 0 !important; padding-right: 3rem !important; }
    
    html[dir="rtl"] .pr-md-0 { padding-right: 0 !important; padding-left: 0 !important; }
    html[dir="rtl"] .pr-md-1 { padding-right: 0 !important; padding-left: 0.25rem !important; }
    html[dir="rtl"] .pr-md-2 { padding-right: 0 !important; padding-left: 0.5rem !important; }
    html[dir="rtl"] .pr-md-3 { padding-right: 0 !important; padding-left: 1rem !important; }
    html[dir="rtl"] .pr-md-4 { padding-right: 0 !important; padding-left: 1.5rem !important; }
    html[dir="rtl"] .pr-md-5 { padding-right: 0 !important; padding-left: 3rem !important; }
}

@media (min-width: 992px) {
    html[dir="rtl"] .ml-lg-0 { margin-left: 0 !important; margin-right: 0 !important; }
    html[dir="rtl"] .ml-lg-1 { margin-left: 0 !important; margin-right: 0.25rem !important; }
    html[dir="rtl"] .ml-lg-2 { margin-left: 0 !important; margin-right: 0.5rem !important; }
    html[dir="rtl"] .ml-lg-3 { margin-left: 0 !important; margin-right: 1rem !important; }
    html[dir="rtl"] .ml-lg-4 { margin-left: 0 !important; margin-right: 1.5rem !important; }
    html[dir="rtl"] .ml-lg-5 { margin-left: 0 !important; margin-right: 3rem !important; }
    html[dir="rtl"] .ml-lg-auto { margin-left: 0 !important; margin-right: auto !important; }
    
    html[dir="rtl"] .mr-lg-0 { margin-right: 0 !important; margin-left: 0 !important; }
    html[dir="rtl"] .mr-lg-1 { margin-right: 0 !important; margin-left: 0.25rem !important; }
    html[dir="rtl"] .mr-lg-2 { margin-right: 0 !important; margin-left: 0.5rem !important; }
    html[dir="rtl"] .mr-lg-3 { margin-right: 0 !important; margin-left: 1rem !important; }
    html[dir="rtl"] .mr-lg-4 { margin-right: 0 !important; margin-left: 1.5rem !important; }
    html[dir="rtl"] .mr-lg-5 { margin-right: 0 !important; margin-left: 3rem !important; }
    html[dir="rtl"] .mr-lg-auto { margin-right: 0 !important; margin-left: auto !important; }
    
    html[dir="rtl"] .pl-lg-0 { padding-left: 0 !important; padding-right: 0 !important; }
    html[dir="rtl"] .pl-lg-1 { padding-left: 0 !important; padding-right: 0.25rem !important; }
    html[dir="rtl"] .pl-lg-2 { padding-left: 0 !important; padding-right: 0.5rem !important; }
    html[dir="rtl"] .pl-lg-3 { padding-left: 0 !important; padding-right: 1rem !important; }
    html[dir="rtl"] .pl-lg-4 { padding-left: 0 !important; padding-right: 1.5rem !important; }
    html[dir="rtl"] .pl-lg-5 { padding-left: 0 !important; padding-right: 3rem !important; }
    
    html[dir="rtl"] .pr-lg-0 { padding-right: 0 !important; padding-left: 0 !important; }
    html[dir="rtl"] .pr-lg-1 { padding-right: 0 !important; padding-left: 0.25rem !important; }
    html[dir="rtl"] .pr-lg-2 { padding-right: 0 !important; padding-left: 0.5rem !important; }
    html[dir="rtl"] .pr-lg-3 { padding-right: 0 !important; padding-left: 1rem !important; }
    html[dir="rtl"] .pr-lg-4 { padding-right: 0 !important; padding-left: 1.5rem !important; }
    html[dir="rtl"] .pr-lg-5 { padding-right: 0 !important; padding-left: 3rem !important; }
}

@media (min-width: 1200px) {
    html[dir="rtl"] .ml-xl-0 { margin-left: 0 !important; margin-right: 0 !important; }
    html[dir="rtl"] .ml-xl-1 { margin-left: 0 !important; margin-right: 0.25rem !important; }
    html[dir="rtl"] .ml-xl-2 { margin-left: 0 !important; margin-right: 0.5rem !important; }
    html[dir="rtl"] .ml-xl-3 { margin-left: 0 !important; margin-right: 1rem !important; }
    html[dir="rtl"] .ml-xl-4 { margin-left: 0 !important; margin-right: 1.5rem !important; }
    html[dir="rtl"] .ml-xl-5 { margin-left: 0 !important; margin-right: 3rem !important; }
    html[dir="rtl"] .ml-xl-auto { margin-left: 0 !important; margin-right: auto !important; }
    
    html[dir="rtl"] .mr-xl-0 { margin-right: 0 !important; margin-left: 0 !important; }
    html[dir="rtl"] .mr-xl-1 { margin-right: 0 !important; margin-left: 0.25rem !important; }
    html[dir="rtl"] .mr-xl-2 { margin-right: 0 !important; margin-left: 0.5rem !important; }
    html[dir="rtl"] .mr-xl-3 { margin-right: 0 !important; margin-left: 1rem !important; }
    html[dir="rtl"] .mr-xl-4 { margin-right: 0 !important; margin-left: 1.5rem !important; }
    html[dir="rtl"] .mr-xl-5 { margin-right: 0 !important; margin-left: 3rem !important; }
    html[dir="rtl"] .mr-xl-auto { margin-right: 0 !important; margin-left: auto !important; }
    
    html[dir="rtl"] .pl-xl-0 { padding-left: 0 !important; padding-right: 0 !important; }
    html[dir="rtl"] .pl-xl-1 { padding-left: 0 !important; padding-right: 0.25rem !important; }
    html[dir="rtl"] .pl-xl-2 { padding-left: 0 !important; padding-right: 0.5rem !important; }
    html[dir="rtl"] .pl-xl-3 { padding-left: 0 !important; padding-right: 1rem !important; }
    html[dir="rtl"] .pl-xl-4 { padding-left: 0 !important; padding-right: 1.5rem !important; }
    html[dir="rtl"] .pl-xl-5 { padding-left: 0 !important; padding-right: 3rem !important; }
    
    html[dir="rtl"] .pr-xl-0 { padding-right: 0 !important; padding-left: 0 !important; }
    html[dir="rtl"] .pr-xl-1 { padding-right: 0 !important; padding-left: 0.25rem !important; }
    html[dir="rtl"] .pr-xl-2 { padding-right: 0 !important; padding-left: 0.5rem !important; }
    html[dir="rtl"] .pr-xl-3 { padding-right: 0 !important; padding-left: 1rem !important; }
    html[dir="rtl"] .pr-xl-4 { padding-right: 0 !important; padding-left: 1.5rem !important; }
    html[dir="rtl"] .pr-xl-5 { padding-right: 0 !important; padding-left: 3rem !important; }
}

/* Text Alignment RTL */
html[dir="rtl"] .text-left {
    text-align: right !important;
}

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

/* Navigation RTL */
html[dir="rtl"] .navbar-nav {
    flex-direction: row-reverse;
}

html[dir="rtl"] .navbar-toggler {
    margin-left: 0;
    margin-right: auto;
}

/* Forms RTL */
html[dir="rtl"] .form-control {
    text-align: right;
    direction: rtl;
}

html[dir="rtl"] .input-group {
    flex-direction: row-reverse;
}

html[dir="rtl"] .input-group-prepend {
    order: 2;
}

html[dir="rtl"] .input-group-append {
    order: 1;
}

html[dir="rtl"] .input-group > .form-control:not(:last-child),
html[dir="rtl"] .input-group > .custom-select:not(:last-child) {
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

html[dir="rtl"] .input-group > .form-control:not(:first-child),
html[dir="rtl"] .input-group > .custom-select:not(:first-child) {
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

/* Buttons RTL */
html[dir="rtl"] .btn-group {
    flex-direction: row-reverse;
}

html[dir="rtl"] .btn-group > .btn:first-child {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
}

html[dir="rtl"] .btn-group > .btn:last-child {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
}

/* Cards RTL */
html[dir="rtl"] .card {
    direction: rtl;
    text-align: right;
}

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

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

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

/* List Group RTL */
html[dir="rtl"] .list-group {
    padding-right: 0;
    padding-left: 0;
}

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

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

html[dir="rtl"] .dropdown-menu-right {
    left: 0;
    right: auto;
}

html[dir="rtl"] .dropdown-menu-left {
    right: 0;
    left: auto;
}

/* Modal RTL */
html[dir="rtl"] .modal-header {
    flex-direction: row-reverse;
}

html[dir="rtl"] .modal-header .close {
    margin: -1rem auto -1rem -1rem;
}

html[dir="rtl"] .modal-footer {
    flex-direction: row-reverse;
}

/* Nav Tabs RTL */
html[dir="rtl"] .nav-tabs {
    flex-direction: row-reverse;
}

html[dir="rtl"] .nav-tabs .nav-item {
    margin-right: 0;
    margin-left: 0.2rem;
}

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

/* Breadcrumb RTL */
html[dir="rtl"] .breadcrumb {
    flex-direction: row-reverse;
}

html[dir="rtl"] .breadcrumb-item + .breadcrumb-item::before {
    content: "\2039";
    padding-right: 0;
    padding-left: 0.5rem;
}

/* Pagination RTL */
html[dir="rtl"] .pagination {
    flex-direction: row-reverse;
}

html[dir="rtl"] .page-item:first-child .page-link {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
}

html[dir="rtl"] .page-item:last-child .page-link {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
}

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

html[dir="rtl"] .alert-dismissible {
    padding-right: 1rem;
    padding-left: 4rem;
}

html[dir="rtl"] .alert-dismissible .close {
    right: auto;
    left: 0;
}

/* Badge RTL */
html[dir="rtl"] .badge {
    direction: ltr;
    display: inline-block;
}

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

/* Carousel RTL */
html[dir="rtl"] .carousel-control-prev {
    right: 0;
    left: auto;
}

html[dir="rtl"] .carousel-control-next {
    left: 0;
    right: auto;
}

html[dir="rtl"] .carousel-control-prev-icon {
    transform: scaleX(-1);
}

html[dir="rtl"] .carousel-control-next-icon {
    transform: scaleX(-1);
}

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

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

/* Popover RTL */
html[dir="rtl"] .popover {
    direction: rtl;
    text-align: right;
}

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

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

/* Media Object RTL */
html[dir="rtl"] .media {
    flex-direction: row-reverse;
}

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

/* Utilities RTL */
html[dir="rtl"] .float-left {
    float: right !important;
}

html[dir="rtl"] .float-right {
    float: left !important;
}

html[dir="rtl"] .border-left {
    border-left: none !important;
    border-right: 1px solid #dee2e6 !important;
}

html[dir="rtl"] .border-right {
    border-right: none !important;
    border-left: 1px solid #dee2e6 !important;
}

html[dir="rtl"] .rounded-left {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-top-right-radius: 0.25rem !important;
    border-bottom-right-radius: 0.25rem !important;
}

html[dir="rtl"] .rounded-right {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border-top-left-radius: 0.25rem !important;
    border-bottom-left-radius: 0.25rem !important;
}
