/* ==========================================================
   NivaasMart — ANDROID APP styles for inner pages (app-pages.css)
   ----------------------------------------------------------
   Loaded on every page, but every rule is scoped to
   body.capacitor-app, which only the Capacitor Android app sets
   (early script in includes/header.php). The website never
   matches any of this. Page-specific blocks use the per-page
   class that same script adds: body.nm-page-<file name>.
   The homepage has its own file (app-home.css).
   ========================================================== */

html.capacitor-app { --nm-sat: 0px; }
body.capacitor-app { -webkit-tap-highlight-color: transparent; }

/* ---------- Compact app bar (all pages except home) ---------- */
body.capacitor-app:not(.nm-home) { padding-top: 0 !important; }
body.capacitor-app:not(.nm-home) .site-header {
    position: sticky !important; top: 0 !important; z-index: 900 !important;
    padding-top: var(--nm-sat) !important;
    box-shadow: 0 2px 10px rgba(15,23,42,.12) !important;
}
body.capacitor-app:not(.nm-home) .site-header .header-inner { padding: 6px 12px !important; min-height: 52px; }
body.capacitor-app:not(.nm-home) .site-header .logo .hv2-logo-img { height: 40px !important; }
body.capacitor-app:not(.nm-home) .site-header .main-nav.open { max-height: calc(100vh - 58px - var(--nm-sat)) !important; }

/* The back button sits INSIDE the bar (left), instead of floating over the page */
body.capacitor-app .app-back-btn {
    top: calc(var(--nm-sat) + 7px) !important; left: 8px !important;
    width: 38px !important; height: 38px !important;
    background: rgba(255,255,255,.16) !important; backdrop-filter: none !important; color: #fff !important;
    z-index: 950 !important;
}
body.capacitor-app .app-back-btn.show { display: flex !important; } /* footer.php's inline display:none was beating the old .show rule, so it never appeared */
body.capacitor-app .app-back-btn:active { background: rgba(255,255,255,.3) !important; }
body.capacitor-app.nm-has-back:not(.nm-home) .site-header .logo { margin-left: 42px; }

/* Full website footer → hidden in the app (bottom tab bar replaces it) */
body.capacitor-app .site-footer { display: none !important; }
body.capacitor-app main.main-content { padding-bottom: 12px; }

/* Scroll-reveal fades feel laggy in an app */
body.capacitor-app .hv2-reveal, body.capacitor-app .hv2-reveal-stagger > * { opacity: 1 !important; transform: none !important; transition: none !important; }

/* Touch "pressed" feedback */
body.capacitor-app .lst-card:active, body.capacitor-app .prj-card:active { transform: scale(.985); transition: transform .08s ease; }

/* ==========================================================
   LISTINGS (Search tab) + PROJECTS
   ========================================================== */
body.capacitor-app.nm-page-listings .lst-hero, body.capacitor-app.nm-page-projects .lst-hero { display: none !important; }
body.capacitor-app.nm-page-listings .hv2, body.capacitor-app.nm-page-projects .hv2 { background: #F1F3F8; }
body.capacitor-app.nm-page-listings .hv2-section, body.capacitor-app.nm-page-projects .hv2-section { padding-top: 0 !important; }
body.capacitor-app.nm-page-listings .hv2-container, body.capacitor-app.nm-page-projects .hv2-container { padding-left: 0 !important; padding-right: 0 !important; }

/* Search row: one compact line, pinned under the app bar */
body.capacitor-app .lst-searchbar {
    position: sticky; top: calc(var(--nm-sat) + 52px); z-index: 80;
    display: flex !important; flex-wrap: nowrap !important; align-items: center; gap: 8px !important;
    margin: 0 !important; padding: 10px 14px !important; border-radius: 0 !important;
    background: #fff !important; border: 0 !important; border-bottom: 1px solid #E7E9F1 !important; box-shadow: none !important;
}
body.capacitor-app .lst-searchbar select {
    flex: 0 0 104px !important; width: 104px !important; min-width: 0 !important; height: 42px !important;
    padding: 0 8px !important; font-size: 12.5px !important; border-radius: 10px !important; border: 1px solid #E7E9F1 !important; background-color: #F4F6FB !important;
}
body.capacitor-app .lst-searchbar input[type="text"] {
    flex: 1 1 auto !important; min-width: 0 !important; width: auto !important; height: 42px !important;
    padding: 0 12px !important; font-size: 14px !important; border-radius: 10px !important; border: 1px solid #E7E9F1 !important; background: #F4F6FB !important;
}
body.capacitor-app .lst-searchbar button {
    flex: 0 0 42px !important; width: 42px !important; height: 42px !important; padding: 0 !important;
    border-radius: 10px !important; font-size: 0 !important; justify-content: center; margin: 0 !important;
}
body.capacitor-app .lst-searchbar button svg { width: 18px !important; height: 18px !important; margin: 0 !important; }

/* Filter chips: one swipeable row */
body.capacitor-app .lst-filterbar {
    flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; gap: 8px !important;
    margin: 0 !important; padding: 10px 14px !important; background: #fff; border-bottom: 1px solid #E7E9F1;
}
body.capacitor-app .lst-filterbar::-webkit-scrollbar { display: none; }
body.capacitor-app .lst-fbar-item { flex: 0 0 auto; position: static !important; }
body.capacitor-app .lst-fbar-item > summary {
    padding: 7px 12px !important; border-radius: 16px !important; font-size: 12.5px !important; white-space: nowrap;
    border: 1px solid #E7E9F1 !important; background: #fff !important; box-shadow: none !important;
}
body.capacitor-app .lst-fbar-item[open] > summary { background: #121631 !important; color: #fff !important; border-color: #121631 !important; }
body.capacitor-app .lst-fbar-clear { flex: 0 0 auto; white-space: nowrap; font-size: 12.5px !important; }

/* An open filter becomes a bottom sheet */
body.capacitor-app .lst-fbar-item[open] > summary::before {
    content: ''; position: fixed; inset: 0; z-index: 1990; background: rgba(12,15,35,.45); cursor: default;
}
body.capacitor-app .lst-fbar-item[open] > .lst-fbar-panel {
    position: fixed !important; left: 0 !important; right: 0 !important; bottom: 0 !important; top: auto !important;
    width: auto !important; min-width: 0 !important; max-width: none !important; max-height: 72vh !important; overflow-y: auto !important;
    z-index: 2000 !important; margin: 0 !important; border: 0 !important; border-radius: 20px 20px 0 0 !important;
    padding: 22px 16px calc(16px + env(safe-area-inset-bottom, 0px)) !important;
    box-shadow: 0 -10px 30px rgba(12,15,35,.18) !important; transform: none !important;
    animation: nmSheetUp .24s cubic-bezier(.2,.8,.2,1);
}
body.capacitor-app .lst-fbar-item[open] > .lst-fbar-panel::before {
    content: ''; position: absolute; top: 8px; left: 50%; width: 38px; height: 4px; margin-left: -19px; border-radius: 2px; background: #D5D8E3;
}
body.capacitor-app .lst-fbar-panel select { height: 44px !important; font-size: 14px !important; width: 100% !important; }
body.capacitor-app .lst-fbar-panel .lst-check { padding: 9px 0 !important; font-size: 14px !important; }
body.capacitor-app .lst-fbar-apply { width: 100% !important; height: 46px !important; border-radius: 12px !important; font-size: 14.5px !important; margin-top: 12px !important; }
@keyframes nmSheetUp { from { transform: translateY(100%); } to { transform: translateY(0); } }

/* Results header + sort + quick chips */
body.capacitor-app .lst-applied-chips { padding: 8px 14px 0 !important; margin: 0 !important; flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; }
body.capacitor-app .lst-applied-chips::-webkit-scrollbar { display: none; }
body.capacitor-app .lst-results { padding: 0 !important; margin: 0 !important; }
body.capacitor-app .lst-results-head {
    display: flex !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between; gap: 10px !important;
    padding: 12px 14px 6px !important; margin: 0 !important;
}
body.capacitor-app .lst-results-head > div { min-width: 0; }
body.capacitor-app .lst-results-head h1 { font-size: 14px !important; line-height: 1.35 !important; font-weight: 700 !important; margin: 0 !important; }
body.capacitor-app .lst-sort { flex: 0 0 auto; margin: 0 !important; gap: 0 !important; }
body.capacitor-app .lst-sort label { display: none !important; }
body.capacitor-app .lst-sort select { height: 34px !important; font-size: 12px !important; padding: 0 8px !important; border-radius: 17px !important; width: auto !important; max-width: 140px; }
body.capacitor-app .lst-quickchips { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; gap: 8px !important; padding: 4px 14px 10px !important; margin: 0 !important; }
body.capacitor-app .lst-quickchips::-webkit-scrollbar { display: none; }
body.capacitor-app .lst-quickchip { flex: 0 0 auto; white-space: nowrap; font-size: 12px !important; padding: 6px 12px !important; }
body.capacitor-app.nm-page-projects .hv2-section-head { padding: 12px 14px 4px !important; margin: 0 !important; }
body.capacitor-app.nm-page-projects .hv2-section-head h2 { font-size: 17px !important; }
body.capacitor-app.nm-page-projects .hv2-section-head p { font-size: 12.5px !important; }

/* Listing cards: photo-first, tight, whole card tappable (no extra button) */
body.capacitor-app .lst-cards, body.capacitor-app .prj-grid { display: flex !important; flex-direction: column; gap: 10px !important; padding: 0 12px !important; grid-template-columns: none !important; }
body.capacitor-app .lst-card { flex-direction: column !important; gap: 0 !important; padding: 0 !important; border-radius: 16px !important; overflow: hidden; box-shadow: none !important; border: 1px solid #E7E9F1 !important; }
body.capacitor-app .lst-card-media { width: 100% !important; aspect-ratio: auto !important; height: 190px !important; border-radius: 0 !important; }
body.capacitor-app .lst-card-body { padding: 10px 14px 14px !important; }
body.capacitor-app .lst-card-toprow { margin-bottom: 6px !important; gap: 6px !important; }
body.capacitor-app .lst-tag { font-size: 10.5px !important; padding: 3px 7px !important; }
body.capacitor-app .lst-card h3 { font-size: 15.5px !important; line-height: 1.3 !important; margin: 0 0 2px !important; }
body.capacitor-app .lst-card-loc { font-size: 12.5px !important; margin: 0 0 8px !important; }
body.capacitor-app .lst-card-meta { gap: 6px !important; margin: 0 0 8px !important; flex-wrap: wrap; }
body.capacitor-app .lst-card-meta span { font-size: 12px !important; padding: 4px 8px !important; border-radius: 8px; background: #F4F6FB; }
body.capacitor-app .lst-card-desc { font-size: 12.5px !important; line-height: 1.45 !important; margin: 0 0 10px !important;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.capacitor-app .lst-card-bottom { padding-top: 10px !important; margin: 0 !important; align-items: flex-end !important; }
body.capacitor-app .lst-card-price { font-size: 18px !important; }
body.capacitor-app .lst-card-poster { font-size: 12px !important; }
body.capacitor-app .lst-card-cta, body.capacitor-app .prj-card-cta { display: none !important; }

body.capacitor-app .prj-card { border-radius: 16px !important; box-shadow: none !important; border: 1px solid #E7E9F1 !important; }
body.capacitor-app .prj-card-media { height: 180px !important; aspect-ratio: auto !important; }
body.capacitor-app .prj-card-body { padding: 10px 14px 14px !important; }
body.capacitor-app .prj-card h3, body.capacitor-app .prj-card-body > b { font-size: 15.5px !important; }
body.capacitor-app .prj-card-price { font-size: 17px !important; }
body.capacitor-app .prj-card-bottom { padding-top: 8px !important; margin-top: 6px !important; }

body.capacitor-app .lst-empty { margin: 12px !important; border-radius: 16px !important; }
body.capacitor-app .lst-pagination { padding: 14px 12px 4px !important; flex-wrap: wrap; justify-content: center; }

/* ==========================================================
   DETAIL PAGES (project + listing) — no tab bar, CTA bar at the bottom
   ========================================================== */
body.capacitor-app.nm-page-project-detail .app-bottom-nav,
body.capacitor-app.nm-page-listing-detail .app-bottom-nav { display: none !important; }
body.capacitor-app.nm-page-project-detail, body.capacitor-app.nm-page-listing-detail { padding-bottom: calc(70px + env(safe-area-inset-bottom, 0px)) !important; }
body.capacitor-app.nm-page-project-detail .pd-stickybar,
body.capacitor-app.nm-page-listing-detail .pd-stickybar {
    bottom: 0 !important; padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)) !important; z-index: 998 !important;
}
body.capacitor-app.nm-page-project-detail .pd-stickybar > *, body.capacitor-app.nm-page-listing-detail .pd-stickybar > * { min-height: 46px; border-radius: 12px !important; }

/* ==========================================================
   DASHBOARDS (buyer / broker / developer / seller) — these print
   their own chrome, so functions.php's app-shell filter adds the
   detection script, this stylesheet and the bottom tab bar.
   ========================================================== */
.nm-injected-nav { display: none; }
html.nm-in-frame .app-bottom-nav { display: none !important; }
html.nm-in-frame body.capacitor-app { padding-bottom: 0 !important; }

/* Tab bar styles (same as footer.php's, for pages that don't load footer.php) */
body.capacitor-app .nm-injected-nav {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 999; background: #fff; border-top: 1px solid #EEF1F8;
    padding: 8px 4px calc(6px + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -4px 16px rgba(15,23,42,.08);
    align-items: stretch; justify-content: space-around; font-family: 'Inter', system-ui, sans-serif;
}
body.capacitor-app .nm-injected-nav a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; text-decoration: none; color: #94A3B8; font-size: 10.5px; font-weight: 600; padding: 4px 2px; }
body.capacitor-app .nm-injected-nav a svg { width: 21px; height: 21px; }
body.capacitor-app .nm-injected-nav a.active { color: #2563EB; }
body.capacitor-app .nm-injected-nav .app-bottom-nav-post { margin-top: -22px; }
body.capacitor-app .nm-injected-nav .app-bottom-nav-post-circle { width: 46px; height: 46px; border-radius: 50%; background: #2563EB; color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 14px rgba(37,99,235,.4); margin-bottom: 2px; }
body.capacitor-app .nm-injected-nav .app-bottom-nav-post span:last-child { color: #475569; }
body.capacitor-app:has(.nm-injected-nav) { padding-bottom: calc(62px + env(safe-area-inset-bottom, 0px)) !important; }

/* Top bars start below the Android status bar and stay pinned */
body.capacitor-app .bydash-topbar, body.capacitor-app .bdash-topbar, body.capacitor-app .ddash-topbar, body.capacitor-app .sdash-topbar {
    position: sticky !important; top: 0 !important; z-index: 60 !important;
    padding-top: calc(var(--nm-sat) + 10px) !important; padding-bottom: 10px !important;
    padding-left: 12px !important; padding-right: 12px !important;
    flex-wrap: nowrap !important; gap: 8px !important; row-gap: 0 !important;
    background: #fff !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
body.capacitor-app .bydash-topbar > *, body.capacitor-app .bdash-topbar > *, body.capacitor-app .ddash-topbar > *, body.capacitor-app .sdash-topbar > * { min-width: 0; }
/* Drawers/sidebars opened from the hamburger also start below the status bar */
body.capacitor-app .bydash-sidebar, body.capacitor-app .bdash-sidebar, body.capacitor-app .ddash-sidebar, body.capacitor-app .sdash-sidebar { padding-top: var(--nm-sat) !important; }
/* Desktop-only bits that just crowd a phone top bar */
body.capacitor-app .ddash-topbar a[target="_blank"], body.capacitor-app .ddash-topbar-divider, body.capacitor-app .ddash-search kbd, body.capacitor-app .bdash-topbar kbd,
body.capacitor-app .ddash-user-chip > :not(.ddash-profile-avatar), body.capacitor-app .ddash-topbar .dtw-proj-switch { display: none !important; }
body.capacitor-app .ddash-search, body.capacitor-app .bdash-search { flex: 1 1 auto !important; min-width: 0 !important; width: auto !important; }
body.capacitor-app .ddash-topbar-icons { flex: 0 0 auto; gap: 6px !important; }
body.capacitor-app .ddash-user-chip { padding: 0 !important; border: 0 !important; background: none !important; }
/* Anything that still spills sideways gets clipped instead of making the whole page pan */
body.capacitor-app[class*="nm-page-developer-"], body.capacitor-app[class*="nm-page-broker-"], body.capacitor-app[class*="nm-page-buyer-"], body.capacitor-app[class*="nm-page-seller-"] { overflow-x: clip !important; }
body.capacitor-app .app-bottom-nav a span:last-child { white-space: nowrap; }
body.capacitor-app .bydash-search { flex: 1 1 auto !important; min-width: 0 !important; width: auto !important; max-width: none !important; }
body.capacitor-app .bydash-search > svg:first-child { display: none !important; }
body.capacitor-app .bydash-search input { min-width: 0 !important; font-size: 13.5px !important; }
body.capacitor-app .bydash-topbar-spacer, body.capacitor-app .bdash-topbar-spacer, body.capacitor-app .ddash-topbar-spacer { display: none !important; }
body.capacitor-app .bydash-user-chip > :not(.bydash-avatar) { display: none !important; }
body.capacitor-app .bydash-user-chip { padding: 0 !important; border: 0 !important; background: none !important; }
body.capacitor-app .bdash-topbar .bdash-search { display: none !important; }
body.capacitor-app .bdash-topbar-icons { margin-left: auto; gap: 8px !important; }
/* Developer KYC / impersonation banners are position:fixed at the very top — let them fill the status-bar area instead */
body.capacitor-app #ddashImpersonateBanner { padding-top: calc(var(--nm-sat) + 9px) !important; }
body.capacitor-app:not(:has(#ddashImpersonateBanner)) #ddashKycBanner { padding-top: calc(var(--nm-sat) + 9px) !important; font-size: 11.5px !important; }
body.capacitor-app:has(#ddashKycBanner) .ddash-topbar, body.capacitor-app:has(#ddashImpersonateBanner) .ddash-topbar { padding-top: 10px !important; position: relative !important; }

/* ==========================================================
   CHAT — Messages tab badge, "Chat" buttons (were WhatsApp), chat.php shell
   ========================================================== */
body.capacitor-app .app-bottom-nav a { position: relative; }
body.capacitor-app .nm-tab-badge {
    position: absolute; top: -2px; left: 50%; margin-left: 4px; min-width: 18px; height: 18px; padding: 0 5px;
    border-radius: 9px; background: #E5322D; color: #fff; font: 700 10.5px/18px 'Inter', sans-serif; font-style: normal;
    text-align: center; box-shadow: 0 0 0 2px #fff;
}
/* WhatsApp-green contact buttons become NivaasMart-blue "Chat" buttons in the app */
body.capacitor-app a.nm-chat-btn {
    background: #EAF1FF !important; color: #2563EB !important; border-color: #C9DAFB !important;
}
body.capacitor-app a.nm-chat-btn svg { color: #2563EB !important; fill: none !important; stroke: currentColor !important; }
body.capacitor-app a.nm-chat-btn.btn-whatsapp, body.capacitor-app .pd-stickybar a.nm-chat-btn { background: #2563EB !important; color: #fff !important; border-color: #2563EB !important; }
body.capacitor-app .pd-stickybar a.nm-chat-btn svg, body.capacitor-app a.nm-chat-btn.btn-whatsapp svg { color: #fff !important; }
/* chat.php manages its own full-screen layout and tab-bar spacing */
body.capacitor-app.nm-page-chat { padding: 0 !important; }
body.capacitor-app.nm-page-project-detail #pdFloatChat { display: none !important; } /* the bottom bar's Chat button opens NivaasMart chat instead */

/* ==========================================================
   PROFILE PAGES — developer / broker / professional
   Blue app hero, sticky swipe tabs, clean cards, no empty or
   duplicate blocks, and a fixed Call + Chat bar at the bottom.
   ========================================================== */
.nm-app-only { display: none; }
body.capacitor-app .nm-app-only { display: block; }

body.capacitor-app.nm-page-developer-profile, body.capacitor-app.nm-page-broker-profile, body.capacitor-app.nm-page-professional-profile {
    background: #F1F3F8 !important; padding-bottom: calc(78px + env(safe-area-inset-bottom, 0px)) !important;
}
body.capacitor-app.nm-page-developer-profile .app-bottom-nav, body.capacitor-app.nm-page-broker-profile .app-bottom-nav, body.capacitor-app.nm-page-professional-profile .app-bottom-nav { display: none !important; }
body.capacitor-app.nm-page-developer-profile .hv2, body.capacitor-app.nm-page-broker-profile .hv2, body.capacitor-app.nm-page-professional-profile .hv2 { background: #F1F3F8 !important; overflow-x: clip; }
body.capacitor-app.nm-page-developer-profile .hv2-container, body.capacitor-app.nm-page-broker-profile .hv2-container, body.capacitor-app.nm-page-professional-profile .hv2-container { padding-left: 12px !important; padding-right: 12px !important; }

/* Fixed contact bar */
body.capacitor-app .nm-profbar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 998; display: flex !important; gap: 10px;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); background: #fff;
    box-shadow: 0 -6px 18px rgba(15,23,42,.10); border-top: 1px solid #EEF1F8;
}
body.capacitor-app .nm-profbar a {
    flex: 1 1 0; height: 48px; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    font: 700 14.5px 'Inter', sans-serif; text-decoration: none; white-space: nowrap; overflow: hidden;
}
body.capacitor-app .nm-profbar-call { flex: 0 0 34% !important; background: #EAF1FF; color: #2563EB; border: 1px solid #C9DAFB; }
body.capacitor-app .nm-profbar-chat { background: #2563EB; color: #fff; box-shadow: 0 6px 14px rgba(37,99,235,.28); }

/* Remove clutter: breadcrumbs, slogans, promo/CTA banners, enquiry forms (chat replaces them),
   contact strips/cards that the bottom bar now covers, and cards that only say "nothing added yet" */
body.capacitor-app .dvn-breadcrumb, body.capacitor-app .bkr-breadcrumb, body.capacitor-app .dvn-hero-slogan, body.capacitor-app .bkr-cta-card, body.capacitor-app a.dvn-video-card,
body.capacitor-app .bkp-contact-strip, body.capacitor-app .dvp-contact-card, body.capacitor-app .dvp-scroll-arrow, body.capacitor-app .dvn-review-arrows,
body.capacitor-app .dvn-card:has(.dvn-send-enquiry-btn), body.capacitor-app .dvp-card:has(.dvp-send-enquiry-btn), body.capacitor-app .dvn-card:has(> form[id*="nquiry"]),
body.capacitor-app .dvn-card:has(.nm-empty):not(:has(.dvn-review-form, .dvp-review-form, .dvp-review-form-toggle, [onclick*="eview"])),
body.capacitor-app .dvp-card:has(.nm-empty):not(:has(.dvn-review-form, .dvp-review-form, .dvp-review-form-toggle, [onclick*="eview"])) { display: none !important; }
body.capacitor-app .nm-empty { font-size: 13px !important; color: #6B7185 !important; }

/* ---------- Hero: brand-blue, compact, centred ---------- */
body.capacitor-app .dvn-hero, body.capacitor-app .dvp-hero {
    background: linear-gradient(160deg, #2A6BF2 0%, #1E4FD0 100%) !important; background-image: linear-gradient(160deg, #2A6BF2 0%, #1E4FD0 100%) !important;
    padding: 14px 0 22px !important; margin: 0 !important; border-radius: 0 0 26px 26px !important; min-height: 0 !important; color: #fff;
}
body.capacitor-app .dvn-hero .hv2-container, body.capacitor-app .dvp-hero .hv2-container { padding: 0 14px !important; }
body.capacitor-app .dvn-hero-top, body.capacitor-app .dvp-hero-topbar { display: flex !important; justify-content: flex-end !important; margin: 0 0 4px !important; padding: 0 !important; }
body.capacitor-app .dvn-hero-actions, body.capacitor-app .dvp-hero-actions { display: flex !important; gap: 8px !important; margin: 0 !important; }
body.capacitor-app .dvn-ghost-btn, body.capacitor-app .dvp-hero-action-btn {
    height: 34px !important; padding: 0 12px !important; border-radius: 17px !important; font-size: 12.5px !important;
    background: rgba(255,255,255,.16) !important; border: 1px solid rgba(255,255,255,.28) !important; color: #fff !important; box-shadow: none !important;
}
body.capacitor-app .dvn-hero-main, body.capacitor-app .dvp-hero-main { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; gap: 10px !important; padding: 0 !important; }
body.capacitor-app .dvn-logo-box, body.capacitor-app .dvp-hero-logo, body.capacitor-app .bkp-hero-photo-col {
    width: 84px !important; height: 84px !important; min-width: 0 !important; border-radius: 22px !important; overflow: hidden; margin: 0 auto !important;
    background: #fff !important; border: 3px solid rgba(255,255,255,.9) !important; box-shadow: 0 10px 24px rgba(8,25,80,.28) !important; padding: 0 !important;
}
body.capacitor-app .dvn-logo-box img, body.capacitor-app .dvp-hero-logo img, body.capacitor-app .bkp-hero-photo-col img, body.capacitor-app .bkp-hero-photo { width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 0 !important; }
body.capacitor-app .bkp-hero-photo { display: flex !important; align-items: center; justify-content: center; font-size: 28px !important; }
body.capacitor-app .dvn-hero-info, body.capacitor-app .dvp-hero-info { display: flex; flex-direction: column; align-items: center; max-width: 100% !important; padding: 0 !important; }
body.capacitor-app .dvn-hero-info h1, body.capacitor-app .dvp-hero-info h1, body.capacitor-app .dvp-hero h1 {
    font-size: 21px !important; line-height: 1.25 !important; margin: 2px 0 2px !important; color: #fff !important; justify-content: center;
    display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
body.capacitor-app .dvn-tagline, body.capacitor-app .dvp-hero-tagline { font-size: 13px !important; margin: 0 0 8px !important; color: rgba(255,255,255,.85) !important; }
body.capacitor-app .dvn-meta-row, body.capacitor-app .dvp-hero-metarow, body.capacitor-app .dvp-hero-tags, body.capacitor-app .dvp-hero-badges { display: flex !important; flex-wrap: wrap !important; justify-content: center !important; gap: 6px !important; margin: 0 0 6px !important; }
body.capacitor-app .dvn-meta-row span, body.capacitor-app .dvp-hero-metarow > *, body.capacitor-app .dvp-hero-badge, body.capacitor-app .dvr-tag {
    display: inline-flex !important; align-items: center; gap: 4px; padding: 4px 9px !important; border-radius: 12px !important;
    background: rgba(255,255,255,.15) !important; color: #fff !important; font-size: 11.5px !important; font-weight: 600 !important; border: 0 !important;
}
body.capacitor-app .dvn-hero-desc { display: none !important; } /* same text is in the About card below */
body.capacitor-app .dvn-visit-btn { margin-top: 6px !important; height: 34px !important; padding: 0 14px !important; font-size: 12.5px !important; border-radius: 17px !important; background: #fff !important; color: #2563EB !important; border: 0 !important; }

/* Stats: one white card of 2×2 tiles floating under the hero */
body.capacitor-app .dvn-stats-row, body.capacitor-app .dvp-stats-card {
    display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important;
    margin: 16px 0 0 !important; padding: 8px !important; border-radius: 18px !important;
    background: #fff !important; box-shadow: 0 10px 24px rgba(8,25,80,.18) !important; border: 0 !important;
}
body.capacitor-app .dvn-stat, body.capacitor-app .dvp-stat {
    display: flex !important; align-items: center !important; gap: 10px !important; padding: 10px !important;
    border-radius: 12px !important; background: #F4F7FD !important; border: 0 !important; min-width: 0 !important; color: #121631 !important;
}
body.capacitor-app .dvn-stat-icon, body.capacitor-app .dvp-stat-icon { width: 34px !important; height: 34px !important; flex: 0 0 34px !important; border-radius: 10px !important; }
body.capacitor-app .dvn-stat b, body.capacitor-app .dvp-stat b { font-size: 16px !important; color: #121631 !important; display: block; line-height: 1.2; }
body.capacitor-app .dvn-stat span:not(.dvn-stat-icon), body.capacitor-app .dvp-stat span:not([class*="icon"]), body.capacitor-app .dvp-stat small { font-size: 11.5px !important; color: #6B7185 !important; line-height: 1.25; }

/* ---------- Sticky swipe tabs ---------- */
body.capacitor-app .dvn-tabs-wrap {
    position: sticky !important; top: calc(var(--nm-sat) + 52px) !important; z-index: 70 !important;
    background: #F1F3F8 !important; border: 0 !important; box-shadow: none !important; margin: 0 !important; padding: 10px 0 !important;
}
body.capacitor-app .dvn-tabs, body.capacitor-app .dvp-tabs {
    display: flex !important; flex-wrap: nowrap !important; gap: 8px !important; overflow-x: auto !important; scrollbar-width: none;
    padding: 0 12px !important; margin: 0 !important; border: 0 !important;
}
body.capacitor-app .dvn-tabs-wrap .hv2-container { padding: 0 !important; }
body.capacitor-app .dvn-tabs::-webkit-scrollbar, body.capacitor-app .dvp-tabs::-webkit-scrollbar { display: none; }
body.capacitor-app .dvn-tab, body.capacitor-app .dvp-tab {
    flex: 0 0 auto !important; height: 36px !important; padding: 0 14px !important; border-radius: 18px !important; white-space: nowrap;
    display: inline-flex !important; align-items: center; gap: 6px; font-size: 13px !important; font-weight: 600 !important;
    background: #fff !important; color: #2A2E45 !important; border: 1px solid #E3E7F1 !important; box-shadow: none !important;
}
body.capacitor-app .dvn-tab.active, body.capacitor-app .dvp-tab.active { background: #2563EB !important; color: #fff !important; border-color: #2563EB !important; }
body.capacitor-app .dvn-tab svg, body.capacitor-app .dvp-tab svg { width: 14px !important; height: 14px !important; }

/* ---------- Content cards ---------- */
body.capacitor-app.nm-page-developer-profile .hv2-section, body.capacitor-app.nm-page-broker-profile .hv2-section, body.capacitor-app.nm-page-professional-profile .hv2-section { padding-top: 4px !important; padding-bottom: 8px !important; }
body.capacitor-app .dvn-stack, body.capacitor-app .dvn-about-row, body.capacitor-app .dvn-triple-row, body.capacitor-app .dvn-contact-section-row, body.capacitor-app .dvn-col-stack, body.capacitor-app .dvn-vm-pair, body.capacitor-app .dvp-content-grid, body.capacitor-app .dvp-side {
    display: flex !important; flex-direction: column !important; gap: 12px !important; grid-template-columns: none !important; margin: 0 !important;
}
body.capacitor-app .dvn-card, body.capacitor-app .dvp-card, body.capacitor-app .dvp-projects-section {
    border-radius: 18px !important; padding: 16px !important; margin: 0 !important; border: 1px solid #E7E9F1 !important;
    box-shadow: none !important; background: #fff !important; width: auto !important; max-width: 100% !important; min-width: 0 !important;
}
body.capacitor-app .dvn-card-title, body.capacitor-app .dvp-card-title, body.capacitor-app .dvp-projects-head h2, body.capacitor-app .dvp-projects-head h3 {
    font-size: 16px !important; line-height: 1.3 !important; margin: 0 0 10px !important; color: #121631 !important; display: flex; align-items: center; gap: 8px;
}
body.capacitor-app .dvn-card-title-icon { width: 30px !important; height: 30px !important; border-radius: 9px !important; background: #EAF1FF !important; color: #2563EB !important; }
body.capacitor-app .dvn-about-text, body.capacitor-app .dvp-about-text { font-size: 13.5px !important; line-height: 1.6 !important; color: #3A3F58 !important; }
body.capacitor-app .dvn-video-card { width: 100% !important; max-width: 100% !important; min-width: 0 !important; height: 180px !important; border-radius: 16px !important; }
body.capacitor-app .dvn-getintouch-head { background: #2563EB !important; border-radius: 12px !important; margin: -4px -4px 10px !important; }

/* Project / property rows: swipe cards */
body.capacitor-app .dvn-projects-grid, body.capacitor-app .dvp-projects-scroll {
    display: flex !important; gap: 12px !important; overflow-x: auto !important; scroll-snap-type: x mandatory; scrollbar-width: none;
    grid-template-columns: none !important; margin: 0 -16px !important; padding: 2px 16px 4px !important;
}
body.capacitor-app .dvn-projects-grid::-webkit-scrollbar, body.capacitor-app .dvp-projects-scroll::-webkit-scrollbar { display: none; }
body.capacitor-app .dvn-proj-card, body.capacitor-app .dvp-proj-slot, body.capacitor-app .dvp-proj-card { flex: 0 0 250px !important; width: 250px !important; scroll-snap-align: start; border-radius: 16px !important; overflow: hidden; }
body.capacitor-app .dvn-proj-media, body.capacitor-app .dvp-proj-media { height: 140px !important; }
body.capacitor-app .dvn-proj-actions { gap: 8px !important; }
body.capacitor-app .dvn-proj-actions a, body.capacitor-app .dvn-proj-actions button { height: 38px !important; border-radius: 10px !important; font-size: 12.5px !important; }
body.capacitor-app .dvn-proj-actions > :first-child { background: #2563EB !important; border-color: #2563EB !important; color: #fff !important; }
body.capacitor-app .dvp-projects-scroll-wrap { position: static !important; }

/* Galleries as swipe rows */
body.capacitor-app .dvn-gallery-grid { display: flex !important; gap: 8px !important; overflow-x: auto; scrollbar-width: none; grid-template-columns: none !important; }
body.capacitor-app .dvn-gallery-item { flex: 0 0 150px !important; height: 110px !important; border-radius: 12px !important; overflow: hidden; }

/* Buttons inside cards follow the blue theme */
body.capacitor-app .dvn-btn-solid, body.capacitor-app .dvn-send-enquiry-btn, body.capacitor-app .lst-apply-btn { background: #2563EB !important; border-color: #2563EB !important; color: #fff !important; border-radius: 12px !important; }
body.capacitor-app .dvn-btn-outline, body.capacitor-app .bkr-viewprofile-btn { border-color: #C9DAFB !important; color: #2563EB !important; border-radius: 12px !important; }
body.capacitor-app .dvn-map-embed iframe, body.capacitor-app .bkp-map-embed iframe { border-radius: 14px !important; height: 180px !important; }
/* every block spans the full phone width (the website puts some of them in side columns) */
body.capacitor-app.nm-page-developer-profile .hv2-section .hv2-container *:is(.dvn-card, .dvp-card, .dvp-projects-section, .dvn-stack, .dvn-col-stack, .dvn-about-row, .dvn-triple-row, .dvn-contact-section-row, .dvp-content-grid, .dvp-side, .dvn-vm-pair),
body.capacitor-app.nm-page-broker-profile .hv2-section .hv2-container *:is(.dvn-card, .dvp-card, .dvp-projects-section, .dvn-stack, .dvn-col-stack, .dvn-contact-section-row, .dvp-content-grid, .dvp-side),
body.capacitor-app.nm-page-professional-profile .hv2-section .hv2-container *:is(.dvn-card, .dvp-card, .dvp-projects-section, .dvp-content-grid, .dvp-side) {
    width: 100% !important; max-width: 100% !important; flex: 0 0 auto !important; align-self: stretch !important; grid-column: auto !important;
}
/* the website's two/three-column wrappers (some are inline-style grids) stack into one column */
body.capacitor-app:is(.nm-page-developer-profile, .nm-page-broker-profile, .nm-page-professional-profile) .hv2-section :is([style*="grid"], [class*="-grid"]:not(.dvn-gallery-grid):not(.bkp-areas-grid), [class*="-layout"], [class*="-cols"], [class*="-row"]:not(.dvn-meta-row):not(.dvn-stats-row):not(.dvn-review-rating-row):not(.dvn-tag-row):not(.dvn-social-row):not([class*="contact-row"]):not(.dvn-watch-row)):not(.dvn-projects-grid):not(.dvp-projects-scroll):not([class*="proj-"]) {
    display: flex !important; flex-direction: column !important; gap: 12px !important; grid-template-columns: none !important; width: 100% !important; max-width: 100% !important;
}
/* keep the clutter hidden even inside those wrappers */
body.capacitor-app:is(.nm-page-developer-profile, .nm-page-broker-profile, .nm-page-professional-profile) :is(.bkr-cta-card, .bkp-contact-strip, .dvp-contact-card, a.dvn-video-card, .dvn-hero-slogan, .dvn-breadcrumb, .bkr-breadcrumb) { display: none !important; }
body.capacitor-app:is(.nm-page-developer-profile, .nm-page-broker-profile, .nm-page-professional-profile) :is(.dvn-card, .dvp-card):has(.nm-empty):not(:has(.dvn-review-form, .dvp-review-form, .dvp-review-form-toggle, [onclick*="eview"])) { display: none !important; }
body.capacitor-app:is(.nm-page-developer-profile, .nm-page-broker-profile, .nm-page-professional-profile) :is(.dvn-card:has(.dvn-send-enquiry-btn), .dvp-card:has(.dvp-send-enquiry-btn)) { display: none !important; }
body.capacitor-app .dvp-stats-card { grid-template-columns: 1fr 1fr !important; display: grid !important; }
body.capacitor-app:is(.nm-page-broker-profile, .nm-page-professional-profile) .dvp-projects-section:has(.nm-empty) { display: none !important; }
body.capacitor-app .dvn-contact-row { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 12px !important; }
body.capacitor-app .dvn-contact-icon { width: 36px !important; height: 36px !important; flex: 0 0 36px !important; border-radius: 10px !important; background: #EAF1FF !important; color: #2563EB !important; }
body.capacitor-app .bkp-hero-photo-col > :not(.bkp-hero-photo) { display: none !important; }
body.capacitor-app .bkp-hero-photo { font-size: 26px !important; font-weight: 800; color: #2563EB !important; background: #EAF1FF !important; }
body.capacitor-app:is(.nm-page-broker-profile, .nm-page-professional-profile, .nm-page-developer-profile) .lst-empty:has(.nm-empty) { display: none !important; }
body.capacitor-app .dvp-tabs { position: static !important; padding: 0 !important; background: none !important; margin: 0 0 10px !important; }

/* ---------- WhatsApp kept as a second option next to NivaasMart Chat ---------- */
body.capacitor-app a.nm-wa-btn {
    display: inline-flex !important; align-items: center; justify-content: center; gap: 6px; flex: 0 0 auto;
    min-width: 40px; height: 40px; padding: 0 10px; margin-left: 6px; border-radius: 10px;
    background: #E8F8EE; color: #128C4A !important; border: 1px solid #BFE9CF; text-decoration: none;
    font: 700 13px 'Inter', sans-serif; white-space: nowrap; vertical-align: middle;
}
body.capacitor-app a.nm-wa-btn svg { color: #25D366; }
body.capacitor-app .pd-stickybar a.nm-wa-btn { height: auto; min-height: 46px; margin-left: 0; border-radius: 12px; padding: 0 12px; }
body.capacitor-app .pd-stickybar a.nm-wa-btn span { display: none; }   /* icon only in the bottom bar — room for Call + Chat */
/* profile bottom bar: [Call] [WhatsApp] [ Chat with … ] */
body.capacitor-app .nm-profbar-call, body.capacitor-app .nm-profbar-wa { flex: 0 0 48px !important; width: 48px; padding: 0 !important; }
body.capacitor-app .nm-profbar-wa { background: #E8F8EE; color: #128C4A; border: 1px solid #BFE9CF; }
body.capacitor-app .nm-profbar-wa svg { color: #25D366; }

/* ==========================================================
   DASHBOARD SIDEBARS in the app — full height, above the top bar and
   the tab bar (nothing cut at the top or hidden behind the tabs), Logout
   ========================================================== */
body.capacitor-app .bdash-sidebar, body.capacitor-app .ddash-sidebar, body.capacitor-app .sdash-sidebar, body.capacitor-app .bydash-sidebar {
    position: fixed !important; top: 0 !important; bottom: 0 !important; left: 0; height: auto !important; max-height: none !important;
    z-index: 99990 !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch;
    padding-top: calc(var(--nm-sat) + 14px) !important; padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px)) !important;
}
body.capacitor-app .bdash-backdrop, body.capacitor-app .ddash-backdrop, body.capacitor-app .sdash-backdrop, body.capacitor-app .bydash-backdrop { z-index: 99980 !important; }
body.capacitor-app a.nm-sb-logout {
    display: flex; align-items: center; gap: 12px; margin: 12px 4px 0; padding: 12px 14px; border-radius: 12px; flex: 0 0 auto;
    color: #F87171 !important; background: rgba(248,113,113,.10); font: 600 14.5px 'Inter', sans-serif; text-decoration: none;
}
body.capacitor-app a.nm-sb-logout:active { background: rgba(248,113,113,.2); }
/* the website wraps dashboards in an overflow:hidden box, which turned it into its
   own scroll area — the top bar couldn't stay pinned and scrolling felt stuck */
body.capacitor-app .bdash-shell, body.capacitor-app .ddash-shell, body.capacitor-app .sdash-shell, body.capacitor-app .bydash-shell, body.capacitor-app .bdash-layout, body.capacitor-app .ddash-layout { overflow: visible !important; overflow-x: clip !important; }

/* ==========================================================
   APP HEADER stays on screen (fixed) on every page that has it —
   on some pages the website's wrappers stopped "sticky" working, so the
   header scrolled away and the back arrow floated over the content.
   ========================================================== */
/* space for the fixed header goes on <main>, not <body> — body padding shifted every sticky bar (e.g. the Search page's search row) down by the same amount */
body.capacitor-app:not(.nm-home):not(.nm-app-pd):has(.site-header) main.main-content { padding-top: calc(var(--nm-sat) + 52px) !important; }
/* the website sets overflow-x:hidden on <body>, which quietly turns body into its own
   scroll box — sticky bars (search row, tabs) then never stick. "clip" keeps the same
   look without creating a scroll box. */
html.capacitor-app body.capacitor-app:not(.nm-page-chat) { overflow-x: clip !important; overflow-y: visible !important; }
body.capacitor-app:not(.nm-home):not(.nm-app-pd) .site-header { position: fixed !important; top: 0 !important; left: 0; right: 0; }
body.capacitor-app:not(.nm-home):not(.nm-app-pd) .site-header .header-inner { min-height: 52px; box-sizing: border-box; }

/* ==========================================================
   DIRECTORIES — Developers / Brokers / Professionals lists
   Compact blue hero with one search line, a single filter/sort row,
   and clean cards: cover strip + logo, name, facts, one action row.
   ========================================================== */
body.capacitor-app:is(.nm-page-developers, .nm-page-brokers, .nm-page-professionals-directory) { background: #F1F3F8 !important; }
body.capacitor-app:is(.nm-page-developers, .nm-page-brokers, .nm-page-professionals-directory) .hv2 { background: #F1F3F8 !important; }
body.capacitor-app .bkr-breadcrumb, body.capacitor-app .bkr-hero-credit { display: none !important; }
body.capacitor-app .bkr-hero {
    background: linear-gradient(160deg, #2A6BF2 0%, #1E4FD0 100%) !important; background-image: linear-gradient(160deg, #2A6BF2 0%, #1E4FD0 100%) !important;
    padding: 16px 0 18px !important; margin: 0 !important; border-radius: 0 0 24px 24px !important; min-height: 0 !important;
}
body.capacitor-app .bkr-hero .hv2-container { padding: 0 14px !important; }
body.capacitor-app .bkr-hero h1 { font-size: 22px !important; line-height: 1.25 !important; margin: 0 0 4px !important; color: #fff !important; }
body.capacitor-app .bkr-hero h1 span { color: #F3D48C !important; }
body.capacitor-app .bkr-hero-sub { font-size: 13px !important; margin: 0 0 12px !important; color: rgba(255,255,255,.85) !important; }
body.capacitor-app .bkr-search-widget {
    display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; padding: 8px !important;
    border-radius: 16px !important; background: #fff !important; box-shadow: 0 10px 24px rgba(8,25,80,.2) !important; margin: 0 !important;
}
body.capacitor-app .bkr-search-field { grid-column: 1 / -1; display: flex !important; align-items: center; gap: 8px; padding: 4px 8px !important; border: 0 !important; background: #F4F6FB; border-radius: 12px; min-height: 46px; }
body.capacitor-app .bkr-search-field label { display: none !important; }
body.capacitor-app .bkr-search-field input { border: 0 !important; background: none !important; font-size: 14px !important; padding: 0 !important; height: 38px; width: 100%; outline: 0; }
body.capacitor-app .bkr-search-field > div { flex: 1; min-width: 0; }
body.capacitor-app .bkr-search-type, body.capacitor-app .bkr-search-city { height: 40px !important; border-radius: 10px !important; border: 1px solid #E4E7F0 !important; font-size: 12.5px !important; padding: 0 8px !important; background-color: #fff !important; min-width: 0; width: 100% !important; }
body.capacitor-app .bkr-search-widget button[type="submit"] { grid-column: 1 / -1; height: 44px !important; border-radius: 12px !important; font-size: 14.5px !important; margin: 0 !important; width: 100% !important; }
/* stats: one compact swipe strip */
body.capacitor-app .bkr-stats-row { display: flex !important; flex-wrap: nowrap !important; gap: 8px !important; overflow-x: auto; scrollbar-width: none; margin: 12px -14px 0 !important; padding: 0 14px !important; }
body.capacitor-app .bkr-stats-row::-webkit-scrollbar { display: none; }
body.capacitor-app .bkr-stat { flex: 0 0 auto !important; display: flex !important; align-items: center; gap: 8px !important; padding: 8px 12px !important; border-radius: 12px !important; background: rgba(255,255,255,.14) !important; border: 1px solid rgba(255,255,255,.2) !important; min-width: 0 !important; }
body.capacitor-app .bkr-stat .dvr-stat-icon { width: 28px !important; height: 28px !important; flex: 0 0 28px; }
body.capacitor-app .bkr-stat b { font-size: 15px !important; display: block; line-height: 1.1; }
body.capacitor-app .bkr-stat span:not(.dvr-stat-icon) { font-size: 11px !important; white-space: nowrap; }
/* filter + sort row */
body.capacitor-app:is(.nm-page-developers, .nm-page-brokers, .nm-page-professionals-directory) .hv2-section { padding-top: 12px !important; }
body.capacitor-app:is(.nm-page-developers, .nm-page-brokers, .nm-page-professionals-directory) .lst-layout { display: block !important; }
body.capacitor-app:is(.nm-page-developers, .nm-page-brokers, .nm-page-professionals-directory) .hv2-container { padding-left: 12px !important; padding-right: 12px !important; }
body.capacitor-app .lst-filter-toggle-btn { height: 38px !important; padding: 0 14px !important; border-radius: 19px !important; font-size: 13px !important; margin: 0 0 10px !important; }
body.capacitor-app:is(.nm-page-developers, .nm-page-brokers, .nm-page-professionals-directory) .lst-results-head {
    display: flex !important; flex-wrap: wrap !important; align-items: center !important; justify-content: space-between; gap: 6px 10px !important; margin: 0 0 12px !important; padding: 0 !important;
}
body.capacitor-app:is(.nm-page-developers, .nm-page-brokers, .nm-page-professionals-directory) .lst-results-head h2,
body.capacitor-app:is(.nm-page-developers, .nm-page-brokers, .nm-page-professionals-directory) .lst-results-head h1 { font-size: 16px !important; line-height: 1.3 !important; margin: 0 !important; }
body.capacitor-app .dvr-showing-count { font-size: 12px !important; margin: 2px 0 0 !important; }
body.capacitor-app .bkr-view-toggle { display: none !important; }
body.capacitor-app:is(.nm-page-developers, .nm-page-brokers, .nm-page-professionals-directory) .lst-sort select { height: 36px !important; font-size: 12.5px !important; border-radius: 18px !important; padding: 0 10px !important; }
/* cards */
body.capacitor-app .dvr-card { border-radius: 18px !important; overflow: hidden; border: 1px solid #E4E7F0 !important; box-shadow: none !important; margin-bottom: 12px !important; background: #fff !important; position: relative; }
body.capacitor-app .dvr-card-media { height: 118px !important; min-height: 0 !important; display: block; position: relative; background: linear-gradient(135deg, #2A6BF2, #1E4FD0) !important; }
body.capacitor-app .dvr-card-media > img { width: 100%; height: 100% !important; object-fit: cover; }
body.capacitor-app .dvr-card-media-blank { height: 100% !important; background: linear-gradient(135deg, #2A6BF2, #1E4FD0) !important; }
body.capacitor-app .dvr-card-media-blank img { display: none !important; }
body.capacitor-app .bkr-card-initials { font-size: 30px !important; color: #fff !important; background: none !important; height: 100% !important; display: flex !important; align-items: center; justify-content: center; }
body.capacitor-app .dvr-card-media img[src*="no-image"] { display: none !important; }
body.capacitor-app .dvr-card-logo { width: 58px !important; height: 58px !important; left: 14px !important; bottom: -24px !important; top: auto !important; border-radius: 14px !important; border: 3px solid #fff !important; box-shadow: 0 6px 14px rgba(8,25,80,.18) !important; background: #EAF1FF !important; overflow: hidden; }
body.capacitor-app .dvr-card-logo img { width: 100%; height: 100%; object-fit: cover; }
body.capacitor-app .dvr-card-logo img[src*="no-image"] { opacity: 0; }
body.capacitor-app .dvr-card-status { top: 10px !important; left: 10px !important; font-size: 11px !important; padding: 4px 9px !important; }
body.capacitor-app .dvr-card-save { width: 36px !important; height: 36px !important; top: 10px !important; right: 10px !important; }
body.capacitor-app .dvr-card-body { padding: 32px 14px 14px !important; }
body.capacitor-app .dvr-card-body h3 { font-size: 17px !important; line-height: 1.3 !important; margin: 0 0 2px !important; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
body.capacitor-app .dvr-card-loc { font-size: 13px !important; margin: 0 0 8px !important; }
body.capacitor-app .dvr-card-meta { display: flex !important; flex-wrap: wrap; gap: 6px !important; margin: 0 0 8px !important; }
body.capacitor-app .dvr-card-meta span { font-size: 12px !important; padding: 5px 9px; border-radius: 8px; background: #F4F6FB; color: #475569; }
body.capacitor-app .dvr-card-meta b { color: #111427; }
body.capacitor-app .dvr-card-rating { font-size: 13px !important; margin: 0 0 8px !important; }
body.capacitor-app .dvr-card-tags { display: flex !important; flex-wrap: nowrap !important; gap: 6px !important; overflow-x: auto; scrollbar-width: none; margin: 0 0 10px !important; }
body.capacitor-app .dvr-card-tags::-webkit-scrollbar { display: none; }
body.capacitor-app .dvr-tag { flex: 0 0 auto; font-size: 11.5px !important; padding: 4px 9px !important; white-space: nowrap; }
body.capacitor-app .dvr-card-cta { display: flex !important; flex-direction: row !important; align-items: center; gap: 8px !important; margin: 0 !important; }
body.capacitor-app .dvr-viewprofile-btn { flex: 1 1 auto !important; height: 42px !important; display: flex !important; align-items: center; justify-content: center; border-radius: 12px !important; font-size: 14px !important;
    background: #2563EB !important; color: #fff !important; border-color: #2563EB !important; margin: 0 !important; padding: 0 12px !important; white-space: nowrap; }
body.capacitor-app .dvr-card-bottom-row { display: flex !important; gap: 8px !important; margin: 0 !important; flex: 0 0 auto; }
body.capacitor-app .dvr-card-bottom-row .bkr-icon-btn, body.capacitor-app .dvr-card-bottom-row a.nm-chat-btn, body.capacitor-app .dvr-card-bottom-row a.nm-wa-btn, body.capacitor-app .dvr-website-btn {
    width: 42px !important; min-width: 42px !important; height: 42px !important; padding: 0 !important; border-radius: 12px !important; margin: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; }
body.capacitor-app .dvr-card-bottom-row a.nm-wa-btn span { display: none; }
body.capacitor-app .bkr-cta-card, body.capacitor-app .bkr-cta-row { display: none !important; }
body.capacitor-app .dvr-pagination, body.capacitor-app .pagination { margin: 8px 0 16px !important; justify-content: center; flex-wrap: wrap; }
body.capacitor-app .dvr-card, body.capacitor-app .dvr-card-body { height: auto !important; min-height: 0 !important; }
body.capacitor-app .dvr-card-body { display: block !important; }
body.capacitor-app .dvr-card-cta { margin-top: 6px !important; }
body.capacitor-app .dvr-tag { background: #EAF1FF !important; color: #1E4FD0 !important; border: 0 !important; border-radius: 8px !important; font-weight: 600 !important; }
body.capacitor-app .dvr-card-cta { flex-wrap: nowrap !important; }

/* ===== Profile heroes in the app: show the real cover photo, not flat blue =====
   Developer (company cover, or the first project photo) and broker (own
   banner, or the city photo) — darkened so white text stays readable. */
body.capacitor-app .dvn-hero.nm-has-cover, body.capacitor-app .dvp-hero.nm-has-cover {
    background: linear-gradient(180deg, rgba(8,15,45,.30) 0%, rgba(8,15,45,.55) 45%, rgba(8,15,45,.88) 100%), var(--nm-hero-img) center / cover no-repeat, #1E4FD0 !important;
    background-image: linear-gradient(180deg, rgba(8,15,45,.30) 0%, rgba(8,15,45,.55) 45%, rgba(8,15,45,.88) 100%), var(--nm-hero-img) !important;
    background-size: cover !important; background-position: center !important;
}
/* logo box: initials behind the logo, so a missing / broken logo never shows a broken-image icon */
.dvn-logo-box { position: relative; }
.dvn-logo-box .nm-logo-ini { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 26px; color: #1E4FD0; background: #E8EEFF; z-index: 0; }
.dvn-logo-box .nm-logo-ini[hidden] { display: none !important; }
body.capacitor-app .dvn-logo-box img { object-fit: contain !important; padding: 6px; background: #fff; }
/* stat icons were white-on-white in the app */
body.capacitor-app .dvn-stat-icon, body.capacitor-app .dvp-stat-icon { background: #EAF1FF !important; color: #2563EB !important; display: flex !important; align-items: center; justify-content: center; }
body.capacitor-app .dvn-stat-icon svg, body.capacitor-app .dvp-stat-icon svg { stroke: #2563EB !important; color: #2563EB !important; opacity: 1 !important; width: 17px; height: 17px; }
/* a little breathing room between the app header and the profile hero */
body.capacitor-app .dvn-hero, body.capacitor-app .dvp-hero { padding-top: 20px !important; }
body.capacitor-app .dvn-hero-top, body.capacitor-app .dvp-hero-topbar { margin-bottom: 10px !important; }
