/* â•â•â•â•â•â• Task 53.1: Accessibility Features â•â•â•â•â•â• */
/* Font Size Control */
html {
    font-size: 1rem; /* Base font size */
}

/* Screen reader only class - Task 53.4 */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

.sr-only-focusable:focus {
    position: static;
    width: auto;
    height: auto;
    padding: inherit;
    margin: inherit;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

/* Profiles & Favorites: shared search bar (same design) */
.profiles-controls-card {
    padding: 1.25rem 1.5rem;
    background: var(--theme-bg-secondary, #f8f9fa);
    border-radius: 12px;
    border: 1px solid var(--theme-border, #e9ecef);
}
.profiles-controls-card .profiles-search-form .profiles-search-input-group { max-width: 320px; border-radius: 50px; overflow: hidden; }
.profiles-controls-card .profiles-search-form .input-group-text { border-radius: 50px 0 0 50px; border-color: var(--theme-border, #dee2e6); }
.profiles-controls-card .profiles-search-form .form-control { border-radius: 0 50px 50px 0; border-color: var(--theme-border, #dee2e6); }
.profiles-controls-card .profiles-search-form .search-input-with-clear .form-control { border-radius: 0; }
.profiles-controls-card .profiles-search-form .search-input-with-clear .search-clear-btn { border-radius: 0 50px 50px 0; border-color: var(--theme-border, #dee2e6); cursor: pointer; }
.profiles-controls-card .profiles-search-form .form-control:focus { box-shadow: none; border-color: var(--bs-primary); }
.profiles-controls-card .btn-outline-primary.rounded-pill { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.profiles-controls-card .btn-outline-primary.rounded-pill:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.12); }
[data-theme="dark"] .profiles-controls-card { background: var(--theme-bg-secondary, #212529); border-color: var(--theme-border-dark, #495057); }

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Safety modals (Block/Report) - modern UI
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.safety-modal {
    /* Per-modal palette (defaults can be overridden per id) */
    --safety-accent-rgb: var(--bs-primary-rgb, 13,110,253);
    --safety-accent-text: #0b5ed7;
}

#blockUserModal.safety-modal {
    --safety-accent-rgb: var(--bs-danger-rgb, 220,53,69);
    --safety-accent-text: #b91c1c;
}

#reportUserModal.safety-modal {
    --safety-accent-rgb: var(--bs-warning-rgb, 255,193,7);
    /* Warning needs readable â€œinkâ€ on light backgrounds */
    --safety-accent-text: #92400e;
}

.safety-modal .modal-content {
    border: 0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 18px 55px rgba(0, 0, 0, 0.25);
}

.safety-modal .modal-header {
    border: 0;
    background: linear-gradient(
        135deg,
        rgba(var(--safety-accent-rgb), 0.18),
        rgba(var(--safety-accent-rgb), 0.06)
    );
    position: relative;
}

/* Safety modals: use same close button style as big wizards (contactRequestModal, profileQuickModal) */
.safety-modal .modal-header {
    padding: 1rem 3rem !important;
}
.safety-modal .modal-header .btn-close {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    font-size: 1rem !important;
    padding: 0.5rem !important;
    opacity: 0.7 !important;
    margin: 0 !important;
    z-index: 5 !important;
}
.safety-modal .modal-header .btn-close:hover {
    opacity: 1 !important;
}
/* Safety modals: close X â€” left when Arabic (RTL), right when English (LTR); same as contact request wizard */
.safety-modal .modal-header .btn-close.safety-modal-close,
#blockUserModal .modal-header .btn-close.safety-modal-close,
#reportUserModal .modal-header .btn-close.safety-modal-close {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
}
html[dir="rtl"] .safety-modal .modal-header .btn-close.safety-modal-close,
html[dir="rtl"] #blockUserModal .modal-header .btn-close.safety-modal-close,
html[dir="rtl"] #reportUserModal .modal-header .btn-close.safety-modal-close {
    left: 1rem !important;
    right: auto !important;
}
html[dir="ltr"] .safety-modal .modal-header .btn-close.safety-modal-close,
html[dir="ltr"] #blockUserModal .modal-header .btn-close.safety-modal-close,
html[dir="ltr"] #reportUserModal .modal-header .btn-close.safety-modal-close {
    right: 1rem !important;
    left: auto !important;
}

.safety-modal .modal-header::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(
        90deg,
        rgba(var(--safety-accent-rgb), 0.10),
        rgba(var(--safety-accent-rgb), 0.75),
        rgba(var(--safety-accent-rgb), 0.10)
    );
    pointer-events: none;
}

.safety-modal .modal-title {
    font-weight: 800;
}

.safety-modal .modal-body {
    padding: 1.25rem 1.25rem 0.75rem 1.25rem;
}

.safety-modal .modal-footer {
    border: 0;
    padding: 0.75rem 1.25rem 1.25rem 1.25rem;
    gap: 0.5rem;
}

.safety-modal textarea.form-control,
.safety-modal select.form-select {
    border-radius: 12px;
}

/* Both wizards: textarea â€” text/placeholder start from the left */
.safety-modal textarea.form-control {
    direction: ltr;
    text-align: left;
}
/* Select: in Arabic put dropdown chevron on the right; in English keep default (right) */
.safety-modal select.form-select {
    direction: ltr;
    text-align: left;
}
html[dir="rtl"] .safety-modal select.form-select {
    direction: rtl;
    text-align: right;
}

/* Keep placeholder visible when empty; hide on focus so it doesn't "move" with floating label */
.safety-modal textarea.form-control:focus::placeholder {
    opacity: 0;
    transition: opacity 0.15s ease;
}
.safety-modal textarea.form-control::placeholder {
    transition: opacity 0.15s ease;
}

[data-theme="dark"] .safety-modal textarea.form-control,
[data-theme="dark"] .safety-modal select.form-select {
    background-color: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.12);
    color: #e5e7eb;
}

[data-theme="dark"] .safety-modal textarea.form-control::placeholder {
    color: rgba(229, 231, 235, 0.55);
}

.safety-modal .safety-modal-hero .modal-title {
    font-weight: 900;
    letter-spacing: 0.2px;
}

.safety-modal .safety-modal-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.12);
}

.safety-modal .safety-modal-icon i {
    font-size: 1.15rem;
}

.safety-modal .safety-modal-icon--warning {
    background: linear-gradient(
        135deg,
        rgba(var(--safety-accent-rgb), 0.26),
        rgba(var(--safety-accent-rgb), 0.14)
    );
    color: var(--safety-accent-text);
}

[data-theme="dark"] .safety-modal .safety-modal-icon--warning {
    color: #fbbf24;
}

.safety-modal .safety-modal-icon--danger {
    background: linear-gradient(
        135deg,
        rgba(var(--safety-accent-rgb), 0.22),
        rgba(var(--safety-accent-rgb), 0.12)
    );
    color: var(--safety-accent-text);
}

[data-theme="dark"] .safety-modal .safety-modal-icon--danger {
    color: #fca5a5;
}

.safety-modal .safety-modal-card {
    background: rgba(0, 0, 0, 0.02);
    border: 1px solid rgba(0, 0, 0, 0.06);
}

[data-theme="dark"] .safety-modal .safety-modal-card {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.10);
}

.safety-modal .safety-modal-primary {
    border-radius: 12px;
    font-weight: 800;
    padding: 0.65rem 1.1rem;
    box-shadow: 0 12px 28px rgba(var(--safety-accent-rgb), 0.22);
}

.safety-modal .safety-modal-primary:disabled {
    opacity: 0.65;
    box-shadow: none;
}

.safety-modal .btn-safety-danger {
    border: 0;
    color: #fff;
    background: linear-gradient(135deg, #ef4444, #b91c1c);
}

.safety-modal .btn-safety-danger:hover,
.safety-modal .btn-safety-danger:focus {
    background: linear-gradient(135deg, #dc2626, #991b1b);
}

.safety-modal .btn-safety-warning {
    border: 0;
    color: #111827;
    background: linear-gradient(135deg, #f59e0b, #fbbf24);
}

.safety-modal .btn-safety-warning:hover,
.safety-modal .btn-safety-warning:focus {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
}

.safety-modal .btn-safety-danger:focus,
.safety-modal .btn-safety-warning:focus {
    box-shadow: 0 0 0 .2rem rgba(var(--safety-accent-rgb), .22);
}

[data-theme="dark"] .safety-modal .modal-content {
    background: #1f2937;
    color: #e5e7eb;
}

[data-theme="dark"] .safety-modal .modal-header {
    background: linear-gradient(
        135deg,
        rgba(var(--safety-accent-rgb), 0.22),
        rgba(var(--safety-accent-rgb), 0.08)
    );
}

/* High Contrast Mode */
[data-high-contrast="true"] {
    --primary: #000000;
    --secondary: #333333;
    --text: #000000;
    --bg: #ffffff;
    --border: #000000;
    --shadow: rgba(0, 0, 0, 0.5);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Infinite Scroll Skeleton Cards (Home)
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.infinite-skeleton-col .profile-card,
.infinite-skeleton-col .profile-card * {
    pointer-events: none !important;
}

.infinite-skeleton-card {
    border-radius: 16px;
    border: 1px solid rgba(0,0,0,0.08);
    background: var(--bs-body-bg, #fff);
    padding: 16px;
    height: 220px;
    position: relative;
    overflow: hidden;
}

.infinite-skeleton-card::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(
        90deg,
        rgba(255,255,255,0) 0%,
        rgba(200,200,200,0.25) 50%,
        rgba(255,255,255,0) 100%
    );
    animation: infiniteSkeletonShimmer 1.1s ease-in-out infinite;
}

@keyframes infiniteSkeletonShimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

.infinite-skeleton-line {
    height: 12px;
    border-radius: 8px;
    background: rgba(0,0,0,0.07);
    margin-bottom: 10px;
}

.infinite-skeleton-line.w-60 { width: 60%; }
.infinite-skeleton-line.w-80 { width: 80%; }
.infinite-skeleton-line.w-40 { width: 40%; }

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Infinite Scroll: subtle progress bar (Home)
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.infinite-scroll-progressbar-wrap,
#infiniteScrollProgress {
    /* Deprecated UI: hide even if old markup exists in cached pages */
    display: none !important;
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Cookie Consent Banner - Enhanced UI/UX
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cookie-consent-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1100;
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border-top: 2px solid #e9ecef;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.12), 0 -2px 8px rgba(0, 0, 0, 0.08);
    padding: 0;
    animation: slideUpBanner 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

@keyframes slideUpBanner {
    from {
        transform: translateY(100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.cookie-consent-banner.d-none {
    animation: slideDownBanner 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes slideDownBanner {
    from {
        transform: translateY(0);
        opacity: 1;
    }
    to {
        transform: translateY(100%);
        opacity: 0;
    }
}

.cookie-consent-inner {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    max-width: 1400px;
    margin: 0 auto;
    flex-wrap: wrap;
}

@media (max-width: 768px) {
    .cookie-consent-inner {
        padding: 16px 20px;
        gap: 16px;
    }
}

.cookie-consent-content {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    flex: 1;
    min-width: 0;
}

.cookie-consent-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 10px;
    color: white;
    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
}

@media (max-width: 576px) {
    .cookie-consent-icon {
        width: 36px;
        height: 36px;
    }
}

.cookie-consent-text {
    flex: 1;
    min-width: 0;
}

.cookie-consent-title {
    font-weight: 600;
    font-size: 1.1rem;
    margin-bottom: 6px;
    color: #212529;
    line-height: 1.3;
}

.cookie-consent-message {
    font-size: 0.95rem;
    color: #495057;
    line-height: 1.5;
    margin: 0;
}

.cookie-consent-link {
    margin-inline-start: 6px;
    color: #667eea;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.2s ease;
    border-bottom: 1px solid transparent;
}

.cookie-consent-link:hover {
    color: #764ba2;
    border-bottom-color: #764ba2;
}

.cookie-consent-link:focus {
    outline: 2px solid #667eea;
    outline-offset: 2px;
    border-radius: 2px;
}

.cookie-consent-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-shrink: 0;
}

@media (max-width: 576px) {
    .cookie-consent-actions {
        width: 100%;
        flex-direction: column-reverse;
    }
    
    .cookie-consent-actions .cookie-consent-btn {
        width: 100%;
    }
}

.cookie-consent-btn {
    padding: 10px 24px;
    border-radius: 8px;
    font-weight: 500;
    font-size: 0.95rem;
    border: none;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    min-width: 100px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.cookie-consent-btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    transform: translate(-50%, -50%);
    transition: width 0.4s ease, height 0.4s ease;
}

.cookie-consent-btn:hover::before {
    width: 300px;
    height: 300px;
}

.cookie-consent-btn:active {
    transform: scale(0.98);
}

.cookie-consent-btn:focus {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.cookie-consent-btn-decline {
    background: #ffffff;
    color: #495057;
    border: 2px solid #dee2e6;
}

.cookie-consent-btn-decline:hover {
    background: #f8f9fa;
    border-color: #adb5bd;
    color: #212529;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.cookie-consent-btn-accept {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
}

.cookie-consent-btn-accept:hover {
    background: linear-gradient(135deg, #764ba2 0%, #667eea 100%);
    box-shadow: 0 6px 16px rgba(102, 126, 234, 0.5);
    transform: translateY(-1px);
}

.cookie-consent-btn-accept:active {
    transform: translateY(0) scale(0.98);
}

/* Dark mode support for cookie consent banner */
[data-bs-theme="dark"] .cookie-consent-banner {
    background: linear-gradient(135deg, #1a1d29 0%, #252936 100%);
    border-top-color: #3a3f4f;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4), 0 -2px 8px rgba(0, 0, 0, 0.3);
}

[data-bs-theme="dark"] .cookie-consent-title {
    color: #e9ecef;
}

[data-bs-theme="dark"] .cookie-consent-message {
    color: #adb5bd;
}

[data-bs-theme="dark"] .cookie-consent-link {
    color: #8b9dff;
}

[data-bs-theme="dark"] .cookie-consent-link:hover {
    color: #a8b5ff;
    border-bottom-color: #a8b5ff;
}

[data-bs-theme="dark"] .cookie-consent-link:focus {
    outline-color: #8b9dff;
}

[data-bs-theme="dark"] .cookie-consent-btn-decline {
    background: #2d3142;
    color: #e9ecef;
    border-color: #3a3f4f;
}

[data-bs-theme="dark"] .cookie-consent-btn-decline:hover {
    background: #3a3f4f;
    border-color: #4a5064;
    color: #ffffff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

[data-bs-theme="dark"] .cookie-consent-btn::before {
    background: rgba(255, 255, 255, 0.1);
}

.infinite-scroll-progressbar-wrap {
    width: min(520px, 100%);
}

.infinite-scroll-progressbar {
    width: 100%;
    height: 4px;
    border-radius: 999px;
    background: rgba(0,0,0,0.08);
    overflow: hidden;
}

.infinite-scroll-progressbar-inner {
    height: 100%;
    width: 0%;
    border-radius: 999px;
    background: var(--primary, #0d6efd);
    transition: width 160ms ease;
    opacity: 0.35;
}

[data-bs-theme="dark"] .infinite-scroll-progressbar {
    background: rgba(255,255,255,0.12);
}

[data-bs-theme="dark"] .infinite-scroll-progressbar-inner {
    opacity: 0.45;
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Image skeleton placeholder until image loads
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.img-skeleton-loading {
    background: rgba(0,0,0,0.06);
    position: relative;
    display: inline-block;
}

.img-blur-up {
    filter: blur(12px);
    transform: scale(1.03);
    transition: filter 220ms ease, transform 220ms ease;
    will-change: filter, transform;
}

@media (prefers-reduced-motion: reduce) {
    .img-blur-up {
        transition: none;
        transform: none;
    }
}

.img-skeleton-loading::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(
        90deg,
        rgba(255,255,255,0) 0%,
        rgba(200,200,200,0.22) 50%,
        rgba(255,255,255,0) 100%
    );
    animation: infiniteSkeletonShimmer 1.1s ease-in-out infinite;
    pointer-events: none;
}

[data-bs-theme="dark"] .img-skeleton-loading {
    background: rgba(255,255,255,0.08);
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Infinite Scroll: Scroll-to-top button (Home)
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
#scrollToTopBtn {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 1040;
    box-shadow: 0 6px 18px rgba(0,0,0,0.15);
    border-radius: 999px;
    padding: 10px 14px;
}

[data-high-contrast="true"] .btn-primary {
    background-color: #000000;
    border-color: #000000;
    color: #ffffff;
}

[data-high-contrast="true"] .btn-secondary {
    background-color: #333333;
    border-color: #333333;
    color: #ffffff;
}

[data-high-contrast="true"] .card {
    border: 2px solid #000000;
}

[data-high-contrast="true"] .navbar {
    border: 2px solid #000000;
}

/* Reduced Motion */
[data-reduced-motion="true"] *,
[data-reduced-motion="true"] *::before,
[data-reduced-motion="true"] *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
}

/* Respect user's prefers-reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* â•â•â•â•â•â• Disable Copy/Select Globally â•â•â•â•â•â• */
* {
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
    -webkit-touch-callout: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

/* Allow text selection for input fields, textareas, and content areas */
input,
textarea,
[contenteditable="true"],
[contenteditable="true"] *,
.selectable,
.selectable * {
    -webkit-user-select: text !important;
    -moz-user-select: text !important;
    -ms-user-select: text !important;
    user-select: text !important;
}

/* Allow clicks and pointer events for links and buttons */
a,
button,
.btn,
[role="button"],
[onclick] {
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
    pointer-events: auto !important;
    cursor: pointer !important;
}

/* Pagination links - ensure they are clickable */
.pagination,
.pagination *,
.page-link,
.page-item,
.page-item a,
.page-link {
    pointer-events: auto !important;
    cursor: pointer !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
    text-decoration: none !important;
}

.pagination .page-link:hover,
.pagination .page-link:focus,
.pagination .page-link:active {
    pointer-events: auto !important;
    cursor: pointer !important;
    text-decoration: none !important;
}

.pagination .page-item.disabled .page-link {
    pointer-events: none !important;
    cursor: not-allowed !important;
    opacity: 0.6;
}

/* Allow selection in code blocks and pre tags */
pre,
code,
.code-block {
    -webkit-user-select: text !important;
    -moz-user-select: text !important;
    -ms-user-select: text !important;
    user-select: text !important;
}

html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

/* profiles index */
/* profiles index */
/* profiles index */
/* profiles index */
/* profiles index */

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•  Ù„ÙˆØ­Ø© Ø£Ù„ÙˆØ§Ù† Ù‚Ø³Ù…Ø© ÙˆÙ†ØµÙŠØ¨  â•â•â•â•â•â•â•â•â•â•â•â•â•â•— */
/* Task 26: Colors now managed by theme.css - keeping for backward compatibility */
:root {
    --primary: var(--theme-primary, #D7263D); /* Ø£Ø­Ù…Ø± ØªÙˆØªÙŠ */
    --theme-primary-rgb: 215, 38, 61; /* for rgba() in pagination, hover, etc. */
    --accent: var(--theme-accent, #0D6EFD); /* Ø£Ø²Ø±Ù‚ Ù…Ù„ÙƒÙ‰ (Bootstrap blue) */
    --secondary: var(--theme-secondary, #FF7F50); /* ÙƒÙˆØ±Ø§Ù„ Ù„Ù„ØªÙØ§ØµÙŠÙ„ Ø§Ù„Ø¨Ø³ÙŠØ·Ø© */
    --bg-light: var(--theme-bg-secondary, #FFF7F5); /* Ø®Ù„ÙÙŠØ© Ø¹Ø§Ø¬Ù‰ ÙˆØ±Ø¯Ù‰ */
    --neutral: var(--theme-text-primary, #333);
    --border: var(--theme-border, #E9E9E9);
    --sky-light: var(--theme-sky-light, #E0F7FA); /* Ø³Ù…Ø§ÙˆÙŠ ÙØ§ØªØ­ */
    --sky-medium: var(--theme-sky-medium, #B2EBF2); /* Ø³Ù…Ø§ÙˆÙŠ Ù…ØªÙˆØ³Ø· Ø¹Ù†Ø¯ Ø§Ù„ÙØªØ­ */
    --text-dark: var(--theme-text-primary, #333); /* Ù†Øµ ØºØ§Ù…Ù‚ Ù„Ù‚Ø±Ø§Ø¡Ø© Ø£ÙˆØ¶Ø­ */
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•  Ø£Ø³Ø§Ø³ÙŠØ§Øª  â•â•â•â•â•â•â•â•â•â•â•â•â•â•— */
body {
    font-family: 'Cairo',sans-serif;
    background: var(--theme-bg-secondary, var(--bg-light));
    color: var(--theme-text-primary, var(--neutral));
}


.border-bottom {
    border-color: var(--border) !important;
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•  Navbar  â•â•â•â•â•â•â•â•â•â•â•â•â•â•— */
/* Ensure header container allows overflow */
header.container-lg {
    overflow: visible !important;
    position: relative !important;
    z-index: 1000 !important;
}

.navbar {
    background: var(--theme-bg-primary, #fff);
    border-radius: 12px;
    box-shadow: 0 4px 12px var(--theme-shadow-sm, rgb(0 0 0 / 5%));
    padding-inline: 1rem;
    overflow: visible !important; /* Allow dropdowns to overflow */
    max-width: 100% !important;
    position: relative !important;
    z-index: 1000 !important;
}

.navbar .container-fluid {
    overflow: visible !important; /* Allow dropdowns to overflow */
    max-width: 100% !important;
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
}

.navbar-brand {
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    white-space: nowrap;
}

/* Prevent brand text from breaking into multiple lines (even under tight flex layouts). */
.navbar-brand .site-name {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}


/* Base navbar navigation - unified spacing for ALL nav items */
.navbar-nav {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0rem !important; /* spacing between items */
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
}

/* RTL/LTR Support - Icon margins - Closer spacing */
.navbar-nav .nav-link i {
    font-size: 1rem;
    line-height: 1;
    vertical-align: middle;
    display: inline-flex;
    align-items: center;
}

[dir="rtl"] .navbar-nav .nav-link i {
    margin-left: 0.3rem;
    margin-right: 0;
}

[dir="ltr"] .navbar-nav .nav-link i {
    margin-left: 0;
    margin-right: 0.3rem;
}

/* Nav items - clean structure */
.navbar-nav .nav-item {
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
    flex-shrink: 0;
    display: block;
}

/* Nav links - clean styling */
.navbar-nav .nav-link {
    display: flex !important;
    align-items: center !important;
    padding: 0.5rem 1rem !important;
    border-radius: 0.5rem !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    text-decoration: none !important;
    transition: background-color 0.2s ease, color 0.2s ease !important;
    position: relative;
    color: inherit !important;
    box-sizing: border-box;
    /* Strict boundaries - no overflow or overlap */
    margin: 0;
    /* Each link is a separate interactive element */
    cursor: pointer;
    /* Prevent any hover interference */
    pointer-events: auto;
}

/* Disable ALL pseudo-elements (::before, ::after) on nav links */
.navbar-nav .nav-link::before,
.navbar-nav .nav-link::after,
.navbar-nav .nav-link:before,
.navbar-nav .nav-link:after,
.navbar .nav-link::before,
.navbar .nav-link::after,
.navbar .nav-link:before,
.navbar .nav-link:after {
    display: none !important;
    content: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   NAVBAR HOVER EFFECTS - Simple and Clean
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Simple hover effect for nav links */
.navbar-nav .nav-link {
    transition: background-color 0.2s ease, color 0.2s ease !important;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
    background-color: rgba(215, 38, 61, 0.08) !important;
    color: var(--primary) !important;
    text-decoration: none !important;
}

/* Active state - keep it simple */
.navbar-nav .nav-link.active {
    background-color: var(--primary) !important;
    color: white !important;
    box-shadow: 0 2px 4px rgba(215, 38, 61, 0.2) !important;
}

.navbar-nav .nav-link.active:hover,
.navbar-nav .nav-link.active:focus {
    background-color: rgba(215, 38, 61, 0.9) !important;
    color: white !important;
}

/* Disable hover on pseudo-elements to prevent issues */
.navbar-nav .nav-link:hover::before,
.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link:focus::before,
.navbar-nav .nav-link:focus::after {
    display: none !important;
    content: none !important;
}

/* Dropdown toggle hover */
.navbar .dropdown-toggle:hover,
.navbar .dropdown-toggle:focus {
    background-color: rgba(215, 38, 61, 0.08) !important;
    color: var(--primary) !important;
}

/* Language dropdown hover - same as nav-link */
#languageDropdown:hover,
#languageDropdown:focus {
    background-color: rgba(215, 38, 61, 0.08) !important;
    color: var(--primary) !important;
    text-decoration: none !important;
}

/* Dark mode support for language dropdown hover */
[data-theme="dark"] #languageDropdown:hover,
[data-theme="dark"] #languageDropdown:focus {
    background-color: rgba(215, 38, 61, 0.08) !important;
    color: var(--primary) !important;
    text-decoration: none !important;
}

/* CRITICAL: Override Bootstrap dropdown item hover - RED for ALL items (active and non-active) */
.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active:hover,
.dropdown-item.active:focus,
a.dropdown-item:hover,
a.dropdown-item:focus,
a.dropdown-item.active:hover,
a.dropdown-item.active:focus,
.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus,
.dropdown-menu .dropdown-item.active:hover,
.dropdown-menu .dropdown-item.active:focus {
    background-color: rgba(215, 38, 61, 0.08) !important; /* RED - Override Bootstrap's var(--bs-dropdown-link-hover-bg) */
    color: var(--primary) !important; /* Override Bootstrap's var(--bs-dropdown-link-hover-color) */
    background: rgba(215, 38, 61, 0.08) !important; /* Override background shorthand */
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus,
[data-theme="dark"] .dropdown-item.active:hover,
[data-theme="dark"] .dropdown-item.active:focus,
[data-theme="dark"] a.dropdown-item:hover,
[data-theme="dark"] a.dropdown-item:focus,
[data-theme="dark"] a.dropdown-item.active:hover,
[data-theme="dark"] a.dropdown-item.active:focus,
[data-theme="dark"] .dropdown-menu .dropdown-item:hover,
[data-theme="dark"] .dropdown-menu .dropdown-item:focus,
[data-theme="dark"] .dropdown-menu .dropdown-item.active:hover,
[data-theme="dark"] .dropdown-menu .dropdown-item.active:focus {
    background-color: rgba(215, 38, 61, 0.08) !important; /* RED - Override Bootstrap's var(--bs-dropdown-link-hover-bg) */
    color: var(--primary) !important; /* Override Bootstrap's var(--bs-dropdown-link-hover-color) */
    background: rgba(215, 38, 61, 0.08) !important; /* Override background shorthand */
}

/* User dropdown hover - subtle */
#userDropdown:hover,
#userDropdown:focus {
    background-color: rgba(0, 0, 0, 0.05) !important;
}

/* Login/Register links hover */
.navbar-nav .nav-link[href*="Login"]:hover,
.navbar-nav .nav-link[href*="Login"]:focus,
.navbar-nav .nav-link[href*="Register"]:hover,
.navbar-nav .nav-link[href*="Register"]:focus {
    background-color: rgba(215, 38, 61, 0.08) !important;
    color: var(--primary) !important;
}

/* Ensure dropdown items don't interfere */
.navbar-nav .nav-item.dropdown {
    position: relative;
}

/* Left and right nav groups - same spacing */
.navbar-nav.me-auto,
.navbar-nav.ms-auto {
    gap: 0.5rem !important; /* Reduced spacing for both sides */
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
}

    .navbar-brand span {
        color: var(--accent);
    }

    .navbar-brand img {
        height: 40px;
        width: auto;
    }

/* Additional RTL/LTR support for general elements */
[dir="rtl"] {
    text-align: right;
}

/* Phone Country Selector (DB-backed) - legacy (kept for fallback) */
.phone-country-select { margin-bottom: 0.5rem; position: relative; }
.phone-country-select .pcsel__sr{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    white-space:nowrap !important;
    border:0 !important;
}
.phone-country-select .pcsel__btn {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.65rem 0.9rem;
    border-radius: 0.9rem;
    border: 1px solid var(--theme-border, #e9ecef);
    background: var(--theme-bg-primary, #fff);
    color: var(--theme-text-primary, #212529);
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease, transform .08s ease;
}
.phone-country-select .pcsel__btn:hover {
    background: var(--theme-bg-secondary, #f8f9fa);
}
.phone-country-select .pcsel__btn:active { transform: translateY(0.5px); }
.phone-country-select .pcsel__btn:focus-visible {
    outline: 0;
    border-color: rgba(var(--bs-primary-rgb, 13,110,253), .55);
    box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb, 13,110,253), .18);
}
.phone-country-select .pcsel__flag { width: 22px; height: 16px; border-radius: 3px; object-fit: cover; }
.phone-country-select .pcsel__name { flex: 1 1 auto; text-align: start; font-weight: 600; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.phone-country-select .pcsel__dial {
    flex: 0 0 auto;
    font-weight: 800;
    direction: ltr;
    color: var(--theme-text-primary, #212529);
    background: var(--theme-bg-secondary, #f8f9fa);
    border: 1px solid var(--theme-border, #e9ecef);
    padding: 0.14rem 0.45rem;
    border-radius: 999px;
}
.phone-country-select .pcsel__chev { opacity: .75; margin-inline-start: auto; }
.phone-country-select .pcsel__name { display: none; } /* show flag + dial only */

/* Inline mode: embed selector inside phone input group */
.manage-content-body .phone-country-select--inline { margin-bottom: 0; }
.manage-content-body .phone-number-box .phone-country-select--inline { flex: 0 0 auto; }
.manage-content-body .phone-number-box .phone-country-select--inline .pcsel__btn{
    width: auto;
    height: 100%;
    border: 0;
    border-radius: .75rem 0 0 .75rem;
    background: transparent;
    box-shadow: none;
    padding: 0 0.75rem;
    gap: 0.55rem;
}
.manage-content-body .phone-number-box .phone-country-select--inline .pcsel__btn:hover{
    background: rgba(215, 38, 61, 0.06);
}
.manage-content-body .phone-number-box .phone-country-select--inline .pcsel__name{ display: none; }
.manage-content-body .phone-number-box .phone-country-select--inline .pcsel__dial{
    display: inline-flex;
    background: transparent;
    border: 0;
    padding: 0;
    border-radius: 0;
    font-weight: 900;
}
.phone-country-select .pcsel__panel {
    position: absolute;
    inset-inline-start: 0;
    top: calc(100% + 0.35rem);
    width: min(360px, 92vw);
    border: 1px solid var(--theme-border, #e9ecef);
    border-radius: 1rem;
    background: var(--theme-bg-primary, #fff);
    box-shadow: 0 12px 30px rgba(0,0,0,0.18);
    overflow: hidden;
    z-index: 1060;
}
.phone-country-select .pcsel__search-wrap {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--theme-border, #e9ecef);
    background: var(--theme-bg-secondary, #f8f9fa);
}
.phone-country-select .pcsel__search-wrap i { opacity: .7; }
.phone-country-select .pcsel__search {
    width: 100%;
    border: 1px solid var(--theme-border, #e9ecef);
    border-radius: 0.75rem;
    padding: 0.45rem 0.6rem;
    background: var(--theme-bg-primary, #fff);
    color: var(--theme-text-primary, #212529);
}
.phone-country-select .pcsel__search:focus {
    outline: 0;
    border-color: rgba(var(--bs-primary-rgb, 13,110,253), .55);
    box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb, 13,110,253), .12);
}
.phone-country-select .pcsel__list {
    max-height: min(320px, 55vh);
    overflow: auto;
    padding: 0.35rem;
}
.phone-country-select .pcsel__item {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.65rem;
    border: 0;
    background: transparent;
    border-radius: 0.65rem;
    color: var(--theme-text-primary, #212529);
    text-align: start;
    transition: background-color .12s ease;
}
.phone-country-select .pcsel__item { justify-content: flex-start; }
.phone-country-select .pcsel__item:hover {
    background: rgba(215, 38, 61, 0.08);
}
.phone-country-select .pcsel__item-name{
    flex: 1 1 auto;
    min-width: 0;
}
.phone-country-select .pcsel__item-dial {
    flex: 0 0 auto;
    min-width: 3.25rem;
    text-align: center;
    direction: ltr;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
    color: var(--theme-text-primary, #212529);
    background: var(--theme-bg-secondary, #f8f9fa);
    border: 1px solid var(--theme-border, #e9ecef);
    padding: 0.14rem 0.45rem;
    border-radius: 999px;
}
.phone-country-select .pcsel__item-dial--empty { display: none; }
.phone-country-select .pcsel__item-name { flex: 1 1 auto; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.phone-country-select .pcsel__empty { padding: 0.8rem; text-align: center; color: var(--theme-text-secondary, #6c757d); }

[data-theme="dark"] .phone-country-select .pcsel__panel { box-shadow: 0 12px 30px rgba(0,0,0,0.5); }
[data-theme="dark"] .phone-country-select .pcsel__panel {
    background: #141414;
    border-color: rgba(255,255,255,0.14);
    color: rgba(255,255,255,0.92);
}
[data-theme="dark"] .phone-country-select .pcsel__search-wrap {
    background: rgba(255,255,255,0.03);
    border-bottom-color: rgba(255,255,255,0.14);
}
[data-theme="dark"] .phone-country-select .pcsel__search {
    background: #141414;
    border-color: rgba(255,255,255,0.14);
    color: rgba(255,255,255,0.92);
}
[data-theme="dark"] .phone-country-select .pcsel__search::placeholder { color: rgba(255,255,255,0.55); }
[data-theme="dark"] .phone-country-select .pcsel__item,
[data-theme="dark"] .phone-country-select .pcsel__item-name { color: rgba(255,255,255,0.92); }
[data-theme="dark"] .phone-country-select .pcsel__item:hover { background: rgba(215, 38, 61, 0.18); }
[data-theme="dark"] .phone-country-select .pcsel__dial,
[data-theme="dark"] .phone-country-select .pcsel__item-dial {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.14);
    color: var(--theme-text-primary, #f8f9fa);
}

[dir="ltr"] {
    text-align: left;
}

/* Manage/PhoneNumber - shared styles (must be in site.css because Manage uses AJAX swaps) */
.manage-content-body #Phone_Entry {
    direction: ltr;
    text-align: left;
}
.manage-content-body .phone-number-box{
    flex:1;
    display:flex;
    align-items:stretch;
    flex-wrap:nowrap;
    min-width:0;
    direction:ltr; /* keep phone layout like English even on Arabic pages */
    border:1px solid var(--theme-border, #dee2e6);
    border-radius:.75rem;
    background:var(--theme-bg-primary, #fff);
    overflow: visible; /* allow dropdown to overlay like intl-tel-input */
    position: relative;
}
.manage-content-body .phone-national-input{
    flex:1 1 auto;
    min-width:0;
    width:auto !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
}
.manage-content-body #phone-country-select{ position:static; flex:0 0 auto; }
.manage-content-body .phone-country-select--inline .pcsel__btn{
    height: 100%;
    border: 0;
    border-radius: .75rem 0 0 .75rem;
    background: transparent;
    padding: 0 0.75rem;
    gap: 0.55rem;
}
.manage-content-body .phone-country-select--inline .pcsel__btn:hover{ background: rgba(215, 38, 61, 0.06); }
.manage-content-body .phone-country-select--inline .pcsel__btn:focus-visible{
    box-shadow: none;
    outline: none;
}
.manage-content-body .phone-country-select--inline .pcsel__chev{ opacity: .75; }
.manage-content-body .phone-country-select--inline .pcsel__dial{
    background: transparent;
    border: 0;
    padding: 0;
    border-radius: 0;
    font-weight: 900;
}
.manage-content-body .phone-country-select--inline .pcsel__name{ display: none; }

/* Make dropdown same width as the full phone field */
.manage-content-body .phone-number-box .pcsel__panel{
    inset-inline-start: 0;
    inset-inline-end: 0;
    width: auto;
    max-width: 100%;
}

@media (max-width: 575px){
    .manage-content-body .phone-entry-row{ flex-direction:column; max-width:100%; }
    .manage-content-body #phone-country-select{ flex:1 1 auto; }
}

/* RTL/LTR support for margins and padding - Keep me-1 for icons */
[dir="rtl"] .navbar-nav .nav-link .me-1 {
    margin-left: 4px !important; /* Icon margin handled by CSS above */
}

[dir="ltr"] .navbar-nav .nav-link .me-1 {
    margin-right: 4px !important; /* Icon margin handled by CSS above */
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•  Responsive Design  â•â•â•â•â•â•â•â•â•â•â•â•â•â•— */

/* Mobile First Approach */
@media (max-width: 991.98px) {
    .navbar-brand span {
        display: none; /* Hide text on mobile, keep logo only */
    }
    
    .navbar-brand img {
        height: 35px;
    }
    
    .navbar-toggler {
        border: none;
        padding: 0.25rem 0.5rem;
    }
    
    .navbar-toggler:focus {
        box-shadow: none;
    }
    
.navbar-collapse {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--theme-border, var(--border));
}
    
    .navbar-nav {
        text-align: center;
    }
    
    .nav-item {
        margin: 0.25rem 0;
    }
    
    .nav-link {
        padding: 0.75rem 1rem;
        border-radius: 8px;
        margin: 0.125rem 0;
        white-space: nowrap;
        flex-shrink: 0;
    }
    
    .nav-link span {
        white-space: nowrap;
        overflow: visible;
        text-overflow: clip;
    }
    
    /* Mobile hover - simple */
    .nav-link:hover,
    .nav-link:focus {
        background-color: rgba(215, 38, 61, 0.08) !important;
        color: var(--primary) !important;
    }
    
    .nav-link.active {
        background-color: var(--primary) !important;
        color: white !important;
    }
    
    .dropdown-menu {
        border: none;
        box-shadow: 0 4px 12px var(--theme-shadow-md, rgb(0 0 0 / 10%));
        border-radius: 8px;
        margin-top: 0.5rem;
        background: var(--theme-bg-primary);
        color: var(--theme-text-primary);
    }
    
    .dropdown-item {
        padding: 0.75rem 1rem;
        border-radius: 6px;
        margin: 0.125rem 0.5rem;
    }
    
    /* Dropdown item hover */
    .dropdown-item:hover,
    .dropdown-item:focus {
        background-color: var(--theme-bg-tertiary, rgba(215, 38, 61, 0.08)) !important;
        color: var(--theme-primary, var(--primary)) !important;
    }
}

/* Small Mobile Devices */
@media (max-width: 576px) {
    .navbar {
        padding-inline: 0.75rem;
        border-radius: 8px;
    }
    
    .navbar-brand img {
        height: 30px;
    }
    
    .nav-link {
        font-size: 0.9rem;
        padding: 0.5rem 0.75rem;
    }
    
    .badge {
        font-size: 0.7rem;
        padding: 0.25rem 0.5rem;
    }
}

/* Extra Small Devices */
@media (max-width: 375px) {
    .navbar-brand img {
        height: 28px;
    }
    
    .nav-link {
        font-size: 0.85rem;
        padding: 0.4rem 0.6rem;
    }
    
    .nav-link i {
        margin-left: 0.25rem;
    }
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•  Footer  â•â•â•â•â•â•â•â•â•â•â•â•â•â•— */
.footer {
    background: var(--theme-bg-primary, #fff);
    border-radius: 12px 12px 0 0;
    box-shadow: 0 -4px 12px var(--theme-shadow-sm, rgb(0 0 0 / 5%));
    padding-block: .5rem;
    color: var(--theme-text-primary);
    margin-top: auto;
    position: relative;
    z-index: 1;
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•  Ø¨Ø·Ø§Ù‚Ø§Øª / Ù†Ù…Ø§Ø°Ø¬  â•â•â•â•â•â•â•â•â•â•â•â•â•â•— */
.card, .form-section {
    border-radius: 15px;
    border: 1px solid var(--theme-border, var(--border));
    box-shadow: 0 2px 8px var(--theme-shadow-sm, rgb(0 0 0 / 6%));
    overflow: hidden;
    background: var(--theme-bg-primary, #fff);
    color: var(--theme-text-primary);
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•  Main Content Responsive  â•â•â•â•â•â•â•â•â•â•â•â•â•â•— */
main.container-lg {
    padding-left: 1rem;
    padding-right: 1rem;
}

@media (max-width: 991.98px) {
    main.container-lg {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
    
    .card, .form-section {
        border-radius: 12px;
        margin-bottom: 1rem;
    }
    
    .card-body {
        padding: 1rem;
    }
}

@media (max-width: 576px) {
    main.container-lg {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }
    
    .card, .form-section {
        border-radius: 8px;
        margin-bottom: 0.75rem;
    }
    
    .card-body {
        padding: 0.75rem;
    }
    
    .card-title {
        font-size: 1.1rem;
    }
    
    .card-text {
        font-size: 0.9rem;
    }
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•  General Responsive Utilities  â•â•â•â•â•â•â•â•â•â•â•â•â•â•— */
@media (max-width: 991.98px) {
    .d-lg-none {
        display: block !important;
    }
    
    .d-lg-block {
        display: none !important;
    }
    
    .text-lg-start {
        text-align: center !important;
    }
    
    .text-lg-end {
        text-align: center !important;
    }
}

@media (max-width: 576px) {
    .d-md-none {
        display: block !important;
    }
    
    .d-md-block {
        display: none !important;
    }
    
    .text-md-start {
        text-align: center !important;
    }
    
    .text-md-end {
        text-align: center !important;
    }
    
    .btn {
        font-size: 0.9rem;
        padding: 0.5rem 1rem;
    }
    
    .btn-sm {
        font-size: 0.8rem;
        padding: 0.375rem 0.75rem;
    }
    
    .form-control {
        font-size: 0.9rem;
    }
    
    .form-label {
        font-size: 0.9rem;
    }
}

.form-section {
    background: var(--theme-bg-primary, #fff);
    padding: 2rem;
    margin-bottom: 30px;
    color: var(--theme-text-primary);
}

.card-header,
.accordion-button:not(.collapsed) {
    /* ØªØ¯Ø±Ù‘Ø¬ Ø£Ø­Ù…Ø± â†” Ø£Ø²Ø±Ù‚ */
    background: linear-gradient(135deg, var(--theme-primary, var(--primary)), var(--theme-accent, var(--accent)));
    color: #fff;
}

.form-label {
    font-weight: 600;
    margin-bottom: 8px;
}

/* â•”â•â•â•â•â•â•â•â•â•â•â•â•â•  Ø£Ø²Ø±Ø§Ø±  â•â•â•â•â•â•â•â•â•â•â•â•â•â•— */
.btn-primary {
    background: var(--accent); /* Ø§Ù„Ø£Ø²Ø±Ù‚ Ø§Ù„Ø±Ø¦ÙŠØ³Ù‰ Ù„Ù„Ø£Ø²Ø±Ø§Ø± Ø§Ù„Ø¹Ø§Ø¯ÙŠØ© */
    border-color: var(--accent);
}

    .btn-primary:hover,
    .btn-primary:focus {
        background: #0b5ed7;
        border-color: #0b5ed7;
    }

.btn-warning {
    /* Ø²Ø± call-to-action: ØªØ¯Ø±Ø¬ Ø£Ø­Ù…Ø± â†” Ø£Ø²Ø±Ù‚ */
    background: linear-gradient(135deg,var(--primary),var(--accent));
    border: none;
    color: #fff;
    font-weight: 600;
}

    .btn-warning:hover {
        background: linear-gradient(135deg,var(--accent),var(--primary));
    }

/* ÙˆØ³ÙˆÙ… Ø£Ùˆ Ø´Ø§Ø±Ø§Øª ØµØºÙŠØ±Ø© Ø¨Ø§Ù„ÙƒÙˆØ±Ø§Ù„ */
.badge-secondary {
    background: var(--secondary);
}

/* â•”â•â• Ø¥ØµÙ„Ø§Ø­ Ù…Ø­Ø§Ø°Ø§Ø© Ø§Ù„Ù€ dropdown RTL â‰¥ LG â•â•â•— */
@media (min-width:992px) {
    .navbar .dropdown-menu-end {
        right: auto;
        left: 0;
    }
    .filter-sidebar {
        position: sticky;
        top: 80px;
    }
}

/* Profile menu (user dropdown): ensure English/LTR has enough width and no truncated labels */
.user-profile-dropdown {
    min-width: 320px;
    max-width: 520px;
    text-align: right;
}

html[dir="ltr"] .user-profile-dropdown {
    min-width: 400px;
    max-width: 620px;
    text-align: left;
}

.user-profile-dropdown .dropdown-item {
    gap: .5rem;
    white-space: normal;
}

.user-profile-dropdown .dropdown-label {
    flex: 1 1 auto;
    min-width: 0;
    white-space: normal; /* allow wrapping instead of ellipsis */
    overflow: visible;
}



/* home index */
/* home index */
/* home index */
/* home index */
/* home index */

.profile-card {
    background: var(--theme-bg-primary, #fff);
    border: 1px solid var(--theme-border, var(--border));
    border-radius: 18px;
    padding: 1.25rem 1.5rem;
    transition: box-shadow .25s ease;
    height: 100%;
    color: var(--theme-text-primary);
    /* Prevent text selection/copying */
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    cursor: pointer;
}

    .profile-card:hover {
        box-shadow: 0 12px 28px var(--theme-shadow-md, rgb(0 0 0 / 10%));
        transform: translateY(-3px);
    }
    
    /* Prevent text selection on all child elements */
    .profile-card * {
        user-select: none;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
    }
    
    /* But allow selection on input fields if any */
    .profile-card input,
    .profile-card textarea {
        user-select: text;
        -webkit-user-select: text;
        -moz-user-select: text;
        -ms-user-select: text;
    }

/* Ø§Ù„ØµÙˆØ±Ø© */
.avatar-wrap {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    overflow: visible; /* allow overlays (verification badge) to sit ÙÙˆÙ‚ Ù…Ø­ÙŠØ· Ø§Ù„ØµÙˆØ±Ø© */
    border: 2px solid var(--border);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.avatar-clip {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    overflow: hidden; /* clip the avatar itself, not the overlays */
    display: flex;
    align-items: center;
    justify-content: center;
}

    .avatar-clip img {
        max-width: 85%;
        max-height: 85%;
        object-fit: contain;
    }

/* Ø§Ù„Ø´Ø±ÙŠØ· Ø§Ù„Ø³ÙÙ„Ù‰ */
.meta-strip {
    border-top: 1px dashed var(--border);
}

/* Ø§Ù„Ø£ÙŠÙ‚ÙˆÙ†Ø§Øª Ø§Ù„Ø­Ù…Ø±Ø§Ø¡ ÙƒÙ…Ø§ Ù‡Ù‰ */
.icon-red {
    color: var(--primary);
}

/* Ø²Ø± Ø§Ù„Ø¹Ø±Ø¶ Ø§Ù„Ø³Ø±ÙŠØ¹ ÙŠØªØ­ÙˆÙ„ Ø£Ø­Ù…Ø± */
.btn-quick-view:hover {
    border-color: var(--primary);
}

/* Ø¹Ù„Ù… Ø¨Ø­Ø¬Ù… ØµØºÙŠØ± */
.flag {
    font-size: 1.1rem;
    vertical-align: -2px;
    margin-inline-end: .25rem;
}

.flag-img {
    width: 20px;
    height: auto;
    border-radius: 2px;
    vertical-align: -2px;
}

/* â”€â”€â”€ Ø­Ø§Ù„Ø© â€œÙŠØªÙ… Ø§Ù„Ø¹Ø±Ø¶ Ø§Ù„Ø¢Ù†â€ â”€â”€â”€ */
.profile-card.active-card {
    border-color: var(--primary);
    box-shadow: 0 0 0 2px var(--primary);
}

/* â”€â”€â”€ Ø­Ø§Ù„Ø© â€œØ´ÙˆÙ‡Ø¯Øªâ€ â”€â”€â”€ */
.profile-card.viewed-card {
    opacity: .6;
}

/* â”€â”€â”€ Ø²Ø± Ø§Ù„Ù†Ø¬Ù…Ø© â”€â”€â”€ */
.star-btn {
    position: absolute; /* Ù†Ø¶Ø¹Ù‡ ÙÙ‰ Ø§Ù„Ø±ÙƒÙ† */
    top: .5rem;
    left: .5rem; /* Ù„Ø£Ù†Ù†Ø§ RTL â† ÙŠØ³Ø§Ø± */
    background: transparent;
    border: 0;
    font-size: 1.35rem;
    color: #bbb;
}

    .star-btn.fav { /* Ø­Ø§Ù„Ø© Ù…ÙØ¶Ù‘ÙŽÙ„ */
        color: #ffc107;
    }


@media (min-width: 992px) {
    .modal-quickview .modal-dialog {
        max-width: 720px; /* Ø£Ùˆ 640px Ø­Ø³Ø¨ ØªÙØ¶ÙŠÙ„Ùƒ */
        margin-left: auto;
        margin-right: auto;
    }
}

.last-seen-wrapper {
    font-size: 0.85rem;
    font-weight: 500;
}

.last-seen-label {
    font-weight: 500;
}

.last-seen-online {
    color: #28a745;
}

.last-seen-offline {
    color: #6c757d;
}

.last-seen-label i {
    margin-left: 4px;
}


.loading-overlay {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background: var(--theme-overlay, rgba(255, 255, 255, 0.6));
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10;
    pointer-events: none;
    border-radius: 0.5rem;
}

.results-wrapper {
    position: relative;
    min-height: 400px; /* Prevent layout shift */
    overflow: visible; /* Don't create scrollbar */
}

    .results-wrapper .loading-overlay {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.25s ease, visibility 0.25s ease;
    }
    .results-wrapper.loading .loading-overlay {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
    .results-wrapper.loading #results {
        pointer-events: none;
        opacity: 0.5;
    }

/* Fix duplicate scrollbars - ensure only body scrolls */
html {
    overflow-y: auto;
    overflow-x: hidden;
    height: 100%;
}

body {
    overflow-y: auto;
    overflow-x: hidden;
    height: 100%;
}

/* Main container should not create scrollbar */
main.container-lg {
    overflow: visible;
}

/* Ensure row doesn't create scrollbar */
.row {
    overflow: visible;
}

/* Filter sidebar - prevent duplicate scrollbars */
#filterOffcanvas.offcanvas-lg {
    overflow: hidden !important; /* Don't create scrollbar on offcanvas itself */
}

#filterOffcanvas .offcanvas-body {
    overflow: hidden !important; /* Don't create scrollbar on body - handled by filter-scroll */
}

/* Only the filter-scroll div should scroll */
#filterOffcanvas .filter-scroll {
    overflow-y: auto;
    overflow-x: hidden;
}

/* Hide scrollbar on left side for RTL - ensure scrollbar appears on right only */
[dir="rtl"] {
    direction: rtl;
}

/* Select2 dropdown RTL: align open list and prevent scrollbar from obscuring first option */
[dir="rtl"] .select2-dropdown,
html[dir="rtl"] .select2-dropdown {
    direction: rtl;
    text-align: right;
}
[dir="rtl"] .select2-results,
html[dir="rtl"] .select2-results {
    overflow-y: auto;
    scrollbar-gutter: stable;
    padding-inline-start: 6px;
}
[dir="rtl"] .select2-results__option,
html[dir="rtl"] .select2-results__option {
    text-align: right;
}

/* Custom scrollbar styling - ensure it appears on right side only */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--theme-border-dark, rgba(0, 0, 0, 0.2));
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--theme-text-secondary, rgba(0, 0, 0, 0.3));
}

/* Firefox - thin scrollbar on right */
@-moz-document url-prefix() {
    * {
        scrollbar-width: thin;
        scrollbar-color: var(--theme-text-secondary, rgba(0, 0, 0, 0.3)) transparent;
    }
}

/* Pagination wrapper - fixed position */
.pagination-wrapper {
    position: sticky;
    bottom: 0;
    background: var(--theme-bg-primary, #fff);
    /* Compact: keep only "Load more" visible, avoid large footer-like bar */
    padding: 0.35rem 0;
    margin-top: 0.75rem;
    z-index: 10;
    border-top: 1px solid var(--theme-border, #dee2e6);
    box-shadow: 0 -1px 4px var(--theme-shadow-sm, rgba(0, 0, 0, 0.04));
}

/* Dark mode support for pagination - now handled by theme.css */
[data-theme="dark"] .pagination-wrapper,
[data-bs-theme="dark"] .pagination-wrapper {
    background: var(--theme-bg-primary);
    border-top-color: var(--theme-border);
}

/* Smooth transitions for profile cards */
#profile-cards-container {
    transition: opacity 0.2s ease;
    min-height: 200px; /* Prevent layout shift */
}

/* Task 32.2: Enhanced Validation Error Styling */
.field-validation-error {
    display: block;
    font-size: 0.875rem;
    margin-top: 0.25rem;
    color: var(--theme-danger, #dc3545) !important;
}

.field-validation-valid {
    display: none;
}

.validation-summary-errors {
    padding: 1rem;
    margin-bottom: 1rem;
    border-radius: 0.375rem;
    background-color: rgba(220, 53, 69, 0.1);
    border: 1px solid var(--theme-danger, #dc3545);
}

.validation-summary-errors ul {
    margin-bottom: 0;
    padding-left: 1.5rem;
}

.validation-summary-errors li {
    margin-bottom: 0.5rem;
}

.validation-summary-errors li:last-child {
    margin-bottom: 0;
}

/* Enhanced Bootstrap validation states */
.was-validated .form-control:invalid,
.was-validated .form-select:invalid,
.form-control.is-invalid,
.form-select.is-invalid {
    border-color: var(--theme-danger, #dc3545);
    padding-right: calc(1.5em + 0.75rem);
    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 d='m5.8 3.6 .4.4.4-.4m0 4.8h.8'/%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);
}

.was-validated .form-control:valid,
.was-validated .form-select:valid,
.form-control.is-valid,
.form-select.is-valid {
    border-color: var(--theme-success, #28a745);
    padding-right: calc(1.5em + 0.75rem);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='m2.3 6.73.984-.984L6.5 2.5l.984.984L3.284 7.714z'/%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);
}

/* Focus states for invalid/valid fields */
.form-control.is-invalid:focus,
.form-select.is-invalid:focus {
    border-color: var(--theme-danger, #dc3545);
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.form-control.is-valid:focus,
.form-select.is-valid:focus {
    border-color: var(--theme-success, #28a745);
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

/* Smooth transitions for validation states */
.form-control,
.form-select {
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   App pagination â€“ one design for all pages (Contacts, Favorites, Home, Admin)
   Uses theme palette, RTL-friendly, accessible, compact UX
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.pagination {
    margin-bottom: 0 !important;
    gap: 0.25rem;
    flex-wrap: wrap;
    justify-content: center;
}

.pagination .page-item {
    margin: 0;
}

.pagination .page-link {
    --pagination-bg: var(--theme-bg-primary, #fff);
    --pagination-border: var(--theme-border, #e9ecef);
    --pagination-text: var(--theme-text-primary, #212529);
    --pagination-primary: var(--theme-primary, var(--primary, #D7263D));
    --pagination-primary-rgb: var(--theme-primary-rgb);
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.5rem;
    border-radius: 8px;
    border: 1px solid var(--pagination-border);
    background: var(--pagination-bg);
    color: var(--pagination-text);
    font-weight: 500;
    font-size: 0.875rem;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
    pointer-events: auto !important;
    cursor: pointer !important;
    -webkit-user-select: none !important;
    user-select: none !important;
    text-decoration: none !important;
}

.pagination .page-link:hover {
    background: rgba(var(--pagination-primary-rgb), 0.08);
    border-color: var(--pagination-primary);
    color: var(--pagination-primary);
    text-decoration: none !important;
}

.pagination .page-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px var(--pagination-bg), 0 0 0 4px rgba(var(--pagination-primary-rgb), 0.35);
    text-decoration: none !important;
}

.pagination .page-item.active .page-link {
    background: var(--pagination-primary);
    border-color: var(--pagination-primary);
    color: #fff;
}

.pagination .page-link i {
    font-size: 1rem;
    line-height: 1;
    display: inline-block;
    vertical-align: middle;
}

.pagination .page-item.disabled .page-link {
    pointer-events: none !important;
    cursor: not-allowed !important;
    opacity: 0.5;
    background: var(--theme-bg-secondary, #f8f9fa);
    color: var(--theme-text-muted, #adb5bd);
    border-color: var(--pagination-border);
}

/* Compact variant for admin tables */
.pagination.pagination-sm .page-link {
    min-width: 1.85rem;
    height: 1.85rem;
    font-size: 0.8125rem;
    padding: 0 0.35rem;
}

/* Dark theme */
[data-theme="dark"] .pagination .page-link,
[data-bs-theme="dark"] .pagination .page-link {
    --pagination-bg: var(--theme-bg-secondary, #212529);
    --pagination-border: var(--theme-border, #495057);
    --pagination-text: var(--theme-text-primary, #e9ecef);
}

[data-theme="dark"] .pagination .page-link:hover,
[data-bs-theme="dark"] .pagination .page-link:hover {
    background: rgba(var(--pagination-primary-rgb), 0.2);
}

[data-theme="dark"] .pagination .page-item.disabled .page-link,
[data-bs-theme="dark"] .pagination .page-item.disabled .page-link {
    background: var(--theme-bg-tertiary, #2d3339);
    color: var(--theme-text-muted);
}

/* List pages (Profiles, Contacts, Favorites): same content height so pagination sits in same place */
.list-page-results {
    display: flex;
    flex-direction: column;
    min-height: 420px;
}
.list-page-results > *:first-child {
    flex: 1 1 auto;
}
/* Favorites: content wrapper so AJAX replace keeps grid (first child is spinner) */
.list-page-results .list-page-results-content,
.list-page-results .favorites-content {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.list-page-pagination-nav {
    margin-top: 0.75rem;
    flex-shrink: 0;
}
.list-page-pagination {
    margin-top: 0 !important;
}

/* ─────────────────────────────────────────────────────────────
   Safety Tips accordion (global) — calmer, less eye-strain
   ───────────────────────────────────────────────────────────── */
.safety-tips-btn.accordion-button {
    /* Replace bright bg-info bar with a softer, brand-consistent tint */
    background: rgba(var(--bs-primary-rgb, 13,110,253), 0.10);
    color: var(--theme-text-primary, #212529);
    padding: 0.65rem 1rem;
    border: 0;
}
.safety-tips-btn.accordion-button:not(.collapsed) {
    background: rgba(var(--bs-primary-rgb, 13,110,253), 0.12);
    color: var(--theme-text-primary, #212529);
}
.safety-tips-btn.accordion-button:focus {
    box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb, 13,110,253), 0.25);
}
.safety-tips-btn.accordion-button::after {
    /* keep default chevron but slightly dim it */
    opacity: 0.75;
}

[data-theme="dark"] .safety-tips-btn.accordion-button,
[data-bs-theme="dark"] .safety-tips-btn.accordion-button {
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.92);
}
[data-theme="dark"] .safety-tips-btn.accordion-button:not(.collapsed),
[data-bs-theme="dark"] .safety-tips-btn.accordion-button:not(.collapsed) {
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.95);
}
[data-theme="dark"] .safety-tips-btn.accordion-button:focus,
[data-bs-theme="dark"] .safety-tips-btn.accordion-button:focus {
    box-shadow: 0 0 0 0.15rem rgba(255, 255, 255, 0.12);
}

/* â•â•â•â•â•â• Navbar Status Indicator â•â•â•â•â•â• */
.status-indicator-nav {
    transition: all 0.3s ease;
    box-shadow: 0 0 0 2px white, 0 2px 4px rgba(0, 0, 0, 0.1);
    top: 0 !important;
}

/* RTL/LTR positioning for status indicator */
[dir="rtl"] .status-indicator-nav {
    right: 0 !important;
    left: auto !important;
    transform: translate(25%, -25%) !important;
}

[dir="ltr"] .status-indicator-nav {
    right: auto !important;
    left: 0 !important;
    transform: translate(-25%, -25%) !important;
}

.status-online-nav {
    background-color: #28a745 !important;
}

.status-offline-nav {
    background-color: #6c757d !important;
}

@keyframes pulse-online-rtl {
    0%, 100% {
        opacity: 1;
        transform: translate(25%, -25%) scale(1);
    }
    50% {
        opacity: 0.8;
        transform: translate(25%, -25%) scale(1.1);
    }
}

@keyframes pulse-online-ltr {
    0%, 100% {
        opacity: 1;
        transform: translate(-25%, -25%) scale(1);
    }
    50% {
        opacity: 0.8;
        transform: translate(-25%, -25%) scale(1.1);
    }
}

[dir="rtl"] .status-online-nav {
    animation: pulse-online-rtl 2s infinite;
}

[dir="ltr"] .status-online-nav {
    animation: pulse-online-ltr 2s infinite;
}

/* Ensure the avatar container has proper positioning */
#userDropdown {
    position: relative;
}

/* Ù…Ø¸Ù‡Ø± Ø§Ù„Ù†Ø¬Ù…Ø© */
.required-asterisk {
    color: #dc3545; /* Bootstrap danger */
    font-weight: 700;
    margin-right: 3px; /* Ù‚Ù„ÙŠÙ„ Ù…Ù† Ø§Ù„Ù…Ø³Ø§ÙØ© Ø¨Ø¹Ø¯ Ø§Ù„Ù†Øµ */
}

/* âžŠ Ø§Ù„Ø±Ø³Ø§Ù„Ø© ØªØ­Øª Ø§Ù„Ø­Ù‚Ù„ Ù…Ø¨Ø§Ø´Ø±Ø© */
.field-validation-error {
    color: var(--primary); /* Ø£Ø­Ù…Ø± Ø§Ù„Ù‡ÙˆÙŠØ© */
    font-size: .875rem; /* Ø£ØµØºØ± Ø¨Ù‚Ù„ÙŠÙ„ Ù…Ù† Ø§Ù„Ù†Øµ Ø§Ù„Ø¹Ø§Ø¯Ù‰ */
    font-weight: 600;
    margin-top: .25rem;
    display: flex;
    align-items: center;
    gap: .35rem;
}

    /* âž‹ Ø£ÙŠÙ‚ÙˆÙ†Ø© ØªÙ†Ø¨ÙŠÙ‡ Ù„Ø·ÙŠÙØ© Ù‚Ø¨Ù„ Ø§Ù„Ù†Øµ  (Bootstrap-Icons) */
    .field-validation-error::before {
        content: "\F33A"; /* bi-exclamation-circle-fill */
        font-family: "bootstrap-icons";
        font-size: 1rem;
    }

/* âžŒ Ø¹Ù†Ø¯Ù…Ø§ ÙŠÙƒÙˆÙ† Ù‡Ù†Ø§Ùƒ Ø®Ø·Ø£: Ø¥Ø·Ø§Ø± Ø§Ù„Ø­Ù‚Ù„ Ø¨Ø§Ù„Ù„ÙˆÙ† Ø§Ù„Ø£Ø­Ù…Ø± */
.is-invalid,
.input-validation-error {
    border-color: var(--primary) !important;
}

    /* Ù„Ù…Ø³Ø© hover / focus Ù„Ø¥Ø¨Ù‚Ø§Ø¡ Ø§Ù„Ù„ÙˆÙ† Ù…ÙˆØ­Ù‘Ø¯ */
    .is-invalid:focus,
    .input-validation-error:focus {
        box-shadow: 0 0 0 .25rem rgb(215 38 61 / .25);
    }


.validation-summary-errors {
    background: #FFF1F2; /* Ø£Ø­Ù…Ø± ÙØ§ØªØ­ Ø¬Ø¯Ù‹Ø§ */
    border: 1px solid var(--primary);
    border-radius: .5rem;
    padding: .75rem 1rem;
    color: var(--primary);
}

    .validation-summary-errors ul {
        margin-bottom: 0;
        padding-left: 1.2rem;
    }

    .validation-summary-errors li::marker {
        content: "â¨¯ ";
    }

/* Ù†Ø¬Ù…Ø© Ø§Ù„Ø­Ù‚ÙˆÙ„ Ø§Ù„Ù…Ø·Ù„ÙˆØ¨Ø© (Ù…ÙˆØ¬ÙˆØ¯ Ù…Ù† Ù‚Ø¨Ù„) */
.required-label::after {
    content: " *";
    color: var(--primary);
    margin-inline-start: .15rem;
    font-weight: 700;
}

/* Ø¥Ø°Ø§ ÙƒØ§Ù†Øª Ù…Ø¬Ù…ÙˆØ¹Ø© Radio Ø§Ù„Ù…Ø·Ù„ÙˆØ¨Ø© Ø¯Ø§Ø®Ù„ div */
.required-group > label.form-label::after {
    content: " *";
    color: var(--primary);
    margin-inline-start: .15rem;
    font-weight: 700;
}

/* Fix for modal backdrop issues */
.modal-backdrop.show {
    opacity: var(--bs-backdrop-opacity, 0.5);
}

/* Ensure only one backdrop is visible */
body.modal-open .modal-backdrop ~ .modal-backdrop {
    display: none !important;
}

/* Ensure modal backdrop doesn't block clicks on modal content */
/* By default, backdrop has pointer-events, but we'll disable it via JS after modal is shown */
.modal-backdrop {
    pointer-events: auto;
}

/* Ensure modal appears above navbar */
.modal {
    z-index: 1060 !important;
}

.modal-backdrop {
    z-index: 1055 !important;
}

/* Make modal content always interactive - this ensures content is clickable */
.modal.show .modal-content {
    pointer-events: auto !important;
    position: relative !important;
    z-index: 1061 !important;
}

.modal.show .modal-dialog {
    /* Keep Bootstrap defaults: allow dialog clicks; backdrop handles outside click-to-close. */
    pointer-events: auto !important;
    position: relative;
}

.modal.show .modal-body,
.modal.show .modal-header,
.modal.show .modal-footer {
    pointer-events: auto !important;
    position: relative !important;
}

/* Backdrop should be visible/clickable (click outside closes modal) */
.modal-backdrop,
.modal-backdrop.show {
    display: block !important;
    pointer-events: auto !important;
    user-select: none !important;
    touch-action: none !important;
}

/* Keep Bootstrap's default body.modal-open behavior (prevents background scroll). */

/* Ensure replacement overlay never blocks */
.modal-backdrop-replacement {
    pointer-events: none !important;
    display: none !important;
}

/* Ensure all interactive elements in modal are clickable */
.modal.show .modal-content button,
.modal.show .modal-content a,
.modal.show .modal-content input,
.modal.show .modal-content select,
.modal.show .modal-content textarea,
.modal.show .modal-content [onclick],
.modal.show .modal-content [data-bs-toggle],
.modal.show .modal-content .btn,
.modal.show .modal-content .star-btn,
.modal.show .modal-content .circle-btn {
    pointer-events: auto !important;
    position: relative !important;
    z-index: 1062 !important;
    user-select: auto !important;
    touch-action: auto !important;
}

/* Don't force cursor on non-interactive elements */
.modal.show .modal-content .wizard-actions,
.modal.show .modal-content .wizard-actions *,
.modal.show .modal-content .wizard-card,
.modal.show .modal-content .wizard-card * {
    pointer-events: auto !important;
    position: relative !important;
    z-index: 1062 !important;
    user-select: auto !important;
    touch-action: auto !important;
}

/* Ù…Ø­Ø§Ø°Ø§Ø© ÙƒÙ„ ØªØ³Ù…ÙŠØ§Øª Ø§Ù„Ø£Ø²Ø±Ø§Ø± (Ù‚Ø¨ÙˆÙ„ØŒ Ø±ÙØ¶ØŒ Ù…Ø±Ø§Ø³Ù„Ø©ØŒ Ø­Ø¸Ø±ØŒ Ø¥Ø¨Ù„Ø§ØºØŒ Ø§Ù„Ù…ÙØ¶Ù„Ø©) ØªØ­Øª Ø§Ù„Ø£ÙŠÙ‚ÙˆÙ†Ø§Øª ÙÙŠ Ø§Ù„ÙˆØ¶Ø¹ Ø§Ù„Ø¹Ø±Ø¨ÙŠ */
html[dir="rtl"] .wizard-actions > div > small,
html[dir="rtl"] .wizard-actions .circle-btn + small {
    margin-inline-end: 0.2rem;
}


/* Favorite label: center under star */
.wizard-actions .star-btn + small {
    display: block;
    width: 100%;
    text-align: center;
    margin-inline-end: 0 !important;
}

/* Profile quick modal specific styling */
.modal-quickview {
    z-index: 1060 !important;
    /* Guarantee Bootstrap-like overlay positioning even if a parent container/layout changes */
    position: fixed !important;
    inset: 0 !important;
}

/* Non-blocking quick view: let clicks reach the page (we close via JS capture) */
.modal-quickview.show {
    pointer-events: none;
}
.modal-quickview.show .modal-dialog,
.modal-quickview.show .modal-content {
    pointer-events: auto;
}

/* Quick-view dim overlay (visual only; does not block interactions) */
.quickview-dim {
    position: fixed;
    inset: 0;
    z-index: 1059; /* just below .modal-quickview (1060) */
    background: rgba(0, 0, 0, 0.35);
    opacity: 0;
    transition: opacity 180ms ease;
    pointer-events: none; /* never blocks the page */
}
.quickview-dim.show {
    opacity: 1;
}

.modal-quickview .modal-dialog {
    /* Leave a bit of space so header close button is always visible */
    margin: clamp(3.5rem, 10vh, 6.5rem) auto 1.25rem auto !important;
}

/* Ensure centered dialog actually centers (defensive against accidental overrides) */
.modal-quickview .modal-dialog.modal-dialog-centered {
    display: flex !important;
    align-items: center !important;
    min-height: calc(100% - 2.5rem) !important;
}

.modal-quickview .modal-header {
    position: sticky;
    top: 0;
    background: var(--theme-bg-primary, white);
    z-index: 10;
    border-bottom: 1px solid var(--theme-border, #dee2e6);
    padding: 1rem 1.5rem;
    color: var(--theme-text-primary);
}

/* Ensure the header area is tall enough for the close button */
#profileQuickModal .modal-header {
    min-height: 64px;
}

/* Global modal close button positioning based on language direction */
/* Arabic: Close button on LEFT */
/* English: Close button on RIGHT */
.modal .modal-header,
#contactRequestModal .modal-header,
#profileQuickModal .modal-header {
    position: relative !important;
    display: block !important;
    padding: 1rem 3rem !important;
}

.modal .modal-header .modal-title {
    margin: 0 !important;
}

.modal .modal-header .btn-close,
#contactRequestModal .modal-header .btn-close,
#profileQuickModal .modal-header .btn-close {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    font-size: 1rem !important;
    padding: 0.5rem !important;
    opacity: 1 !important;
    margin: 0 !important;
    z-index: 5 !important;
}

/* Quick-view close button: always visible on light backgrounds */
#profileQuickModal .modal-header .btn-close {
    background-color: rgba(0, 0, 0, 0.04);
    border-radius: 10px;
}

.modal .modal-header .btn-close:hover {
    opacity: 1 !important;
}

/* Arabic: Close on LEFT */
[dir="rtl"] .modal .modal-header .btn-close,
html[dir="rtl"] .modal .modal-header .btn-close,
html[dir="rtl"] #contactRequestModal .modal-header .btn-close,
html[dir="rtl"] #profileQuickModal .modal-header .btn-close,
html[dir="rtl"] #blockUserModal .modal-header .btn-close,
html[dir="rtl"] #reportUserModal .modal-header .btn-close {
    left: 1rem !important;
    right: auto !important;
}

[dir="rtl"] .modal .modal-header .modal-title {
    text-align: right !important;
}

/* English: Close on RIGHT */
[dir="ltr"] .modal .modal-header .btn-close,
html[dir="ltr"] .modal .modal-header .btn-close,
html[dir="ltr"] #contactRequestModal .modal-header .btn-close,
html[dir="ltr"] #profileQuickModal .modal-header .btn-close,
html[dir="ltr"] #blockUserModal .modal-header .btn-close,
html[dir="ltr"] #reportUserModal .modal-header .btn-close {
    right: 1rem !important;
    left: auto !important;
}

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

/* Fix for button text visibility */
.btn.btn-success .fa-plus + span {
    display: inline;
}

@media (max-width: 991px) {
    .btn.btn-success .fa-plus + span {
        display: none;
    }
}

/* Ensure SweetAlert modals appear above global loader */
.swal2-container {
    z-index: 10000 !important;
}

.swal2-popup {
    z-index: 10001 !important;
}

/* Hide global loader when SweetAlert is open */
body:has(.swal2-container) .global-loader,
.swal2-container ~ .global-loader {
    display: none !important;
}

/* Ensure SweetAlert inputs and textareas are fully interactive */
.swal2-popup textarea,
.swal2-popup input,
.swal2-popup select {
    pointer-events: auto !important;
    user-select: auto !important;
    touch-action: auto !important;
    -webkit-user-select: auto !important;
    -moz-user-select: auto !important;
    -ms-user-select: auto !important;
}

.swal2-html-container {
    pointer-events: auto !important;
    user-select: auto !important;
}

.swal2-html-container textarea,
.swal2-html-container input,
.swal2-html-container select {
    pointer-events: auto !important;
    user-select: auto !important;
    touch-action: auto !important;
}

/* Navbar collapse - clean layout */
.navbar-collapse {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    overflow: visible !important;
}

.navbar-nav .nav-item .dropdown {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

.navbar-nav .nav-item .nav-link {
    display: flex !important;
    align-items: center !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    min-width: fit-content !important;
    max-width: none !important;
    flex-shrink: 0 !important;
}

/* Ensure language dropdown uses nav-link styling */
#languageDropdown {
    display: flex !important;
    align-items: center !important;
    text-decoration: none !important;
    color: inherit !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    min-width: fit-content !important;
    max-width: none !important;
    flex-shrink: 0 !important;
}

/* Language dropdown hover */
#languageDropdown:hover,
#languageDropdown:focus {
    background-color: rgba(215, 38, 61, 0.08) !important;
    color: var(--primary) !important;
}

/* Profile dropdown - icon only */
#userDropdown {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background-color: transparent !important;
    transition: background-color 0.2s ease !important;
}

/* User dropdown hover */
#userDropdown:hover,
#userDropdown:focus {
    background-color: rgba(0, 0, 0, 0.05) !important;
    transition: background-color 0.2s ease !important;
}

#userDropdown i {
    margin: 0 !important;
    color: var(--primary) !important;
}

/* Profile dropdown menu - show email inside */
#userDropdown + .dropdown-menu .border-bottom {
    padding: 0.75rem 1rem !important;
}

/* User Profile Dropdown - Wide enough for full labels and email (no truncation) */
.user-profile-dropdown {
    min-width: 320px !important;
    max-width: min(420px, 95vw) !important;
    width: max-content !important;
    padding: 0.5rem 0 !important;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.05) !important;
    border-radius: 0.5rem !important;
    margin-top: 0.5rem !important;
}

.user-profile-dropdown .dropdown-item {
    padding: 0.75rem 1.25rem !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
    display: flex !important;
    align-items: center !important;
    min-width: 0 !important;
    gap: 0.75rem !important;
    transition: all 0.15s ease !important;
    border-radius: 0.375rem !important;
    margin: 0.125rem 0.5rem !important;
    position: relative !important;
}

.user-profile-dropdown .dropdown-item:hover,
.user-profile-dropdown .dropdown-item:focus {
    background-color: var(--bs-primary) !important;
    color: white !important;
    transform: translateX(2px) !important;
    padding-left: 1.5rem !important;
}

.user-profile-dropdown .dropdown-item:hover i,
.user-profile-dropdown .dropdown-item:focus i {
    color: white !important;
    transform: scale(1.1) !important;
}

.user-profile-dropdown .dropdown-item.active {
    background-color: var(--bs-primary) !important;
    color: white !important;
    font-weight: 600 !important;
}

.user-profile-dropdown .dropdown-item.active i {
    color: white !important;
}

.user-profile-dropdown .dropdown-item span {
    overflow: visible !important;
    text-overflow: unset !important;
    white-space: normal !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: block !important;
    line-height: 1.4 !important;
    word-break: break-word !important;
}

/* Add tooltip on hover for truncated text */
.user-profile-dropdown .dropdown-item span[title] {
    cursor: help !important;
}

.user-profile-dropdown .dropdown-item i {
    flex-shrink: 0 !important;
    width: 1.25rem !important;
    min-width: 1.25rem !important;
    text-align: center !important;
    font-size: 1rem !important;
    transition: transform 0.15s ease, color 0.15s ease !important;
    color: var(--bs-body-color) !important;
}

.user-profile-dropdown .dropdown-item-text {
    padding: 0.75rem 1.25rem !important;
    min-width: 0 !important;
    margin: 0.125rem 0.5rem !important;
    border-radius: 0.375rem !important;
}

.user-profile-dropdown .dropdown-item-text .d-flex {
    min-width: 0 !important;
    gap: 0.5rem !important;
}

.user-profile-dropdown .dropdown-item-text span {
    overflow: visible !important;
    text-overflow: unset !important;
    white-space: normal !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

/* Ensure user info section doesn't overflow - allow full name/email to show */
.user-profile-dropdown .border-bottom {
    min-width: 0 !important;
    padding: 0.875rem 1.25rem !important;
    margin-bottom: 0.25rem !important;
}

.user-profile-dropdown .border-bottom .flex-grow-1 {
    min-width: 0 !important;
    overflow: visible !important;
}

.user-profile-dropdown .border-bottom .flex-grow-1 .text-truncate,
.user-profile-dropdown .border-bottom .flex-grow-1 .fw-bold,
.user-profile-dropdown .border-bottom .flex-grow-1 .text-muted {
    overflow: visible !important;
    text-overflow: unset !important;
    white-space: normal !important;
}

.user-profile-dropdown .border-bottom .fw-bold {
    font-size: 0.9375rem !important;
    line-height: 1.4 !important;
}

.user-profile-dropdown .border-bottom .text-muted {
    font-size: 0.8125rem !important;
    line-height: 1.3 !important;
    margin-top: 0.25rem !important;
}

/* RTL support for profile dropdown */
[dir="rtl"] .user-profile-dropdown {
    text-align: right !important;
}

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

[dir="rtl"] .user-profile-dropdown .dropdown-item i {
    margin-left: 0.5rem !important;
    margin-right: 0 !important;
}

/* Enhanced UX for profile dropdown */
.user-profile-dropdown .dropdown-item:focus-visible {
    outline: 2px solid var(--bs-primary) !important;
    outline-offset: -2px !important;
}

/* Smooth transitions */
.user-profile-dropdown .dropdown-item,
.user-profile-dropdown .dropdown-item i,
.user-profile-dropdown .dropdown-item span {
    transition: all 0.15s ease !important;
}

/* Better spacing for dividers */
.user-profile-dropdown .dropdown-divider {
    margin: 0.5rem 0 !important;
    opacity: 0.3 !important;
}

/* Status toggle section styling */
.user-profile-dropdown .dropdown-item-text {
    background-color: transparent !important;
    transition: background-color 0.15s ease !important;
}

.user-profile-dropdown .dropdown-item-text:hover {
    background-color: rgba(var(--bs-primary-rgb), 0.1) !important;
}

/* Dark mode support */
[data-theme="dark"] .user-profile-dropdown {
    background-color: var(--bs-dark) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

[data-theme="dark"] .user-profile-dropdown .dropdown-item {
    color: var(--bs-light) !important;
}

[data-theme="dark"] .user-profile-dropdown .dropdown-item:hover,
[data-theme="dark"] .user-profile-dropdown .dropdown-item:focus {
    background-color: var(--bs-primary) !important;
    color: white !important;
}

[data-theme="dark"] .user-profile-dropdown .border-bottom {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

[data-theme="dark"] .user-profile-dropdown .dropdown-divider {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

/* Fix navbar overflow - NO SCROLL, use responsive solutions instead */
.navbar .container-fluid {
    overflow: visible !important; /* No scroll - dropdowns need to escape */
    -webkit-overflow-scrolling: auto;
    /* Remove scrollbar styles since we're not scrolling */
}

/* Ensure navbar nav items can wrap on very small screens */
.navbar-nav {
    flex-wrap: wrap !important; /* Allow wrapping instead of scroll */
    gap: 0.25rem !important; /* Reduce gap to fit more items */
}

/* On larger screens, prevent wrapping */
@media (min-width: 992px) {
    .navbar-nav {
        flex-wrap: nowrap !important;
    }
}

/* Reduce padding on smaller screens to fit more items */
@media (max-width: 1200px) {
    .navbar-nav .nav-link {
        padding: 0.5rem 0.75rem !important;
        font-size: 0.9rem !important;
    }
}

@media (max-width: 992px) {
    .navbar-nav .nav-link {
        padding: 0.5rem 0.65rem !important;
        font-size: 0.85rem !important;
    }
    
    /* Hide text on very small screens, show only icons */
    .navbar-nav .nav-link span:not(.badge) {
        display: none !important;
    }
    
    .navbar-nav .nav-link i {
        margin: 0 !important;
    }
}

/* Ensure dropdowns don't overflow navbar but can expand outside */
.navbar-nav .nav-item {
    position: relative !important; /* For dropdown positioning */
    flex-shrink: 0 !important;
    overflow: visible !important;
    clip-path: none !important;
}

.navbar-nav .nav-item .dropdown-menu {
    position: absolute !important;
    z-index: 9999 !important; /* Very high z-index */
    min-width: 180px !important;
    margin-top: 0.125rem !important;
    /* Ensure dropdown is not clipped */
    will-change: transform;
    transform-origin: top;
    clip-path: none !important;
}

/* Ensure dropdowns can expand outside navbar */
.navbar-nav .nav-item.dropdown {
    position: relative !important; /* Keep relative for proper positioning */
    overflow: visible !important;
    clip-path: none !important;
}

.navbar-nav .nav-item.dropdown .dropdown {
    overflow: visible !important;
    clip-path: none !important;
}

/* RTL/LTR dropdown positioning - ensure proper alignment */
[dir="rtl"] .navbar-nav .nav-item .dropdown-menu.dropdown-menu-end {
    right: auto !important;
    left: 0 !important;
}

[dir="ltr"] .navbar-nav .nav-item .dropdown-menu.dropdown-menu-end {
    right: 0 !important;
    left: auto !important;
}

/* Prevent dropdown overlap - ensure proper z-index stacking */
.navbar-nav.ms-auto .nav-item.dropdown .dropdown-menu {
    z-index: 9999 !important; /* Very high for right-side dropdowns */
}

.navbar-nav.me-auto .nav-item.dropdown .dropdown-menu {
    z-index: 9999 !important; /* Very high z-index */
}

/* Ensure dropdowns don't get cut off */
.navbar-nav .nav-item.dropdown {
    overflow: visible !important;
}

.navbar-nav .nav-item .dropdown {
    overflow: visible !important;
}

/* Fix dropdown menus opening inside navbar scroll - position them outside */
.navbar {
    overflow: visible !important;
    position: relative !important;
    /* Prevent clipping */
    clip-path: none !important;
    contain: none !important;
}

.navbar .container-fluid {
    overflow: visible !important; /* NO SCROLL - dropdowns need to escape */
    position: relative !important;
    /* Prevent dropdowns from being clipped */
    clip-path: none !important;
    contain: layout style !important; /* Allow dropdowns to escape */
}

.navbar-nav {
    overflow: visible !important;
    position: relative !important;
    clip-path: none !important;
}

.navbar-nav .nav-item {
    overflow: visible !important;
    position: relative !important;
    clip-path: none !important;
}

.navbar-nav .nav-item.dropdown {
    overflow: visible !important;
    position: relative !important;
    clip-path: none !important;
}

/* Ensure dropdowns render outside navbar container - override Bootstrap defaults */
.navbar .dropdown-menu {
    position: absolute !important;
    z-index: 9999 !important; /* Very high z-index to ensure it's above everything */
    margin-top: 0.125rem !important;
    /* Ensure dropdown is not clipped */
    will-change: transform;
    transform-origin: top;
    clip-path: none !important;
    contain: none !important;
    isolation: isolate !important;
    /* Force rendering outside scroll container */
    transform: translateZ(0); /* Create new stacking context */
}

/* Language dropdown and admin dropdown should render outside navbar */
.navbar-nav.ms-auto .nav-item.dropdown .dropdown-menu {
    position: absolute !important;
    z-index: 9999 !important;
    right: 0 !important;
    left: auto !important;
}

[dir="rtl"] .navbar-nav.ms-auto .nav-item.dropdown .dropdown-menu {
    right: auto !important;
    left: 0 !important;
}

/* Ensure header doesn't clip dropdowns */
header.container-lg {
    overflow: visible !important;
    z-index: 1000 !important;
    position: relative !important;
    clip-path: none !important;
    contain: none !important;
}

/* Prevent any parent from clipping dropdowns */
.navbar-collapse {
    overflow: visible !important;
    clip-path: none !important;
    contain: none !important;
}

/* Ensure dropdowns are always visible and not clipped */
.navbar .dropdown-menu.show {
    position: fixed !important; /* Use fixed to escape all containers */
    z-index: 9999 !important;
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
}

/* Responsive adjustments - maintain consistent spacing */
@media (max-width: 1200px) {
    .navbar-nav {
        gap: 1rem !important;
    }
    
    .navbar-nav .nav-link {
        padding: 0.5rem 0.85rem !important;
        font-size: 0.9rem !important;
    }
}

@media (max-width: 992px) {
    .navbar-nav {
        gap: 0.75rem !important;
    }
    
    /* Don't hide text on mobile - show all menu items with text */
    /* Removed: .navbar-nav.me-auto .nav-item:nth-child(n+3) .nav-link span:not(.badge) { display: none !important; } */
}

@media (max-width: 991.98px) {
    /* Ensure navbar starts collapsed on mobile - Bootstrap handles this, but ensure it's hidden by default */
    .navbar-collapse:not(.show) {
        display: none !important;
    }
    
    .navbar-collapse {
        flex-direction: column !important;
        align-items: stretch !important;
        overflow: visible !important;
    }
    
    /* When expanded, ensure proper display */
    .navbar-collapse.show {
        display: flex !important;
    }
    
    .navbar-nav.me-auto,
    .navbar-nav.ms-auto {
        max-width: 100% !important;
        width: 100% !important;
    }
    
    .navbar-nav {
        width: 100% !important;
        flex-direction: column !important;
        gap: 0.5rem !important;
        flex-wrap: nowrap !important;
        overflow: visible !important;
    }
    
    .navbar-nav .nav-item {
        width: 100% !important;
        max-width: 100% !important;
        position: relative !important;
    }
    
    .navbar-nav .nav-item .dropdown {
        width: 100% !important;
    }
    
    .navbar-nav .nav-link {
        padding: 0.75rem 1rem !important;
        width: 100% !important;
        justify-content: flex-start !important;
    }
    
    .navbar-nav .nav-link span:not(.badge) {
        display: inline !important;
    }
    
    /* Ensure all menu items are visible on mobile - no text hiding */
    .navbar-nav .nav-link {
        display: flex !important;
        align-items: center !important;
    }
    
    .navbar-nav .nav-link i {
        margin-right: 0.5rem !important;
    }
    
    #userDropdown span {
        max-width: 100% !important;
    }
    
    /* Full-width dropdowns on mobile */
    .navbar-nav .nav-item .dropdown-menu {
        position: static !important;
        width: 100% !important;
        margin-top: 0.5rem !important;
        box-shadow: none !important;
        border: 1px solid var(--theme-border, var(--border)) !important;
        background: var(--theme-bg-primary);
        color: var(--theme-text-primary);
    }
}

/* Tablet and small mobile optimization */
@media (max-width: 768px) {
    .navbar {
        padding-inline: 0.75rem !important;
    }
    
    .navbar .container-fluid {
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
    }
    
    .navbar-nav .nav-link {
        padding: 0.65rem 0.85rem !important;
        font-size: 0.9rem !important;
    }
    
    .navbar-nav .nav-link span.d-none {
        display: none !important;
    }
    
    .navbar-nav .nav-link i {
        margin: 0 !important;
    }
    
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   FINAL OVERRIDE: Bootstrap Dropdown Hover - Red Background
   Must override Bootstrap's var(--bs-dropdown-link-hover-bg)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Maximum specificity override for dropdown items hover - RED BACKGROUND for ALL items */
html body .dropdown-menu .dropdown-item:hover,
html body .dropdown-menu .dropdown-item:focus,
html body .dropdown-menu.show .dropdown-item:hover,
html body .dropdown-menu.show .dropdown-item:focus,
html body .dropdown-menu[aria-labelledby="languageDropdown"] .dropdown-item:hover,
html body .dropdown-menu[aria-labelledby="languageDropdown"] .dropdown-item:focus,
html body .dropdown-menu .dropdown-item.active:hover,
html body .dropdown-menu .dropdown-item.active:focus,
html body .dropdown-menu.show .dropdown-item.active:hover,
html body .dropdown-menu.show .dropdown-item.active:focus,
html body a.dropdown-item:hover,
html body a.dropdown-item:focus,
html body a.dropdown-item.active:hover,
html body a.dropdown-item.active:focus,
html body .dropdown-item:hover[style*="background"],
html body .dropdown-item:focus[style*="background"],
html body .dropdown-item:hover[style*="transparent"],
html body .dropdown-item:focus[style*="transparent"],
html body .dropdown-item:hover[style*="background-color"],
html body .dropdown-item:focus[style*="background-color"],
html body .dropdown-item:hover[style*="rgb(233, 236, 239)"],
html body .dropdown-item:focus[style*="rgb(233, 236, 239)"],
html body .dropdown-item[data-hover-styled]:hover,
html body .dropdown-item[data-hover-styled]:focus,
html body .dropdown-item[data-hover-styled]:hover[style],
html body .dropdown-item[data-hover-styled]:focus[style] {
    background-color: rgba(215, 38, 61, 0.08) !important; /* RED - Override Bootstrap's var(--bs-dropdown-link-hover-bg) and inline styles */
    color: var(--primary) !important; /* Override Bootstrap's var(--bs-dropdown-link-hover-color) and inline styles */
    background: rgba(215, 38, 61, 0.08) !important; /* Also override 'background' shorthand */
}

/* Override inline styles on icons inside dropdown items */
html body .dropdown-item:hover i[style],
html body .dropdown-item:focus i[style],
html body .dropdown-item:hover i[style*="color"],
html body .dropdown-item:focus i[style*="color"],
html body .dropdown-item[data-hover-styled]:hover i,
html body .dropdown-item[data-hover-styled]:focus i {
    color: var(--primary) !important; /* Override inline icon color on hover */
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   Light Mode: Force dark text for non-active dropdown items
   Override inline styles that set light colors (rgb(233, 236, 239))
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Maximum specificity - Override inline color styles for non-active items in light mode */
html body .dropdown-menu .dropdown-item:not(.active):not(:hover):not(:focus),
html body .dropdown-menu.show .dropdown-item:not(.active):not(:hover):not(:focus),
html body .dropdown-menu[aria-labelledby="languageDropdown"] .dropdown-item:not(.active):not(:hover):not(:focus),
html body a.dropdown-item:not(.active):not(:hover):not(:focus) {
    color: var(--theme-text-primary) !important; /* Dark text for good contrast in light mode */
    background-color: transparent !important;
}

/* Override inline styles that set light colors */
html body .dropdown-menu .dropdown-item:not(.active)[style*="color"]:not(:hover):not(:focus),
html body .dropdown-menu .dropdown-item:not(.active)[style*="rgb(233, 236, 239)"]:not(:hover):not(:focus),
html body .dropdown-menu .dropdown-item:not(.active)[style*="E9ECEF"]:not(:hover):not(:focus),
html body .dropdown-menu.show .dropdown-item:not(.active)[style*="color"]:not(:hover):not(:focus),
html body .dropdown-menu.show .dropdown-item:not(.active)[style*="rgb(233, 236, 239)"]:not(:hover):not(:focus),
html body .dropdown-menu.show .dropdown-item:not(.active)[style*="E9ECEF"]:not(:hover):not(:focus),
html body a.dropdown-item:not(.active)[style*="color"]:not(:hover):not(:focus),
html body a.dropdown-item:not(.active)[style*="rgb(233, 236, 239)"]:not(:hover):not(:focus),
html body a.dropdown-item:not(.active)[style*="E9ECEF"]:not(:hover):not(:focus) {
    color: var(--theme-text-primary) !important; /* Force dark text - override inline !important */
}

/* Override icon colors in non-active items */
html body .dropdown-menu .dropdown-item:not(.active) i[style*="color"]:not(:hover):not(:focus),
html body .dropdown-menu .dropdown-item:not(.active) i[style*="rgb(233, 236, 239)"]:not(:hover):not(:focus),
html body .dropdown-menu .dropdown-item:not(.active) i[style*="E9ECEF"]:not(:hover):not(:focus),
html body .dropdown-menu.show .dropdown-item:not(.active) i[style*="color"]:not(:hover):not(:focus),
html body .dropdown-menu.show .dropdown-item:not(.active) i[style*="rgb(233, 236, 239)"]:not(:hover):not(:focus),
html body .dropdown-menu.show .dropdown-item:not(.active) i[style*="E9ECEF"]:not(:hover):not(:focus),
html body a.dropdown-item:not(.active) i[style*="color"]:not(:hover):not(:focus),
html body a.dropdown-item:not(.active) i[style*="rgb(233, 236, 239)"]:not(:hover):not(:focus),
html body a.dropdown-item:not(.active) i[style*="E9ECEF"]:not(:hover):not(:focus) {
    color: var(--theme-text-primary) !important; /* Force dark icon color - override inline !important */
}

/* Dark mode - Maximum specificity override for ALL items */
html body[data-theme="dark"] .dropdown-menu .dropdown-item:hover,
html body[data-theme="dark"] .dropdown-menu .dropdown-item:focus,
html body[data-theme="dark"] .dropdown-menu.show .dropdown-item:hover,
html body[data-theme="dark"] .dropdown-menu.show .dropdown-item:focus,
html body[data-theme="dark"] .dropdown-menu[aria-labelledby="languageDropdown"] .dropdown-item:hover,
html body[data-theme="dark"] .dropdown-menu[aria-labelledby="languageDropdown"] .dropdown-item:focus,
html body[data-theme="dark"] .dropdown-menu .dropdown-item.active:hover,
html body[data-theme="dark"] .dropdown-menu .dropdown-item.active:focus,
html body[data-theme="dark"] .dropdown-menu.show .dropdown-item.active:hover,
html body[data-theme="dark"] .dropdown-menu.show .dropdown-item.active:focus,
html body[data-theme="dark"] a.dropdown-item:hover,
html body[data-theme="dark"] a.dropdown-item:focus,
html body[data-theme="dark"] a.dropdown-item.active:hover,
html body[data-theme="dark"] a.dropdown-item.active:focus,
html body[data-theme="dark"] .dropdown-item:hover[style*="background"],
html body[data-theme="dark"] .dropdown-item:focus[style*="background"],
html body[data-theme="dark"] .dropdown-item:hover[style*="transparent"],
html body[data-theme="dark"] .dropdown-item:focus[style*="transparent"],
html body[data-theme="dark"] .dropdown-item:hover[style*="background-color"],
html body[data-theme="dark"] .dropdown-item:focus[style*="background-color"],
html body[data-theme="dark"] .dropdown-item:hover[style*="rgb(233, 236, 239)"],
html body[data-theme="dark"] .dropdown-item:focus[style*="rgb(233, 236, 239)"],
html body[data-theme="dark"] .dropdown-item[data-hover-styled]:hover,
html body[data-theme="dark"] .dropdown-item[data-hover-styled]:focus,
html body[data-theme="dark"] .dropdown-item[data-hover-styled]:hover[style],
html body[data-theme="dark"] .dropdown-item[data-hover-styled]:focus[style] {
    background-color: rgba(215, 38, 61, 0.08) !important; /* RED - Override Bootstrap's var(--bs-dropdown-link-hover-bg) and inline styles */
    color: var(--primary) !important; /* Override Bootstrap's var(--bs-dropdown-link-hover-color) and inline styles */
    background: rgba(215, 38, 61, 0.08) !important; /* Also override 'background' shorthand */
}

/* Override inline styles on icons inside dropdown items - Dark mode */
html body[data-theme="dark"] .dropdown-item:hover i[style],
html body[data-theme="dark"] .dropdown-item:focus i[style],
html body[data-theme="dark"] .dropdown-item:hover i[style*="color"],
html body[data-theme="dark"] .dropdown-item:focus i[style*="color"],
html body[data-theme="dark"] .dropdown-item[data-hover-styled]:hover i,
html body[data-theme="dark"] .dropdown-item[data-hover-styled]:focus i {
    color: var(--primary) !important; /* Override inline icon color on hover */
}

/* â•â•â•â•â•â• Navbar Navigation Fix - Allow wrapping when items exceed available width â•â•â•â•â•â• */
/* Only allow wrapping on navbar-nav - keep original width behavior */
.navbar-nav {
    flex-wrap: wrap !important; /* Allow items to wrap to next line when needed */
    gap: 0.25rem 0.5rem !important; /* Small gap between items */
}

.navbar-nav .nav-item {
    flex-shrink: 0 !important; /* Prevent items from shrinking */
}

.navbar-nav .nav-link {
    white-space: nowrap !important; /* Prevent text wrapping inside nav links */
}

/* â•â•â•â•â•â• Navbar Overflow "More" Dropdown - Enhanced â•â•â•â•â•â• */
#navbarMoreDropdown {
    margin-left: 0.5rem;
    transition: opacity 0.2s ease;
    position: relative;
}

#navbarMoreDropdown::before {
    content: '';
    position: absolute;
    left: -0.5rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2px;
    height: 60%;
    background: linear-gradient(to bottom, transparent, var(--bs-border-color), transparent);
    opacity: 0.5;
}

#navbarMoreButton {
    min-width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: all 0.2s ease;
}

#navbarMoreButton:hover {
    transform: scale(1.05);
}

.navbar-more-badge {
    font-size: 0.65rem;
    padding: 0.15rem 0.4rem;
    border-radius: 10px;
    font-weight: 600;
    animation: badgePulse 0.3s ease;
}

@keyframes badgePulse {
    0% {
        transform: scale(0.8);
        opacity: 0;
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

#navbarMoreMenu {
    min-width: 260px;
    max-width: 350px;
    max-height: 500px;
    overflow-y: auto;
    overflow-x: hidden;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(0, 0, 0, 0.1);
    margin-top: 0.5rem;
    padding: 0.5rem 0;
    animation: dropdownFadeIn 0.2s ease;
    background: var(--bs-body-bg);
}

@keyframes dropdownFadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* More menu header */
.navbar-more-header {
    padding: 0.75rem 1rem 0.5rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    margin-bottom: 0.25rem;
}

.navbar-more-header-content h6 {
    margin: 0;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--bs-body-color);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.navbar-more-header-content h6::before {
    content: 'â‹¯';
    font-size: 1.2rem;
    color: var(--bs-primary);
}

.navbar-more-search-container {
    margin-top: 0.5rem;
}

.navbar-more-search {
    border-radius: 0.375rem;
    border: 1px solid var(--bs-border-color);
    padding: 0.375rem 0.75rem;
    font-size: 0.875rem;
}

.navbar-more-search:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
}

/* More menu footer */
.navbar-more-footer {
    padding: 0.5rem 1rem;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    margin-top: 0.25rem;
    text-align: center;
}

.navbar-more-count {
    font-size: 0.75rem;
    opacity: 0.7;
}

#navbarMoreMenu .dropdown-item {
    padding: 0.625rem 1.25rem;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: all 0.15s ease;
    border-radius: 0.375rem;
    margin: 0.125rem 0.5rem;
    width: auto;
    position: relative;
}

#navbarMoreMenu .dropdown-item i {
    width: 1.25rem;
    text-align: center;
    font-size: 1rem;
    transition: transform 0.15s ease;
}

#navbarMoreMenu .dropdown-item:hover,
#navbarMoreMenu .dropdown-item:focus {
    background-color: var(--bs-primary);
    color: white;
    transform: translateX(4px);
    padding-left: 1.5rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

#navbarMoreMenu .dropdown-item:focus {
    outline: 2px solid var(--bs-primary);
    outline-offset: -2px;
}

#navbarMoreMenu .dropdown-item:hover i,
#navbarMoreMenu .dropdown-item:focus i {
    color: white;
    transform: scale(1.1);
}

#navbarMoreMenu .dropdown-item.active {
    background-color: var(--bs-primary);
    color: white;
    font-weight: 600;
}

#navbarMoreMenu .dropdown-item.active i {
    color: white;
}

/* Smooth transitions for hidden items */
.navbar-item-hidden {
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

/* Ensure navbar doesn't wrap when overflow handler is active */
.navbar-collapse:not(.collapsing) .navbar-nav:first-child {
    flex-wrap: nowrap;
    overflow: hidden;
}

/* Custom scrollbar for More menu */
#navbarMoreMenu::-webkit-scrollbar {
    width: 6px;
}

#navbarMoreMenu::-webkit-scrollbar-track {
    background: transparent;
}

#navbarMoreMenu::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 3px;
}

#navbarMoreMenu::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.3);
}

/* Responsive: Show "More" button on smaller screens if needed */
@media (max-width: 991.98px) {
    #navbarMoreDropdown {
        display: none !important; /* Hide on mobile - use Bootstrap collapse instead */
    }
}

/* Dark mode support */
[data-theme="dark"] #navbarMoreMenu {
    background-color: var(--bs-dark);
    border-color: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] #navbarMoreMenu .dropdown-item {
    color: var(--bs-light);
}

[data-theme="dark"] #navbarMoreMenu .dropdown-item:hover,
[data-theme="dark"] #navbarMoreMenu .dropdown-item:focus {
    background-color: var(--bs-primary);
    color: white;
}

[data-theme="dark"] #navbarMoreMenu::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.2);
}

[data-theme="dark"] #navbarMoreMenu::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.3);
}

/* Enhanced animations */
@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.navbar-more-item {
    animation: slideInRight 0.2s ease forwards;
}

/* Tooltip for More button */
.navbar-more-btn[title] {
    cursor: help;
}

/* Loading state */
.navbar-more-loading {
    opacity: 0.6;
    pointer-events: none;
}

/* Empty state */
.navbar-more-empty {
    padding: 2rem 1rem;
    text-align: center;
    color: var(--bs-secondary);
    font-size: 0.875rem;
}

.navbar-more-empty::before {
    content: 'ðŸ”';
    display: block;
    font-size: 2rem;
    margin-bottom: 0.5rem;
    opacity: 0.5;
}

/* Highlight search matches */
.navbar-more-item.highlight {
    background-color: rgba(var(--bs-warning-rgb), 0.1);
    border-left: 3px solid var(--bs-warning);
}

/* Smooth scroll for keyboard navigation */
.navbar-more-item:focus-visible {
    scroll-margin: 0.5rem;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   TASK 0: SPA-Like Navigation Styles
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* SPA Progress Bar - Top loading indicator */
.spa-progress-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: transparent;
    z-index: 99999;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.spa-progress-bar::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, 
        var(--bs-primary, #0d6efd) 0%, 
        var(--bs-info, #0dcaf0) 50%, 
        var(--bs-primary, #0d6efd) 100%);
    box-shadow: 0 0 10px var(--bs-primary, #0d6efd), 0 0 5px var(--bs-primary, #0d6efd);
    transition: width 0.3s ease;
}

/* Progress bar states */
.spa-progress-bar.htmx-request::after,
.spa-progress-bar.loading::after {
    width: 70%;
    animation: spa-progress-loading 2s ease-in-out infinite;
}

.spa-progress-bar.htmx-swapping::after {
    width: 85%;
    transition: width 0.2s ease;
}

.spa-progress-bar.htmx-settling::after,
.spa-progress-bar.done::after {
    width: 100%;
    transition: width 0.2s ease;
}

.spa-progress-bar.done {
    animation: spa-progress-fadeout 0.3s ease forwards;
}

@keyframes spa-progress-fadeout {
    0% { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes spa-progress-loading {
    0% { width: 10%; }
    50% { width: 50%; }
    100% { width: 70%; }
}

/* Main content transition during SPA navigation - disabled to prevent flash */
#main-content {
    /* transition removed to prevent visual flash during SPA navigation */
}

#main-content.htmx-swapping {
    opacity: 0.6;
}

#main-content.htmx-settling {
    opacity: 1;
}

/* Scroll to Top Button */
.scroll-to-top-btn {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--bs-primary, #0d6efd);
    color: #ffffff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background-color 0.2s ease;
    z-index: 9999;
}

.scroll-to-top-btn.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.scroll-to-top-btn:hover {
    background: var(--bs-primary-hover, #0b5ed7);
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}

.scroll-to-top-btn:focus {
    outline: 3px solid var(--bs-primary, #0d6efd);
    outline-offset: 3px;
}

.scroll-to-top-btn:active {
    transform: translateY(-1px);
}

/* RTL support for scroll to top */
[dir="rtl"] .scroll-to-top-btn {
    right: auto;
    left: 30px;
}

/* Mobile adjustments */
@media (max-width: 768px) {
    .scroll-to-top-btn {
        width: 44px;
        height: 44px;
        bottom: 20px;
        right: 20px;
        font-size: 1rem;
    }
    
    [dir="rtl"] .scroll-to-top-btn {
        right: auto;
        left: 20px;
    }
}

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    .spa-progress-bar::after,
    .scroll-to-top-btn,
    #main-content {
        transition: none;
        animation: none;
    }
    
    .spa-progress-bar.htmx-request::after,
    .spa-progress-bar.loading::after {
        animation: none;
        width: 50%;
    }
}

/* â•â•â•â•â•â• Phone Number Management - Step Indicator â•â•â•â•â•â• */
.phone-verification-steps {
    margin: 2rem 0;
}

.step-indicator {
    position: relative;
    max-width: 600px;
    margin: 0 auto;
}

.step-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    position: relative;
    z-index: 2;
}

.step-circle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--bs-gray-300, #dee2e6);
    color: var(--bs-gray-600, #6c757d);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 1.1rem;
    transition: all 0.3s ease;
    border: 3px solid var(--bs-gray-300, #dee2e6);
}

.step-item.active .step-circle {
    background-color: var(--bs-primary, #0d6efd);
    color: white;
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 4px rgba(13, 110, 253, 0.1);
}

.step-item.completed .step-circle {
    background-color: var(--bs-success, #198754);
    color: white;
    border-color: var(--bs-success, #198754);
}

.step-label {
    margin-top: 0.5rem;
    font-size: 0.875rem;
    color: var(--bs-gray-600, #6c757d);
    text-align: center;
    font-weight: 500;
}

.step-item.active .step-label {
    color: var(--bs-primary, #0d6efd);
    font-weight: 600;
}

.step-item.completed .step-label {
    color: var(--bs-success, #198754);
}

.step-line {
    position: absolute;
    top: 20px;
    left: 0;
    right: 0;
    height: 2px;
    background-color: var(--bs-gray-300, #dee2e6);
    z-index: 1;
}

.step-item.active ~ .step-item .step-line,
.step-item.completed ~ .step-item .step-line {
    background-color: var(--bs-success, #198754);
}

.verification-step {
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .step-circle,
    .verification-step {
        transition: none;
        animation: none;
    }
}

/* RTL support */
[dir="rtl"] .step-line {
    left: auto;
    right: 0;
}

/* Mobile adjustments */
@media (max-width: 576px) {
    .step-circle {
        width: 32px;
        height: 32px;
        font-size: 0.9rem;
    }
    
    .step-label {
        font-size: 0.75rem;
    }
    
    .step-line {
        top: 16px;
    }
}

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€ Profile Loading Overlay â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.profile-loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(var(--bs-body-bg-rgb, 33, 37, 41), 0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    border-radius: 0.5rem;
    backdrop-filter: blur(2px);
    animation: fadeInOverlay 0.2s ease;
}

.profile-loading-overlay .loading-content {
    text-align: center;
    padding: 2rem;
}

.profile-loading-overlay .loading-text {
    color: var(--bs-body-color, #fff);
    font-size: 0.9rem;
    opacity: 0.8;
}

@keyframes fadeInOverlay {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* â”€â”€â”€ Skin color picker (compact swatches + tooltip) â”€â”€â”€ */
.skin-color-picker-wrap {
    position: relative;
}

.skin-color-picker-wrap select.skin-color-select {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
    clip: rect(0,0,0,0);
}

.skin-color-picker {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.skin-color-swatch {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    flex-shrink: 0;
}

.skin-color-swatch:hover {
    transform: scale(1.12);
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
}

.skin-color-swatch.selected {
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 2px var(--bs-body-bg, #fff), 0 0 0 4px var(--bs-primary, #0d6efd);
}

.skin-color-swatch:focus-visible {
    outline: 2px solid var(--bs-primary, #0d6efd);
    outline-offset: 2px;
}

/* Profile grid: status tooltip â€” readable layout, newlines shown as line breaks */
.profile-status-tooltip .tooltip-inner {
    max-width: 320px;
    line-height: 1.6;
    text-align: right;
    white-space: pre-line;
}
