/*
 * RTL (Right-to-Left) CSS overrides for Arabic language support
 * Loaded conditionally when $lang === 'ar'
 */

/* ===== Base Direction ===== */
body {
    direction: rtl;
    text-align: right;
}

/* ===== Bootstrap 4 Utilities - Flip margins and paddings ===== */

/* Margin-left becomes margin-right and vice versa */
.ml-auto, .mx-auto { margin-right: auto !important; }
.mr-auto, .mx-auto { margin-left: auto !important; }

.ml-0 { margin-left: unset !important; margin-right: 0 !important; }
.ml-1 { margin-left: unset !important; margin-right: 0.25rem !important; }
.ml-2 { margin-left: unset !important; margin-right: 0.5rem !important; }
.ml-3 { margin-left: unset !important; margin-right: 1rem !important; }
.ml-4 { margin-left: unset !important; margin-right: 1.5rem !important; }
.ml-5 { margin-left: unset !important; margin-right: 3rem !important; }

.mr-0 { margin-right: unset !important; margin-left: 0 !important; }
.mr-1 { margin-right: unset !important; margin-left: 0.25rem !important; }
.mr-2 { margin-right: unset !important; margin-left: 0.5rem !important; }
.mr-3 { margin-right: unset !important; margin-left: 1rem !important; }
.mr-4 { margin-right: unset !important; margin-left: 1.5rem !important; }
.mr-5 { margin-right: unset !important; margin-left: 3rem !important; }

/* Padding-left becomes padding-right and vice versa */
.pl-0 { padding-left: unset !important; padding-right: 0 !important; }
.pl-1 { padding-left: unset !important; padding-right: 0.25rem !important; }
.pl-2 { padding-left: unset !important; padding-right: 0.5rem !important; }
.pl-3 { padding-left: unset !important; padding-right: 1rem !important; }
.pl-4 { padding-left: unset !important; padding-right: 1.5rem !important; }
.pl-5 { padding-left: unset !important; padding-right: 3rem !important; }

.pr-0 { padding-right: unset !important; padding-left: 0 !important; }
.pr-1 { padding-right: unset !important; padding-left: 0.25rem !important; }
.pr-2 { padding-right: unset !important; padding-left: 0.5rem !important; }
.pr-3 { padding-right: unset !important; padding-left: 1rem !important; }
.pr-4 { padding-right: unset !important; padding-left: 1.5rem !important; }
.pr-5 { padding-right: unset !important; padding-left: 3rem !important; }

/* ===== Bootstrap 4 Text Alignment ===== */
.text-left { text-align: right !important; }
.text-right { text-align: left !important; }

/* ===== Bootstrap 4 Float ===== */
.float-left { float: right !important; }
.float-right { float: left !important; }

/* ===== Bootstrap 4 Responsive margin/padding (md breakpoint) ===== */
@media (min-width: 768px) {
    .ml-md-0 { margin-left: unset !important; margin-right: 0 !important; }
    .ml-md-1 { margin-left: unset !important; margin-right: 0.25rem !important; }
    .ml-md-2 { margin-left: unset !important; margin-right: 0.5rem !important; }
    .ml-md-3 { margin-left: unset !important; margin-right: 1rem !important; }
    .ml-md-4 { margin-left: unset !important; margin-right: 1.5rem !important; }
    .ml-md-5 { margin-left: unset !important; margin-right: 3rem !important; }
    .ml-md-auto { margin-left: unset !important; margin-right: auto !important; }

    .mr-md-0 { margin-right: unset !important; margin-left: 0 !important; }
    .mr-md-1 { margin-right: unset !important; margin-left: 0.25rem !important; }
    .mr-md-2 { margin-right: unset !important; margin-left: 0.5rem !important; }
    .mr-md-3 { margin-right: unset !important; margin-left: 1rem !important; }
    .mr-md-4 { margin-right: unset !important; margin-left: 1.5rem !important; }
    .mr-md-5 { margin-right: unset !important; margin-left: 3rem !important; }
    .mr-md-auto { margin-right: unset !important; margin-left: auto !important; }

    .pl-md-0 { padding-left: unset !important; padding-right: 0 !important; }
    .pl-md-3 { padding-left: unset !important; padding-right: 1rem !important; }
    .pr-md-0 { padding-right: unset !important; padding-left: 0 !important; }
    .pr-md-3 { padding-right: unset !important; padding-left: 1rem !important; }

    .float-md-left { float: right !important; }
    .float-md-right { float: left !important; }

    .text-md-left { text-align: right !important; }
    .text-md-right { text-align: left !important; }
}

@media (min-width: 992px) {
    .ml-lg-0 { margin-left: unset !important; margin-right: 0 !important; }
    .ml-lg-3 { margin-left: unset !important; margin-right: 1rem !important; }
    .ml-lg-auto { margin-left: unset !important; margin-right: auto !important; }

    .mr-lg-0 { margin-right: unset !important; margin-left: 0 !important; }
    .mr-lg-3 { margin-right: unset !important; margin-left: 1rem !important; }
    .mr-lg-auto { margin-right: unset !important; margin-left: auto !important; }

    .float-lg-left { float: right !important; }
    .float-lg-right { float: left !important; }

    .text-lg-left { text-align: right !important; }
    .text-lg-right { text-align: left !important; }
}

/* ===== Dropdown Menus ===== */
.dropdown-menu { text-align: right; }
.dropdown-menu-right { right: auto !important; left: 0 !important; }
.dropdown-menu-left { left: auto !important; right: 0 !important; }

/* ===== Navbar ===== */
.navbar-nav { padding-right: 0; }
.navbar-collapse { text-align: right; }

/* ===== Breadcrumbs ===== */
.breadcrumb-item + .breadcrumb-item::before {
    float: right;
    padding-left: 0.5rem;
    padding-right: 0;
}
.breadcrumb-item + .breadcrumb-item {
    padding-left: 0;
    padding-right: 0.5rem;
}

/* ===== Forms ===== */
.form-check {
    padding-left: 0;
    padding-right: 1.25rem;
}
.form-check-input {
    margin-left: 0;
    margin-right: -1.25rem;
}

.input-group > .input-group-prepend { order: 1; }
.input-group > .form-control,
.input-group > .custom-select { order: 0; }
.input-group > .input-group-append { order: -1; }

.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text {
    border-radius: 0 0.25rem 0.25rem 0;
}
.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text {
    border-radius: 0.25rem 0 0 0.25rem;
}

.custom-control {
    padding-left: 0;
    padding-right: 1.5rem;
}
.custom-control-label::before,
.custom-control-label::after {
    left: auto;
    right: -1.5rem;
}

/* ===== Alerts ===== */
.alert-dismissible { padding-left: 4rem; padding-right: 1.25rem; }
.alert-dismissible .close { left: 0; right: auto; }

/* ===== Close Button ===== */
.close { float: left; }

/* ===== Modal ===== */
.modal-header .close { margin: -1rem auto -1rem -1rem; }

/* ===== Lists ===== */
.list-group { padding-right: 0; }
ul, ol { padding-right: 2rem; padding-left: 0; }

/* ===== Tables ===== */
th, td { text-align: right; }
.table th, .table td { text-align: right; }

/* ===== DataTables RTL ===== */
.dataTables_wrapper .dataTables_filter { float: left; text-align: left; }
.dataTables_wrapper .dataTables_length { float: right; }
.dataTables_wrapper .dataTables_info { float: right; }
.dataTables_wrapper .dataTables_paginate { float: left; }
table.dataTable thead .sorting::after,
table.dataTable thead .sorting_asc::after,
table.dataTable thead .sorting_desc::after {
    left: 8px;
    right: auto;
}

/* ===== Cards ===== */
.card-body { text-align: right; }

/* ===== Badge ===== */
.badge { margin-left: 0; margin-right: 0.25rem; }

/* ===== Pagination ===== */
.page-item:first-child .page-link {
    border-radius: 0 0.25rem 0.25rem 0;
}
.page-item:last-child .page-link {
    border-radius: 0.25rem 0 0 0.25rem;
}

/* ===== Language Bar ===== */
.languagebar .dropdown-menu { text-align: right; }
.languagebar .me-2 { margin-left: 0.5rem !important; margin-right: 0 !important; }

/* ===== Sidebar ===== */
#sidebar-container { float: right; }

/* ===== Media Object ===== */
.media-body { text-align: right; }

/* ===== Custom Archimedes Components ===== */

/* Top navigation */
.list-inline { padding-right: 0; }
.list-inline-item { float: right; }

/* Icons next to text */
[class*="fa-"] { margin-left: 0.25rem; margin-right: 0; }

/* ===== Bootstrap 5 logical properties used in project (me-*, ms-*) ===== */
.me-1 { margin-right: unset !important; margin-left: 0.25rem !important; }
.me-2 { margin-right: unset !important; margin-left: 0.5rem !important; }
.me-3 { margin-right: unset !important; margin-left: 1rem !important; }
.ms-1 { margin-left: unset !important; margin-right: 0.25rem !important; }
.ms-2 { margin-left: unset !important; margin-right: 0.5rem !important; }
.ms-3 { margin-left: unset !important; margin-right: 1rem !important; }
.ms-auto { margin-left: unset !important; margin-right: auto !important; }
.me-auto { margin-right: unset !important; margin-left: auto !important; }

.pe-1 { padding-right: unset !important; padding-left: 0.25rem !important; }
.pe-2 { padding-right: unset !important; padding-left: 0.5rem !important; }
.pe-3 { padding-right: unset !important; padding-left: 1rem !important; }
.ps-1 { padding-left: unset !important; padding-right: 0.25rem !important; }
.ps-2 { padding-left: unset !important; padding-right: 0.5rem !important; }
.ps-3 { padding-left: unset !important; padding-right: 1rem !important; }
