/* Variables */
:root {
    --primary-color: #FF385C;
    --secondary-color: #00A699;
    --accent-color: #FF385C;
    --text-color: #2D3748;
    --text-light: #718096;
    --bg-light: #F7FAFC;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.12);
    --shadow-md: 0 4px 6px rgba(0,0,0,0.1);
    --shadow-lg: 0 10px 15px rgba(0,0,0,0.1);
    --shadow-xl: 0 24px 60px rgba(2, 6, 23, 0.22);
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --transition-fast: 0.2s ease;
    --transition-base: 0.3s ease;
    --transition-slow: 0.5s ease;
    --error-color: #DC2626;
    --success-color: #2ecc71;
    --primary-dark: #e6324f;
    --secondary-dark: #008775;
    /* Admin utilitaires */
    --admin-offset: 70px; /* marge sous la navbar fixe admin */
}

html[data-theme="dark"] {
    --text-color: #E5E7EB;
    --text-light: #9CA3AF;
    --bg-light: #0B1220;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.5);
    --shadow-md: 0 4px 6px rgba(0,0,0,0.5);
    --shadow-lg: 0 10px 15px rgba(0,0,0,0.6);
}
html[data-theme="dark"] body {
    background-color: var(--bg-light);
    color: var(--text-color);
}
html[data-theme="dark"] .navbar {
    background-color: rgba(17, 24, 39, 0.9);
}
html[data-theme="dark"] .nav-link:hover,
html[data-theme="dark"] .nav-link.active {
    color: var(--primary-color);
    background-color: rgba(255, 56, 92, 0.12);
}
html[data-theme="dark"] .dropdown-menu {
    background: #111827;
    color: var(--text-color);
}
html[data-theme="dark"] .dropdown-item {
    color: var(--text-color);
}
html[data-theme="dark"] .dropdown-item:hover,
html[data-theme="dark"] .dropdown-item.active {
    background-color: rgba(255, 56, 92, 0.14);
    color: var(--primary-color);
}
html[data-theme="dark"] .card,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .table,
html[data-theme="dark"] .message-content.morobnbstyle,
html[data-theme="dark"] .filter-card,
html[data-theme="dark"] .table.morobnbstyle,
html[data-theme="dark"] .hero-search-box {
    background-color: #0B1220;
    color: var(--text-color);
}
html[data-theme="dark"] .table.morobnbstyle thead {
    background-color: rgba(255,56,92,0.10);
}
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .input-group-text,
html[data-theme="dark"] .form-select {
    background-color: #0B1220;
    color: var(--text-color);
    border-color: #334155;
}
html[data-theme="dark"] .alert {
    background-color: #111827;
    color: var(--text-color);
}

/* Thèmes par mode */
.mode-host .navbar { background-color: rgba(34,34,34,0.9); }
.mode-host .navbar .nav-link { color: #f8f9fa; }
.mode-host .navbar .nav-link.active, .mode-host .navbar .nav-link:hover { color: var(--accent-color); }
.mode-host .navbar .brand-text { color: #fff; }
.mode-host .navbar .navbar-toggler { border-color: rgba(255,255,255,0.35); }
.mode-host .navbar .navbar-toggler:focus { box-shadow: 0 0 0 0.2rem rgba(255,255,255,0.18); }
.mode-host .navbar .navbar-toggler-icon { filter: invert(1) grayscale(1) brightness(2); }
@media (min-width: 992px) {
    .mode-host .nav-icons-only .navbar-nav.me-auto,
    .mode-host .nav-icons-only .navbar-nav.align-items-center {
        background: rgba(248, 249, 250, 0.92);
        border-color: rgba(222, 226, 230, 0.90);
        box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
    }
    .mode-host .nav-icons-only .navbar-nav .nav-link { color: rgba(15, 23, 42, 0.92); }
    .mode-host .nav-icons-only .navbar-nav .nav-link:hover { color: var(--primary-color); background: rgba(255, 56, 92, 0.10); }
    .mode-host .nav-icons-only .navbar-nav .nav-link.active { color: var(--primary-color); background: rgba(255, 56, 92, 0.12); }
}
.mode-traveler .navbar { background-color: rgba(255,255,255,0.95); }
.mode-traveler .navbar .nav-link.active { color: var(--accent-color); }
.badge-mode { font-weight: 600; color: var(--accent-color);} 

/* Base Styles */
body {
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--text-color);
    line-height: 1.6;
    background-color: var(--bg-light);
    overflow-x: hidden;
    padding-top: var(--navbar-h, 76px);
}

body.home-page {
    background-color: #ffffff;
}

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

@keyframes slideIn {
    from { transform: translateX(-20px); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

@keyframes scaleIn {
    from { transform: scale(0.95); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

@keyframes priceUpdate {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

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

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

/* Navbar */
.navbar {
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    box-shadow: var(--shadow-sm);
    padding: 1rem 0;
    transition: all var(--transition-base);
    z-index: 9999; /* garder le header au-dessus de tout */
    pointer-events: auto; /* s'assurer que le header capte les clics */
    overflow: visible;
}

.navbar.scrolled {
    background-color: #fff;
    box-shadow: var(--shadow-md);
    padding: 0.55rem 0; /* header compact au scroll */
}

.brand-text {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--text-color);
    transition: color var(--transition-fast);
}

.text-accent {
    color: var(--accent-color);
}

.nav-link {
    font-weight: 500;
    color: var(--text-color);
    padding: 0.5rem 1rem;
    margin: 0 0.2rem;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
}

.nav-link:hover, .nav-link.active {
    color: var(--primary-color);
    background-color: rgba(255, 56, 92, 0.1);
    box-shadow: var(--shadow-sm);
}

.signup-btn {
    background-color: var(--primary-color) !important;
    color: white !important;
    border-radius: var(--radius-sm);
    padding: 0.5rem 1.5rem !important;
    transition: all var(--transition-base);
}

.signup-btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.add-property-btn {
    color: var(--primary-color) !important;
    border: 2px solid var(--primary-color);
    border-radius: var(--radius-sm);
    padding: 0.5rem 1.5rem !important;
    transition: all var(--transition-base);
}

.add-property-btn:hover {
    background-color: var(--primary-color);
    color: white !important;
}

/* Navbar Collapse Animation */
.navbar-collapse {
    transition: transform var(--transition-base);
}

.navbar-collapse.collapsing-in {
    animation: slideIn var(--transition-base);
}

/* User Menu */
.user-menu {
    padding: 0.5rem 1rem;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
}

.dropdown-menu {
    border: none;
    box-shadow: var(--shadow-lg);
    border-radius: var(--radius-sm);
    padding: 0.5rem;
    animation: scaleIn var(--transition-base);
    transform-origin: top right;
    z-index: 2500; /* au-dessus de la navbar et des overlays de page */
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 12rem;
    display: none;
    visibility: hidden;
}

/* Afficher quand Bootstrap ajoute .show */
.dropdown-menu.show { display: block; visibility: visible; }

/* Afficher le menu quand la classe show est présente (fallback sans Bootstrap) */
.dropdown-menu.show {
    display: block;
}

/* S'assurer que le conteneur dropdown crée un contexte de positionnement */
.navbar .dropdown {
    position: relative;
}

.dropdown-item {
    padding: 0.7rem 1rem;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
}

.dropdown-item:hover, .dropdown-item.active {
    background-color: rgba(255, 56, 92, 0.1);
    color: var(--primary-color);
}

/* Alignements et espacements du header */
.moro-header-container { width: 100%; }
@media (min-width: 992px) {
    .moro-header-container { max-width: 1440px; }
}
@media (min-width: 1400px) {
    .moro-header-container { max-width: 1560px; }
}
.navbar .navbar-nav.align-items-center { gap: 0.35rem; }
.navbar .navbar-nav.me-auto > .nav-item { margin-right: 2px; }
.navbar .nav-link .fas { font-size: 1rem; margin-right: 0.35rem; }
.navbar .nav-avatar { width: 26px; height: 26px; max-width: 26px; max-height: 26px; border-radius: 50%; object-fit: cover; display: block; flex: 0 0 auto; }
.navbar .flag-icon { width: 20px; height: 15px; object-fit: cover; border-radius: 2px; vertical-align: text-bottom; }
html[dir="ltr"] .navbar-brand { margin-left: 8px; }
.navbar-brand img { display: block; max-height: 44px; width: auto; height: auto; }
.navbar.scrolled .navbar-brand img { max-height: 36px; }

@media (min-width: 992px) {
    .nav-icons-only .moro-header-container {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
    }
    .nav-icons-only .navbar-brand { justify-self: start; }
    .nav-icons-only .navbar-collapse { justify-self: center; }
    .nav-icons-only .navbar-center-spacer { justify-self: end; }

    .nav-icons-only .navbar-nav.me-auto,
    .nav-icons-only .navbar-nav.align-items-center {
        background: rgba(248, 249, 250, 0.92);
        border: 1px solid rgba(222, 226, 230, 0.9);
        border-radius: 999px;
        padding: 0.2rem;
        box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
    }
    .nav-icons-only .navbar-collapse { gap: 0.6rem; }
    .nav-icons-only .navbar-nav.me-auto { margin-left: 0.75rem; margin-right: 0 !important; }
    .nav-icons-only .navbar-nav.align-items-center { margin-left: 0 !important; }

    .nav-icons-only .nav-link { padding: 0.5rem 0.75rem; display: inline-flex; align-items: center; justify-content: flex-start; gap: 0.4rem; }
    .nav-icons-only .nav-link .nav-label { display: inline; }
    .nav-icons-only .nav-link .fas { margin-right: 0; font-size: 1.05rem; }
    .nav-icons-only .dropdown-toggle::after { display: none; }
    .nav-icons-only .navbar-nav.align-items-center { gap: 0.15rem; }
    .nav-icons-only .navbar-nav.me-auto > .nav-item { margin-right: 0; }

    .nav-icons-only .nav-link { border-radius: 999px; }
    .nav-icons-only .nav-link:hover { background: rgba(13, 110, 253, 0.08); }
    .nav-icons-only .nav-link.active { background: rgba(13, 110, 253, 0.12); }

    .nav-icons-only .nav-account-link { padding-left: 0.55rem; padding-right: 0.75rem; }

    .nav-icons-only .nav-link.nav-icon-only { justify-content: center; padding-left: 0.65rem; padding-right: 0.65rem; }
    .nav-icons-only .nav-link.nav-icon-only .nav-label { display: none; }

    .nav-icons-only .nav-link.nav-icon-only { position: relative; }
    .nav-icons-only .nav-link.nav-icon-only::after {
        content: attr(aria-label);
        position: absolute;
        left: 50%;
        top: calc(100% + 8px);
        transform: translateX(-50%) translateY(-2px);
        padding: 6px 10px;
        font-size: 12px;
        line-height: 1;
        border-radius: 8px;
        background: rgba(33, 37, 41, 0.92);
        color: #fff;
        white-space: nowrap;
        pointer-events: none;
        opacity: 0;
        visibility: hidden;
        transition: opacity 120ms ease, transform 120ms ease, visibility 120ms ease;
        z-index: 1080;
    }
    .nav-icons-only .nav-link.nav-icon-only:hover::after,
    .nav-icons-only .nav-link.nav-icon-only:focus-visible::after {
        opacity: 1;
        visibility: visible;
        transform: translateX(-50%) translateY(0);
    }
}

/* Accessibilité: focus visible */
.nav-link:focus-visible,
.dropdown-item:focus-visible,
.toggle-host:focus-visible,
.navbar-brand:focus-visible {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

/* Toggle Mode Voyageur/Hôte */
.toggle-host {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--primary-color);
    font-weight: 600;
    padding: 0.35rem 0.6rem;
    border-radius: var(--radius-sm);
    transition: background-color var(--transition-fast), color var(--transition-fast);
    cursor: pointer;
}
.toggle-host:hover {
    background-color: rgba(255, 56, 92, 0.1);
}

/* Badge notifications sur l'icône messages */
.nav-link-with-badge { position: relative; }
.badge-notification {
    position: absolute;
    top: 0.05rem;
    right: 0.15rem;
    min-width: 18px;
    height: 18px;
    border-radius: 9px;
    font-size: 11px;
    line-height: 18px;
    padding: 0 5px;
    box-shadow: var(--shadow-sm);
}

.search-pill { position: relative; }
.search-pill .city-clear-btn { border: none; border-left: 1px solid #E2E8F0; background: #fff; color: var(--text-light); }
.search-pill .city-clear-btn:hover { color: var(--primary-color); }
.autocomplete-menu { position: absolute; top: calc(100% + 4px); left: 0; right: 0; background: #fff; border: 1px solid #E2E8F0; border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); z-index: 2500; display: none; max-height: 280px; overflow-y: auto; }
.autocomplete-menu.show { display: block; }
.autocomplete-item { display: flex; align-items: center; justify-content: space-between; padding: 0.6rem 0.8rem; cursor: pointer; transition: background-color var(--transition-fast); }
.autocomplete-item:hover, .autocomplete-item.active { background-color: rgba(255,56,92,0.08); }
.autocomplete-name { font-weight: 600; color: var(--text-color); }
.autocomplete-count { color: var(--text-light); font-size: 0.85rem; }

/* Petit indicateur circulaire pour messages non lus */
.unread-dot {
    width: 10px;
    height: 10px;
    display: inline-block;
    border-radius: 50%;
    background-color: var(--error-color);
    box-shadow: var(--shadow-sm);
}

/* Fallback pour les menus alignés à droite sans Bootstrap */
.dropdown-menu-end { right: 0; left: auto; }

/* Utilitaire accessibilité (équivalent visually-hidden) */
.visually-hidden {
    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;
}

/* Buttons */
.btn {
    padding: 0.75rem 1.5rem;
    border-radius: var(--radius-sm);
    font-weight: 500;
    transition: all var(--transition-base);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border: none;
}

.btn-primary { background-color: var(--accent-color); color: #fff; box-shadow: var(--shadow-sm); }
.btn-primary:hover { background-color: var(--primary-dark); color: #fff; box-shadow: var(--shadow-md); }
.btn-outline-secondary { border: 1px solid #CBD5E0; color: var(--text-color); background: transparent; }
.btn-outline-secondary:hover { background: #EDF2F7; }

/* --- Map badges (price labels and clusters) --- */
.badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 20px;
    font-weight: 700;
    font-size: 12px;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
    will-change: transform;
}

.badge-price {
    /* Contraste plus foncé pour le prix individuel */
    color: #C81E4A;
    border-color: #C81E4A;
}

.badge-cluster {
    /* Fond rose doux pour les clusters */
    background: rgba(255,56,92,0.08);
    color: #C81E4A;
    border-color: var(--primary-color);
}

.badge:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.18);
}

/* Améliorer la visibilité des clusters au survol */
.leaflet-marker-pane .custom-cluster .badge-cluster:hover {
    background-color: #fff;
}

.btn i {
    font-size: 1.1rem;
}

.btn-primary {
    background-color: var(--primary-color);
    color: white;
}

.btn-primary:hover {
    background-color: var(--primary-dark);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* --- Admin: utilitaires sticky pour tableaux --- */
/* Colonne sticky à gauche pour cases à cocher/sélection */
.admin-sticky-col-left {
    position: sticky;
    left: 0;
    background: var(--bs-body-bg);
    z-index: 2; /* au-dessus du corps du tableau */
}

/* En-tête sticky du tableau avec offset sous la navbar */
.admin-sticky-thead {
    position: sticky;
    top: 0; /* sera ajusté via conteneur sticky-top si nécessaire */
    z-index: 3;
}

/* Barre d’actions groupées sticky sous la navbar */
.admin-sticky-toolbar {
    position: sticky;
    top: var(--admin-offset);
    z-index: 1030;
    background: var(--bs-body-bg);
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 8px;
    padding: 6px 8px;
    box-shadow: 0 6px 12px rgba(0,0,0,.04);
}

/* Corriger chevauchement visuel lorsque la première colonne est sticky */
.table .admin-sticky-col-left {
    box-shadow: 6px 0 8px -6px rgba(0,0,0,.08);
}

.btn-secondary {
    background-color: var(--secondary-color);
    color: white;
}

.btn-secondary:hover {
    background-color: var(--secondary-dark);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn-outline {
    background-color: transparent;
    border: 2px solid var(--primary-color);
    color: var(--primary-color);
}

.btn-outline:hover {
    background-color: var(--primary-color);
    color: white;
    transform: translateY(-2px);
}

.btn-light {
    background-color: var(--bg-light);
    color: var(--text-color);
}

.btn-light:hover {
    background-color: #E2E8F0;
    transform: translateY(-2px);
}

.btn-lg {
    padding: 1rem 2rem;
    font-size: 1.1rem;
}

.btn-sm {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
}

.btn-icon {
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
}

.btn-icon.btn-sm {
    width: 32px;
    height: 32px;
}

.btn-icon.btn-lg {
    width: 48px;
    height: 48px;
}

/* Forms */
.form-control {
    padding: 0.75rem 1rem;
    border: 1px solid #E2E8F0;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
    font-size: 1rem;
    width: 100%;
}

.form-control:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(255, 56, 92, 0.1);
}

.form-control::placeholder {
    color: #A0AEC0;
}

.form-label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
    color: var(--text-color);
}

.form-group {
    margin-bottom: 1.5rem;
}

.form-text {
    font-size: 0.9rem;
    color: var(--text-light);
    margin-top: 0.5rem;
}
/* RTL Overrides */
html[dir="rtl"] body {
    direction: rtl;
}

/* Dropdown alignment and transform origin in RTL */
html[dir="rtl"] .dropdown-menu {
    text-align: right;
    transform-origin: top left;
}

/* Icons spacing near text in RTL */
html[dir="rtl"] .property-location i,
html[dir="rtl"] .property-amenity i {
    margin-left: 0.5rem;
    margin-right: 0;
}

/* Badges and favorite buttons position in cards */
html[dir="rtl"] .property-badge {
    right: 1rem;
    left: auto;
}
html[dir="rtl"] .property-favorite {
    left: 1rem;
    right: auto;
}

/* Alert close button position */
html[dir="rtl"] .alert-close {
    left: 1rem;
    right: auto;
}

/* Input group radii for RTL */
html[dir="rtl"] .input-group .form-control:first-child {
    border-top-right-radius: var(--radius-sm);
    border-bottom-right-radius: var(--radius-sm);
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
html[dir="rtl"] .input-group .form-control:last-child {
    border-top-left-radius: var(--radius-sm);
    border-bottom-left-radius: var(--radius-sm);
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
html[dir="rtl"] .input-group-text:first-child {
    border-top-right-radius: var(--radius-sm);
    border-bottom-right-radius: var(--radius-sm);
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
html[dir="rtl"] .input-group-text:last-child {
    border-top-left-radius: var(--radius-sm);
    border-bottom-left-radius: var(--radius-sm);
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

/* Custom select caret position for RTL */
html[dir="rtl"] .custom-select::after {
    left: 1rem;
    right: auto;
}

.form-error {
    color: var(--error-color);
    font-size: 0.9rem;
    margin-top: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.form-error i {
    font-size: 1rem;
}

.form-success {
    color: var(--success-color);
    font-size: 0.9rem;
    margin-top: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.form-success i {
    font-size: 1rem;
}

/* Admin Sidebar (right menu) */
.admin-sidebar {
    position: sticky;
    top: var(--admin-offset);
    z-index: 10;
}
.admin-sidebar-left {
    position: sticky;
    top: var(--admin-offset);
    max-width: 260px;
}
.admin-sidebar .card {
    border-radius: 8px;
}
.admin-sidebar .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #fff;
    border-bottom: 1px solid #E2E8F0;
}
.admin-sidebar .compact-toggle {
    appearance: none;
    border: 1px solid #CBD5E0;
    background: #fff;
    color: var(--text-light);
    border-radius: var(--radius-sm);
    padding: .25rem .5rem;
    line-height: 1;
    cursor: pointer;
    transition: all var(--transition-fast);
}
.admin-sidebar .compact-toggle:hover {
    color: var(--text-color);
    border-color: #94A3B8;
}
.admin-sidebar .list-group {
    border-radius: var(--radius-sm);
}
.admin-sidebar .list-group-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: .65rem .85rem;
    border: none;
    border-left: 3px solid transparent;
    color: var(--text-color);
    transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}
.admin-sidebar .list-group-item i {
    width: 18px;
    text-align: center;
}
.admin-sidebar .list-group-item:hover {
    background: rgba(255,56,92,0.06);
    color: var(--primary-color);
}
.admin-sidebar .list-group-item.active {
    background: rgba(255,56,92,0.12);
    color: var(--primary-color);
    border-left-color: var(--primary-color);
    font-weight: 600;
}
.admin-sidebar .list-group-item .badge {
    margin-left: auto;
    background-color: rgba(255,56,92,0.12);
    color: var(--primary-color);
    border-radius: 12px;
    font-weight: 600;
}
.admin-sidebar-compact .list-group-item {
    padding: .45rem .65rem;
    gap: 6px;
    font-size: .92rem;
}
.admin-sidebar-compact .card-header {
    padding: .5rem .75rem;
}
.admin-sidebar-compact .list-group-item i {
    width: 16px;
}

/* Admin layout harmonisation */
.admin-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 24px;
}
@media (max-width: 991.98px) {
    .admin-layout { grid-template-columns: 1fr; }
}
/* Variante: sidebar à droite */
.admin-layout-right {
    display: grid;
    grid-template-columns: 1fr 260px;
    gap: 24px;
}
.admin-layout-right > * {
    min-width: 0;
}
@media (max-width: 991.98px) {
    .admin-layout-right { grid-template-columns: 1fr; }
}
.admin-sidebar-right {
    position: sticky;
    top: var(--admin-offset);
    max-width: 260px;
}
.admin-page-title {
    display: flex; align-items: center; gap: 8px;
}
.admin-content-card .card-header {
    font-weight: 600;
}
html.mode-admin body {
    background: radial-gradient(1200px 600px at 20% 0%, rgba(255, 56, 92, 0.10), rgba(255, 56, 92, 0.00) 60%),
                radial-gradient(1200px 600px at 80% 0%, rgba(0, 166, 153, 0.10), rgba(0, 166, 153, 0.00) 55%),
                var(--bg-light);
}
html.mode-admin .container.settings-container {
    max-width: 1320px;
}
html.mode-admin nav.navbar.fixed-top {
    background: rgba(17, 24, 39, 0.92) !important;
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 12px 34px rgba(2, 6, 23, 0.22);
}
html.mode-admin nav.navbar.fixed-top .navbar-brand {
    font-weight: 750;
    letter-spacing: -0.01em;
}
html.mode-admin nav.navbar.fixed-top .btn.btn-outline-light {
    border-color: rgba(255,255,255,0.22);
}
html.mode-admin nav.navbar.fixed-top .btn.btn-outline-light:hover {
    border-color: rgba(255,255,255,0.34);
    background: rgba(255,255,255,0.08);
}
html.mode-admin nav.navbar.fixed-top .badge {
    border-radius: 999px;
    font-weight: 750;
    letter-spacing: -0.01em;
}
html.mode-admin .admin-badge-muted {
    background: rgba(148, 163, 184, 0.22) !important;
    color: rgba(226, 232, 240, 0.92) !important;
}
html.mode-admin .admin-badge-live {
    transition: opacity 160ms ease, transform 160ms ease;
}
html.mode-admin .admin-badge-live.admin-badge-updating {
    opacity: 0.55;
}
html.mode-admin .admin-badge-live.admin-badge-pop {
    transform: scale(1.04);
}
html.mode-admin .admin-sticky-toolbar {
    background: rgba(255,255,255,0.82);
    backdrop-filter: blur(10px);
    border-color: rgba(2, 6, 23, 0.08);
    border-radius: 14px;
    padding: 10px 12px;
}
html[data-theme="dark"].mode-admin .admin-sticky-toolbar {
    background: rgba(17, 24, 39, 0.72);
    border-color: rgba(148, 163, 184, 0.18);
}
html.mode-admin .admin-page-title i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: rgba(255, 56, 92, 0.12);
    color: var(--primary-color);
}
html.mode-admin .card {
    border: 1px solid rgba(2, 6, 23, 0.08);
    box-shadow: 0 10px 24px rgba(2, 6, 23, 0.08);
    border-radius: 14px;
}
html[data-theme="dark"].mode-admin .card {
    border-color: rgba(148, 163, 184, 0.16);
    box-shadow: 0 10px 24px rgba(0,0,0,0.40);
}
html.mode-admin .table-responsive {
    border-radius: 14px;
    border: 1px solid rgba(2, 6, 23, 0.08);
    box-shadow: 0 10px 22px rgba(2, 6, 23, 0.06);
    background: var(--bs-body-bg);
}
html.mode-admin .table {
    margin-bottom: 0;
}
html.mode-admin .table thead.table-light {
    background: rgba(2, 6, 23, 0.02);
}
html.mode-admin .table tbody tr:hover {
    background: rgba(255, 56, 92, 0.06);
}
html.mode-admin .admin-sidebar .card {
    border-radius: 16px;
    overflow: hidden;
}
html.mode-admin .admin-sidebar .card-header {
    background: rgba(255,255,255,0.75);
    backdrop-filter: blur(10px);
}
html[data-theme="dark"].mode-admin .admin-sidebar .card-header {
    background: rgba(17, 24, 39, 0.66);
}
html.mode-admin #toastHost.toast-container {
    top: var(--navbar-h);
}
html.mode-admin .booking-card img {
    height: 160px;
    object-fit: cover;
}
html.mode-admin .badge-booking {
    font-size: 0.85rem;
}
html.mode-admin .badge-pending {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
html.mode-admin .badge-pending i {
    font-size: 0.85em;
}
html.mode-admin .badge-pending.severity-ok {
    background-color: #7bd389;
    color: #0b3d0b;
}
html.mode-admin .badge-pending.severity-soon {
    background-color: #ffd166;
    color: #3a2b00;
}
html.mode-admin .badge-pending.severity-critical {
    background-color: #ef476f;
    color: #ffffff;
}
html.mode-admin .badge-pending.severity-expired {
    background-color: #e0e0e0;
    color: #666;
}
html.mode-admin .status-chip {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-weight: 600;
    font-size: 0.78rem;
    border: 1px solid transparent;
}
html.mode-admin .status-pending {
    background-color: #fff3cd;
    color: #7a5900;
    border-color: #ffe69c;
}
html.mode-admin .status-confirmed {
    background-color: #d1e7dd;
    color: #0f5132;
    border-color: #a3cfbb;
}
html.mode-admin .status-completed {
    background-color: #cff4fc;
    color: #055160;
    border-color: #9eeaf9;
}
html.mode-admin .status-rejected,
html.mode-admin .status-declined {
    background-color: #f8d7da;
    color: #842029;
    border-color: #f5c2c7;
}
html.mode-admin .status-cancelled_by_guest,
html.mode-admin .status-cancelled,
html.mode-admin .status-cancelled_by_host,
html.mode-admin .status-expired {
    background-color: #e2e3e5;
    color: #2b2f32;
    border-color: #d3d6d8;
}
html.mode-admin .status-archived_by_guest {
    background-color: #e9ecef;
    color: #495057;
    border-color: #dde2e6;
}
html.mode-admin .status-default {
    background-color: #f8f9fa;
    color: #343a40;
    border-color: #e9ecef;
}

html.mode-admin :focus-visible {
    outline: 3px solid rgba(255, 56, 92, 0.30);
    outline-offset: 2px;
}

html.mode-admin body.admin-pending-properties-page .card-title {
    font-size: 1rem;
}
html.mode-admin body.admin-pending-properties-page .property-card img {
    height: 180px;
    object-fit: cover;
}

html.mode-admin body.admin-report-statistics-page .stat-card {
    transition: transform 0.2s;
}
html.mode-admin body.admin-report-statistics-page .stat-card:hover {
    transform: translateY(-5px);
}

.input-group {
    position: relative;
    display: flex;
    align-items: stretch;
    width: 100%;
}

.input-group .form-control {
    border-radius: 0;
}

.input-group .form-control:first-child {
    border-top-left-radius: var(--radius-sm);
    border-bottom-left-radius: var(--radius-sm);
}

.input-group .form-control:last-child {
    border-top-right-radius: var(--radius-sm);
    border-bottom-right-radius: var(--radius-sm);
}

.input-group-text {
    display: flex;
    align-items: center;
    padding: 0.75rem 1rem;
    background-color: var(--bg-light);
    border: 1px solid #E2E8F0;
    color: var(--text-light);
}

.input-group-text:first-child {
    border-top-left-radius: var(--radius-sm);
    border-bottom-left-radius: var(--radius-sm);
}

.input-group-text:last-child {
    border-top-right-radius: var(--radius-sm);
    border-bottom-right-radius: var(--radius-sm);
}

/* Custom Select */
.custom-select {
    position: relative;
    width: 100%;
}

.custom-select select {
    appearance: none;
    width: 100%;
    padding: 0.75rem 2.5rem 0.75rem 1rem;
    border: 1px solid #E2E8F0;
    border-radius: var(--radius-sm);
    background-color: white;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.custom-select select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(255, 56, 92, 0.1);
}

.custom-select::after {
    content: '\f107';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-light);
    pointer-events: none;
    transition: transform var(--transition-fast);
}

.custom-select select:focus + .custom-select::after {
    transform: translateY(-50%) rotate(180deg);
}

/* Custom Checkbox */
.custom-checkbox {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    cursor: pointer;
    user-select: none;
}

.custom-checkbox input {
    display: none;
}

.custom-checkbox .checkbox-icon {
    width: 20px;
    height: 20px;
    border: 2px solid #E2E8F0;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-fast);
    color: white;
}

.custom-checkbox input:checked + .checkbox-icon {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}

.custom-checkbox .checkbox-icon i {
    font-size: 0.8rem;
    opacity: 0;
    transform: scale(0.5);
    transition: all var(--transition-fast);
}

.custom-checkbox input:checked + .checkbox-icon i {
    opacity: 1;
    transform: scale(1);
}

/* Image Loading */
.lazy-image {
    opacity: 0;
    transition: opacity var(--transition-base);
}

.image-loaded {
    opacity: 1;
}

/* Image Preview */
.preview-container {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-md);
}

.preview-loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fadeIn var(--transition-base);
}

.preview-loaded {
    animation: scaleIn var(--transition-base);
}

/* Alert Messages */
.alert {
    border: none;
    border-radius: var(--radius-sm);
    padding: 1rem;
    margin-bottom: 1rem;
    animation: slideIn var(--transition-base);
    transition: all var(--transition-base);
}

.alert-close {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    font-size: 1.5rem;
    color: currentColor;
    opacity: 0.5;
    cursor: pointer;
    transition: opacity var(--transition-fast);
}

.alert-close:hover {
    opacity: 1;
}

/* Validation Errors */
.validation-errors {
    background-color: #FEE2E2;
    border-radius: var(--radius-sm);
    padding: 1rem;
    margin-bottom: 1rem;
    color: #DC2626;
    animation: fadeIn var(--transition-base);
}

.validation-errors p {
    margin: 0.5rem 0;
}

/* Rating System */
.rating {
    display: inline-flex;
    gap: 0.25rem;
}

.rating label {
    cursor: pointer;
    font-size: 1.5rem;
    color: #CBD5E0;
    transition: all var(--transition-fast);
}

.rating label.active {
    color: #FBBF24;
    transform: scale(1.1);
}

.rating-selected label {
    animation: scaleIn var(--transition-fast);
}

/* Property Cards */
.property-card {
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    overflow: hidden;
    transition: box-shadow var(--transition-base), transform var(--transition-base);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    position: relative;
    display: flex;
    flex-direction: column;
}

.property-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 20px rgba(0,0,0,0.12);
}

.property-image-wrapper {
    position: relative;
    padding-top: 66.67%; /* 3:2 aspect ratio */
    overflow: hidden;
}

.property-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-base), filter var(--transition-base);
}

.carousel-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.85);
    border: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    z-index: 3;
}
.carousel-nav i { color: #333; }
.carousel-nav.prev { left: 10px; }
.carousel-nav.next { right: 10px; }
.property-image-wrapper:hover .carousel-nav { opacity: 1; }

.property-card:hover .property-image {
    transform: scale(1.03);
}

.property-badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: rgba(255, 56, 92, 0.9);
    color: white;
    padding: 0.5rem 1rem;
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
    font-weight: 500;
    z-index: 1;
}
.property-badge.badge-pro { background: var(--primary-color); }
.property-badge.badge-agency { background: #111827; }
.property-badge.badge-advanced { background: #06b6d4; }
.property-badge.badge-featured { background: linear-gradient(135deg, #FF385C, #C81E4A); box-shadow: 0 6px 18px rgba(200,30,74,0.35); }
.property-badge.badge-superhost { background: #f59e0b; }
.property-badge.badge-new { background: #10b981; }
.property-badge.badge-sea { background: #3b82f6; }
.property-badge.badge-verified { background: #22c55e; }

.badge-superhost,
.badge-verified {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    border-radius: 0;
    font-weight: 500;
    font-size: 0.9rem;
    background: transparent;
    border: none;
    box-shadow: none;
}
.badge-superhost { color: #444; }
.badge-verified { color: #444; }
.badge-superhost i { color: #e7762b; font-size: 1em; }
.badge-verified i { color: #16a34a; font-size: 1em; }
.badge-superhost:focus-visible,
.badge-verified:focus-visible { outline: 2px solid rgba(0,0,0,0.25); outline-offset: 2px; }

.property-favorite {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: white;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--transition-fast);
    z-index: 1;
    box-shadow: var(--shadow-sm);
}

.property-favorite i {
    color: var(--text-light);
    transition: all var(--transition-fast);
}

.favorite-toggle .fa-heart { margin-right: 0; }
.favorite-toggle.btn { border: none; background: transparent; }
.favorite-toggle { width: 32px; height: 32px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center; }
.favorite-toggle:hover { background: rgba(255,56,92,0.06); }
.favorite-toggle:focus-visible { outline: 2px solid rgba(255,56,92,0.5); outline-offset: 2px; }
.favorite-toggle .fa-heart { color: #ff385c; transition: transform 0.15s ease, color 0.15s ease; }
.favorite-toggle.btn-danger .fa-heart { color: #ff385c; }
.favorite-toggle.btn-outline-danger .fa-heart { color: #ff385c; }
.favorite-toggle:hover .fa-heart { transform: scale(1.1); }

.favorite-toggle.is-busy { pointer-events: none; opacity: 0.7; }
.favorite-toggle .fa-heart.heart-pop { animation: heartPop 0.3s ease; }
@keyframes heartPop {
  0% { transform: scale(1); }
  40% { transform: scale(1.25); }
  100% { transform: scale(1); }
}

/* Snackbar (style façon Airbnb) */
.snackbar-container { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 1060; pointer-events: none; }
.snackbar { display: inline-flex; align-items: center; gap: 10px; background: rgba(0,0,0,0.85); color: #fff; padding: 10px 14px; border-radius: 9999px; box-shadow: 0 6px 16px rgba(0,0,0,0.2); pointer-events: auto; }
.snackbar a { color: #fff; text-decoration: underline; }
.snackbar-hide { opacity: 0; transition: opacity 0.3s ease; }

.property-favorite:hover {
    transform: scale(1.1);
}

.property-favorite:hover i {
    color: var(--primary-color);
}

.property-favorite.active i {
    color: var(--primary-color);
}

.property-card .card-body {
    padding: 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.property-title {
    font-size: 1rem;
    font-weight: 600;
    color: #222;
    margin-bottom: 0.35rem;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.property-title:hover {
    color: var(--primary-color);
}

.property-location {
    color: #717171;
    font-size: 0.9rem;
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
}

.property-location i {
    margin-right: 0.5rem;
    color: var(--primary-color);
}

.property-amenities {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #E2E8F0;
}

.property-amenity {
    display: flex;
    align-items: center;
    color: var(--text-light);
    font-size: 0.9rem;
}

.property-amenity i {
    margin-right: 0.5rem;
    color: var(--primary-color);
}

.property-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
}

.property-price {
    font-size: 1rem;
    font-weight: 600;
    color: #222;
}

.property-price-unit {
    font-size: 0.9rem;
    color: #717171;
    font-weight: normal;
}

.property-rating {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.property-rating-stars {
    color: #FBBF24;
}

.property-rating-count {
    color: var(--text-light);
    font-size: 0.9rem;
}

.property-card.compact { border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.06); }
.property-card.compact .property-image-wrapper { padding-top: 58%; }
.property-card.compact .card-body { padding: 1rem; }
.property-card.compact .property-title { font-size: 0.95rem; margin-bottom: 0.25rem; }
.property-card.compact .property-location { font-size: 0.85rem; margin-bottom: 0.5rem; }
.property-card.compact .property-amenities { gap: 1rem; margin-bottom: 0.75rem; padding-bottom: 0.75rem; }
.property-card.compact .property-price { font-size: 0.95rem; }
.property-card.compact .property-price-unit { font-size: 0.85rem; }
.property-card.compact .property-rating { gap: 0.25rem; }
.property-card.compact .carousel-nav { width: 32px; height: 32px; }
.property-card.compact .property-favorite { width: 32px; height: 32px; }

/* Property Grid */
.property-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 24px;
    margin: 1.5rem 0 3rem;
}

@media (max-width: 768px) {
    .property-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .property-card {
        margin-bottom: 0;
    }
    
    .property-title {
        font-size: 1.1rem;
    }
    
.property-price {
    font-size: 1.3rem;
}

.carte-propriete.compact { border: 1px solid #E2E8F0; border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.06); }
.carte-propriete.compact .card-body { padding: 0.85rem; }
.carte-propriete.compact h5 { font-size: 1rem; margin-bottom: 0.25rem; }
.carte-propriete.compact .card-img-top { height: 190px; object-fit: cover; }
}

/* Filters bar (Airbnb-like) */
.filters-bar { position: sticky; top: 76px; z-index: 1000; background: #fff; border-top: 1px solid #E2E8F0; border-bottom: 1px solid #E2E8F0; }
.filters-pill { display: flex; align-items: center; gap: 12px; padding: 12px 8px; overflow-x: auto; }
.filters-item { display: grid; grid-template-columns: 1fr; gap: 6px; min-width: 180px; }
.filters-label { font-size: 12px; color: #717171; }
.filters-input { appearance: none; height: 40px; border: 1px solid #E2E8F0; border-radius: 20px; padding: 0 14px; font-size: 14px; outline: none; background: #fff; color: var(--text-color); }
.filters-input:focus { border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(255, 56, 92, 0.1); }
.filters-separator { width: 1px; height: 28px; background: #E2E8F0; }
.filters-price { min-width: 240px; }
.filters-price-inputs { display: flex; align-items: center; gap: 8px; }
.filters-dash { color: #717171; }
.filters-actions { margin-left: auto; display: flex; gap: 8px; }
.filters-submit { border-radius: 20px; }
.filters-reset { border-radius: 20px; }

.property-fav-btn { position: absolute; top: 12px; right: 12px; z-index: 3; border-radius: 999px; }

@keyframes fav-pop {
    0% { transform: scale(1); }
    35% { transform: scale(1.25); }
    70% { transform: scale(0.95); }
    100% { transform: scale(1); }
}
.favorite-toggle { will-change: transform; }
.favorite-toggle.is-animating { animation: fav-pop 260ms ease-out; }
@media (prefers-reduced-motion: reduce) {
    .favorite-toggle.is-animating { animation: none !important; }
}

.property-details-page .gallery-container img { width: 100%; object-fit: cover; cursor: pointer; transition: opacity 0.2s; }
.property-details-page .gallery-container img:hover { opacity: 0.9; }
.property-details-page .gallery-caption { margin-top: 4px; font-size: 0.875rem; color: #6c757d; }
.property-details-page .gallery-main-image { height: 600px; margin-bottom: 15px; }
.property-details-page .gallery-small-image { height: 290px; margin-bottom: 15px; }
@media (max-width: 768px) {
    .property-details-page .gallery-main-image { height: 360px; }
    .property-details-page .gallery-small-image { height: 170px; }
}

.property-details-page .booking-card { padding: 24px; border: 1px solid #ddd; border-radius: 12px; box-shadow: 0 6px 16px rgba(0,0,0,0.12); }
@media (min-width: 992px) {
    .property-details-page .booking-card { position: sticky; top: 24px; z-index: 10; }
}
.property-details-page .availability-card { border-radius: 12px; box-shadow: 0 6px 16px rgba(0,0,0,0.12); }

.flatpickr-calendar { z-index: 2000 !important; }

.property-details-page .flatpickr-calendar:not(.inline) { box-shadow: none !important; width: auto; max-width: 320px; }
.property-details-page .flatpickr-calendar.inline { box-shadow: none !important; width: 100%; max-width: 100%; }
.property-details-page .flatpickr-day { border-radius: 50%; margin: 2px; width: 38px; height: 38px; line-height: 38px; }
.property-details-page .flatpickr-day.selected { background: #4285F4 !important; color: white !important; border-color: #4285F4 !important; }
.property-details-page .flatpickr-day.flatpickr-disabled { background-color: rgba(255, 82, 82, 0.1) !important; color: #FF5252 !important; border-color: rgba(255, 82, 82, 0.2) !important; }
.property-details-page .flatpickr-day:not(.flatpickr-disabled):not(.prevMonthDay):not(.nextMonthDay) { background-color: rgba(76, 175, 80, 0.1) !important; color: #4CAF50 !important; border-color: rgba(76, 175, 80, 0.2) !important; }
.property-details-page #availability-calendar .flatpickr-calendar { margin: 0 auto; box-shadow: none !important; width: 100%; max-width: 100%; }
.property-details-page #availability-calendar .flatpickr-days { flex-wrap: wrap; justify-content: center; }
.property-details-page #availability-calendar .flatpickr-day { position: relative; }
.property-details-page #availability-calendar .pending-badge {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    line-height: 1;
    color: #111;
    background: #f8d047;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.08);
    transition: background-color .2s ease, color .2s ease, opacity .2s ease;
}
.property-details-page #availability-calendar .flatpickr-day.pending { box-shadow: inset 0 0 0 2px rgba(255,193,7,0.35); }
.property-details-page #availability-calendar .pending-badge.severity-ok { background-color: #7bd389; color: #0b3d0b; }
.property-details-page #availability-calendar .pending-badge.severity-soon { background-color: #ffd166; color: #3a2b00; }
.property-details-page #availability-calendar .pending-badge.severity-critical { background-color: #ef476f; color: #ffffff; }
.property-details-page #availability-calendar .pending-badge.severity-expired { background-color: #e0e0e0; color: #666; }
.property-details-page #availability-calendar .pending-badge i { font-size: 10px; }

.property-details-page .lightbox-modal { position: fixed; inset: 0; background: rgba(0,0,0,0.85); display: flex; align-items: center; justify-content: center; z-index: 10000; }
.property-details-page .lightbox-img { max-width: 90vw; max-height: 85vh; object-fit: contain; }
.property-details-page .lightbox-caption { margin-top: 12px; color: #ffffff; text-align: center; max-width: 80vw; font-size: 0.95rem; }
.property-details-page .lightbox-close { position: absolute; top: 16px; right: 16px; background: rgba(255,255,255,0.15); color: #fff; border: none; border-radius: 50%; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.property-details-page .lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,0.15); color: #fff; border: none; border-radius: 50%; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.property-details-page .lightbox-nav.prev { left: 16px; }
.property-details-page .lightbox-nav.next { right: 16px; }
.property-details-page #map { height: 400px; }
.property-details-page .wishlist-popin { min-width: 220px; z-index: 1050; top: 100%; }

.icon-circle-44 { width: 44px; height: 44px; }
.avatar-60 { width: 60px; height: 60px; object-fit: cover; }
.avatar-40 { width: 40px; height: 40px; object-fit: cover; }
.status-dot { width: 12px; height: 12px; display: inline-block; }
.alert.alert-rounded { border-radius: 10px; }

.add-property-page #locationMap { height: 400px; width: 100%; border-radius: 12px; margin: 1rem 0; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.add-property-page .map-search-box { margin-bottom: 1rem; display: flex; gap: 8px; }
.add-property-page .map-search-box input { flex: 1 1 auto; min-width: 0; padding: 10px; border: 1px solid #ddd; border-radius: 8px; }
.add-property-page .map-search-box #map-my-location { white-space: nowrap; }
.add-property-page .amenities-section { border: 1px solid rgba(15, 23, 42, 0.10); border-radius: 14px; padding: 16px; margin-bottom: 20px; background: rgba(255,255,255,0.85); box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06); }
.add-property-page .amenities-title { margin-bottom: 12px; font-weight: 700; color: rgba(15, 23, 42, 0.92); }
.add-property-page .amenity-item { margin-bottom: 10px; }
.add-property-page .amenity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 576px) { .add-property-page .amenity-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 992px) { .add-property-page .amenity-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.add-property-page .amenity-tile { display: block; cursor: pointer; user-select: none; margin: 0; }
.add-property-page .amenity-tile-input { position: absolute; opacity: 0; pointer-events: none; }
.add-property-page .amenity-tile-body { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 14px 10px; border-radius: 14px; border: 1px solid rgba(15, 23, 42, 0.12); background: rgba(248, 250, 252, 0.9); transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast); min-height: 84px; }
.add-property-page .amenity-tile:hover .amenity-tile-body { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.add-property-page .amenity-tile-input:checked + .amenity-tile-body { border-color: rgba(255, 56, 92, 0.6); background: rgba(255, 56, 92, 0.06); box-shadow: 0 10px 22px rgba(255, 56, 92, 0.10); }
.add-property-page .amenity-tile:focus-within .amenity-tile-body { outline: 3px solid rgba(255, 56, 92, 0.22); outline-offset: 2px; }
.add-property-page .amenity-tile-icon { width: 38px; height: 38px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: rgba(15, 23, 42, 0.06); color: rgba(15, 23, 42, 0.7); transition: background-color var(--transition-fast), color var(--transition-fast); }
.add-property-page .amenity-tile-input:checked + .amenity-tile-body .amenity-tile-icon { background: rgba(255, 56, 92, 0.12); color: rgba(255, 56, 92, 0.95); }
.add-property-page .amenity-tile-icon i { font-size: 1.05rem; }
.add-property-page .amenity-tile-label { font-weight: 650; font-size: 0.88rem; color: rgba(15, 23, 42, 0.88); text-align: center; line-height: 1.2; }
html[data-theme="dark"] .add-property-page .amenities-section { background: rgba(2, 6, 23, 0.40); border-color: rgba(148, 163, 184, 0.18); box-shadow: 0 18px 34px rgba(0,0,0,0.35); }
html[data-theme="dark"] .add-property-page .amenities-title { color: rgba(226, 232, 240, 0.92); }
html[data-theme="dark"] .add-property-page .amenity-tile-body { border-color: rgba(148, 163, 184, 0.18); background: rgba(2, 6, 23, 0.30); }
html[data-theme="dark"] .add-property-page .amenity-tile-icon { background: rgba(148, 163, 184, 0.12); color: rgba(226, 232, 240, 0.80); }
html[data-theme="dark"] .add-property-page .amenity-tile-label { color: rgba(226, 232, 240, 0.88); }
.add-property-page .form-section { background-color: #f8f9fa; border-radius: 8px; padding: 20px; margin-bottom: 20px; }
.add-property-page .form-section-title { border-bottom: 2px solid #e0e0e0; padding-bottom: 10px; margin-bottom: 20px; font-weight: 600; }
.add-property-page .required-field::after { content: " *"; color: red; }
.add-property-page .help-text { font-size: 0.85rem; color: #6c757d; margin-top: 5px; }
.add-property-page .wizard-progress { height: 4px; overflow: hidden; border-radius: 999px; }
.add-property-page #wizard-progress-bar { width: 0%; transition: width 0.3s ease; }
.add-property-page #ai-listing-helper { min-height: 1.5rem; }
.add-property-page .ai-assistant-card { border-radius: 16px; }
.add-property-page .ai-listing-card { border-radius: 16px; overflow: hidden; border: 1px solid rgba(15, 23, 42, 0.08); background: #fff; box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06); }
.add-property-page .ai-listing-card-header { padding: 12px 12px; background: linear-gradient(135deg, rgba(0, 166, 153, 0.14) 0%, rgba(255, 56, 92, 0.14) 100%); border-bottom: 1px solid rgba(15, 23, 42, 0.06); }
.add-property-page .ai-listing-icon { width: 38px; height: 38px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, var(--secondary-color, #00A699) 0%, var(--primary-color, #FF385C) 100%); box-shadow: 0 10px 18px rgba(255, 56, 92, 0.18); flex: 0 0 auto; }
.add-property-page .ai-listing-title { font-weight: 700; line-height: 1.15; color: #0f172a; }
.add-property-page .ai-listing-subtitle { font-size: 0.78rem; color: rgba(15, 23, 42, 0.72); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.add-property-page .ai-style-select { min-width: 170px; }
.add-property-page .ai-style-pill { border-radius: 999px; border-color: rgba(15, 23, 42, 0.12); background: rgba(255, 255, 255, 0.75); }
.add-property-page .ai-brief { border-radius: 12px; border-color: rgba(15, 23, 42, 0.12); background: rgba(248, 250, 252, 0.85); }
.add-property-page .ai-brief:focus { border-color: rgba(255, 56, 92, 0.55); box-shadow: 0 0 0 0.2rem rgba(255, 56, 92, 0.15); }
.add-property-page .ai-generate-btn { border-radius: 999px; padding: 0.55rem 0.9rem; box-shadow: 0 10px 18px rgba(255, 56, 92, 0.12); }
.add-property-page .ai-generate-btn:disabled { opacity: 0.75; box-shadow: none; }
.add-property-page #ai-listing-helper:not(:empty) { display: block; padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(15, 23, 42, 0.08); background: rgba(13, 110, 253, 0.06); }
.add-property-page #ai-listing-helper.text-danger:not(:empty) { border-color: rgba(220, 53, 69, 0.18); background: rgba(220, 53, 69, 0.07); }
.add-property-page #ai-listing-helper.text-success:not(:empty) { border-color: rgba(25, 135, 84, 0.18); background: rgba(25, 135, 84, 0.07); }
.add-property-page #ai-listing-helper.text-warning:not(:empty) { border-color: rgba(255, 193, 7, 0.25); background: rgba(255, 193, 7, 0.10); }
.add-property-page .ai-suggestion-panel { border-radius: 14px; border: 1px solid rgba(15, 23, 42, 0.10); background: rgba(248, 250, 252, 0.75); padding: 12px; }
.add-property-page .ai-suggestion-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
@media (min-width: 576px) { .add-property-page .ai-suggestion-grid { grid-template-columns: 1fr 0.6fr; align-items: start; } }
.add-property-page .ai-suggestion-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: rgba(15, 23, 42, 0.58); margin-bottom: 4px; }
.add-property-page .ai-suggestion-value { font-size: 0.92rem; color: rgba(15, 23, 42, 0.92); }
.add-property-page .ai-suggestion-actions .btn { border-radius: 999px; padding: 0.45rem 0.85rem; }
html[data-theme="dark"] .add-property-page .ai-listing-card { background: rgba(2, 6, 23, 0.55); border-color: rgba(148, 163, 184, 0.18); box-shadow: 0 14px 28px rgba(0, 0, 0, 0.35); }
html[data-theme="dark"] .add-property-page .ai-listing-card-header { border-bottom-color: rgba(148, 163, 184, 0.14); }
html[data-theme="dark"] .add-property-page .ai-listing-title { color: rgba(226, 232, 240, 0.96); }
html[data-theme="dark"] .add-property-page .ai-listing-subtitle { color: rgba(226, 232, 240, 0.72); }
html[data-theme="dark"] .add-property-page .ai-style-pill { background: rgba(2, 6, 23, 0.35); border-color: rgba(148, 163, 184, 0.18); color: rgba(226, 232, 240, 0.92); }
html[data-theme="dark"] .add-property-page .ai-brief { background: rgba(2, 6, 23, 0.30); border-color: rgba(148, 163, 184, 0.18); color: rgba(226, 232, 240, 0.92); }
html[data-theme="dark"] .add-property-page .ai-suggestion-panel { background: rgba(2, 6, 23, 0.30); border-color: rgba(148, 163, 184, 0.16); }
html[data-theme="dark"] .add-property-page .ai-suggestion-label { color: rgba(226, 232, 240, 0.62); }
html[data-theme="dark"] .add-property-page .ai-suggestion-value { color: rgba(226, 232, 240, 0.90); }
.add-property-page .preview-carousel-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; }
.add-property-page .preview-carousel-prev { left: 8px; }
.add-property-page .preview-carousel-next { right: 8px; }
.add-property-page .preview-carousel-indicator { position: absolute; right: 8px; bottom: 8px; z-index: 3; padding: 2px 8px; border-radius: 999px; background: rgba(0, 0, 0, 0.55); color: #fff; font-size: 0.7rem; }
.add-property-page .preview-carousel-nav-btn { padding: 4px 8px; border-radius: 999px; }
@media (min-width: 992px) { .add-property-page .wizard-layout-main { border-right: 1px solid #f0f0f0; } }

.add-property-page #photo-dropzone { border: 2px dashed rgba(15, 23, 42, 0.18) !important; background: rgba(248, 250, 252, 0.85); box-shadow: 0 10px 22px rgba(15, 23, 42, 0.05); cursor: pointer; transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast); }
.add-property-page #photo-dropzone:hover { transform: translateY(-1px); box-shadow: 0 14px 28px rgba(15, 23, 42, 0.08); }
.add-property-page #photo-dropzone.is-dragover { border-color: rgba(255, 56, 92, 0.55) !important; background: rgba(255, 56, 92, 0.05); box-shadow: 0 16px 34px rgba(255, 56, 92, 0.10); transform: translateY(-1px); }
.add-property-page #photo-dropzone:focus-within { outline: 3px solid rgba(255, 56, 92, 0.22); outline-offset: 2px; }

.add-property-page .photo-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 576px) { .add-property-page .photo-preview-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 992px) { .add-property-page .photo-preview-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.add-property-page .image-preview-card { user-select: none; }
.add-property-page .image-preview-media { position: relative; border-radius: 14px; overflow: hidden; border: 1px solid rgba(15, 23, 42, 0.10); background: #fff; box-shadow: 0 10px 22px rgba(15, 23, 42, 0.06); transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast); }
.add-property-page .image-preview-card:hover .image-preview-media { transform: translateY(-1px); box-shadow: 0 14px 28px rgba(15, 23, 42, 0.08); }
.add-property-page .image-preview { width: 100%; height: 160px; object-fit: cover; display: block; }
.add-property-page .photo-caption-input { margin-top: 8px; border-radius: 12px; padding: 0.55rem 0.7rem; }
.add-property-page .photo-caption-input:focus { box-shadow: 0 0 0 3px rgba(255, 56, 92, 0.10); border-color: rgba(255, 56, 92, 0.45); }

.add-property-page .image-delete-btn { position: absolute; top: 10px; right: 10px; width: 34px; height: 34px; border-radius: 999px; border: 1px solid rgba(15, 23, 42, 0.10); background: rgba(255, 255, 255, 0.92); display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 8px 16px rgba(15, 23, 42, 0.10); transition: transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast); }
.add-property-page .image-delete-btn:hover { transform: translateY(-1px); background: rgba(255, 56, 92, 0.10); border-color: rgba(255, 56, 92, 0.18); }
.add-property-page .image-delete-btn i { color: rgba(15, 23, 42, 0.75); font-size: 0.9rem; }

.add-property-page .photo-primary-btn { position: absolute; top: 10px; left: 10px; width: 34px; height: 34px; border-radius: 999px; border: 1px solid rgba(15, 23, 42, 0.10); background: rgba(255, 255, 255, 0.92); display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 8px 16px rgba(15, 23, 42, 0.10); transition: transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast); }
.add-property-page .photo-primary-btn:hover { transform: translateY(-1px); background: rgba(255, 193, 7, 0.16); border-color: rgba(255, 193, 7, 0.25); }
.add-property-page .photo-primary-btn i { color: rgba(148, 163, 184, 0.95); font-size: 0.95rem; }
.add-property-page .photo-primary-btn.is-primary { background: rgba(255, 193, 7, 0.20); border-color: rgba(255, 193, 7, 0.35); }
.add-property-page .photo-primary-btn.is-primary i { color: rgba(217, 119, 6, 0.95); }
.add-property-page .photo-primary-badge { position: absolute; left: 10px; bottom: 10px; padding: 0.25rem 0.55rem; border-radius: 999px; font-weight: 650; font-size: 0.72rem; background: rgba(15, 23, 42, 0.65); color: #fff; }

.add-property-page .image-preview-card.is-drop-target .image-preview-media { border-color: rgba(255, 56, 92, 0.35); box-shadow: 0 18px 36px rgba(255, 56, 92, 0.12); }
.add-property-page .image-preview-card.is-dragging { opacity: 0.7; }

html[data-theme="dark"] .add-property-page #photo-dropzone { border-color: rgba(148, 163, 184, 0.20) !important; background: rgba(2, 6, 23, 0.35); box-shadow: 0 18px 34px rgba(0, 0, 0, 0.30); }
html[data-theme="dark"] .add-property-page #photo-dropzone.is-dragover { border-color: rgba(255, 56, 92, 0.55) !important; background: rgba(255, 56, 92, 0.10); }
html[data-theme="dark"] .add-property-page .image-preview-media { background: rgba(2, 6, 23, 0.55); border-color: rgba(148, 163, 184, 0.18); box-shadow: 0 18px 34px rgba(0, 0, 0, 0.32); }
html[data-theme="dark"] .add-property-page .image-delete-btn,
html[data-theme="dark"] .add-property-page .photo-primary-btn { background: rgba(2, 6, 23, 0.65); border-color: rgba(148, 163, 184, 0.18); }
html[data-theme="dark"] .add-property-page .image-delete-btn i { color: rgba(226, 232, 240, 0.84); }
html[data-theme="dark"] .add-property-page .photo-primary-btn i { color: rgba(203, 213, 225, 0.75); }
html[data-theme="dark"] .add-property-page .photo-primary-badge { background: rgba(226, 232, 240, 0.18); color: rgba(226, 232, 240, 0.92); }

.edit-property-page .amenity-badge,
.edit-property-page .rule-badge {
    display: inline-block;
    padding: 8px 15px;
    margin-right: 10px;
    margin-bottom: 10px;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.2s;
}
.edit-property-page .amenity-badge:hover,
.edit-property-page .rule-badge:hover { background-color: #e9ecef; }
.edit-property-page .amenity-badge.selected,
.edit-property-page .rule-badge.selected { background-color: #007bff; color: white; border-color: #007bff; }
.edit-property-page .preview-image { width: 100%; height: 200px; object-fit: cover; }
.edit-property-page .image-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-bottom: 20px; }
@media (max-width: 768px) { .edit-property-page .image-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 576px) { .edit-property-page .image-grid { grid-template-columns: 1fr; } }
.edit-property-page .image-item { position: relative; }
.edit-property-page .remove-image {
    position: absolute;
    top: 5px;
    right: 5px;
    background-color: #ff4444;
    color: white;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    font-weight: bold;
    z-index: 10;
}
.edit-property-page .remove-image:hover { background-color: #cc0000; }
.edit-property-page #property-map { height: 300px; margin-bottom: 20px; }
.edit-property-page .leaflet-control-geocoder-form input { width: 250px; }
.edit-property-page .leaflet-control-geocoder-alternatives { width: 250px; }
.edit-property-page .leaflet-control-geocoder-alternatives li { white-space: normal; }
.edit-property-page .leaflet-control-geocoder { display: flex; align-items: center; }
.edit-property-page .leaflet-control-geocoder-button {
    min-width: 40px;
    height: 40px;
    background-color: #0d6efd;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    margin-left: 10px;
    cursor: pointer;
}
.edit-property-page .leaflet-control-geocoder-button:hover { background-color: #0b5ed7; }

.my-properties-page .property-card {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    margin-bottom: 2rem;
    overflow: visible;
    position: relative;
    z-index: 1;
}
.my-properties-page .alert { border-radius: 10px; }
.my-properties-page .property-image {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    height: 200px;
    background-size: cover;
    background-position: center;
}
.my-properties-page .property-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
}
.my-properties-page .property-details { padding: 1.5rem; }
.my-properties-page .property-title { font-size: 1.25rem; font-weight: 600; margin-bottom: 0.5rem; }
.my-properties-page .property-location { color: #64748b; margin-bottom: 1rem; }
.my-properties-page .property-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin-top: 1rem; }
.my-properties-page .stat-item { text-align: center; padding: 0.75rem; background: #f8fafc; border-radius: 8px; }
.my-properties-page .stat-value { font-size: 1.25rem; font-weight: 600; color: #1e40af; }
.my-properties-page .stat-label { font-size: 0.875rem; color: #64748b; }
.my-properties-page .property-actions { padding: 1rem; background: #f8fafc; display: flex; gap: 0.5rem; justify-content: flex-end; }
.my-properties-page .rating-stars { color: #eab308; }
.my-properties-page .action-btn {
    padding: 0.5rem 1rem;
    border-radius: 6px;
    font-weight: 500;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    border: none;
    position: relative;
    z-index: 10;
}
.my-properties-page .btn-edit { background-color: #3b82f6; color: white !important; }
.my-properties-page .btn-calendar { background-color: #10b981; color: white !important; }
.my-properties-page .btn-delete { background-color: #ef4444; color: white !important; }
.my-properties-page .pending-bookings { position: absolute; top: 1rem; right: 1rem; background: #ef4444; color: white; padding: 0.25rem 0.75rem; border-radius: 9999px; font-weight: 500; }
.my-properties-page .add-property { background: #f8fafc; border: 2px dashed #cbd5e1; border-radius: 10px; padding: 2rem; text-align: center; cursor: pointer; transition: all 0.3s ease; }
.my-properties-page .add-property:hover { border-color: #3b82f6; background: #f0f9ff; }
.my-properties-page .add-property i { font-size: 2rem; color: #3b82f6; margin-bottom: 1rem; }

.availability-calendar-page .rating-stars { color: #eab308; }
.availability-calendar-page .calendar-container { margin-bottom: 2rem; border: 1px solid #e2e8f0; border-radius: 0.5rem; overflow: hidden; background-color: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); }
.availability-calendar-page .calendar-navigation { display: flex; justify-content: space-between; align-items: center; padding: 1rem; background-color: #f8fafc; border-bottom: 1px solid #e2e8f0; }
.availability-calendar-page .calendar-body { padding: 1rem; }
.availability-calendar-page .calendar-row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.5rem; margin-bottom: 0.5rem; }
.availability-calendar-page .calendar-header { text-align: center; font-weight: bold; padding: 0.5rem; }
.availability-calendar-page .calendar-day { height: 80px; border: 1px solid #e2e8f0; border-radius: 0.25rem; padding: 0.5rem; cursor: pointer; position: relative; background-color: #fff; transition: all 0.2s ease; }
.availability-calendar-page .calendar-day:hover { border-color: #3b82f6; box-shadow: 0 0 0 1px #3b82f6; }
.availability-calendar-page .calendar-day.empty { background-color: #f8fafc; cursor: default; }
.availability-calendar-page .calendar-day.selected { background-color: #dbeafe; border-color: #3b82f6; }
.availability-calendar-page .calendar-day.booked { background-color: #fee2e2; border-color: #ef4444; color: #b91c1c; cursor: not-allowed; }
.availability-calendar-page .calendar-day.pending { background-color: #fff1c8; border-color: #f59e0b; color: #92400e; cursor: not-allowed; }
.availability-calendar-page .calendar-day.past { background-color: #f3f4f6; border-color: #e5e7eb; color: #9ca3af; cursor: not-allowed; }
.availability-calendar-page .calendar-day.past:hover { border-color: #e5e7eb; box-shadow: none; }
.availability-calendar-page .calendar-day .status-badge { position: absolute; top: 6px; right: 6px; font-size: 10px; padding: 2px 6px; border-radius: 999px; line-height: 1; box-shadow: 0 1px 2px rgba(0,0,0,0.06); transition: background-color 0.2s ease, color 0.2s ease; }
.availability-calendar-page .calendar-day .badge-pending { background-color: #f59e0b; color: #fff; }
.availability-calendar-page .calendar-day .badge-pending.severity-ok { background-color: #10b981; color: #fff; }
.availability-calendar-page .calendar-day .badge-pending.severity-soon { background-color: #f59e0b; color: #fff; }
.availability-calendar-page .calendar-day .badge-pending.severity-critical { background-color: #ef4444; color: #fff; }
.availability-calendar-page .calendar-day .badge-pending.severity-expired { background-color: #6b7280; color: #fff; }
.availability-calendar-page .calendar-day.unavailable { background-color: #e5e7eb; color: #6b7280; cursor: pointer; }
.availability-calendar-page .calendar-day.has-price { border-color: #10b981; }
.availability-calendar-page .calendar-day.unavailable .price { color: #6b7280; }
.availability-calendar-page .calendar-day.departure-day { position: relative; outline: 2px dashed #00A699; outline-offset: -4px; }
.availability-calendar-page .calendar-day.departure-day .departure-label { position: absolute; bottom: 4px; right: 6px; background: rgba(0, 166, 153, 0.85); color: #fff; font-size: 10px; padding: 2px 4px; border-radius: 6px; }
.availability-calendar-page .calendar-day.arrival-day { position: relative; outline: 2px dashed var(--primary-color); outline-offset: -4px; }
.availability-calendar-page .calendar-day.arrival-day .arrival-label { position: absolute; bottom: 4px; left: 6px; background: rgba(255, 56, 92, 0.85); color: #fff; font-size: 10px; padding: 2px 4px; border-radius: 6px; }
.availability-calendar-page .day-number { font-weight: bold; }
.availability-calendar-page .price { position: absolute; bottom: 0.5rem; right: 0.5rem; font-size: 0.875rem; }
.availability-calendar-page .legend { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; padding: 1rem; background-color: #f8fafc; border-radius: 0.5rem; }
.availability-calendar-page .legend-item { display: flex; align-items: center; gap: 0.5rem; }
.availability-calendar-page .legend-color { width: 20px; height: 20px; border-radius: 4px; border: 1px solid #e2e8f0; }
.availability-calendar-page .legend-color.legend-selected { background-color: #dbeafe; }
.availability-calendar-page .legend-color.legend-booked { background-color: #fee2e2; }
.availability-calendar-page .legend-color.legend-pending { background-color: #fff1c8; border-color: #f59e0b; }
.availability-calendar-page .legend-color.legend-price { background-color: #fff; border-color: #10b981; }
.availability-calendar-page .legend-color.legend-unavailable { background-color: #e5e7eb; }
.availability-calendar-page .legend-color.legend-arrival { background-color: transparent; border: 2px dashed var(--primary-color); }
.availability-calendar-page .legend-color.legend-departure { background-color: transparent; border: 2px dashed #00A699; }
.availability-calendar-page .price-editor { margin-top: 2rem; padding: 1.5rem; background-color: #f8fafc; border-radius: 0.5rem; border: 1px solid #e2e8f0; }
.availability-calendar-page .notification { position: fixed; bottom: 20px; right: 20px; padding: 10px 20px; border-radius: 4px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); z-index: 1000; transform: translateX(110%); transition: transform 0.3s ease-in-out; }
.availability-calendar-page .notification.show { transform: translateX(0); }
.availability-calendar-page .notification.success { background-color: #10b981; color: white; }
.availability-calendar-page .notification.error { background-color: #ef4444; color: white; }
.availability-calendar-page .property-card { padding: 1.5rem; margin-bottom: 2rem; background-color: #fff; border-radius: 0.5rem; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); border: 1px solid #e2e8f0; }
.availability-calendar-page .property-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; margin-top: 1rem; }
.availability-calendar-page .stat-card { padding: 1rem; background-color: #f8fafc; border-radius: 0.375rem; text-align: center; }
.availability-calendar-page .stat-value { font-size: 1.5rem; font-weight: bold; }

/* Amenities */
.amenities-section {
    padding: 4rem 0;
    background-color: var(--bg-light);
}

.amenities-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.amenity-card {
    background: white;
    border-radius: var(--radius-lg);
    padding: 2rem;
    text-align: center;
    transition: all var(--transition-base);
    box-shadow: var(--shadow-sm);
    cursor: pointer;
}

.amenity-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-md);
}

.amenity-icon {
    width: 64px;
    height: 64px;
    background: var(--bg-light);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    transition: all var(--transition-base);
}

.amenity-card:hover .amenity-icon {
    background: var(--primary-color);
    transform: scale(1.1);
}

.amenity-icon i {
    font-size: 1.75rem;
    color: var(--primary-color);
    transition: all var(--transition-base);
}

.amenity-card:hover .amenity-icon i {
    color: white;
}

.amenity-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--text-color);
    margin-bottom: 1rem;
}

.amenity-description {
    color: var(--text-light);
    font-size: 0.95rem;
    line-height: 1.6;
}

.amenity-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 1rem 0;
}

.amenity-tag {
    background: var(--bg-light);
    color: var(--text-color);
    padding: 0.5rem 1rem;
    border-radius: var(--radius-full);
    font-size: 0.9rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: all var(--transition-fast);
}

.amenity-tag i {
    color: var(--primary-color);
    font-size: 1rem;
}

.amenity-tag:hover {
    background: var(--primary-color);
    color: white;
    transform: translateY(-2px);
}

.amenity-tag:hover i {
    color: white;
}

.amenity-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin: 1.5rem 0;
}

.amenity-list-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
}

.amenity-list-item:hover {
    background: var(--bg-light);
}

.amenity-list-item i {
    color: var(--primary-color);
    font-size: 1.25rem;
}

.amenity-list-item span {
    color: var(--text-color);
    font-size: 0.95rem;
}

@media (max-width: 768px) {
    .amenities-section {
        padding: 3rem 0;
    }
    
    .amenities-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .amenity-card {
        padding: 1.5rem;
    }
    
    .amenity-icon {
        width: 56px;
        height: 56px;
        margin-bottom: 1.25rem;
    }
    
    .amenity-icon i {
        font-size: 1.5rem;
    }
    
    .amenity-title {
        font-size: 1.1rem;
    }
    
    .amenity-list {
        grid-template-columns: 1fr 1fr;
    }
}

/* Hero Section */
.hero-section {
    background:
                linear-gradient(135deg, rgba(2, 6, 23, 0.76), rgba(2, 132, 199, 0.26) 55%, rgba(255, 56, 92, 0.22)),
                url('../images/morocco-bg.jpg') no-repeat center center;
    background-size: cover;
    min-height: 30vh;
    display: flex;
    align-items: center;
    position: relative;
    margin-top: -76px;
    padding-top: 76px;
}

.home-page .hero-section {
    min-height: 36vh;
    padding-top: calc(var(--navbar-h, 76px) + 18px);
    padding-bottom: 1.25rem;
    background-position: center 38%;
    isolation: isolate;
}

.home-page .hero-content {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    padding-top: 0;
}

.home-page .home-trust {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.home-page .home-trust-badge {
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, 0.10);
    background: rgba(255, 255, 255, 0.90);
    color: rgba(15, 23, 42, 0.92);
    font-weight: 600;
    box-shadow: 0 8px 18px rgba(2, 6, 23, 0.08);
}

.home-page .hero-search-box {
    border: 1px solid rgba(15, 23, 42, 0.08);
    -webkit-backdrop-filter: saturate(180%) blur(10px);
    backdrop-filter: saturate(180%) blur(10px);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 22px 60px rgba(2, 6, 23, 0.14);
    transition: box-shadow 180ms ease, border-color 180ms ease, background 180ms ease;
}

.home-page .hero-search-box .input-group {
    border-radius: 16px;
    overflow: visible;
    border: 1px solid rgba(15, 23, 42, 0.12);
    background: rgba(255, 255, 255, 0.98);
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.home-page .hero-search-box .input-group:focus-within {
    border-color: rgba(255, 56, 92, 0.42);
    box-shadow: 0 0 0 4px rgba(255, 56, 92, 0.12);
}

.home-page .hero-search-box .form-control::placeholder {
    color: rgba(100, 116, 139, 0.95);
}

.home-page .hero-search-box .input-group-text i {
    opacity: 0.9;
}

.home-page .hero-search-box .form-control,
.home-page .hero-search-box .form-select {
    background: transparent;
}

.home-page .hero-search-box .btn {
    border-radius: 16px;
}

.hero-content {
    color: white;
    text-shadow: 0 2px 4px rgba(0,0,0,0.2);
    animation: fadeInUp 0.8s ease;
    padding: 1rem 0;
}

.hero-title {
    font-size: 2.25rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
    line-height: 1.2;
}

.home-page .hero-title {
    font-size: clamp(2.05rem, 2.1vw + 1.25rem, 3.05rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    text-wrap: balance;
}

.hero-subtitle {
    font-size: 1.1rem;
    font-weight: 400;
    margin-bottom: 1.25rem;
    opacity: 0.9;
}

.home-page .hero-subtitle {
    font-size: clamp(1.05rem, 0.65vw + 0.95rem, 1.25rem);
    opacity: 0.92;
    text-wrap: pretty;
}

/* Search Box in Hero */
.hero-search-box {
    background: rgba(255, 255, 255, 0.98);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
    box-shadow: var(--shadow-lg);
    animation: slideUp 1s ease;
    position: relative;
    z-index: 2;
}

.hero-search-box .form-group {
    margin-bottom: 0.75rem;
}

.hero-search-box label {
    font-weight: 600;
    color: var(--text-color);
    margin-bottom: 0.25rem;
    display: block;
    font-size: 0.9rem;
}

.hero-search-box .form-control {
    border-radius: var(--radius-sm);
    border: 1px solid #E2E8F0;
    padding: 0.75rem 1rem;
    background-color: white;
    transition: all var(--transition-fast);
}

.hero-search-box .form-control:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(255, 56, 92, 0.1);
}

.hero-search-box .btn-search {
    width: 100%;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
    margin-top: 1rem;
    background-color: var(--primary-color);
    border: none;
    color: white;
    transition: all var(--transition-base);
}

.hero-search-box .btn-search:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.hero-search-box.hero-wide {
    max-width: 800px;
    margin: 0 auto;
}

.home-page .hero-search-box.hero-wide {
    width: 100%;
}

.home-quick-links {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 14px;
}

.home-quick-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255, 255, 255, 0.92);
    text-decoration: none;
    color: inherit;
    transition: box-shadow 140ms ease, border-color 140ms ease, background 140ms ease;
}

.home-quick-link:hover {
    border-color: rgba(255, 56, 92, 0.28);
    box-shadow: 0 14px 28px rgba(2, 6, 23, 0.10);
}

.home-quick-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px rgba(255, 56, 92, 0.18), 0 10px 24px rgba(0,0,0,0.10);
    border-color: rgba(255, 56, 92, 0.42);
}

.home-quick-link-icon {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 56, 92, 0.10);
    color: var(--primary-color);
    flex: 0 0 44px;
    font-size: 1.05rem;
    box-shadow: 0 10px 22px rgba(2, 6, 23, 0.08);
}

html[data-theme="dark"] .home-page .home-quick-link-icon {
    background: rgba(255, 56, 92, 0.16);
}

.home-quick-link-text {
    display: grid;
    gap: 2px;
    text-align: left;
}

.home-quick-link-title {
    font-weight: 700;
    color: #0f172a;
    line-height: 1.2;
}

.home-quick-link-subtitle {
    font-size: 0.92rem;
    color: #64748b;
    line-height: 1.2;
}

html[data-theme="dark"] .home-page .home-quick-link-title {
    color: rgba(226, 232, 240, 0.92);
}

html[data-theme="dark"] .home-page .home-quick-link-subtitle {
    color: rgba(148, 163, 184, 0.88);
}

.home-page .hero-search-box .form-control,
.home-page .hero-search-box .form-select,
.home-page .hero-search-box .input-group-text {
    min-height: 46px;
    font-size: 0.95rem;
}

.home-page .hero-search-box .input-group-text {
    padding-left: 0.85rem;
    padding-right: 0.6rem;
}

.home-page .hero-search-box .btn {
    min-height: 46px;
    font-weight: 600;
}

.home-page .hero-search-box .btn.btn-primary {
    border: none;
    background: linear-gradient(135deg, #ff385c 0%, #ff2e7a 45%, #ff385c 100%);
    box-shadow: 0 14px 28px rgba(255, 56, 92, 0.28);
    transition: transform 140ms ease, box-shadow 140ms ease, filter 140ms ease;
}

.home-page .hero-search-box .btn.btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 18px 42px rgba(255, 56, 92, 0.32);
    filter: saturate(1.05);
}

.home-page .hero-search-box .btn.btn-primary:active {
    transform: translateY(0px);
}

.home-page .hero-search-box .btn.btn-primary:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px rgba(255, 56, 92, 0.18), 0 18px 42px rgba(255, 56, 92, 0.32);
}

.home-page .hero-search-box .input-group-text {
    color: rgba(15, 23, 42, 0.70);
}

html[data-theme="dark"] .home-page .hero-search-box .input-group-text {
    color: rgba(226, 232, 240, 0.78);
}

@media (min-width: 992px) {
    .home-page .hero-section {
        align-items: flex-start;
        padding-top: calc(var(--navbar-h, 76px) + 94px);
    }

    .hero-search-box.hero-wide {
        max-width: 1100px;
    }
    .sticky-search.affixed {
        max-width: 1100px;
    }
    .home-quick-links {
        grid-template-columns: 1fr 1fr;
        gap: 14px;
    }

    .home-page #homeSearchForm {
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
        background: #ffffff;
        border: 1px solid rgba(15, 23, 42, 0.10);
        border-radius: 999px;
        padding: 8px;
        box-shadow: 0 12px 28px rgba(2, 6, 23, 0.10);
        gap: 0;
        margin-top: 0;
    }

    .home-page #homeSearchForm > * {
        margin-top: 0;
        padding-left: 0;
        padding-right: 0;
    }

    .home-page #homeSearchForm .home-search-note {
        display: none;
    }

    .home-page .hero-search-box.home-search-card {
        position: fixed;
        top: calc(var(--navbar-h, 76px) + 10px);
        left: 50%;
        transform: translateX(-50%);
        width: min(1100px, calc(100% - 24px));
        z-index: 9998;
        padding: 0;
        border: none;
        background: transparent;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }

    .home-page #homeSearchForm > [class*="col-"] {
        position: relative;
    }

    .home-page #homeSearchForm > :nth-child(2)::before,
    .home-page #homeSearchForm > :nth-child(3)::before,
    .home-page #homeSearchForm > :nth-child(4)::before,
    .home-page #homeSearchForm > :nth-child(5)::before {
        content: "";
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 1px;
        height: 28px;
        background: rgba(15, 23, 42, 0.10);
        pointer-events: none;
    }

    .home-page #homeSearchForm .input-group {
        border: none;
        border-radius: 999px;
        background: transparent;
        box-shadow: none;
    }

    .home-page #homeSearchForm .form-control,
    .home-page #homeSearchForm .form-select {
        border: none !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .home-page #homeSearchForm .btn {
        border-radius: 999px;
        padding-top: 8px;
        padding-bottom: 8px;
        font-size: 0.95rem;
    }
}

@media (max-width: 768px) {
    .home-page .hero-search-box.hero-wide {
        padding: 1rem;
        border-radius: 18px;
        overflow: hidden;
    }

    .home-page .sticky-search {
        position: static;
        top: auto;
        z-index: auto;
    }

    .home-page .sticky-search.affixed {
        position: static;
        top: auto;
        left: auto;
        transform: none;
        width: 100%;
        max-width: none;
        background: rgba(255, 255, 255, 0.98);
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }

    .home-page #homeSearchForm {
        --bs-gutter-x: 0.75rem;
        --bs-gutter-y: 0.75rem;
    }

    .home-page #homeSearchForm .input-group {
        border: 1px solid rgba(15, 23, 42, 0.12);
        border-radius: 16px;
        background: #fff;
        overflow: hidden;
    }

    .home-page #homeSearchForm .input-group-text {
        background: transparent !important;
    }

    .home-page #homeSearchForm .form-control,
    .home-page #homeSearchForm .form-select {
        background: transparent;
    }

    .home-page #homeSearchForm .btn {
        border-radius: 16px;
    }
}

@media (max-width: 420px) {
    .home-page .hero-search-box .form-control,
    .home-page .hero-search-box .form-select,
    .home-page .hero-search-box .input-group-text,
    .home-page .hero-search-box .btn {
        min-height: 50px;
        font-size: 0.98rem;
    }
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
}

.home-page .hero-overlay {
    background:
        radial-gradient(900px 480px at 50% 18%, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0) 64%),
        linear-gradient(180deg, rgba(2, 6, 23, 0.52), rgba(2, 6, 23, 0.22) 46%, rgba(2, 6, 23, 0.58));
}

html[data-theme="dark"] .home-page .home-trust-badge {
    background: rgba(15, 23, 42, 0.82);
    color: rgba(226, 232, 240, 0.92);
    border-color: rgba(148, 163, 184, 0.18);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.45);
}

html[data-theme="dark"] .home-page .hero-search-box {
    background: rgba(11, 18, 32, 0.86);
    border-color: rgba(148, 163, 184, 0.16);
    box-shadow: 0 26px 72px rgba(0, 0, 0, 0.55);
}

html[data-theme="dark"] .home-page .hero-search-box .input-group {
    background: rgba(11, 18, 32, 0.72);
    border-color: rgba(148, 163, 184, 0.22);
}

html[data-theme="dark"] .home-page .home-quick-link {
    background: rgba(11, 18, 32, 0.78);
    border-color: rgba(148, 163, 184, 0.18);
}

@media (prefers-reduced-motion: reduce) {
    .hero-content,
    .hero-search-box {
        animation: none !important;
    }
    .home-page .hero-search-box,
    .home-quick-link {
        transition: none !important;
    }
}

.home-page .home-section h2 {
    font-weight: 800;
    letter-spacing: -0.02em;
}

.home-page .category-box {
    border-radius: 18px;
    box-shadow: 0 10px 26px rgba(2, 6, 23, 0.12);
    transform: translateZ(0);
}

.home-page .category-box:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 36px rgba(2, 6, 23, 0.16);
}

.home-page .featured-city-card {
    box-shadow: 0 12px 28px rgba(2, 6, 23, 0.12);
}

.home-page .featured-city-overlay h3 {
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-bottom: 0.25rem;
}

.home-page .home-feature-card {
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    padding: 1.75rem 1.5rem;
    height: 100%;
    box-shadow: 0 10px 24px rgba(2, 6, 23, 0.08);
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.home-page .home-feature-card:hover {
    transform: translateY(-3px);
    border-color: rgba(255, 56, 92, 0.22);
    box-shadow: 0 18px 36px rgba(2, 6, 23, 0.12);
}

.home-page .property-card.compact {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 26px rgba(2, 6, 23, 0.10);
    border: 1px solid rgba(15, 23, 42, 0.08);
    transition: transform 160ms ease, box-shadow 160ms ease;
}

.home-page .property-card.compact:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 36px rgba(2, 6, 23, 0.14);
}

.home-page .property-cover-link {
    position: absolute;
    inset: 0;
    display: block;
    border-radius: inherit;
}

.home-page .property-title-link {
    color: inherit;
    text-decoration: none;
}

.home-page .property-title-link:hover {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.home-page .property-rating {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.90);
    border: 1px solid rgba(15, 23, 42, 0.10);
    box-shadow: 0 6px 14px rgba(2, 6, 23, 0.06);
    font-weight: 700;
    color: #0f172a;
    line-height: 1;
    font-size: 0.9rem;
}

.home-page .property-desc {
    color: #334155;
    margin-bottom: 0.75rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.8em;
}

.home-page .property-location {
    font-size: 0.92rem;
}

@media (max-width: 768px) {
    .home-page .hero-section {
        min-height: 44vh;
        padding-bottom: 1.25rem;
    }
}

.maxw-720 {
    max-width: 720px;
}

.sticky-search {
    position: sticky;
    top: 76px;
    z-index: 3;
    transition: opacity 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    will-change: opacity, transform;
}

.sticky-search.affixed {
    position: fixed;
    top: 76px;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 40px);
    max-width: 800px;
    background: rgba(255, 255, 255, 0.96);
    -webkit-backdrop-filter: saturate(180%) blur(8px);
    backdrop-filter: saturate(180%) blur(8px);
    box-shadow: var(--shadow-lg);
    border-radius: var(--radius-lg);
    padding: 0.75rem 1rem;
}

/* Home: Features icons and themed sections */
.features-icon { font-size: 2.5rem; color: #0d6efd; margin-bottom: 1rem; }
.bg-blue-light { background-color: rgba(13, 110, 253, 0.1); }
.section-blue { background-color: #e9f0ff; }

.host-banner {
    background: linear-gradient(rgba(0,0,0,0.7), rgba(0,0,0,0.7)), url('/assets/images/host-banner.jpg');
    background-size: cover;
    background-position: center;
}

.global-search {
    background-color: #f8f9fa;
}

.category-box {
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 20px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    transition: all var(--transition-base);
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px 15px;
    text-align: center;
    color: white;
}

.category-box:hover {
    transform: translateY(-10px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}

.category-box i {
    font-size: 3rem;
    margin-bottom: 15px;
}

.category-box h4 {
    margin-bottom: 0;
    font-weight: 600;
}

.bg-apartment { background: linear-gradient(135deg, #3b82f6, #1d4ed8); }
.bg-villa { background: linear-gradient(135deg, #10b981, #047857); }
.bg-riad { background: linear-gradient(135deg, #f59e0b, #b45309); }
.bg-house { background: linear-gradient(135deg, #6366f1, #4338ca); }
.bg-room { background: linear-gradient(135deg, #ec4899, #be185d); }
.bg-sea { background: linear-gradient(135deg, #06b6d4, #0e7490); }
.bg-pool { background: linear-gradient(135deg, #3b82f6, #1e40af); }
.bg-luxury { background: linear-gradient(135deg, #8b5cf6, #6d28d9); }
.bg-mountain { background: linear-gradient(135deg, #16a34a, #065f46); }
.bg-city { background: linear-gradient(135deg, #374151, #111827); }
.bg-desert { background: linear-gradient(135deg, #fbbf24, #b45309); }

.property-img {
    height: 200px;
    object-fit: cover;
    border-radius: 12px;
}

/* Featured Cities Section */
.featured-cities {
    padding: 4rem 0;
}

.featured-city-card {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: 1.5rem;
    cursor: pointer;
    transition: all var(--transition-base);
}

.featured-city-card img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    transition: all var(--transition-base);
}

.featured-city-card:hover img {
    transform: scale(1.05);
}

.featured-city-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.5rem;
    background: linear-gradient(transparent, rgba(0,0,0,0.7));
    color: white;
}

.featured-city-name {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.featured-city-properties {
    font-size: 0.9rem;
    opacity: 0.9;
}

/* Footer */
.footer {
    background-color: white;
    padding: 4rem 0 2rem;
    margin-top: 4rem;
    border-top: 1px solid #E2E8F0;
}

.footer-brand h4 {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--text-color);
}

.footer-newsletter .input-group {
    box-shadow: var(--shadow-sm);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.footer-newsletter .form-control {
    border: none;
    padding: 0.75rem 1rem;
}

.footer-newsletter .btn {
    padding: 0.75rem 1.5rem;
}

.footer h5 {
    color: var(--text-color);
    font-weight: 600;
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
}

.footer h6 {
    color: var(--text-color);
    font-weight: 600;
    margin-bottom: 1rem;
    font-size: 1rem;
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 0.75rem;
}

.footer-links a {
    color: var(--text-light);
    text-decoration: none;
    transition: all var(--transition-fast);
    display: inline-flex;
    align-items: center;
}

.footer-links a:hover {
    color: var(--primary-color);
    transform: translateX(5px);
}

.footer-contact {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-contact li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1rem;
    color: var(--text-light);
}

.footer-contact i {
    color: var(--primary-color);
    margin-right: 1rem;
    margin-top: 0.25rem;
}

.footer-contact-link {
    color: var(--text-light);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem .5rem;
    line-height: 1.2;
}

.footer-contact-link:hover {
    color: var(--primary-color);
    text-decoration: none;
}

.footer-contact-phone {
    white-space: nowrap;
    font-weight: 600;
}

.footer-contact-badge {
    white-space: nowrap;
    font-size: .78rem;
    font-weight: 700;
    padding: .18rem .55rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: var(--text-light);
}

.social-links {
    display: flex;
    gap: 1rem;
}

.social-links a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: var(--bg-light);
    border-radius: 50%;
    color: var(--text-light);
    transition: all var(--transition-base);
}

.social-links a:hover {
    color: white;
    background-color: var(--primary-color);
    transform: translateY(-3px);
}

.footer-bottom {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid #E2E8F0;
}

.footer-legal {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: flex-end;
    gap: 2rem;
}

.footer-legal a {
    color: var(--text-light);
    text-decoration: none;
    font-size: 0.9rem;
    transition: color var(--transition-fast);
}

.footer-legal a:hover {
    color: var(--primary-color);
}

@media (max-width: 768px) {
    .hero-section {
        min-height: 45vh;
    }
    
    .hero-title {
        font-size: 1.75rem;
    }
    
    .hero-subtitle {
        font-size: 1rem;
    }
    
    .hero-search-box {
        margin: 0.5rem;
        padding: 1rem;
    }
    
    .featured-city-card {
        margin-bottom: 1rem;
    }
    
    .footer {
        padding: 3rem 0 1.5rem;
    }
    
    .footer-bottom {
        text-align: center;
        margin-top: 2rem;
        padding-top: 1.5rem;
    }
    
    .footer-legal {
        justify-content: center;
        flex-wrap: wrap;
        gap: 1rem;
        margin-top: 1rem;
    }
    
    .social-links {
        justify-content: center;
    }
}

@media (max-width: 768px) {
    .hero-section {
        min-height: 60vh;
    }
    
    .hero-title {
        font-size: 2.5rem;
    }
    
    .hero-subtitle {
        font-size: 1.2rem;
    }
    
    .search-box {
        margin: 1rem;
        padding: 1.5rem;
    }
    
    .property-card {
        margin-bottom: 1.5rem;
    }
    
    .navbar {
        padding: 0.5rem 0;
    }
    
    .nav-link {
        padding: 0.5rem;
    }
    
    .dropdown-menu {
        margin-top: 0.5rem;
    }
}

/* Loading States */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-base);
}

.loading-overlay.active {
    opacity: 1;
    visibility: visible;
}

.loading-spinner {
    width: 48px;
    height: 48px;
    border: 3px solid var(--bg-light);
    border-radius: 50%;
    border-top-color: var(--primary-color);
    animation: spin 1s linear infinite;
}

.loading-text {
    position: absolute;
    bottom: 30%;
    left: 50%;
    transform: translateX(-50%);
    color: var(--text-color);
    font-weight: 500;
}

/* Skeleton Loading */
.skeleton {
    background: linear-gradient(
        90deg,
        var(--bg-light) 25%,
        #E2E8F0 50%,
        var(--bg-light) 75%
    );
    background-size: 200% 100%;
    animation: shimmer 1.5s infinite;
}

.skeleton-text {
    height: 1rem;
    margin-bottom: 0.5rem;
    border-radius: var(--radius-sm);
}

.skeleton-title {
    height: 1.5rem;
    margin-bottom: 1rem;
    width: 70%;
    border-radius: var(--radius-sm);
}

.skeleton-image {
    width: 100%;
    padding-top: 66.67%;
    border-radius: var(--radius-lg);
}

.skeleton-button {
    height: 2.5rem;
    width: 100%;
    border-radius: var(--radius-sm);
}

.skeleton-circle {
    width: 48px;
    height: 48px;
    border-radius: 50%;
}

/* Animations */
@keyframes spin {
    to { transform: rotate(360deg); }
}

@keyframes shimmer {
    to { background-position: -200% 0; }
}

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

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

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

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

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Animation Classes */
.fade-in {
    animation: fadeIn var(--transition-base);
}

.slide-in-right {
    animation: slideInRight var(--transition-base);
}

.slide-in-left {
    animation: slideInLeft var(--transition-base);
}

.slide-in-up {
    animation: slideInUp var(--transition-base);
}

.slide-in-down {
    animation: slideInDown var(--transition-base);
}

.scale-in {
    animation: scaleIn var(--transition-base);
}

/* Transitions */
.fade-enter-active,
.fade-leave-active {
    transition: opacity var(--transition-base);
}

.fade-enter,
.fade-leave-to {
    opacity: 0;
}

.slide-enter-active,
.slide-leave-active {
    transition: transform var(--transition-base), opacity var(--transition-base);
}

.slide-enter,
.slide-leave-to {
    opacity: 0;
    transform: translateY(20px);
}

/* Loading States for Components */
.loading-btn {
    position: relative;
    pointer-events: none;
}

.loading-btn .btn-content {
    opacity: 0;
}

.loading-btn::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

.loading-card {
    position: relative;
    overflow: hidden;
}

.loading-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(
        90deg,
        transparent 25%,
        rgba(255, 255, 255, 0.3) 50%,
        transparent 75%
    );
    background-size: 200% 100%;
    animation: shimmer 1.5s infinite;
}

/* Image Loading */
/* Image Loading overlay applied to wrapper for proper stacking */
.property-image-wrapper.image-loading::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: var(--bg-light);
    z-index: 2;
}

.property-image-wrapper.image-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 30px;
    height: 30px;
    border: 2px solid transparent;
    border-top-color: var(--primary-color);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    z-index: 3;
}

.property-image-wrapper.image-loaded::before,
.property-image-wrapper.image-loaded::after { display: none; }

.image-loaded {
    animation: fadeIn var(--transition-base);
}

/* Map Search Page */
body.map-search-page #right-pane { max-height: 80vh; }
body.map-search-page .map-ai-input-group { width: 100%; max-width: none; }
body.map-search-page #map-ai-top { border: 1px solid rgba(0,0,0,0.06); border-radius: 16px; box-shadow: 0 8px 18px rgba(0,0,0,0.10); }
body.map-search-page #map-ai-top .card-body { padding: 10px; }
body.map-search-page #map-ai-top .input-group-text { background: #fff; border-right: 0; }
body.map-search-page #map-ai-top #ai-query { border-left: 0; }
body.map-search-page #map-ai-top #ai-query:focus { box-shadow: none; }
body.map-search-page #map-ai-top #ai-search-btn { border-left: 0; }
@media (min-width: 769px) { body.map-search-page #map-ai-top { position: sticky; top: 10px; z-index: 1030; } }
body.map-search-page .icon-only { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; }
body.map-search-page .sort-btn { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: 0; }
body.map-search-page .sort-btn.dropdown-toggle::after { display: none; }
body.map-search-page #map { width: 100%; position: relative; }
body.map-search-page .map-controls { position: absolute; top: 10px; left: 0; right: 0; z-index: 1000; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; padding: 0 10px; }
body.map-search-page #search-area-btn { position: static; justify-self: center; border-radius: 999px; background: #FF385C; color: #fff; border: none; box-shadow: 0 4px 12px rgba(0,0,0,0.15); padding: 8px 14px; }
body.map-search-page #open-filters-btn { position: static; justify-self: end; border-radius: 999px; background: #fff; color: #000; border: none; box-shadow: 0 4px 12px rgba(0,0,0,0.15); padding: 8px 12px; }
body.map-search-page #toggle-results-btn { position: static; justify-self: end; border-radius: 999px; background: #fff; color: #000; border: none; box-shadow: 0 4px 12px rgba(0,0,0,0.15); padding: 8px 12px; display: none; }
body.map-search-page #toggle-zone-tools { position: static; justify-self: end; border-radius: 999px; background: #fff; color: #000; border: none; box-shadow: 0 4px 12px rgba(0,0,0,0.15); padding: 8px 12px; }
body.map-search-page .quick-filters { display: flex; gap: 8px; flex-wrap: nowrap; overflow: auto; scrollbar-width: none; -ms-overflow-style: none; padding: 2px 2px; }
body.map-search-page .quick-filters::-webkit-scrollbar { display: none; }
body.map-search-page .quick-filters .btn { border-radius: 999px; white-space: nowrap; }
body.map-search-page .zone-tools-panel { display: none; background: rgba(255,255,255,0.98); backdrop-filter: blur(6px); border-radius: 16px; box-shadow: 0 10px 24px rgba(0,0,0,0.14); padding: 10px; }
body.map-search-page .zone-tools-panel.open { display: block; }
body.map-search-page .card.highlight { outline: 2px solid #FF385C; }
body.map-search-page .filters-sticky { position: sticky; top: 80px; z-index: 1020; }
body.map-search-page .filters-sticky.collapsed { position: static; }
body.map-search-page .filters-sticky.collapsed .card-body { display: none; }
body.map-search-page .filters-sticky .card-header { background: #fff; }
body.map-search-page .carte-propriete { cursor: pointer; transition: transform 160ms ease, box-shadow 160ms ease; }
body.map-search-page .carte-propriete:hover { transform: translateY(-2px) scale(1.01); box-shadow: 0 10px 18px rgba(0,0,0,0.12); }
body.map-search-page .card-grid .card { border: none; border-radius: 16px; overflow: hidden; }
body.map-search-page .card-grid .image-link { display: block; }
body.map-search-page:not(.list-view) .card-grid .image-link { aspect-ratio: 4 / 3; overflow: hidden; }
body.map-search-page:not(.list-view) .card-grid .image-link img { width: 100%; height: 100%; object-fit: cover; }
body.map-search-page .property-list img.card-img-top { width: 100%; object-fit: cover; }
body.map-search-page .card-grid .badge-featured { background: #fff; color: #000; border-radius: 999px; padding: 6px 10px; font-weight: 600; box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
body.map-search-page .favorite-btn { background: #fff; border-radius: 999px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
body.map-search-page .favorite-btn i.fas.fa-heart { color: #FF385C; }
body.map-search-page .leaflet-marker-pane .badge, body.map-search-page .badge-price { background: #fff; color: #000; border-radius: 999px; padding: 6px 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.15); font-weight: 600; }
body.map-search-page .custom-cluster { background: transparent; }
body.map-search-page .custom-cluster .badge-cluster { background: #fff; color: #000; border-radius: 999px; padding: 6px 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.15); font-weight: 600; }
body.map-search-page .leaflet-popup-content img[data-fallback] { width: 90px !important; max-width: 90px !important; height: 70px !important; object-fit: cover; border-radius: 6px; }
body.map-search-page .card-grid .card .card-body { padding: 0.75rem 0.75rem 1rem; }
body.map-search-page .card-grid .card .card-title { font-size: 1rem; }
body.map-search-page .leaflet-control-zoom { border: none; box-shadow: 0 2px 8px rgba(0,0,0,0.15); border-radius: 12px; overflow: hidden; }
body.map-search-page .leaflet-control-zoom a { background: #fff; color: #000; width: 38px; height: 38px; line-height: 38px; border: none; }
body.map-search-page.view-mode-list .card-grid,
body.map-search-page.list-view .card-grid { display: block; }
body.map-search-page.view-mode-list .card-grid > [class^="col-"],
body.map-search-page.list-view .card-grid > [class^="col-"] { width: 100%; }
body.map-search-page.view-mode-list .map-list-card,
body.map-search-page.list-view .map-list-card {
    display: flex;
    gap: 14px;
    align-items: stretch;
    padding: 12px;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 16px;
    background: #fff;
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}
body.map-search-page.view-mode-list .map-list-card:hover,
body.map-search-page.list-view .map-list-card:hover { transform: translateY(-1px); box-shadow: 0 10px 20px rgba(0,0,0,0.10); border-color: rgba(0,0,0,0.14); }
body.map-search-page.view-mode-list .map-list-media,
body.map-search-page.list-view .map-list-media { flex: 0 0 168px; width: 168px; height: 120px; border-radius: 14px; overflow: hidden; }
body.map-search-page.view-mode-list .map-list-media .image-link,
body.map-search-page.list-view .map-list-media .image-link { width: 100%; height: 100%; display: block; }
body.map-search-page.view-mode-list .map-list-media img,
body.map-search-page.list-view .map-list-media img { width: 100%; height: 100%; object-fit: cover; }
body.map-search-page.view-mode-list .map-list-body,
body.map-search-page.list-view .map-list-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
body.map-search-page.view-mode-list .map-list-top,
body.map-search-page.list-view .map-list-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
body.map-search-page.view-mode-list .map-list-title,
body.map-search-page.list-view .map-list-title { font-size: 1.05rem; font-weight: 650; line-height: 1.2; margin: 0; }
body.map-search-page.view-mode-list .map-list-title a,
body.map-search-page.list-view .map-list-title a { color: inherit; }
body.map-search-page.view-mode-list .map-list-price,
body.map-search-page.list-view .map-list-price { white-space: nowrap; }
body.map-search-page.view-mode-list .map-list-location,
body.map-search-page.list-view .map-list-location { max-width: 100%; }
body.map-search-page.view-mode-list .map-list-badges,
body.map-search-page.list-view .map-list-badges { margin-top: 2px; }
body.map-search-page.view-mode-list .map-list-total,
body.map-search-page.list-view .map-list-total { margin-top: auto; }
body.map-search-page:not(.view-mode-list):not(.list-view) .carte-propriete:not(.compact) img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
body.map-search-page.view-mode-list .property-list img.card-img-top,
body.map-search-page.list-view .property-list img.card-img-top { width: 100%; max-width: none; height: 100%; flex: 0 0 auto; }
body.map-search-page .property-list .skeleton { display: grid; grid-template-columns: 1fr; gap: 12px; }
body.map-search-page .skeleton-card { height: 100px; border-radius: 8px; background: linear-gradient(90deg, #eee 25%, #f5f5f5 37%, #eee 63%); background-size: 400% 100%; animation: shimmer 1.2s ease-in-out infinite; }
body.map-search-page .shape-controls { justify-self: end; display: flex; gap: 8px; flex-wrap: wrap; }
body.map-search-page .shape-controls .btn { border-radius: 999px; }
body.map-search-page .shape-controls .form-select { width: 180px; min-width: 160px; }

body.map-search-page.view-mode-list #left-map { display: none !important; }
body.map-search-page.view-mode-list #right-pane { max-height: none !important; overflow: visible !important; }
body.map-search-page.view-mode-list .mobile-sheet-handle { display: none !important; }

@media (max-width: 768px) {
    body.map-search-page .container-fluid.mt-4 { margin-top: 0 !important; padding-left: 0; padding-right: 0; }
    body.map-search-page #left-map { height: calc(100dvh - var(--navbar-h, 76px)); }
    body.map-search-page #map { height: calc(100dvh - var(--navbar-h, 76px)); min-height: calc(100dvh - var(--navbar-h, 76px)); }
    body.map-search-page #right-pane { position: fixed; left: 0; right: 0; bottom: 0; height: min(76dvh, 720px); max-height: 76dvh; background: #fff; z-index: 2000; border-top-left-radius: 18px; border-top-right-radius: 18px; box-shadow: 0 -10px 30px rgba(0,0,0,0.18); transform: translateY(calc(100% - 76px - env(safe-area-inset-bottom))); transition: transform 180ms ease-out; padding-bottom: env(safe-area-inset-bottom); }
    body.map-search-page.mobile-pane-peek #right-pane { transform: translateY(calc(100% - 76px - env(safe-area-inset-bottom))); }
    body.map-search-page.mobile-pane-half #right-pane { transform: translateY(calc(35% + env(safe-area-inset-bottom))); }
    body.map-search-page.mobile-pane-full #right-pane { transform: translateY(0); }
    body.map-search-page #right-pane { max-height: none !important; }
    body.map-search-page #right-pane .filters-sticky { position: static; top: auto; }
    body.map-search-page .map-controls { grid-template-columns: 1fr; gap: 8px; top: calc(10px + env(safe-area-inset-top)); padding: 0 10px; }
    body.map-search-page .map-controls .top-row { display: flex; gap: 8px; align-items: center; justify-content: space-between; }
    body.map-search-page .map-controls .top-row .left { display: flex; gap: 8px; align-items: center; }
    body.map-search-page #open-filters-btn { justify-self: start; }
    body.map-search-page #toggle-results-btn { display: inline-flex; justify-self: start; }
    body.map-search-page #toggle-zone-tools { display: inline-flex; }
    body.map-search-page .shape-controls { justify-self: start; overflow-x: auto; padding-bottom: 2px; }
    body.map-search-page.view-mode-list .map-list-card,
    body.map-search-page.list-view .map-list-card { padding: 10px; gap: 12px; }
    body.map-search-page.view-mode-list .map-list-media,
    body.map-search-page.list-view .map-list-media { flex-basis: 132px; width: 132px; height: 96px; }
    body.map-search-page .mobile-sheet-handle { position: sticky; top: 0; z-index: 5; background: #fff; padding: 10px 0 6px; border-top-left-radius: 18px; border-top-right-radius: 18px; }
    body.map-search-page .mobile-sheet-handle .grab { width: 44px; height: 5px; border-radius: 999px; background: #d1d5db; margin: 0 auto; }
    body.map-search-page .mobile-sheet-handle .title { text-align: center; font-weight: 600; font-size: 0.95rem; margin-top: 6px; }
    body.map-search-page .mobile-sheet-handle .sub { text-align: center; color: #6b7280; font-size: 0.85rem; margin-top: 2px; }
    body.map-search-page .zone-tools-panel { padding: 10px; }

    body.map-search-page.view-mode-list .container-fluid.mt-4 { margin-top: var(--navbar-h, 76px) !important; padding-left: 12px; padding-right: 12px; }
    body.map-search-page.view-mode-list #right-pane { position: relative !important; left: auto !important; right: auto !important; bottom: auto !important; height: auto !important; max-height: none !important; transform: none !important; box-shadow: none !important; border-radius: 0 !important; z-index: auto !important; padding-bottom: 0 !important; overflow: visible !important; }
}

.map-search-container {
    display: flex;
    height: calc(100vh - 76px);
    margin-top: 76px;
}

.map-search-sidebar {
    width: 450px;
    height: 100%;
    display: flex;
    flex-direction: column;
    border-right: 1px solid #E2E8F0;
    background: white;
}

.map-search-filters {
    padding: 1.5rem;
    border-bottom: 1px solid #E2E8F0;
    overflow-y: auto;
}

.filter-group {
    margin-bottom: 1.5rem;
}

.filter-group h4 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

.price-range {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.price-range input {
    width: 120px;
}

.rooms-beds .counter-group {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.counter {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.counter button {
    width: 32px;
    height: 32px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

.map-search-results {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
}

.results-count {
    font-weight: 600;
    margin-bottom: 1rem;
}

.map-property-card {
    border: 1px solid #E2E8F0;
    border-radius: var(--radius-lg);
    margin-bottom: 1rem;
    overflow: hidden;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.map-property-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.map-property-card.highlighted {
    border-color: var(--primary-color);
    box-shadow: var(--shadow-md);
}

.map-property-card .property-image {
    position: relative;
    padding-top: 66.67%;
}

.map-property-card .property-image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.map-property-card .property-info {
    padding: 1rem;
}

.map-property-card h5 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.map-property-card .property-details,
.map-property-card .property-amenities {
    color: var(--text-light);
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}

.map-property-card .property-price {
    font-size: 1rem;
    margin-bottom: 0;
}

.map-container {
    flex: 1;
    height: 100%;
}

.map-search-input {
    margin: 10px;
    padding: 12px 16px;
    width: 300px;
    background: white;
    border: 1px solid #E2E8F0;
    border-radius: var(--radius-full);
    box-shadow: var(--shadow-md);
    font-size: 1rem;
}

.map-search-input:focus {
    outline: none;
    border-color: var(--primary-color);
}

.map-info-window {
    padding: 0.5rem;
    max-width: 300px;
}

.map-info-window img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    border-radius: var(--radius-sm);
    margin-bottom: 0.75rem;
}

.map-info-window h5 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.map-info-window p {
    font-size: 0.9rem;
    margin-bottom: 0.25rem;
    color: var(--text-light);
}

.map-info-window .price {
    color: var(--text-color);
    font-weight: 600;
}

@media (max-width: 768px) {
    .map-search-container {
        flex-direction: column;
    }
    
    .map-search-sidebar {
        width: 100%;
        height: 50%;
    }
    
    .map-container {
        height: 50%;
    }
    
    .map-search-input {
        width: calc(100% - 20px);
    }
}

/* Leaflet Map Styles */
#map {
    height: calc(100vh - var(--navbar-h, 76px));
    height: calc(100dvh - var(--navbar-h, 76px));
    width: 100%;
    z-index: 1;
}

.leaflet-control-geocoder {
    margin-top: 10px;
}

.custom-marker {
    transition: transform 0.2s;
}

.custom-marker:hover {
    transform: scale(1.2);
}

.leaflet-popup-content {
    text-align: center;
    font-family: Arial, sans-serif;
}

.leaflet-popup-content a {
    display: inline-block;
    margin-top: 10px;
    padding: 5px 10px;
    background-color: #FF385C;
    color: white;
    text-decoration: none;
    border-radius: 4px;
}
/* RTL Overrides */
html[dir="rtl"] {
    direction: rtl;
}

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

html[dir="rtl"] .dropdown-item i,
html[dir="rtl"] .nav-link i,
html[dir="rtl"] .dropdown-item-icon {
    margin-left: 0.5rem;
    margin-right: 0;
}

html[dir="rtl"] .custom-select::after {
    left: 1rem;
    right: auto;
}

html[dir="rtl"] .custom-select select {
    padding: 0.75rem 1rem 0.75rem 2.5rem;
    text-align: right;
}

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

html[dir="rtl"] .input-group .form-control:first-child {
    border-top-right-radius: var(--radius-sm);
    border-bottom-right-radius: var(--radius-sm);
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

html[dir="rtl"] .input-group .form-control:last-child {
    border-top-left-radius: var(--radius-sm);
    border-bottom-left-radius: var(--radius-sm);
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

html[dir="rtl"] .property-location i,
html[dir="rtl"] .property-amenity i {
    margin-left: 0.5rem;
    margin-right: 0;
}

/* Navbar and Dropdown fine-tuning for RTL */
html[dir="rtl"] .dropdown-menu {
    transform-origin: top left;
}

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

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

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

/* Footer spacing and alignment in RTL */
html[dir="rtl"] .footer-legal {
    justify-content: flex-start;
}

html[dir="rtl"] .footer-contact i {
    margin-left: 1rem;
    margin-right: 0;
}
html[dir="rtl"] .footer-links a:hover {
    transform: translateX(-5px);
}

/* Map search sidebar border side in RTL */
html[dir="rtl"] .map-search-sidebar {
    border-left: 1px solid #E2E8F0;
    border-right: none;
}

/* Forms and inputs alignment for RTL */
html[dir="rtl"] input[type="text"],
html[dir="rtl"] input[type="search"],
html[dir="rtl"] input[type="email"],
html[dir="rtl"] input[type="tel"],
html[dir="rtl"] textarea {
    text-align: right;
}

html[dir="rtl"] .input-group-text i {
    margin-left: 0.5rem;
    margin-right: 0;
}

/* Checkboxes and switches in RTL */
html[dir="rtl"] .form-check {
    padding-left: 0;
    padding-right: 1.25rem;
}

html[dir="rtl"] .form-check .form-check-input {
    float: right;
    margin-left: 0;
    margin-right: -1.25rem;
}

html[dir="rtl"] .form-switch {
    padding-left: 0;
    padding-right: 2.5rem;
}

html[dir="rtl"] .form-switch .form-check-input {
    margin-left: 0;
    margin-right: -2.5rem;
}
 
/* Settings page modern styles */
.settings-container {
    margin-top: 0;
}

.settings-title {
    font-weight: 700;
    color: var(--text-color);
}

.settings-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}
.settings-header .btn {
    border-radius: 12px;
}
.settings-header .actions .btn {
    border: 1px solid #E5E7EB;
    background: #fff;
}
.settings-header .actions .btn:hover {
    background: #F8FAFC;
}
.settings-header .breadcrumbs {
    color: var(--text-light);
    font-size: 0.9rem;
}
.settings-header .actions {
    display: flex;
    gap: .5rem;
}

.settings-card {
    border: 1px solid #E2E8F0;
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
    background: #fff;
    transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}
.settings-card:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(0,0,0,0.10); }

.settings-card-title {
    font-weight: 600;
    color: var(--text-color);
}

.settings-card .card-body { padding: 1.25rem 1.25rem; }
.settings-summary .summary-meta { display:flex; flex-wrap:wrap; gap:.5rem; }
.settings-summary .summary-chip { display:inline-flex; align-items:center; gap:.4rem; border:1px solid #E5E7EB; border-radius: 999px; padding: .25rem .6rem; background:#F8FAFC; font-size:.9rem; color: var(--text-color); }
.settings-summary .summary-chip i { color: var(--primary-color); }
.settings-collapse-toggle { border-radius: 999px; padding: .25rem .6rem; }
.settings-collapse-toggle i { transition: transform var(--transition-fast); }
.settings-collapse-toggle[aria-expanded="true"] i { transform: rotate(180deg); }
.settings-profile-header { display:flex; align-items:center; gap:1rem; }
.settings-avatar { position:relative; width:72px; height:72px; border-radius:50%; overflow:hidden; box-shadow: var(--shadow-sm); cursor: pointer; }
.settings-avatar img { width:100%; height:100%; object-fit:cover; }
.settings-avatar .edit-badge { position:absolute; right:-4px; bottom:-4px; background:#fff; border:1px solid #E2E8F0; border-radius:12px; padding:4px 8px; font-size:.8rem; box-shadow: var(--shadow-sm); }
.settings-avatar:focus-visible { outline: 3px solid rgba(255,56,92,0.35); outline-offset: 2px; }
.sticky-actions.profile-sticky-actions { justify-content: space-between; align-items: center; }
.sticky-actions.profile-sticky-actions { flex-wrap: wrap; row-gap: .5rem; }
.sticky-actions.profile-sticky-actions .profile-status { min-height: 18px; }
.sticky-actions.prefs-sticky-actions { justify-content: space-between; align-items: center; flex-wrap: wrap; row-gap: .5rem; }
.sticky-actions.prefs-sticky-actions .prefs-status { min-height: 18px; }
.sticky-actions.pwd-sticky-actions { justify-content: space-between; align-items: center; flex-wrap: wrap; row-gap: .5rem; }
.sticky-actions.pwd-sticky-actions .pwd-status { min-height: 18px; }
.settings-field { margin-bottom:1rem; }
.settings-field .form-label { color:#4A5568; font-weight:600; }
.settings-actions { display:flex; gap:.5rem; }
.settings-muted { color:#718096; }

.input-group .btn { border-radius: var(--radius-sm); }
.input-group .form-control { border-radius: var(--radius-sm); }
.settings-card .input-group-text.settings-select-icon {
    width: 44px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #E5E7EB;
    background: #fff;
    border-radius: 10px 0 0 10px;
}
html[dir="rtl"] .settings-card .input-group-text.settings-select-icon { border-radius: 0 10px 10px 0; }
.settings-card .input-group-text.settings-select-icon + .form-select { border-radius: 0 10px 10px 0; }
html[dir="rtl"] .settings-card .input-group-text.settings-select-icon + .form-select { border-radius: 10px 0 0 10px; }
.settings-card .input-group-text.settings-select-icon .flag-icon { width: 20px; height: 15px; object-fit: cover; border-radius: 2px; }
.settings-card .currency-symbol { font-weight: 700; color: var(--text-color); line-height: 1; }

.settings-divider { height:1px; background:#E2E8F0; margin:1rem 0; }

.recovery-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:.5rem; }
@media (max-width:768px){ .recovery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.settings-sidebar {
    border: none;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    position: sticky;
    top: 76px;
}

.settings-sidebar-title {
    font-size: 0.9rem;
    color: var(--text-light);
    font-weight: 600;
    margin-bottom: 0.75rem;
}

.settings-menu .nav-link {
    color: var(--text-color);
    border-radius: var(--radius-sm);
    padding: 0.5rem 0.75rem;
    transition: all var(--transition-fast);
}
.settings-menu .nav-link i { color: var(--primary-color); }
.settings-menu .nav-link:hover { background-color: rgba(255,56,92,0.08); }
.settings-menu .nav-link.active {
    background-color: rgba(255,56,92,0.12);
    color: var(--primary-color);
    box-shadow: var(--shadow-sm);
}

.settings-section { scroll-margin-top: 140px; }
.settings-section .section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .75rem;
}
.settings-section .section-help { color: var(--text-light); font-size: .9rem; }

.form-grid-two {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
@media (max-width:768px){ .form-grid-two { grid-template-columns: 1fr; } }

.sticky-actions {
    position: sticky;
    bottom: 12px;
    background: rgba(255,255,255,0.85);
    backdrop-filter: saturate(180%) blur(6px);
    padding: .5rem;
    border-radius: var(--radius-sm);
    display: flex;
    gap: .5rem;
    justify-content: flex-end;
}

.form-control-lg, .form-select-lg {
    border-radius: var(--radius-sm);
}

/* Compact inputs for settings */
.settings-card .form-control,
.settings-card .form-select {
    height: 44px;
    padding: .5rem .75rem;
    border: 1px solid #E5E7EB;
    border-radius: 10px;
}
.settings-card .form-control:focus,
.settings-card .form-select:focus {
    border-color: #CBD5E1;
    box-shadow: 0 0 0 4px rgba(203,213,225,0.35);
}
.settings-card .btn {
    height: 40px;
}

.progress { border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }

.invalid-feedback { display: none; }

/* Fine-tuning spacing */
.settings-card .form-label { font-weight: 500; }
.settings-card .btn { border-radius: var(--radius-sm); }

/* Dropdown caret spacing for RTL */
html[dir="rtl"] .dropdown-toggle::after {
    margin-left: 0;
    margin-right: 0.255em;
}

/* Badges inside dropdown items */
html[dir="rtl"] .dropdown-item .badge {
    margin-left: 0.5rem;
    margin-right: 0;
}

/* Admin navbar adjustments for RTL */
html[dir="rtl"] .navbar-dark .navbar-nav .nav-link .badge {
    margin-left: 0.5rem;
    margin-right: 0;
}

/* Close button position in alerts (Bootstrap .btn-close) */
html[dir="rtl"] .alert .btn-close {
    left: 0.75rem;
    right: auto;
}

/* Hero text alignment in RTL */
html[dir="rtl"] .hero-title,
html[dir="rtl"] .hero-subtitle,
html[dir="rtl"] .hero-search-box,
html[dir="rtl"] .search-box {
    text-align: right;
}

/* Breadcrumb RTL */
html[dir="rtl"] .breadcrumb {
    flex-direction: row-reverse;
    text-align: right;
}
html[dir="rtl"] .breadcrumb-item + .breadcrumb-item {
    padding-left: 0;
    padding-right: var(--bs-breadcrumb-item-padding-x, .5rem);
}
html[dir="rtl"] .breadcrumb-item + .breadcrumb-item::before {
    transform: scaleX(-1);
    margin-left: 0.5rem;
    margin-right: 0;
}

/* Pagination RTL */
html[dir="rtl"] .pagination {
    flex-direction: row-reverse;
}
html[dir="rtl"] .pagination .page-link i {
    margin-left: 0.5rem;
    margin-right: 0;
}
html[dir="rtl"] .pagination .fa-chevron-left,
html[dir="rtl"] .pagination .fa-chevron-right {
    transform: scaleX(-1);
}
html[dir="rtl"] .pagination .page-item:first-child .page-link {
    border-top-right-radius: 0.375rem;
    border-bottom-right-radius: 0.375rem;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
html[dir="rtl"] .pagination .page-item:last-child .page-link {
    border-top-left-radius: 0.375rem;
    border-bottom-left-radius: 0.375rem;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

/* Tables RTL */
html[dir="rtl"] .table {
    text-align: right;
}
html[dir="rtl"] .table th,
html[dir="rtl"] .table td {
    text-align: right;
}
html[dir="rtl"] .text-start {
    text-align: right !important;
}
html[dir="rtl"] .text-end {
    text-align: left !important;
}
html[dir="rtl"] .table i {
    margin-left: 0.5rem;
    margin-right: 0;
}

/* List Group RTL */
html[dir="rtl"] .list-group-item {
    text-align: right;
}
html[dir="rtl"] .list-group-item i {
    margin-left: 0.5rem;
    margin-right: 0;
}

/* Card RTL */
html[dir="rtl"] .card-header,
html[dir="rtl"] .card-body,
html[dir="rtl"] .card-footer {
    text-align: right;
}
html[dir="rtl"] .card-title,
html[dir="rtl"] .card-text {
    text-align: right;
}
html[dir="rtl"] .card i {
    margin-left: 0.5rem;
    margin-right: 0;
}

/* Modal RTL */
html[dir="rtl"] .modal-header {
    flex-direction: row-reverse;
    text-align: right;
}
html[dir="rtl"] .modal-title {
    text-align: right;
}
html[dir="rtl"] .modal-header .btn-close {
    margin-left: auto;
    margin-right: 0;
}
html[dir="rtl"] .modal .btn-close {
    left: 0.75rem;
    right: auto;
}
html[dir="rtl"] .modal-body {
    text-align: right;
}
html[dir="rtl"] .modal-footer {
    flex-direction: row-reverse;
}
/* Dropdown flags and icons spacing */
.dropdown-item .dropdown-item-icon {
    margin-right: 0.5rem;
}
.dropdown-item .flag {
    margin-right: 0.5rem;
    display: inline-block;
}
html[dir="rtl"] .dropdown-item .flag {
    margin-left: 0.5rem;
    margin-right: 0;
}
/* Flag spacing inside nav link toggles */
.nav-link .flag {
    margin-right: 0.5rem;
    display: inline-block;
}
html[dir="rtl"] .nav-link .flag {
    margin-left: 0.5rem;
    margin-right: 0;
}
/* Toggle host alignment */
.toggle-host {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

/* RTL utility inversions for Bootstrap spacing */
html[dir="rtl"] .ms-0 { margin-right: 0 !important; margin-left: 0 !important; }
html[dir="rtl"] .ms-1 { margin-right: .25rem !important; margin-left: 0 !important; }
html[dir="rtl"] .ms-2 { margin-right: .5rem !important; margin-left: 0 !important; }
html[dir="rtl"] .ms-3 { margin-right: 1rem !important; margin-left: 0 !important; }
html[dir="rtl"] .ms-4 { margin-right: 1.5rem !important; margin-left: 0 !important; }
html[dir="rtl"] .ms-5 { margin-right: 3rem !important; margin-left: 0 !important; }
html[dir="rtl"] .ms-auto { margin-right: auto !important; margin-left: 0 !important; }

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

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

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

/* Fine-tuning for buttons and alerts in RTL */
html[dir="rtl"] .btn .me-1 { margin-left: .25rem !important; margin-right: 0 !important; }
 html[dir="rtl"] .btn .ms-1 { margin-right: .25rem !important; margin-left: 0 !important; }
 html[dir="rtl"] .alert-info ul { padding-right: 1rem; padding-left: 0; }
 .morobnbstyle { background: #fff; border: 1px solid #E2E8F0; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: 0.75rem 1rem; }
 .morobnbstyle img { border-radius: var(--radius-sm); border: 1px solid #E2E8F0; box-shadow: var(--shadow-sm); }
 .morobnbstyle .badge { background-color: rgba(255,56,92,0.12); color: var(--accent-color); border-radius: var(--radius-sm); font-weight: 600; }
 .morobnbstyle .btn-outline-primary { border: 1px solid var(--accent-color); color: var(--accent-color); background: transparent; }
 .morobnbstyle .btn-outline-primary:hover { background: var(--accent-color); color: #fff; }
 .morobnbstyle p { margin-bottom: 0.5rem; }
 .modal-header.morobnbstyle { background: #fff; border: 1px solid #E2E8F0; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: 0.75rem 1rem; }
 .modal-header.morobnbstyle .modal-title { font-weight: 600; color: var(--text-color); }
 .message-content.morobnbstyle { background: #fff; border: 1px solid #E2E8F0; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: 1rem; }
 .table.morobnbstyle { border: 1px solid #E2E8F0; box-shadow: var(--shadow-sm); border-radius: var(--radius-md); overflow: hidden; background: #fff; }
 .table.morobnbstyle thead { background-color: rgba(255,56,92,0.06); }
 .table.morobnbstyle th { color: var(--text-color); font-weight: 600; }
 .table.morobnbstyle tbody tr:hover { background-color: rgba(255,56,92,0.06); }
 .table.morobnbstyle .unread { background-color: rgba(255,56,92,0.10); }
/* Advanced Search page */
.page-offset {
    margin-top: calc(var(--navbar-h, 76px) + 24px);
}

.advanced-search-page { background: radial-gradient(1200px 600px at 20% 0%, rgba(255,56,92,0.08), transparent 62%), radial-gradient(900px 500px at 90% 10%, rgba(0,166,153,0.07), transparent 58%), #f6f7fb; }
.advanced-search-page .container.page-offset { padding-bottom: 28px; }

.advanced-search-page .adv-hero {
    position: relative;
    border-radius: 22px;
    overflow: hidden;
    background:
        radial-gradient(1200px 520px at 12% 0%, rgba(255,56,92,0.14), transparent 60%),
        radial-gradient(980px 520px at 86% 0%, rgba(0,166,153,0.12), transparent 58%),
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,252,0.98));
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 18px 50px rgba(2, 6, 23, 0.10);
    color: #0f172a;
}

.advanced-search-page .adv-hero::before {
    content: "";
    position: absolute;
    inset: -40%;
    background:
        radial-gradient(520px 260px at 35% 15%, rgba(255,56,92,0.18), rgba(255,56,92,0) 62%),
        radial-gradient(520px 260px at 80% 10%, rgba(0,166,153,0.16), rgba(0,166,153,0) 60%);
    filter: blur(26px);
    opacity: 0.85;
    animation: none;
}
.advanced-search-page .adv-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(900px 260px at 20% 0%, rgba(255,255,255,0.70), transparent 55%),
        radial-gradient(700px 260px at 80% 0%, rgba(255,255,255,0.62), transparent 58%),
        linear-gradient(180deg, rgba(255,255,255,0.32), rgba(255,255,255,0.00));
    pointer-events: none;
}
.advanced-search-page .adv-hero-inner { position: relative; z-index: 1; padding: 22px; }
.advanced-search-page .adv-hero-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 18px; align-items: start; }

.advanced-search-page .adv-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, 0.10);
    background: rgba(255,255,255,0.86);
    box-shadow: 0 16px 40px rgba(2, 6, 23, 0.10);
}
.advanced-search-page .adv-hero-badge-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--accent-color);
    box-shadow: 0 0 0 6px rgba(255,56,92,0.14), 0 0 18px rgba(255,56,92,0.18);
}
.advanced-search-page .adv-hero-badge-text { font-weight: 800; letter-spacing: 0.02em; color: #0f172a; }

.advanced-search-page .adv-hero-title {
    margin: 14px 0 6px;
    font-weight: 950;
    letter-spacing: -0.04em;
    font-size: 2.1rem;
    line-height: 1.05;
    color: #0f172a;
}
.advanced-search-page .adv-hero-sub { color: rgba(15, 23, 42, 0.70); max-width: 72ch; }

.advanced-search-page .adv-hero-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.advanced-search-page .adv-hero-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255,255,255,0.72);
}
.advanced-search-page .adv-hero-chip i { opacity: 0.80; color: rgba(15, 23, 42, 0.75); }
.advanced-search-page .adv-hero-chip-label { font-size: 0.78rem; letter-spacing: 0.04em; opacity: 0.72; text-transform: uppercase; color: rgba(15, 23, 42, 0.72); }
.advanced-search-page .adv-hero-chip-value { font-weight: 750; opacity: 0.92; color: #0f172a; }

.advanced-search-page .adv-hero-mini-map {
    position: relative;
    margin-top: 16px;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255,255,255,0.62);
    box-shadow: 0 16px 40px rgba(2, 6, 23, 0.08);
}
.advanced-search-page .adv-hero-mini-map-canvas {
    width: 100%;
    height: 168px;
}
.advanced-search-page .adv-hero-mini-map-overlay {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 500;
    pointer-events: none;
}
.advanced-search-page .adv-hero-map-chip {
    background: rgba(255,255,255,0.78);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.advanced-search-page .adv-hero-mini-map .leaflet-control-attribution {
    font-size: 10px;
    background: rgba(255,255,255,0.75);
    margin: 0;
}
.advanced-search-page .adv-hero-mini-map .leaflet-control-container .leaflet-bottom.leaflet-right {
    margin: 0 8px 6px 0;
}

.advanced-search-page .adv-hero-mini-map .adv-mini-tooltip-wrapper {
    border: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}
.advanced-search-page .adv-hero-mini-map .adv-mini-tooltip-wrapper::before {
    display: none;
}
.advanced-search-page .adv-hero-mini-map .adv-mini-tooltip {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 10px;
    border-radius: 14px;
    border: 1px solid rgba(15, 23, 42, 0.10);
    background: rgba(255,255,255,0.94);
    box-shadow: 0 16px 40px rgba(2, 6, 23, 0.14);
    max-width: 260px;
}
.advanced-search-page .adv-hero-mini-map .adv-mini-tooltip-img {
    width: 76px;
    height: 58px;
    border-radius: 10px;
    object-fit: cover;
    flex: 0 0 auto;
    border: 1px solid rgba(15, 23, 42, 0.10);
}
.advanced-search-page .adv-hero-mini-map .adv-mini-tooltip-body {
    min-width: 0;
    display: grid;
    gap: 4px;
}
.advanced-search-page .adv-hero-mini-map .adv-mini-tooltip-title {
    font-weight: 850;
    color: #0f172a;
    font-size: 0.92rem;
    line-height: 1.1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.advanced-search-page .adv-hero-mini-map .adv-mini-tooltip-price {
    font-weight: 800;
    color: rgba(15, 23, 42, 0.78);
    font-size: 0.86rem;
}

.advanced-search-page .adv-hero-right { display: grid; gap: 12px; }
.advanced-search-page .adv-hero-ctas { display: flex; gap: 10px; flex-wrap: wrap; justify-content: end; }
.advanced-search-page .adv-hero-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, 0.10);
    background: rgba(255,255,255,0.86);
    color: #0f172a;
    box-shadow: 0 16px 40px rgba(2, 6, 23, 0.10);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}
.advanced-search-page .adv-hero-btn:hover {
    transform: translateY(-1px);
    background: rgba(255,255,255,0.92);
    border-color: rgba(255,56,92,0.22);
    box-shadow: 0 20px 56px rgba(2, 6, 23, 0.14);
}
.advanced-search-page .adv-hero-btn-primary {
    border-color: rgba(255,56,92,0.26);
    background: linear-gradient(90deg, rgba(255,56,92,0.16), rgba(0,166,153,0.14));
}
.advanced-search-page .adv-hero-btn-primary:hover { border-color: rgba(255,56,92,0.34); }

.advanced-search-page .adv-hero-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.advanced-search-page .adv-metric {
    border-radius: 18px;
    padding: 14px 14px 12px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255,255,255,0.92);
    box-shadow: 0 16px 40px rgba(2, 6, 23, 0.10);
}
.advanced-search-page .adv-metric-top { display: flex; align-items: center; gap: 10px; opacity: 0.86; color: rgba(15, 23, 42, 0.78); }
.advanced-search-page .adv-metric-label { font-size: 0.86rem; }
.advanced-search-page .adv-metric-value { font-size: 1.55rem; font-weight: 900; letter-spacing: -0.02em; margin-top: 6px; color: #0f172a; }
.advanced-search-page .adv-metric-value-sub { font-size: 0.95rem; opacity: 0.66; font-weight: 800; }

@keyframes advHeroDrift {
    0% { transform: translate3d(-2%, -3%, 0) rotate(0deg); }
    50% { transform: translate3d(2%, 3%, 0) rotate(180deg); }
    100% { transform: translate3d(-2%, -3%, 0) rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
    .advanced-search-page .adv-hero::before { animation: none; }
    .advanced-search-page .adv-hero-btn { transition: none; }
}
@media (max-width: 992px) {
    .advanced-search-page .adv-hero-grid { grid-template-columns: 1fr; }
    .advanced-search-page .adv-hero-ctas { justify-content: start; }
    .advanced-search-page .adv-hero-title { font-size: 1.75rem; }
    .advanced-search-page .adv-hero-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .advanced-search-page .adv-hero-mini-map-canvas { height: 156px; }
}
@media (max-width: 576px) {
    .advanced-search-page .adv-hero-inner { padding: 16px; }
    .advanced-search-page .adv-hero-title { font-size: 1.5rem; }
    .advanced-search-page .adv-hero-metrics { grid-template-columns: 1fr; }
    .advanced-search-page .adv-hero-mini-map-canvas { height: 148px; }
}

.advanced-search-page .adv-hero-ai-panel {
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255,255,255,0.92);
    box-shadow: 0 18px 46px rgba(2, 6, 23, 0.10);
    padding: 14px;
}
.advanced-search-page .adv-hero-ai-top { display: flex; gap: 10px; align-items: baseline; justify-content: space-between; flex-wrap: wrap; }
.advanced-search-page .adv-hero-ai-title { display: inline-flex; align-items: center; gap: 10px; font-weight: 900; letter-spacing: -0.02em; }
.advanced-search-page .adv-hero-ai-title i { opacity: 0.95; }
.advanced-search-page .adv-hero-ai-sub { color: rgba(15, 23, 42, 0.62); font-size: 0.92rem; }
.advanced-search-page .adv-hero-ai-controls { margin-top: 10px; }
.advanced-search-page .adv-hero-ai-controls .form-control { min-height: 44px; }
.advanced-search-page .adv-hero-ai-controls .btn { min-height: 44px; }
.advanced-search-page .adv-hero-ai-panel #aiQuery {
    background: rgba(248, 250, 252, 0.95);
    border: 1px solid rgba(15, 23, 42, 0.10);
    color: #0f172a;
}
.advanced-search-page .adv-hero-ai-panel #aiQuery:focus {
    border-color: rgba(255,56,92,0.55);
    box-shadow: 0 0 0 4px rgba(255,56,92,0.14);
}
.advanced-search-page .adv-hero-ai-panel #aiSearchBtn.btn-outline-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    white-space: nowrap;
    font-weight: 800;
    letter-spacing: -0.01em;
    border-color: rgba(255,56,92,0.32);
    color: #0f172a;
    background: linear-gradient(135deg, rgba(255,56,92,0.14), rgba(0,166,153,0.10));
    box-shadow: 0 10px 24px rgba(2, 6, 23, 0.08);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}
.advanced-search-page .adv-hero-ai-panel #aiSearchBtn.btn-outline-primary:hover {
    transform: translateY(-1px);
    border-color: rgba(255,56,92,0.44);
    background: linear-gradient(135deg, rgba(255,56,92,0.18), rgba(0,166,153,0.12));
    box-shadow: 0 16px 38px rgba(2, 6, 23, 0.12);
}
.advanced-search-page .adv-hero-ai-panel #aiSearchBtn.btn-outline-primary:focus-visible {
    box-shadow: 0 0 0 4px rgba(255,56,92,0.16), 0 16px 38px rgba(2, 6, 23, 0.12);
}
.advanced-search-page .adv-hero-ai-panel #aiSearchBtn:disabled { opacity: 0.75; }
.advanced-search-page .adv-hero-ai-results {
    margin-top: 12px;
    border-radius: 16px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255,255,255,0.92);
    color: #0f172a;
    padding: 12px;
}
.advanced-search-page .adv-hero-ai-empty { color: rgba(15, 23, 42, 0.72); font-size: 0.95rem; }

.advanced-search-page .filter-card {
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 12px 28px rgba(2, 6, 23, 0.08);
    background: #fff;
    will-change: transform, box-shadow;
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}
.advanced-search-page .filter-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 40px rgba(2, 6, 23, 0.12);
}
.advanced-search-page .filter-card .card-title { font-weight: 750; }
.advanced-search-page .filter-card .form-floating > label { color: #6b7280; }

.advanced-search-page .adv-filters-summary {
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255,255,255,0.92);
    border-radius: 16px;
    padding: 10px 12px;
    box-shadow: 0 10px 26px rgba(2, 6, 23, 0.08);
}
.advanced-search-page .adv-filters-summary-text {
    font-weight: 750;
    color: #0f172a;
    font-size: 0.92rem;
    line-height: 1.25;
}

.advanced-search-page .adv-filters-accordion .accordion-item { border: 0; background: transparent; }
.advanced-search-page .adv-filters-accordion .accordion-header { margin: 0; font-size: 1rem; }
.advanced-search-page .adv-filters-accordion .accordion-button {
    border-radius: 14px !important;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(248, 250, 252, 0.95);
    font-weight: 750;
    letter-spacing: -0.01em;
    padding: 10px 12px;
    gap: 10px;
    box-shadow: 0 10px 24px rgba(2, 6, 23, 0.07);
}
.advanced-search-page .adv-filters-accordion .accordion-button i { opacity: 0.75; font-size: 0.95rem; }
.advanced-search-page .adv-filters-accordion .accordion-button:focus { box-shadow: 0 0 0 4px rgba(255,56,92,0.14), 0 12px 28px rgba(2, 6, 23, 0.08); }
.advanced-search-page .adv-filters-accordion .accordion-button:not(.collapsed) {
    background: rgba(255,255,255,0.98);
    border-color: rgba(255,56,92,0.18);
}
.advanced-search-page .adv-filters-accordion .accordion-button::after { opacity: 0.65; }
.advanced-search-page .adv-filters-accordion .accordion-body { padding: 12px 2px 16px; }
.advanced-search-page .adv-filter-section-title {
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, 0.78);
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0 10px;
}
.advanced-search-page .adv-filter-section-title i { opacity: 0.75; font-size: 0.95rem; }

@media (min-width: 768px) {
    .advanced-search-page .adv-filters-accordion .accordion-button { display: none; }
    .advanced-search-page .adv-filters-accordion .accordion-collapse { display: block !important; height: auto !important; visibility: visible !important; }
    .advanced-search-page .adv-filters-accordion .accordion-body { padding: 0 0 16px; }
    .advanced-search-page .adv-filters-accordion .accordion-item + .accordion-item {
        border-top: 1px solid rgba(15, 23, 42, 0.08);
        margin-top: 12px;
        padding-top: 12px;
    }
}

.offcanvas-body .adv-filters-actions {
    position: sticky;
    bottom: 0;
    margin-left: -16px;
    margin-right: -16px;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    background: rgba(246, 247, 251, 0.96);
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(8px);
}
.advanced-search-page .filter-card .form-control,
.advanced-search-page .filter-card .form-select {
    border-radius: 14px;
    border: 1px solid rgba(15, 23, 42, 0.10);
    background: rgba(248, 250, 252, 0.9);
}
.advanced-search-page .filter-card .form-control:focus,
.advanced-search-page .filter-card .form-select:focus {
    border-color: rgba(255,56,92,0.55);
    box-shadow: 0 0 0 4px rgba(255,56,92,0.14);
    background: #fff;
}
.advanced-search-page .adv-price-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.advanced-search-page .adv-price-current { font-weight: 850; letter-spacing: -0.01em; color: #0f172a; font-size: 0.95rem; }
.advanced-search-page .adv-price-reset { border-radius: 999px; padding: 0.35rem 0.75rem; }

.advanced-search-page .adv-type-cap-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 768px) { .advanced-search-page .adv-type-cap-grid { grid-template-columns: 1fr; } }
.advanced-search-page .adv-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.advanced-search-page .adv-chip {
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, 0.12);
    background: rgba(248, 250, 252, 0.95);
    color: #0f172a;
    padding: 7px 12px;
    font-weight: 750;
    font-size: 0.9rem;
    line-height: 1;
    transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}
.advanced-search-page .adv-chip:hover { transform: translateY(-1px); }
.advanced-search-page .adv-chip.active {
    background: var(--primary-color);
    border-color: var(--primary-color);
    color: #fff;
}
.advanced-search-page .adv-chip:focus-visible { outline: 2px solid rgba(255,56,92,0.55); outline-offset: 2px; }
.advanced-search-page .adv-stepper .form-control { text-align: center; font-weight: 850; }
.advanced-search-page .adv-stepper .adv-stepper-btn { width: 44px; justify-content: center; font-weight: 900; }
.advanced-search-page .adv-pref-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
.advanced-search-page .adv-pref-block .adv-chips { gap: 8px; }
.advanced-search-page .adv-perpage-chips .adv-chip { min-width: 56px; justify-content: center; }

.advanced-search-page #price-range { margin: 14px 2px 14px; height: 12px; }
.advanced-search-page #price-range.noUi-target {
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.06);
    border: 1px solid rgba(15, 23, 42, 0.10);
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.06);
}
.advanced-search-page .price-range input.form-control-sm { border-radius: 12px; }
.advanced-search-page .adv-price-inputs { gap: 10px; }
.advanced-search-page .adv-price-inputs { flex-wrap: wrap; }
.advanced-search-page .adv-price-inputs .input-group { flex: 1 1 260px; min-width: 220px; }
.advanced-search-page .adv-price-inputs .form-control { width: 1%; }
.advanced-search-page .adv-price-inputs input { width: auto; }
.advanced-search-page .adv-price-inputs .input-group-text {
    border-radius: 12px;
    border: 1px solid rgba(15, 23, 42, 0.10);
    background: rgba(248, 250, 252, 0.95);
    color: #334155;
    font-weight: 700;
}
.advanced-search-page .adv-price-inputs .form-control { border-radius: 12px; }

.advanced-search-page #price-range .noUi-connect { border-radius: 999px; }
.advanced-search-page .noUi-horizontal .noUi-handle { top: -7px; }
.advanced-search-page .amenity-badge { border-radius: 999px; }

.advanced-search-page .results-toolbar {
    position: sticky;
    top: calc(var(--navbar-h, 76px) + 10px);
    z-index: 2;
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 10px 26px rgba(2, 6, 23, 0.08);
    border-radius: 16px;
    padding: 10px 12px;
}
.advanced-search-page .results-toolbar h4 { font-weight: 850; color: #0f172a; }
.advanced-search-page .results-toolbar .btn { border-radius: 999px; }

.advanced-search-page #aiQuery { border-radius: 999px; padding-left: 16px; }
.advanced-search-page #aiSearchBtn { border-radius: 999px; padding-left: 14px; padding-right: 14px; white-space: nowrap; font-weight: 750; }
.advanced-search-page #aiQuery:focus { box-shadow: 0 0 0 4px rgba(0,166,153,0.12); border-color: rgba(0,166,153,0.55); }
.advanced-search-page #aiSearchBtn.btn-outline-primary { border-color: rgba(0,166,153,0.55); color: #0f172a; background: rgba(0,166,153,0.10); }
.advanced-search-page #aiSearchBtn.btn-outline-primary:hover { background: rgba(0,166,153,0.18); }

.advanced-search-page .property-grid { gap: 22px; margin-top: 1rem; }
.advanced-search-page .property-card.compact {
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 12px 28px rgba(2, 6, 23, 0.08);
}
.advanced-search-page .property-card.compact:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(2, 6, 23, 0.12); }
.advanced-search-page .property-card.compact .card-body { padding: 14px 14px 10px; }
.advanced-search-page .property-card.compact .card-footer { padding: 10px 14px 14px; }
.advanced-search-page .property-card.compact .property-title { font-weight: 850; letter-spacing: -0.02em; color: #0f172a; }
.advanced-search-page .property-card.compact .property-location { color: #64748b; }
.advanced-search-page .property-card.compact .property-price { font-weight: 850; color: #0f172a; }
.advanced-search-page .property-card.compact .property-price-unit { color: #64748b; }
.advanced-search-page .property-card.compact .property-fav-btn {
    border-radius: 999px;
    background: rgba(255,255,255,0.92);
    border: 1px solid rgba(15, 23, 42, 0.10);
    box-shadow: 0 10px 24px rgba(2, 6, 23, 0.12);
}
.advanced-search-page .property-card.compact .property-fav-btn:hover { transform: translateY(-1px); }

.advanced-search-page .property-image-wrapper .carousel {
    position: absolute;
    inset: 0;
}
.advanced-search-page .property-image-wrapper .carousel-inner,
.advanced-search-page .property-image-wrapper .carousel-item,
.advanced-search-page .property-image-wrapper .carousel-item > a {
    height: 100%;
}
.advanced-search-page .property-image-wrapper .carousel-item > a { display: block; }

.advanced-search-page .property-image-wrapper .carousel-control-prev,
.advanced-search-page .property-image-wrapper .carousel-control-next {
    width: 36px;
    height: 36px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    border-radius: 999px;
    background: rgba(255,255,255,0.92);
    border: 1px solid rgba(15, 23, 42, 0.12);
    box-shadow: 0 6px 14px rgba(15, 23, 42, 0.12);
    opacity: 0;
    transition: opacity 0.15s ease, transform 0.15s ease, background-color 0.15s ease;
}
.advanced-search-page .property-image-wrapper .carousel-control-prev-icon,
.advanced-search-page .property-image-wrapper .carousel-control-next-icon { filter: invert(1); opacity: 0.9; }
.advanced-search-page .property-image-wrapper .carousel-control-prev { margin-left: 10px; }
.advanced-search-page .property-image-wrapper .carousel-control-next { margin-right: 10px; }
.advanced-search-page .property-image-wrapper:hover .carousel-control-prev,
.advanced-search-page .property-image-wrapper:hover .carousel-control-next { opacity: 1; }
.advanced-search-page .property-image-wrapper .carousel-control-prev:hover,
.advanced-search-page .property-image-wrapper .carousel-control-next:hover {
    background: rgba(255,255,255,0.98);
    transform: translateY(-50%) scale(1.03);
}
@media (hover: none) {
    .advanced-search-page .property-image-wrapper .carousel-control-prev,
    .advanced-search-page .property-image-wrapper .carousel-control-next { opacity: 1; }
}

.animate-fadeIn { animation: fadeIn var(--transition-base); }
.animate-slideIn { animation: slideIn var(--transition-base); }
.animate-scaleIn { animation: scaleIn var(--transition-fast); }

.advanced-search-page .filter-card form .mb-4 { opacity: 0; animation: fadeInUp 0.35s ease forwards; }
.advanced-search-page .filter-card form .mb-4:nth-child(1) { animation-delay: .04s; }
.advanced-search-page .filter-card form .mb-4:nth-child(2) { animation-delay: .08s; }
.advanced-search-page .filter-card form .mb-4:nth-child(3) { animation-delay: .12s; }
.advanced-search-page .filter-card form .mb-4:nth-child(4) { animation-delay: .16s; }
.advanced-search-page .filter-card form .mb-4:nth-child(5) { animation-delay: .20s; }
.advanced-search-page .filter-card form .mb-4:nth-child(6) { animation-delay: .24s; }
.advanced-search-page .filter-card form .mb-4:nth-child(7) { animation-delay: .28s; }
.advanced-search-page .filter-card form .mb-4:nth-child(8) { animation-delay: .32s; }
.advanced-search-page .filter-card form .mb-4:nth-child(9) { animation-delay: .36s; }
.advanced-search-page .filter-card form .mb-4:nth-child(10) { animation-delay: .40s; }

@media (prefers-reduced-motion: reduce) {
    .animate-fadeIn, .animate-slideIn, .animate-scaleIn, .advanced-search-page .filter-card form .mb-4 { animation: none; opacity: 1; }
}

.advanced-search-page .filters-sticky {
    position: sticky;
    top: calc(var(--navbar-h, 76px) + 24px);
    z-index: 2;
}

@media (max-width: 768px) {
    .advanced-search-page .page-offset { margin-top: 80px; }
    .advanced-search-page .amenity-badge { padding: 10px 14px; font-size: 1rem; }
    .advanced-search-page .results-toolbar { gap: 8px; position: static; backdrop-filter: none; }
    .advanced-search-page .filters-sticky { position: static; top: auto; }
}

.amenity-badge {
    background-color: #f8f9fa;
    color: #6c757d;
    border: 1px solid #dee2e6;
    margin: 4px;
    padding: 8px 12px;
    border-radius: 20px;
    font-size: 0.95em;
    cursor: pointer;
    transition: all var(--transition-fast);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    user-select: none;
    transform: translateY(0) scale(1);
}
.amenity-badge:hover { transform: translateY(-1px) scale(1.02); box-shadow: var(--shadow-sm); }
.amenity-badge.active { background-color: var(--primary-color); color: white; border-color: var(--primary-color); transform: scale(1.05); animation: scaleIn var(--transition-fast); }

.rule-badge {
    background-color: #f8f9fa;
    color: #6c757d;
    border: 1px solid #dee2e6;
    margin: 4px;
    padding: 8px 12px;
    border-radius: 20px;
    font-size: 0.95em;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.advanced-search-page .filter-card .mb-4:focus-within .form-label { color: var(--primary-color); transform: translateY(-2px); }
.advanced-search-page .filter-card .form-control:focus { transform: translateY(-1px); }

#price-range .noUi-connect.pulse { animation: priceUpdate .35s ease; }
.advanced-search-page .noUi-handle.active { transform: scale(1.15); box-shadow: 0 0 0 6px rgba(255,56,92,0.12); }

.btn-ripple { position: relative; overflow: hidden; }
.btn-ripple .ripple { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.4); transform: scale(0); animation: ripple 600ms ease-out; pointer-events: none; }
@keyframes ripple { to { transform: scale(32); opacity: 0; } }

.advanced-search-page .noUi-connect { background: var(--primary-color); }
.advanced-search-page .noUi-handle {
    border-radius: 50%;
    background: var(--primary-color);
    box-shadow: none;
    border: none;
    width: 24px !important;
    height: 24px !important;
    right: -12px !important;
}
.advanced-search-page .noUi-handle:before, .advanced-search-page .noUi-handle:after { display: none; }

.advanced-search-page .noUi-tooltip {
    border-radius: 10px;
    border: 0;
    background: rgba(15, 23, 42, 0.92);
    color: #fff;
    font-size: 12px;
    font-weight: 750;
    padding: 4px 8px;
    box-shadow: 0 10px 24px rgba(2, 6, 23, 0.22);
}
.advanced-search-page .noUi-tooltip::after { content: " MAD"; opacity: 0.85; font-weight: 650; }

@media (max-width: 768px) {
    .advanced-search-page .adv-price-head { flex-direction: column; align-items: flex-start; }
    .advanced-search-page .adv-price-reset { width: 100%; justify-content: center; }
    .advanced-search-page .adv-price-inputs { flex-direction: column; align-items: stretch; }
    .advanced-search-page .adv-price-inputs .input-group { min-width: 0; }
    .advanced-search-page .noUi-handle { width: 28px !important; height: 28px !important; right: -14px !important; }
    .advanced-search-page .noUi-horizontal .noUi-handle { top: -9px; }
}
/* Messaging modern list */
.message-item { border: 1px solid #E2E8F0; border-radius: 12px; margin-bottom: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.04); }
.message-item:hover { box-shadow: 0 6px 12px rgba(0,0,0,0.08); transform: translateY(-1px); }
.message-actions .btn { border-radius: 20px; }
.message-item .badge { font-weight: 600; }
.status-chip { display:inline-flex; align-items:center; gap:6px; border:1px solid #E2E8F0; border-radius:16px; padding:3px 10px; font-weight:600; font-size:12px; color:#374151; background:#F8FAFC; }
.status-chip::before { content:""; width:8px; height:8px; border-radius:50%; display:inline-block; background:#94A3B8; }
.status-pending::before { background:#60A5FA; }
.status-confirmed::before { background:#10B981; }
.status-completed::before { background:#9CA3AF; }
.status-cancelled::before { background:#A3A3A3; }
.status-default::before { background:#94A3B8; }
.settings-subnav { position: sticky; top: 76px; z-index: 990; background: #fff; border: 1px solid #E5E7EB; border-radius: 12px; padding: .5rem; box-shadow: var(--shadow-sm); margin-bottom: 1rem; }
.settings-subnav .nav { display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: none; }
.settings-subnav .nav::-webkit-scrollbar { display: none; }
.settings-subnav .nav-link { border: 1px solid #E5E7EB; border-radius: 12px; padding: .35rem .6rem; color: var(--text-color); background: #fff; white-space: nowrap; }
.settings-subnav .nav-link[href="#section-reviews"] i { color: #F59E0B; }
.settings-subnav .nav-link i { color: var(--primary-color); margin-right: .4rem; }
.settings-subnav .nav-link:hover { background: #F8FAFC; }
.settings-subnav .nav-link.active { background: rgba(255,56,92,0.08); color: var(--primary-color); border-color: rgba(255,56,92,0.2); }
html[dir="rtl"] .settings-subnav .nav-link i { margin-right: 0; margin-left: .4rem; }

.auth-shell{min-height:calc(100vh - 160px);display:flex;align-items:center}
.auth-card{border:0;border-radius:18px;overflow:hidden;box-shadow:0 14px 40px rgba(15,23,42,.12)}
.auth-hero{color:#fff}
.auth-hero--slate{background:radial-gradient(1200px 600px at 10% 10%, rgba(148,163,184,.22), transparent 55%),linear-gradient(135deg,#0f172a 0%,#1e293b 45%,#0b1220 100%)}
.auth-hero--blue{background:radial-gradient(1200px 600px at 10% 10%, rgba(59,130,246,.25), transparent 55%),linear-gradient(135deg,#0f172a 0%,#1e293b 45%,#0b1220 100%)}
.auth-hero--green{background:radial-gradient(1200px 600px at 10% 10%, rgba(34,197,94,.18), transparent 55%),linear-gradient(135deg,#0f172a 0%,#1e293b 45%,#0b1220 100%)}
.auth-hero-inner{padding:28px 28px 20px}
.auth-badge{display:inline-flex;gap:.5rem;align-items:center;font-weight:600;font-size:.85rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:.4rem .7rem}
.auth-title{font-size:1.5rem;line-height:1.2;margin:.75rem 0 .25rem}
.auth-sub{opacity:.85;margin:0}
.auth-form{padding:28px}
.auth-code{font-size:1.25rem;letter-spacing:.25em;font-variant-numeric:tabular-nums}
.auth-help{font-size:.9rem;color:#64748b}
.auth-links a{text-decoration:none}

body.submit-property-page { font-family: 'Circular', -apple-system, BlinkMacSystemFont, Roboto, Helvetica Neue, sans-serif; background-color: #F7F7F7; color: #222222; }
body.submit-property-page .submit-property-container { margin-top: 100px; }
body.submit-property-page .card { border: none; border-radius: 12px; }
body.submit-property-page .form-control:focus,
body.submit-property-page .form-select:focus { border-color: var(--primary-color); box-shadow: 0 0 0 0.25rem rgba(255, 56, 92, 0.25); }
body.submit-property-page .success-message { background-color: #ECFDF5; color: #065F46; border-left: 4px solid #10B981; padding: 1rem; border-radius: 0.25rem; }
body.submit-property-page .image-preview { width: 180px; height: 180px; margin: 10px; border-radius: 10px; object-fit: cover; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
body.submit-property-page .image-delete-btn {
    background-color: rgba(255, 56, 92, 0.9);
    border: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(50%, -50%);
    color: white;
    font-size: 12px;
    cursor: pointer;
    transition: all 0.2s;
}
body.submit-property-page .image-delete-btn:hover { background-color: rgba(231, 29, 54, 1); transform: translate(50%, -50%) scale(1.1); }
body.submit-property-page .image-preview-wrapper { position: relative; }

body.host-area-page .settings-container { margin-bottom: 50px; }
body.host-area-page .alert-persistent { border-radius: 10px; position: sticky; top: 80px; z-index: 1020; }
body.host-area-page .host-chart-card-body { height: 340px; overflow: hidden; }
body.host-area-page .host-revenue-card-body { height: 320px; overflow: hidden; }
body.host-area-page .host-bookings-upsell-alert { border-radius: 10px; }
body.host-area-page .host-revenue-progress { height: 6px; }
body.host-area-page .host-review-progress { height: 8px; }
body.host-area-page .host-search-input { max-width: 360px; }
body.host-area-page .host-property-card-image { height: 200px; object-fit: cover; }
body.host-area-page .host-bookings-search-wrap { min-width: 220px; max-width: 420px; }
body.host-area-page .host-bookings-filter--220 { max-width: 220px; }
body.host-area-page .host-bookings-filter--180 { max-width: 180px; }
body.host-area-page .host-bookings-filter--140 { max-width: 140px; }
body.host-area-page .host-dashboard-card { border-radius: 12px; overflow: hidden; transition: transform 0.3s ease; height: 100%; box-shadow: 0 5px 15px rgba(0,0,0,0.05); }
body.host-area-page .host-dashboard-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
body.host-area-page .stat-card { border-radius: 12px; padding: 1.5rem; height: 100%; position: relative; overflow: hidden; }
body.host-area-page .stat-card::after { content: ''; position: absolute; bottom: -15px; right: -15px; width: 70px; height: 70px; border-radius: 50%; background-color: rgba(255,255,255,0.1); z-index: 0; }
body.host-area-page .stat-card .stat-icon { font-size: 2.5rem; margin-bottom: 0.5rem; }
body.host-area-page .stat-card h4 { font-size: 2rem; font-weight: 700; margin-bottom: 0.5rem; position: relative; z-index: 1; }
body.host-area-page .stat-card p { font-size: 1rem; margin-bottom: 0; position: relative; z-index: 1; }
body.host-area-page .section-title { font-size: 1.5rem; font-weight: 600; margin-bottom: 1.5rem; position: relative; padding-bottom: 0.5rem; border-bottom: 2px solid #f5f5f5; }
body.host-area-page .section-title::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 50px; height: 2px; background-color: #00BFB2; }
body.host-area-page .quick-action { background-color: #f8f9fa; padding: 1.5rem; border-radius: 12px; text-align: center; transition: all 0.3s ease; height: 100%; }
body.host-area-page .quick-action:hover { background-color: #e9ecef; }
body.host-area-page .quick-action i { font-size: 2rem; margin-bottom: 1rem; color: #00BFB2; }
body.host-area-page .booking-card { border-radius: 12px; overflow: hidden; margin-bottom: 1.5rem; transition: all 0.3s ease; }
body.host-area-page .booking-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
body.host-area-page .booking-card .card-header { background-color: #f8f9fa; border-bottom: none; padding: 1rem; }
body.host-area-page .booking-card .booking-image { width: 80px; height: 80px; object-fit: cover; border-radius: 8px; }
body.host-area-page .welcome-banner { background: linear-gradient(135deg, #00BFB2, #3490dc); color: white; padding: 2rem; border-radius: 12px; margin-bottom: 2rem; }
body.host-area-page .property-card { border-radius: 12px; overflow: hidden; transition: all 0.3s ease; height: 100%; margin-bottom: 1.5rem; }
body.host-area-page .property-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
body.host-area-page .property-card img { height: 180px; object-fit: cover; }
body.host-area-page .property-card .badge-pill { position: absolute; top: 10px; right: 10px; padding: 0.5rem 0.75rem; font-size: 0.8rem; }
body.host-area-page .nav-tabs .nav-link.active { color: #00BFB2; border-color: #00BFB2; font-weight: 600; }
body.host-area-page .nav-tabs .nav-link { color: #6c757d; border: none; padding: 1rem 1.5rem; transition: all 0.3s ease; }
body.host-area-page .nav-tabs .nav-link:hover { color: #00BFB2; background-color: rgba(0, 191, 178, 0.05); border-radius: 0.25rem; }
body.host-area-page .review-card { border-radius: 12px; padding: 1.5rem; margin-bottom: 1.5rem; transition: all 0.3s ease; background-color: #f8f9fa; }
body.host-area-page .review-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
body.host-area-page .review-card .guest-image { width: 50px; height: 50px; object-fit: cover; border-radius: 50%; }
body.host-area-page .stars-container .fas { color: #FFC107; }
body.host-area-page .pending-bookings-badge { position: absolute; top: -8px; right: -8px; font-size: 0.8rem; }
body.host-area-page #hostTab .nav-link { position: relative; }

body.host-public-page {
    background: radial-gradient(1000px 600px at 15% 5%, rgba(255,56,92,.14), transparent 55%),
        radial-gradient(900px 520px at 85% 0%, rgba(0,166,153,.12), transparent 55%),
        linear-gradient(180deg, #ffffff 0%, var(--bg-light) 45%, var(--bg-light) 100%);
}
body.host-public-page .host-public-shell { max-width: 1180px; padding-top: 18px; padding-bottom: 64px; }

body.host-public-page .hp-card {
    background: rgba(255,255,255,.88);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 22px;
    box-shadow: var(--shadow-xl);
    backdrop-filter: blur(12px);
}
body.host-public-page .hp-hero { padding: 28px; position: relative; overflow: hidden; }
body.host-public-page .hp-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(900px 380px at 10% 10%, rgba(255,56,92,.12), transparent 60%),
        radial-gradient(720px 340px at 90% 0%, rgba(99,102,241,.12), transparent 60%);
    pointer-events: none;
}
body.host-public-page .hp-hero > * { position: relative; }

body.host-public-page .hp-avatar {
    width: 104px;
    height: 104px;
    border-radius: 26px;
    object-fit: cover;
    border: 2px solid rgba(255,255,255,0.9);
    box-shadow: 0 18px 40px rgba(2, 6, 23, 0.18);
    background: rgba(15,23,42,.06);
}

body.host-public-page .hp-title { font-size: 1.75rem; line-height: 1.15; font-weight: 750; letter-spacing: -0.02em; }
body.host-public-page .hp-meta { font-size: .95rem; }
body.host-public-page .hp-dot { display: inline-block; margin: 0 .4rem; opacity: .6; }
body.host-public-page .hp-note { font-size: .92rem; }

body.host-public-page .hp-chip {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .38rem .68rem;
    border-radius: 999px;
    border: 1px solid rgba(15,23,42,.10);
    background: rgba(255,255,255,.70);
    font-weight: 650;
    font-size: .86rem;
}
body.host-public-page .hp-chip i { opacity: .9; }
body.host-public-page .hp-chip--success { background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.22); color: rgba(22,101,52,0.98); }
body.host-public-page .hp-chip--danger { background: rgba(239,68,68,.12); border-color: rgba(239,68,68,.22); color: rgba(153,27,27,0.98); }
body.host-public-page .hp-chip--muted { background: rgba(15,23,42,.06); border-color: rgba(15,23,42,.12); color: rgba(15,23,42,.78); }

body.host-public-page .hp-cta { width: min(360px, 100%); }

body.host-public-page .hp-tabs {
    position: sticky;
    top: calc(var(--navbar-h, 76px) + 12px);
    z-index: 1020;
    display: flex;
    gap: 8px;
    padding: 6px;
    border-radius: 999px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: rgba(255,255,255,.86);
    backdrop-filter: blur(12px);
    overflow: auto;
}
body.host-public-page .hp-tab {
    border-radius: 999px;
    padding: 10px 14px;
    font-weight: 650;
    white-space: nowrap;
    color: rgba(15,23,42,.82);
}
body.host-public-page .hp-tabs .nav-link.active,
body.host-public-page .hp-tabs .nav-link:hover {
    background: rgba(255,56,92,.12);
    color: var(--primary-color);
}

body.host-public-page .hp-section-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 18px; }
body.host-public-page .hp-section-title { font-size: 1.2rem; font-weight: 750; letter-spacing: -0.01em; }
body.host-public-page .hp-prose { font-size: 1.02rem; color: rgba(15,23,42,.78); }

body.host-public-page .hp-info {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid rgba(15,23,42,.08);
    background: rgba(15,23,42,.03);
}
body.host-public-page .hp-info-icon { width: 26px; height: 26px; display: grid; place-items: center; color: rgba(15,23,42,.58); }
body.host-public-page .hp-info-body { flex: 1; }

body.host-public-page .hp-listing {
    display: block;
    border-radius: 20px;
    border: 1px solid rgba(15,23,42,.08);
    background: rgba(255,255,255,.78);
    overflow: hidden;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
    box-shadow: 0 10px 30px rgba(2, 6, 23, 0.10);
}
body.host-public-page .hp-listing:hover { transform: translateY(-3px); border-color: rgba(255,56,92,.25); box-shadow: 0 18px 50px rgba(2, 6, 23, 0.16); }
body.host-public-page .hp-listing-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
body.host-public-page .hp-listing-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.host-public-page .hp-listing-overlay {
    position: absolute;
    inset: auto 10px 10px 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    pointer-events: none;
}
body.host-public-page .hp-price {
    pointer-events: none;
    display: inline-flex;
    align-items: center;
    padding: .45rem .7rem;
    border-radius: 999px;
    border: 1px solid rgba(15,23,42,.10);
    background: rgba(255,255,255,.92);
    font-weight: 800;
    letter-spacing: -0.01em;
}
body.host-public-page .hp-rating {
    pointer-events: none;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .65rem;
    border-radius: 999px;
    border: 1px solid rgba(15,23,42,.10);
    background: rgba(255,255,255,.92);
    font-weight: 750;
}
body.host-public-page .hp-rating i { color: #f59e0b; }
body.host-public-page .hp-rating-muted { font-weight: 650; opacity: .65; }
body.host-public-page .hp-listing-body { padding: 14px 14px 16px; }
body.host-public-page .hp-listing-title { font-weight: 750; letter-spacing: -0.01em; color: rgba(15,23,42,.92); }
body.host-public-page .hp-listing-sub { font-size: .95rem; }

body.host-public-page .hp-review {
    border-radius: 20px;
    border: 1px solid rgba(15,23,42,.08);
    background: rgba(255,255,255,.78);
    padding: 16px;
    box-shadow: 0 10px 30px rgba(2, 6, 23, 0.10);
}
@media (min-width: 768px) { body.host-public-page .hp-review { padding: 18px; } }
body.host-public-page .hp-guest { width: 44px; height: 44px; border-radius: 16px; object-fit: cover; background: rgba(15,23,42,.06); }
body.host-public-page .hp-stars i { color: #f59e0b; }
body.host-public-page .hp-review-meta { font-size: .92rem; }
body.host-public-page .hp-review-body { color: rgba(15,23,42,.78); }

body.host-public-page .hp-kpis { display: grid; gap: 14px; }
body.host-public-page .hp-kpi { display: flex; gap: 12px; align-items: center; padding: 12px 12px; border-radius: 16px; border: 1px solid rgba(15,23,42,.08); background: rgba(15,23,42,.03); }
body.host-public-page .hp-kpi-icon { width: 34px; height: 34px; border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,.85); border: 1px solid rgba(15,23,42,.08); }
body.host-public-page .hp-kpi-value { font-weight: 850; letter-spacing: -0.02em; }
body.host-public-page .hp-kpi-label { font-size: .92rem; color: rgba(15,23,42,.62); }

@media (min-width: 992px) { body.host-public-page .hp-sidebar { position: sticky; top: calc(var(--navbar-h, 76px) + 12px); } }

html[data-theme="dark"] body.host-public-page {
    background: radial-gradient(1000px 600px at 15% 5%, rgba(255,56,92,.14), transparent 55%),
        radial-gradient(900px 520px at 85% 0%, rgba(0,166,153,.10), transparent 55%),
        linear-gradient(180deg, #0B1220 0%, #0B1220 55%, #0B1220 100%);
}
html[data-theme="dark"] body.host-public-page .hp-card,
html[data-theme="dark"] body.host-public-page .hp-listing,
html[data-theme="dark"] body.host-public-page .hp-review {
    background: rgba(11,18,32,.80);
    border-color: rgba(148, 163, 184, 0.18);
}
html[data-theme="dark"] body.host-public-page .hp-info,
html[data-theme="dark"] body.host-public-page .hp-kpi {
    background: rgba(148,163,184,.06);
    border-color: rgba(148,163,184,.18);
}
html[data-theme="dark"] body.host-public-page .hp-prose,
html[data-theme="dark"] body.host-public-page .hp-review-body { color: rgba(226,232,240,.84); }
html[data-theme="dark"] body.host-public-page .hp-tab { color: rgba(226,232,240,.86); }
