/**
 * Public CSS for Customers Plugin
 */

/* Additional styles beyond what's in the template */
.alert {
    padding: 15px;
    margin-bottom: 20px;
    border: 1px solid transparent;
    border-radius: 4px;
}

.alert-success {
    color: #155724;
    background-color: #d4edda;
    border-color: #c3e6cb;
}

.alert-danger {
    color: #721c24;
    background-color: #f8d7da;
    border-color: #f5c6cb;
}

.alert-warning {
    color: #856404;
    background-color: #fff3cd;
    border-color: #ffeeba;
}

.alert-info {
    color: #0c5460;
    background-color: #d1ecf1;
    border-color: #bee5eb;
}

.customer-meta {
    font-size: 0.9rem;
    color: #6c757d;
}

.customer-actions {
    display: flex;
    flex-direction: column;
}

@media (max-width: 768px) {
    .customer-actions {
        flex-direction: row;
        justify-content: space-between;
        margin-top: 1rem;
    }
    
    .customer-card .row {
        flex-direction: column;
    }
}

/* SweetAlert2 Custom Styles */
.animated-popup {
    border-radius: 15px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15) !important;
    background: linear-gradient(135deg, #ffffff 0%, #f7f9fc 100%) !important;
    border: 3px solid #70DFB9 !important;
    overflow: hidden;
    position: relative;
}

.animated-popup::before {
    content: '';
    position: absolute;
    top: -10px;
    left: -10px;
    right: -10px;
    bottom: -10px;
    background: linear-gradient(135deg, rgba(255,109,109,0.1), rgba(255,209,102,0.1), rgba(6,214,160,0.1));
    border-radius: 20px;
    z-index: -1;
    animation: gradientBg 3s ease infinite;
    background-size: 200% 200%;
}

.swal-title {
    font-size: 1.8rem !important;
    color: #3C4858 !important;
    margin-bottom: 15px !important;
    font-weight: 700 !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.1);
}

.swal-content {
    margin-top: 0.5rem;
}

.celebration-text {
    padding: 10px;
    font-size: 1.1rem;
    color: #4a4a4a;
}

.celebration-icons {
    margin-top: 15px;
    font-size: 1.8rem;
    letter-spacing: 10px;
}

.swal2-success {
    border-color: #70DFB9 !important;
    color: #70DFB9 !important;
}

.swal2-icon.swal2-success [class^=swal2-success-line] {
    background-color: #70DFB9 !important;
}

.swal2-success-ring {
    border: 0.25em solid rgba(112, 223, 185, 0.3) !important;
}

/* Success Icon Animation */
.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip,
.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long {
    animation: successLineAnimation 0.75s;
}
.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right {
    animation: successCircleAnimation 0.75s;
}

/* Animation Keyframes */
@keyframes successLineAnimation {
    0% {
        transform: scale(0.5);
        opacity: 0.25;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

@keyframes successCircleAnimation {
    0% {
        transform: rotateZ(-45deg) scale(0.5);
        opacity: 0.25;
    }
    100% {
        transform: rotateZ(0deg) scale(1);
        opacity: 1;
    }
}

@keyframes sparkle {
    0% { transform: scale(1); opacity: 1; }
    100% { transform: scale(1.5); opacity: 0; }
}

@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.03); }
    100% { transform: scale(1); }
}

@keyframes gradientBg {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.swal2-popup.swal2-show {
    animation: pulse 1s ease-in-out infinite !important;
}

/* SweetAlert Close Button */
.swal2-confirm {
    background-color: #70DFB9 !important;
    color: white !important;
    padding: 10px 24px !important;
    cursor: pointer !important;
}

.swal2-actions {
    z-index: 999 !important;
    pointer-events: auto !important;
}

/* Add RTL support */
.customers-plugin-container.rtl {
    text-align: right;
}

.customers-plugin-container.rtl .form-label {
    text-align: right;
}

.customers-plugin-container.rtl .input-group .input-group-text {
    border-radius: 0.375rem 0 0 0.375rem;
}

.customers-plugin-container.rtl .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
    margin-left: 0;
    margin-right: -1px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-top-left-radius: 0.375rem;
    border-bottom-left-radius: 0.375rem;
}

.customers-plugin-container.rtl .input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-top-right-radius: 0.375rem;
    border-bottom-right-radius: 0.375rem;
}

.customers-plugin-container.rtl .customer-card {
    border-left: none;
    border-right: 4px solid #0d6efd;
}

.customers-plugin-container.rtl .btn-close {
    margin-right: auto;
    margin-left: 0;
}

.customers-plugin-container.rtl .d-flex.justify-content-between {
    flex-direction: row-reverse;
}

.customers-plugin-container.rtl .customer-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.customers-plugin-container.rtl .col-md-2.d-flex.align-items-end {
    align-items: flex-start !important;
}

/* Fix for Bootstrap RTL issues */
[dir="rtl"] .modal-header .btn-close {
    margin: -0.5rem auto -0.5rem -0.5rem;
}

/* Table styles */
.customers-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 2rem;
}

.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.customer-row {
    transition: all 0.2s ease;
}

.customer-row:hover {
    background-color: rgba(13, 110, 253, 0.05) !important;
}

.customer-row td {
    vertical-align: middle;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Sortable column styles */
.customers-table th.sortable {
    cursor: pointer;
    user-select: none;
    position: relative;
    transition: background-color 0.2s ease;
}

.customers-table th.sortable:hover {
    background-color: rgba(13, 110, 253, 0.05);
}

.customers-table th.sortable .sort-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
}

.customers-table th.sortable .sort-icon i {
    font-size: 0.875rem;
    transition: all 0.2s ease-in-out;
}

/* RTL sort icon positioning */
[dir="rtl"] .customers-table th.sortable .me-2 {
    margin-right: 0 !important;
    margin-left: 0.5rem !important;
}

/* For better spacing on smaller screens */
@media (max-width: 768px) {
    .customer-row td {
        padding: 0.75rem;
    }
    
    .customers-table th.sortable {
        white-space: nowrap;
    }
}

/* RTL specific table styles */
.customers-plugin-container.rtl .table {
    text-align: right;
    direction: rtl;
}

.customers-plugin-container.rtl .table th,
.customers-plugin-container.rtl .table td {
    text-align: right;
}

.customers-plugin-container.rtl th:first-child {
    text-align: right;
}

.customers-plugin-container.rtl th:last-child,
.customers-plugin-container.rtl td:last-child {
    text-align: center !important;
}

.customers-plugin-container.rtl .btn-group {
    flex-direction: row-reverse;
}

/* Fix for table column order in RTL mode */
.customers-plugin-container.rtl .table th:first-child,
.customers-plugin-container.rtl .table td:first-child {
    border-left: none;
    border-right: inherit;
}

.customers-plugin-container.rtl .table th:last-child,
.customers-plugin-container.rtl .table td:last-child {
    border-right: none;
    border-left: inherit;
}

/* Modal Animation Styles */
.modal.fade .modal-dialog {
    transition: none;
}

.modal.fade.show .modal-dialog {
    transform: none;
}

.modal-content {
    border: none;
    border-radius: 0.5rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    overflow: hidden;
    transform: none;
    transition: none;
    position: relative;
    z-index: 100000 !important;
}

.modal-header {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    background-color: #f8f9fa;
    position: relative;
    z-index: 100002 !important;
}

.modal-footer {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    background-color: #f8f9fa;
    position: relative;
    z-index: 100002 !important;
}

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

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

[dir="rtl"] .modal-header .modal-title {
    margin-right: 0;
    margin-left: auto;
}

[dir="rtl"] .modal-header .btn-close {
    margin: 0;
    padding: 0.5rem;
}

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

[dir="rtl"] .modal-footer .btn {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

[dir="rtl"] .modal-footer > * {
    margin: 0 0 0 0.5rem;
}

/* Fix for modal buttons in RTL mode */
.modal-dialog.rtl .modal-footer {
    flex-direction: row-reverse;
    justify-content: flex-start;
}

.modal-dialog.rtl .modal-footer .btn-secondary {
    margin-right: auto;
    margin-left: 0;
}

/* Additional RTL specific fixes for modals */
[dir="rtl"] .btn-close {
    float: left;
}

[dir="rtl"] .modal-dialog {
    text-align: right;
}

/* Fix for form alignment in RTL mode */
[dir="rtl"] .form-label {
    text-align: right;
}

/* Add animated background to modal */
.modal-content::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: linear-gradient(to right, #0d6efd, #0dcaf0);
}

[dir="rtl"] .modal-content::before {
    background: linear-gradient(to left, #0d6efd, #0dcaf0);
}

/* Fix for button padding in Arabic */
[dir="rtl"] .btn {
    white-space: nowrap;
    overflow: visible;
}

/* Fix for modal width in RTL mode */
@media (min-width: 576px) {
    [dir="rtl"] .modal-dialog.rtl {
        max-width: 600px;
    }
}

/* Animation for customer add/edit form */
@keyframes highlightField {
    0% { background-color: transparent; }
    50% { background-color: rgba(13, 110, 253, 0.1); }
    100% { background-color: transparent; }
}

.highlight-field {
    animation: highlightField 1s ease-in-out;
}

/* Add Customer Button Animation */
#addCustomerBtn {
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

#addCustomerBtn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

#addCustomerBtn:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

#addCustomerBtn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 5px;
    height: 5px;
    background: rgba(255, 255, 255, 0.5);
    opacity: 0;
    border-radius: 100%;
    transform: scale(1) translate(-50%, -50%);
    transform-origin: 50% 50%;
}

#addCustomerBtn:focus:not(:active)::after {
    animation: ripple 1s ease-out;
}

@keyframes ripple {
    0% {
        transform: scale(0) translate(-50%, -50%);
        opacity: 0.5;
    }
    100% {
        transform: scale(20) translate(-50%, -50%);
        opacity: 0;
    }
}

/* Form validation styles */
.invalid-feedback {
    display: block;
    width: 100%;
    margin-top: 0.25rem;
    font-size: 0.875em;
    color: #dc3545;
}

.form-control.is-invalid {
    border-color: #dc3545;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.form-control.is-invalid:focus {
    border-color: #dc3545;
    box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
}

.modal-body .alert {
    margin-top: 1rem;
    margin-bottom: 0;
}

/* RTL validation styles */
[dir="rtl"] .form-control.is-invalid {
    background-position: left calc(0.375em + 0.1875rem) center;
    padding-right: 0.75rem;
    padding-left: calc(1.5em + 0.75rem);
}

/* Animation for validation error */
@keyframes validationShake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
    20%, 40%, 60%, 80% { transform: translateX(5px); }
}

.form-control.is-invalid {
    animation: validationShake 0.6s ease-in-out;
}

/* Animation for modal content */
.animate__fadeInUp {
    animation-duration: 0;
    animation: none;
}

/* Custom animation for focus on form fields */
.modal .form-control:focus {
    border-color: #80bdff;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

/* Fix modal footer button order in RTL mode */
.modal-dialog.rtl .modal-footer {
    flex-direction: row-reverse;
}

.modal-dialog.rtl .modal-footer .btn-secondary {
    margin-right: auto;
    margin-left: 0;
}

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

/* RTL input field styles */
[dir="rtl"] input,
[dir="rtl"] textarea,
[dir="rtl"] .form-control {
    text-align: right;
}

/* Fix placeholder alignment in RTL */
[dir="rtl"] input::placeholder,
[dir="rtl"] textarea::placeholder {
    text-align: right;
}

/* But ensure LTR placeholders are left-aligned */
body:not([dir="rtl"]) input::placeholder,
body:not([dir="rtl"]) textarea::placeholder,
.customers-plugin-container:not(.rtl) input::placeholder,
.customers-plugin-container:not(.rtl) textarea::placeholder {
    text-align: left;
}

/* Ensure RTL input focus styling is consistent */
[dir="rtl"] .form-control:focus {
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    border-color: #86b7fe;
}

/* Replace existing search input styling with proper RTL/LTR support */
/* Search container additional styling */
.search-container .input-group {
    display: flex;
    width: 100%;
}

.search-container .form-control {
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
}

.search-container .input-group-text {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.search-container .input-group-text:hover {
    background-color: #e9ecef;
}

/* Pagination styles */
.pagination-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #f8f9fa;
    border-radius: 0 0 0.5rem 0.5rem;
    padding: 0.75rem 1rem;
    border-top: 1px solid #dee2e6;
    margin-top: 1rem;
}

.pagination {
    display: inline-flex !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0.25rem;
    overflow: hidden;
}

.pagination .page-item {
    margin: 0 !important;
    padding: 0 !important;
}

.pagination .page-item .page-link {
    position: relative;
    margin: 0 !important;
    border: 1px solid #dee2e6;
    border-radius: 0 !important;
    color: #6c757d;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0.375rem 0.75rem;
    text-align: center;
}

.pagination .page-item:first-child .page-link {
    border-top-left-radius: 0.25rem !important;
    border-bottom-left-radius: 0.25rem !important;
}

.pagination .page-item:last-child .page-link {
    border-top-right-radius: 0.25rem !important;
    border-bottom-right-radius: 0.25rem !important;
}

/* Ensure connected buttons in both languages */
.pagination .page-item + .page-item .page-link {
    margin-left: -1px !important;
}

/* Active, disabled and hover states */
.pagination .page-item.active .page-link {
    background-color: #0d6efd;
    border-color: #0d6efd;
    color: white;
    font-weight: 500;
    z-index: 3;
    position: relative;
}

.pagination .page-item.disabled .page-link {
    color: #ccc;
    pointer-events: none;
}

.pagination .page-item:not(.active):not(.disabled) .page-link:hover {
    background-color: #e9ecef;
    color: #0d6efd;
    z-index: 2;
}

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

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

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

/* Fix border alignment in RTL mode */
[dir="rtl"] .pagination .page-item + .page-item .page-link {
    margin-left: 0 !important;
    margin-right: -1px !important;
}

/* Page size selector */
.page-size-selector {
    margin: 0 1rem;
    height: 36px;
    display: flex;
    align-items: center;
}

.page-size-selector .form-select {
    width: auto;
    display: inline-block;
    padding: 0.25rem 2rem 0.25rem 0.5rem;
    font-size: 0.875rem;
}

/* Page summary */
.page-summary {
    color: #6c757d;
    font-size: 0.875rem;
    white-space: nowrap;
    overflow: visible;
    min-width: 160px;
    padding: 0 8px;
    display: flex;
    align-items: center;
    height: 36px;
}

/* RTL pagination summary */
[dir="rtl"] .page-summary span {
    display: inline-block;
    text-align: right;
    white-space: nowrap;
    font-family: inherit;
    font-size: 0.875rem;
    overflow: visible;
    width: 100%;
}

/* Ensure RTL text is displayed correctly */
[dir="rtl"] .unicode-bidi-isolate {
    unicode-bidi: isolate;
}

/* Updated modal styles for better theme compatibility */
.customers-plugin-container {
    position: relative;
    z-index: 1;
}

/* Ensure modals are on top of everything */
.modal {
    z-index: 99999 !important;
    position: fixed;
}

.modal-backdrop {
    z-index: 99998 !important;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
}

/* Ensure all elements inside the modal are accessible */
.modal-content input,
.modal-content textarea,
.modal-content select,
.modal-content button {
    position: relative;
    z-index: 100001 !important;
    pointer-events: auto !important;
}

/* Ensure buttons are clickable */
#addCustomerBtn, 
#translateBtn,
.btn,
button {
    position: relative;
    z-index: 100 !important;
}

/* Additional isolation for buttons in modals */
.modal-footer .btn,
.modal-header .btn-close {
    position: relative;
    z-index: 100003 !important;
    pointer-events: auto !important;
}

/* Fix for Bootstrap modal backdrop issue */
body.modal-open {
    overflow: hidden;
    padding-right: 0 !important;
}

/* Create an isolated stacking context for the plugin */
.customers-plugin-container {
    isolation: isolate;
}

/* Make sure the search interface is clickable */
.search-container {
    position: relative;
    z-index: 10;
    pointer-events: auto !important;
}

.search-container .input-group,
.search-container .input-group-text,
.search-container .form-control {
    position: relative;
    z-index: 10;
    pointer-events: auto !important;
}

/* Fix for Add Customer button */
#addCustomerBtn {
    position: relative;
    z-index: 15;
    pointer-events: auto !important;
}

/* Fix for translation toggle */
#translateBtn {
    position: relative;
    z-index: 15;
    pointer-events: auto !important;
}

/* Fix for RTL input styling */
.modal {
    background-color: rgba(0, 0, 0, 0.5);
    pointer-events: auto !important;
}

.modal-dialog {
    z-index: 9999;
    pointer-events: auto !important;
    position: relative;
}

.modal-content {
    position: relative;
    z-index: 10000;
    pointer-events: auto !important;
}

.modal-body input,
.modal-body textarea,
.modal-body select,
.modal-body button,
.modal-footer button {
    position: relative;
    z-index: 10001;
    pointer-events: auto !important;
}

/* Hide any backdrop that might get added by Bootstrap */
.modal-backdrop {
    display: none !important;
}

/* Header RTL/LTR support */
.customers-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    width: 100%;
}

/* Default LTR layout */
.customers-header .customers-title {
    order: 1;
    margin-bottom: 0;
    text-align: left;
}

.customers-header .customers-buttons {
    order: 2;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* RTL layout - switch title to right, buttons to left */
.customers-plugin-container.rtl .customers-header .customers-title {
    order: 2;
    text-align: right;
}

.customers-plugin-container.rtl .customers-header .customers-buttons {
    order: 1;
    justify-content: flex-start;
}

/* Button spacing fixes */
.customers-plugin-container.rtl .customers-buttons .me-2 {
    margin-right: 0 !important;
    margin-left: 0.5rem !important;
}

.customers-title {
    margin-bottom: 0;
}

.customers-plugin-container.rtl .customers-title {
    text-align: right;
}

/* Search container additional styling */
.search-container .input-group {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
}

.search-container .form-control {
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
}

.search-container .input-group-text {
    display: flex;
    align-items: center;
    text-align: center;
    white-space: nowrap;
}

/* Search icon styling */
.search-container .search-icon {
    cursor: pointer;
}

.search-container .search-icon:hover {
    background-color: #e9ecef;
}

/* LTR Search Styling - English (icon on RIGHT) */
.customers-plugin-container:not(.rtl) .search-container .input-group,
body:not([dir="rtl"]) .search-container .input-group {
    flex-direction: row;
}

.customers-plugin-container:not(.rtl) .search-container .form-control,
body:not([dir="rtl"]) .search-container .form-control {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border-top-left-radius: 0.375rem !important;
    border-bottom-left-radius: 0.375rem !important;
    border-right: 0 !important;
}

.customers-plugin-container:not(.rtl) .search-container .input-group-text,
body:not([dir="rtl"]) .search-container .input-group-text {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-top-right-radius: 0.375rem !important;
    border-bottom-right-radius: 0.375rem !important;
    border-left: 0 !important;
}

/* RTL Search Styling - Arabic (icon on LEFT) */
.customers-plugin-container.rtl .search-container .input-group,
body[dir="rtl"] .search-container .input-group {
    flex-direction: row-reverse !important;
}

.customers-plugin-container.rtl .search-container .form-control,
body[dir="rtl"] .search-container .form-control {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-top-right-radius: 0.375rem !important;
    border-bottom-right-radius: 0.375rem !important;
    border-left: 0 !important;
}

.customers-plugin-container.rtl .search-container .input-group-text,
body[dir="rtl"] .search-container .input-group-text {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border-top-left-radius: 0.375rem !important;
    border-bottom-left-radius: 0.375rem !important;
    border-right: 0 !important;
}

/* Special search input styling - Arabic/English compatible */
/* Clear existing search styles */
.search-container .search-group {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
}

/* Default English (LTR) styling - icon on RIGHT, input on LEFT */
.search-container .search-button {
    order: 2;
    border-radius: 0 4px 4px 0 !important;
    border-left: 0 !important;
    background-color: #f8f9fa;
}

.search-container .search-input {
    order: 1;
    border-radius: 4px 0 0 4px !important;
    border-right: 0 !important;
}

/* Arabic (RTL) styling - icon on LEFT, input on RIGHT */
.customers-plugin-container.rtl .search-container .search-button,
body[dir="rtl"] .search-container .search-button {
    order: 1;
    border-radius: 4px 0 0 4px !important;
    border-right: 0 !important;
    border-left: 1px solid #dee2e6 !important;
}

.customers-plugin-container.rtl .search-container .search-input,
body[dir="rtl"] .search-container .search-input {
    order: 2;
    border-radius: 0 4px 4px 0 !important;
    border-left: 0 !important;
    border-right: 1px solid #dee2e6 !important;
}

/* Search button styling */
.search-container .search-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    cursor: pointer;
}

.search-container .search-button:hover {
    background-color: #e9ecef;
}

/* Remove any remnants of default Bootstrap RTL input group styling */
.customers-plugin-container.rtl .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback),
body[dir="rtl"] .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
    margin-right: 0;
    margin-left: 0;
    border-radius: inherit;
}

/* FINAL OVERRIDE - Search input styling for LTR/RTL */
/* LTR (English) - Search icon RIGHT */
.customers-plugin-container:not(.rtl) .search-container .input-group,
body:not([dir="rtl"]) .search-container .input-group {
    flex-direction: row !important;
}

/* RTL (Arabic) - Search icon LEFT */
.customers-plugin-container.rtl .search-container .input-group,
body[dir="rtl"] .search-container .input-group {
    flex-direction: row-reverse !important;
}

/* Search input placeholder text alignment */
.search-container .search-input::placeholder {
    text-align: left !important;
}

/* RTL Search input placeholder alignment */
.customers-plugin-container.rtl .search-container .search-input::placeholder,
body[dir="rtl"] .search-container .search-input::placeholder {
    text-align: right !important;
}

/* Position action buttons correctly in LTR/RTL modes */
/* In LTR mode (English) - Edit left, Delete right */
.customers-plugin-container:not(.rtl) .action-buttons .edit-btn,
body:not([dir="rtl"]) .action-buttons .edit-btn {
    margin-right: 5px;
}

/* In RTL mode (Arabic) - Delete left, Edit right */
.customers-plugin-container.rtl .action-buttons,
body[dir="rtl"] .action-buttons {
    display: flex;
    flex-direction: row-reverse;
}

.customers-plugin-container.rtl .action-buttons .edit-btn,
body[dir="rtl"] .action-buttons .edit-btn {
    margin-left: 5px;
    margin-right: 0;
}

/* Action buttons styling for customer list */
.action-buttons {
    display: flex;
    justify-content: center;
    gap: 5px;
}

/* In LTR mode (English) - Edit left, Delete right */
.customers-plugin-container:not(.rtl) .action-buttons,
body:not([dir="rtl"]) .action-buttons {
    flex-direction: row;
}

/* In RTL mode (Arabic) - Delete left, Edit right */
.customers-plugin-container.rtl .action-buttons,
body[dir="rtl"] .action-buttons {
    flex-direction: row-reverse;
}

/* Ensure buttons don't overflow in mobile view */
@media (max-width: 768px) {
    .action-buttons {
        display: flex;
        flex-wrap: nowrap;
    }
    
    .action-buttons button {
        flex: 0 0 auto;
        padding: 0.25rem 0.5rem;
    }
}

/* Pagination container layout styles */
.pagination-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #f8f9fa;
    border-radius: 0 0 0.5rem 0.5rem;
    padding: 0.75rem 1rem;
    border-top: 1px solid #dee2e6;
    margin-top: 1rem;
}

/* LTR pagination layout */
body:not([dir="rtl"]) .pagination-container,
.customers-plugin-container:not(.rtl) .pagination-container {
    flex-direction: row;
}

body:not([dir="rtl"]) .pagination-container .pagination-controls,
.customers-plugin-container:not(.rtl) .pagination-container .pagination-controls {
    margin-right: auto;  /* Push to the left */
    order: 1;
}

body:not([dir="rtl"]) .pagination-container .page-size-selector,
.customers-plugin-container:not(.rtl) .pagination-container .page-size-selector {
    order: 2;
}

body:not([dir="rtl"]) .pagination-container .page-summary,
.customers-plugin-container:not(.rtl) .pagination-container .page-summary {
    margin-left: auto;  /* Push to the right */
    order: 3;
    text-align: right;
}

/* RTL pagination layout */
body[dir="rtl"] .pagination-container,
.customers-plugin-container.rtl .pagination-container {
    flex-direction: row;
}

body[dir="rtl"] .pagination-container .pagination-controls,
.customers-plugin-container.rtl .pagination-container .pagination-controls {
    margin-left: auto;  /* Push to the right */
    order: 3;
}

body[dir="rtl"] .pagination-container .page-size-selector,
.customers-plugin-container.rtl .pagination-container .page-size-selector {
    order: 2;
}

body[dir="rtl"] .pagination-container .page-summary,
.customers-plugin-container.rtl .pagination-container .page-summary {
    margin-right: auto;  /* Push to the left */
    order: 1;
    text-align: left;
}

/* Pagination active state fix for RTL mode */
body[dir="rtl"] .pagination .page-item.active .page-link,
.customers-plugin-container.rtl .pagination .page-item.active .page-link {
    background-color: #0d6efd !important;
    border-color: #0d6efd !important;
    color: white !important;
    font-weight: 500 !important;
    z-index: 3 !important;
    position: relative !important;
}

/* Ensure proper RTL pagination container layout - fix hover and focus states */
body[dir="rtl"] .pagination .page-item .page-link:hover,
.customers-plugin-container.rtl .pagination .page-item .page-link:hover,
body[dir="rtl"] .pagination .page-item .page-link:focus,
.customers-plugin-container.rtl .pagination .page-item .page-link:focus {
    z-index: 2 !important;
    background-color: #e9ecef !important;
    border-color: #dee2e6 !important;
    color: #0d6efd !important;
}

/* Fix overlap issues in pagination items */
.pagination .page-item .page-link {
    position: relative;
    z-index: 1;
}

.pagination .page-item.active .page-link {
    z-index: 3;
}

/* Ensure consistent styling across LTR and RTL */
.pagination .page-link:focus {
    z-index: 2;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    outline: 0;
}

/* Make page size selector fully clickable */
.page-size-selector .form-select {
    z-index: 10;
    position: relative;
    pointer-events: auto !important;
    cursor: pointer;
}

/* Ensure dropdown is fully visible and clickable */
.page-size-selector {
    position: relative;
    z-index: 20;
}

/* Fix for English mode page size selector */
body:not([dir="rtl"]) .page-size-selector .form-select,
.customers-plugin-container:not(.rtl) .page-size-selector .form-select {
    position: relative;
    z-index: 10;
    pointer-events: auto !important;
}

/* Fix pagination spacing in both language modes */
.pagination {
    display: inline-flex !important;
    border-radius: 0.25rem;
    overflow: hidden;
}

/* Ensure connected pagination buttons with no gaps */
.pagination .page-item + .page-item .page-link {
    margin-left: -1px !important;
}

[dir="rtl"] .pagination .page-item + .page-item .page-link {
    margin-left: 0 !important;
    margin-right: -1px !important;
}

/* Fix pagination arrow display */
.pagination .page-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Ensure icons are properly centered */
.pagination .page-link i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
}

/* Remove extra display rules that might be interfering with direction */
.pagination {
    display: inline-flex !important;
}

/* Fix English pagination arrows specifically */
html:not([dir="rtl"]) .pagination,
body:not([dir="rtl"]) .pagination,
.customers-plugin-container:not(.rtl) .pagination {
    flex-direction: row !important;
    display: inline-flex !important;
}

html:not([dir="rtl"]) .pagination .page-item,
body:not([dir="rtl"]) .pagination .page-item,
.customers-plugin-container:not(.rtl) .pagination .page-item {
    display: inline-flex !important;
}

/* Fix the ordering of arrow icons in LTR mode */
html:not([dir="rtl"]) .pagination .page-item:first-child .page-link,
body:not([dir="rtl"]) .pagination .page-item:first-child .page-link {
    order: 1 !important;
}

html:not([dir="rtl"]) .pagination .page-item:last-child .page-link,
body:not([dir="rtl"]) .pagination .page-item:last-child .page-link {
    order: 7 !important;
}

/* Fix form text alignment in English mode */
body:not([dir="rtl"]) .modal-title,
.customers-plugin-container:not(.rtl) .modal-title {
    text-align: left !important;
}

body:not([dir="rtl"]) #customerForm label,
.customers-plugin-container:not(.rtl) #customerForm label {
    text-align: left !important;
    display: block;
    width: 100%;
}

body:not([dir="rtl"]) #customerForm input,
body:not([dir="rtl"]) #customerForm textarea,
.customers-plugin-container:not(.rtl) #customerForm input,
.customers-plugin-container:not(.rtl) #customerForm textarea {
    text-align: left !important;
}

/* Fix form modal positioning in English mode */
body:not([dir="rtl"]) .modal-header,
.customers-plugin-container:not(.rtl) .modal-header {
    flex-direction: row !important;
}

body:not([dir="rtl"]) .modal-body,
.customers-plugin-container:not(.rtl) .modal-body {
    text-align: left !important;
}

/* Use !important to override any inline styles */
body:not([dir="rtl"]) .modal-content,
.customers-plugin-container:not(.rtl) .modal-content {
    text-align: left !important;
}

/* Direct fix for customer form field alignment in English mode */
#customerForm[dir="ltr"] label {
    text-align: left !important;
}

#customerForm[dir="ltr"] input,
#customerForm[dir="ltr"] textarea {
    text-align: left !important;
}

.modal-title[dir="ltr"] {
    text-align: left !important;
}

/* Force modal title to be left-aligned in English mode */
.modal-header:not([dir="rtl"]) .modal-title,
.modal-header:not([dir="rtl"]) #formTitle,
body:not([dir="rtl"]) .modal-header .modal-title,
body:not([dir="rtl"]) .modal-header #formTitle {
    text-align: left !important;
    margin-right: auto !important;
    margin-left: 0 !important;
    justify-self: flex-start !important;
    align-self: flex-start !important;
    position: static !important;
}

/* Fix modal header flex direction in English */
body:not([dir="rtl"]) .modal-header,
.modal-header:not([dir="rtl"]) {
    flex-direction: row !important;
    justify-content: flex-start !important;
}

/* Fix for input text alignment in Arabic modals */
[dir="rtl"] .modal-body input,
[dir="rtl"] .modal-body textarea,
[dir="rtl"] .modal-body .form-control,
[dir="rtl"] .modal-body .form-select,
.customers-plugin-container.rtl .modal-body input,
.customers-plugin-container.rtl .modal-body textarea,
.customers-plugin-container.rtl .modal-body .form-control,
.customers-plugin-container.rtl .modal-body .form-select {
    text-align: right !important;
    direction: rtl !important;
}

/* RTL Form Fields must use right alignment */
#customerForm[dir="rtl"] input,
#customerForm[dir="rtl"] textarea,
#customerForm[dir="rtl"] select,
#customerForm[dir="rtl"] .form-control {
    text-align: right !important;
    direction: rtl !important;
}

/* Fix Arabic error message alignment */
[dir="rtl"] .alert,
.rtl .alert,
body[dir="rtl"] .alert,
.customers-plugin-container.rtl .alert {
    text-align: right !important;
    direction: rtl !important;
}

/* Ensure error messages in modals are properly aligned */
[dir="rtl"] .alert.alert-danger,
.rtl .alert.alert-danger,
body[dir="rtl"] .alert.alert-danger,
.customers-plugin-container.rtl .alert.alert-danger {
    text-align: right !important;
    padding-right: 3rem !important;
    padding-left: 1.25rem !important;
}

/* Fix alert alignment for both languages */
/* Arabic (RTL) alert alignment */
[dir="rtl"] .alert,
body[dir="rtl"] .alert,
.customers-plugin-container.rtl .alert {
    text-align: right !important;
    direction: rtl !important;
}

/* English (LTR) alert alignment */
body:not([dir="rtl"]) .alert,
html:not([dir="rtl"]) .alert,
.customers-plugin-container:not(.rtl) .alert {
    text-align: left !important;
    direction: ltr !important;
}

/* Ensure close button positioning is correct in both languages */
body:not([dir="rtl"]) .alert .btn-close {
    right: 0 !important;
    left: auto !important;
}

[dir="rtl"] .alert .btn-close {
    left: 0 !important;
    right: auto !important;
}

/* Email already exists error styling for both languages */
.modal-body .alert-danger {
    position: relative;
    padding: 0.75rem 1rem 0.75rem 3rem; /* Default padding for LTR */
}

/* LTR (English) error alert */
html:not([dir="rtl"]) .modal-body .alert-danger,
body:not([dir="rtl"]) .modal-body .alert-danger,
.modal-body .alert-danger[dir="ltr"] {
    text-align: left !important;
    padding-right: 3rem !important;
    padding-left: 1.25rem !important;
    direction: ltr !important;
    float: none !important;
    border-radius: 0.25rem !important;
}

/* RTL (Arabic) error alert */  
html[dir="rtl"] .modal-body .alert-danger,
body[dir="rtl"] .modal-body .alert-danger,
.modal-body .alert-danger[dir="rtl"] {
    text-align: right !important;
    padding-left: 3rem !important;
    padding-right: 1.25rem !important;
    direction: rtl !important;
    float: none !important;
    border-radius: 0.25rem !important;
}

/* Ensure close button positioning */
.modal-body .alert-danger .btn-close {
    position: absolute;
    padding: 0.25rem;
    top: 50%;
    transform: translateY(-50%);
}

/* Close button positioning for LTR and RTL */
html:not([dir="rtl"]) .modal-body .alert-danger .btn-close,
body:not([dir="rtl"]) .modal-body .alert-danger .btn-close,
.modal-body .alert-danger[dir="ltr"] .btn-close {
    right: 0.75rem !important;
    left: auto !important;
}

html[dir="rtl"] .modal-body .alert-danger .btn-close,
body[dir="rtl"] .modal-body .alert-danger .btn-close,
.modal-body .alert-danger[dir="rtl"] .btn-close {
    left: 0.75rem !important;
    right: auto !important;
}

/* Performance optimization indicators */
.search-spinner {
    position: absolute;
    right: 40px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    z-index: 10;
}

/* RTL search spinner positioning */
[dir="rtl"] .search-spinner {
    left: 40px;
    right: auto;
}

/* Pulse animation for clicked pagination items */
.pulse-animation {
    animation: pulse-blue 0.5s ease-in-out;
}

@keyframes pulse-blue {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); background-color: rgba(13, 110, 253, 0.2); }
    100% { transform: scale(1); }
}

/* Page loading indicator */
.loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

/* Performance optimized hover effects */
.page-link:hover {
    transition: background-color 0.15s ease-in-out;
}

.pagination .page-item .page-link {
    will-change: transform;
} 