/* Elvix public redesign foundation.
   Loaded after the legacy stylesheet so the marketplace can be improved
   incrementally without changing controller or database behaviour. */
:root {
    --elvix-ink: #14213d;
    --elvix-muted: #64748b;
    --elvix-line: #e2e8f0;
    --elvix-surface: #ffffff;
    --elvix-canvas: #f6f8fc;
    --elvix-brand: #e63946;
    --elvix-brand-dark: #c92c3b;
    --elvix-mint: #dcfce7;
    --elvix-radius: 18px;
    --elvix-shadow: 0 14px 34px rgba(15, 23, 42, .08);
}

/* Listing seller card: prioritise trust, then one clear way to contact the seller. */
.ad-view .seller-box{padding:16px !important;border-radius:18px !important;box-shadow:0 10px 26px rgba(15,23,42,.08) !important}
.ad-view .seller-top{margin-bottom:8px !important}.ad-view .seller-avatar{width:52px !important;height:52px !important}.ad-view .seller-name{font-size:18px !important}.ad-view .seller-status{font-size:12px !important}
.ad-view .seller-rank-banner{margin:8px 0 !important;padding:9px 10px !important;gap:8px !important;border-radius:11px !important}.ad-view .seller-rank-icon{width:30px !important;height:30px !important;flex-basis:30px !important;font-size:16px !important}.ad-view .seller-rank-banner strong{font-size:14px !important}.ad-view .seller-rank-banner small{display:none !important}
.ad-view .seller-stats{margin:9px 0 11px !important;padding:8px !important;border-radius:10px !important}.ad-view .seller-stats .stat{min-width:0;text-align:center}.ad-view .seller-stats .label{font-size:10px !important}.ad-view .seller-stats .value{font-size:15px !important}
.ad-view .verify-title{margin:10px 0 7px !important;color:#334155 !important;font-size:12px !important}.ad-view .verify-box{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:6px !important}.ad-view .verify-item{padding:7px 8px !important;border-radius:9px !important;font-size:12px !important;font-weight:750 !important}.ad-view .verify-item.ok{background:#f0fdf4 !important;border-color:#86efac !important;color:#166534 !important}
.ad-view .seller-contact-hint{margin:10px 0 0 !important;padding:8px 9px !important;border:0 !important;border-radius:9px !important;background:#f8fafc !important;color:#64748b !important;font-size:12px !important}
.ad-view .btn-contact{min-height:50px !important;margin-top:12px !important;border-radius:12px !important;font-size:16px !important;box-shadow:0 8px 18px rgba(225,29,72,.18) !important}.ad-view .btn-profile{min-height:44px !important;margin-top:8px !important;border-radius:12px !important;background:#fff !important;color:#334155 !important;font-size:14px !important}.ad-view .btn-profile:hover{background:#f8fafc !important}
@media(max-width:600px){.ad-view .seller-box{padding:14px !important}.ad-view .seller-rank-banner{padding:8px 9px !important}.ad-view .verify-item{padding:7px 6px !important;font-size:11px !important}}

.toast-success {
    position: fixed;
    z-index: 9999;
    top: 20px;
    right: 20px;
    max-width: min(360px, calc(100vw - 32px));
    padding: 14px 18px;
    border-radius: 11px;
    background: #166534;
    color: #fff;
    font-size: 14px;
    font-weight: 750;
    box-shadow: 0 8px 22px rgba(22,101,52,.25);
    animation: toastSlide .4s ease-out forwards, toastFadeOut .5s ease-in 3.5s forwards;
}

* { -webkit-tap-highlight-color: transparent; }

body {
    min-width: 320px;
    background: var(--elvix-canvas);
    color: var(--elvix-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.container {
    width: min(100% - 40px, 1440px);
}

.site-header {
    padding: 0 !important;
    border-bottom: 1px solid rgba(226, 232, 240, .92) !important;
    background: rgba(255, 255, 255, .94) !important;
    box-shadow: 0 2px 12px rgba(15, 23, 42, .04);
    backdrop-filter: blur(16px);
}

.site-header .header-inner {
    height: 72px;
}

.site-header .logo-image {
    height: 34px;
}

.desktop-nav {
    gap: 4px !important;
    align-items: center;
}

.site-header .desktop-nav a {
    margin: 0 !important;
    padding: 9px 11px !important;
    border-radius: 10px;
    color: #334155 !important;
    font-size: 14px;
    font-weight: 650;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.site-header .desktop-nav a:hover {
    background: #f1f5f9 !important;
    color: var(--elvix-ink) !important;
    transform: translateY(-1px);
}

.site-header .desktop-nav a.active {
    background: #edf2ff !important;
    color: #294aa8 !important;
}
.saved-alert-count {
    display: inline-flex;
    min-width: 18px;
    min-height: 18px;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    border-radius: 999px;
    background: #b42318;
    color: #fff !important;
    font-size: 11px;
    font-weight: 850;
    line-height: 1;
}
.saved-alert-count:empty { display: none; }

.site-header .desktop-nav a[href*="ad/create"],
.site-header .desktop-nav a[href*="auth/register"] {
    background: var(--elvix-brand) !important;
    color: #fff !important;
    box-shadow: 0 5px 12px rgba(230, 57, 70, .2);
}

.site-header .desktop-nav a[href*="ad/create"]:hover,
.site-header .desktop-nav a[href*="auth/register"]:hover {
    background: var(--elvix-brand-dark) !important;
    color: #fff !important;
}

.hamburger {
    border: 0 !important;
    background: transparent !important;
    padding: 5px !important;
}

.hamburger span { background: var(--elvix-ink) !important; }

.mobile-menu {
    width: min(88vw, 360px) !important;
    right: min(-88vw, -360px) !important;
    padding: 84px 24px 24px !important;
    background: #fff !important;
    color: var(--elvix-ink) !important;
    box-shadow: -18px 0 50px rgba(15, 23, 42, .18);
}

.mobile-menu.open { right: 0 !important; }
.mobile-menu a { color: var(--elvix-ink) !important; border-color: var(--elvix-line) !important; font-weight: 650; }
.overlay { background: rgba(15, 23, 42, .45) !important; }

.site-main {
    margin-top: 28px !important;
    margin-bottom: 44px !important;
}

footer {
    margin-top: 0 !important;
    padding: 30px 0 !important;
    background: var(--elvix-ink) !important;
    color: #cbd5e1 !important;
    font-size: 14px;
}

footer a { color: #fff !important; }

/* Marketplace discovery */
.homepage { gap: 28px !important; }

.homepage .hero.hero-alps {
    min-height: 388px !important;
    margin-bottom: 0 !important;
    padding: 58px 0 !important;
    border-radius: 26px !important;
    background: #14213d !important;
    box-shadow: var(--elvix-shadow);
}

.homepage .hero-alps-bg {
    filter: saturate(.8) brightness(.5) !important;
    animation: none !important;
}

.homepage .hero-alps-overlay {
    background: linear-gradient(110deg, rgba(13, 26, 53, .95) 0%, rgba(20, 33, 61, .72) 55%, rgba(20, 33, 61, .28) 100%) !important;
}

.homepage .hero-content { max-width: 920px !important; text-align: left !important; }

.homepage .hero-content::before {
    content: "SCHWEIZ กค EINFACH กค SICHER";
    display: inline-flex;
    margin-bottom: 13px;
    padding: 7px 10px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: #e0e7ff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .11em;
}

/* The old slogan chip had broken encoding in some browsers. */
.homepage .hero-content::before { content: none !important; display: none !important; }
.homepage {
    padding: 2px 0 34px;
    background:
        radial-gradient(circle at 8% 4%, rgba(219,234,254,.68), transparent 28%),
        linear-gradient(180deg, #f8fafc 0%, #f3f6fb 100%);
}

.homepage .hero-content h1 {
    max-width: 710px;
    margin-bottom: 22px !important;
    color: #fff;
    font-size: clamp(34px, 4.2vw, 54px) !important;
    line-height: 1.06;
    letter-spacing: -.045em;
}

.homepage .hero-search { position: relative; z-index: 10; align-items: stretch !important; max-width: 880px; }

.homepage .hero-search-large {
    max-width: none !important;
    height: 64px !important;
    margin: 0 !important;
    padding: 0 21px !important;
    border: 1px solid rgba(255,255,255,.25) !important;
    border-radius: 15px !important;
    background: #fff !important;
    box-shadow: 0 12px 26px rgba(3, 7, 18, .26) !important;
}

.homepage .hero-search-large:focus-within { outline: 3px solid rgba(255, 255, 255, .32); }
.homepage .hero-search-large input { color: var(--elvix-ink) !important; font-size: 16px !important; outline: 0; }
.homepage .search-icon-big { color: var(--elvix-brand) !important; }
.homepage .hero-search-large { position: relative; z-index: 20; }
.homepage .search-suggestions {
    position: absolute;
    z-index: 50;
    top: calc(100% + 8px);
    right: 0;
    left: 0;
    overflow: hidden;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 35px rgba(15, 23, 42, .22);
    text-align: left;
}
.homepage .search-suggestions[hidden] { display: none !important; }
.homepage .search-suggestion {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 11px 15px;
    border-bottom: 1px solid #e2e8f0;
    color: #0f172a !important;
    text-decoration: none;
}
.homepage .search-suggestion:last-child { border-bottom: 0; }
.homepage .search-suggestion:hover, .homepage .search-suggestion:focus { background: #eff6ff; }
.homepage .search-suggestion strong { font-size: 14px; }
.homepage .search-suggestion span { color: #64748b; font-size: 12px; }
.homepage .hero-row-second,
.homepage .hero-inline-filterbar { position: relative; z-index: 1; }

.homepage .hero-row-second { justify-content: flex-start !important; gap: 10px !important; margin: 10px 0 0 !important; }

.homepage .hero-location-box,
.homepage .hero-cat-btn,
.homepage .filter-inline-input,
.homepage .filter-inline-select {
    height: 46px !important;
    border: 1px solid rgba(226,232,240,.86) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: none !important;
    color: #334155 !important;
}

.homepage .hero-location-box { min-width: 190px; }
.homepage .hero-location-box input { color: #334155 !important; }
.homepage .hero-cat-btn { padding: 0 16px !important; font-weight: 700; }

.homepage .hero-btn {
    height: 46px !important;
    padding: 0 22px !important;
    border-radius: 12px !important;
    background: var(--elvix-brand) !important;
    color: #fff !important;
    box-shadow: 0 8px 16px rgba(230, 57, 70, .2) !important;
}

.homepage .hero-btn:hover { background: var(--elvix-brand-dark) !important; opacity: 1 !important; }
.homepage .hero-inline-filterbar { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.homepage .filter-inline-input { width: 132px; }
.homepage .quick-filters { color: #e2e8f0 !important; align-self: center; }
.homepage .quick-filters a { color: #fff !important; font-weight: 700; }
.homepage .quick-filters a.active {
    padding: 4px 8px;
    border-radius: 999px;
    background: #fff;
    color: var(--elvix-ink) !important;
    text-decoration: none;
}
.homepage .quick-filters .clear-search-link {
    display: inline-block;
    margin-left: 7px;
    padding: 4px 8px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 999px;
    background: rgba(15,23,42,.25);
    color: #fff !important;
    font-size: 12px;
    text-decoration: none;
}
.homepage .quick-filters .clear-search-link:hover { background: rgba(255,255,255,.17); }
.homepage .save-search-form { display: flex; justify-content: center; margin-top: 10px; }
.homepage .save-search-form button {
    min-height: 40px;
    padding: 8px 14px;
    border: 1px solid #fff;
    border-radius: 10px;
    background: #17336d;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}
.homepage .save-search-form button:hover { background: #0b1f46; }

.homepage .hero-cat-menu {
    top: 264px !important;
    width: min(92vw, 440px) !important;
    padding: 12px !important;
    border: 1px solid rgba(255,255,255,.12);
    background: #172554 !important;
}

/* Desktop category picker: anchor it to its button and make room below it.
   The old fixed position covered the headline, search input and filters. */
@media (min-width: 851px) {
    .homepage .hero-row-second { z-index: 35 !important; }
    .homepage .hero-cat-dropdown { position: relative; }
    .homepage .hero-cat-menu:not(.hero-cat-menu--app) {
        position: absolute !important;
        top: calc(100% + 10px) !important;
        left: 0 !important;
        width: 360px !important;
        max-height: 340px !important;
        margin: 0 !important;
        overflow-y: auto !important;
        transform: none !important;
        z-index: 80 !important;
        border-radius: 14px !important;
        box-shadow: 0 18px 38px rgba(2, 6, 23, .38) !important;
    }
    .homepage .hero-search:has(.hero-cat-menu[style*="display: block"]) .hero-inline-filterbar {
        margin-top: 360px !important;
    }
}

.layout-main { grid-template-columns: 246px minmax(0, 1fr) 240px !important; gap: 24px !important; }

.sidebar-left {
    position: sticky;
    top: 96px;
    align-self: start;
    padding: 16px !important;
    border: 1px solid var(--elvix-line) !important;
    border-radius: var(--elvix-radius) !important;
    background: var(--elvix-surface) !important;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .04);
}

.sidebar-title { color: var(--elvix-ink) !important; font-size: 15px !important; letter-spacing: -.01em; }
.cat-card-list { gap: 3px !important; }
.cat-card { border: 0 !important; border-radius: 10px !important; box-shadow: none !important; }
.cat-card-main { padding: 9px 8px !important; border-radius: 9px; }
.cat-card-main:hover { background: #f1f5f9 !important; }
.cat-card-main.active { background: #edf2ff !important; color: #294aa8 !important; }
.cat-card-icon { font-size: 17px !important; width: 22px !important; }
.cat-card-name { font-size: 13px !important; }
.cat-count { color: #94a3b8 !important; font-size: 12px !important; }
.cat-card-sub { background: #f8fafc !important; border-radius: 8px; }
.cat-card-subitem { padding: 7px 9px !important; color: #475569 !important; }
.cat-card-subitem.active { border-color: var(--elvix-brand) !important; color: var(--elvix-brand) !important; }

.results-wrapper { min-width: 0; }
.ads-grid { grid-template-columns: repeat(auto-fill, minmax(235px, 1fr)) !important; gap: 16px !important; margin-top: 0 !important; }
.ad-card { padding: 0 !important; border: 1px solid var(--elvix-line) !important; border-radius: 16px !important; box-shadow: 0 6px 16px rgba(15,23,42,.04) !important; }
.ad-card:hover { transform: translateY(-4px) !important; border-color: #cbd5e1 !important; box-shadow: var(--elvix-shadow) !important; }
.ad-card.highlighted { border: 2px solid #f7c948 !important; box-shadow: 0 0 0 3px rgba(247, 201, 72, .2) !important; }
.ad-thumb { height: 184px !important; border-radius: 0 !important; }
.ad-top-badges { top: 10px !important; left: 10px !important; }
.ad-body { padding: 13px 14px !important; }
.ad-title { font-size: 15px !important; line-height: 1.3; }
.ad-title a { color: var(--elvix-ink) !important; }
.ad-price { color: var(--elvix-brand) !important; font-size: 17px; }
.ad-meta, .ad-auto-info { color: var(--elvix-muted) !important; }
.ad-date { color: #94a3b8 !important; }
.ad-stats { margin-top: 8px; color: #64748b; font-size: 12px; display: flex; gap: 8px; flex-wrap: wrap; }
.ad-footer { display: flex; align-items: center; gap: 8px; padding: 0 14px 14px !important; }
.view-btn { flex: 1; padding: 10px 12px !important; border-radius: 10px !important; background: var(--elvix-ink) !important; font-weight: 700; text-align: center; }
.fav-btn { position: static !important; flex: 0 0 auto; width: 42px !important; height: 42px !important; border: 1px solid var(--elvix-line) !important; box-shadow: none !important; }

.sidebar-right { top: 96px !important; }
.sidebar-ad-rotator, .sidebar-ad-placeholder { height: 480px !important; border-radius: 16px !important; border-color: var(--elvix-line) !important; }
.sidebar-ad-box { border-color: #bfdbfe !important; background: #eff6ff !important; }
.sidebar-ad-box a { color: #1d4ed8 !important; }

.seo-visible-top { padding: 28px 0 8px !important; }
.seo-visible-top h1 { color: var(--elvix-ink); letter-spacing: -.03em; }

@media (max-width: 1120px) {
    .layout-main { grid-template-columns: 228px minmax(0, 1fr) !important; }
    .sidebar-right { display: none; }
}

@media (max-width: 850px) {
    .container { width: min(100% - 28px, 1440px); }
    .site-header .header-inner { height: 64px; }
    .site-header .logo-image { height: 29px; }
    .site-main { margin-top: 16px !important; margin-bottom: 28px !important; }
    .homepage .hero.hero-alps { min-height: auto !important; padding: 38px 0 !important; border-radius: 20px !important; }
    .homepage .hero-content h1 { font-size: 34px !important; }
    .layout-main { grid-template-columns: 1fr !important; gap: 18px !important; }
    .sidebar-left { position: static; padding: 13px !important; }
    .cat-card-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px !important; }
    .cat-card-sub { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
    .homepage .hero-alps-inner { padding: 0 16px !important; }
    .homepage .hero-content h1 { font-size: 31px !important; }
    .homepage .hero-row-second { display: grid !important; grid-template-columns: 1fr 1fr; }
    .homepage .hero-location-box { min-width: 0; width: 100%; }
    .homepage .hero-cat-dropdown, .homepage .hero-cat-btn, .homepage .hero-btn { width: 100%; }
    .homepage .hero-inline-filterbar { display: grid !important; grid-template-columns: 1fr 1fr; }
    .homepage .filter-inline-select { grid-column: 1 / -1; }
    .homepage .filter-inline-input { width: 100% !important; }
    .homepage .quick-filters { grid-column: 1 / -1; font-size: 12px; line-height: 1.9; }
    .homepage .hero-cat-menu { top: 215px !important; }
    .sidebar-left { padding: 12px !important; }
    .sidebar-left .sidebar-title { display: inline-block; margin: 0 !important; }
    .mobile-category-toggle {
        float: right;
        padding: 8px 10px;
        border: 1px solid #1d4ed8 !important;
        border-radius: 9px;
        background: #1d4ed8 !important;
        color: #fff !important;
        font-size: 12px;
        font-weight: 800;
        box-shadow: 0 4px 10px rgba(29,78,216,.22);
    }
    .cat-card-list { clear: both; grid-template-columns: 1fr; margin-top: 10px; }
    .cat-card-list.is-mobile-collapsed { display: none !important; }
    .ads-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
    .ad-thumb { height: 132px !important; }
    .ad-body { padding: 10px !important; }
    .ad-title { font-size: 13px !important; }
    .ad-price { font-size: 14px; }
    .ad-meta, .ad-date, .ad-stats { font-size: 11px !important; }
    .ad-footer { padding: 0 10px 10px !important; }
    .view-btn { padding: 9px 7px !important; font-size: 12px; }
    .fav-btn { width: 36px !important; height: 36px !important; }
}

@media (min-width: 601px) {
    .mobile-category-toggle { display: none; }
}

/* Persistent bottom navigation gives the mobile site an app-like foundation. */
.mobile-bottom-nav { display: none; }
.pwa-install-banner { display: none; }
.ios-install-guide { display: none; }

@media (max-width: 850px), (display-mode: standalone) {
    body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
    .mobile-bottom-nav {
        position: fixed !important;
        right: 0;
        bottom: 0 !important;
        left: 0;
        z-index: 60;
        display: flex !important;
        width: 100%;
        align-items: stretch;
        justify-content: space-around;
        min-height: 66px;
        padding: 7px max(10px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
        border-top: 1px solid rgba(226,232,240,.96);
        background: rgba(255,255,255,.96);
        box-shadow: 0 -9px 26px rgba(15,23,42,.10);
        backdrop-filter: blur(18px);
        transform: translateZ(0);
    }
    .pwa-install-banner {
        position: fixed;
        z-index: 110;
        right: 12px;
        bottom: 84px;
        left: 12px;
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 12px;
        border: 1px solid #bfdbfe;
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 12px 30px rgba(15,23,42,.18);
        color: var(--elvix-ink);
    }
    .pwa-install-banner[hidden] { display: none !important; }
    .pwa-install-banner > div { min-width: 0; flex: 1; }
    .pwa-install-banner strong { display: block; font-size: 14px; }
    .pwa-install-banner span { display: block; margin-top: 2px; color: var(--elvix-muted); font-size: 11px; line-height: 1.3; }
    .pwa-install-banner button { border: 0; border-radius: 9px; cursor: pointer; font-weight: 800; }
    #pwaInstallButton { padding: 9px 11px; background: #1d4ed8; color: #fff; font-size: 12px; }
    .pwa-install-close { width: 28px; height: 28px; background: #f1f5f9; color: #475569; font-size: 20px; line-height: 1; }
    .ios-install-guide {
        position: fixed;
        z-index: 140;
        inset: 0;
        display: grid;
        place-items: end center;
        padding: 18px 14px calc(92px + env(safe-area-inset-bottom));
        background: rgba(15, 23, 42, .42);
    }
    .ios-install-guide[hidden] { display: none !important; }
    .ios-install-card {
        position: relative;
        box-sizing: border-box;
        width: min(100%, 430px);
        padding: 22px 20px 19px;
        border-radius: 22px;
        background: #fff;
        color: #172554;
        box-shadow: 0 22px 55px rgba(15,23,42,.28);
    }
    .ios-install-icon { margin-bottom: 7px; font-size: 30px; }
    .ios-install-card h2 { margin: 0 32px 8px 0; font-size: 20px; line-height: 1.2; }
    .ios-install-card p { margin: 0 0 11px; color: #475569; font-size: 14px; line-height: 1.45; }
    .ios-install-card ol { margin: 0; padding-left: 22px; color: #334155; font-size: 14px; line-height: 1.65; }
    .ios-install-card li + li { margin-top: 4px; }
    .ios-install-x { position: absolute; top: 12px; right: 12px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #f1f5f9; color: #475569; font-size: 22px; line-height: 1; }
    .ios-share-icon { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border: 1px solid #2563eb; border-radius: 5px; color: #2563eb; font-weight: 900; }
    .mobile-bottom-nav a {
        display: inline-flex;
        flex: 1;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2px;
        min-width: 0;
        padding: 3px 2px;
        color: #64748b !important;
        font-size: 10px;
        font-weight: 750;
        line-height: 1.1;
        text-align: center;
        text-decoration: none;
    }
    .mobile-bottom-nav a.active { color: #1d4ed8 !important; }
    .mobile-nav-icon { font-size: 21px; font-weight: 450; line-height: 1; }
    .mobile-message-icon,
    .mobile-favorite-icon {
        position: relative;
        width: 24px;
        height: 24px;
    }
    .mobile-message-icon svg,
    .mobile-favorite-icon svg {
        display: block;
        width: 24px;
        height: 24px;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.8;
    }
    .mobile-unread-badge,
    .mobile-favorite-badge {
        position: absolute;
        top: -7px;
        right: -11px;
        min-width: 16px;
        height: 16px;
        padding: 0 3px;
        color: #fff;
        font-size: 10px;
        font-weight: 800;
        line-height: 16px;
        text-align: center;
        letter-spacing: 0;
        border: 2px solid #fff;
        border-radius: 50%;
        background: var(--elvix-brand);
        box-shadow: 0 1px 4px rgba(230,57,70,.45);
    }
    .mobile-unread-badge.is-hidden,
    .mobile-favorite-badge.is-hidden { display: none; }
    .mobile-bottom-nav .mobile-nav-sell { color: #fff !important; }
    .mobile-nav-sell .mobile-nav-icon {
        display: grid;
        width: 34px;
        height: 34px;
        margin-top: -19px;
        place-items: center;
        border: 4px solid var(--elvix-canvas);
        border-radius: 50%;
        background: var(--elvix-brand);
        box-shadow: 0 6px 14px rgba(230,57,70,.28);
        font-size: 22px;
        font-weight: 400;
    }
    .mobile-nav-sell span:last-child { color: var(--elvix-brand); }
    .chat-container { height: calc(100vh - 156px) !important; }
}

/* Standalone app category picker: always above the complete search form. */
.hero-cat-backdrop {
    position: fixed;
    z-index: 99990;
    inset: 0;
    width: 100%;
    border: 0;
    background: rgba(4, 10, 24, .48);
    backdrop-filter: blur(2px);
}
.hero-cat-menu.hero-cat-menu--app {
    position: fixed !important;
    z-index: 99991 !important;
    right: 12px !important;
    left: 12px !important;
    width: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 12px !important;
    overflow-y: auto !important;
    transform: none !important;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 18px !important;
    background: #172554 !important;
    box-shadow: 0 20px 50px rgba(2, 6, 23, .42);
    -webkit-overflow-scrolling: touch;
}

/* Advert detail: decision and trust first */
.ad-view {
    max-width: 1280px;
    margin: 0 auto;
    color: var(--elvix-ink);
}

.ad-view .back {
    display: inline-flex;
    margin-bottom: 18px;
    color: #475569;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.ad-view .back:hover { color: var(--elvix-brand); }

.ad-view .ad-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.ad-view .ad-header h1 {
    max-width: 780px;
    margin: 0;
    color: var(--elvix-ink);
    font-size: clamp(28px, 3.5vw, 43px) !important;
    line-height: 1.12;
    letter-spacing: -.04em;
}

.ad-view .price-box {
    flex: 0 0 auto;
    padding: 13px 16px;
    border-radius: 14px;
    background: #fff0f1;
    color: var(--elvix-brand) !important;
    font-size: 25px !important;
    font-weight: 800;
}

.ad-view .fav-btn-detail {
    border: 1px solid var(--elvix-line) !important;
    border-radius: 11px !important;
    background: #fff !important;
    color: #334155 !important;
    box-shadow: none !important;
}
.ad-view .share-btn {
    border: 1px solid #17336d !important;
    border-radius: 11px !important;
    background: #17336d !important;
    color: #fff !important;
    box-shadow: 0 5px 12px rgba(23,51,109,.2) !important;
}
.ad-view .share-btn:hover { background: #0b1f46 !important; }
.ad-offer-box { margin: 14px 0 20px; border: 1px solid #c7d2fe; border-radius: 14px; background: #f8faff; overflow: hidden; }
.ad-offer-box summary { display: flex; align-items: center; gap: 9px; padding: 13px 15px; color: #fff; font-size: 0; font-weight: 900; cursor: pointer; list-style: none; background: #17336d; }
.ad-offer-box summary::-webkit-details-marker { display: none; }
.ad-offer-box summary::before { content: 'CHF'; display: inline-grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; background: #fff; color: #17336d; font-size: 10px; letter-spacing: .3px; }
.ad-offer-box summary::after { content: 'Preis vorschlagen'; font-size: 16px; }
.ad-offer-box[open] summary::after { content: 'Angebot schliessen'; }
.ad-offer-box form { display: grid; gap: 9px; padding: 14px 15px; }
.ad-offer-box label, .ad-offer-box small { color: #334155; font-size: 13px; font-weight: 700; }
.ad-offer-box form > div { display: flex; gap: 8px; }
.ad-offer-box input { min-width: 0; flex: 1; border: 1px solid #94a3b8; border-radius: 10px; padding: 11px 12px; background: #fff; }
.ad-offer-box button { border: 0; border-radius: 10px; background: #df474d; color: #fff; font-weight: 900; padding: 11px 14px; white-space: nowrap; }
.ad-offer-box button:hover { background: #bf343a; }
.ad-offer-login { display: inline-flex; margin: 10px 0 20px; padding: 11px 14px; border: 1px solid #c7d2fe; border-radius: 10px; color: #17336d !important; font-weight: 850; background: #f8faff; }
.chat-offer-card { display: grid; gap: 4px; width: min(100%, 330px); margin: 10px auto; padding: 13px; border: 1px solid #bfdbfe; border-radius: 12px; background: #eff6ff; color: #172554; text-align: center; }
.chat-offer-card > span { font-size: 12px; font-weight: 800; text-transform: uppercase; }
.chat-offer-card strong { font-size: 21px; }
.chat-offer-card small { color: #475569; font-weight: 700; }
.chat-offer-card.accepted { border-color: #86efac; background: #f0fdf4; }
.chat-offer-card.declined { border-color: #fecdd3; background: #fff1f2; }
.chat-offer-card form { display: flex; justify-content: center; gap: 8px; margin-top: 5px; }
.chat-offer-card button { border: 0; border-radius: 8px; background: #15803d; color: #fff; padding: 8px 10px; font-weight: 850; }
.chat-offer-card button[value="declined"] { background: #b42318; }
.chat-offer-review { display: inline-flex; justify-content: center; margin-top: 4px; padding: 8px 10px; border-radius: 8px; background: #17336d; color: #fff !important; font-size: 13px; font-weight: 850; text-decoration: none; }

/* One compact transaction bar for the current offer. */
.chat-offer-dock {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 8px 12px 5px;
    padding: 11px 14px;
    border: 1px solid #d9e2ef;
    border-radius: 14px;
    background: #fff;
    color: #172554;
    box-shadow: 0 5px 14px rgba(15, 23, 42, .06);
}
.chat-offer-dock::before {
    content: 'CHF';
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: #edf3ff;
    color: #23458c;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .04em;
}
.chat-offer-dock.accepted { border-color: #b7dfc5; }
.chat-offer-dock.accepted::before { content: "\2713"; background: #e9f8ee; color: #16803d; font-size: 21px; }
.chat-offer-dock-summary { display: grid; flex: 1 1 auto; justify-items: start; gap: 2px; min-width: 0; text-align: left; }
.chat-offer-dock-summary span { color: #64748b; font-size: 12px; font-weight: 750; }
.chat-offer-dock-summary strong { justify-self: start; color: #12254b; font-size: 20px; line-height: 1.1; letter-spacing: -.02em; text-align: left; }
.chat-offer-dock-action { display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-width: 0; color: #64748b; font-size: 12px; font-weight: 700; text-align: right; }
.chat-offer-dock-action form { display: flex; gap: 7px; }
.chat-offer-dock-action button { min-height: 36px; border: 1px solid #17336d; border-radius: 9px; padding: 7px 13px; background: #17336d; color: #fff; font-size: 13px; font-weight: 800; cursor: pointer; white-space: nowrap; transition: background .15s ease, border-color .15s ease, transform .15s ease; }
.chat-offer-dock-action button:hover { border-color: #0d2351; background: #0d2351; transform: translateY(-1px); }
.chat-offer-dock-action button[value="declined"] { border-color: #d8e0ec; background: #fff; color: #56657b; }
.chat-offer-dock-action button[value="declined"]:hover { border-color: #e9a3a9; background: #fff6f6; color: #ae2430; }
@media (max-width: 600px) {
    .chat-offer-dock { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: 9px; margin: 6px 9px 4px; padding: 10px 11px; }
    .chat-offer-dock::before { grid-row: 1; }
    .chat-offer-dock-summary { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; width: 100%; }
    .chat-offer-dock-action { justify-content: space-between; text-align: left; }
    .chat-offer-dock-action { grid-column: 1 / -1; }
    .chat-offer-dock-action form { flex: 1; }
    .chat-offer-dock-action button { flex: 1; }
}
.ad-view .main-img { cursor: zoom-in; }
.ad-image-viewer {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(2, 6, 23, .94);
}
.ad-image-viewer[hidden] { display: none !important; }
.ad-image-viewer img {
    display: block;
    max-width: min(1180px, 100%);
    max-height: calc(100vh - 48px);
    border-radius: 12px;
    object-fit: contain;
}
.ad-image-viewer-close {
    position: absolute;
    top: 16px;
    right: 18px;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255,255,255,.48);
    border-radius: 50%;
    background: rgba(15,23,42,.72);
    color: #fff;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}
.ad-image-viewer-nav {
    position: absolute;
    z-index: 1;
    top: 50%;
    width: 52px;
    height: 64px;
    transform: translateY(-50%);
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 12px;
    background: rgba(15,23,42,.68);
    color: #fff;
    font-size: 50px;
    font-weight: 300;
    line-height: .8;
    cursor: pointer;
}
.ad-image-viewer-nav:hover { background: rgba(30, 79, 161, .9); }
.ad-image-viewer-prev { left: 22px; }
.ad-image-viewer-next { right: 22px; }
.ad-image-viewer-count {
    position: absolute;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(15,23,42,.72);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}
body.image-viewer-open { overflow: hidden; }
@media (max-width: 650px) {
    .ad-image-viewer { padding: 12px; }
    .ad-image-viewer img { max-height: calc(100vh - 24px); border-radius: 8px; }
    .ad-image-viewer-close { top: 10px; right: 10px; }
    .ad-image-viewer-nav { width: 42px; height: 54px; font-size: 42px; opacity: .82; }
    .ad-image-viewer-prev { left: 8px; }
    .ad-image-viewer-next { right: 8px; }
}

.ad-view .ad-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.55fr) 360px !important;
    gap: 24px !important;
    align-items: start;
}

.ad-view .card,
.ad-create-page .card {
    border: 1px solid var(--elvix-line) !important;
    border-radius: var(--elvix-radius) !important;
    background: #fff !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .045) !important;
}

.ad-view .gallery-card { overflow: hidden; }
.ad-view .main-image-wrap { background: #f1f5f9 !important; }
.ad-view .main-img { aspect-ratio: 4 / 3; object-fit: contain !important; }
.ad-view .thumbs { padding: 12px !important; gap: 8px !important; }
.ad-view .thumb { width: 70px !important; height: 54px !important; border-radius: 9px !important; }

.ad-view .description-card,
.ad-view .similar-ads-card,
.ad-view .info-card {
    margin-top: 18px !important;
    padding: 22px !important;
}

.ad-view .card h2,
.ad-view .card h3 {
    color: var(--elvix-ink) !important;
    letter-spacing: -.025em;
}

.ad-view .description-card { font-size: 15px; line-height: 1.7; color: #475569; }
.ad-view .description-card h2 { margin-bottom: 12px; font-size: 20px !important; }

.ad-view .info-row {
    padding: 11px 0 !important;
    border-bottom: 1px solid #eef2f7 !important;
}

.ad-view .info-row:last-child { border-bottom: 0 !important; }
.ad-view .info-row .label { color: #64748b !important; font-size: 13px; }
.ad-view .info-row .value { color: var(--elvix-ink) !important; font-weight: 700; }

.ad-view .seller-box {
    padding: 20px !important;
    border: 1px solid var(--elvix-line) !important;
    border-radius: var(--elvix-radius) !important;
    background: #fff !important;
    box-shadow: var(--elvix-shadow) !important;
}

.ad-view .seller-stats { border-color: #e2e8f0 !important; }
.ad-view .seller-stats .stat .label { color: #64748b !important; }
.ad-view .seller-stats .stat .value { color: var(--elvix-ink) !important; }
.ad-view .verify-box { gap: 7px !important; }
.ad-view .verify-item { border-radius: 9px !important; }
.ad-view .seller-phone-link,
.ad-view .seller-email-link { color: #1d4ed8 !important; font-weight: 800; text-decoration: none; }
.ad-view .seller-phone-link:hover,
.ad-view .seller-email-link:hover { text-decoration: underline; }

.ad-view .btn-contact {
    display: flex !important;
    justify-content: center;
    align-items: center;
    min-height: 50px;
    border-radius: 12px !important;
    background: var(--elvix-brand) !important;
    color: #fff !important;
    font-weight: 800 !important;
    box-shadow: 0 9px 18px rgba(230, 57, 70, .19);
}

.ad-view .btn-profile {
    display: flex !important;
    justify-content: center;
    margin-top: 9px;
    padding: 12px;
    border: 1px solid var(--elvix-line);
    border-radius: 12px;
    color: #334155 !important;
    font-weight: 750;
    text-decoration: none;
}

.mobile-ad-contact { display: none; }

.ad-view .ad-report {
    margin-top: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
    color: #64748b;
}
.ad-view .ad-report summary { padding: 11px 13px; color: #475569; font-size: 13px; font-weight: 750; cursor: pointer; }
.ad-view .ad-report[open] summary { border-bottom: 1px solid #e2e8f0; }
.ad-view .ad-report-form { padding: 13px; }
.ad-view .ad-report-form label { display: block; margin-bottom: 6px; color: #334155; font-size: 13px; font-weight: 750; }
.ad-view .ad-report-form textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 78px;
    padding: 10px;
    border: 1px solid #cbd5e1;
    border-radius: 9px;
    color: #1e293b;
    font: inherit;
    resize: vertical;
}
.ad-view .ad-report-form textarea:focus { outline: 3px solid #e0e7ff; border-color: #7793e8; }
.ad-view .ad-report-form button {
    margin-top: 9px;
    padding: 10px 13px;
    border: 0 !important;
    border-radius: 9px;
    background: #c81e1e !important;
    color: #fff !important;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 5px 12px rgba(185,28,28,.22);
}
.ad-view .ad-report-form button:hover { background: #991b1b !important; }

@media (max-width: 850px) {
    .ad-view { padding-bottom: 72px; }
    .mobile-ad-contact {
        position: fixed;
        z-index: 95;
        right: 14px;
        bottom: 84px;
        left: 14px;
        display: flex;
        min-height: 52px;
        align-items: center;
        justify-content: center;
        gap: 8px;
        border-radius: 14px;
        background: var(--elvix-brand);
        box-shadow: 0 10px 24px rgba(230,57,70,.28);
        color: #fff !important;
        font-weight: 800;
        text-decoration: none;
    }
    .mobile-ad-contact:active { transform: translateY(1px); }
}

.ad-view .similar-slider { gap: 12px !important; }
.ad-view .similar-item { border: 1px solid var(--elvix-line); border-radius: 12px; overflow: hidden; }

/* Create listing: clear form hierarchy, optimized for one-hand completion */
.ad-create-page {
    max-width: 1240px;
    margin: 0 auto;
    color: var(--elvix-ink);
}

.ad-create-page .ad-create-header {
    padding: 28px !important;
    margin-bottom: 20px;
    background: linear-gradient(125deg, #14213d, #263c6d) !important;
    color: #fff !important;
    border: 0 !important;
}

.ad-create-page .ad-create-header h1 { color: #fff !important; font-size: 32px !important; letter-spacing: -.035em; }
.ad-create-page .ad-create-header p { color: #dbeafe !important; }
.ad-create-page .ad-create-steps { max-width: 580px; margin-top: 24px !important; }
.ad-create-page .step { color: #cbd5e1 !important; }
.ad-create-page .step.active { color: #fff !important; }
.ad-create-page .step-circle { border-color: rgba(255,255,255,.36) !important; background: rgba(255,255,255,.1) !important; color: #fff !important; }
.ad-create-page .step.active .step-circle { background: var(--elvix-brand) !important; border-color: var(--elvix-brand) !important; }

.ad-create-page .ad-create-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 290px !important;
    gap: 24px !important;
    align-items: start;
}

.ad-create-page .ad-form { padding: 28px !important; }
.ad-create-page .form-group { margin-bottom: 22px !important; }
.ad-create-page .form-group > label { color: #334155 !important; font-size: 14px; font-weight: 750 !important; }
.ad-create-page .hint { color: #64748b !important; }
.ad-create-page .form-counter { margin-top: 5px; color: #64748b; font-size: 12px; font-weight: 700; text-align: right; }

.ad-create-page input[type="text"],
.ad-create-page input[type="number"],
.ad-create-page input[type="date"],
.ad-create-page textarea,
.ad-create-page select {
    min-height: 48px;
    border: 1px solid #cbd5e1 !important;
    border-radius: 11px !important;
    background: #fff !important;
    color: var(--elvix-ink) !important;
    box-shadow: none !important;
}

.ad-create-page textarea { min-height: 160px; padding: 13px !important; line-height: 1.55; }
.ad-create-page input:focus,
.ad-create-page textarea:focus,
.ad-create-page select:focus {
    border-color: #7793e8 !important;
    outline: 3px solid #e0e7ff !important;
}

.ad-create-page .type-choices { gap: 8px !important; }
.ad-create-page .type-chip { border-radius: 10px !important; border-color: #cbd5e1 !important; }
.ad-create-page .type-chip:has(input:checked) { border-color: var(--elvix-brand) !important; background: #fff0f1 !important; color: #b91c2b !important; }

.ad-create-page .upload-box {
    min-height: 150px;
    border: 2px dashed #cbd5e1 !important;
    border-radius: 14px !important;
    background: #f8fafc !important;
    transition: border-color .18s ease, background .18s ease;
}

.ad-create-page .upload-box:hover { border-color: #7793e8 !important; background: #f5f7ff !important; }
.ad-create-page .ad-draft-notice {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px 12px;
    margin: 0 0 20px;
    padding: 12px 14px;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    background: #eff6ff;
    color: #17336d;
    font-weight: 700;
}
.ad-create-page .ad-draft-notice[hidden] { display: none !important; }
.ad-create-page .listing-quality { margin: 0 0 18px; padding: 14px; border: 1px solid #bfdbfe; border-radius: 12px; background: #eff6ff; }
.listing-quality-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #17336d; }
.listing-quality-top strong { font-size: 14px; }
.listing-quality-top span { padding: 3px 8px; border-radius: 999px; background: #17336d; color: #fff; font-size: 12px; font-weight: 900; }
.listing-quality-track { height: 8px; margin-top: 10px; overflow: hidden; border-radius: 999px; background: #cbd5e1; }
.listing-quality-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: #d97706; transition: width .2s ease, background .2s ease; }
.listing-quality-track span.is-progress { background: #2563eb; }
.listing-quality-track span.is-ready { background: #15803d; }
.ad-create-page .listing-quality p { margin: 8px 0 0; color: #334155 !important; font-size: 13px; font-weight: 650; }
.ad-create-page .ad-draft-notice span { flex: 1 1 230px; }
.ad-create-page .ad-draft-notice button {
    min-height: 38px;
    padding: 7px 12px;
    border: 1px solid #1e4fa1;
    border-radius: 9px;
    background: #1e4fa1;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}
.ad-create-page .ad-draft-notice #discardAdDraft { background: #b42318 !important; border-color: #b42318 !important; color: #fff !important; }
.ad-create-page .image-upload-info { margin-top: 10px; color: #475569; font-size: 13px; font-weight: 700; }
.ad-create-page .preview-item { cursor: grab; }
.ad-create-page .preview-item.is-dragging { opacity: .45; cursor: grabbing; }
.ad-create-page .preview-item.is-drag-over { border-color: #1e4fa1 !important; box-shadow: 0 0 0 3px #dbeafe; }
.ad-create-page .premium-box { border-radius: 13px !important; border-color: #fed7aa !important; background: #fffaf0 !important; }
.ad-create-page .premium-item { border-radius: 9px; }

.ad-create-page .form-actions {
    position: sticky;
    bottom: 12px;
    z-index: 3;
    padding: 14px;
    border: 1px solid var(--elvix-line);
    border-radius: 14px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .09);
}

.ad-create-page .btn-primary {
    width: 100%;
    min-height: 52px;
    border-radius: 12px !important;
    background: var(--elvix-brand) !important;
    color: #fff !important;
    font-size: 16px;
    font-weight: 800 !important;
}

.ad-create-page .ad-sidebar { position: sticky; top: 96px; }
.ad-create-page .ad-sidebar .info-card { padding: 18px !important; margin-bottom: 14px; }
.ad-create-page .current-credits-box { background: var(--elvix-ink) !important; border-radius: 14px !important; }
.ad-create-page .current-credits-box .credits-number { color: #fff !important; }
.ad-create-page .current-credits-box .credits-label { color: #cbd5e1 !important; }
.ad-create-page .credit-btn { background: #fff !important; color: #294aa8 !important; border: 1px solid #c7d2fe; }

@media (max-width: 980px) {
    .ad-view .ad-layout,
    .ad-create-page .ad-create-layout { grid-template-columns: 1fr !important; }
    .ad-view .ad-side, .ad-create-page .ad-sidebar { position: static; }
}

@media (max-width: 650px) {
    .ad-view .ad-header { display: grid; grid-template-columns: 1fr auto; }
    .ad-view .ad-header h1 { grid-column: 1 / -1; font-size: 29px !important; }
    .ad-view .price-box { font-size: 20px !important; }
    .ad-view .description-card, .ad-view .similar-ads-card, .ad-view .info-card, .ad-create-page .ad-form { padding: 17px !important; }
    .ad-create-page .ad-create-header { padding: 21px !important; }
    .ad-create-page .ad-create-header h1 { font-size: 27px !important; }
    .ad-create-page .form-row.two-cols, .ad-create-page .form-row.three-cols { display: grid !important; grid-template-columns: 1fr !important; }
    .ad-create-page .ad-draft-notice { align-items: stretch; }
    .ad-create-page .ad-draft-notice button { flex: 1 1 auto; }
.ad-create-page .form-actions { bottom: 8px; margin: 0 -5px; }
.ad-create-page .form-counter { margin-top: 5px; color: #64748b; font-size: 12px; font-weight: 700; text-align: right; }
.ad-create-page #adCreateSubmit:disabled { cursor: wait; opacity: .72; }
.ad-create-page #adEditSubmit:disabled { cursor: wait; opacity: .72; }
}

/* Dashboard: seller confidence and the next action at a glance */
.dash-wrap {
    max-width: 1240px !important;
    margin: 0 auto 40px !important;
    padding: 0 !important;
    color: var(--elvix-ink);
}

.dash-title { color: var(--elvix-ink); font-size: 32px !important; letter-spacing: -.04em; }
.dash-sub { color: var(--elvix-muted) !important; font-size: 14px !important; }
.dash-layout { grid-template-columns: minmax(0, 1.55fr) minmax(320px, 1fr) !important; gap: 22px !important; }
.dash-wrap .card { border-color: var(--elvix-line) !important; box-shadow: 0 8px 22px rgba(15,23,42,.045) !important; }

.dash-wrap .profile-card {
    padding: 25px !important;
    border-top: 4px solid var(--elvix-brand) !important;
}

.dash-wrap .profile-main h2 { color: var(--elvix-ink) !important; font-size: 25px !important; }
.dash-wrap .member-since, .dash-wrap .card-sub { color: var(--elvix-muted) !important; }
.dash-wrap .profile-metrics { gap: 11px !important; }
.dash-wrap .metric-box { background: #f8fafc !important; border-color: #e7edf5 !important; border-radius: 13px !important; padding: 13px !important; }
.dash-wrap .metric-label { color: var(--elvix-muted) !important; font-size: 12px !important; }
.dash-wrap .metric-value { color: var(--elvix-ink); font-size: 23px !important; font-weight: 800 !important; }

.dash-wrap .btn { border-radius: 11px !important; font-weight: 750; }
.dash-wrap .btn-primary { background: var(--elvix-brand) !important; box-shadow: 0 8px 17px rgba(230,57,70,.18) !important; }
.dash-wrap .btn-outline { border-color: #bfdbfe !important; color: #1d4ed8 !important; background: #eff6ff !important; }
.dash-wrap .btn-secondary { border-color: var(--elvix-line) !important; color: #334155 !important; }
.dash-wrap .profile-actions a[href*="ad/myAds"] {
    background: var(--elvix-ink) !important;
    border-color: var(--elvix-ink) !important;
    color: #fff !important;
    box-shadow: 0 8px 17px rgba(15,23,42,.16) !important;
}
.dash-wrap .profile-actions a[href*="ad/myAds"]:hover { background: #1e293b !important; }
.dash-wrap .btn-topup { background: var(--elvix-ink) !important; color: #fff !important; border-radius: 11px !important; box-shadow: none !important; }
.dash-wrap .link-soft { color: #1d4ed8 !important; text-decoration: none !important; }

.dash-wrap .credits-main { align-items: center !important; padding: 13px; border-radius: 13px; background: #f8fafc; }
.dash-wrap .credits-number { color: var(--elvix-ink); font-size: 34px !important; }
.dash-wrap .info-row { padding: 10px 0; margin: 0 !important; border-bottom: 1px solid #eef2f7; }
.dash-wrap .info-row:last-of-type { border-bottom: 0; }
.dash-wrap .quick-link { border-color: var(--elvix-line) !important; border-radius: 11px !important; color: #334155 !important; }
.dash-wrap .quick-link:hover { border-color: #bfdbfe !important; background: #eff6ff !important; }
.dash-wrap .verify-bar-fill { background: linear-gradient(90deg, var(--elvix-brand), #f59e0b) !important; }
.dash-wrap input[type="text"] { min-height: 43px; border: 1px solid #cbd5e1; border-radius: 10px; padding: 9px 11px; }

/* Inbox: make unread conversations instantly recognizable */
.inbox-container { max-width: 900px !important; margin: 0 auto !important; padding: 0 !important; }
.inbox-title { color: var(--elvix-ink); font-size: 32px !important; letter-spacing: -.04em; margin-bottom: 20px !important; }
.conversation-list { gap: 10px !important; }
.conversation-row { gap: 9px; }
.conversation-item {
    padding: 15px !important;
    border: 1px solid var(--elvix-line) !important;
    border-radius: 15px !important;
    box-shadow: 0 5px 14px rgba(15,23,42,.035);
}
.conversation-item:hover { background: #fff !important; border-color: #bfdbfe !important; box-shadow: 0 10px 20px rgba(15,23,42,.07); transform: translateY(-1px); }
.conversation-item .avatar { background: var(--elvix-ink) !important; }
.conv-header .name { color: var(--elvix-ink); font-size: 16px !important; font-weight: 800 !important; }
.conv-ad-title { color: #64748b !important; }
.conv-preview { color: #475569 !important; }
.unread-badge { background: var(--elvix-brand) !important; box-shadow: 0 3px 8px rgba(230,57,70,.25); }
.delete-chat-btn { width: 42px; height: 42px; margin-left: 0 !important; border-color: var(--elvix-line) !important; color: #94a3b8 !important; }
.delete-chat-btn:hover { background: #fff0f1 !important; border-color: #fecdd3 !important; color: var(--elvix-brand) !important; }
.no-msg { border: 1px dashed #cbd5e1; border-radius: 15px !important; background: #f8fafc !important; color: var(--elvix-muted) !important; }

/* Conversation: phone-first message flow, suitable for future deep-linked push notifications */
.chat-container {
    height: min(720px, calc(100vh - 124px)) !important;
    max-width: 900px !important;
    border: 1px solid var(--elvix-line) !important;
    border-radius: 20px !important;
    box-shadow: var(--elvix-shadow);
}

.chat-header { padding: 15px 18px !important; border-color: var(--elvix-line) !important; }
.chat-header .back-btn { color: var(--elvix-ink) !important; }
.chat-header .name { color: var(--elvix-ink); font-weight: 800 !important; }
.chat-header .ad-link { color: #2563eb !important; }
.chat-messages { padding: 20px !important; background: #f6f8fc !important; }
.msg { max-width: min(75%, 540px) !important; margin-bottom: 15px !important; }
.bubble { padding: 11px 14px !important; line-height: 1.45; box-shadow: 0 2px 5px rgba(15,23,42,.06); }
.msg.me .bubble { background: var(--elvix-brand) !important; }
.msg.them .bubble { background: #fff !important; color: #334155; }
.time { color: #94a3b8 !important; }
.chat-form { padding: 12px !important; border-color: var(--elvix-line) !important; }
.chat-form { flex: 0 0 auto; min-width: 0; }
.chat-messages { min-height: 0; }
.chat-form--basic { align-items: center; min-height: 70px; padding: 12px !important; }
.chat-form--basic .chat-input { min-width: 0; width: 100%; }
.chat-quick-replies {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 9px 12px 0;
    border-top: 1px solid var(--elvix-line);
    background: #fff;
    scrollbar-width: none;
}
.chat-quick-replies::-webkit-scrollbar { display: none; }
.chat-quick-replies button {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid #17336d;
    border-radius: 999px;
    background: #17336d;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}
.chat-quick-replies button:hover { border-color: #0b1f46; background: #0b1f46; color: #fff; }
.chat-input { min-height: 46px; border-color: #cbd5e1 !important; border-radius: 12px !important; }
.chat-input:focus { outline: 3px solid #e0e7ff; border-color: #7793e8 !important; }
.send-btn { min-width: 46px; min-height: 46px; margin-left: 8px !important; border-radius: 12px !important; background: var(--elvix-brand) !important; }
.send-btn:hover { background: var(--elvix-brand-dark) !important; }

@media (max-width: 760px) {
    .dash-layout { grid-template-columns: 1fr !important; }
    .dash-wrap .profile-card { padding: 18px !important; }
    .dash-wrap .profile-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .inbox-title, .dash-title { font-size: 27px !important; }
    .chat-container { height: calc(100vh - 88px) !important; border-radius: 0 !important; margin: -16px -14px -28px !important; border-left: 0 !important; border-right: 0 !important; }
    .chat-form--basic { min-height: 66px; padding: 10px 12px !important; }
}

@media (max-width: 480px) {
    .dash-wrap .profile-top { align-items: flex-start; }
    .dash-wrap .profile-avatar { width: 66px !important; height: 66px !important; font-size: 22px !important; }
    .dash-wrap .profile-main h2 { font-size: 21px !important; }
    .dash-wrap .profile-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .dash-wrap .profile-actions .btn:last-child { grid-column: 1 / -1; justify-content: center; }
    .dash-wrap .metric-box { padding: 10px !important; }
    .dash-wrap .metric-value { font-size: 19px !important; }
    .conversation-item { padding: 12px !important; }
    .conversation-item .avatar { width: 43px !important; height: 43px !important; }
    .msg { max-width: 86% !important; }
    .chat-header { padding: 12px !important; }
}

/* Authentication: make joining Elvix feel clear and trustworthy */
.auth-page {
    min-height: calc(100vh - 190px);
    display: grid !important;
    place-items: center;
    padding: 18px 0;
}

.auth-card {
    width: min(100%, 980px);
    overflow: hidden;
    border: 1px solid var(--elvix-line) !important;
    border-radius: 22px !important;
    box-shadow: var(--elvix-shadow) !important;
}

.auth-left {
    position: relative;
    padding: 48px !important;
    background: linear-gradient(140deg, #14213d, #2c467f) !important;
    color: #fff !important;
}

.auth-left::before {
    content: "ELVIX.CH";
    display: inline-block;
    margin-bottom: 20px;
    padding: 7px 10px;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 999px;
    color: #dbeafe;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
}

.auth-left h1 { color: #fff !important; font-size: clamp(30px, 4vw, 42px) !important; line-height: 1.08; letter-spacing: -.045em; }
.auth-left .subtitle { color: #dbeafe !important; line-height: 1.6; }
.auth-benefits { margin-top: 28px !important; }
.auth-benefits li { color: #eff6ff !important; }

.auth-right { padding: 42px !important; background: #fff !important; }
.auth-right h2 { color: var(--elvix-ink); font-size: 28px !important; letter-spacing: -.035em; }
.auth-form .form-group { margin-bottom: 18px !important; }
.auth-form label { color: #334155 !important; font-size: 14px; font-weight: 750 !important; }
.auth-form input[type="text"],
.auth-form input[type="email"],
.auth-form input[type="password"] {
    min-height: 49px;
    border: 1px solid #cbd5e1 !important;
    border-radius: 11px !important;
    color: var(--elvix-ink) !important;
    background: #fff !important;
}
.auth-form input:focus { border-color: #7793e8 !important; outline: 3px solid #e0e7ff; }
.auth-btn { width: 100%; min-height: 51px; border-radius: 11px !important; background: var(--elvix-brand) !important; color: #fff !important; font-size: 16px; font-weight: 800 !important; box-shadow: 0 9px 18px rgba(230,57,70,.19); }
.auth-error { border-radius: 10px !important; }
.auth-meta, .login-footer { color: var(--elvix-muted) !important; }
.auth-page a:not(.btn-primary) { color: #1d4ed8 !important; font-weight: 700; }
.auth-page .password-field { position: relative; }
.auth-page .password-field input { width: 100%; box-sizing: border-box; padding-right: 90px !important; }
.auth-page .password-toggle {
    position: absolute;
    top: 50%;
    right: 7px;
    padding: 6px 8px;
    border: 1px solid #1d4ed8 !important;
    border-radius: 7px;
    transform: translateY(-50%);
    background: #1d4ed8 !important;
    color: #fff !important;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}
.auth-page .password-toggle:hover { background: #1e40af !important; }
.auth-page .password-match-hint { min-height: 18px; margin-top: 5px; font-size: 12px; font-weight: 700; }
.auth-page .password-match-hint.is-match { color: #15803d; }
.auth-page .password-match-hint.is-mismatch { color: #be123c; }

/* Public seller profile: make verification and reputation easy to read */
.wrap {
    max-width: 1240px !important;
    margin: 0 auto !important;
    color: var(--elvix-ink);
}

.wrap .back-link a { color: #475569 !important; font-size: 14px; font-weight: 700; text-decoration: none; }
.wrap .profile-header {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) 300px !important;
    gap: 24px !important;
    padding: 26px !important;
    border: 1px solid var(--elvix-line) !important;
    border-radius: 21px !important;
    background: #fff !important;
    box-shadow: var(--elvix-shadow) !important;
}

.wrap .profile-avatar { width: 106px !important; height: 106px !important; }
.wrap .profile-main h1 { color: var(--elvix-ink); font-size: 30px !important; letter-spacing: -.04em; }
.wrap .member-line, .wrap .muted { color: var(--elvix-muted) !important; }
.wrap .chip { border-color: var(--elvix-line) !important; background: #f8fafc !important; }
.wrap .profile-metrics { margin-top: 16px !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.wrap .metric-row { padding: 10px !important; border-radius: 11px; background: #f8fafc; }
.wrap .metric-label { color: var(--elvix-muted) !important; font-size: 11px; }
.wrap .metric-value { color: var(--elvix-ink) !important; font-size: 19px; font-weight: 800; }
.wrap .profile-actions { margin-top: 16px !important; }
.wrap .profile-actions .btn-primary { border-radius: 11px !important; background: var(--elvix-brand) !important; box-shadow: 0 8px 17px rgba(230,57,70,.18); }

.wrap .profile-right .box,
.wrap .rating-section {
    border: 1px solid var(--elvix-line) !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 7px 18px rgba(15,23,42,.035) !important;
}

.wrap .profile-right .box { padding: 18px !important; margin-bottom: 12px; }
.wrap .profile-right h3 { color: var(--elvix-ink); font-size: 16px !important; }
.wrap .contact-item { padding: 8px 0; border-bottom: 1px solid #eef2f7; }
.wrap .contact-item:last-child { border-bottom: 0; }
.wrap .contact-item a { color: #1d4ed8 !important; font-weight: 700; }
.wrap .verify-bar-fill { background: linear-gradient(90deg, var(--elvix-brand), #f59e0b) !important; }
.wrap .rating-section { padding: 24px !important; margin-top: 20px; }
.wrap .rating-score-box { border-radius: 13px !important; background: #fff7ed !important; }
.wrap .review-box { border-color: var(--elvix-line) !important; border-radius: 12px !important; }
.wrap .section-title { color: var(--elvix-ink); font-size: 25px !important; letter-spacing: -.03em; }
.wrap .ads-grid { margin-top: 14px !important; }

@media (max-width: 900px) {
    .auth-left { padding: 34px !important; }
    .auth-right { padding: 32px !important; }
    .wrap .profile-header { grid-template-columns: auto minmax(0, 1fr) !important; }
    .wrap .profile-right { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}

@media (max-width: 620px) {
    .auth-page { padding: 0 !important; }
    .auth-card { border-radius: 17px !important; }
    .auth-left { padding: 29px 23px !important; }
    .auth-right { padding: 28px 23px !important; }
    .auth-left h1 { font-size: 30px !important; }
    .wrap .profile-header { grid-template-columns: 1fr !important; padding: 19px !important; }
    .wrap .profile-avatar { width: 80px !important; height: 80px !important; }
    .wrap .profile-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .wrap .metric-row { padding: 8px !important; }
    .wrap .metric-value { font-size: 16px; }
    .wrap .profile-right { display: block; }
    .wrap .rating-section { padding: 18px !important; }
}

/* Seller workspace: make managing and promoting listings straightforward */
.myads-page {
    max-width: 1240px !important;
    margin: 0 auto !important;
    color: var(--elvix-ink);
}

.myads-header {
    align-items: center !important;
    gap: 18px !important;
    margin-bottom: 20px !important;
}

.myads-header h1 { color: var(--elvix-ink); font-size: 32px !important; letter-spacing: -.04em; }
.myads-header p { color: var(--elvix-muted) !important; }
.myads-create-btn { border-radius: 11px !important; background: var(--elvix-brand) !important; color: #fff !important; font-weight: 800 !important; box-shadow: 0 8px 17px rgba(230,57,70,.18); }
.myads-credit-info { border-radius: 12px !important; border-color: #bfdbfe !important; background: #eff6ff !important; color: #1e3a8a !important; }
.myads-legend { padding: 11px 13px; border: 1px solid var(--elvix-line); border-radius: 12px; background: #fff; color: #64748b !important; }
.myads-grid { gap: 14px !important; }

.myads-page .ad-card {
    border: 1px solid var(--elvix-line) !important;
    border-radius: 17px !important;
    background: #fff !important;
    box-shadow: 0 6px 17px rgba(15,23,42,.04) !important;
    overflow: hidden;
}

.myads-page .ad-card:hover { border-color: #cbd5e1 !important; box-shadow: var(--elvix-shadow) !important; }
.myads-page .ad-thumb-link {
    flex: 0 0 184px !important;
    width: 184px !important;
    height: 138px !important;
    overflow: hidden;
    border-radius: 12px !important;
    background: #f1f5f9;
}
.myads-page .ad-thumb,
.myads-page .ad-no-image {
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
    border-radius: 0 !important;
    object-fit: cover !important;
}
.myads-page .ad-title a { color: var(--elvix-ink) !important; }
.myads-page .ad-price {
    flex: 0 0 auto;
    padding: 8px 11px;
    border: 1px solid #fecdd3;
    border-radius: 10px;
    background: #fff0f1;
    color: var(--elvix-brand) !important;
    font-size: 17px;
    font-weight: 850 !important;
    line-height: 1;
}
.myads-page .ad-meta { color: var(--elvix-muted) !important; }
.myads-page .ad-performance { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.myads-page .ad-performance span { padding: 5px 8px; border: 1px solid #dbe3ef; border-radius: 8px; background: #f8fafc; color: #475569; font-size: 12px; font-weight: 700; }
.myads-page .ad-performance strong { color: #17336d; font-weight: 900; }
.myads-page .badge-status { border: 1px solid transparent; font-weight: 800; }
.myads-page .badge-status.is-active { background: #dcfce7; border-color: #bbf7d0; color: #15803d; }
.myads-page .badge-status.is-paused { background: #fff7ed; border-color: #fed7aa; color: #9a3412; }
.myads-page .badge-status.is-reserved { background: #fef3c7; border-color: #fcd34d; color: #92400e; }
.myads-page .badge-status.is-sold { background: #e2e8f0; border-color: #cbd5e1; color: #334155; }
.myads-page .ad-actions { gap: 8px !important; }
.myads-page .listing-status-form { display: contents; }
.myads-page .btn-reserve { background: #a16207 !important; color: #fff !important; }
.myads-page .btn-sold { background: #334155 !important; color: #fff !important; }
.myads-page .btn-reactivate { background: #17336d !important; color: #fff !important; }
.myads-page .btn { border-radius: 10px !important; font-weight: 750; }
.myads-page .btn-view { background: var(--elvix-ink) !important; color: #fff !important; }
.myads-page .btn-edit { border-color: #bfdbfe !important; background: #eff6ff !important; color: #1d4ed8 !important; }
.myads-page .btn-highlight { border-color: #fde68a !important; background: #fffbeb !important; color: #a16207 !important; }
.myads-page .btn-push { border-color: #bbf7d0 !important; background: #f0fdf4 !important; color: #15803d !important; }
.myads-page .btn-delete { border-color: #fecdd3 !important; background: #fff0f1 !important; color: #be123c !important; }
.myads-empty { padding: 36px !important; border: 1px dashed #cbd5e1 !important; border-radius: 17px !important; background: #f8fafc !important; }

/* Favourites: saved listings should feel like a concise personal collection */
.favorites-page { max-width: 1240px; margin: 0 auto; color: var(--elvix-ink); }
.favorites-title { color: var(--elvix-ink); font-size: 32px !important; letter-spacing: -.04em; }
.favorites-grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important; gap: 16px !important; }
.fav-card { border: 1px solid var(--elvix-line) !important; border-radius: 16px !important; background: #fff !important; box-shadow: 0 6px 16px rgba(15,23,42,.04) !important; overflow: hidden; }
.fav-card:hover { transform: translateY(-3px); border-color: #cbd5e1 !important; box-shadow: var(--elvix-shadow) !important; }
.fav-thumb { height: 175px !important; border-radius: 0 !important; }
.fav-body { padding: 13px !important; }
.fav-title a { color: var(--elvix-ink) !important; }
.fav-price { color: var(--elvix-brand) !important; font-weight: 800 !important; }
.fav-meta, .fav-stats { color: var(--elvix-muted) !important; }
.favorites-page .fav-btn { top: 10px !important; right: 10px !important; background: #fff !important; border: 1px solid var(--elvix-line) !important; box-shadow: 0 4px 12px rgba(15,23,42,.12) !important; }
.favorites-empty { padding: 40px !important; border: 1px dashed #cbd5e1 !important; border-radius: 17px !important; background: #f8fafc !important; color: var(--elvix-muted) !important; }
.back-home { display: inline-flex; margin-top: 14px; padding: 11px 14px; border-radius: 11px; background: var(--elvix-brand); color: #fff !important; font-weight: 800; text-decoration: none; }

/* Profile settings: comfortable editing on desktop and phone */
.profile-edit-page { max-width: 1120px; margin: 0 auto; color: var(--elvix-ink); }
.profile-edit-page > h1 { color: var(--elvix-ink); font-size: 32px !important; letter-spacing: -.04em; }
.profile-edit-layout { grid-template-columns: minmax(0, 1fr) 300px !important; gap: 22px !important; }
.profile-edit-page .card { border-color: var(--elvix-line) !important; border-radius: 17px !important; box-shadow: 0 7px 18px rgba(15,23,42,.04) !important; }
.profile-edit-page .profile-form-card { padding: 26px !important; }
.profile-edit-page .avatar-big { border: 3px solid #e0e7ff !important; }
.profile-edit-page .divider { border-color: #eef2f7 !important; }
.profile-edit-page label { color: #334155 !important; font-weight: 750 !important; }
.profile-edit-page input[type="text"],
.profile-edit-page input[type="file"] {
    min-height: 47px;
    border: 1px solid #cbd5e1 !important;
    border-radius: 10px !important;
    background: #fff !important;
}
.profile-edit-page input[type="text"]:focus { border-color: #7793e8 !important; outline: 3px solid #e0e7ff; }
.profile-edit-page .btn-primary { border-radius: 11px !important; background: var(--elvix-brand) !important; color: #fff !important; font-weight: 800 !important; }
.profile-edit-page .btn-secondary { border-radius: 11px !important; border-color: var(--elvix-line) !important; color: #334155 !important; }
.profile-edit-page .profile-side-card { background: #f8fafc !important; }
.profile-edit-page .profile-side-card h2 { color: var(--elvix-ink) !important; }

@media (max-width: 760px) {
    .myads-header { align-items: flex-start !important; flex-direction: column; }
    .myads-create-btn { width: 100%; justify-content: center; }
    .profile-edit-layout { grid-template-columns: 1fr !important; }
    .myads-page .ad-thumb-link { flex-basis: 148px !important; width: 148px !important; height: 112px !important; }
}

@media (max-width: 520px) {
    .myads-header h1, .favorites-title, .profile-edit-page > h1 { font-size: 27px !important; }
    .favorites-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
    .fav-thumb { height: 130px !important; }
    .fav-title { font-size: 13px !important; }
    .fav-body { padding: 10px !important; }
    .profile-edit-page .profile-form-card { padding: 18px !important; }
    .myads-page .ad-card { display: grid !important; grid-template-columns: 1fr !important; }
    .myads-page .ad-thumb-link { width: 100% !important; height: 185px !important; }
    .myads-page .ad-header-row { gap: 8px !important; }
    .myads-page .ad-price { font-size: 15px; }
    .myads-page .ad-performance { gap: 6px; }

    /* Keep listing actions predictable and easy to tap on a phone. */
    .myads-page .ad-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px !important;
        width: 100%;
    }
    .myads-page .ad-actions > .btn,
    .myads-page .ad-actions .action-group > .btn {
        display: flex !important;
        align-items: center;
        justify-content: center;
        min-width: 0;
        min-height: 44px !important;
        height: auto !important;
        padding: 9px 10px !important;
        border-radius: 10px !important;
        line-height: 1.2;
        text-align: center;
        white-space: normal !important;
    }
    .myads-page .ad-actions > .action-group {
        display: grid !important;
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px !important;
        width: 100%;
    }
    .myads-page .ad-actions > .action-group > .btn:only-child {
        grid-column: 1 / -1;
    }
    .myads-page .ad-actions > .feature-note,
    .myads-page .ad-actions .push-hint-cooldown {
        grid-column: 1 / -1;
        width: 100%;
        margin: 0 !important;
        text-align: center;
    }
    .myads-page .ad-actions > .btn-delete {
        grid-column: 1 / -1;
        min-height: 40px !important;
        background: transparent !important;
    }
}

/* Saved searches: a simple in-app alert centre for matching new adverts. */
.saved-search-page { max-width: 1180px; margin: 0 auto; color: var(--elvix-ink); }
.saved-search-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.saved-search-kicker { margin: 0 0 7px; color: #1e4fa1; font-size: 12px; font-weight: 850; letter-spacing: .08em; }
.saved-search-header h1 { margin: 0; color: var(--elvix-ink); font-size: 32px; letter-spacing: -.04em; }
.saved-search-header p { margin: 7px 0 0; color: var(--elvix-muted); }
.push-opt-in { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.push-opt-in button { min-height: 42px; padding: 8px 13px; border: 1px solid #17336d; border-radius: 10px; background: #17336d; color: #fff; font-weight: 850; cursor: pointer; }
.push-opt-in button:hover { background: #0b1f46; }
.push-opt-in button.push-disable { background: #9f1239; border-color: #9f1239; }
.push-opt-in button.push-disable:hover { background: #881337; }

.recently-viewed { margin-top: 22px; padding-top: 18px; border-top: 1px solid #dbe3ef; }
.recently-viewed h3 { margin: 0 0 10px; color: #172554; font-size: 16px; }
.recently-viewed-item { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 9px; align-items: center; padding: 7px 0; color: #172554 !important; text-decoration: none; }
.recently-viewed-item img, .recently-viewed-no-image { width: 52px; height: 42px; border-radius: 8px; object-fit: cover; background: #e2e8f0; }
.recently-viewed-no-image { display: grid; place-items: center; color: #64748b; font-size: 9px; font-weight: 800; }
.recently-viewed-item > span { display: grid; gap: 2px; min-width: 0; }
.recently-viewed-item strong { overflow: hidden; color: #172554; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.recently-viewed-item small { color: #b42318; font-size: 12px; font-weight: 800; }
.recently-viewed-home { max-width: 1220px; margin: 22px auto 0; padding: 0 20px; border: 0; }
.recently-viewed-home h2 { margin: 0 0 12px; color: #172554; font-size: 21px; }
.recently-viewed-list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.recently-viewed-home .recently-viewed-item { min-width: 0; grid-template-columns: 58px minmax(0, 1fr); min-height: 58px; padding: 8px; border: 1px solid #dbe3ef; border-radius: 11px; background: #fff; }
.recently-viewed-home .recently-viewed-item:hover { border-color: #17336d; }
@media (max-width: 760px) {
    .recently-viewed-home { max-width: 100%; overflow: hidden; padding: 0 14px; }
    .recently-viewed-list { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .recently-viewed-home .recently-viewed-item { grid-template-columns: 46px minmax(0, 1fr); min-width: 0; }
    .recently-viewed-home .recently-viewed-item img, .recently-viewed-home .recently-viewed-no-image { width: 46px; height: 40px; }
}
.push-opt-in button:disabled { opacity: .7; cursor: wait; }
.push-opt-in span { color: #334155; font-size: 13px; font-weight: 700; }
.saved-search-new { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 0 14px; border-radius: 10px; background: #17336d; color: #fff !important; font-weight: 800; text-decoration: none; }
.saved-search-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
.saved-search-card { padding: 20px; border: 1px solid var(--elvix-line); border-radius: 16px; background: #fff; box-shadow: 0 7px 18px rgba(15,23,42,.04); }
.saved-search-card h2 { margin: 0 0 14px; color: var(--elvix-ink); font-size: 19px; }
.saved-search-list, .saved-alert-list { display: grid; gap: 10px; }
.saved-search-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px; border: 1px solid #dbe3ef; border-radius: 12px; }
.saved-search-item a, .saved-alert { color: var(--elvix-ink) !important; text-decoration: none; }
.saved-search-item a { display: grid; gap: 4px; }
.saved-search-item a span, .saved-alert span { color: #64748b; font-size: 13px; }
.saved-search-item form { margin: 0; }
.saved-search-item button { min-height: 36px; padding: 6px 10px; border: 1px solid #b42318; border-radius: 9px; background: #b42318; color: #fff; font-weight: 800; cursor: pointer; }
.saved-alert { display: grid; gap: 4px; padding: 13px; border: 1px solid #bfdbfe; border-radius: 12px; background: #eff6ff; }
.saved-alert:hover { border-color: #1e4fa1; background: #dbeafe; }
.saved-search-empty { padding: 18px; border: 1px dashed #cbd5e1; border-radius: 12px; background: #f8fafc; color: #64748b; line-height: 1.5; }
@media (max-width: 680px) {
    .saved-search-header { align-items: stretch; flex-direction: column; }
    .saved-search-new { width: 100%; }
    .push-opt-in button { width: 100%; }
    .saved-search-layout { grid-template-columns: 1fr; }
}

/* Credits and Platin: make paid upgrades transparent and easy to compare */
.title {
    color: var(--elvix-ink) !important;
    font-size: 32px !important;
    letter-spacing: -.04em;
}
.sub { color: var(--elvix-muted) !important; font-size: 14px !important; }
a.back-link { color: #475569 !important; font-weight: 700; }

.balance-box {
    margin-bottom: 20px !important;
    padding: 18px !important;
    border: 1px solid #c7d2fe;
    border-radius: 15px;
    background: linear-gradient(135deg, #eff6ff, #f8fafc);
}
.balance-val { color: var(--elvix-ink); font-size: 36px !important; font-weight: 850 !important; }
.balance-label { color: var(--elvix-muted) !important; }
.packs-grid { gap: 15px !important; }
.pack {
    padding: 18px !important;
    border: 1px solid var(--elvix-line) !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: 0 5px 15px rgba(15,23,42,.035);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.pack:hover { transform: translateY(-3px); border-color: #bfdbfe !important; box-shadow: var(--elvix-shadow); }
.pack-header { color: #64748b; font-size: 13px; font-weight: 750 !important; text-transform: uppercase; letter-spacing: .04em; }
.pack-credits { color: var(--elvix-ink); font-size: 27px !important; letter-spacing: -.03em; }
.pack-price { color: var(--elvix-brand) !important; font-size: 18px !important; font-weight: 850; }
.btn-twint { min-height: 46px; border-radius: 11px !important; background: #0b1020 !important; font-weight: 800; }
.paypal-buttons { min-height: 45px; }
.hint { color: var(--elvix-muted) !important; }

.head-row { padding-bottom: 18px; border-bottom: 1px solid #eef2f7; }
.head-left strong { color: var(--elvix-ink); font-size: 18px; }
.pill-level { border-color: #c7d2fe !important; background: #eff6ff !important; color: #1e3a8a; font-weight: 750; }
.features { gap: 12px !important; }
.feat { padding: 15px !important; border: 1px solid var(--elvix-line) !important; border-radius: 14px !important; background: #f8fafc !important; }
.feat strong { color: var(--elvix-ink); }
.pay-section { padding: 19px !important; border-color: #c7d2fe !important; border-radius: 16px !important; background: linear-gradient(135deg, #eff6ff, #fff) !important; }
.pay-header { gap: 16px; }
.price { color: var(--elvix-brand); font-size: 23px !important; font-weight: 850 !important; white-space: nowrap; }
.pay-section .btn-outline { min-height: 46px; border-radius: 11px !important; border: 0 !important; background: #0b1020 !important; color: #fff !important; font-weight: 800; }
.status-ok { color: #15803d !important; font-weight: 700; }
.status-warn { padding: 10px 12px; border-radius: 10px; background: #fff7ed; color: #9a3412 !important; }

table { overflow: hidden; border: 1px solid var(--elvix-line); border-radius: 13px; }
thead { background: #f8fafc !important; }
th { color: #64748b !important; font-weight: 750 !important; }
th, td { padding: 12px 11px !important; border-color: #eef2f7 !important; }
tbody tr:hover { background: #f8fafc; }

@media (max-width: 600px) {
    .title { font-size: 27px !important; }
    .packs-grid { grid-template-columns: 1fr !important; }
    .pay-header { align-items: flex-start !important; flex-direction: column; }
    .price { font-size: 21px !important; }
    table { display: block; overflow-x: auto; white-space: nowrap; }
}

/* This comes last because chat-specific mobile rules appear earlier in the file. */
@media (max-width: 850px) {
    .chat-container { height: calc(100dvh - 156px) !important; }
}

/* Profile: compact premium membership overview */
.premium-legacy { display: none; }
.premium-overview {
    margin-top: 20px;
    padding: 22px;
    border: 1px solid #c7d2fe;
    border-radius: 18px;
    background: linear-gradient(135deg, #ffffff 0%, #f5f7ff 100%);
    box-shadow: 0 10px 26px rgba(30, 58, 138, .08);
}
.premium-overview-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.premium-overview-kicker { margin: 0 0 5px; color: #4338ca; font-size: 11px; font-weight: 850; letter-spacing: .1em; }
.premium-overview h2 { margin: 0; color: #0f172a; font-size: 23px; line-height: 1.15; }
.premium-overview-head > div:first-child > p:last-child { margin: 7px 0 0; color: #475569; font-size: 14px; }
.premium-overview-score { flex: 0 0 auto; min-width: 104px; padding: 12px 15px; border-radius: 14px; background: #0f172a; color: #fff; text-align: center; }
.premium-overview-score strong { display: block; color: #fff; font-size: 25px; line-height: 1; }
.premium-overview-score span { display: block; margin-top: 5px; color: #cbd5e1; font-size: 11px; font-weight: 750; }
.premium-status-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-top: 18px; }
.premium-status-card { padding: 14px 15px; border: 1px solid #dbe3f0; border-radius: 13px; background: #fff; }
.premium-status-level { border-color: #a5b4fc; background: #eef2ff; }
.premium-status-label { display: block; margin-bottom: 5px; color: #64748b; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .055em; }
.premium-status-card strong { display: block; color: #172554; font-size: 15px; }
.premium-status-card small { display: block; margin-top: 4px; color: #64748b; font-size: 12px; line-height: 1.35; }
.membership-roadmap { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 11px; }
.membership-step { display: flex; gap: 8px; min-width: 0; padding: 11px; border: 1px solid #dbe3f0; border-radius: 12px; background: #fff; }
.membership-step.membership-current { border-color: #cbd5e1; }
.membership-step.membership-unlocked { border-color: #fbbf24; background: linear-gradient(135deg, #fff8d9, #fff); }
.membership-step.membership-platin { border-color: #a5b4fc; background: linear-gradient(135deg, #eef2ff, #fff); }
.membership-step.membership-platin.membership-unlocked { border-color: #6366f1; background: linear-gradient(135deg, #e0e7ff, #fff); }
.membership-icon { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: #f1f5f9; font-size: 16px; }
.membership-unlocked .membership-icon { background: #fef3c7; }
.membership-platin .membership-icon { background: #e0e7ff; }
.membership-step strong { display: block; color: #172554; font-size: 12px; line-height: 1.3; }
.membership-step small { display: block; margin-top: 3px; color: #64748b; font-size: 10px; line-height: 1.35; }
.premium-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 11px; }
.premium-feature-card { display: flex; gap: 10px; min-width: 0; padding: 13px; border: 1px solid #dbe3f0; border-radius: 13px; background: #fff; }
.premium-feature-chat { grid-column: 1 / -1; }
.premium-feature-icon { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: #e0e7ff; font-size: 17px; }
.premium-feature-card h3 { margin: 1px 0 4px; color: #172554; font-size: 14px; }
.premium-feature-card p { margin: 0; color: #64748b; font-size: 12px; line-height: 1.42; }
.premium-feature-card p b { color: #15803d; }
.premium-overview-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 13px; padding: 13px 14px; border-radius: 12px; background: #172554; color: #fff; font-size: 13px; font-weight: 700; }
.premium-overview-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.premium-overview-actions .btn { min-height: 38px; border-radius: 9px !important; }
.premium-overview-actions .btn-outline { border: 1px solid #fff !important; background: #fff !important; color: #172554 !important; }

/* Keep the membership overview focused: feature availability is shown once, with clear states. */
.premium-overview .premium-status-grid,
.premium-overview .membership-roadmap { display: none; }
.premium-feature-group { margin-top: 16px; }
.premium-locked-group { margin-top: 18px; }
.premium-group-title { margin: 0 0 8px; font-size: 13px; font-weight: 850; }
.premium-group-title.active { color: #15803d; }
.premium-group-title.locked { color: #64748b; }
.premium-feature-card.is-active { border-color: #86efac; background: #f0fdf4; }
.premium-feature-card.is-active .premium-feature-icon { background: #dcfce7; }
.premium-feature-card.is-active h3 { color: #166534; }
.premium-feature-card.is-locked { border-color: #e2e8f0; background: #f8fafc; filter: grayscale(.55); }
.premium-feature-card.is-locked .premium-feature-icon { background: #e5e7eb; }
.premium-feature-card.is-locked h3,
.premium-feature-card.is-locked p { color: #64748b; }
.feature-state { display: inline-block; margin-bottom: 2px; padding: 2px 6px; border-radius: 999px; background: #bbf7d0; color: #166534; font-size: 9px; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }
.is-locked .feature-state { background: #e2e8f0; color: #64748b; }

@media (max-width: 600px) {
    .premium-overview { padding: 16px; border-radius: 15px; }
    .premium-overview-head { align-items: flex-start; }
    .premium-overview h2 { font-size: 20px; }
    .premium-overview-score { min-width: 80px; padding: 10px; }
    .premium-overview-score strong { font-size: 21px; }
    .premium-status-grid, .membership-roadmap, .premium-feature-grid { grid-template-columns: 1fr; }
    .premium-feature-chat { grid-column: auto; }
    .premium-overview-footer { align-items: flex-start; flex-direction: column; }
    .premium-overview-actions { width: 100%; }
    .premium-overview-actions .btn { flex: 1 1 145px; text-align: center; }
}

/* Profile dashboard: identity and activity at a glance */
.dash-wrap .profile-card {
    border: 1px solid #dbe3f0 !important;
    border-radius: 18px !important;
    background: linear-gradient(135deg, #ffffff, #f8fbff) !important;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .07) !important;
}
.dash-wrap .profile-top { padding-bottom: 15px; border-bottom: 1px solid #e2e8f0; }
.dash-wrap .profile-main h2 { color: #0f172a !important; font-size: 24px !important; }
.dash-wrap .member-since { color: #64748b !important; font-weight: 650; }
.dash-wrap .sub-info { margin-top: 7px; padding: 7px 9px; border-radius: 8px; background: #eef2ff; color: #312e81 !important; }
.dash-wrap .profile-metrics { gap: 9px !important; margin-top: 15px !important; }
.dash-wrap .metric-box {
    min-width: 0;
    padding: 12px 11px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    background: #fff !important;
}
.dash-wrap .metric-label { color: #64748b !important; font-size: 11px !important; font-weight: 750; }
.dash-wrap .metric-value { color: #0f172a !important; font-size: 21px !important; font-weight: 850 !important; }
.dash-wrap .profile-actions { gap: 9px !important; }
.dash-wrap .profile-actions .btn { min-height: 43px; border-radius: 10px !important; font-weight: 800; }
.dash-wrap .profile-actions .btn-secondary { background: #172554 !important; border-color: #172554 !important; color: #fff !important; }
.dash-wrap .profile-actions .btn-outline { border-color: #172554 !important; background: #fff !important; color: #172554 !important; }

@media (max-width: 600px) {
    .dash-wrap .profile-top { gap: 12px; }
    .dash-wrap .profile-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .dash-wrap .metric-box:last-child { grid-column: 1 / -1; }
    .dash-wrap .profile-actions .btn { flex: 1 1 100%; text-align: center; }
}

/* Dashboard account controls */
.dash-wrap .right-col > .card { border-color: #dbe3f0 !important; box-shadow: 0 7px 18px rgba(15,23,42,.045) !important; }
.dash-wrap .right-col > .card h3 { color: #0f172a !important; font-size: 17px !important; }
.dash-wrap .credits-main { padding: 14px; border-radius: 13px; background: #172554; }
.dash-wrap .credits-number { color: #fff !important; font-size: 32px !important; font-weight: 850 !important; }
.dash-wrap .credits-label { color: #cbd5e1 !important; font-weight: 700; }
.dash-wrap .btn-topup { border-radius: 9px !important; background: #fff !important; color: #172554 !important; font-weight: 850 !important; }
.dash-wrap .link-soft { color: #dbeafe !important; font-weight: 700; }
.dash-wrap .info-row { padding: 10px 0 !important; border-color: #e2e8f0 !important; }
.dash-wrap .info-row .label { color: #475569 !important; font-weight: 800; }
.dash-wrap .info-row .value { color: #0f172a !important; font-weight: 650; }
.dash-wrap .toggle-row { padding: 9px 11px; border-radius: 10px; background: #f8fafc; color: #334155; font-weight: 700; }
.dash-wrap .right-col input[type="text"] { min-height: 39px; border-color: #cbd5e1 !important; border-radius: 9px !important; color: #0f172a; }
.dash-wrap .right-col form > .btn-primary { min-height: 42px; border-radius: 9px !important; background: #172554 !important; color: #fff !important; font-weight: 800; }
.verification-status-summary { display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; margin: 11px 0; padding: 12px; border: 1px solid #c7d2fe; border-radius: 12px; background: #eef2ff; }
.verification-status-summary strong { grid-row: span 2; color: #312e81; font-size: 26px; line-height: 1; }
.verification-status-summary span { color: #172554; font-size: 13px; font-weight: 850; }
.verification-status-summary em { color: #475569; font-size: 11px; font-style: normal; line-height: 1.35; }
.dash-wrap .verify-list { margin-top: 12px !important; }
.dash-wrap .verify-list li { padding: 11px 0 !important; border-color: #e2e8f0 !important; }
.dash-wrap .verify-list li { padding: 10px !important; border: 1px solid #e2e8f0 !important; border-radius: 9px; background: #fff; }
.dash-wrap .verify-ok { padding: 4px 7px; border-radius: 999px; background: #dcfce7; color: #166534 !important; font-size: 11px; font-weight: 850; }
.dash-wrap .verify-no { padding: 4px 7px; border-radius: 999px; background: #f1f5f9; color: #475569 !important; font-size: 11px; font-weight: 850; }
.dash-wrap .verify-list a { color: #172554 !important; font-weight: 800; }
.dash-wrap .verify-list button { border: 0; border-radius: 7px; background: #172554; color: #fff; font-weight: 800; }
.dash-wrap .verify-progress-wrap { margin-top: 13px; padding: 11px; border-radius: 10px; background: #f8fafc; color: #334155; font-weight: 750; }

@media (max-width: 600px) {
    .dash-wrap .credits-main { align-items: stretch; flex-direction: column; }
    .dash-wrap .credits-actions { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; }
    .dash-wrap .btn-topup { flex: 0 0 auto; min-height: 44px; padding: 11px 16px !important; text-align: center; }
    .dash-wrap .link-soft { padding: 9px; text-align: center; }
    .ad-offer-box { margin: 12px 0 18px; }
    .ad-offer-box summary { min-height: 52px; padding: 11px 13px; }
    .ad-offer-box form > div { flex-direction: column; }
    .ad-offer-box input, .ad-offer-box button { width: 100%; min-height: 46px; }
}

/* Lightweight listing-card photo browsing */
.ad-thumb-wrapper { touch-action: pan-y; }
.card-gallery-nav {
    display: none !important;
    position: absolute;
    z-index: 7;
    top: 88px;
    display: grid;
    width: 31px;
    height: 31px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: rgba(15, 23, 42, .82);
    color: #fff;
    cursor: pointer;
    font-size: 25px;
    line-height: 1;
    transition: background .16s ease;
}
.card-gallery-nav:hover { background: #172554; }
.card-gallery-prev { left: 9px; }
.card-gallery-next { right: 9px; }
.card-gallery-count {
    position: absolute;
    z-index: 6;
    left: 9px;
    bottom: 9px;
    padding: 4px 7px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .78);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    pointer-events: none;
}
@media (max-width: 600px) {
    .card-gallery-nav { display: none !important; }
    .card-gallery-count { left: 50%; bottom: 7px; padding: 4px 8px; font-size: 10px; transform: translateX(-50%); }
}

/* Platin chat: image sharing and smiley picker */
.chat-image-link { display: block; margin-top: 8px; }
.chat-image { display: block; max-width: min(300px, 100%); max-height: 300px; border-radius: 11px; object-fit: cover; }
.chat-image-lightbox { position: fixed; z-index: 100000; inset: 0; display: grid; place-items: center; padding: max(20px, env(safe-area-inset-top)) 18px max(20px, env(safe-area-inset-bottom)); background: rgba(2,6,23,.93); }
.chat-image-lightbox[hidden] { display: none !important; }
.chat-image-lightbox img { display: block; max-width: 100%; max-height: 100%; border-radius: 12px; object-fit: contain; box-shadow: 0 16px 48px rgba(0,0,0,.46); }
.chat-image-lightbox-close { position: absolute; top: max(14px, env(safe-area-inset-top)); right: max(14px, env(safe-area-inset-right)); display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(15,23,42,.72); color: #fff; cursor: pointer; font-size: 34px; line-height: 1; }
.chat-image-lightbox-close:hover { background: var(--elvix-brand); }
.chat-premium-tools { position: relative; display: flex; flex: 0 0 auto; gap: 6px; align-items: center; }
.chat-emoji-toggle, .chat-image-upload {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #fff;
    color: #172554;
    cursor: pointer;
    font-size: 18px;
    font-weight: 800;
}
.chat-image-upload { font-size: 10px; }
.chat-image-upload.selected { border-color: #15803d; background: #dcfce7; color: #166534; }
.chat-image-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.chat-emoji-picker { position: absolute; z-index: 20; bottom: 46px; left: 0; display: flex; flex-wrap: wrap; width: 178px; gap: 4px; padding: 8px; border: 1px solid #cbd5e1; border-radius: 11px; background: #fff; box-shadow: 0 12px 28px rgba(15,23,42,.18); }
.chat-emoji-picker::before { content: 'Smilies'; flex: 0 0 100%; padding: 1px 2px 4px; color: #475569; font-size: 11px; font-weight: 850; }
.chat-emoji-picker[hidden] { display: none !important; }
.chat-emoji-picker button { width: 31px; height: 31px; border: 0; border-radius: 7px; background: #f8fafc; cursor: pointer; font-size: 17px; }
.chat-emoji-picker button:hover { background: #e0e7ff; }
@media (max-width: 600px) {
    .chat-premium-tools { gap: 4px; }
    .chat-emoji-toggle, .chat-image-upload { width: 35px; height: 35px; }
    .chat-image { max-width: min(250px, 100%); max-height: 250px; }
}
/* Shared contact page */
.contact-page{max-width:1120px;margin:0 auto;padding:22px 16px 48px}.contact-hero{padding:36px;border-radius:18px;background:linear-gradient(125deg,#061b35,#123b73);color:#fff}.contact-hero span{color:#f8d500;font-size:12px;font-weight:850;letter-spacing:.1em}.contact-hero h1{margin:7px 0;font-size:32px}.contact-hero p{margin:0;color:#dbeafe}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px;margin-top:18px}.contact-layout aside,.contact-form-card{padding:22px;border:1px solid #dbe3f0;border-radius:15px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.05)}.contact-layout h2{margin:0 0 9px;color:#10213f;font-size:20px}.contact-layout aside>p{color:#64748b;line-height:1.5}.contact-layout aside>div{display:grid;gap:3px;margin-top:14px;padding:12px;border-radius:10px;background:#f8fbff}.contact-layout small{color:#64748b}.contact-form-card label{display:block;margin:13px 0 5px;font-size:13px;font-weight:800}.contact-form-card input,.contact-form-card textarea{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:9px;font:inherit}.contact-form-card textarea{min-height:135px;resize:vertical}.contact-form-card button{margin-top:15px;padding:11px 15px;border:0;border-radius:9px;background:#ffdc00;color:#10213f;font-weight:900;cursor:pointer}.contact-ok,.contact-error{padding:11px;border-radius:8px}.contact-ok{background:#dcfce7;color:#166534}.contact-error{background:#fee2e2;color:#991b1b}@media(max-width:700px){.contact-layout{grid-template-columns:1fr}.contact-hero{padding:25px}.contact-hero h1{font-size:27px}}
.elvix-contact{max-width:1120px;margin:0 auto;padding:30px 16px 56px}.elvix-contact-head{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:0 3px 22px;border-bottom:1px solid #e2e8f0}.elvix-contact-head p{margin:0 0 5px;color:#e23b2d;font-size:11px;font-weight:900;letter-spacing:.12em}.elvix-contact-head h1{margin:0;color:#10213f;font-size:30px}.elvix-contact-head span{display:block;margin-top:6px;color:#64748b}.elvix-contact-head a{padding:10px 13px;border:1px solid #cbd5e1;border-radius:9px;color:#10213f;font-size:13px;font-weight:800;text-decoration:none;white-space:nowrap}.elvix-contact-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:18px;margin-top:22px}.elvix-help-card,.elvix-message-card{padding:23px;border:1px solid #dbe3f0;border-radius:14px;background:#fff;box-shadow:0 7px 20px rgba(15,23,42,.045)}.elvix-help-card{background:#f8fbff}.elvix-help-card h2,.elvix-message-card h2{margin:0;color:#172554;font-size:18px}.elvix-help-card>div{display:grid;gap:4px;margin-top:15px;padding-top:15px;border-top:1px solid #dbeafe}.elvix-help-card b{color:#10213f;font-size:13px}.elvix-help-card span,.elvix-message-card>p{color:#64748b;font-size:13px;line-height:1.5}.elvix-message-card>p{margin:7px 0 17px}.elvix-message-card form{display:grid;gap:13px}.elvix-contact-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}.elvix-message-card label{display:grid;gap:6px;color:#334155;font-size:12px;font-weight:800}.elvix-message-card input,.elvix-message-card textarea{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#10213f;font:inherit}.elvix-message-card textarea{min-height:145px;resize:vertical}.elvix-message-card button{justify-self:start;padding:11px 17px;border:0;border-radius:9px;background:#ffdc00;color:#10213f;font-size:13px;font-weight:900;cursor:pointer}.elvix-contact-notice{margin-bottom:13px;padding:11px;border-radius:9px;font-size:13px;font-weight:700}.elvix-contact-notice.success{background:#dcfce7;color:#166534}.elvix-contact-notice.error{background:#fee2e2;color:#991b1b}@media(max-width:700px){.elvix-contact{padding-top:22px}.elvix-contact-head,.elvix-contact-grid,.elvix-contact-row{grid-template-columns:1fr}.elvix-contact-head{display:grid;align-items:start}.elvix-contact-head h1{font-size:25px}.elvix-contact-head a{justify-self:start}.elvix-contact-grid{display:grid}}

/* Keep the footer at the bottom on short mobile pages. */
html, body { min-height: 100%; }
body { min-height: 100dvh; display: flex; flex-direction: column; }
.site-header, footer, .mobile-bottom-nav { flex-shrink: 0; }
.site-main { flex: 1 0 auto; width: 100%; }
footer { margin-top: auto !important; }

/* Mobile chat: the browser's interactive-widget=resizes-content mode resizes
   this screen for every keyboard. Keep the composer in normal flex flow; do
   not calculate or manually move it with JavaScript. */
@media (max-width: 850px), (display-mode: standalone) {
    body.is-chat-page {
        height: 100dvh !important;
        min-height: 100dvh !important;
        overflow: hidden !important;
    }
    .is-chat-page .site-main {
        flex: 1 1 0 !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }
    .is-chat-page .chat-container {
        height: calc(100% - 78px) !important;
        min-height: 0 !important;
    }
    .is-chat-page .chat-messages {
        flex: 1 1 auto !important;
        min-height: 0 !important;
    }
    .is-chat-page.chat-composer-focus .chat-container {
        height: 100% !important;
    }
    .is-chat-page.chat-composer-focus .mobile-bottom-nav {
        display: none !important;
    }
}

@media (max-width: 850px), (display-mode: standalone) {
    /* Chats are one app screen: only the content scrolls, never the navigation. */
    body.is-chat-page {
        height: 100dvh;
        min-height: 100dvh;
        overflow: hidden;
        padding-bottom: 0 !important;
    }
    .is-chat-page footer { display: none !important; }
    .is-chat-page .site-main {
        order: 1;
        flex: 1 1 auto;
        min-height: 0;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        overflow-x: hidden;
        /* Messages scroll inside .chat-messages.  Letting this outer element scroll
           makes Android pan the whole chat above the keyboard. */
        overflow-y: hidden;
        overscroll-behavior: contain;
        /* Reserve the exact measured height of the fixed app navigation. */
        margin-bottom: var(--elvix-mobile-nav-height, 78px) !important;
    }
    .is-chat-page .chat-container {
        width: 100% !important;
        max-width: none !important;
        min-height: 0;
        margin: 0 !important;
        border-right: 0 !important;
        border-left: 0 !important;
        border-radius: 0 !important;
    }
    .is-chat-page .chat-container.chat-keyboard-open .chat-quick-replies {
        display: none !important;
    }
    .is-chat-page .mobile-bottom-nav {
        position: fixed !important;
        right: 0;
        bottom: 0 !important;
        left: 0;
        order: initial;
        flex: none;
        width: 100%;
    }
    .is-chat-page .inbox-container { padding-bottom: 88px !important; }

    /* Inbox: TWA can report a tablet-width viewport on a phone. Keep every
       conversation, its preview and its delete action within the app screen. */
    .is-chat-page .inbox-container {
        box-sizing: border-box;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 14px 12px 92px !important;
    }
    .is-chat-page .inbox-title {
        margin: 0 0 14px !important;
        font-size: 28px !important;
        line-height: 1.15;
    }
    .is-chat-page .conversation-list {
        width: 100%;
        gap: 10px !important;
    }
    .is-chat-page .conversation-row {
        display: flex !important;
        align-items: stretch !important;
        width: 100% !important;
        min-width: 0 !important;
        gap: 8px !important;
    }
    .is-chat-page .conversation-item {
        box-sizing: border-box;
        min-width: 0 !important;
        width: auto !important;
        flex: 1 1 0 !important;
        gap: 10px !important;
        padding: 12px !important;
        overflow: hidden;
    }
    .is-chat-page .conversation-item .avatar {
        flex: 0 0 48px !important;
        width: 48px !important;
        height: 48px !important;
    }
    .is-chat-page .conv-content,
    .is-chat-page .conv-header,
    .is-chat-page .conv-ad-title,
    .is-chat-page .conv-preview {
        min-width: 0 !important;
    }
    .is-chat-page .conv-ad-title,
    .is-chat-page .conv-preview {
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }
    .is-chat-page .delete-chat-btn {
        box-sizing: border-box;
        flex: 0 0 42px !important;
        align-self: center;
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

/* Final mobile chat layout: this intentionally comes after every legacy
   chat rule above. Suggested replies always get a complete row above the
   composer; messages are the only element that may shrink or scroll. */
@media (max-width: 850px), (display-mode: standalone) {
    .is-chat-page .chat-container {
        display: flex !important;
        flex-direction: column !important;
        box-sizing: border-box !important;
    }
    .is-chat-page .chat-header,
    .is-chat-page .chat-offer-dock,
    .is-chat-page .chat-composer-dock {
        flex: 0 0 auto !important;
    }
    .is-chat-page .chat-messages {
        flex: 1 1 1px !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        padding-bottom: calc(var(--elvix-chat-composer-height, 124px) + 16px) !important;
    }
    /* The composer is one fixed dock.  It is always above the bottom app
       navigation, regardless of which Android keyboard is used. */
    .is-chat-page .chat-composer-dock {
        position: fixed !important;
        z-index: 200 !important;
        right: 0 !important;
        bottom: var(--elvix-mobile-nav-height, 78px) !important;
        left: 0 !important;
        box-sizing: border-box !important;
        width: 100% !important;
        background: #fff !important;
        border-top: 1px solid #dbe3ee !important;
        box-shadow: 0 -8px 24px rgba(15, 23, 42, .08) !important;
    }
    .is-chat-page .chat-quick-replies {
        display: flex !important;
        align-items: center !important;
        min-height: 48px !important;
        box-sizing: border-box !important;
        padding: 7px 10px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
    }
    .is-chat-page .chat-quick-replies button {
        flex: 0 0 auto !important;
        min-height: 34px !important;
        white-space: nowrap !important;
    }
    .is-chat-page.chat-composer-focus .chat-header {
        display: none !important;
    }
    .is-chat-page.chat-composer-focus .site-main {
        margin-bottom: 0 !important;
    }
    .is-chat-page.chat-composer-focus .chat-composer-dock {
        bottom: var(--elvix-chat-keyboard-inset, 0px) !important;
    }
    /* JavaScript supplies the actual rendered navigation height. This avoids
       guessing 78px on Samsung devices with a taller app navigation bar. */
    .is-chat-page .chat-container { height: 100% !important; }
}
