/* ===== SITE PALETTE: only two brand colors =====
   Dark theme = deep Blackstone (#14171a page, #212529 surfaces)  |  Light theme = Whiteout #E9ECEF
   Every neutral/grey in this file is a blend between these two.
   Accent colors (purple, status red/green/amber) are intentionally untouched. */
:root { --blackstone: #212529; --blackstone-deep: #14171a; --whiteout: #e9ecef; }

/* ================================================================
   CarMaa — STYLESHEET
   Reorganized: one definition per selector, grouped by purpose.
   Sections:
     1. Reset & Base
     2. Font Family Utilities
     3. Spacing (padding / margin / gap)
     4. Sizing (width / height)
     5. Layout (display, flex, grid, position, z-index)
     6. Typography
     7. Colors (background / text / border / gradient stops)
     8. Borders, Radius & Shadows
     9. Effects, Transitions & Transforms
    10. Shared Keyframe Animations
    11. Component: Skeleton Loader
    12. Component: Route-Transition Loading Overlay
    13. Component: Burger Menu / Drawer
    14. Component: Modal (generic)
    15. Component: Login Modal
    16. Component: Toast & Section-Enter Motion
    17. Theme: Light Mode Overrides
    18. Motion Preferences & Responsive
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,800;1,400;1,600&display=swap');

/* ---------------------------------------------------------------
   1. RESET & BASE
   --------------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }
/* HINT: تنظیمات پایه کل سایت → ساختار اصلی صفحه | selector: html, body, #app */
/* FIX: html/body had no background-color of their own — #appFrame supplies
   the dark fill via min-height:100vh. On mobile, opening an overlay (menu,
   search, filters...) sets overflow:hidden on html/body, which often makes
   the browser address bar collapse; the real viewport then grows past the
   100vh #appFrame was sized against, exposing bare html/body underneath.
   With no background set there, that gap rendered white. Giving html/body
   the same base colour as #appFrame (dark by default, light in .theme-light)
   means that gap is never visible regardless of viewport-height jumps. */
html { height: 100%; overflow-x: hidden; background: #14171a; }
body, #app { height: 100%; }
body { background: #08090b; }

/* Fullscreen PWA (status bar hidden): keep content clear of the notch /
   camera cutout and the home-indicator bar using safe-area insets. Only
   applies when running installed/fullscreen (display-mode), not in a
   normal browser tab, since regular tabs already reserve that space. */
@media all and (display-mode: fullscreen), all and (display-mode: standalone) {
  #stickyHeaderGroup { padding-top: env(safe-area-inset-top, 0px); }
  #appFrame { padding-bottom: env(safe-area-inset-bottom, 0px); }
}
html.theme-light, html.theme-light body { background: #e9ecef; }

/* Site-wide background: one flat dark gray, applied via #appViewport so it
   shows behind every page (not just the listings page). #appViewport
   already carries .bg-neutral-950 as its base fill class — this ID rule
   (higher specificity than that single class) keeps it a flat, uniform
   color shared with #siteHeader and .bottom-dock-inner, while the
   vehicle-detail-page override further down (which uses !important)
   still wins on that specific page as before. */
#appViewport { background: #08090b; }
html.theme-light #appViewport { background: #e9ecef; }
/* HINT: تنظیمات پایه کل سایت → صفحه و تنظیمات پایه | selector: body */
body { margin: 0; -webkit-font-smoothing: antialiased; font-family: 'Vazirmatn', Tahoma, 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif; font-weight: 700; }
/* HINT: تنظیمات پایه کل سایت → استایل اختصاصی این Selector: h1, h2, h3, h4, h5, h6, p | selector: h1, h2, h3, h4, h5, h6, p */
h1, h2, h3, h4, h5, h6, p { margin: 0; }
/* HINT: تنظیمات پایه کل سایت → استایل اختصاصی این Selector: button | selector: button */
button { font: inherit; color: inherit; background: none; border: none; padding: 0; cursor: pointer; }
/* HINT: تنظیمات پایه کل سایت → استایل اختصاصی این Selector: a | selector: a */
a { color: inherit; text-decoration: none; }

/* ---------------------------------------------------------------
   2. FONT FAMILY UTILITIES
   --------------------------------------------------------------- */
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .font-sans */
.font-sans { font-family: 'Vazirmatn', Tahoma, 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif; font-weight: 700; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .font-serif */
.font-serif { font-family: 'Vazirmatn', 'Playfair Display', Georgia, Cambria, 'Times New Roman', Times, Tahoma, serif; font-weight: 400; }

/* Header brand mark — mimics the duPont Registry wordmark: a light,
   condensed top line over a bold, letter-spaced line underneath. */
/* HINT: فونت و تایپوگرافی عمومی → لوگوی هدر / نام برند | selector: .brand-mark */
.brand-mark { font-family: 'Vazirmatn', 'Playfair Display', Georgia, 'Times New Roman', Times, serif; color: #e0e3e6; }
/* HINT: فونت و تایپوگرافی عمومی → نشان جایگزین برای برندهای بدون لوگو | selector: .brand-mono-ring .brand-mono */
.brand-mono-ring { width: 52px; height: 52px; border-radius: 9999px; border: 1px solid rgba(224,227,230,0.35); display: flex; align-items: center; justify-content: center; }
.brand-mono { font-family: 'Vazirmatn', 'Playfair Display', Georgia, 'Times New Roman', Times, serif; font-style: italic; font-weight: 600; font-size: 15px; letter-spacing: 0.03em; color: #e0e3e6; }
/* HINT: فونت و تایپوگرافی عمومی → خط بالایی لوگوی هدر | selector: .brand-mark .brand-mark-top */
.brand-mark .brand-mark-top { font-weight: 400; font-style: italic; letter-spacing: 0.01em; }
/* HINT: فونت و تایپوگرافی عمومی → خط پایینی لوگوی هدر | selector: .brand-mark .brand-mark-bottom */
.brand-mark .brand-mark-bottom { font-weight: 700; letter-spacing: 0.08em; }
/* HINT: فونت و تایپوگرافی عمومی → برند/لوگو | selector: .theme-light .brand-mark */
.theme-light .brand-mark { color: #34383c; }

/* ---------------------------------------------------------------
   3. SPACING — padding, margin, gap (scale 0 → 40)
   --------------------------------------------------------------- */
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-0 */
.p-0 { padding: 0px; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-0 */
.px-0 { padding-left: 0px; padding-right: 0px; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-0 */
.py-0 { padding-top: 0px; padding-bottom: 0px; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-0 */
.pt-0 { padding-top: 0px; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-0 */
.pb-0 { padding-bottom: 0px; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-0 */
.pl-0 { padding-left: 0px; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-0 */
.pr-0 { padding-right: 0px; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-0 */
.mt-0 { margin-top: 0px; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-0 */
.mb-0 { margin-bottom: 0px; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-0 */
.mx-0 { margin-left: 0px; margin-right: 0px; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-0 */
.gap-0 { gap: 0px; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-0 | selector: .-mt-0 */
.-mt-0 { margin-top: -0px; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-0\.5 */
.p-0\.5 { padding: 0.125rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-0\.5 */
.px-0\.5 { padding-left: 0.125rem; padding-right: 0.125rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-0\.5 */
.py-0\.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-0\.5 */
.pt-0\.5 { padding-top: 0.125rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-0\.5 */
.pb-0\.5 { padding-bottom: 0.125rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-0\.5 */
.pl-0\.5 { padding-left: 0.125rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-0\.5 */
.pr-0\.5 { padding-right: 0.125rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-0\.5 */
.mt-0\.5 { margin-top: 0.125rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-0\.5 */
.mb-0\.5 { margin-bottom: 0.125rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-0\.5 */
.mx-0\.5 { margin-left: 0.125rem; margin-right: 0.125rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-0\.5 */
.gap-0\.5 { gap: 0.125rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-0\.5 | selector: .-mt-0\.5 */
.-mt-0\.5 { margin-top: -0.125rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-1 */
.p-1 { padding: 0.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-1 */
.px-1 { padding-left: 0.25rem; padding-right: 0.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-1 */
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-1 */
.pt-1 { padding-top: 0.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-1 */
.pb-1 { padding-bottom: 0.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-1 */
.pl-1 { padding-left: 0.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-1 */
.pr-1 { padding-right: 0.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-1 */
.mt-1 { margin-top: 0.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-1 */
.mb-1 { margin-bottom: 0.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-1 */
.mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-1 */
.gap-1 { gap: 0.25rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-1 | selector: .-mt-1 */
.-mt-1 { margin-top: -0.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-1\.5 */
.p-1\.5 { padding: 0.375rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-1\.5 */
.px-1\.5 { padding-left: 0.375rem; padding-right: 0.375rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-1\.5 */
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-1\.5 */
.pt-1\.5 { padding-top: 0.375rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-1\.5 */
.pb-1\.5 { padding-bottom: 0.375rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-1\.5 */
.pl-1\.5 { padding-left: 0.375rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-1\.5 */
.pr-1\.5 { padding-right: 0.375rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-1\.5 */
.mt-1\.5 { margin-top: 0.375rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-1\.5 */
.mb-1\.5 { margin-bottom: 0.375rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-1\.5 */
.mx-1\.5 { margin-left: 0.375rem; margin-right: 0.375rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-1\.5 */
.gap-1\.5 { gap: 0.375rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-1\.5 | selector: .-mt-1\.5 */
.-mt-1\.5 { margin-top: -0.375rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-2 */
.p-2 { padding: 0.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-2 */
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-2 */
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-2 */
.pt-2 { padding-top: 0.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-2 */
.pb-2 { padding-bottom: 0.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-2 */
.pl-2 { padding-left: 0.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-2 */
.pr-2 { padding-right: 0.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-2 */
.mt-2 { margin-top: 0.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-2 */
.mb-2 { margin-bottom: 0.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-2 */
.mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-2 */
.gap-2 { gap: 0.5rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-2 | selector: .-mt-2 */
.-mt-2 { margin-top: -0.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-2\.5 */
.p-2\.5 { padding: 0.625rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-2\.5 */
.px-2\.5 { padding-left: 0.625rem; padding-right: 0.625rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-2\.5 */
.py-2\.5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-2\.5 */
.pt-2\.5 { padding-top: 0.625rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-2\.5 */
.pb-2\.5 { padding-bottom: 0.625rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-2\.5 */
.pl-2\.5 { padding-left: 0.625rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-2\.5 */
.pr-2\.5 { padding-right: 0.625rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-2\.5 */
.mt-2\.5 { margin-top: 0.625rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-2\.5 */
.mb-2\.5 { margin-bottom: 0.625rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-2\.5 */
.mx-2\.5 { margin-left: 0.625rem; margin-right: 0.625rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-2\.5 */
.gap-2\.5 { gap: 0.625rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-2\.5 | selector: .-mt-2\.5 */
.-mt-2\.5 { margin-top: -0.625rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-3 */
.p-3 { padding: 0.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-3 */
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-3 */
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-3 */
.pt-3 { padding-top: 0.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-3 */
.pb-3 { padding-bottom: 0.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-3 */
.pl-3 { padding-left: 0.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-3 */
.pr-3 { padding-right: 0.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-3 */
.mt-3 { margin-top: 0.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-3 */
.mb-3 { margin-bottom: 0.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-3 */
.mx-3 { margin-left: 0.75rem; margin-right: 0.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-3 */
.gap-3 { gap: 0.75rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-3 | selector: .-mt-3 */
.-mt-3 { margin-top: -0.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-3\.5 */
.p-3\.5 { padding: 0.875rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-3\.5 */
.px-3\.5 { padding-left: 0.875rem; padding-right: 0.875rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-3\.5 */
.py-3\.5 { padding-top: 0.875rem; padding-bottom: 0.875rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-3\.5 */
.pt-3\.5 { padding-top: 0.875rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-3\.5 */
.pb-3\.5 { padding-bottom: 0.875rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-3\.5 */
.pl-3\.5 { padding-left: 0.875rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-3\.5 */
.pr-3\.5 { padding-right: 0.875rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-3\.5 */
.mt-3\.5 { margin-top: 0.875rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-3\.5 */
.mb-3\.5 { margin-bottom: 0.875rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-3\.5 */
.mx-3\.5 { margin-left: 0.875rem; margin-right: 0.875rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-3\.5 */
.gap-3\.5 { gap: 0.875rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-3\.5 | selector: .-mt-3\.5 */
.-mt-3\.5 { margin-top: -0.875rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-4 */
.p-4 { padding: 1rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-4 */
.px-4 { padding-left: 1rem; padding-right: 1rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-4 */
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-4 */
.pt-4 { padding-top: 1rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-4 */
.pb-4 { padding-bottom: 1rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-4 */
.pl-4 { padding-left: 1rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-4 */
.pr-4 { padding-right: 1rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-4 */
.mt-4 { margin-top: 1rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-4 */
.mb-4 { margin-bottom: 1rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-4 */
.mx-4 { margin-left: 1rem; margin-right: 1rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-4 */
.gap-4 { gap: 1rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-4 | selector: .-mt-4 */
.-mt-4 { margin-top: -1rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-5 */
.p-5 { padding: 1.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-5 */
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-5 */
.py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-5 */
.pt-5 { padding-top: 1.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-5 */
.pb-5 { padding-bottom: 1.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-5 */
.pl-5 { padding-left: 1.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-5 */
.pr-5 { padding-right: 1.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-5 */
.mt-5 { margin-top: 1.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-5 */
.mb-5 { margin-bottom: 1.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-5 */
.mx-5 { margin-left: 1.25rem; margin-right: 1.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-5 */
.gap-5 { gap: 1.25rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-5 | selector: .-mt-5 */
.-mt-5 { margin-top: -1.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-6 */
.p-6 { padding: 1.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-6 */
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-6 */
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-6 */
.pt-6 { padding-top: 1.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-6 */
.pb-6 { padding-bottom: 1.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-6 */
.pl-6 { padding-left: 1.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-6 */
.pr-6 { padding-right: 1.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-6 */
.mt-6 { margin-top: 1.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-6 */
.mb-6 { margin-bottom: 1.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-6 */
.mx-6 { margin-left: 1.5rem; margin-right: 1.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-6 */
.gap-6 { gap: 1.5rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-6 | selector: .-mt-6 */
.-mt-6 { margin-top: -1.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-7 */
.p-7 { padding: 1.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-7 */
.px-7 { padding-left: 1.75rem; padding-right: 1.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-7 */
.py-7 { padding-top: 1.75rem; padding-bottom: 1.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-7 */
.pt-7 { padding-top: 1.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-7 */
.pb-7 { padding-bottom: 1.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-7 */
.pl-7 { padding-left: 1.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-7 */
.pr-7 { padding-right: 1.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-7 */
.mt-7 { margin-top: 1.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-7 */
.mb-7 { margin-bottom: 1.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-7 */
.mx-7 { margin-left: 1.75rem; margin-right: 1.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-7 */
.gap-7 { gap: 1.75rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-7 | selector: .-mt-7 */
.-mt-7 { margin-top: -1.75rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-8 */
.p-8 { padding: 2rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-8 */
.px-8 { padding-left: 2rem; padding-right: 2rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-8 */
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-8 */
.pt-8 { padding-top: 2rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-8 */
.pb-8 { padding-bottom: 2rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-8 */
.pl-8 { padding-left: 2rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-8 */
.pr-8 { padding-right: 2rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-8 */
.mt-8 { margin-top: 2rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-8 */
.mb-8 { margin-bottom: 2rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-8 */
.mx-8 { margin-left: 2rem; margin-right: 2rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-8 */
.gap-8 { gap: 2rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-8 | selector: .-mt-8 */
.-mt-8 { margin-top: -2rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-9 */
.p-9 { padding: 2.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-9 */
.px-9 { padding-left: 2.25rem; padding-right: 2.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-9 */
.py-9 { padding-top: 2.25rem; padding-bottom: 2.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-9 */
.pt-9 { padding-top: 2.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-9 */
.pb-9 { padding-bottom: 2.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-9 */
.pl-9 { padding-left: 2.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-9 */
.pr-9 { padding-right: 2.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-9 */
.mt-9 { margin-top: 2.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-9 */
.mb-9 { margin-bottom: 2.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-9 */
.mx-9 { margin-left: 2.25rem; margin-right: 2.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-9 */
.gap-9 { gap: 2.25rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-9 | selector: .-mt-9 */
.-mt-9 { margin-top: -2.25rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-10 */
.p-10 { padding: 2.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-10 */
.px-10 { padding-left: 2.5rem; padding-right: 2.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-10 */
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-10 */
.pt-10 { padding-top: 2.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-10 */
.pb-10 { padding-bottom: 2.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-10 */
.pl-10 { padding-left: 2.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-10 */
.pr-10 { padding-right: 2.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-10 */
.mt-10 { margin-top: 2.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-10 */
.mb-10 { margin-bottom: 2.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-10 */
.mx-10 { margin-left: 2.5rem; margin-right: 2.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-10 */
.gap-10 { gap: 2.5rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-10 | selector: .-mt-10 */
.-mt-10 { margin-top: -2.5rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-12 */
.p-12 { padding: 3rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-12 */
.px-12 { padding-left: 3rem; padding-right: 3rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-12 */
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-12 */
.pt-12 { padding-top: 3rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-12 */
.pb-12 { padding-bottom: 3rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-12 */
.pl-12 { padding-left: 3rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-12 */
.pr-12 { padding-right: 3rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-12 */
.mt-12 { margin-top: 3rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-12 */
.mb-12 { margin-bottom: 3rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-12 */
.mx-12 { margin-left: 3rem; margin-right: 3rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-12 */
.gap-12 { gap: 3rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-12 | selector: .-mt-12 */
.-mt-12 { margin-top: -3rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-16 */
.p-16 { padding: 4rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-16 */
.px-16 { padding-left: 4rem; padding-right: 4rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-16 */
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-16 */
.pt-16 { padding-top: 4rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-16 */
.pb-16 { padding-bottom: 4rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-16 */
.pl-16 { padding-left: 4rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-16 */
.pr-16 { padding-right: 4rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-16 */
.mt-16 { margin-top: 4rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-16 */
.mb-16 { margin-bottom: 4rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-16 */
.mx-16 { margin-left: 4rem; margin-right: 4rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-16 */
.gap-16 { gap: 4rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-16 | selector: .-mt-16 */
.-mt-16 { margin-top: -4rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .p-40 */
.p-40 { padding: 10rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .px-40 */
.px-40 { padding-left: 10rem; padding-right: 10rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .py-40 */
.py-40 { padding-top: 10rem; padding-bottom: 10rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pt-40 */
.pt-40 { padding-top: 10rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pb-40 */
.pb-40 { padding-bottom: 10rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pl-40 */
.pl-40 { padding-left: 10rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .pr-40 */
.pr-40 { padding-right: 10rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mt-40 */
.mt-40 { margin-top: 10rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mb-40 */
.mb-40 { margin-bottom: 10rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mx-40 */
.mx-40 { margin-left: 10rem; margin-right: 10rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .gap-40 */
.gap-40 { gap: 10rem; }
/* HINT: ابزارهای فاصله‌گذاری عمومی؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-mt-40 | selector: .-mt-40 */
.-mt-40 { margin-top: -10rem; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .ml-auto */
.ml-auto { margin-left: auto; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mr-auto */
.mr-auto { margin-right: auto; }
/* HINT: Utility فاصله‌گذاری (قابل استفاده در چند بخش) | selector: .mr-5 */
.mr-5 { margin-right: 1.25rem; }

/* ---------------------------------------------------------------
   4. SIZING — width & height
   --------------------------------------------------------------- */
/* HINT: ابزارهای اندازه؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .flip-x | selector: .flip-x */
.flip-x { display: inline-block; transform: scaleX(-1); }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-0 */
.w-0 { width: 0px; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-0 */
.h-0 { height: 0px; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-0\.5 */
.w-0\.5 { width: 0.125rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-0\.5 */
.h-0\.5 { height: 0.125rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-1 */
.w-1 { width: 0.25rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-1 */
.h-1 { height: 0.25rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-1\.5 */
.w-1\.5 { width: 0.375rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-1\.5 */
.h-1\.5 { height: 0.375rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-2 */
.w-2 { width: 0.5rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-2 */
.h-2 { height: 0.5rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-2\.5 */
.w-2\.5 { width: 0.625rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-2\.5 */
.h-2\.5 { height: 0.625rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-3 */
.w-3 { width: 0.75rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-3 */
.h-3 { height: 0.75rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-3\.5 */
.w-3\.5 { width: 0.875rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-3\.5 */
.h-3\.5 { height: 0.875rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-4 */
.w-4 { width: 1rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-4 */
.h-4 { height: 1rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-5 */
.w-5 { width: 1.25rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-5 */
.h-5 { height: 1.25rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-6 */
.w-6 { width: 1.5rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-6 */
.h-6 { height: 1.5rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-7 */
.w-7 { width: 1.75rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-7 */
.h-7 { height: 1.75rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-8 */
.w-8 { width: 2rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-8 */
.h-8 { height: 2rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-9 */
.w-9 { width: 2.25rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-9 */
.h-9 { height: 2.25rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-10 */
.w-10 { width: 2.5rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-10 */
.h-10 { height: 2.5rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-12 */
.w-12 { width: 3rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-12 */
.h-12 { height: 3rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-16 */
.w-16 { width: 4rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-16 */
.h-16 { height: 4rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-20 */
.w-20 { width: 5rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-20 */
.h-20 { height: 5rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-24 */
.h-24 { height: 6rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .min-w-0 */
.min-w-0 { min-width: 0px; }
/* HINT: ابزارهای اندازه؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .truncate | selector: .truncate */
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-40 */
.w-40 { width: 10rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-40 */
.h-40 { height: 10rem; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-full */
.w-full { width: 100%; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .max-w-full */
.max-w-full { max-width: 100%; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .max-h-full */
.max-h-full { max-height: 100%; }
/* HINT: ابزارهای اندازه؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .object-contain | selector: .object-contain */
.object-contain { object-fit: contain; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .h-full */
.h-full { height: 100%; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-\[86\%\] */
.w-\[86\%\] { width: 86%; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-\[52px\] */
.w-\[52px\] { width: 52px; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .w-\[84px\] */
.w-\[84px\] { width: 84px; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .max-w-\[380px\] */
.max-w-\[380px\] { max-width: 380px; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .max-w-\[520px\] */
.max-w-\[520px\] { max-width: 520px; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .min-h-\[34px\] */
.min-h-\[34px\] { min-height: 34px; }
/* HINT: Utility اندازه (قابل استفاده در چند بخش) | selector: .min-h-screen */
.min-h-screen { min-height: 100vh; }

/* ---------------------------------------------------------------
   5. LAYOUT — display, flex, grid, position, z-index
   --------------------------------------------------------------- */
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .flex */
.flex { display: flex; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .grid */
.grid { display: grid; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .block */
.block { display: block; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .hidden */
.hidden { display: none; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .flex-col */
.flex-col { flex-direction: column; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .flex-1 */
.flex-1 { flex: 1 1 0%; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .flex-wrap */
.flex-wrap { flex-wrap: wrap; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .shrink-0 */
.shrink-0 { flex-shrink: 0; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .items-center */
.items-center { align-items: center; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .items-baseline */
.items-baseline { align-items: baseline; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .items-end */
.items-end { align-items: flex-end; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .justify-center */
.justify-center { justify-content: center; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .justify-between */
.justify-between { justify-content: space-between; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .justify-self-start */
.justify-self-start { justify-self: start; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .justify-self-center */
.justify-self-center { justify-self: center; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .justify-self-end */
.justify-self-end { justify-self: end; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .grid-cols-2 */
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .grid-cols-3 */
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .grid-cols-4 */
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .grid-cols-6 */
.grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
/* HINT: ابزارهای چیدمان؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-space-x-2 > * + * | selector: .-space-x-2 > * + * */
.-space-x-2 > * + * { margin-left: -0.5rem; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .relative */
.relative { position: relative; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .absolute */
.absolute { position: absolute; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .fixed */
.fixed { position: fixed; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .inset-0 */
.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .inset-x-0 */
.inset-x-0 { left: 0; right: 0; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .inset-y-0 */
.inset-y-0 { top: 0; bottom: 0; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .top-2 */
.top-2 { top: 0.5rem; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .top-3 */
.top-3 { top: 0.75rem; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .right-2 */
.right-2 { right: 0.5rem; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .right-3 */
.right-3 { right: 0.75rem; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .right-4 */
.right-4 { right: 1rem; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .left-0 */
.left-0 { left: 0; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .left-2 */
.left-2 { left: 0.5rem; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .left-3 */
.left-3 { left: 0.75rem; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .left-4 */
.left-4 { left: 1rem; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .bottom-0 */
.bottom-0 { bottom: 0; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .bottom-3 */
.bottom-3 { bottom: 0.75rem; }
/* HINT: ابزارهای چیدمان؛ در چند کامپوننت استفاده می‌شوند → استایل اختصاصی این Selector: .-bottom-1 | selector: .-bottom-1 */
.-bottom-1 { bottom: -0.25rem; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .z-10 */
.z-10 { z-index: 10; }
/* HINT: Utility چیدمان (قابل استفاده در چند بخش) | selector: .z-50 */
.z-50 { z-index: 50; }

/* ---------------------------------------------------------------
   6. TYPOGRAPHY
   --------------------------------------------------------------- */
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-sm */
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-lg */
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-xl */
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-2xl */
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-3xl */
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[9px\] */
.text-\[9px\] { font-size: 9px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[9\.5px\] */
.text-\[9\.5px\] { font-size: 9.5px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[10\.5px\] */
.text-\[10\.5px\] { font-size: 10.5px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[11px\] */
.text-\[11px\] { font-size: 11px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[11\.5px\] */
.text-\[11\.5px\] { font-size: 11.5px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[12px\] */
.text-\[12px\] { font-size: 12px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[12\.5px\] */
.text-\[12\.5px\] { font-size: 12.5px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[13px\] */
.text-\[13px\] { font-size: 13px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[13\.5px\] */
.text-\[13\.5px\] { font-size: 13.5px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[14px\] */
.text-\[14px\] { font-size: 14px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[10px\] */
.text-\[10px\] { font-size: 10px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[14\.5px\] */
.text-\[14\.5px\] { font-size: 14.5px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[15px\] */
.text-\[15px\] { font-size: 15px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[19px\] */
.text-\[19px\] { font-size: 19px; }
/* FIX: .text-[18px] was used on the Brand/Listings/Saved page titles
   (data-slot="title" h1) but was never actually defined here, so those
   headings fell back to the browser's default h1 style — large, bold,
   wrapping to two lines — right after the page finished loading. That's
   what looked like the header "breaking" and staying stuck at the top. */
.text-\[18px\] { font-size: 18px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[26px\] */
.text-\[26px\] { font-size: 26px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[22px\] */
.text-\[22px\] { font-size: 22px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-\[24px\] */
.text-\[24px\] { font-size: 24px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .font-medium */
.font-medium { font-weight: 500; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .font-semibold */
.font-semibold { font-weight: 600; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .font-bold */
.font-bold { font-weight: 700; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .tracking-tight */
.tracking-tight { letter-spacing: -0.025em; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .tracking-wide */
.tracking-wide { letter-spacing: 0.025em; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .leading-none */
.leading-none { line-height: 1; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .leading-relaxed */
.leading-relaxed { line-height: 1.625; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .leading-snug */
.leading-snug { line-height: 1.375; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .leading-tight */
.leading-tight { line-height: 1.25; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-center */
.text-center { text-align: center; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-left */
.text-left { text-align: start; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .uppercase */
.uppercase { text-transform: uppercase; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .underline */
.underline { text-decoration: underline; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .underline-offset-2 */
.underline-offset-2 { text-underline-offset: 2px; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .whitespace-nowrap */
.whitespace-nowrap { white-space: nowrap; }

/* ---------------------------------------------------------------
   7. COLORS — background / text / border / gradient stops
      (grouped per palette: neutral, violet, emerald, red, white, black)
   --------------------------------------------------------------- */
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-50 */
.bg-neutral-50 { background-color: #e5e8eb; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-neutral-50 */
.text-neutral-50 { color: #e5e8eb; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-neutral-50 */
.border-neutral-50 { border-color: #e5e8eb; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-neutral-50 */
.from-neutral-50 { --gradient-from: #e5e8eb; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-neutral-50 */
.via-neutral-50 { --gradient-via: #e5e8eb; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-neutral-50 */
.to-neutral-50 { --gradient-to: #e5e8eb; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-50/70 */
.bg-neutral-50\/70 { background-color: rgba(229,232,235,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-50/90 */
.bg-neutral-50\/90 { background-color: rgba(229,232,235,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-neutral-50/30 */
.shadow-neutral-50\/30 { --tw-shadow-color: rgba(229,232,235,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-100 */
.bg-neutral-100 { background-color: #e0e3e6; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-neutral-100 */
.text-neutral-100 { color: #e0e3e6; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-neutral-100 */
.border-neutral-100 { border-color: #e0e3e6; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-neutral-100 */
.from-neutral-100 { --gradient-from: #e0e3e6; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-neutral-100 */
.via-neutral-100 { --gradient-via: #e0e3e6; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-neutral-100 */
.to-neutral-100 { --gradient-to: #e0e3e6; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-100/70 */
.bg-neutral-100\/70 { background-color: rgba(224,227,230,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-100/90 */
.bg-neutral-100\/90 { background-color: rgba(224,227,230,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-neutral-100/30 */
.shadow-neutral-100\/30 { --tw-shadow-color: rgba(224,227,230,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-200 */
.bg-neutral-200 { background-color: #d3d6d9; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-neutral-200 */
.text-neutral-200 { color: #d3d6d9; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-neutral-200 */
.border-neutral-200 { border-color: #d3d6d9; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-neutral-200 */
.from-neutral-200 { --gradient-from: #d3d6d9; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-neutral-200 */
.via-neutral-200 { --gradient-via: #d3d6d9; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-neutral-200 */
.to-neutral-200 { --gradient-to: #d3d6d9; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-200/70 */
.bg-neutral-200\/70 { background-color: rgba(211,214,217,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-200/90 */
.bg-neutral-200\/90 { background-color: rgba(211,214,217,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-neutral-200/30 */
.shadow-neutral-200\/30 { --tw-shadow-color: rgba(211,214,217,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-300 */
.bg-neutral-300 { background-color: #c4c7ca; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-neutral-300 */
.text-neutral-300 { color: #c4c7ca; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-neutral-300 */
.border-neutral-300 { border-color: #c4c7ca; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-neutral-300 */
.from-neutral-300 { --gradient-from: #c4c7ca; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-neutral-300 */
.via-neutral-300 { --gradient-via: #c4c7ca; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-neutral-300 */
.to-neutral-300 { --gradient-to: #c4c7ca; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-300/70 */
.bg-neutral-300\/70 { background-color: rgba(196,199,202,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-300/90 */
.bg-neutral-300\/90 { background-color: rgba(196,199,202,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-neutral-300/30 */
.shadow-neutral-300\/30 { --tw-shadow-color: rgba(196,199,202,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-400 */
.bg-neutral-400 { background-color: #9a9da0; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-neutral-400 */
.text-neutral-400 { color: #9a9da0; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-neutral-400 */
.border-neutral-400 { border-color: #9a9da0; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-neutral-400 */
.from-neutral-400 { --gradient-from: #9a9da0; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-neutral-400 */
.via-neutral-400 { --gradient-via: #9a9da0; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-neutral-400 */
.to-neutral-400 { --gradient-to: #9a9da0; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-400/70 */
.bg-neutral-400\/70 { background-color: rgba(154,157,160,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-400/90 */
.bg-neutral-400\/90 { background-color: rgba(154,157,160,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-neutral-400/30 */
.shadow-neutral-400\/30 { --tw-shadow-color: rgba(154,157,160,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-500 */
.bg-neutral-500 { background-color: #707478; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-neutral-500 */
.text-neutral-500 { color: #707478; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-neutral-500 */
.border-neutral-500 { border-color: #707478; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-neutral-500 */
.from-neutral-500 { --gradient-from: #707478; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-neutral-500 */
.via-neutral-500 { --gradient-via: #707478; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-neutral-500 */
.to-neutral-500 { --gradient-to: #707478; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-500/70 */
.bg-neutral-500\/70 { background-color: rgba(112,116,120,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-500/90 */
.bg-neutral-500\/90 { background-color: rgba(112,116,120,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-neutral-500/30 */
.shadow-neutral-500\/30 { --tw-shadow-color: rgba(112,116,120,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-600 */
.bg-neutral-600 { background-color: #54585b; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-neutral-600 */
.text-neutral-600 { color: #54585b; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-neutral-600 */
.border-neutral-600 { border-color: #54585b; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-neutral-600 */
.from-neutral-600 { --gradient-from: #54585b; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-neutral-600 */
.via-neutral-600 { --gradient-via: #54585b; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-neutral-600 */
.to-neutral-600 { --gradient-to: #54585b; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-600/70 */
.bg-neutral-600\/70 { background-color: rgba(84,88,91,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-600/90 */
.bg-neutral-600\/90 { background-color: rgba(84,88,91,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-neutral-600/30 */
.shadow-neutral-600\/30 { --tw-shadow-color: rgba(84,88,91,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-700 */
.bg-neutral-700 { background-color: #44484c; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-neutral-700 */
.text-neutral-700 { color: #44484c; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-neutral-700 */
.border-neutral-700 { border-color: #44484c; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-neutral-700 */
.from-neutral-700 { --gradient-from: #44484c; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-neutral-700 */
.via-neutral-700 { --gradient-via: #44484c; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-neutral-700 */
.to-neutral-700 { --gradient-to: #44484c; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-700/70 */
.bg-neutral-700\/70 { background-color: rgba(68,72,76,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-700/90 */
.bg-neutral-700\/90 { background-color: rgba(68,72,76,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-neutral-700/30 */
.shadow-neutral-700\/30 { --tw-shadow-color: rgba(68,72,76,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-800 */
.bg-neutral-800 { background-color: #2e3236; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-neutral-800 */
.text-neutral-800 { color: #2e3236; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-neutral-800 */
.border-neutral-800 { border-color: #2e3236; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-neutral-800 */
.from-neutral-800 { --gradient-from: #2e3236; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-neutral-800 */
.via-neutral-800 { --gradient-via: #2e3236; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-neutral-800 */
.to-neutral-800 { --gradient-to: #2e3236; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-800/70 */
.bg-neutral-800\/70 { background-color: rgba(46,50,54,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-800/90 */
.bg-neutral-800\/90 { background-color: rgba(46,50,54,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-neutral-800/30 */
.shadow-neutral-800\/30 { --tw-shadow-color: rgba(46,50,54,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-900 */
.bg-neutral-900 { background-color: #212529; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-neutral-900 */
.text-neutral-900 { color: #212529; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-neutral-900 */
.border-neutral-900 { border-color: #212529; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-neutral-900 */
.from-neutral-900 { --gradient-from: #212529; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-neutral-900 */
.via-neutral-900 { --gradient-via: #212529; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-neutral-900 */
.to-neutral-900 { --gradient-to: #212529; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-900/70 */
.bg-neutral-900\/70 { background-color: rgba(33,37,41,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-900/90 */
.bg-neutral-900\/90 { background-color: rgba(33,37,41,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-neutral-900/30 */
.shadow-neutral-900\/30 { --tw-shadow-color: rgba(33,37,41,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-950 */
.bg-neutral-950 { background-color: #14171a; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-neutral-950 */
.text-neutral-950 { color: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-neutral-950 */
.border-neutral-950 { border-color: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-neutral-950 */
.from-neutral-950 { --gradient-from: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-neutral-950 */
.via-neutral-950 { --gradient-via: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-neutral-950 */
.to-neutral-950 { --gradient-to: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-950/70 */
.bg-neutral-950\/70 { background-color: rgba(0, 0, 0, 0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-950/80 */
.bg-neutral-950\/80 { background-color: rgba(0, 0, 0, 0.8); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-neutral-950/90 */
.bg-neutral-950\/90 { background-color: rgba(0, 0, 0, 0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-neutral-950/30 */
.shadow-neutral-950\/30 { --tw-shadow-color: rgba(0, 0, 0, 0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-200 */
.bg-violet-200 { background-color: #d3d6d9; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-violet-200 */
.text-violet-200 { color: #d3d6d9; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-violet-200 */
.border-violet-200 { border-color: #d3d6d9; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-violet-200 */
.from-violet-200 { --gradient-from: #d3d6d9; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-violet-200 */
.via-violet-200 { --gradient-via: #d3d6d9; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-violet-200 */
.to-violet-200 { --gradient-to: #d3d6d9; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-200/70 */
.bg-violet-200\/70 { background-color: rgba(221, 214, 254, 0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-200/90 */
.bg-violet-200\/90 { background-color: rgba(221, 214, 254, 0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-violet-200/30 */
.shadow-violet-200\/30 { --tw-shadow-color: rgba(221, 214, 254, 0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-300 */
.bg-violet-300 { background-color: #e0e3e6; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-violet-300 */
.text-violet-300 { color: #e0e3e6; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-violet-300 */
.border-violet-300 { border-color: #e0e3e6; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-violet-300 */
.from-violet-300 { --gradient-from: #e0e3e6; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-violet-300 */
.via-violet-300 { --gradient-via: #e0e3e6; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-violet-300 */
.to-violet-300 { --gradient-to: #e0e3e6; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-300/70 */
.bg-violet-300\/70 { background-color: rgba(224,227,230,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-300/90 */
.bg-violet-300\/90 { background-color: rgba(224,227,230,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-violet-300/30 */
.shadow-violet-300\/30 { --tw-shadow-color: rgba(224,227,230,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-400 */
.bg-violet-400 { background-color: #c4c7ca; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-violet-400 */
.text-violet-400 { color: #c4c7ca; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-violet-400 */
.border-violet-400 { border-color: #c4c7ca; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-violet-400 */
.from-violet-400 { --gradient-from: #c4c7ca; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-violet-400 */
.via-violet-400 { --gradient-via: #c4c7ca; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-violet-400 */
.to-violet-400 { --gradient-to: #c4c7ca; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-400/70 */
.bg-violet-400\/70 { background-color: rgba(196,199,202,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-400/90 */
.bg-violet-400\/90 { background-color: rgba(196,199,202,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-violet-400/30 */
.shadow-violet-400\/30 { --tw-shadow-color: rgba(196,199,202,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-600 */
.bg-violet-600 { background-color: #44484c; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-violet-600 */
.text-violet-600 { color: #44484c; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-violet-600 */
.border-violet-600 { border-color: #44484c; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-violet-600 */
.from-violet-600 { --gradient-from: #44484c; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-violet-600 */
.via-violet-600 { --gradient-via: #44484c; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-violet-600 */
.to-violet-600 { --gradient-to: #44484c; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-600/70 */
.bg-violet-600\/70 { background-color: rgba(68,72,76,0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-600/90 */
.bg-violet-600\/90 { background-color: rgba(68,72,76,0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-violet-600/30 */
.shadow-violet-600\/30 { --tw-shadow-color: rgba(68,72,76,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-900 */
.bg-violet-900 { background-color: #212529; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-violet-900 */
.text-violet-900 { color: #212529; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-violet-900 */
.border-violet-900 { border-color: #212529; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-violet-900 */
.from-violet-900 { --gradient-from: #212529; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-violet-900 */
.via-violet-900 { --gradient-via: #212529; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-violet-900 */
.to-violet-900 { --gradient-to: #212529; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-900/70 */
.bg-violet-900\/70 { background-color: rgba(76, 29, 149, 0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-900/90 */
.bg-violet-900\/90 { background-color: rgba(76, 29, 149, 0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-violet-900/30 */
.shadow-violet-900\/30 { --tw-shadow-color: rgba(76, 29, 149, 0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-950 */
.bg-violet-950 { background-color: #14171a; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-violet-950 */
.text-violet-950 { color: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-violet-950 */
.border-violet-950 { border-color: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-violet-950 */
.from-violet-950 { --gradient-from: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-violet-950 */
.via-violet-950 { --gradient-via: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-violet-950 */
.to-violet-950 { --gradient-to: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-950/70 */
.bg-violet-950\/70 { background-color: rgba(46, 16, 101, 0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-violet-950/90 */
.bg-violet-950\/90 { background-color: rgba(46, 16, 101, 0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-violet-950/30 */
.shadow-violet-950\/30 { --tw-shadow-color: rgba(46, 16, 101, 0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-emerald-400 */
.bg-emerald-400 { background-color: #34d399; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-emerald-400 */
.text-emerald-400 { color: #34d399; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-emerald-400 */
.border-emerald-400 { border-color: #34d399; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-emerald-400 */
.from-emerald-400 { --gradient-from: #34d399; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-emerald-400 */
.via-emerald-400 { --gradient-via: #34d399; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-emerald-400 */
.to-emerald-400 { --gradient-to: #34d399; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-emerald-400/70 */
.bg-emerald-400\/70 { background-color: rgba(52, 211, 153, 0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-emerald-400/90 */
.bg-emerald-400\/90 { background-color: rgba(52, 211, 153, 0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-emerald-400/30 */
.shadow-emerald-400\/30 { --tw-shadow-color: rgba(52, 211, 153, 0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-red-500 */
.bg-red-500 { background-color: #ef4444; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-red-500 */
.text-red-500 { color: #ef4444; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-red-500 */
.border-red-500 { border-color: #ef4444; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-red-500 */
.from-red-500 { --gradient-from: #ef4444; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-red-500 */
.via-red-500 { --gradient-via: #ef4444; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-red-500 */
.to-red-500 { --gradient-to: #ef4444; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-red-500/70 */
.bg-red-500\/70 { background-color: rgba(239, 68, 68, 0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-red-500/90 */
.bg-red-500\/90 { background-color: rgba(239, 68, 68, 0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-red-500/30 */
.shadow-red-500\/30 { --tw-shadow-color: rgba(239, 68, 68, 0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-white */
.bg-white { background-color: #e9ecef; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-white */
.text-white { color: #e9ecef; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-white */
.border-white { border-color: #e9ecef; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-white */
.from-white { --gradient-from: #e9ecef; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-white */
.via-white { --gradient-via: #e9ecef; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-white */
.to-white { --gradient-to: #e9ecef; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-white/70 */
.bg-white\/70 { background-color: rgba(255, 255, 255, 0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-white/90 */
.bg-white\/90 { background-color: rgba(255, 255, 255, 0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-white/30 */
.shadow-white\/30 { --tw-shadow-color: rgba(255, 255, 255, 0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-black */
.bg-black { background-color: #14171a; }
/* HINT: Utility متن/تایپوگرافی (قابل استفاده در چند بخش) | selector: .text-black */
.text-black { color: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-black */
.border-black { border-color: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .from-black */
.from-black { --gradient-from: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .via-black */
.via-black { --gradient-via: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .to-black */
.to-black { --gradient-to: #14171a; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-black/70 */
.bg-black\/70 { background-color: rgba(0, 0, 0, 0.7); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-black/90 */
.bg-black\/90 { background-color: rgba(0, 0, 0, 0.9); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-black/30 */
.shadow-black\/30 { --tw-shadow-color: rgba(0, 0, 0, 0.3); }

/* ---------------------------------------------------------------
   8. BORDERS, RADIUS & SHADOWS
   --------------------------------------------------------------- */
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-transparent */
.border-transparent { border-color: transparent; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-none */
.border-none { border-style: none; }
/* HINT: Utility Border/Radius/Shadow (قابل استفاده در چند بخش) | selector: .border */
.border { border-width: 1px; border-style: solid; border-color: #2e3236; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-2 */
.border-2 { border-width: 2px; border-style: solid; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-t */
.border-t { border-top-width: 1px; border-top-style: solid; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-t-8 */
.border-t-8 { border-top-width: 8px; border-top-style: solid; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-b */
.border-b { border-bottom-width: 1px; border-bottom-style: solid; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-b-2 */
.border-b-2 { border-bottom-width: 2px; border-bottom-style: solid; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-x */
.border-x { border-left-width: 1px; border-right-width: 1px; border-left-style: solid; border-right-style: solid; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .border-r */
.border-r { border-right-width: 1px; border-right-style: solid; }
/* HINT: Utility Border/Radius/Shadow (قابل استفاده در چند بخش) | selector: .rounded-sm */
.rounded-sm { border-radius: 0.125rem; }
/* HINT: Utility Border/Radius/Shadow (قابل استفاده در چند بخش) | selector: .rounded-md */
.rounded-md { border-radius: 0.375rem; }
/* HINT: Utility Border/Radius/Shadow (قابل استفاده در چند بخش) | selector: .rounded-lg */
.rounded-lg { border-radius: 0.5rem; }
/* HINT: Utility Border/Radius/Shadow (قابل استفاده در چند بخش) | selector: .rounded-xl */
.rounded-xl { border-radius: 0.75rem; }
/* HINT: Utility Border/Radius/Shadow (قابل استفاده در چند بخش) | selector: .rounded-2xl */
.rounded-2xl { border-radius: 1rem; }
/* HINT: Utility Border/Radius/Shadow (قابل استفاده در چند بخش) | selector: .rounded-full */
.rounded-full { border-radius: 9999px; }
/* HINT: Utility Border/Radius/Shadow (قابل استفاده در چند بخش) | selector: .shadow */
.shadow { box-shadow: 0 1px 3px 0 rgba(0,0,0,0.3), 0 1px 2px -1px rgba(0,0,0,0.3); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-lg */
.shadow-lg { box-shadow: 0 10px 15px -3px rgba(0,0,0,0.4), 0 4px 6px -4px rgba(0,0,0,0.4); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .shadow-xl */
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0,0,0,0.4), 0 8px 10px -6px rgba(0,0,0,0.4); }

/* ---------------------------------------------------------------
   9. EFFECTS, TRANSITIONS & TRANSFORMS
   --------------------------------------------------------------- */
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .opacity-0 | selector: .opacity-0 */
.opacity-0 { opacity: 0; }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .opacity-100 | selector: .opacity-100 */
.opacity-100 { opacity: 1; }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .pointer-events-none | selector: .pointer-events-none */
.pointer-events-none { pointer-events: none; }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .cursor-pointer | selector: .cursor-pointer */
.cursor-pointer { cursor: pointer; }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .overflow-hidden | selector: .overflow-hidden */
.overflow-hidden { overflow: hidden; }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .overflow-x-auto | selector: .overflow-x-auto */
.overflow-x-auto { overflow-x: auto; }
/* FIX: .overflow-hidden on an ancestor (both axes) silently disables
   position:sticky for every descendant — this is why the header/toolbar
   sticky fix didn't take effect even after sticky/top-0/z-30 were defined.
   NOTE: a single-axis utility like this one is NOT actually safe either —
   see the FIX 3 comment in index.html above #appViewport. Setting only
   overflow-x makes the browser silently promote the other axis
   (overflow-y) to `auto` as well, which just as reliably breaks
   position:sticky on any descendant, without the axis you set even
   needing to be the one sticky depends on. Audit any element this class
   is applied to for sticky descendants before reusing it — prefer
   `.overflow-x-clip` (below) for anything that also has a sticky
   descendant, e.g. #appViewport. */
.overflow-x-hidden { overflow-x: hidden; }
/* FIX 4: companion to the note above. `overflow-x: clip` visually clips
   horizontal bleed exactly like `overflow-x: hidden` does, but — unlike
   `hidden` — it does not establish a scroll container, so it does NOT
   trigger the overflow-y auto-promotion that breaks position:sticky on a
   descendant. This is what #appViewport uses now instead of
   `.overflow-x-hidden`, to stop the vehicle gallery (and similar wide
   content) from bleeding past the boxed viewport without breaking
   #stickyHeaderGroup again. */
.overflow-x-clip { overflow-x: clip; }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .overflow-y-auto | selector: .overflow-y-auto */
.overflow-y-auto { overflow-y: auto; }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-gradient-to-r */
.bg-gradient-to-r { background-image: linear-gradient(to right, var(--gradient-from), var(--gradient-via, var(--gradient-to)), var(--gradient-to)); }
/* HINT: Utility رنگ/ظاهر (قابل استفاده در چند بخش) | selector: .bg-gradient-to-b */
.bg-gradient-to-b { background-image: linear-gradient(to bottom, var(--gradient-from), var(--gradient-via, var(--gradient-to)), var(--gradient-to)); }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .transition-colors | selector: .transition-colors */
.transition-colors { transition-property: background-color, border-color, color; transition-duration: 150ms; transition-timing-function: cubic-bezier(0.4,0,0.2,1); }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .transition-opacity | selector: .transition-opacity */
.transition-opacity { transition-property: opacity; transition-duration: 150ms; transition-timing-function: cubic-bezier(0.4,0,0.2,1); }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .transition-transform | selector: .transition-transform */
.transition-transform { transition-property: transform; transition-duration: 150ms; transition-timing-function: cubic-bezier(0.4,0,0.2,1); }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .duration-300 | selector: .duration-300 */
.duration-300 { transition-duration: 300ms; }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .ease-out | selector: .ease-out */
.ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .translate-x-0 | selector: .translate-x-0 */
.translate-x-0 { transform: translateX(0); }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .translate-x-full | selector: .translate-x-full */
.translate-x-full { transform: translateX(100%); }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .-translate-x-full | selector: .-translate-x-full */
.-translate-x-full { transform: translateX(-100%); }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .scale-\[0\.98\] | selector: .scale-\[0\.98\] */
.scale-\[0\.98\] { transform: scale(0.98); }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .aspect-\[4\/3\] | selector: .aspect-\[4\/3\] */
.aspect-\[4\/3\] { aspect-ratio: 4 / 3; }
/* Car listing/vehicle photos measured 3:2 in the real reference site
   (dupontregistry.com), not 4:3 — see renderListingCard / carGlyphSVG. */
.aspect-\[3\/2\] { aspect-ratio: 3 / 2; }
/* Reference corner radius on the car photo itself measured ~10-12px,
   noticeably tighter than the site-wide rounded-2xl (16px) used for
   modals/sections, so listing photos get their own smaller radius. */
.rounded-\[12px\] { border-radius: 12px; }

/* ---------------------------------------------------------------
   10. SHARED KEYFRAME ANIMATIONS
   --------------------------------------------------------------- */
/* HINT: افکت‌ها، Transition و Transform عمومی → تعریف انیمیشن مشترک | selector: @keyframes tw-pulse */
@keyframes tw-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } }
/* HINT: افکت‌ها، Transition و Transform عمومی → استایل اختصاصی این Selector: .animate-pulse | selector: .animate-pulse */
.animate-pulse { animation: tw-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }

/* HINT: افکت‌ها، Transition و Transform عمومی → تعریف انیمیشن مشترک | selector: @keyframes ui-fade-in */
@keyframes ui-fade-in { from { opacity:0 } to { opacity:1 } }
/* HINT: افکت‌ها، Transition و Transform عمومی → تعریف انیمیشن مشترک | selector: @keyframes ui-fade-out */
@keyframes ui-fade-out { from { opacity:1 } to { opacity:0 } }
/* HINT: افکت‌ها، Transition و Transform عمومی → تعریف انیمیشن مشترک | selector: @keyframes ui-pop-in */
@keyframes ui-pop-in { 0% { opacity:0; transform:translateY(18px) scale(.975) } 100% { opacity:1; transform:translateY(0) scale(1) } }
/* HINT: افکت‌ها، Transition و Transform عمومی → تعریف انیمیشن مشترک | selector: @keyframes ui-pop-out */
@keyframes ui-pop-out { 0% { opacity:1; transform:translateY(0) scale(1) } 100% { opacity:0; transform:translateY(10px) scale(.985) } }
/* HINT: افکت‌ها، Transition و Transform عمومی → تعریف انیمیشن مشترک | selector: @keyframes ui-drawer-in */
@keyframes ui-drawer-in { from { transform:translateX(100%); opacity:.7 } to { transform:translateX(0); opacity:1 } }
/* HINT: افکت‌ها، Transition و Transform عمومی → تعریف انیمیشن مشترک | selector: @keyframes ui-drawer-out */
@keyframes ui-drawer-out { from { transform:translateX(0); opacity:1 } to { transform:translateX(100%); opacity:.7 } }
/* HINT: افکت‌ها، Transition و Transform عمومی → تعریف انیمیشن مشترک | selector: @keyframes ui-slide-down */
@keyframes ui-slide-down { from { opacity:0; transform:translateY(-10px); max-height:0 } to { opacity:1; transform:translateY(0); max-height:500px } }
/* HINT: افکت‌ها، Transition و Transform عمومی → تعریف انیمیشن مشترک | selector: @keyframes ui-slide-up */
@keyframes ui-slide-up { from { opacity:1; transform:translateY(0); max-height:500px } to { opacity:0; transform:translateY(-8px); max-height:0 } }
/* HINT: افکت‌ها، Transition و Transform عمومی → اعلان Toast | selector: @keyframes ui-toast-in */
@keyframes ui-toast-in { from { opacity:0; transform:translate(-50%,18px) scale(.94) } to { opacity:1; transform:translate(-50%,0) scale(1) } }
/* HINT: افکت‌ها، Transition و Transform عمومی → اعلان Toast | selector: @keyframes ui-toast-out */
@keyframes ui-toast-out { from { opacity:1; transform:translate(-50%,0) scale(1) } to { opacity:0; transform:translate(-50%,12px) scale(.94) } }


/* HINT: افکت‌ها، Transition و Transform عمومی → پس‌زمینه و لایه Overlay | selector: @keyframes menu-backdrop-enter */
@keyframes menu-backdrop-enter { from { opacity:0; } to { opacity:1; } }
/* HINT: افکت‌ها، Transition و Transform عمومی → پس‌زمینه و لایه Overlay | selector: @keyframes menu-backdrop-exit */
@keyframes menu-backdrop-exit { from { opacity:1; } to { opacity:0; } }

/* ---------------------------------------------------------------
   11. COMPONENT: SKELETON LOADER
   --------------------------------------------------------------- */
/* HINT: کامپوننت Skeleton Loader → Skeleton Loader | selector: @keyframes skeleton-shimmer */
@keyframes skeleton-shimmer { 0%, 100% { background-color: #2e3236; } 50% { background-color: #414549; } }
/* HINT: کامپوننت Skeleton Loader → Skeleton Loader | selector: @keyframes skeleton-shimmer-light */
@keyframes skeleton-shimmer-light { 0%, 100% { background-color: #d6d9dc; } 50% { background-color: #c5c8cb; } }
/* HINT: کامپوننت Skeleton Loader → اسکلت لودینگ | selector: .skeleton-block */
.skeleton-block { background-color: #2e3236; border-radius: 0.75rem; animation: skeleton-shimmer 1.3s ease-in-out infinite; }
/* HINT: کامپوننت Skeleton Loader → Skeleton Loader | selector: .skeleton-block.rounded-full */
.skeleton-block.rounded-full { border-radius: 9999px; }
/* HINT: کامپوننت Skeleton Loader → Skeleton Loader | selector: .skeleton-block.rounded-lg */
.skeleton-block.rounded-lg { border-radius: 0.5rem; }
/* HINT: کامپوننت Skeleton Loader → Skeleton Loader | selector: .skeleton-block.rounded-2xl */
.skeleton-block.rounded-2xl { border-radius: 1rem; }
/* HINT: کامپوننت Skeleton Loader → Skeleton Loader | selector: .theme-light .skeleton-block */
.theme-light .skeleton-block { animation-name: skeleton-shimmer-light; }

/* ---------------------------------------------------------------
   12. COMPONENT: ROUTE-TRANSITION LOADING OVERLAY
        (circular spinner removed — skeleton-only loading now)
   --------------------------------------------------------------- */
/* HINT: لودینگ انتقال بین صفحات → ناوبری | selector: .is-navigating, .is-navigating body */
/* FIX: this used to target ".is-navigating body" too — putting overflow:hidden
   on <body> (rather than just the root <html>, which gets special viewport
   propagation) re-creates a nested scroll container and breaks position:sticky
   on the header for the duration of every navigation. Root-only now. */
.is-navigating { overflow: hidden !important; }
/* HINT: لودینگ انتقال بین صفحات → ناوبری | selector: .is-navigating #app */
.is-navigating #app { min-height: 100vh; }

/* ---------------------------------------------------------------
   13. COMPONENT: BURGER MENU / DRAWER
        Fullscreen blurred glass menu. On open, the blur veil wipes
        in from the right edge of the screen (clip-path) and the 4 nav
        links translate in from the right, one after another. No title,
        no footer, no submenu — just the veil, a close icon, and the
        4 links. Pure backdrop-filter blur with no flat tint, so there's
        no solid-colour edge/border where the veil meets the page.
   --------------------------------------------------------------- */
/* HINT: منوی کناری / Drawer → پس‌زمینه و لایه Overlay | selector: .menu-veil */
/* NOTE: #menuBackdropEl/.menu-close/.menu-link all carry a `data-action`
   attribute (used by the site's generic click dispatcher). Later in this
   file, the general `[data-action] { transition: ... }` rule (section 16)
   has the exact same specificity as a lone class selector, so on source
   order it was silently overwriting the `transition` shorthand declared
   here — the clip-path/backdrop-filter/transform transitions were being
   replaced outright rather than merged, which is why the open/close and
   the staggered link entrance were not animating at all. Qualifying every
   selector below with the #menuOverlayInner ancestor raises specificity
   above the attribute rule so it can no longer clobber it. */
#menuOverlayInner .menu-veil {
  position: absolute;
  inset: 0;
  background: transparent;
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  clip-path: inset(0 0 0 100%);
  -webkit-clip-path: inset(0 0 0 100%);
  will-change: clip-path, backdrop-filter;
  /* FIX: backdrop-filter and clip-path used to share the same .55s
     duration. clip-path's cubic-bezier(.22,1,.36,1) is a hard ease-out —
     it covers almost all of its visual distance early and then spends a
     disproportionate share of the .55s barely moving at all right before
     it lands. backdrop-filter's blur is one of the most expensive things
     a mobile GPU can be asked to keep re-sampling every frame (see the
     PERF FIX note on .auth-flow-backdrop below, which dropped an animated
     blur entirely for this exact reason) — so for the ~120ms where
     clip-path is crawling its last stretch, the browser was *also* still
     mid-recompute on the blur radius, and that overlap is what read as
     the veil "getting stuck" for a beat right before it fully closed.
     Giving backdrop-filter its own, shorter duration means the (heavy)
     blur finishes long before clip-path enters that slow tail, so
     nothing expensive is still being recomputed during it. */
  transition: clip-path .55s cubic-bezier(.22,1,.36,1), -webkit-clip-path .55s cubic-bezier(.22,1,.36,1), backdrop-filter .28s ease, -webkit-backdrop-filter .28s ease;
}
/* HINT: منوی کناری / Drawer → منوی کناری / Drawer | selector: #menuOverlayInner.is-open .menu-veil */
#menuOverlayInner.is-open .menu-veil {
  clip-path: inset(0 0 0 0);
  -webkit-clip-path: inset(0 0 0 0);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}

/* HINT: منوی کناری / Drawer → منوی کناری / Burger Menu | selector: .menu-close */
#menuOverlayInner .menu-close {
  position: absolute;
  top: 22px;
  right: 20px;
  z-index: 2;
  width: 46px;
  height: 46px;
  border-radius: 9999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transform: translateX(16px);
  transition: opacity .35s ease .15s, transform .35s cubic-bezier(.22,1,.36,1) .15s;
}
#menuOverlayInner.is-open .menu-close { opacity: 1; transform: translateX(0); }

/* HINT: منوی کناری / Drawer → منوی کناری / Drawer | selector: .menu-links */
.menu-links {
  direction: rtl;
  position: relative;
  z-index: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 6px;
  padding: 0 26px;
  /* the nav itself has no background — it's just a full-height flex
     column holding the 4 buttons — so let taps in its empty space fall
     through to the backdrop underneath (closes the menu), and only
     re-enable pointer events on the actual link buttons. */
  pointer-events: none;
}
/* FIX: this was unconditional (`#menuOverlayInner .menu-link`), so it
   overrode the container's `pointer-events: none` (toggled by JS only
   while the drawer is closed) for every link at all times — not just
   while the menu is open. #menuOverlayInner is a permanent fixed
   inset:0 layer sitting over every page, and its 4 links are vertically
   centered on the screen by the flex layout in .menu-links even while
   "closed" (they're only hidden via opacity + a small translateX, not
   removed from layout). That left 4 invisible-but-fully-clickable nav
   buttons floating over the middle of every page — tapping empty space
   there (e.g. on the account-edit form) actually hit the hidden "خانه"
   link and navigated home. Scoping this to `.is-open` means the links
   are only interactive while the menu is actually visible. */
#menuOverlayInner.is-open .menu-link { pointer-events: auto; }
/* HINT: منوی کناری / Drawer → استایل اختصاصی این Selector: .menu-link | selector: .menu-link */
#menuOverlayInner .menu-link {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: 16px 4px;
  background: none;
  border: 0;
  min-height: 42px;
  opacity: 0;
  transform: translateX(56px);
  transition: opacity .5s cubic-bezier(.22,1,.36,1), transform .5s cubic-bezier(.22,1,.36,1), background-color .2s ease;
}
#menuOverlayInner.is-open .menu-link { opacity: 1; transform: translateX(0); }
#menuOverlayInner.is-open .menu-link:nth-child(1) { transition-delay: .16s; }
#menuOverlayInner.is-open .menu-link:nth-child(2) { transition-delay: .24s; }
#menuOverlayInner.is-open .menu-link:nth-child(3) { transition-delay: .32s; }
#menuOverlayInner.is-open .menu-link:nth-child(4) { transition-delay: .40s; }
#menuOverlayInner .menu-link:active { opacity: .86; }

.menu-link-icon {
  width: 46px;
  height: 46px;
  border-radius: 9999px;
  border: 1.5px solid rgba(255,255,255,.35);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #e0e3e6;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.menu-link-label {
  font-size: 27px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #d3d6d9;
  transition: color .2s ease;
}
.menu-link.is-active .menu-link-icon { background: #e0e3e6; border-color: #e0e3e6; color: #1a1d21; }
.menu-link.is-active .menu-link-label { color: #e0e3e6; }

/* HINT: منوی کناری / Drawer → استایل اختصاصی این Selector: .menu-submenu-motion | selector: .menu-submenu-motion */
.menu-submenu-motion { overflow: hidden; animation: ui-slide-down .34s cubic-bezier(.22,1,.36,1) both; }

/* ---------------------------------------------------------------
   14. COMPONENT: MODAL (generic)
   --------------------------------------------------------------- */
/* HINT: مودال عمومی → پوسته مودال عمومی | selector: .modal-shell */
.modal-shell { animation: ui-fade-in .55s ease both; will-change: opacity; }
/* HINT: مودال عمومی → مودال | selector: .modal-shell.is-closing */
.modal-shell.is-closing { animation: ui-fade-out .48s ease both; }
/* HINT: مودال عمومی → پس‌زمینه و لایه Overlay | selector: .modal-backdrop */
.modal-backdrop { animation: ui-fade-in .55s ease both; }
/* HINT: مودال عمومی → پس‌زمینه و لایه Overlay | selector: .modal-shell.is-closing .modal-backdrop */
.modal-shell.is-closing .modal-backdrop { animation: ui-fade-out .48s ease both; }
/* HINT: مودال عمومی → کارت مودال عمومی | selector: .modal-card */
.modal-card { animation: ui-pop-in .62s cubic-bezier(.22,1,.36,1) both; will-change: transform, opacity; }
/* HINT: مودال عمومی → مودال | selector: .modal-shell.is-closing .modal-card */
.modal-shell.is-closing .modal-card { animation: ui-pop-out .48s cubic-bezier(.4,0,1,1) both; }

/* "مدیریت آگهی" sheet — reuses the generic modal shell (#genericModal)
   with its own status banner + tappable row list styling. */
.manageAd-status { border: 1px solid rgba(167,139,250,.35); background: rgba(167,139,250,.08); }
.manageAd-status-title { font-weight: 800; font-size: 15px; color: #c4b5fd; margin-bottom: 4px; }
.manageAd-status.is-listed { border-color: rgba(52,211,153,.35); background: rgba(52,211,153,.08); }
.manageAd-status.is-listed .manageAd-status-title { color: #6ee7b7; }
.manageAd-status-desc { font-size: 12.5px; color: #999c9f; line-height: 1.6; }
.manageAd-rows { border: 1px solid #2e3236; border-radius: 16px; overflow: hidden; background: #202327; }
.manageAd-rows-secondary { margin-top: 10px; }
.manageAd-row { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px; background: transparent; border: 0; border-bottom: 1px solid #2e3236; color: #e0e3e6; text-align: right; }
.manageAd-row:last-child { border-bottom: 0; }
.manageAd-row:active { background: rgba(255,255,255,.05); }
.manageAd-row-label { flex: 1; font-size: 14px; font-weight: 600; }
.manageAd-row-icon { display: flex; align-items: center; justify-content: center; color: #999c9f; }
.manageAd-row-chevron { display: flex; align-items: center; justify-content: center; color: #55595c; }
.manageAd-row.manageAd-row-danger .manageAd-row-label,
.manageAd-row.manageAd-row-danger .manageAd-row-icon { color: #f87171; }
.theme-light .manageAd-status { background: rgba(124,58,237,.06); border-color: rgba(124,58,237,.25); }
.theme-light .manageAd-status-title { color: #7c3aed; }
.theme-light .manageAd-status.is-listed { background: rgba(16,185,129,.07); border-color: rgba(16,185,129,.28); }
.theme-light .manageAd-status.is-listed .manageAd-status-title { color: #059669; }
.theme-light .manageAd-status-desc { color: #7a7e82; }
.theme-light .manageAd-rows { background: #e9ecef; border-color: #d4d7da; }
.theme-light .manageAd-row { color: #34383c; border-bottom-color: #d4d7da; }
.theme-light .manageAd-row:active { background: rgba(0,0,0,.04); }
.theme-light .manageAd-row-icon { color: #7a7e82; }
.theme-light .manageAd-row-chevron { color: #a0a3a7; }
.theme-light .manageAd-row.manageAd-row-danger .manageAd-row-label,
.theme-light .manageAd-row.manageAd-row-danger .manageAd-row-icon { color: #dc2626; }

/* Delete-confirmation step: reason picker + "مطمئنی؟" warning banner. */
.manageAd-delete-warn { display: flex; align-items: flex-start; gap: 10px; border: 1px solid rgba(239,68,68,.35); background: rgba(239,68,68,.08); border-radius: 16px; padding: 14px; margin-bottom: 14px; }
.manageAd-delete-warn-icon { color: #f87171; flex-shrink: 0; margin-top: 1px; }
.manageAd-delete-warn-title { font-weight: 800; font-size: 14.5px; color: #fca5a5; margin-bottom: 3px; }
.manageAd-delete-warn-desc { font-size: 12px; color: #999c9f; line-height: 1.6; }
.manageAd-reason-list { border: 1px solid #2e3236; border-radius: 16px; overflow: hidden; background: #202327; margin-bottom: 16px; }
.manageAd-reason-row { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12.5px 16px; background: transparent; border: 0; border-bottom: 1px solid #2e3236; color: #e0e3e6; text-align: right; font-size: 13.5px; }
.manageAd-reason-row:last-child { border-bottom: 0; }
.manageAd-reason-row:active { background: rgba(255,255,255,.05); }
.manageAd-reason-tick { width: 19px; height: 19px; border-radius: 50%; border: 1.5px solid #55595c; display: flex; align-items: center; justify-content: center; color: transparent; flex-shrink: 0; }
.manageAd-reason-row.is-selected { color: #c4b5fd; font-weight: 700; }
.manageAd-reason-row.is-selected .manageAd-reason-tick { border-color: #a78bfa; background: #a78bfa; color: #1a1d21; }
.manageAd-cancel-btn { flex: 1; background: #2e3236; color: #d3d6d9; font-weight: 700; font-size: 14px; border-radius: 9999px; padding: 12px 0; border: 0; }
.manageAd-cancel-btn:active { filter: brightness(.94); }
.manageAd-delete-confirm-btn { flex: 1; background: #ef4444; color: #e9ecef; font-weight: 800; font-size: 14px; border-radius: 9999px; padding: 12px 0; border: 0; transition: opacity .15s; }
.manageAd-delete-confirm-btn.is-unarmed { opacity: .5; }
.manageAd-delete-confirm-btn:not(.is-unarmed):active { filter: brightness(.92); }
.theme-light .manageAd-delete-warn { background: rgba(239,68,68,.06); border-color: rgba(239,68,68,.25); }
.theme-light .manageAd-delete-warn-title { color: #dc2626; }
.theme-light .manageAd-delete-warn-desc { color: #7a7e82; }
.theme-light .manageAd-reason-list { background: #e9ecef; border-color: #d4d7da; }
.theme-light .manageAd-reason-row { color: #34383c; border-bottom-color: #d4d7da; }
.theme-light .manageAd-reason-row:active { background: rgba(0,0,0,.04); }
.theme-light .manageAd-reason-row.is-selected { color: #7c3aed; }
.theme-light .manageAd-cancel-btn { background: #d4d7da; color: #404448; }

/* حذف آگهی → reason picker + confirm step, shown inside the same
   generic modal once the حذف row is tapped (see state.modal.step). */
.manageAd-delete-sub { font-size: 12.5px; color: #999c9f; }
.manageAd-reason-row { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-radius: 14px; border: 1px solid #34383c; background: #202327; color: #d2d5d8; font-size: 13.5px; font-weight: 600; text-align: right; }
.manageAd-reason-row:active { background: rgba(255,255,255,.05); }
.manageAd-reason-dot { width: 18px; height: 18px; border-radius: 50%; border: 1.6px solid #55595c; flex-shrink: 0; position: relative; }
.manageAd-reason-row.is-selected { border-color: #a78bfa; background: rgba(167,139,250,.08); color: #e0e3e6; }
.manageAd-reason-row.is-selected .manageAd-reason-dot { border-color: #a78bfa; background: #a78bfa; }
.manageAd-reason-row.is-selected .manageAd-reason-dot::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: #1a1d21; }
.manageAd-delete-warn { font-size: 12px; color: #f87171; line-height: 1.6; background: rgba(248,113,113,.08); border: 1px solid rgba(248,113,113,.25); border-radius: 12px; padding: 10px 12px; }
.manageAd-confirm-delete-btn { background: #55595c; color: #c5c8cb; pointer-events: none; }
.manageAd-confirm-delete-btn.is-enabled { background: #ef4444; color: #e9ecef; pointer-events: auto; }
.theme-light .manageAd-reason-row { background: #e9ecef; border-color: #d4d7da; color: #404448; }
.theme-light .manageAd-reason-row:active { background: rgba(0,0,0,.04); }
.theme-light .manageAd-reason-dot { border-color: #a0a3a7; }
.theme-light .manageAd-reason-row.is-selected { border-color: #7c3aed; background: rgba(124,58,237,.06); }
.theme-light .manageAd-reason-row.is-selected .manageAd-reason-dot { border-color: #7c3aed; background: #7c3aed; }
.theme-light .manageAd-reason-row.is-selected .manageAd-reason-dot::after { background: #e9ecef; }
.theme-light .manageAd-delete-warn { color: #dc2626; background: rgba(220,38,38,.06); border-color: rgba(220,38,38,.22); }
.theme-light .manageAd-confirm-delete-btn { background: #c8cbce; color: #7a7e82; }
.theme-light .manageAd-confirm-delete-btn.is-enabled { background: #dc2626; color: #e9ecef; }

/* ---------------------------------------------------------------
   15. COMPONENT: LOGIN MODAL (centered popup)
   --------------------------------------------------------------- */
/* HINT: مودال ورود → پوسته مودال ورود | selector: .login-modal-shell */
.login-modal-shell { position:fixed; inset:0; z-index:80; display:flex; align-items:center; justify-content:center; padding:18px; }
/* HINT: مودال ورود → پس‌زمینه و لایه Overlay | selector: .login-modal-backdrop */
.login-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.76); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); animation:ui-fade-in .58s ease both; }
/* HINT: مودال ورود → پس‌زمینه و لایه Overlay | selector: .login-modal-shell.is-closing .login-modal-backdrop */
.login-modal-shell.is-closing .login-modal-backdrop { animation:ui-fade-out .48s ease both; }
/* HINT: مودال ورود → کارت مودال ورود | selector: .login-modal-card */
.login-modal-card { position:relative; width:min(100%,430px); max-height:calc(100vh - 36px); overflow-y:auto; border:1px solid rgba(255,255,255,.14); border-radius:28px; background:linear-gradient(180deg,#1e2125 0%,#1b1e22 100%); box-shadow:0 30px 90px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.025) inset; padding:24px; animation:ui-pop-in .68s cubic-bezier(.22,1,.36,1) both; will-change:transform,opacity; }
/* HINT: مودال ورود → مودال | selector: .login-modal-shell.is-closing .login-modal-card */
.login-modal-shell.is-closing .login-modal-card { animation:ui-pop-out .48s cubic-bezier(.4,0,1,1) both; }
/* HINT: مودال ورود → مودال | selector: .login-modal-icon */
.login-modal-icon { width:52px; height:52px; border-radius:16px; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,rgba(224,227,230,.22),rgba(68,72,76,.18)); border:1px solid rgba(224,227,230,.22); color:#d3d6d9; animation:ui-pop-in .72s .08s cubic-bezier(.22,1,.36,1) both; }
/* HINT: مودال ورود → مودال | selector: .login-modal-input */
.login-modal-input { width:100%; height:54px; border-radius:16px; border:1px solid #404448; background:#202428; color:#e0e3e6; padding:0 15px; font-size:14px; outline:none; transition:border-color .28s ease, box-shadow .28s ease, background-color .28s ease; }
.login-modal-input:focus { border-color:#c4c7ca; background:#212529; box-shadow:0 0 0 4px rgba(196,199,202,.12); }
.login-modal-input::placeholder { color:#6f7377; }
/* HINT: مودال ورود → مودال | selector: .login-modal-primary */
.login-modal-primary { width:100%; height:54px; border-radius:16px; background:#e0e3e6; color:#1e2125; font-size:15px; font-weight:800; transition:transform .22s cubic-bezier(.22,1,.36,1), filter .22s ease, box-shadow .22s ease; box-shadow:0 8px 24px rgba(224,227,230,.12); }
.login-modal-primary:hover { filter:brightness(1.03); box-shadow:0 10px 26px rgba(224,227,230,.16); }

/* FIX: utility classes referenced in index.html/script.js but missing from this
   stylesheet (or defined with an invalid unescaped "/" in the selector, which is
   not valid CSS and gets silently dropped by the browser). Without these, the
   sticky navbar, modal stacking/backgrounds, hover/focus states, and several
   layout utilities across the site (profile page, sell flow, filters, etc.)
   never actually took effect. */
.sticky { position: sticky; }
.top-0 { top: 0; }
.top-1\.5 { top: 0.375rem; }
.top-full { top: 100%; }
.bottom-1\.5 { bottom: 0.375rem; }
.bottom-5 { bottom: 1.25rem; }
.right-0 { right: 0; }
.right-1\.5 { right: 0.375rem; }
.left-1\/2 { left: 50%; }
.-translate-x-1\/2 { transform: translateX(-50%); }
.z-20 { z-index: 20; }
.z-30 { z-index: 30; }
.z-\[60\] { z-index: 60; }
.z-\[70\] { z-index: 70; }
.z-\[90\] { z-index: 90; }

.h-14 { height: 3.5rem; }
.w-14 { width: 3.5rem; }
.w-56 { width: 14rem; }
.w-1\/3 { width: 33.333333%; }
.w-1\/4 { width: 25%; }
.w-1\/5 { width: 20%; }
.w-2\/5 { width: 40%; }
.w-3\/5 { width: 60%; }
.max-w-\[420px\] { max-width: 420px; }
.col-span-2 { grid-column: span 2 / span 2; }

.inline-flex { display: inline-flex; }
.items-start { align-items: flex-start; }

.mx-auto { margin-left: auto; margin-right: auto; }
.my-1 { margin-top: 0.25rem; margin-bottom: 0.25rem; }
.my-5 { margin-top: 1.25rem; margin-bottom: 1.25rem; }

.text-\[17px\] { font-size: 17px; }
.text-\[20px\] { font-size: 20px; }
.text-right { text-align: right; }
.tracking-widest { letter-spacing: 0.1em; }
.leading-6 { line-height: 1.5rem; }
.text-red-300 { color: #fca5a5; }

.border-l { border-left-width: 1px; border-left-style: solid; }
.border-dashed { border-style: dashed; }
.border-red-800 { border-color: #991b1b; }
.rounded-none { border-radius: 0; }
.bg-transparent { background-color: transparent; }
.bg-neutral-900\/50 { background-color: rgba(33,37,41,0.5); }
.bg-neutral-900\/80 { background-color: rgba(33,37,41,0.8); }
.bg-red-950\/50 { background-color: rgba(69, 10, 10, 0.5); }
.bg-violet-950\/25 { background-color: rgba(46, 16, 101, 0.25); }
.border-violet-900\/50 { border-color: rgba(76, 29, 149, 0.5); }

.opacity-70 { opacity: 0.7; }
.outline-none { outline: none; }
.resize-none { resize: none; }
.object-cover { object-fit: cover; }

.hover\:bg-neutral-800:hover { background-color: #2e3236; }
.hover\:bg-neutral-800\/70:hover { background-color: rgba(46,50,54,0.7); }
.focus\:border-violet-400:focus { border-color: #c4c7ca; }
.active\:scale-\[0\.98\]:active { transform: scale(0.98); }
.last\:border-none:last-child { border: none; }
.placeholder\:text-neutral-500::placeholder { color: #707478; }

/* FIX (structural): previously the header, the breadcrumb+title block, and
   the sort/filter toolbar were THREE independently `position:sticky`
   elements, each stacked using a `top` offset computed in JS from the
   others' rendered heights. On mobile browsers, independently-sticky
   siblings can update their pinned position on slightly different
   compositor frames during a fast scroll/fling, which very briefly
   exposes the (non-sticky) grid content scrolling underneath in the seam
   between them — this is what showed up as a "gap" with a car photo
   peeking through.
   Fix: header + breadcrumb/title + toolbar now all live as plain, non-sticky
   children inside ONE shared `.sticky top-0` wrapper (#stickyHeaderGroup,
   see index.html + render() in script.js). They move as a single atomic
   compositor layer, so there is no seam where two independent sticky
   calculations can fall out of sync. These classes are kept as plain
   (non-positioned) markers only so existing JS selectors keep working.
   FIX 2: #stickyHeaderGroup also used to live INSIDE #pageBlurWrap. Any
   filter/transform on an ANCESTOR of a `position: sticky` element breaks
   its stickiness (it establishes a new containing block, so the sticky
   element stops pinning to the viewport and just scrolls away with the
   page) — and render() in script.js applies exactly that (`filter: blur()`
   + `transform: translateZ(0)` via `.loading-blur-layer`) to #pageBlurWrap
   during page-transition loading. That's why the whole header block
   (down through the مرتب‌سازی/ذخیره جستجو/پاک کردن همه toolbar) would stop
   staying fixed and content would scroll up underneath it. Fix: moved
   #stickyHeaderGroup out to be a sibling BEFORE #pageBlurWrap, which now
   wraps only #pageContent — the blur/dim effect still covers the page
   content during navigation, but no longer sits between the sticky header
   and the viewport, so it can no longer break its stickiness. */
.page-header-sticky { position: static; }
.toolbar-sticky { position: static; }

/* FIX (v2): the previous approach masked the toolbar's own box, which
   faded the sort/filter row's own text along with the edge — not what was
   wanted (filters must stay fully solid/opaque, only the empty strip
   below them should fade). It also only ever applied to `.toolbar-sticky`,
   so on the home page — which has no toolbar, only the bare #siteHeader
   row — nothing faded at all.
   Fix: attach the fade as a separate ~22px strip appended AFTER whatever
   #stickyHeaderGroup's real last child currently is (via ::after, which
   always renders after the last actual child in normal flow) — that's
   #siteHeader alone on the home page, .page-header-sticky on pages with
   just a title/breadcrumb, or .toolbar-sticky (below the filter row) on
   listing pages. Because it's a distinct box rather than a mask on
   existing content, none of the real header/filter text is ever touched —
   it stays crisp and fully opaque right up to its own bottom edge, and
   only the added strip below it fades to transparent, replacing the old
   hard border line. --chrome-fade-bg mirrors the exact bg-neutral-950
   value (and its .theme-light override) so the solid end of the gradient
   matches the header/toolbar background exactly in both themes.
   pointer-events: none keeps this decorative strip from swallowing taps on
   card content that scrolls up underneath it. */
#stickyHeaderGroup {
  --chrome-fade-bg: #14171a;
}
.theme-light #stickyHeaderGroup {
  --chrome-fade-bg: #e9ecef;
}
/* Unified flat chrome: header now matches the page/nav gray on every page
   (home included) — no glass/blur/gradient treatment, just one solid
   color, so there's no seam between header, page, and bottom dock.
   #siteHeader carries .bg-neutral-950 (black) from markup as its base
   fill class; this ID rule overrides it to the same gray used everywhere
   else, on every page (not just home). */
#siteHeader {
  background: #14171a;
}
#siteHeader.home-page-active .header-home-row {
  background: transparent;
  border-bottom: none;
}
#stickyHeaderGroup::after {
  content: "";
  display: block;
  height: 8px;
  background: linear-gradient(to bottom, var(--chrome-fade-bg) 0%, transparent 100%);
  pointer-events: none;
}
.login-modal-primary:active { filter:brightness(.98); }
/* HINT: مودال ورود → مودال | selector: .login-modal-link */
.login-modal-link { color:#e0e3e6; text-decoration:underline; text-underline-offset:3px; transition:opacity .2s ease; }
.login-modal-link:hover { opacity:.75; }
/* HINT: مودال ورود → جداکننده مودال ورود | selector: .login-modal-divider */
.login-modal-divider { display:flex; align-items:center; gap:12px; color:#6f7377; font-size:12px; }
.login-modal-divider::before, .login-modal-divider::after { content:""; flex:1; height:1px; background:#313539; }

/* ---------------------------------------------------------------
   16. COMPONENT: TOAST & SECTION-ENTER MOTION / GENERAL INTERACTION
   --------------------------------------------------------------- */
/* HINT: Toast و انیمیشن ورود بخش‌ها → استایل اختصاصی این Selector: button, a | selector: button, a */
button, a { -webkit-tap-highlight-color: transparent; }
/* FIX: the car/listing card, account cards, menu rows, etc. are plain
   `<div>`s with a `data-action` (not real <button>/<a> elements), so the
   rule above never reached them — on real touch devices that meant every
   tap flashed the browser's own default blue/gray tap-highlight rectangle
   over the whole card, which read as an unwanted "selected" state. */
[data-action] { -webkit-tap-highlight-color: transparent; }
/* HINT: Toast و انیمیشن ورود بخش‌ها → استایل اختصاصی این Selector: [data-action] | selector: [data-action] */
[data-action] { transition: opacity .28s ease, background-color .28s ease, border-color .28s ease, transform .16s cubic-bezier(.22,1,.36,1); }
[data-action]:active { transform: none; }
/* SMOOTHNESS: real <button>/<a> controls (not the big card containers, which
   already own their own entrance animation on `transform`) get a light
   tactile press-down on tap — the small scale reads as instant, satisfying
   feedback instead of the interaction feeling inert. */
button[data-action]:active,
a[data-action]:active {
  transform: scale(0.96);
}
/* SMOOTHNESS: div-based cards (listing/car cards, account cards, etc.) were
   explicitly excluded from the button/a press-scale above and left with
   `transform: none` on :active — so besides losing the native blue
   highlight (fixed above), they had no tactile feedback at all on tap. This
   gives them their own soft "sink in" press, matching how the real
   buttons/links already behave. Higher specificity than the blanket
   `[data-action]:active { transform: none; }` rule above, so it wins
   regardless of source order.
   FIX: `:active` isn't limited to the exact element under the pointer — it
   also applies to all of its ancestors for as long as it's pressed. The
   login/OTP/sell/account forms all carry `data-action` on the <form> itself
   (e.g. #authPhoneForm[data-action="sendOtp"]), so tapping a keypad digit
   or any other control nested inside one of these forms was also matching
   this rule on the form and shrinking the *entire* sheet, not just the
   control being pressed. Forms are containers for their own already-
   animated children, not tap targets in their own right, so they're
   excluded here — only real leaf "card" divs should get this squish. */
[data-action]:active:not(button):not(a):not(form) {
  transform: scale(0.975);
}
/* SMOOTHNESS: sort/filter dropdown menus are rebuilt fresh each render, so a
   `transition` never has a "before" state to animate from — an `animation`
   (which plays on mount regardless) is what actually shows here. */
.dropdown-pop-in { animation: ui-pop-in .26s cubic-bezier(.22,1,.36,1) both; transform-origin: top right; }
/* HINT: Toast و انیمیشن ورود بخش‌ها → اعلان Toast | selector: .ui-toast */
.ui-toast { animation: ui-toast-in .38s cubic-bezier(.22,1,.36,1) both; }
/* SMOOTHNESS: toast now eases out instead of vanishing the instant its timer fires. */
.ui-toast.is-leaving { animation: ui-toast-out .3s cubic-bezier(.22,1,.36,1) both; }
/* HINT: Toast و انیمیشن ورود بخش‌ها → انیمیشن ورود بخش‌ها | selector: .ui-section-enter */
.ui-section-enter { animation: ui-pop-in .4s cubic-bezier(.22,1,.36,1) both; }

/* ---------------------------------------------------------------
   16b. COMPONENT: SELL-FLOW STEP MOTION & BODY/PAINT DIAGRAM
   --------------------------------------------------------------- */
@keyframes sell-step-fade-fwd { from { opacity: 0; transform: translateX(-14px); } to { opacity: 1; transform: translateX(0); } }
@keyframes sell-step-fade-back { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: translateX(0); } }
.sell-step-fade-fwd { animation: sell-step-fade-fwd .32s cubic-bezier(.22,1,.36,1) both; }
.sell-step-fade-back { animation: sell-step-fade-back .32s cubic-bezier(.22,1,.36,1) both; }


/* Sell-flow location picker: a real, pannable/zoomable OpenStreetMap view
   (via Leaflet). Tapping/clicking or dragging the marker sets the seller's
   region; the exact coordinate is never shown back to buyers — only a
   coarse, human-readable district label is stored and displayed. */
.sell-location-map { position: relative; border-radius: 16px; overflow: hidden; border: 1px solid #2f3337; }
.sell-location-map .detail-map-visual { height: 220px; }

/* ---------------------------------------------------------------
   LEAFLET / OPENSTREETMAP INTEGRATION
   Real map tiles power both the vehicle-detail location preview and the
   sell-flow location picker. The preview map is locked (no drag/zoom) and
   always shows a jittered, approximate point for privacy; the sell-flow
   map is fully interactive so the seller can pick their own area.
--------------------------------------------------------------- */
.detail-map-visual .leaflet-container,
.sell-location-map .leaflet-container { width: 100%; height: 100%; background: #22262a; font: inherit; }
.leaflet-app-pin-wrap { background: transparent !important; border: none !important; }
.leaflet-app-pin { width: 34px; height: 34px; border-radius: 50% 50% 50% 0; background: #212529; display: flex; align-items: center; justify-content: center; transform: rotate(-45deg); box-shadow: 0 3px 10px rgba(0,0,0,.4); }
.leaflet-app-pin svg { transform: rotate(45deg); color: #e0e3e6; }
.map-privacy-circle { pointer-events: none; }
.leaflet-osm-credit { position: absolute; bottom: 3px; left: 6px; z-index: 500; font-size: 9px; line-height: 1; color: rgba(255,255,255,.65); background: rgba(0,0,0,.4); padding: 2px 6px; border-radius: 6px; pointer-events: none; }
.detail-map-visual .leaflet-control-zoom,
.detail-map-visual .leaflet-control-attribution { display: none; }
.sell-location-map .leaflet-control-attribution { font-size: 9px; }
.car-panel-shape { transition: fill .15s ease, opacity .15s ease; }
[data-action="toggleDamagedPanel"].car-panel-shape { cursor: pointer; }
[data-action="toggleDamagedPanel"].car-panel-shape:hover { fill: rgba(245, 158, 11, 0.35) !important; }
@keyframes car-panel-pulse { 0% { filter: brightness(1.7); } 100% { filter: brightness(1); } }
.car-panel-selected { animation: car-panel-pulse .45s ease; }

.damage-chip { padding: 0.375rem 0.75rem; border-radius: 9999px; font-size: 12.5px; border: 1px solid #44484c; color: #c4c7ca; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.damage-chip.is-selected { background-color: color-mix(in srgb, var(--damage-chip-color, #f59e0b) 85%, transparent); border-color: var(--damage-chip-color, #f59e0b); color: #1a1d21; font-weight: 700; }

.paint-card { border-radius: 0.75rem; background-color: #212529; padding: 0.75rem; display: flex; flex-direction: column; align-items: center; gap: 0.75rem; }
.paint-badge-row { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; }
.paint-badge { padding: 0.25rem 0.75rem; border-radius: 9999px; font-size: 12px; background-color: rgba(245, 158, 11, 0.15); color: #fbbf24; border: 1px solid rgba(180, 83, 9, 0.5); }
.paint-note { font-size: 11.5px; color: #707478; text-align: center; }
.theme-light .paint-card { background-color: #e0e3e6; }

@media (prefers-reduced-motion: reduce) {
  .sell-step-fade-fwd, .sell-step-fade-back, .car-panel-selected { animation: none !important; }
}

/* ---------------------------------------------------------------
   ACCOUNT PAGE — PROFILE HEADER, TABS & SAVED/LISTING GRID
   Deliberately LTR regardless of the site's overall RTL direction,
   and deliberately monochrome (no violet accent) to match the
   reference layout. Colors still come from the existing
   bg-neutral-*/text-neutral-* utilities applied in the markup, so
   the light-theme overrides below already cover most of it.
   --------------------------------------------------------------- */
.account-body { direction: ltr; text-align: left; }

.account-profile { display: flex; flex-direction: column; align-items: flex-start; padding: 20px 20px 18px; }
.account-avatar-wrap { position: relative; width: 84px; height: 84px; margin-bottom: 14px; display: block; cursor: pointer; }
.account-avatar { width: 84px; height: 84px; border-radius: 9999px; display: flex; align-items: center; justify-content: center; font-size: 26px; font-weight: 800; overflow: hidden; }
.account-avatar-badge { position: absolute; bottom: -2px; right: -2px; width: 26px; height: 26px; border-radius: 9999px; background-color: #14171a; border: 3px solid #14171a; display: flex; align-items: center; justify-content: center; color: #e0e3e6; pointer-events: none; }
.theme-light .account-avatar-badge { background-color: #e9ecef; border-color: #e9ecef; color: #34383c; }
.account-name { font-family: 'Vazirmatn', Tahoma, 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif; font-weight: 800; font-size: 25px; line-height: 1.2; margin-bottom: 14px; }
.account-name-empty { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.account-phone-row { display: flex; align-items: center; gap: 7px; }
.account-phone-display { direction: ltr; unicode-bidi: isolate; }
.account-phone-row svg { flex: 0 0 auto; filter: drop-shadow(0 0 5px rgba(56,151,240,.45)); }
.account-add-name-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 14px 6px 6px;
  border-radius: 9999px;
  border: 1.5px dashed #a78bfa;
  color: #c4b5fd;
  background: rgba(167,139,250,0.08);
  font-size: 13.5px;
  font-weight: 700;
  font-family: inherit;
}
.account-add-name-plus {
  width: 22px;
  height: 22px;
  border-radius: 9999px;
  background: #e0e3e6;
  color: #22262a;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.account-edit-btn { display: inline-flex; align-items: center; font-size: 13px; font-weight: 700; padding: 9px 20px; border-radius: 9999px; }

.account-edit-avatar-wrap { position: relative; width: 92px; height: 92px; display: block; cursor: pointer; }
.account-edit-avatar { width: 92px; height: 92px; border-radius: 9999px; display: flex; align-items: center; justify-content: center; font-size: 28px; font-weight: 800; overflow: hidden; }
.account-edit-avatar-badge { position: absolute; bottom: -2px; right: -2px; width: 30px; height: 30px; border-radius: 9999px; background-color: #14171a; border: 3px solid #14171a; display: flex; align-items: center; justify-content: center; color: #e0e3e6; pointer-events: none; }
.theme-light .account-edit-avatar-badge { background-color: #e9ecef; border-color: #e9ecef; color: #34383c; }

.account-tabs { display: flex; align-items: stretch; border-bottom: 1px solid #2e3236; }
.theme-light .account-tabs { border-bottom-color: #d1d4d7; }
.account-tab { position: relative; flex: 1; display: flex; align-items: center; justify-content: center; padding: 15px 4px; color: #707478; background: none; border-bottom: 2px solid transparent; transition: color .15s ease, border-color .15s ease, opacity .15s ease; }
.account-tab.is-active { color: #e0e3e6; border-bottom-color: #e0e3e6; }
.theme-light .account-tab.is-active { color: #34383c; border-bottom-color: #34383c; }
.account-tab.is-disabled { color: #4f5357; opacity: 0.6; cursor: default; }
.account-tab-soon-badge { position: absolute; top: 6px; right: 8px; font-size: 7.5px; font-weight: 800; background-color: #2e3236; color: #9a9da0; padding: 1.5px 4px; border-radius: 999px; line-height: 1.5; }
.theme-light .account-tab-soon-badge { background-color: #d6d9dc; color: #74777b; }

.account-pin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 4px 16px 32px; }
.account-pin-card { display: flex; flex-direction: column; cursor: pointer; }
.account-pin-card-static { cursor: default; }
.account-pin-image { position: relative; width: 100%; aspect-ratio: 3 / 4; border-radius: 16px; overflow: hidden; background-color: #212529; }
.account-pin-avatar { position: absolute; left: 8px; bottom: 8px; width: 28px; height: 28px; border-radius: 9999px; overflow: hidden; background-color: #1a1d21; border: 2px solid #14171a; display: flex; align-items: center; justify-content: center; }
.theme-light .account-pin-avatar { border-color: #e9ecef; background-color: #e0e3e6; }
.account-pin-caption { padding-top: 8px; }
.account-pin-owner { font-size: 11.5px; color: #9a9da0; margin-bottom: 2px; }
.account-pin-title { font-size: 13px; font-weight: 700; color: #e0e3e6; line-height: 1.3; }
.theme-light .account-pin-title { color: #34383c; }
.account-pin-actions { display: flex; gap: 6px; margin-top: 8px; }
.account-pin-action-btn { flex: 1; min-width: 0; text-align: center; font-size: 11px; font-weight: 600; border-radius: 9999px; padding: 6px 4px; border: 1px solid #44484c; background: transparent; color: #c4c7ca; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.account-pin-action-btn-emphasis { color: #e0e3e6; border-color: #2e3236; }
.theme-light .account-pin-action-btn { border-color: #d4d7da; color: #53575b; }
.theme-light .account-pin-action-btn-emphasis { color: #53575b; border-color: #e1e4e7; }

/* ---------------------------------------------------------------
   17. THEME: LIGHT MODE OVERRIDES
   --------------------------------------------------------------- */
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .bg-black | selector: .theme-light .bg-black */
.theme-light .bg-black { background-color: #e9ecef; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .bg-neutral-950 | selector: .theme-light .bg-neutral-950 */
.theme-light .bg-neutral-950 { background-color: #e9ecef; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .bg-neutral-900 | selector: .theme-light .bg-neutral-900 */
.theme-light .bg-neutral-900 { background-color: #e0e3e6; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .bg-neutral-800 | selector: .theme-light .bg-neutral-800 */
.theme-light .bg-neutral-800 { background-color: #d6d9dc; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .border-neutral-800 | selector: .theme-light .border-neutral-800 */
.theme-light .border-neutral-800 { border-color: #d1d4d7; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .border-neutral-700 | selector: .theme-light .border-neutral-700 */
.theme-light .border-neutral-700 { border-color: #c5c8cb; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .border-neutral-600 | selector: .theme-light .border-neutral-600 */
.theme-light .border-neutral-600 { border-color: #b0b3b6; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .text-neutral-100 | selector: .theme-light .text-neutral-100 */
.theme-light .text-neutral-100 { color: #34383c; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .text-neutral-200 | selector: .theme-light .text-neutral-200 */
.theme-light .text-neutral-200 { color: #43474a; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .text-neutral-300 | selector: .theme-light .text-neutral-300 */
.theme-light .text-neutral-300 { color: #565a5e; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .text-neutral-400 | selector: .theme-light .text-neutral-400 */
.theme-light .text-neutral-400 { color: #74777b; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .text-neutral-500 | selector: .theme-light .text-neutral-500 */
.theme-light .text-neutral-500 { color: #888c8f; }
.theme-light .hover\:bg-neutral-800\/70:hover { background-color: #d6d9dcb3; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .bg-neutral-950\/90 | selector: .theme-light .bg-neutral-950\/90 */
.theme-light .bg-neutral-950\/90 { background-color: #e9ecefe6; }
/* HINT: تغییرات حالت Light Mode → استایل اختصاصی این Selector: .theme-light .bg-black\/70 | selector: .theme-light .bg-black\/70 */
.theme-light .bg-black\/70 { background-color: #21252966; }

/* ---------------------------------------------------------------
   18. MOTION PREFERENCES & RESPONSIVE
   --------------------------------------------------------------- */
/* HINT: Responsive و تنظیمات کاهش حرکت → قانون Responsive / Media Query | selector: @media (prefers-reduced-motion: no-preference) */
@media (prefers-reduced-motion: no-preference) {
/* HINT: Responsive و تنظیمات کاهش حرکت → مودال | selector: .login-modal-card, .modal-card */
  .login-modal-card, .modal-card { backface-visibility: hidden; transform-origin: center center; }
/* HINT: Responsive و تنظیمات کاهش حرکت → منوی کناری / Burger Menu | selector: .menu-veil */
  .menu-veil { backface-visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  .menu-veil, .menu-veil::before, .menu-link, .menu-close { transition-duration: .01s !important; }
}
/* HINT: Responsive و تنظیمات کاهش حرکت → قانون Responsive / Media Query | selector: @media (max-width: 420px) */
@media (max-width: 420px) {
/* HINT: Responsive و تنظیمات کاهش حرکت → پوسته مودال ورود | selector: .login-modal-shell */
  .login-modal-shell { padding: 12px; }
/* HINT: Responsive و تنظیمات کاهش حرکت → کارت مودال ورود | selector: .login-modal-card */
  .login-modal-card { border-radius: 24px; padding: 20px; max-height: calc(100vh - 24px); }
}

/* FIX: native [hidden] attribute must always win over layout classes like .flex,
   .modal-shell, .login-modal-shell, .loading-spinner-overlay, etc. Without this,
   elements toggled via the `hidden` attribute (login modal, generic modal, loading
   spinner) stay visually displayed and block clicks across the entire page. */
[hidden] { display: none !important; }

/* ---------------------------------------------------------------
   BOTTOM DOCK NAVIGATION → ناوبری پایین صفحه (آگهی‌ها/نشان‌شده‌ها/ثبت آگهی/حساب من)
--------------------------------------------------------------- */
.bottom-dock { position: fixed; left: 0; right: 0; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 40; display: flex; justify-content: center; pointer-events: none; padding: 0 16px; }
.bottom-dock-inner {
  pointer-events: auto;
  position: relative;
  width: 100%;
  max-width: 380px;
  margin: 0 auto;
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  border-radius: 30px;
  padding: 9px 6px;
  background:
    radial-gradient(130% 160% at 12% -25%, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0) 55%),
    radial-gradient(100% 140% at 100% 130%, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0) 60%),
    rgba(24,28,31,0.46);
  backdrop-filter: blur(36px) saturate(160%) brightness(0.92);
  -webkit-backdrop-filter: blur(36px) saturate(160%) brightness(0.92);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow:
    0 22px 55px rgba(0, 0, 0, 0.55),
    0 4px 16px rgba(0, 0, 0, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    inset 0 -1px 0 rgba(0, 0, 0, 0.4);
  overflow: hidden;
}
.bottom-dock-inner::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(115deg, rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0) 22%, rgba(255, 255, 255, 0) 78%, rgba(255, 255, 255, 0.05) 100%);
  pointer-events: none;
}
.dock-item { position: relative; z-index: 1; flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 6px 2px 5px; background: none; border: none; margin: 0; border-radius: 20px; color: rgba(255, 255, 255, 0.6); font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: color 0.15s ease, background-color 0.15s ease; }
.dock-icon { display: flex; align-items: center; justify-content: center; }
.dock-label { font-size: 10.5px; font-weight: 700; line-height: 1; white-space: nowrap; }
.dock-item.is-active { color: #e9e2ff; background-color: rgba(224,227,230,0.22); }
.dock-item:active { opacity: 0.65; }
.theme-light .bottom-dock-inner {
  background:
    radial-gradient(130% 160% at 12% -25%, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0) 55%),
    rgba(255, 255, 255, 0.32);
  backdrop-filter: blur(30px) saturate(160%);
  -webkit-backdrop-filter: blur(30px) saturate(160%);
  border-color: rgba(255, 255, 255, 0.55);
  box-shadow:
    0 18px 40px rgba(52,56,60,0.16),
    0 3px 10px rgba(52,56,60,0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.85),
    inset 0 -1px 0 rgba(52,56,60,0.06);
}
.theme-light .dock-item { color: rgba(52,56,60,0.55); }
.theme-light .dock-item.is-active { color: #3f4347; background-color: rgba(83,87,91,0.14); }
#pageContent { padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px)); }
#toastMessage { bottom: calc(100px + env(safe-area-inset-bottom, 0px)); }

/* ---------------------------------------------------------------
   VEHICLE STICKY PRICE / CONTACT BAR → نوار قیمت و تماس صفحه جزئیات
   خودرو (روی صفحه‌ی جزئیات، حین اسکرول به کف صفحه چسبیده و بالای
   ناوبری پایین سایت شناور می‌ماند؛ همان زبان بصری bottom-dock)
--------------------------------------------------------------- */
[data-page="vehicle"] { padding-bottom: 96px; }
.vehicle-cta-dock {
  position: fixed;
  left: 0; right: 0;
  bottom: calc(92px + env(safe-area-inset-bottom, 0px));
  z-index: 39;
  display: flex;
  justify-content: center;
  pointer-events: none;
  padding: 0 16px;
}
.vehicle-cta-dock-inner {
  pointer-events: auto;
  width: 100%;
  max-width: 488px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: 20px;
  padding: 10px 10px 10px 14px;
  background:
    radial-gradient(130% 160% at 12% -25%, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0) 55%),
    radial-gradient(100% 140% at 100% 130%, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0) 60%),
    rgba(24,28,31,0.72);
  backdrop-filter: blur(30px) saturate(160%) brightness(0.94);
  -webkit-backdrop-filter: blur(30px) saturate(160%) brightness(0.94);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow:
    0 22px 50px rgba(0, 0, 0, 0.5),
    0 4px 16px rgba(0, 0, 0, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.15),
    inset 0 -1px 0 rgba(0, 0, 0, 0.35);
}
.vehicle-cta-price { flex: 1 1 auto; min-width: 0; }
.vehicle-cta-price-val {
  display: block;
  font-size: 17px; font-weight: 800;
  color: #34d399;
  letter-spacing: -0.01em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.vehicle-cta-price-lbl { display: block; font-size: 10.5px; color: rgba(255,255,255,0.55); margin-top: 1px; }
.vehicle-cta-actions { display: flex; align-items: center; gap: 3px; flex-shrink: 0; }
.vehicle-cta-btn {
  display: flex; align-items: center; justify-content: center;
  background: #e0e3e6; color: #1a1d21;
  font-family: inherit;
  font-size: 13.5px; font-weight: 800;
  border: none; border-radius: 999px;
  padding: 12px 18px;
  white-space: nowrap;
  box-shadow: 0 8px 20px rgba(224,227,230,0.28);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.vehicle-cta-btn:active { opacity: 0.82; }
.vehicle-cta-phone-btn {
  width: 42px; height: 42px; border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.16);
  display: flex; align-items: center; justify-content: center;
  color: #e0e3e6; flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}
.vehicle-cta-phone-btn:active { opacity: 0.8; }
.theme-light .vehicle-cta-dock-inner {
  background:
    radial-gradient(130% 160% at 12% -25%, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0) 55%),
    rgba(255, 255, 255, 0.88);
  border-color: rgba(52,56,60,0.1);
  box-shadow:
    0 18px 40px rgba(52,56,60,0.14),
    0 3px 10px rgba(52,56,60,0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.theme-light .vehicle-cta-price-val { color: #15803d; }
.theme-light .vehicle-cta-price-lbl { color: rgba(52,56,60,0.5); }
.theme-light .vehicle-cta-phone-btn { color: #34383c; border-color: rgba(52,56,60,0.14); }
@media (max-width: 360px) {
  .vehicle-cta-btn { padding: 12px 14px; font-size: 12.5px; }
}

/* ---------------------------------------------------------------
   PROMOTED CAROUSEL → آگهی‌های تبلیغ‌شده (اسکرول افقی چپ/راست)
--------------------------------------------------------------- */
.promo-scroll { scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: none; overscroll-behavior-x: contain; }
.promo-scroll::-webkit-scrollbar { display: none; }
.promo-card { scroll-snap-align: start; }

/* ---------------------------------------------------------------
   MOMENTUM SCROLLING / OVERSCROLL CONTAINMENT → اسکرول نرم‌تر در
   کشوهای/مودال‌های داخلی (جلوگیری از پرش کل صفحه هنگام رسیدن به لبه)
--------------------------------------------------------------- */
#menuScrollWrap, .login-modal-card, #modalBody, #pageContent {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
}
html, body { overscroll-behavior-y: none; }
/* While a .swipe-row card is being touched (js/19-swipe-save-card.js), we
   force this to "none" (not just "contain") so a horizontal card-swipe
   started at scroll-top can never leak into the browser's native
   rubber-band / pull-to-refresh, even for the brief ambiguous moment
   before the drag's axis (x vs y) is determined. Removed again as soon
   as that touch ends. */
#pageContent.swipe-touch-active { overscroll-behavior-y: none !important; }

/* ---------------------------------------------------------------
   SMOOTH CARD ENTRANCE + IMAGE BLUR-UP → ظاهر شدن نرم کارت‌ها و بلور اولیه‌ی عکس‌ها
--------------------------------------------------------------- */
@keyframes cardFadeIn {
  from { opacity: 0; transform: translateY(10px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.card-fade-in { animation: cardFadeIn 0.5s cubic-bezier(.22,1,.36,1) both; -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; -webkit-user-drag: none; touch-action: manipulation; }
.card-fade-in * { -webkit-touch-callout: none; -webkit-user-drag: none; }

.car-photo {
  filter: blur(16px);
  opacity: 0.7;
  transition: filter 0.5s ease, opacity 0.4s ease;
}
.car-photo.img-ready {
  filter: none;
  opacity: 1;
}

/* ================================================================
   AUTH FLOW — BOTTOM SHEET (opens from the bottom, dark, numeric keypad)
   ================================================================ */
html.auth-active,
html.auth-active body { overflow: hidden !important; overscroll-behavior: none !important; }
body.auth-active { touch-action: none; }

html.menu-active,
html.menu-active body { overflow: hidden !important; overscroll-behavior: none !important; }
body.menu-active { touch-action: none; }

.auth-flow {
  --auth-bg: #14171a;
  --auth-shell-bg: #14171a;
  --auth-field-bg: #292d31;
  --auth-chip-bg: #313539;
  --auth-border: #3f4347;
  --auth-text: #e1e4e7;
  --auth-text-dim: #939699;
  --auth-text-faint: #73767a;
  --auth-placeholder: #6c7073;
  --auth-input-bg: #282c30;
  --auth-input-border: #3d4144;
  --auth-input-border-filled: #565a5e;
  --auth-link: #e0e3e6;
  --auth-btn-disabled-bg: #323639;
  --auth-btn-disabled-text: #63666a;
  --auth-picker-bg: rgba(37,41,45,.98);
  --auth-picker-border: rgba(255,255,255,.09);
  --auth-picker-hover: #393d41;
  --auth-sheet-bg: #212529;
  --auth-sheet-text: #e1e4e7;
  --auth-sheet-text-dim: #939699;
  --auth-backdrop-tint: rgba(24,27,30,.62);
  --auth-done-bg: #373b3f;
  --auth-done-text: #e1e4e7;
  --auth-keypad-bg: #2b2f33;
  --auth-keypad-bg-active: #35393d;
  --auth-handle: rgba(255,255,255,.22);
  --auth-accent: #e0e3e6;
  --auth-accent-ink: #22262a;
  --auth-success-tint: #ff8a34;
  --auth-verified-tint: #34d399;
  --auth-verified-glow-1: rgba(52,211,153,.85);
  --auth-verified-glow-2: rgba(52,211,153,.5);
  --auth-verified-bg: rgba(52,211,153,.14);
  --auth-verified-border: rgba(52,211,153,.55);
  --auth-verified-shadow: rgba(52,211,153,.32);

  position: fixed;
  inset: 0;
  z-index: 200;
  width: 100%;
  height: 100dvh;
  min-height: 100dvh;
  overflow: hidden;
  isolation: isolate;
  font-family: 'Vazirmatn', Tahoma, "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}
html.theme-light .auth-flow {
  --auth-bg: #e9ecef;
  --auth-shell-bg: #e9ecef;
  --auth-field-bg: #e0e3e6;
  --auth-chip-bg: #dadde0;
  --auth-border: #c5c8cb;
  --auth-text: #34383c;
  --auth-text-dim: #74777b;
  --auth-text-faint: #888c8f;
  --auth-placeholder: #999c9f;
  --auth-input-bg: #e9ecef;
  --auth-input-border: #c5c8cb;
  --auth-input-border-filled: #b0b3b6;
  --auth-link: #3f4347;
  --auth-btn-disabled-bg: #d6d9dc;
  --auth-btn-disabled-text: #a0a3a7;
  --auth-picker-bg: rgba(255,255,255,.98);
  --auth-picker-border: rgba(52,56,60,.09);
  --auth-picker-hover: #e9ecef;
  --auth-sheet-bg: #e9ecef;
  --auth-sheet-text: #34383c;
  --auth-sheet-text-dim: #888c8f;
  --auth-backdrop-tint: rgba(52,56,60,.55);
  --auth-done-bg: #34383c;
  --auth-done-text: #e9ecef;
  --auth-keypad-bg: #e0e3e6;
  --auth-keypad-bg-active: #d6d9dc;
  --auth-handle: rgba(52,56,60,.18);
}

/* Dimmed backdrop behind the sheet — tap it to dismiss.
   PERF FIX (round 2): even with the blur radius no longer *animated*
   (previous fix), simply HAVING a live backdrop-filter here was still
   heavy — the browser has to keep resampling/re-blurring everything
   behind this layer on basically every composite, for as long as the
   sheet is open, including every frame of the sheet's own slide-up
   transform. On mid/low-end mobile GPUs that alone is enough to make
   the whole popup feel laggy. backdrop-filter is dropped entirely here;
   a plain flat tint gives the same "dimmed" effect for a fraction of
   the rendering cost, and opacity is still the only animated property
   (cheap, fully GPU-compositable). */
.auth-flow-backdrop {
  position: absolute;
  inset: 0;
  background: var(--auth-backdrop-tint);
  opacity: 0;
  transition: opacity .28s ease;
  will-change: opacity;
}
.auth-flow.is-open .auth-flow-backdrop {
  opacity: 1;
}

/* The sheet itself: pinned to the bottom edge, slides up into view */
.auth-app-shell {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 460px;
  margin: 0 auto;
  max-height: min(90vh, 660px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 26px 26px 0 0;
  background: var(--auth-sheet-bg);
  box-shadow: 0 -18px 60px rgba(0,0,0,.4), 0 0 0 1px rgba(255,255,255,.04);
  color: var(--auth-text);
  transform: translateY(100%);
  will-change: transform;
  transition: transform .44s cubic-bezier(.32,.72,0,1);
  padding-bottom: env(safe-area-inset-bottom);
}
.auth-flow.is-open .auth-app-shell { transform: translateY(0); }
.auth-flow.is-closing .auth-flow-backdrop { opacity: 0; }
.auth-flow.is-closing .auth-app-shell { transform: translateY(100%); transition-duration: .3s; }

.auth-sheet-handle { flex-shrink: 0; display: flex; justify-content: center; padding: 10px 0 2px; }
.auth-sheet-handle span { width: 36px; height: 5px; border-radius: 999px; background: var(--auth-handle); }

.auth-sheet-topbar { flex-shrink: 0; display: flex; align-items: center; padding: 2px 14px 0; }

.auth-screen {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}
.auth-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  line-height: 1;
  color: var(--auth-text);
  background: var(--auth-chip-bg);
  transition: transform .2s cubic-bezier(.22,1,.36,1), filter .2s ease, background-color .22s ease, color .22s ease;
  -webkit-tap-highlight-color: transparent;
}
.auth-back:active { transform: scale(.92); filter: brightness(.92); }

.auth-phone-content,
.auth-otp-content {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  width: min(100%, 420px);
  margin: 0 auto;
  padding: 6px 22px max(20px, env(safe-area-inset-bottom));
  text-align: center;
}
.auth-phone-title {
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -.02em;
  font-weight: 700;
}
.auth-otp-subtitle {
  margin-top: 8px;
  color: var(--auth-text-dim);
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: -.01em;
}
.auth-otp-subtitle #authOtpPhone { color: var(--auth-text); font-weight: 700; }

.auth-phone-form { margin-top: 20px; }
.auth-phone-input-wrap {
  position: relative;
  width: 100%;
  height: 56px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: 17px;
  padding: 0 16px;
  background: var(--auth-input-bg);
  border: 1px solid var(--auth-input-border);
  direction: ltr;
}
.auth-country-button {
  height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  padding: 0 2px;
  color: var(--auth-text);
  font-size: 15px;
  font-weight: 500;
}
.auth-country-button > span:first-child { font-size: 19px; line-height: 1; }
.auth-country-chevron { margin-left: 1px; opacity: .6; }
.auth-phone-divider { flex: 0 0 auto; width: 1px; height: 22px; background: var(--auth-input-border); }
#authPhoneInput {
  min-width: 0;
  flex: 1;
  height: 40px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--auth-text);
  font-size: 19px;
  font-weight: 600;
  letter-spacing: .02em;
  text-align: left;
  direction: ltr;
  caret-color: var(--auth-accent);
}
#authPhoneInput::placeholder { color: var(--auth-placeholder); font-weight: 500; }
.auth-country-picker {
  position: absolute;
  top: 60px;
  left: 14px;
  z-index: 12;
  min-width: 136px;
  padding: 6px;
  border-radius: 16px;
  background: var(--auth-picker-bg);
  border: 1px solid var(--auth-picker-border);
  box-shadow: 0 18px 45px rgba(0,0,0,.24);
  text-align: left;
  animation: auth-picker-in .18s ease both;
}
.auth-country-picker button {
  width: 100%;
  padding: 9px 10px;
  border-radius: 11px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--auth-text);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -.01em;
}
.auth-country-picker button:active { background: var(--auth-picker-hover); }
.auth-terms {
  margin-top: 16px;
  color: var(--auth-text-faint);
  font-size: 12px;
  line-height: 1.5;
}

/* ---------------------------------------------------------------
   VIRTUAL NUMERIC KEYPAD — the only way to type the phone / OTP.
   Real inputs are readonly (inputmode="none") so the device's own
   keyboard never opens; every digit comes from these buttons.
   --------------------------------------------------------------- */
.auth-keypad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 18px;
  /* A phone dial pad reads 1→9 left-to-right regardless of page
     direction, so lock this independently of the RTL page. */
  direction: ltr;
}
.auth-keypad-btn {
  height: 54px;
  border-radius: 15px;
  background: var(--auth-keypad-bg);
  color: var(--auth-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 600;
  -webkit-tap-highlight-color: transparent;
  transition: transform .12s cubic-bezier(.22,1,.36,1), background-color .15s ease;
}
.auth-keypad-btn:active { transform: scale(.94); background: var(--auth-keypad-bg-active); }
.auth-keypad-spacer { height: 54px; }
.auth-keypad-backspace { color: var(--auth-text-dim); }

.auth-primary-button {
  width: 100%;
  height: 54px;
  border-radius: 18px;
  background: var(--auth-btn-disabled-bg);
  color: var(--auth-btn-disabled-text);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -.02em;
  transition: transform .18s cubic-bezier(.22,1,.36,1), filter .18s ease, background-color .22s ease, color .22s ease;
}
.auth-primary-button:not(:disabled) {
  background: var(--auth-accent);
  color: var(--auth-accent-ink);
  box-shadow: 0 10px 26px rgba(224,227,230,.18);
}
.auth-primary-button:not(:disabled):active { transform: scale(.985); filter: brightness(.96); }
.auth-primary-button:disabled { cursor: default; }
.auth-arrow { flex-shrink: 0; width: 16px; height: 16px; }
.auth-bottom-bar { flex-shrink: 0; margin-top: 18px; }

.auth-otp-stage { position: relative; }
.auth-otp-inputs {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
  margin-top: 20px;
  direction: ltr;
  transition: opacity .2s ease;
}
.otp-cell { position: relative; }
.otp-cell input {
  width: 100%;
  aspect-ratio: .85;
  min-height: 44px;
  max-height: 52px;
  border: 2px solid var(--auth-input-border);
  border-radius: 13px;
  outline: none;
  background: var(--auth-input-bg);
  color: var(--auth-text);
  text-align: center;
  font-size: 20px;
  line-height: 1;
  font-weight: 600;
  caret-color: var(--auth-success-tint);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s cubic-bezier(.22,1,.36,1), background-color .18s ease, color .18s ease, opacity .18s ease;
  -webkit-appearance: none;
}
.otp-cell input:focus {
  border-color: var(--auth-success-tint);
  box-shadow: 0 0 0 3px rgba(255,138,52,.18);
  transform: translateY(-1px);
}
.otp-cell input.has-value { border-color: var(--auth-success-tint); }
.otp-cell input.is-error { border-color: #e36a6a; animation: auth-error-shake .24s ease; }
/* Ignite trace — a lit "fuse" that draws around each cell's border the
   instant the code is confirmed, matching the reference clip. pathLength=100
   on the <rect> means dasharray/dashoffset are always plain percentages,
   regardless of the cell's actual rendered size. */
.otp-cell-trace {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
  opacity: 0;
}
.otp-cell-trace rect {
  fill: none;
  stroke: var(--auth-success-tint);
  stroke-width: 2.4;
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
  filter: drop-shadow(0 0 5px rgba(255,138,52,.85)) drop-shadow(0 0 13px rgba(255,138,52,.5));
  transition: stroke .28s ease, filter .28s ease;
}
.auth-otp-inputs.is-igniting .otp-cell-trace {
  opacity: 1;
  animation: otp-trace-draw .56s linear forwards;
}
.auth-otp-inputs.is-igniting .otp-cell input { border-color: var(--auth-success-tint); }
@keyframes otp-trace-draw { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }

/* Verified — once the code is confirmed correct, the ignite halo (still
   mid-fade-out at this point) swaps from orange to green right before the
   cells converge and disappear, so the color the user last sees glowing
   is green, matching the green checkmark that replaces it. */
.auth-otp-inputs.is-verified .otp-cell-trace rect {
  stroke: var(--auth-verified-tint);
  filter: drop-shadow(0 0 5px var(--auth-verified-glow-1)) drop-shadow(0 0 13px var(--auth-verified-glow-2));
}
.auth-otp-inputs.is-verified .otp-cell input { border-color: var(--auth-verified-tint); }

/* Convergence — cells slide/scale into the shared centre point (positions
   are computed in JS via getBoundingClientRect so this holds up regardless
   of viewport width), then the single glowing checkmark takes over. */
.auth-otp-inputs.is-merging .otp-cell { will-change: transform, opacity; }
.auth-otp-inputs.is-merged { visibility: hidden; }
.auth-otp-success-icon {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 96px;
  height: 96px;
  transform: translate(-50%, -50%) scale(.7);
  border-radius: 24px;
  display: grid;
  place-items: center;
  background: var(--auth-verified-bg);
  border: 1.5px solid var(--auth-verified-border);
  box-shadow: 0 0 50px 8px var(--auth-verified-shadow);
  opacity: 0;
  pointer-events: none;
}
.auth-otp-success-icon svg { width: 50px; height: 50px; overflow: visible; }
.auth-otp-success-icon path {
  fill: none;
  stroke: var(--auth-verified-tint);
  stroke-width: 5.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 56;
  stroke-dashoffset: 56;
}
.auth-otp-success-icon.is-visible {
  opacity: 1;
  /* NOTE: this icon is absolutely centered via `translate(-50%,-50%)` in
     its base rule above. It must NOT reuse `auth-success-pop` (used by the
     unrelated full-screen success icon, which is centered by flexbox, not
     translate) — that keyframe's 0%/65%/100% steps only set `scale(...)`,
     which overwrites the translate for the duration of the animation and
     knocks this icon off-center (up near the top-left of its box) while it
     plays. `auth-otp-success-pop` below keeps the translate at every step. */
  animation: auth-otp-success-pop .5s cubic-bezier(.17,.89,.27,1.17) forwards;
}
.auth-otp-success-icon.is-visible path { animation: auth-check-draw .38s ease .16s forwards; }
#authOtpTitle, #authOtpSubtitle { transition: opacity .18s ease; }
.auth-resend-button {
  margin-top: 16px;
  color: var(--auth-link);
  font-size: 14px;
  font-weight: 500;
  transition: opacity .18s ease, transform .18s ease;
}
.auth-resend-button:active { opacity: .65; transform: translateY(1px); }
.auth-resend-button.is-disabled { color: var(--auth-text-faint); pointer-events: none; }
.auth-otp-continue {
  height: 52px;
  border-radius: 16px;
  background: var(--auth-accent);
  color: var(--auth-accent-ink);
  font-size: 16px;
  font-weight: 600;
  box-shadow: 0 10px 26px rgba(224,227,230,.18);
}
.auth-otp-continue:disabled { background: var(--auth-btn-disabled-bg); color: var(--auth-btn-disabled-text); box-shadow: none; }
.auth-error {
  margin-top: 10px;
  color: #d34e4e;
  font-size: 13px;
  font-weight: 500;
}

/* Success sheet — same bottom-sheet paradigm, glowing checkmark */
.auth-success-overlay {
  position: absolute;
  inset: 0;
  z-index: 40;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  background: rgba(0,0,0,0);
  transition: opacity .34s ease;
}
.auth-success-overlay.is-visible { opacity: 1; pointer-events: auto; background: var(--auth-backdrop-tint, rgba(24,27,30,.62)); }
.auth-success-overlay.is-hiding { opacity: 0; pointer-events: none; }
.auth-success-backdrop { position: absolute; inset: 0; }
.auth-success-sheet {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 460px;
  margin: 0 auto;
  min-height: 380px;
  padding: 0 26px max(26px, calc(env(safe-area-inset-bottom) + 22px));
  border-radius: 26px 26px 0 0;
  background: var(--auth-sheet-bg);
  color: var(--auth-sheet-text);
  box-shadow: 0 -18px 60px rgba(0,0,0,.4), 0 0 0 1px rgba(255,255,255,.04);
  text-align: center;
  transform: translateY(105%);
  will-change: transform, opacity;
  transition: transform .6s cubic-bezier(.18,.9,.22,1.02);
}
.auth-success-sheet .auth-sheet-handle span { background: var(--auth-handle); }
.auth-success-overlay.is-visible .auth-success-sheet { transform: translateY(0); }
.auth-success-overlay.is-hiding .auth-success-sheet { transform: translateY(105%); transition-duration: .38s; }
.auth-success-icon-wrap { margin-top: 34px; display: flex; justify-content: center; }
.auth-success-icon {
  width: 104px;
  height: 104px;
  display: grid;
  place-items: center;
  border-radius: 30px;
  background: rgba(255,138,52,.12);
  border: 1.5px solid rgba(255,138,52,.5);
  box-shadow: 0 0 50px 6px rgba(255,138,52,.28);
  transform: scale(.7);
  opacity: 0;
}
.auth-success-overlay.is-visible .auth-success-icon { animation: auth-success-pop .64s cubic-bezier(.17,.89,.27,1.17) .12s forwards; }
.auth-success-icon svg { width: 58px; height: 58px; overflow: visible; }
.auth-success-icon path {
  fill: none;
  stroke: var(--auth-success-tint);
  stroke-width: 5.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 56;
  stroke-dashoffset: 56;
}
.auth-success-overlay.is-visible .auth-success-icon path { animation: auth-check-draw .42s ease .39s forwards; }
.auth-success-sheet h2 {
  margin-top: 20px;
  color: var(--auth-sheet-text);
  font-size: 26px;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -.02em;
}
.auth-success-sheet p {
  max-width: 290px;
  margin: 12px auto 0;
  color: var(--auth-sheet-text-dim);
  font-size: 14px;
  line-height: 1.4;
  font-weight: 500;
}
.auth-done-button {
  width: min(100%, 290px);
  height: 52px;
  margin: 22px auto 0;
  border-radius: 14px;
  background: var(--auth-done-bg);
  color: var(--auth-done-text);
  font-size: 16px;
  font-weight: 600;
  transition: transform .18s cubic-bezier(.22,1,.36,1), filter .18s ease, background-color .22s ease, color .22s ease;
}
.auth-done-button:active { transform: scale(.985); filter: brightness(.92); }

.auth-screen-phone:not([hidden]),
.auth-screen-otp:not([hidden]) { animation: auth-screen-in .38s cubic-bezier(.22,1,.36,1) both; }
@keyframes auth-screen-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes auth-success-pop { 0% { transform: scale(.7); opacity: 0; } 65% { transform: scale(1.07); opacity: 1; } 100% { transform: scale(1); opacity: 1; } }
@keyframes auth-otp-success-pop { 0% { transform: translate(-50%,-50%) scale(.7); opacity: 0; } 65% { transform: translate(-50%,-50%) scale(1.07); opacity: 1; } 100% { transform: translate(-50%,-50%) scale(1); opacity: 1; } }
@keyframes auth-check-draw { to { stroke-dashoffset: 0; } }
@keyframes auth-picker-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
@keyframes auth-error-shake { 25% { transform: translateX(-3px); } 50% { transform: translateX(3px); } 75% { transform: translateX(-2px); } }

@media (max-width: 340px) {
  .auth-phone-title { font-size: 20px; }
  .auth-keypad { gap: 8px; }
  .auth-keypad-btn, .auth-keypad-spacer { height: 48px; }
  .auth-otp-inputs { gap: 6px; }
  .auth-otp-inputs input { min-height: 40px; font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .auth-flow, .auth-app-shell, .auth-flow-backdrop, .auth-screen, .auth-success-sheet, .auth-success-overlay, .auth-success-icon,
  .otp-cell, .otp-cell-trace, .otp-cell-trace rect, .auth-otp-success-icon, .auth-otp-success-icon path { animation: none !important; transition-duration: .01ms !important; }
  .auth-success-icon { opacity: 1; transform: scale(1); }
  .auth-success-icon path { stroke-dashoffset: 0; }
  .auth-otp-success-icon.is-visible { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  .auth-otp-success-icon.is-visible path { stroke-dashoffset: 0; }
}
@media (max-height: 640px) {
  .auth-keypad { gap: 7px; margin-top: 12px; }
  .auth-keypad-btn, .auth-keypad-spacer { height: 44px; }
  .auth-otp-inputs { margin-top: 14px; }
  .auth-terms { margin-top: 10px; }
}

/* ---------------------------------------------------------------
   BRAND SELECTION HIGHLIGHT → برند انتخاب‌شده (کارت خانه یا چیپ اسکرول)
--------------------------------------------------------------- */
.brand-chip-selected { border-color: #c4c7ca; background-color: rgba(196,199,202,0.08); }
.brand-chip-selected [data-slot="mark"] { border-color: #c4c7ca; background-color: rgba(196,199,202,0.1); }
.brand-chip-selected [data-slot="name"] { color: #ded9fb; }

/* ---------------------------------------------------------------
   HOME BRAND CARD → demo "glow card" style
   Card is a single dark tile: soft colored glow behind the logo,
   the logo floating centered as a watermark, a dark gradient
   "shade" pooling at the bottom, and the name/count overlaid as
   text in the bottom-right corner — same markup, restyled only.
--------------------------------------------------------------- */
.home-brand-card {
  position: relative;
  overflow: hidden;
  background: #1d2125;
  border: 1px solid #2c3034;
  border-radius: 20px;
  aspect-ratio: 0.92 / 1;
  min-height: 0;
  padding: 0;
  box-sizing: border-box;
  box-shadow: none;
  color: #e0e3e6;
  transition: transform 0.15s ease;
}
.home-brand-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    radial-gradient(circle at 18% 20%, rgba(170,160,255,0.55) 0%, transparent 40%),
    radial-gradient(circle at 82% 16%, rgba(170,160,255,0.55) 0%, transparent 36%),
    radial-gradient(circle at 14% 80%, rgba(170,160,255,0.55) 0%, transparent 38%),
    radial-gradient(circle at 86% 76%, rgba(170,160,255,0.55) 0%, transparent 42%),
    radial-gradient(circle at 50% 88%, rgba(170,160,255,0.55) 0%, transparent 46%);
}
.home-brand-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.45) 30%, rgba(0,0,0,0.05) 55%, transparent 65%);
}
.home-brand-card:active {
  background: #1d2125;
  transform: scale(0.97);
}
.home-brand-card .brand-logo-box {
  position: absolute;
  z-index: 0;
  left: 50%;
  top: 44%;
  transform: translate(-50%, -50%);
  width: 60%;
  height: 60%;
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-sizing: border-box;
}
.home-brand-card .brand-logo-box img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}
.home-brand-card .brand-card-name {
  position: absolute;
  z-index: 2;
  bottom: 34px;
  right: 14px;
  left: 14px;
  width: auto;
  margin: 0;
  text-align: right;
  font-size: clamp(15px, 4vw, 16px);
  line-height: 1.12;
  font-weight: 800;
  letter-spacing: 0.3px;
  color: #e0e3e6;
  text-shadow: 0 1px 2px rgba(0,0,0,0.9), 0 2px 10px rgba(0,0,0,0.6);
}
.home-brand-card .brand-card-count {
  position: absolute;
  z-index: 2;
  bottom: 12px;
  right: 14px;
  left: 14px;
  width: auto;
  text-align: right;
  font-size: clamp(11px, 3.2vw, 12px);
  line-height: 1.1;
  font-weight: 500;
  color: #c5c8cb;
}
.theme-light .home-brand-card {
  background: #2e3236;
  border-color: #3d4145;
}
.theme-light .home-brand-card .brand-logo-box {
  background: transparent;
}
.brand-chip-selected {
  border-color: #c4c7ca;
}
.brand-chip-selected.home-brand-card {
  background: #1d2125;
  border-color: rgba(196,199,202,.4);
}
.brand-chip-selected.home-brand-card .brand-logo-box {
  background: transparent;
  box-shadow: none;
}
@media (max-width: 380px) {
  .home-brand-card { border-radius: 16px; }
  .home-brand-card .brand-logo-box { width: 56%; height: 56%; }
  .home-brand-card .brand-card-name { bottom: 28px; font-size: 14px; }
  .home-brand-card .brand-card-count { bottom: 10px; font-size: 11px; }
}

/* ================================================================
   HEADER NAVIGATION + HOME-ONLY SEARCH
   HINT: سرچ فقط در هدر صفحه اصلی است؛ صفحات داخلی سرچ هدر ندارند.
   ================================================================ */
.non-home-header-row { display:grid; grid-template-columns: auto minmax(0,1fr) auto; align-items:center; gap:12px; padding:8px 16px 9px; direction:ltr; }
.header-home-row { display:grid; }
/* Internal-page search is restored only on pages that support it.
   Account, sell, vehicle detail, and saved pages keep the compact header. */
.non-home-header-row.internal-search-hidden { grid-template-columns: auto auto; justify-content:space-between; }
.internal-search-hidden .header-search-box { display:none; }

/* Glass treatment for the internal-page toolbar search box
   (.header-search-box) — background/blur/border/shadow clipped to its own
   border-radius:26px shape. */
.header-search-box {
  background: linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,.045) 100%);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1.5px solid rgba(255,255,255,.26);
  box-shadow:
    0 14px 34px rgba(0,0,0,.45),
    0 4px 10px rgba(0,0,0,.35),
    inset 0 1.5px 0 rgba(255,255,255,.55),
    inset 0 -1.5px 0 rgba(0,0,0,.45),
    inset 0 0 0 1px rgba(255,255,255,.04);
}
.theme-light .header-search-box {
  background: linear-gradient(180deg, rgba(255,255,255,.75) 0%, rgba(255,255,255,.35) 100%);
  border-color: rgba(255,255,255,.7);
  box-shadow:
    0 10px 26px rgba(52,56,60,.12),
    inset 0 1.5px 0 rgba(255,255,255,.9),
    inset 0 -1.5px 0 rgba(52,56,60,.10),
    inset 0 0 0 1px rgba(52,56,60,.03);
  color:#626669;
}

/* Rotating "جستجو بر اساس [برند/مدل/سال/شهر]" copy layered over the closed
   header search bar — same word list, cadence and slide/fade transition as
   #searchOverlayRotator inside the opened search overlay. Bar sizing/
   background/border are untouched; this only fills the same spot the
   plain placeholder used to occupy. */
.bar-search-field { position:relative; flex:1; min-width:0; }
.bar-search-field input { width:100%; }
.bar-search-copy { position:absolute; inset:0; display:flex; align-items:center; white-space:nowrap; pointer-events:none; overflow:hidden; font:700 15px 'Vazirmatn',Tahoma,'Segoe UI',sans-serif; line-height:1; }
.bar-search-label { display:inline-flex; align-items:center; height:1.15em; color:#a9acb0; }
.bar-search-rotator { position:relative; display:inline-flex; align-items:center; min-width:34px; height:1.15em; margin-right:4px; overflow:hidden; color:#e0e3e6; font-weight:800; }
.bar-search-rotator .word { position:absolute; inset:0; display:flex; align-items:center; opacity:0; transform:translateY(120%); transition:transform .42s ease, opacity .42s ease; white-space:nowrap; line-height:1; }
.bar-search-rotator .word.active { opacity:1; transform:translateY(0); }
.bar-search-rotator .word.exit { opacity:0; transform:translateY(-120%); }
.header-search-box.has-value .bar-search-copy { opacity:0; visibility:hidden; }
.theme-light .bar-search-label { color:#7a7e82; }
.theme-light .bar-search-rotator { color:#53575b; }

.non-home-header-row { display:none; }
.non-home-active .header-home-row { display:none; }
.non-home-active .non-home-header-row { display:grid; }
/* Selected internal pages intentionally use the exact same top navigation as home. */
.home-nav-active .header-home-row { display:grid; }
.home-nav-active .non-home-header-row { display:none; }
/* HINT: لوگوی شیلد هدر صفحات داخلی | selector: .header-shield-logo */
.header-shield-logo { width:44px; height:56px; flex:0 0 auto; background:#191c20; color:#e0e3e6; clip-path:polygon(8% 0,92% 0,92% 76%,50% 100%,8% 76%); display:flex; align-items:center; justify-content:center; padding-bottom:6px; box-shadow:0 1px 0 rgba(255,255,255,.08); }
.header-shield-logo span { font-family:'Vazirmatn','Playfair Display', Georgia, serif; font-weight:700; font-size:18px; letter-spacing:-0.04em; }

/* Header account icon (top bar, home page): swaps from the generic
   person outline to the logged-in user's profile photo (or, if they
   haven't set one, their initial) once state.account is set — see
   updateHeader() in js/05-small-render-pieces.js. */
.header-account-avatar { width:22px; height:22px; border-radius:9999px; object-fit:cover; display:block; }
.header-account-initial { width:22px; height:22px; border-radius:9999px; background:#e0e3e6; color:#1a1d21; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; line-height:1; }
.theme-light .header-account-initial { background:#34383c; color:#e1e4e7; }
/* HINT: سرچ اصلی صفحات داخلی | selector: .header-search-box */
.header-search-box { min-width:0; height:50px; border-radius:26px; display:flex; align-items:center; gap:10px; padding:0 14px; color:#999c9f; direction:rtl; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.header-search-box:focus-within { border-color:rgba(255,255,255,.4); }
.header-search-icon { flex:0 0 auto; color:#999c9f; opacity:.9; }
.header-search-box input { min-width:0; flex:1; border:0; outline:0; background:transparent; color:#e0e3e6; font:700 15px 'Vazirmatn',Tahoma,'Segoe UI',sans-serif; text-align:right; }
.header-search-box input::placeholder { color:#a9acb0; opacity:1; }
.header-search-box input::-webkit-search-cancel-button { display:none; }
.header-search-box input { pointer-events:none; }
.header-search-clear { width:30px; height:30px; display:flex; align-items:center; justify-content:center; color:#999c9f; flex:0 0 auto; border:0; background:transparent; padding:0; }
.header-menu-button { width:40px; height:44px; display:flex; align-items:center; justify-content:center; }

/* Listings page: the shared #siteHeader row is fully replaced by the
   explore-style header rendered as that page's .page-header-sticky
   (see tpl-listings in index.html + updateHeader() in
   05-small-render-pieces.js), so hide it completely there. */
#siteHeader.listings-header-hidden { display:none; }

/* ================================================================
   EXPLORE-STYLE HEADER (listings page only)
   ================================================================ */
.explore-header { display:flex; align-items:center; justify-content:space-between; padding:14px 16px 10px; direction:rtl; }
.explore-icon-btn { width:38px; height:38px; border-radius:9999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; color:#e0e3e6; flex:0 0 auto; -webkit-tap-highlight-color:transparent; }
.explore-icon-btn:active { opacity:.75; }
.explore-brand { flex:1 1 auto; min-width:0; display:flex; align-items:center; justify-content:center; padding:0 10px; }
.explore-brand-logo { display:block; width:clamp(92px, 12.8vw, 121px); max-height:34px; height:auto; object-fit:contain; }
.theme-light .explore-icon-btn { background:rgba(0,0,0,.06); border-color:rgba(0,0,0,.08); color:#34383c; }


/* GLASS/SMOKY HEADER — listings page only. Scoped with body:has() (same
   pattern as the vehicle-detail body:has() rule below) rather than the
   bare .explore-header/.toolbox-shell classes, because those classes are
   also reused by other pages (sell-step, brand-models) and we only want
   the frosted look on the car-listings header.

   FIX: originally each chrome child (header row + toolbar row) got its
   OWN background+backdrop-filter. Two adjacent elements each blurring
   their own slice of the page behind them don't necessarily sample/tint
   identically (different content behind each), plus the header's own
   border-bottom, together read as a visible seam and a color mismatch
   between the two rows. Moved the glass fill + blur up to the shared
   #stickyHeaderGroup wrapper instead (it already contains both rows, see
   markup), so header and toolbar sit on one single continuous glass
   panel with no internal seam — and dropped the two children's own
   backgrounds/border so they no longer paint over that shared panel. */
body:has([data-page="listings"]) #stickyHeaderGroup {
  background: rgba(22,25,29,.72);
  backdrop-filter: blur(20px) saturate(150%) brightness(0.78);
  -webkit-backdrop-filter: blur(20px) saturate(150%) brightness(0.78);
  --chrome-fade-bg: rgba(22,25,29,.72);
}
body:has([data-page="listings"]) .page-header-sticky.explore-header,
body:has([data-page="listings"]) .toolbar-sticky.toolbox-shell {
  background: transparent;
}
body:has([data-page="listings"]) .page-header-sticky.explore-header .explore-icon-btn {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.12);
}
.theme-light body:has([data-page="listings"]) #stickyHeaderGroup {
  background: rgba(255, 255, 255, .55);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  --chrome-fade-bg: rgba(255, 255, 255, .55);
}
.theme-light body:has([data-page="listings"]) .page-header-sticky.explore-header .explore-icon-btn {
  background: rgba(0,0,0,.06);
  border-color: rgba(0,0,0,.08);
}
/* Listings page: drop the shared #stickyHeaderGroup::after fade strip.
   That strip mirrors --chrome-fade-bg, which on this page is the
   translucent glass tint (rgba(40,44,48,.55)) rather than a solid color —
   so instead of blending away it renders as its own thin glassy bar
   right under the filter chips (visible seam under toolbox-shell). The
   glass panel background already ends cleanly at the toolbar's bottom
   edge here, so the fade strip isn't needed on this page. */
body:has([data-page="listings"]) #stickyHeaderGroup::after {
  display: none;
}

/* ================================================================
   EXPLORE-STYLE LISTING CARDS (listings page only)
   ================================================================ */
.explore-list { display:flex; flex-direction:column; gap:18px; padding:6px 14px 28px; overscroll-behavior-y: contain; }


/* Top refresh zone for the listings feed. It is a compositor-friendly overlay
   above the first card, so revealing the indicator never changes document layout.
   While the user is actively dragging, no transition is applied (JS drives the
   position 1:1 with the finger every frame). Once the gesture ends, `.is-animating`
   switches on eased transitions so every subsequent state change — settle, spin,
   success, exit — glides instead of snapping. */
.listings-top-refresh-zone {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 56px;
  box-sizing: border-box;
  overflow: visible;
  padding: 4px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  text-align: center;
  opacity: 1;
  pointer-events: none;
  z-index: 5;
  will-change: transform, opacity;
  transform: translate3d(0,0,0) scale(1);
}
.listings-top-refresh-zone.is-animating {
  transition: opacity 280ms cubic-bezier(.22,1,.36,1), transform 280ms cubic-bezier(.22,1,.36,1);
}

/* Spinner + success check are cross-faded/scaled into the same slot rather
   than the indicator being replaced outright, so "loading" resolving into
   "done" reads as one continuous motion instead of a hard cut. */
/* PERF: the spinner's infinite animation used to run for as long as the
   listings page was open, even while the indicator was fully hidden. The
   JS adds .is-idle only once it is completely out of sight. */
.listings-top-refresh-zone.is-idle .listings-refresh-spinner { animation-play-state: paused; }
.listings-refresh-glyph {
  position: relative;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
}
.listings-refresh-spinner {
  position: absolute;
  inset: 0;
  /* One bright arc against a barely-there track (rather than two similar
     lavender tones on adjacent sides) so the rotation itself is the thing
     that's visible, not just a static two-tone ring. */
  border: 3px solid rgba(255,255,255,.10);
  border-top-color: #e0e3e6;
  border-radius: 9999px;
  animation: listings-refresh-spin .55s linear infinite;
  opacity: 1;
  transform: rotate(0deg);
  transition: opacity 140ms ease;
  will-change: transform;
  transform-origin: center center;
  backface-visibility: hidden;
}
.listings-refresh-check {
  position: absolute;
  inset: 0;
  border-radius: 9999px;
  background: rgba(201,200,255,.14);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: scale(.4);
  transition: opacity 240ms ease, transform 240ms cubic-bezier(.34,1.56,.64,1);
}
.listings-refresh-check svg {
  width: 15px;
  height: 15px;
  stroke: #e0e3e6;
}
.listings-refresh-check svg path {
  stroke-dasharray: 16;
  stroke-dashoffset: 16;
  transition: stroke-dashoffset 260ms ease 60ms;
}
.listings-top-refresh-zone.is-success .listings-refresh-spinner {
  opacity: 0;
}
.listings-top-refresh-zone.is-success .listings-refresh-check {
  opacity: 1;
  transform: scale(1);
}
.listings-top-refresh-zone.is-success .listings-refresh-check svg path {
  stroke-dashoffset: 0;
}
.listings-refresh-label {
  color: #6f7377;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.5;
  opacity: .72;
  transition: opacity 200ms ease;
}
@keyframes listings-refresh-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.theme-light .listings-refresh-spinner {
  border-color: rgba(0,0,0,.10);
  border-top-color: #34383c;
}
.theme-light .listings-refresh-check { background: rgba(52,56,60,.06); }
.theme-light .listings-refresh-check svg { stroke: #34383c; }
.theme-light .listings-refresh-label { color:#7a7e82; }

[data-slot="refreshTop"] {
  position: relative;
  width: 100%;
  height: 56px;
  margin: -56px 0 0;
  padding: 0;
  overflow: visible;
  pointer-events: none;
  z-index: 20;
  transition: margin-top 280ms cubic-bezier(.22,1,.36,1);
}
[data-slot="refreshTop"].is-visible {
  margin-top: 0;
}

/* HINT: کارت آگهی خودرو در صفحه لیست → کارت اصلی | selector: .xcard
   Light "product card" style: photo inset in its own rounded box with a
   small, even margin to the card edge, title, badge pills on their own
   row directly under the title (equal gap above/below via the body's
   flex gap), a secondary spec line, then a bold accent-colored price.
   Every card is the same fixed height regardless of how much of that
   it actually needs, so the grid stays perfectly even. */
.xcard {
  position:relative; display:flex; flex-direction:row-reverse; align-items:center;
  box-sizing:border-box;
  gap:10px;
  padding:8px;
  background:linear-gradient(155deg,#292d31 0%,#212529 62%,#202327 100%);
  border-radius:22px; border:1px solid rgba(255,255,255,.06);
  box-shadow:0 8px 20px rgba(0,0,0,.32);
  overflow:hidden;
  cursor:pointer; transition:transform .18s cubic-bezier(.22,1,.36,1), box-shadow .18s ease, border-color .18s ease;
  /* Fixed (not min-) height so every card in the grid lines up exactly —
     tall enough for the worst case (2-line title + all 3 badge pills +
     2-line price); shorter content just centers within it (see
     .xcard-body's justify-content:center below). */
  height:176px;
  content-visibility: auto;
  contain-intrinsic-size: 0 176px;
}
.xcard:active { transform:scale(.978); }
@media (hover:hover) {
  .xcard:hover { border-color:rgba(255,255,255,.16); box-shadow:0 14px 30px rgba(0,0,0,.42); transform:translateY(-2px); }
}

.xcard-media {
  position:relative;
  flex:0 0 152px;
  width:152px;
  min-width:152px;
  max-width:152px;
  height:152px;
  overflow:hidden;
  border-radius:16px;
  background:#1e2125;
  box-sizing:border-box;
  isolation:isolate;
}

/* FIX: was `position:relative; width:100%; height:100%`. A percentage
   height only resolves once its ancestor (.xcard-media) already has a
   definite height — but .xcard-media itself gets its height from flex
   `align-items:stretch` matching its sibling (.xcard-body), which is a
   circular dependency the first time the browser measures the row. For
   a normal landscape car photo that's invisible, but a tall portrait
   photo (e.g. a phone screenshot uploaded by mistake) made the browser's
   measuring pass fall back to the image's own intrinsic aspect ratio,
   inflating .xcard-media's (and so the whole card's) height far past
   every other card. Making this layer `position:absolute; inset:0`
   takes it out of that measurement entirely — it just fills whatever
   box .xcard-media ends up with, so every card's photo box is exactly
   the same fixed size no matter what aspect ratio the uploaded photo is.
*/
.xcard-photo-foreground {
  position:absolute;
  inset:0;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.xcard-photo-foreground img,
.xcard-photo-foreground svg {
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  /* `cover` so every photo — whatever its original aspect ratio —
     fills the exact same fixed-size frame (.xcard-media) edge to
     edge, with no letterbox gap and so no blurred filler layer
     needed behind it, and no border/halo around the photo. */
  object-fit:cover !important;
  object-position:center center !important;
  box-sizing:border-box;
  margin:0;
  padding:0;
  transform:none !important;
  transition:none !important;
}
@media (max-width:430px) {
  .xcard { height:166px; contain-intrinsic-size: 0 166px; }
  .xcard-media {
    flex-basis:140px;
    width:140px;
    min-width:140px;
    max-width:140px;
    height:140px;
  }
}


/* Plain text badge for promoted listings — translucent grey pill, white
   text, no icon. Quiet and legible over any photo. */
.xcard-promo-badge { position:absolute; top:7px; inset-inline-start:7px; z-index:2; background:rgba(32,35,39,.62); backdrop-filter:blur(6px); color:#e9ecef; font-size:9.5px; font-weight:700; padding:3px 8px; border-radius:999px; line-height:1; }
/* Soft, tinted pills — matching the "In Stock: 40" style badge in the
   reference card — instead of small fixed-size squares. They sit in
   their own row (.xcard-title-row) next to the title and wrap onto a
   second line together if a listing has more than one. */
.xcard-year-badge,
.xcard-hybrid-badge,
.xcard-trim-badge {
  flex:0 0 auto;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:3px 9px;
  border-radius:999px;
  font-weight:800;
  font-size:10px;
  line-height:1.3;
  white-space:nowrap;
}
.xcard-year-badge { background:rgba(202,254,110,.14); color:#CAFE6E; }
.xcard-hybrid-badge { background:rgba(37,99,235,.18); color:#60a5fa; letter-spacing:-0.1px; }
.xcard-trim-badge { letter-spacing:-0.1px; }

.xcard-body { flex:1; min-width:0; height:100%; padding:2px 0; display:flex; flex-direction:column; justify-content:center; gap:5px; overflow:hidden; }

.xcard-row-top { display:flex; align-items:center; justify-content:flex-start; gap:8px; }
.xcard-brand { display:flex; align-items:center; gap:6px; min-width:0; overflow:hidden; color:#999c9f; font-size:11px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.xcard-brand-avatar { width:16px; height:16px; border-radius:9999px; background:#e9ecef; display:flex; align-items:center; justify-content:center; overflow:hidden; flex-shrink:0; padding:1.5px; border:1px solid rgba(255,255,255,.10); }
.xcard-brand-avatar img { width:100%; height:100%; object-fit:contain; }

.xcard-title { color:#e0e3e6; font-size:15px; font-weight:800; line-height:1.32; min-width:0; }
.xcard-title-text { min-width:0; white-space:normal; overflow-wrap:break-word; word-break:break-word; }
/* Badge pills sit on their own row directly under the title. Because
   .xcard-body lays every row out with the same flex `gap` (5px), the
   space above this row (from the title) and below it (to the spec
   line) is automatically identical — no extra margin needed. */
.xcard-badge-stack { display:flex; align-items:center; gap:4px; flex-wrap:nowrap; justify-content:flex-start; min-width:0; max-width:100%; overflow:hidden; }
.xcard-badge-stack > .xpatch { flex:0 1 auto; width:auto; min-width:0; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.xcard-row-mid { display:flex; align-items:center; justify-content:flex-start; gap:8px; }
.xcard-spec { display:flex; align-items:center; gap:4px; min-width:0; overflow:hidden; color:#94989b; font-size:11px; font-weight:700; white-space:nowrap; text-overflow:ellipsis; }

.xcard-row-bottom { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-top:3px; }

/* Price is capped to a share of the row and always allowed to shrink +
   truncate (min-width:0) instead of overflowing past the card edge.
   Amount and unit are two separate lines so a "میلیون تومان" suffix
   never forces the number itself to run wide — the box only ever
   needs to fit the shorter of the two. */
.xcard-price { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:1px; min-width:0; max-width:100%; overflow:hidden; }
.xcard-price-amount { color:#c4b5fd; font-size:16px; font-weight:800; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.xcard-price-unit { color:#85888c; font-size:9.5px; font-weight:700; line-height:1; letter-spacing:.1px; white-space:nowrap; }

.xcard-ribbon { display:flex; align-items:center; gap:4px; min-width:0; max-width:100%; overflow:hidden; color:#c4c7ca; font-size:10.5px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }

.theme-light .xcard { background:#e9ecef; border-color:#dbdfe2; box-shadow:0 6px 18px rgba(45,49,53,.09); }
.theme-light .xcard-title { color:#34383c; }
.theme-light .xcard-brand { color:#8e9195; }
.theme-light .xcard-spec { color:#8e9195; }
.theme-light .xcard-price-amount { color:#6d28d9; }
.theme-light .xcard-price-unit { color:#a0a3a7; }

/* Explore-style skeleton card (loading state) mirrors the .xcard shape. */
.explore-list .xcard.is-skeleton { cursor:default; box-shadow:none; }


/* HINT: تولباکس فیلتر صفحات داخلی → ردیف فیلترها | selector: .toolbox-filter-row */
.toolbox-shell { padding:8px 0 8px; position:relative; }
.toolbox-filter-row { display:flex; align-items:center; gap:10px; padding:0 14px 3px; min-width:0; direction:rtl; }
/* HINT: دکمه اصلی فیلتر | selector: .toolbox-filter-main */
.toolbox-filter-main { min-width:150px; height:54px; padding:0 15px; border-radius:28px; background:rgba(255,255,255,.10); backdrop-filter:blur(14px) saturate(160%); -webkit-backdrop-filter:blur(14px) saturate(160%); color:#e0e3e6; display:flex; align-items:center; justify-content:center; gap:9px; border:1px solid rgba(255,255,255,.16); white-space:nowrap; }
.toolbox-filter-main:active { transform:scale(.99); }
.toolbox-filter-icon { display:flex; align-items:center; justify-content:center; }
.toolbox-filter-count { min-width:28px; height:28px; padding:0 8px; border:1px solid #55595c; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; font-size:13px; line-height:1; }
/* HINT: اسکرول افقی فیلترهای انتخاب‌شده | selector: .toolbox-filter-chips */
.toolbox-filter-chips { display:flex; align-items:center; gap:10px; min-width:0; overflow-x:auto; scrollbar-width:none; overscroll-behavior-x:contain; padding:1px 2px 3px; flex:1; }
.toolbox-filter-chips::-webkit-scrollbar { display:none; }
.toolbox-chip-wrap { display:flex; flex:0 0 auto; }
.toolbox-chip { height:50px; border-radius:26px; padding:0 20px; border:1.2px solid #44484c; background:transparent; color:#e0e3e6; white-space:nowrap; font-size:14px; font-weight:700; }
.toolbox-chip:active { opacity:.72; }
.toolbox-chip-muted { color:#999c9f; border-color:#363a3e; }
/* HINT: باکس گزینه‌های هر حباب فیلتر، بر اساس عرض متن خودش (نه عرض حباب) و بدون افتادن از صفحه بیرون */
.toolbox-chip-dropdown-layer { position:absolute; left:0; right:0; top:0; height:0; overflow:visible; pointer-events:none; z-index:32; }
.toolbox-chip-dropdown { position:absolute; display:flex; flex-direction:column; align-items:flex-start; gap:2px; background:#1d2024; border:1px solid #2f3337; border-radius:18px; padding:6px; max-height:280px; max-width:min(78vw,320px); overflow-y:auto; overflow-x:hidden; pointer-events:auto; box-shadow:0 16px 32px rgba(0,0,0,.6); }
.toolbox-chip-option { width:auto; max-width:100%; text-align:right; padding:11px 14px; border-radius:12px; border:0; background:transparent; color:#c5c8cb; font-size:13.5px; white-space:normal; }
.toolbox-chip-option:active { background:#282c30; }
.toolbox-chip-option.is-active { background:#d3d6d9; color:#22262a; font-weight:800; }
/* HINT: پنل فیلتر بازشونده تولباکس | selector: .toolbox-filter-panel */
.toolbox-filter-panel { margin-top:8px; padding:4px 14px 2px; border-top:1px solid #2e3236; max-height:52vh; overflow-y:auto; }
.toolbox-filter-group { border-bottom:1px solid #2e3236; }
.toolbox-filter-group-head { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:46px; text-align:right; color:#d2d5d8; font-size:13px; }
.toolbox-filter-options { display:flex; flex-wrap:wrap; gap:8px; padding:0 0 11px; }
.toolbox-option { padding:8px 12px; border-radius:999px; border:1px solid #44484c; color:#c5c8cb; background:transparent; font-size:12.5px; }
.toolbox-option.is-active { background:#d3d6d9; border-color:#d3d6d9; color:#22262a; font-weight:800; }
.theme-light .toolbox-chip-dropdown { background:#e9ecef; border-color:#d4d7da; box-shadow:0 16px 32px rgba(0,0,0,.18); }
.theme-light .toolbox-chip-option { color:#53575b; }
.theme-light .toolbox-chip-option:active { background:#e0e4e7; }
.theme-light .toolbox-chip-option.is-active { color:#34383c; }


.theme-light .header-search-icon { color:#7a7e82; }
.theme-light .header-search-box input { color:#34383c; }
.theme-light .header-search-box input::placeholder { color:#7a7e82; }
.theme-light .toolbox-filter-main { background:rgba(0,0,0,.06); backdrop-filter:blur(14px) saturate(160%); -webkit-backdrop-filter:blur(14px) saturate(160%); border-color:rgba(0,0,0,.10); color:#34383c; }
.theme-light .toolbox-chip { color:#34383c; border-color:#a0a3a7; }
.theme-light .toolbox-chip-muted { color:#7a7e82; border-color:#c8cbce; }

@media (min-width:700px) {
  .non-home-header-row { padding-left:22px; padding-right:22px; }
  .toolbox-filter-row { padding-left:22px; padding-right:22px; }
  .toolbox-filter-main { min-width:160px; }
}

/* ================================================================
   TOOLBOX FILTER SIZING — MATCH REFERENCE IMAGE
   HINT: ابعاد دقیق کنترل‌های فیلتر صفحات داخلی | non-home only
   ================================================================ */
.toolbox-shell { padding: 10px 0 12px; }
.toolbox-filter-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 31px 3px;
  min-width: 0;
  direction: rtl;
  overflow: hidden;
}
.toolbox-filter-main {
  flex: 0 0 222px;
  width: 222px;
  min-width: 222px;
  height: 66px;
  padding: 0 14px;
  border-radius: 34px;
  gap: 10px;
}
.toolbox-filter-count {
  min-width: 28px;
  width: 28px;
  height: 28px;
  padding: 0;
  font-size: 14px;
}
.toolbox-filter-chips {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  padding: 0;
  flex: 1 1 auto;
}
.toolbox-filter-chips::-webkit-scrollbar { display: none; }
.toolbox-chip {
  flex: 0 0 auto;
  height: 66px;
  min-height: 66px;
  border-radius: 34px;
  padding: 0 28px;
  border: 1.25px solid #44484c;
  background: transparent;
  color: #e0e3e6;
  white-space: nowrap;
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}
.toolbox-chip-arrow { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.toolbox-chip-disabled { opacity: .5; }
.toolbox-chip-muted { color: #999c9f; border-color: #363a3e; }
.toolbox-filter-panel {
  margin-top: 10px;
  padding: 4px 31px 2px;
  border-top: 1px solid #2e3236;
  max-height: 52vh;
  overflow-y: auto;
}
.toolbox-filter-group-head { min-height: 54px; font-size: 14px; }
.toolbox-filter-options { gap: 8px; padding: 0 0 12px; }
.toolbox-option { padding: 9px 14px; font-size: 13px; }
.toolbox-filter-empty { padding: 8px 0 12px; color: #6f7377; font-size: 13px; }

@media (max-width: 699px) {
  .toolbox-filter-row { padding-left: 16px; padding-right: 16px; gap: 10px; }
  .toolbox-filter-main { flex-basis: 178px; width: 178px; min-width: 178px; height: 58px; border-radius: 30px; }
  .toolbox-chip { height: 58px; min-height: 58px; border-radius: 30px; font-size: 15px; padding: 0 20px; gap: 10px; }
  .toolbox-filter-panel { padding-left: 16px; padding-right: 16px; }
}

/* ================================================================
   TOOLBOX COMPACT SIZING — 3 BUBBLES VISIBLE
   HINT: اندازه فشرده حباب‌های فیلتر صفحات داخلی، بدون تغییر Home
   ================================================================ */
@media (min-width: 700px) {
  .toolbox-filter-row {
    padding-left: 16px;
    padding-right: 16px;
    gap: 8px;
  }
  .toolbox-filter-main {
    flex: 0 0 128px;
    width: 128px;
    min-width: 128px;
    height: 48px;
    border-radius: 24px;
    padding: 0 10px;
    gap: 7px;
    font-size: 14px;
  }
  .toolbox-filter-count {
    min-width: 24px;
    width: 24px;
    height: 24px;
    font-size: 12px;
  }
  .toolbox-filter-chips {
    gap: 8px;
  }
  .toolbox-chip {
    height: 48px;
    min-height: 48px;
    border-radius: 24px;
    padding: 0 14px;
    font-size: 14px;
    gap: 8px;
  }
}

@media (max-width: 699px) {
  .toolbox-shell { padding-top: 7px; padding-bottom: 8px; }
  .toolbox-filter-row {
    padding-left: 12px;
    padding-right: 12px;
    gap: 7px;
  }
  .toolbox-filter-main {
    flex: 0 0 104px;
    width: 104px;
    min-width: 104px;
    height: 44px;
    border-radius: 22px;
    padding: 0 8px;
    gap: 6px;
    font-size: 12.5px;
  }
  .toolbox-filter-icon svg { width: 18px; height: 18px; }
  .toolbox-filter-count {
    min-width: 22px;
    width: 22px;
    height: 22px;
    font-size: 11px;
  }
  .toolbox-filter-chips { gap: 7px; }
  .toolbox-chip {
    height: 44px;
    min-height: 44px;
    border-radius: 22px;
    padding: 0 12px;
    font-size: 12.5px;
    gap: 6px;
  }
}

/* =========================================================================
   HINT: سرچ تمام‌صفحه (Search Overlay) → با کلیک روی سرچ‌باکس هدر باز می‌شود
   مکانیزم: پلیس‌هولدر چرخان (برند/مدل/سال/شهر)، حالت لودینگ اسکلتون،
   و ردیف افقی خودکارِ خودروها که بر اساس بازدید مرتب شده‌اند.
   selector: .search-overlay
   ========================================================================= */
.search-overlay { position:fixed; inset:0; z-index:80; }
/* HINT: بلور کردن محتوای پشت Overlay سرچ (خود صفحه زیرش) | selector: .search-overlay-backdrop */
.search-overlay-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(22px) saturate(1.1); -webkit-backdrop-filter:blur(22px) saturate(1.1); }
.search-overlay-panel { position:relative; z-index:1; height:100%; display:flex; flex-direction:column; background:transparent; overflow-y:auto; -webkit-overflow-scrolling:touch; }

/* HINT: قفل اسکرول پس‌زمینه هنگام باز بودن Overlay سرچ | selector: html.search-overlay-active */
html.search-overlay-active,
html.search-overlay-active body { overflow:hidden !important; overscroll-behavior:none !important; }
body.search-overlay-active { touch-action:none; }

/* HINT: انیمیشن ورود/خروج Overlay سرچ | selector: .search-overlay.is-open */
.search-overlay.is-open .search-overlay-backdrop { animation:menu-backdrop-enter .28s ease both; }
.search-overlay:not(.is-open) .search-overlay-backdrop { animation:menu-backdrop-exit .32s cubic-bezier(.4,0,.2,1) both; }
.search-overlay.is-open .search-overlay-panel { animation:search-overlay-panel-enter .32s cubic-bezier(.22,1,.36,1) both; }
.search-overlay:not(.is-open) .search-overlay-panel { animation:search-overlay-panel-exit .3s cubic-bezier(.4,0,.2,1) both; }
@keyframes search-overlay-panel-enter { from { opacity:0; transform:translateY(14px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes search-overlay-panel-exit { from { opacity:1; transform:translateY(0) scale(1); } to { opacity:0; transform:translateY(10px) scale(.98); } }

.search-overlay-shell { position:relative; flex:0 0 auto; margin:max(18px, calc(env(safe-area-inset-top) + 14px)) 16px 0; height:58px; border-radius:12px; background:#d2d5d8; display:flex; align-items:center; padding:0 18px 0 58px; box-shadow:0 4px 16px rgba(0,0,0,.25); direction:rtl; }
.search-overlay-copy { position:absolute; right:18px; left:58px; top:50%; transform:translateY(-50%); display:flex; align-items:center; white-space:nowrap; pointer-events:none; font-size:18px; line-height:1; letter-spacing:-.01em; z-index:2; overflow:hidden; }
.search-overlay-label { color:#2f3337; font-weight:600; }
.search-overlay-rotator { position:relative; display:inline-block; min-width:40px; height:1.15em; margin-right:3px; overflow:hidden; color:#707478; font-weight:700; }
.search-overlay-rotator .word { position:absolute; inset:0 0 auto auto; opacity:0; transform:translateY(120%); transition:transform .42s ease, opacity .42s ease; }
.search-overlay-rotator .word.active { opacity:1; transform:translateY(0); }
.search-overlay-rotator .word.exit { opacity:0; transform:translateY(-120%); }

.search-overlay-input { position:relative; z-index:1; width:100%; height:100%; border:0; outline:0; padding:0; background:transparent; color:#1d2125; font-size:18px; font-weight:700; text-align:right; font-family:'Vazirmatn',Tahoma,'Segoe UI',sans-serif; }
.search-overlay-input::-webkit-search-cancel-button { display:none; }
.search-overlay-shell.has-value .search-overlay-copy { opacity:0; visibility:hidden; }

.search-overlay-clear { position:absolute; z-index:3; top:50%; left:14px; transform:translateY(-50%); width:32px; height:32px; border:1.5px solid #999c9f; border-radius:50%; background:transparent; color:#22262a; display:flex; align-items:center; justify-content:center; font-size:19px; line-height:1; cursor:pointer; }
.search-overlay-clear span { transform:translateY(-1px); }

/* HINT: حالت لودینگ اسکلتون سرچ (چیپ‌های ابزار + کارت‌های دو ستونه) | selector: .search-overlay-loading */
.search-overlay-loading { display:none; margin:22px 16px 0; flex:0 0 auto; }
.search-overlay-loading.is-visible { display:block; }
.search-overlay-toolbar-sk { display:flex; gap:8px; overflow:hidden; margin-bottom:14px; }
.search-overlay-toolbar-sk span { flex:0 0 68px; height:28px; }
.search-overlay-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; }
.search-overlay-sk-card { min-width:0; }
.search-overlay-sk-image { width:100%; aspect-ratio:3/2; }
.search-overlay-sk-title { width:80%; height:14px; margin-top:8px; }
.search-overlay-sk-meta { display:flex; gap:8px; margin-top:8px; }
.search-overlay-sk-meta span { display:block; width:36px; height:9px; }
.search-overlay-sk-line { width:60%; height:12px; margin-top:8px; }
.search-overlay-sk-button { width:100%; height:30px; margin-top:10px; }

/* HINT: ردیف افقی خودکار خودروها (مرتب بر اساس بازدید) | selector: .search-overlay-rail */
.search-overlay-results { margin-top:18px; padding-bottom:24px; flex:1 1 auto; }
.search-overlay-results.is-hidden { display:none; }
.search-overlay-rail { display:flex; gap:8px; overflow-x:auto; padding:0 16px 6px; scrollbar-width:none; scroll-behavior:smooth; touch-action:pan-x; -webkit-overflow-scrolling:touch; }
.search-overlay-rail::-webkit-scrollbar { display:none; }
.search-overlay-rail .card-fade-in { flex:0 0 168px; min-width:168px; background-color:transparent; border-color:transparent; box-shadow:none; }
.search-overlay-rail [data-action="toggleLike"] { display:none; }
.search-overlay-empty { flex:1 1 auto; width:100%; color:#999c9f; font-size:13.5px; padding:72px 24px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:8px; }
.search-overlay-empty-title { color:#e5e8eb; font-size:19px; font-weight:800; }
.search-overlay-empty-sub { color:#999c9f; font-size:14px; font-weight:500; }
.theme-light .search-overlay-empty-title { color:#34383c; }

.theme-light .search-overlay-shell { background:#e0e4e7; box-shadow:0 4px 16px rgba(0,0,0,.08); }
.theme-light .search-overlay-input { color:#34383c; }
.theme-light .search-overlay-label { color:#53575b; }
.theme-light .search-overlay-backdrop { background:rgba(255,255,255,.6); }
.theme-light .search-overlay-rail .card-fade-in { background-color:transparent; border-color:transparent; }

@media (max-width:380px) {
  .search-overlay-rail .card-fade-in { flex-basis:150px; min-width:150px; }
}

/* Internal-page header keeps its original 3-column search layout. */
.non-home-header-row { grid-template-columns: auto minmax(0,1fr) auto; }
.non-home-header-row.internal-search-hidden { grid-template-columns: auto auto; }

/* HOME SPACING: reduce the empty strip between the home search bar and brand cards. */
#pageContent:has([data-page="home"]) [data-slot="brands"] { padding-top: 8px; }

/* ---------------------------------------------------------------
   LONG-PRESS "PEEK" PREVIEW for two-column listing grids.
   Hold a card: the rest of the screen blurs, the held card stays
   sharp, and its row-mate's exact spot turns into a plain,
   unboxed list of that vehicle's specs (no card/box chrome).
--------------------------------------------------------------- */
.peek-pressing { transform: scale(0.965); }
.peek-blur-sibling {
  filter: blur(7px);
  opacity: .4;
  transition: filter .25s ease, opacity .25s ease;
  pointer-events: none;
}
.peek-active-card {
  position: relative;
  z-index: 1000;
  transform: scale(1.05);
  box-shadow: 0 20px 46px rgba(0,0,0,.6);
  transition: transform .22s cubic-bezier(.2,.9,.25,1), box-shadow .25s ease;
}
.peek-taken-over { opacity: 0; transition: opacity .2s ease; pointer-events: none; }

/* felt "resistance" for a beat when the user starts scrolling mid-peek,
   just before it lets go and closes */
.peek-active-card.peek-resisting { transition: transform .22s cubic-bezier(.3,.7,.4,1); transform: scale(1.02); }
#peekInfoPanel.peek-resisting { transition: transform .22s cubic-bezier(.3,.7,.4,1), opacity .22s ease; transform: scale(0.97); }

body.is-peeking { overscroll-behavior: none; }
#peekScrim { touch-action: none; }

#peekScrim { position: fixed; inset: 0; z-index: 999; pointer-events: none; background: transparent; }
body.is-peeking #peekScrim { pointer-events: auto; }

#peekInfoPanel {
  position: fixed; z-index: 1001; overflow: hidden;
  opacity: 0; transform: scale(.92); transform-origin: center;
  transition: transform .28s cubic-bezier(.2,.9,.25,1), opacity .2s ease;
  pointer-events: none; display: flex; flex-direction: column;
  padding: 2px 4px; color: #e0e3e6;
}
#peekInfoPanel.show { opacity: 1; transform: scale(1); pointer-events: auto; }
#peekInfoPanel .peek-name { font-size: 11.5px; font-weight: 800; line-height: 1.3; margin-bottom: 6px; }
#peekInfoPanel .peek-row { display: flex; align-items: baseline; justify-content: space-between; padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
#peekInfoPanel .peek-row:last-of-type { border-bottom: 0; }
#peekInfoPanel .peek-label { font-size: 9.5px; color: #9a9da0; }
#peekInfoPanel .peek-value { font-size: 10.5px; font-weight: 800; }
#peekInfoPanel .peek-value.peek-price { color: #e0e3e6; font-size: 12px; }
#peekInfoPanel .peek-cta { margin-top: auto; padding-top: 8px; font-size: 10.5px; font-weight: 800; color: #e0e3e6; background: none; border: 0; text-align: right; cursor: pointer; }

.theme-light #peekInfoPanel { color: #34383c; }
.theme-light #peekInfoPanel .peek-row { border-bottom-color: rgba(0,0,0,.08); }
.theme-light #peekInfoPanel .peek-label { color: #626669; }

/* ---------------------------------------------------------------
   FULL-SCREEN FILTERS OVERLAY
--------------------------------------------------------------- */
.filter-overlay { position: fixed; inset: 0; z-index: 80; }
.filter-overlay-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.6); opacity: 0; transition: opacity .3s ease; }
.filter-overlay.is-open .filter-overlay-backdrop { opacity: 1; }

/* Bottom sheet: only transform animates (GPU-only), no blur behind it. */
.filter-overlay-panel {
  position: absolute; left: 0; right: 0; bottom: 0;
  max-height: min(88vh, 760px); max-height: min(88dvh, 760px);
  display: flex; flex-direction: column;
  background: #14171a; color: #e9ecef;
  border: 1px solid #2c3034; border-bottom: 0; border-radius: 28px 28px 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,.35);
  transform: translate3d(0, 100%, 0);
  transition: transform .34s cubic-bezier(.22,1,.36,1);
  will-change: transform; backface-visibility: hidden;
}
.filter-overlay.is-open .filter-overlay-panel { transform: translate3d(0, 0, 0); }

.filter-overlay-drag { flex: 0 0 auto; display: flex; justify-content: center; padding: 10px 0 6px; touch-action: none; }
.filter-overlay-drag span { width: 38px; height: 4px; border-radius: 999px; background: #44484c; }

.filter-overlay-header {
  flex: 0 0 auto; display: flex; align-items: center; gap: 12px;
  padding: 6px 20px 14px; border-bottom: 1px solid #23272b; touch-action: none;
}
.filter-overlay-title { margin: 0; font-family: inherit; font-weight: 800; font-size: 17px; color: #e9ecef; }
.filter-overlay-reset { font-size: 12.5px; font-weight: 600; color: #888b8f; background: none; border: 0; padding: 6px 2px; -webkit-tap-highlight-color: transparent; }
.filter-overlay-reset:active { opacity: .6; }
.filter-overlay-icon-btn {
  margin-right: auto; flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: #23272b; color: #c5c8cb; border: 1px solid #2c3034;
  -webkit-tap-highlight-color: transparent;
}
.filter-overlay-icon-btn:active { opacity: .75; }

.filter-overlay-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 2px 20px 14px; }
.filter-section { padding: 18px 0 2px; }

.filter-section-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; min-height: 22px; }
.filter-section-title-text { font-weight: 700; font-size: 13.5px; color: #e9ecef; }
.filter-section-value { font-size: 12.5px; font-weight: 600; color: #c5c8cb; direction: ltr; unicode-bidi: isolate; }
.filter-section-clear {
  display: flex; align-items: center; gap: 5px; max-width: 150px;
  font-size: 11.5px; font-weight: 600; color: #9a9da1;
  background: none; border: 0; padding: 2px 0; -webkit-tap-highlight-color: transparent;
}
.filter-section-clear span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.filter-section-clear-icon { display: flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; background: #2c3034; }
.filter-section-clear:active { opacity: .7; }

/* Equal-width option boxes */
.filter-pill-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.filter-pill {
  min-height: 40px; padding: 8px 6px; border-radius: 12px;
  background: #23272b; border: 1px solid transparent; color: #c5c8cb;
  font-family: inherit; font-size: 12.5px; font-weight: 600; line-height: 1.35; text-align: center;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
  -webkit-tap-highlight-color: transparent;
}
.filter-pill:active { background: #2c3034; }
.filter-pill.is-active { border-color: #e9ecef; background: rgba(233,236,239,.08); color: #e9ecef; font-weight: 700; }

/* Radio row (condition) */
.filter-radio-row { display: flex; align-items: center; gap: 28px; padding: 2px 2px 4px; }
.filter-radio { display: flex; align-items: center; gap: 9px; background: none; border: 0; padding: 4px 0; -webkit-tap-highlight-color: transparent; }
.filter-radio-dot { width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid #5a5e62; box-sizing: border-box; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.filter-radio.is-active .filter-radio-dot { border-color: #e9ecef; background: #e9ecef; box-shadow: inset 0 0 0 3.5px #14171a; }
.filter-radio-label { font-size: 12.5px; font-weight: 600; color: #c5c8cb; }
.filter-radio.is-active .filter-radio-label { color: #e9ecef; font-weight: 700; }

/* Body-style cards */
.filter-icon-grid { display: grid; gap: 8px; }
.filter-icon-card {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px;
  padding: 12px 6px 10px; border-radius: 12px; border: 1px solid transparent; background: #23272b;
  color: #9a9da1; font-size: 12px; font-weight: 600;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
  -webkit-tap-highlight-color: transparent;
}
.filter-icon-card span { line-height: 1.2; }
.filter-icon-card:active { background: #2c3034; }
.filter-icon-card.is-active { border-color: #e9ecef; background: rgba(233,236,239,.08); color: #e9ecef; font-weight: 700; }

/* Colors */
.filter-swatch-row { display: flex; flex-wrap: wrap; gap: 14px; }
.filter-swatch-item { display: flex; flex-direction: column; align-items: center; gap: 6px; background: none; border: 0; padding: 0; -webkit-tap-highlight-color: transparent; }
.filter-swatch { width: 34px; height: 34px; border-radius: 50%; border: 2px solid #2c3034; display: flex; align-items: center; justify-content: center; box-sizing: border-box; transition: border-color .15s ease, box-shadow .15s ease; }
.filter-swatch-item.is-active .filter-swatch { border-color: #e9ecef; box-shadow: 0 0 0 2px rgba(233,236,239,.25); }
.filter-swatch-name { font-size: 10.5px; color: #888b8f; }
.filter-swatch-item.is-active .filter-swatch-name { color: #e9ecef; font-weight: 700; }

/* Price slider: thin track, light fill, ring-shaped thumbs */
.filter-price-wrap { padding: 4px 0 0; }
.filter-range-track { position: relative; height: 3px; border-radius: 999px; background: #2c3034; margin: 10px 9px 8px; }
.filter-range-fill { position: absolute; top: 0; bottom: 0; background: #e9ecef; border-radius: 999px; }
.filter-range-input {
  position: absolute; top: 50%; left: -9px; right: -9px; width: calc(100% + 18px);
  height: 28px; margin: 0; transform: translateY(-50%);
  -webkit-appearance: none; appearance: none; background: transparent; pointer-events: none;
}
.filter-range-input::-webkit-slider-runnable-track { -webkit-appearance: none; background: transparent; height: 28px; }
.filter-range-input::-webkit-slider-thumb {
  -webkit-appearance: none; pointer-events: auto; box-sizing: border-box;
  width: 18px; height: 18px; border-radius: 50%; margin-top: 5px;
  background: #14171a; border: 2px solid #e9ecef; cursor: pointer;
  transition: transform .12s ease;
}
.filter-range-input::-webkit-slider-thumb:active { transform: scale(1.18); }
.filter-range-input::-moz-range-track { background: transparent; height: 28px; border: none; }
.filter-range-input::-moz-range-thumb { pointer-events: auto; box-sizing: border-box; width: 18px; height: 18px; border-radius: 50%; background: #14171a; border: 2px solid #e9ecef; cursor: pointer; }
.filter-price-bounds { display: flex; align-items: center; justify-content: space-between; margin: 6px 2px 0; font-size: 10.5px; color: #6f7377; }

.filter-overlay-footer { flex: 0 0 auto; padding: 12px 20px calc(14px + env(safe-area-inset-bottom, 0px)); }
.filter-overlay-apply { width: 100%; height: 50px; border-radius: 999px; background: #e9ecef; color: #14171a; font-family: inherit; font-weight: 800; font-size: 14.5px; border: 0; transition: transform .15s ease, background .15s ease, color .15s ease; }
.filter-overlay-apply:active { transform: scale(.99); }
.filter-overlay-apply.is-disabled { background: #2c3034; color: #6f7377; }

html.filter-overlay-active, html.filter-overlay-active body { overflow: hidden !important; overscroll-behavior: none !important; }
body.filter-overlay-active { touch-action: none; }
html.bcond-overlay-open, html.bcond-overlay-open body { overflow: hidden !important; overscroll-behavior: none !important; }

.theme-light .filter-overlay-panel { background: #e9ecef; border-color: #d4d7da; color: #34383c; box-shadow: 0 -10px 30px rgba(0,0,0,.12); }
.theme-light .filter-overlay-drag span { background: #c8cbce; }
.theme-light .filter-overlay-header { border-bottom-color: #dadde1; }
.theme-light .filter-overlay-title, .theme-light .filter-section-title-text { color: #212529; }
.theme-light .filter-overlay-reset { color: #7a7e82; }
.theme-light .filter-overlay-icon-btn { background: #dfe3e6; color: #53575b; border-color: #d4d7da; }
.theme-light .filter-section-value { color: #53575b; }
.theme-light .filter-section-clear { color: #7a7e82; }
.theme-light .filter-section-clear-icon { background: #d4d7da; }
.theme-light .filter-pill, .theme-light .filter-icon-card { background: #dfe3e6; color: #53575b; }
.theme-light .filter-pill:active, .theme-light .filter-icon-card:active { background: #d4d7da; }
.theme-light .filter-pill.is-active, .theme-light .filter-icon-card.is-active { border-color: #212529; background: rgba(33,37,41,.07); color: #212529; }
.theme-light .filter-radio-dot { border-color: #9a9da1; }
.theme-light .filter-radio.is-active .filter-radio-dot { border-color: #212529; background: #212529; box-shadow: inset 0 0 0 3.5px #e9ecef; }
.theme-light .filter-radio-label { color: #53575b; }
.theme-light .filter-radio.is-active .filter-radio-label { color: #212529; }
.theme-light .filter-swatch { border-color: #d4d7da; }
.theme-light .filter-swatch-item.is-active .filter-swatch { border-color: #212529; box-shadow: 0 0 0 2px rgba(33,37,41,.2); }
.theme-light .filter-swatch-name { color: #7a7e82; }
.theme-light .filter-swatch-item.is-active .filter-swatch-name { color: #212529; }
.theme-light .filter-range-track { background: #cfd3d6; }
.theme-light .filter-range-fill { background: #212529; }
.theme-light .filter-range-input::-webkit-slider-thumb { background: #e9ecef; border-color: #212529; }
.theme-light .filter-range-input::-moz-range-thumb { background: #e9ecef; border-color: #212529; }
.theme-light .filter-price-bounds { color: #9a9da1; }
.theme-light .filter-overlay-apply { background: #212529; color: #e9ecef; }
.theme-light .filter-overlay-apply.is-disabled { background: #d4d7da; color: #8d9195; }

@media (min-width: 640px) {
  .filter-overlay-panel { max-width: 520px; margin: 0 auto; }
}

/* ===============================================================
   VEHICLE DETAIL — detail.html layout, CarMaa theme
   Structure/spacing follows the uploaded detail.html reference;
   colors and actions are synced to the site's violet/dark theme.
================================================================= */
[data-page="vehicle"].vehicle-detail-page { padding-bottom: 108px; background: #c9cccf; color: #212529; }
body:has(.vehicle-detail-page) #bottomDock { display:none !important; }
/* Vehicle detail now uses the shared header (back right, notifications left, logo centre). */
body:has(.vehicle-detail-page) #stickyHeaderGroup::after { display:none !important; }
body:has(.vehicle-detail-page) #pageContent { padding-bottom: 0; }
body:has(.vehicle-detail-page) #appViewport { background: #c9cccf; border-color: transparent; }

.detail-hero-frame { padding:14px 14px 0; background:#25292d; }
.detail-hero {
  position:relative;
  height:330px;
  overflow:hidden;
  border-radius:24px;
  background:#1f2327;
  box-shadow:0 8px 14px -6px rgba(0,0,0,.55);
}
.detail-hero-main, .detail-hero-image { width:100%; height:100%; }
.detail-hero-image { object-fit:cover !important; object-position:center 45%; }
/* Share/save row below the hero photo frame — photos themselves only
   change by finger swipe now (see initVehicleGallerySwipe), so these
   buttons no longer float on top of the image. justify-content:flex-end
   relies on the page's ambient dir="rtl" (end of the row = left side). */
.detail-hero-actions-row { display:flex; justify-content:flex-end; gap:10px; padding:12px 14px 0; background:#25292d; }

html.photo-viewer-open { overflow:hidden; }
.photo-viewer {
  position:fixed;
  inset:0;
  z-index:200;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transition:opacity .22s ease;
}
.photo-viewer.is-open { opacity:1; }
.photo-viewer-backdrop { position:absolute; inset:0; background:#14171a; }
.photo-viewer-stage {
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  touch-action:pan-x;
}
.photo-viewer-stage img, .photo-viewer-stage svg {
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  user-select:none;
  -webkit-user-drag:none;
}
.photo-viewer-close {
  position:absolute;
  top:20px;
  left:18px;
  z-index:3;
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.14);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  color:#e9ecef;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.photo-viewer-counter {
  position:absolute;
  top:26px;
  right:18px;
  z-index:3;
  background:rgba(255,255,255,.14);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  color:#e9ecef;
  font-size:12px;
  font-weight:800;
  padding:6px 12px;
  border-radius:14px;
  direction:ltr;
  unicode-bidi:isolate;
}
.photo-viewer-nav {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  width:44px;
  height:44px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.14);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  color:#e9ecef;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.photo-viewer-nav:active { transform:translateY(-50%) scale(.94); }
.photo-viewer-prev { left:14px; }
.photo-viewer-next { right:14px; }
@media (max-width:400px) {
  .photo-viewer-close, .photo-viewer-nav { width:38px; height:38px; }
}
.detail-hero-overlay {
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.02) 30%, rgba(25,28,32,.20) 58%, rgba(25,28,32,.72) 82%, #191c20 100%);
  pointer-events:none;
}
.detail-top-actions { position:absolute; top:26px; left:22px; right:22px; z-index:6; display:flex; align-items:center; justify-content:space-between; direction:ltr; }
.detail-action-group { display:flex; gap:10px; }
.detail-round-btn { width:42px; height:42px; border:0; border-radius:50%; background:rgba(255,255,255,.88); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); color:#1d2125; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 18px -10px rgba(0,0,0,.45); cursor:pointer; }
.detail-round-btn:active { transform:scale(.96); }
.detail-counter { position:absolute; right:22px; bottom:56px; z-index:6; background:rgba(32,35,39,.58); color:#e9ecef; font-size:12px; font-weight:800; padding:6px 11px; border-radius:14px; backdrop-filter:blur(4px); direction:ltr; unicode-bidi:isolate; }
.detail-thumb-strip { position:absolute; left:22px; right:22px; bottom:16px; z-index:6; display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; }
.detail-thumb-strip::-webkit-scrollbar { display:none; }
.detail-thumb { position:relative; width:52px; height:38px; border-radius:10px; overflow:hidden; border:2px solid rgba(255,255,255,.4); flex:0 0 auto; padding:0; background:#2b2f33; cursor:pointer; }
.detail-thumb > img { width:100%; height:100%; object-fit:cover !important; display:block; }
.detail-thumb.is-active { border-color:#e0e3e6; }
.detail-more-thumb span { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.58); color:#e9ecef; font-size:11px; font-weight:800; }

.detail-info-sheet {
  position:relative;
  margin-top:0;
  background:#25292d;
  padding:18px 22px 0;
  z-index:2;
  isolation:isolate;
}
.detail-title-row { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.detail-title-wrap { direction:rtl; min-width:0; }
.detail-name-row { display:flex; align-items:center; gap:6px; }
.detail-car-name { margin:0; font-size:23px; line-height:1.2; font-weight:850; color:#212529; letter-spacing:-.02em; }
.detail-year-badge { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; padding:3px 8px; border-radius:7px; background:#e9ecef; color:#14171a; font-size:13px; font-weight:800; line-height:1.3; }
.detail-location { display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:13px; color:#66696d; margin-top:6px; }
.detail-location svg { color:#44484c; }
.detail-dot-sep { width:3px; height:3px; border-radius:50%; background:#868a8d; }
.detail-price-tag { text-align:right; flex-shrink:0; direction:rtl; }
.detail-price-tag .val { font-size:20px; font-weight:850; color:#212529; white-space:nowrap; }
.detail-price-tag .unit { font-size:11.5px; color:#767a7e; margin-top:1px; }
/* Single, calm status line: seller type · rating · listing status — replaces
   what used to be a separate rating row plus three differently-colored
   badges (violet/green/blue) competing for attention right under the title. */
.detail-seller-strip { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:16px; padding:12px 14px; background:#dfe2e5; border-radius:14px; font-size:12.5px; color:#5e6165; }
.detail-strip-item { display:flex; align-items:center; gap:6px; font-weight:700; white-space:nowrap; }
.detail-strip-item svg { flex:0 0 auto; color:#868a8d; }
.detail-strip-rating b { color:#212529; font-weight:850; }
.detail-strip-status { color:#2f8f4e; font-weight:800; }
.detail-status-dot { width:7px; height:7px; border-radius:50%; background:#2f8f4e; flex:0 0 auto; }
.detail-strip-sep { width:1px; height:14px; background:#c8cbce; flex:0 0 auto; }

.detail-tabs { display:flex; gap:6px; margin-top:22px; background:#c1c4c8; padding:5px; border-radius:16px; }
.detail-tab { flex:1; border:0; background:transparent; text-align:center; color:#73767a; font:700 13px inherit; padding:10px 0; border-radius:12px; cursor:pointer; }
.detail-tab.is-active { background:#212529; color:#e0e3e6; }
.detail-tab:active { opacity:.8; }
.detail-panel { margin-top:20px; }
.detail-section-label { font-size:16px; font-weight:850; color:#212529; margin:0 0 10px; }
.detail-description { margin:0; font-size:13.5px; line-height:1.65; color:#5e6165; }
.detail-mt { margin-top:22px; }
.detail-facts-grid { display:flex; align-items:stretch; margin-top:18px; background:#e9ecef; border:1px solid #d8dcdf; border-radius:18px; overflow:hidden; box-shadow:0 1px 2px rgba(29,33,37,.04); }
.detail-fact { flex:1 1 0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; text-align:center; padding:16px 6px; min-width:0; position:relative; }
.detail-fact:not(:first-child)::before { content:""; position:absolute; inset-inline-start:0; top:16%; bottom:16%; width:1px; background:#dadde0; }
.detail-fact-icon { width:30px; height:30px; border-radius:50%; background:#dfe2e5; color:#575b5f; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.detail-fact-swatch { border:2px solid #e9ecef; box-shadow:0 0 0 1px #d2d5d8; }
.detail-fact-value { font-size:13.5px; font-weight:850; color:#212529; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.detail-fact-label { font-size:10.5px; color:#868a8d; }
.detail-features-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.detail-feature { display:flex; align-items:center; gap:10px; background:#e9ecef; border-radius:14px; padding:11px 12px; font-size:12px; font-weight:700; color:#43474b; min-width:0; }
.detail-feature svg { flex:0 0 auto; color:#212529; }
.detail-feature span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.detail-condition-card, .detail-map-card, .detail-owner-card, .detail-spec-table, .detail-review-summary, .detail-review-card, .detail-policies details, .detail-services-list { background:#e9ecef; border-radius:18px; }
.detail-condition-card { padding:14px; }
.detail-condition-copy { color:#5e6165; font-size:12.5px; line-height:1.6; }
.detail-paint-tags { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
.detail-paint-tags span { font-size:10.5px; font-weight:800; color:#7a5300; background:#fbf6d8; border-radius:999px; padding:5px 8px; }
.detail-map-card { margin-top:0; overflow:hidden; }
.detail-map-visual { height:110px; position:relative; background:radial-gradient(circle at 30% 40%,rgba(33,37,41,.06) 0,transparent 40%),repeating-linear-gradient(0deg,#cfd2d5 0 1px,transparent 1px 26px),repeating-linear-gradient(90deg,#cfd2d5 0 1px,transparent 1px 26px),#dcdfe2; }
.detail-map-pin { position:absolute; left:50%; top:50%; transform:translate(-50%,-60%); width:34px; height:34px; border-radius:50% 50% 50% 0; background:#212529; display:flex; align-items:center; justify-content:center; }
.detail-map-pin svg { transform:rotate(45deg); }
.detail-map-info { padding:12px 14px; display:flex; justify-content:space-between; align-items:center; gap:10px; }
.detail-map-address { font-size:12.5px; color:#43474b; font-weight:800; }
.detail-map-distance { font-size:11.5px; color:#868a8d; margin-top:2px; }
.detail-mini-btn, .detail-outline-btn { border:0; background:#dfe2e5; color:#212529; font:700 12px inherit; padding:8px 12px; border-radius:12px; white-space:nowrap; cursor:pointer; }
.detail-owner-card { margin-top:0; display:flex; align-items:center; gap:12px; padding:14px; }
.detail-owner-avatar { width:46px; height:46px; border-radius:50%; background:#212529; color:#e0e3e6; font-weight:850; font-size:17px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.detail-owner-info { flex:1; min-width:0; }
.detail-owner-name { font-size:14.5px; font-weight:800; color:#212529; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.detail-owner-meta { font-size:11.5px; color:#868a8d; margin-top:3px; }
.detail-owner-contact { width:40px; height:40px; border:0; border-radius:50%; background:#dfe2e5; color:#1d2125; display:flex; align-items:center; justify-content:center; flex:0 0 auto; cursor:pointer; }

.detail-spec-group { margin-bottom:18px; }
.detail-spec-group:last-child { margin-bottom:0; }
.detail-spec-group h3 { margin:0 0 10px; font-size:13px; color:#66696d; font-weight:800; }
.detail-spec-table { overflow:hidden; }
.detail-spec-row { display:flex; justify-content:space-between; gap:12px; padding:13px 16px; font-size:13px; border-bottom:1px solid #d7dadd; }
.detail-spec-row:last-child { border-bottom:0; }
.detail-spec-row span { color:#868a8d; }
.detail-spec-row b { color:#212529; font-weight:800; text-align:left; }
.detail-services-list { overflow:hidden; }
.detail-service-row { display:flex; align-items:center; gap:9px; padding:13px 16px; border-bottom:1px solid #d7dadd; font-size:12.5px; font-weight:700; color:#43474b; }
.detail-service-row:last-child { border-bottom:0; }
.detail-service-icon { color:#44484c; }

.detail-review-summary { display:flex; gap:20px; align-items:center; padding:18px; }
.detail-review-score { flex:0 0 auto; text-align:center; }
.detail-review-score .big { font-size:34px; font-weight:850; color:#212529; line-height:1; }
.detail-review-score .stars { display:flex; gap:2px; justify-content:center; margin-top:6px; }
.detail-review-score .count { font-size:11px; color:#868a8d; margin-top:4px; }
.detail-review-bars { flex:1; }
.detail-bar-row { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.detail-bar-row:last-child { margin-bottom:0; }
.detail-bar-row > span { font-size:10.5px; color:#868a8d; width:10px; }
.detail-bar-track { flex:1; height:6px; background:#dfe2e5; border-radius:4px; overflow:hidden; }
.detail-bar-fill { height:100%; background:#e0e3e6; border-radius:inherit; }
.detail-review-card { margin-top:10px; padding:14px; }
.detail-review-head { display:flex; align-items:center; gap:10px; }
.detail-review-avatar { width:34px; height:34px; border-radius:50%; background:#dfe2e5; display:flex; align-items:center; justify-content:center; font-weight:850; font-size:13px; color:#212529; flex:0 0 auto; }
.detail-review-name { font-size:13px; font-weight:800; color:#212529; }
.detail-review-date { font-size:11px; color:#868a8d; margin-top:2px; }
.detail-review-card p { font-size:12.5px; color:#5e6165; line-height:1.55; margin:10px 0 0; }
.detail-policies { margin-top:0; }
.detail-policies details { padding:14px 16px; margin-bottom:10px; }
.detail-policies summary { list-style:none; font-size:13.5px; font-weight:800; color:#212529; cursor:pointer; display:flex; align-items:center; justify-content:space-between; }
.detail-policies summary::-webkit-details-marker { display:none; }
.detail-policies summary::after { content:'+'; color:#868a8d; font-size:18px; font-weight:400; }
.detail-policies details[open] summary::after { content:'–'; }
.detail-policies p { margin:10px 0 0; font-size:12.5px; color:#5e6165; line-height:1.6; }

.detail-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:22px; }
.detail-section-head h2 { margin:0; font-size:16px; line-height:1.2; font-weight:850; color:#212529; }
.detail-outline-btn { border:1px solid #c2c6c9; background:transparent; padding:8px 12px; }
.detail-similar-row { display:flex; gap:12px; overflow-x:auto; margin-top:14px; padding:2px 22px 4px; margin-left:-22px; margin-right:-22px; scrollbar-width:none; }
.detail-similar-row::-webkit-scrollbar { display:none; }
.detail-similar-card { min-width:160px; background:#e9ecef; border:0; border-radius:18px; padding:12px; flex-shrink:0; text-align:right; cursor:pointer; color:#212529; }
.detail-similar-image { width:100%; height:80px; border-radius:12px; overflow:hidden; background:#dcdfe2; margin-bottom:8px; }
.detail-similar-image img { width:100%; height:100%; object-fit:cover !important; display:block; }
.detail-similar-name { font-size:12px; font-weight:850; line-height:1.35; }
.detail-similar-price { font-size:12px; color:#868a8d; margin-top:2px; }
.detail-spacer { height:110px; }

.detail-cta { position:fixed; left:0; right:0; bottom:0; z-index:39; display:flex; justify-content:center; pointer-events:none; padding:14px 22px 26px; background:linear-gradient(180deg,rgba(201,204,207,0) 0%,#c9cccf 35%); }
.detail-cta-inner { width:100%; max-width:488px; pointer-events:auto; display:flex; align-items:center; gap:14px; border-radius:20px; background:#212529; padding:10px 10px 10px 14px; box-shadow:0 20px 40px -18px rgba(0,0,0,.6); }
.detail-cta-price { flex:1; min-width:0; direction:rtl; }
.detail-cta-price-value { font-size:19px; font-weight:850; color:#e0e3e6; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.detail-cta-price-unit { font-size:10.5px; color:rgba(255,255,255,.56); margin-top:1px; }
.detail-cta-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.detail-cta-btn { border:0; background:#e0e3e6; color:#191c20; border-radius:999px; padding:12px 18px; font:800 13.5px inherit; white-space:nowrap; box-shadow:0 8px 20px rgba(224,227,230,.28); cursor:pointer; }
.detail-cta-phone { width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.16); display:flex; align-items:center; justify-content:center; color:#e0e3e6; flex-shrink:0; }

.theme-light [data-page="vehicle"].vehicle-detail-page, .theme-light body:has(.vehicle-detail-page) #appViewport { background:#cccfd2; }
.theme-light .detail-tab.is-active { background:#33373b; }

@media (max-width:400px) {
  .detail-hero { height:330px; }
  .detail-info-sheet { padding-left:18px; padding-right:18px; }
  .detail-similar-row { padding-left:18px; padding-right:18px; margin-left:-18px; margin-right:-18px; }
  .detail-cta { padding-left:14px; padding-right:14px; }
}
@media (max-width:360px) {
  .detail-cta-btn { padding:12px 14px; font-size:12.5px; }
  .detail-car-name { font-size:21px; }
}

/* Framed photo, normal document flow: the hero is a static block, the
   sheet sits below it in normal flow — no more sticky/overlap "drawer". */
[data-page="vehicle"].vehicle-detail-page .detail-hero { position:relative; z-index:auto; height:300px; }
[data-page="vehicle"].vehicle-detail-page .detail-info-sheet { position:relative; z-index:auto; margin-top:0; box-shadow:none; }
[data-page="vehicle"].vehicle-detail-page .detail-hero-overlay { background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.02) 28%,rgba(0,0,0,.10) 54%,rgba(0,0,0,.28) 80%,rgba(0,0,0,.40) 100%); }

/* Touch gallery: JS tracks horizontal drags to swipe photos; vertical drags
   are left to the browser's native scroll (touch-action:pan-y). */
[data-page="vehicle"].vehicle-detail-page .detail-hero-main { touch-action:pan-y; }
[data-page="vehicle"].vehicle-detail-page .detail-hero-image { user-select:none; -webkit-user-drag:none; }

/* Final vehicle-detail theme alignment: geometry from detail.html, colors from CarMaa. */
[data-page="vehicle"].vehicle-detail-page { background:#191c20; color:#e0e3e6; }
body:has(.vehicle-detail-page) #appViewport { background:#191c20 !important; }
.detail-info-sheet { background:#25292d; color:#e0e3e6; }
.detail-title-row, .detail-title-wrap, .detail-price-tag, .detail-location { color:#e0e3e6; }
.detail-car-name, .detail-price-tag .val, .detail-section-label, .detail-section-head h2,
.detail-spec-row b, .detail-owner-name, .detail-service-row { color:#e0e3e6; }
.detail-location, .detail-price-tag .unit, .detail-description, .detail-fact-label,
.detail-spec-group h3, .detail-spec-row span, .detail-owner-meta { color:#999c9f; }
.detail-tabs { background:#22262a; border:1px solid #2f3337; }
.detail-tab { color:#999c9f; }
.detail-tab.is-active { background:#e0e3e6; color:#191c20; }
.detail-feature, .detail-condition-card, .detail-map-card, .detail-owner-card,
.detail-spec-table, .detail-services-list { background:#22262a; border:1px solid #2f3337; }
.detail-facts-grid { background:#22262a; border:1px solid #2f3337; }
.detail-fact:not(:first-child)::before { background:#2f3337; }
.detail-fact-icon { background:#2c3034; color:#c5c8cb; }
.detail-fact-swatch { border-color:#22262a; box-shadow:0 0 0 1px #44484c; }
.detail-fact-value, .detail-feature, .detail-map-address { color:#e0e3e6; }
.detail-feature svg, .detail-map-pin svg, .detail-owner-contact { color:#e0e3e6; }
.detail-seller-strip { background:#22262a; border:1px solid #2f3337; color:#999c9f; }
.detail-strip-item svg { color:#6f7377; }
.detail-strip-rating b { color:#e0e3e6; }
.detail-strip-status { color:#86efac; }
.detail-status-dot { background:#4ade80; }
.detail-strip-sep { background:#44484c; }
.detail-map-visual { background:radial-gradient(circle at 30% 40%,rgba(224,227,230,.08) 0,transparent 40%),repeating-linear-gradient(0deg,#2c3034 0 1px,transparent 1px 26px),repeating-linear-gradient(90deg,#2c3034 0 1px,transparent 1px 26px),#22262a; }
.detail-map-distance { color:#6f7377; }
.detail-mini-btn, .detail-outline-btn { background:#2f3337; border-color:#44484c; color:#e0e3e6; }
.detail-owner-avatar { background:#2f3337; color:#e0e3e6; }
.detail-owner-contact { background:#2f3337; border:1px solid #44484c; }
.detail-spec-row { border-bottom-color:#2f3337; }
.detail-service-row { border-bottom-color:#2f3337; }
.detail-condition-copy { color:#c5c8cb; }
.detail-paint-tags span { background:rgba(245,158,11,.12); color:#fbbf24; }
.detail-section-head { margin-top:24px; }
.detail-similar-row { overflow-x:auto; }
.detail-similar-card { background:#22262a; border:1px solid #2f3337; color:#e0e3e6; }
.detail-similar-image { background:#1e2125; }
.detail-similar-price { color:#999c9f; }
.detail-diagram-card { margin-top:16px; background:#22262a; border:1px solid #2f3337; border-radius:18px; padding:14px; overflow:hidden; }
.detail-diagram-card svg { width:100%; max-width:520px; margin:0 auto; filter:brightness(.9) contrast(1.03); }
.detail-diagram-card .car-panel-shape { cursor:default; }
.detail-condition-title { color:#e0e3e6; font-size:13px; font-weight:800; margin-bottom:6px; }
.detail-more-overlay { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.58); color:#e9ecef; font-size:11px; font-weight:800; }
.detail-cta { background:linear-gradient(180deg,rgba(25,28,32,0) 0%,#191c20 35%); }
.detail-cta-inner { background:#22262a; border:1px solid #2f3337; }
.detail-cta-price-value { color:#e0e3e6; }

/* Similar vehicles use the exact previous site's card/render mechanism. */
[data-page="vehicle"].vehicle-detail-page [data-slot="similar"] {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  padding:16px;
}
[data-page="vehicle"].vehicle-detail-page [data-slot="similar"] .listing-card,
[data-page="vehicle"].vehicle-detail-page [data-slot="similar"] > * { min-width:0; }

/* ===============================================================
   VEHICLE DETAIL — nested touch/scroll isolation
   Prevent horizontal detail sections from leaking vertical gesture
   to the page while keeping the main detail sheet vertically scrollable.
================================================================= */
/* The detail sheet is part of the document scroll, not an isolated
   touch surface. `touch-action` is intersected with ancestors, so a
   broad `pan-y` here used to prevent horizontal child scrollers and
   occasionally blocked diagonal/vertical gestures on their contents. */
[data-page="vehicle"].vehicle-detail-page .detail-info-sheet {
  touch-action: pan-x pan-y;
  overscroll-behavior-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Horizontal rails must remain horizontally draggable, but a vertical
   gesture that begins on them must still be able to bubble into the
   document scroll. */
[data-page="vehicle"].vehicle-detail-page .detail-thumb-strip,
[data-page="vehicle"].vehicle-detail-page [data-slot="similar"],
[data-page="vehicle"].vehicle-detail-page .detail-similar-row {
  touch-action: pan-x pan-y;
  overscroll-behavior-x: contain;
  overscroll-behavior-y: auto;
  -webkit-overflow-scrolling: touch;
}

[data-page="vehicle"].vehicle-detail-page .detail-thumb,
[data-page="vehicle"].vehicle-detail-page [data-slot="similar"] > * {
  touch-action: pan-x pan-y;
}

[data-page="vehicle"].vehicle-detail-page .detail-diagram-card,
[data-page="vehicle"].vehicle-detail-page .detail-condition-card,
[data-page="vehicle"].vehicle-detail-page .detail-map-card,
[data-page="vehicle"].vehicle-detail-page .detail-owner-card,
[data-page="vehicle"].vehicle-detail-page .detail-spec-table,
[data-page="vehicle"].vehicle-detail-page .detail-services-list,
[data-page="vehicle"].vehicle-detail-page .detail-review-card,
[data-page="vehicle"].vehicle-detail-page .detail-policies {
  touch-action: pan-x pan-y;
  overscroll-behavior-y: auto;
}

/* Keep the sticky gallery self-contained horizontally without creating a
   second vertical scroll boundary. Vertical swipes on the gallery are
   still allowed to scroll the document. */
[data-page="vehicle"].vehicle-detail-page .detail-hero,
[data-page="vehicle"].vehicle-detail-page .detail-hero-main {
  overscroll-behavior-x: contain;
  overscroll-behavior-y: auto;
}

/* Buttons remain directly tappable. */
[data-page="vehicle"].vehicle-detail-page button,
[data-page="vehicle"].vehicle-detail-page a {
  touch-action: manipulation;
}

/* Photo thumbnails moved out of the hero overlay into the info card,
   directly above the car name / price row. */
[data-page="vehicle"].vehicle-detail-page .detail-info-sheet .detail-thumb-strip {
  position: static;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: auto;
  margin: 2px 0 24px;
  padding: 0;
}
[data-page="vehicle"].vehicle-detail-page .detail-info-sheet .detail-thumb {
  border-color: #2f3337;
}
[data-page="vehicle"].vehicle-detail-page .detail-info-sheet .detail-thumb.is-active {
  border-color: #e0e3e6;
}

/* ===============================================================
   SELL FLOW — native-feel year wheel picker
================================================================ */
html.sell-year-picker-open { overflow: hidden; }
.sell-year-picker { position: fixed; inset: 0; z-index: 120; pointer-events: none; }
.sell-year-picker:not([hidden]) { display: block; }
.sell-year-picker-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.62); opacity: 0; transition: opacity .28s ease; backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); pointer-events: auto; }
.sell-year-picker-sheet { position: absolute; left: 0; right: 0; bottom: 0; width: min(100%, 520px); margin: 0 auto; max-height: min(78dvh, 620px); background: linear-gradient(180deg,#212529 0%,#1b1f22 100%); border: 1px solid #33373b; border-bottom: 0; border-radius: 26px 26px 0 0; box-shadow: 0 -26px 70px rgba(0,0,0,.55); transform: translateY(105%); transition: transform .32s cubic-bezier(.22,1,.36,1); overflow: hidden; color: #e0e3e6; pointer-events: auto; }
.sell-year-picker.is-open .sell-year-picker-backdrop { opacity: 1; }
.sell-year-picker.is-open .sell-year-picker-sheet { transform: translateY(0); }
.sell-year-picker.is-closing .sell-year-picker-backdrop { opacity: 0; }
.sell-year-picker.is-closing .sell-year-picker-sheet { transform: translateY(105%); transition-duration: .28s; }
.sell-year-picker-handle { display:flex; justify-content:center; padding:10px 0 3px; }
.sell-year-picker-handle span { width:38px; height:5px; border-radius:999px; background:#494c50; }
.sell-year-picker-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 16px 10px; direction:rtl; }
.sell-year-picker-close { width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1px solid #373b3f; background:#292d31; color:#c5c8cb; }
.sell-year-wheel-wrap { position: relative; height: 300px; margin: 0 12px; overflow: hidden; }
.sell-year-wheel { height:100%; width:100%; max-width:100%; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; scroll-snap-type:y mandatory; scroll-padding-block:0; scrollbar-width:none; padding:0; touch-action:pan-y; -webkit-overflow-scrolling:touch; }
.sell-year-wheel::-webkit-scrollbar { display:none; }
.sell-year-wheel-highlight { position:absolute; z-index:0; left:8px; right:8px; top:50%; height:58px; transform:translateY(-50%); border-radius:18px; background:rgba(255,255,255,.07); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border:1px solid rgba(255,255,255,.12); box-shadow: inset 0 1px 2px rgba(0,0,0,.6), inset 0 -1px 2px rgba(0,0,0,.6), 0 6px 16px -6px rgba(0,0,0,.8); pointer-events:none; }
.sell-year-wheel-fade { position:absolute; z-index:3; left:0; right:0; height:74px; pointer-events:none; }
.sell-year-wheel-fade-top { top:0; background:linear-gradient(180deg,#14171a 4%,rgba(0,0,0,.86) 44%,rgba(0,0,0,0) 100%); }
.sell-year-wheel-fade-bottom { bottom:0; background:linear-gradient(0deg,#14171a 4%,rgba(0,0,0,.86) 44%,rgba(0,0,0,0) 100%); }
.sell-year-wheel-spacer, .sell-year-wheel-item { height:58px; min-height:58px; }
.sell-year-wheel-spacer { scroll-snap-align:center; }
.sell-year-wheel-item { position:relative; z-index:1; width:100%; max-width:100%; box-sizing:border-box; border:0; background:transparent; color:#6f7377; font-size:25px; font-weight:600; letter-spacing:.02em; display:flex; align-items:center; justify-content:center; scroll-snap-align:center; scroll-snap-stop:always; transition:color .12s ease, opacity .12s ease, font-size .12s ease; transform:none; backface-visibility:hidden; -webkit-backface-visibility:hidden; opacity:.55; }
.sell-year-wheel-item.is-selected { color:#e0e3e6; font-size:27px; font-weight:800; opacity:1; transform:none; }
.sell-year-picker-actions { padding:12px 16px calc(16px + env(safe-area-inset-bottom)); }
.sell-year-picker-confirm { width:100%; min-height:50px; border:0; border-radius:999px; background:#d8b4fe; color:#202327; font-size:14px; font-weight:800; box-shadow:0 10px 28px rgba(216,180,254,.15); }
.sell-year-picker-confirm:active { transform:scale(.985); }
@media (max-width:390px) {
  .sell-year-wheel-wrap { height:270px; }
  .sell-year-wheel-spacer, .sell-year-wheel-item { height:54px; min-height:54px; }
  .sell-year-wheel-item { font-size:24px; }
  .sell-year-wheel-item.is-selected { font-size:26px; }
}


/* SELL FLOW: persistent bottom action dock
   The next/back controls stay pinned to the viewport, never scroll out of view.
   The global site dock is hidden during the sell flow so the two navigation systems
   do not overlap like a small committee arguing over the same chair. */
body:has([data-page="sell-step"]) #bottomDock { display: none; }
body:has([data-page="sell-step"]) [data-slot="actions"].sell-actions-dock {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 41;
  width: min(100%, 520px);
  margin-inline: auto;
  box-sizing: border-box;
  padding: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  background: none;
  border-top: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  pointer-events: none;
}
body:has([data-page="sell-step"]) [data-slot="actions"].sell-actions-dock > * {
  pointer-events: auto;
}
body:has([data-page="sell-step"]) [data-page="sell-step"] form {
  padding-bottom: calc(118px + env(safe-area-inset-bottom, 0px));
}
body:has([data-page="sell-step"]) [data-page="sell-step"] [data-slot="actions"] > button {
  min-width: 0;
  min-height: 52px;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
  box-shadow: 0 6px 18px rgba(0,0,0,.28);
}
html.theme-light body:has([data-page="sell-step"]) [data-slot="actions"].sell-actions-dock {
  background: none;
  border-top: none;
  box-shadow: none;
}

/* ================================================================
   SELL FLOW: creative brand picker
   ================================================================ */
.sell-brand-trigger {
  width:100%; min-height:64px; display:flex; align-items:center; justify-content:flex-start; gap:12px;
  border:1px solid #33373b; border-radius:18px; background:linear-gradient(135deg,#212529,#1c2023); color:#e0e3e6;
  padding:7px 12px 7px 10px; text-align:right; transition:border-color .18s ease, transform .14s ease, background .18s ease;
}
.sell-brand-trigger:active { transform:scale(.992); }
.sell-brand-trigger:focus-visible { outline:none; border-color:#bfa5ff; box-shadow:0 0 0 3px rgba(191,165,255,.12); }
.sell-brand-trigger-mark { flex:0 0 auto; width:52px; height:50px; border-radius:15px; display:flex; align-items:center; justify-content:center; background:radial-gradient(circle at 30% 25%,#323639,#1b1e22 72%); border:1px solid #3b3f43; overflow:hidden; color:#c8bdff; font-size:13px; font-weight:900; }
.sell-brand-trigger-mark img { width:72%; height:72%; object-fit:contain; }
.sell-brand-trigger-label { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:700; }
.sell-brand-trigger-arrow { flex:0 0 auto; color:#898d90; font-size:20px; line-height:1; transform:translateY(-2px); }
.sell-brand-picker { position:fixed; inset:0; z-index:121; pointer-events:none; }
.sell-brand-picker:not([hidden]) { display:block; }
.sell-brand-picker-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.72); opacity:0; transition:opacity .28s ease; pointer-events:auto; }
.sell-brand-picker-sheet { position:absolute; left:0; right:0; bottom:0; width:min(100%,520px); margin:0 auto; max-height:min(84dvh,700px); background:#202327; border:1px solid #34383c; border-bottom:0; border-radius:26px 26px 0 0; box-shadow:0 -8px 24px rgba(0,0,0,.45); transform:translateY(105%); transition:transform .32s cubic-bezier(.22,1,.36,1); overflow:hidden; color:#e0e3e6; pointer-events:auto; contain:layout paint; will-change:transform; }
.sell-brand-picker.is-open .sell-brand-picker-backdrop { opacity:1; }
.sell-brand-picker.is-open .sell-brand-picker-sheet { transform:translateY(0); }
.sell-brand-picker.is-closing .sell-brand-picker-backdrop { opacity:0; }
.sell-brand-picker.is-closing .sell-brand-picker-sheet { transform:translateY(105%); transition-duration:.28s; }
.sell-brand-picker-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 16px 14px; direction:rtl; }
.sell-brand-picker-grid { padding:0 14px calc(18px + env(safe-area-inset-bottom,0px)); overflow-y:auto; max-height:calc(min(84dvh,700px) - 82px); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; overscroll-behavior:contain; contain:content; }
.sell-brand-option { position:relative; min-width:0; min-height:82px; display:grid; grid-template-columns:52px minmax(0,1fr) 24px; align-items:center; gap:10px; direction:rtl; text-align:right; padding:9px 10px; border-radius:18px; border:1px solid #323539; background:#23272b; color:#e0e3e6; transition:border-color .16s ease,transform .16s ease; contain:layout paint; }
.sell-brand-option:active { transform:scale(.985); }
.sell-brand-option[aria-selected="true"] { border-color:rgba(216,180,254,.65); background:linear-gradient(145deg,rgba(216,180,254,.17),rgba(35,39,43,.94)); box-shadow:inset 0 0 0 1px rgba(216,180,254,.08),0 8px 24px rgba(0,0,0,.2); }
.sell-brand-option-mark { width:52px; height:52px; border-radius:16px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#181c1f; border:1px solid #373b3f; color:#c9b9ff; font-size:11px; font-weight:900; letter-spacing:.03em; }
.sell-brand-option-mark img { width:76%; height:76%; object-fit:contain; }
.sell-brand-option-copy { min-width:0; display:flex; flex-direction:column; gap:3px; }
.sell-brand-option-copy strong { font-size:13px; line-height:1.2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sell-brand-option-copy small { color:#73777a; font-size:9.5px; }
.sell-brand-option-tick { width:23px; height:23px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1px solid #3d4144; color:transparent; font-size:12px; font-weight:900; }
.sell-brand-option[aria-selected="true"] .sell-brand-option-tick { color:#22262a; background:#d8b4fe; border-color:#d8b4fe; }
html.sell-brand-picker-open { overflow:hidden; }
@media (max-width:390px) { .sell-brand-picker-grid { grid-template-columns:1fr; } }

/* Model picker — a searchable vertical list variant of the brand-picker
   sheet (same sheet/backdrop mechanics, different content layout). */
.sell-model-picker-search-wrap { position:relative; margin:0 16px 12px; }
.sell-model-picker-search-icon { position:absolute; top:50%; right:14px; transform:translateY(-50%); color:#6a6e72; pointer-events:none; }
.sell-model-picker-search {
  width:100%;
  box-sizing:border-box;
  background:#25292d;
  border:1px solid #363a3e;
  border-radius:14px;
  padding:11px 40px 11px 14px;
  font-size:14px;
  color:#e0e3e6;
  outline:none;
}
.sell-model-picker-search:focus { border-color:rgba(216,180,254,.6); }
.sell-model-picker-search::placeholder { color:#6a6e72; }
.sell-model-picker-list { padding:0 14px calc(18px + env(safe-area-inset-bottom,0px)); overflow-y:auto; max-height:calc(min(84dvh,700px) - 150px); display:flex; flex-direction:column; gap:6px; overscroll-behavior:contain; }
.sell-model-option { display:flex; align-items:center; justify-content:space-between; gap:10px; direction:rtl; text-align:right; padding:13px 14px; border-radius:14px; border:1px solid #2e3236; background:#23272b; color:#e0e3e6; font-size:13.5px; font-weight:600; transition:border-color .16s ease,transform .16s ease; }
.sell-model-option:active { transform:scale(.985); }
.sell-model-option[aria-selected="true"] { border-color:rgba(216,180,254,.65); background:linear-gradient(145deg,rgba(216,180,254,.17),rgba(35,39,43,.94)); }
.sell-model-option-tick { width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1px solid #3d4144; color:transparent; font-size:11px; font-weight:900; flex-shrink:0; }
.sell-model-option[aria-selected="true"] .sell-model-option-tick { color:#22262a; background:#d8b4fe; border-color:#d8b4fe; }
.sell-model-option-chevron { color:#85888c; font-size:16px; font-weight:700; flex-shrink:0; line-height:1; }
.sell-model-option.has-submodels .sell-model-option-chevron { color:#d8b4fe; }
.sell-model-back { color:#b8bcbf; background:#202428; margin-bottom:2px; }
.sell-model-back .sell-model-option-chevron { font-size:18px; }
.sell-model-picker-empty { padding:30px 18px; text-align:center; color:#85888c; font-size:12.5px; line-height:1.9; }

/* ================================================================
   SELL FLOW: trim choice sheet
   ================================================================ */
.sell-trim-trigger { width:100%; min-height:64px; display:flex; align-items:center; justify-content:flex-start; gap:10px; border:1px solid #33373b; border-radius:18px; background:linear-gradient(135deg,#212529,#1c2023); color:#e0e3e6; padding:7px 10px; text-align:right; }
.sell-trim-trigger-icon { flex:0 0 auto; width:44px; height:44px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:#1a1d21; border:1px solid #3f4347; color:#d8b4fe; font-weight:900; }
.sell-trim-trigger-label { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:800; }
.sell-trim-picker { position:fixed; inset:0; z-index:122; pointer-events:none; }
.sell-trim-picker:not([hidden]) { display:block; }
.sell-trim-picker-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.72); opacity:0; transition:opacity .28s ease; pointer-events:auto; }
.sell-trim-picker-sheet { position:absolute; left:0; right:0; bottom:0; width:min(100%,520px); margin:0 auto; background:#202327; border:1px solid #34383c; border-bottom:0; border-radius:26px 26px 0 0; padding-bottom:calc(18px + env(safe-area-inset-bottom,0px)); transform:translateY(105%); transition:transform .32s cubic-bezier(.22,1,.36,1); box-shadow:0 -8px 24px rgba(0,0,0,.45); pointer-events:auto; contain:layout paint; will-change:transform; }
.sell-trim-picker.is-open .sell-trim-picker-backdrop { opacity:1; }
.sell-trim-picker.is-open .sell-trim-picker-sheet { transform:translateY(0); }
.sell-trim-picker.is-closing .sell-trim-picker-backdrop { opacity:0; }
.sell-trim-picker.is-closing .sell-trim-picker-sheet { transform:translateY(105%); transition-duration:.28s; }
.sell-trim-options { display:grid; grid-template-columns:1fr; gap:10px; padding:4px 16px 0; contain:content; }
.sell-trim-option { min-height:82px; display:grid; grid-template-columns:58px minmax(0,1fr) 28px; align-items:center; gap:12px; direction:rtl; border:1px solid #32363a; border-radius:20px; background:#23272b; color:#e0e3e6; padding:10px 12px; text-align:right; contain:layout paint; }
.sell-trim-option.is-selected { border-color:rgba(216,180,254,.68); background:linear-gradient(145deg,rgba(216,180,254,.16),rgba(35,39,43,.95)); }
.sell-trim-big { width:58px; height:58px; border-radius:18px; display:flex; align-items:center; justify-content:center; background:radial-gradient(circle at 30% 25%,#35393d,#191c20 75%); border:1px solid #3f4347; color:#d8b4fe; font-size:20px; font-weight:900; }
.sell-trim-option span:nth-child(2) { display:flex; flex-direction:column; gap:4px; }
.sell-trim-option strong { font-size:16px; }
.sell-trim-option small { color:#75787c; font-size:10px; }
.sell-trim-option b { width:27px; height:27px; display:flex; align-items:center; justify-content:center; border-radius:50%; border:1px solid #3c3f43; color:transparent; }
.sell-trim-option.is-selected b { color:#262a2e; background:#d8b4fe; border-color:#d8b4fe; }
html.sell-trim-picker-open { overflow:hidden; }
html.sell-city-picker-open { overflow:hidden; }
html.part-status-picker-open { overflow:hidden; }
.part-status-option .sell-trim-big { color: var(--status-color, #d8b4fe); border-color: var(--status-color, #3f4347); }
.part-status-option.is-selected { border-color: var(--status-color, #d8b4fe); background: color-mix(in srgb, var(--status-color, #d8b4fe) 18%, #23272b 82%); }
.part-status-option.is-selected b { color: #1a1d21; background: var(--status-color, #d8b4fe); border-color: var(--status-color, #d8b4fe); }

/* SELL FLOW: color picker + creative price field */
.sell-color-trigger { width:100%; min-height:64px; display:flex; align-items:center; justify-content:flex-start; gap:10px; border:1px solid #33373b; border-radius:18px; background:linear-gradient(135deg,#212529,#1c2023); color:#e0e3e6; padding:7px 10px; text-align:right; }
.sell-color-trigger-swatch { flex:0 0 auto; width:44px; height:44px; border-radius:14px; border:1px solid rgba(255,255,255,.18); box-shadow:inset 0 0 0 1px rgba(0,0,0,.3); background:transparent; position:relative; overflow:hidden; }
.sell-color-trigger-swatch.is-empty::after { content:"+"; position:absolute; inset:0; display:grid; place-items:center; color:#888b8f; font-size:20px; font-weight:500; background:linear-gradient(135deg,#212529,#1b1e22); }
.sell-color-trigger-label { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:700; }
.sell-color-picker { position:fixed; inset:0; z-index:123; pointer-events:none; }
.sell-color-picker:not([hidden]) { display:block; }
.sell-color-picker-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.72); opacity:0; transition:opacity .28s ease; pointer-events:auto; }
.sell-color-picker-sheet { position:absolute; left:0; right:0; bottom:0; width:min(100%,520px); margin:0 auto; max-height:min(76dvh,620px); background:#202327; border:1px solid #34383c; border-bottom:0; border-radius:26px 26px 0 0; transform:translateY(105%); transition:transform .32s cubic-bezier(.22,1,.36,1); box-shadow:0 -8px 24px rgba(0,0,0,.45); overflow:hidden; pointer-events:auto; contain:layout paint; will-change:transform; }
.sell-color-picker.is-open .sell-color-picker-backdrop { opacity:1; }
.sell-color-picker.is-open .sell-color-picker-sheet { transform:translateY(0); }
.sell-color-picker.is-closing .sell-color-picker-backdrop { opacity:0; }
.sell-color-picker.is-closing .sell-color-picker-sheet { transform:translateY(105%); transition-duration:.28s; }
.sell-color-options { padding:0 14px calc(18px + env(safe-area-inset-bottom,0px)); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; max-height:calc(min(76dvh,620px) - 82px); overflow:auto; overscroll-behavior:contain; contain:content; }
.sell-color-option { min-height:72px; display:grid; grid-template-columns:48px minmax(0,1fr) 24px; align-items:center; gap:10px; direction:rtl; text-align:right; padding:9px 10px; border-radius:18px; border:1px solid #323539; background:#23272b; color:#e0e3e6; contain:layout paint; }
.sell-color-option[aria-selected="true"] { border-color:rgba(216,180,254,.65); background:linear-gradient(145deg,rgba(216,180,254,.17),rgba(35,39,43,.94)); }
.sell-color-option-swatch { width:48px; height:48px; border-radius:15px; border:1px solid rgba(255,255,255,.17); box-shadow:inset 0 0 0 1px rgba(0,0,0,.28),0 5px 16px rgba(0,0,0,.18); }
.sell-color-option-swatch[data-dark="true"] { box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 5px 16px rgba(0,0,0,.25); }
.sell-color-option-copy { min-width:0; font-size:13.5px; font-weight:800; }
.sell-color-option-tick { width:23px; height:23px; display:flex; align-items:center; justify-content:center; border-radius:50%; border:1px solid #3d4144; color:transparent; font-size:12px; }
.sell-color-option[aria-selected="true"] .sell-color-option-tick { color:#22262a; background:#d8b4fe; border-color:#d8b4fe; }
html.sell-color-picker-open { overflow:hidden; }
.sell-price-field { min-height:64px; display:grid; grid-template-columns:28px minmax(0,1fr) 64px; align-items:center; gap:4px; border:1px solid #33373b; border-radius:18px; background:radial-gradient(circle at 15% 10%,rgba(216,180,254,.10),transparent 42%),linear-gradient(135deg,#212529,#1c2023); padding:0 12px; transition:border-color .18s ease,box-shadow .18s ease; }
.sell-price-field:focus-within { border-color:rgba(216,180,254,.62); box-shadow:0 0 0 3px rgba(216,180,254,.08); }
.sell-price-currency { width:28px; height:28px; display:grid; place-items:center; border-radius:9px; background:rgba(216,180,254,.13); color:#d8b4fe; font-weight:900; font-size:14px; }
.sell-price-input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:#e0e3e6; font-size:17px; font-weight:850; letter-spacing:.02em; direction:ltr; text-align:left; }
.sell-price-input::placeholder { color:#63666a; }
.sell-price-unit { color:#6e7275; font-size:10px; font-weight:800; text-align:center; white-space:nowrap; display:inline-block; }
@keyframes sellPriceUnitFadeUp { from { opacity:0; transform:translateY(9px); } to { opacity:1; transform:translateY(0); } }
.sell-price-unit.is-animating { animation:sellPriceUnitFadeUp .32s cubic-bezier(.22,1,.36,1); }
.sell-price-presets { display:flex; gap:6px; margin-top:7px; overflow:auto; padding-bottom:1px; }
.sell-price-presets button { flex:0 0 auto; padding:5px 8px; border:1px solid #323539; border-radius:999px; background:#1d2125; color:#9a9da0; font-size:10px; font-weight:800; }
.sell-price-presets button:active { transform:scale(.97); }
@media (max-width:390px) { .sell-color-options { grid-template-columns:1fr; } }

/* SELL FLOW — price adders + animated mileage block (scoped to sell step) */
.sell-step-block-fields { width:100%; }
.sell-block-grid { display:grid; grid-template-columns:1fr; gap:12px; }
.sell-block-field { min-width:0; display:flex; flex-direction:column; gap:8px; }
.sell-block-label { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#babec1; font-size:12px; font-weight:800; }
.sell-block-label small { color:#6e7275; font-size:10px; font-weight:700; }
.sell-price-adders { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-top:2px; }
.sell-price-adders button { min-height:36px; border:1px solid #363a3e; border-radius:12px; background:linear-gradient(145deg,#202428,#1b1f22); color:#c9b6e8; font-size:10px; font-weight:900; transition:transform .16s ease,border-color .16s ease,background .16s ease; }
.sell-price-adders button.is-ready { border-color:rgba(216,180,254,.28); }
.sell-price-adders button:active { transform:translateY(1px) scale(.98); }
.sell-price-hint { color:#63666a; font-size:9px; line-height:1.55; }
.sell-mileage-input { width:100%; min-height:48px; border:1px solid #33373b; border-radius:15px; background:#1d2125; color:#e0e3e6; padding:0 13px; outline:none; direction:ltr; text-align:left; font-size:15px; font-weight:850; }
.sell-mileage-input:focus { border-color:rgba(216,180,254,.6); box-shadow:0 0 0 3px rgba(216,180,254,.07); }
@media (max-width:390px) { .sell-block-grid { grid-template-columns:1fr; } .sell-price-adders button { font-size:9.5px; } }

/* Sell-flow option row: compact monochrome controls, scoped to the sell form. */
.sell-check-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;width:100%}
.sell-check-card{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:8px;min-height:42px;padding:7px 9px;border:1px solid #33373b;border-radius:12px;background:linear-gradient(145deg,#202428,#1c2023);cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .16s ease;direction:rtl;overflow:hidden}
.sell-check-card:active{transform:scale(.992)}
.sell-check-card>input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.sell-check-box{width:17px;height:17px;flex:0 0 17px;border:1.25px solid #65696d;border-radius:5px;display:grid;place-items:center;color:transparent;font-size:10px;font-weight:1000;background:#1e2226;transition:.18s ease}
.sell-check-copy{min-width:0;display:block}
.sell-check-copy b{font-size:11px;color:#dee1e4;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sell-check-copy small{display:none}
.sell-check-card:has(input:checked){border-color:#b0b3b6;background:linear-gradient(145deg,#292d31,#1e2226)}
.sell-check-card:has(input:checked) .sell-check-box{background:#dde0e3;border-color:#dde0e3;color:#202327;box-shadow:0 0 0 2px rgba(255,255,255,.045)}
.sell-check-card:focus-within{border-color:#a0a3a7;box-shadow:0 0 0 2px rgba(255,255,255,.05)}
/* Neutralize violet accents inside the sell form only. */
[data-page="sell-step"] input:focus,[data-page="sell-step"] textarea:focus{border-color:#929599!important;box-shadow:0 0 0 3px rgba(255,255,255,.055)}
[data-page="sell-step"] .text-violet-300,[data-page="sell-step"] .text-violet-400{color:#c2c6c9!important}
[data-page="sell-step"] .bg-violet-300{background-color:#dadde0!important}

/* Final sell-form monochrome override: remove every remaining violet/purple accent
   from registration inputs and pickers without touching the rest of the site. */
[data-page="sell-step"] .sell-trim-trigger-icon,
[data-page="sell-step"] .sell-trim-big { color:#c6c9cc!important; }
[data-page="sell-step"] .sell-trim-option.is-selected {
  border-color:#878a8e!important;
  background:linear-gradient(145deg,#323639,#202428)!important;
}
[data-page="sell-step"] .sell-trim-option.is-selected b {
  color:#202327!important;
  background:#dadde0!important;
  border-color:#dadde0!important;
}
[data-page="sell-step"] .sell-color-option[aria-selected="true"] {
  border-color:#878a8e!important;
  background:linear-gradient(145deg,#323639,#202428)!important;
}
[data-page="sell-step"] .sell-color-option[aria-selected="true"] .sell-color-option-tick {
  color:#202327!important;
  background:#dadde0!important;
  border-color:#dadde0!important;
}
[data-page="sell-step"] .sell-price-field {
  background:linear-gradient(135deg,#212529,#1c2023)!important;
}
[data-page="sell-step"] .sell-price-field:focus-within {
  border-color:#878a8e!important;
  box-shadow:0 0 0 3px rgba(255,255,255,.055)!important;
}
[data-page="sell-step"] .sell-price-currency {
  background:#2d3135!important;
  color:#cccfd3!important;
}
[data-page="sell-step"] .sell-price-adders button {
  border-color:#373b3f!important;
  background:linear-gradient(145deg,#212529,#1b1f22)!important;
  color:#c0c4c7!important;
}
[data-page="sell-step"] .sell-price-adders button.is-ready {
  border-color:#74777b!important;
}
[data-page="sell-step"] .sell-mileage-input:focus {
  border-color:#878a8e!important;
  box-shadow:0 0 0 3px rgba(255,255,255,.055)!important;
}
[data-page="sell-step"] .sell-brand-trigger:focus,
[data-page="sell-step"] .sell-color-trigger:focus,
[data-page="sell-step"] .sell-trim-trigger:focus {
  border-color:#878a8e!important;
  box-shadow:0 0 0 3px rgba(255,255,255,.055)!important;
}

/* Sell publishing confirmation sheet: scoped only to the sell flow. */
.sell-publishing-sheet{position:fixed;inset:0;z-index:140;display:block;pointer-events:auto}
.sell-publishing-sheet[hidden]{display:none!important}
.sell-publishing-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:ui-fade-in .28s ease both}
.sell-publishing-card{position:absolute;left:0;right:0;bottom:0;width:min(100%,520px);margin:0 auto;background:linear-gradient(180deg,#212529 0%,#1b1f22 100%);border:1px solid #34383c;border-bottom:0;border-radius:28px 28px 0 0;box-shadow:0 -24px 70px rgba(0,0,0,.6);color:#e0e3e6;animation:sell-publishing-up .38s cubic-bezier(.22,1,.36,1) both;padding-bottom:env(safe-area-inset-bottom,0px)}
.sell-publishing-handle{display:flex;justify-content:center;padding:10px 0 2px}.sell-publishing-handle span{width:38px;height:5px;border-radius:999px;background:#494c50}
.sell-publishing-content{text-align:center;padding:20px 22px 24px}
.sell-publishing-icon{width:112px;height:112px;margin:0 auto 18px;border-radius:28px;border:2px dashed #74777b;background:#202327;display:flex;align-items:center;justify-content:center;position:relative;transition:border-color .3s ease,background .3s ease,transform .3s ease}
.sell-publishing-dash{width:68px;height:68px;border-radius:20px;border:2px dashed #565a5e;animation:sell-publishing-pulse 1.15s ease-in-out infinite}
.sell-publishing-icon.is-success{border-style:solid;border-color:#cccfd3;background:#dee1e4;color:#1d2125;transform:scale(1.03)}
.sell-publishing-icon.is-success .sell-publishing-dash{width:0;height:0;border:0;animation:none}
.sell-publishing-icon.is-success::after{content:'✓';font-size:54px;line-height:1;font-weight:800;color:#1d2125;animation:sell-publishing-check .42s cubic-bezier(.22,1,.36,1) both}
.sell-publishing-content h3{font-size:21px;font-weight:800;margin:0 0 7px}.sell-publishing-content p{font-size:12.5px;color:#93969a;margin:0 0 16px}
.sell-publishing-progress{height:3px;max-width:220px;margin:0 auto 17px;background:#313539;border-radius:999px;overflow:hidden}.sell-publishing-progress span{display:block;width:0;height:100%;background:#d5d8db;border-radius:999px;transition:width .15s linear}
.sell-publishing-stop{border:0;background:transparent;color:#989c9f;font-size:12px;padding:7px 12px}.sell-publishing-stop:active{transform:scale(.97)}
@keyframes sell-publishing-up{from{transform:translateY(105%);opacity:.65}to{transform:translateY(0);opacity:1}}
@keyframes sell-publishing-pulse{0%,100%{transform:scale(.96);opacity:.55}50%{transform:scale(1);opacity:1}}
@keyframes sell-publishing-check{from{transform:scale(.4) rotate(-12deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}
@media (prefers-reduced-motion:reduce){.sell-publishing-card,.sell-publishing-backdrop,.sell-publishing-dash,.sell-publishing-icon.is-success::after{animation:none!important}}

html.sell-publishing-open{overflow:hidden}

/* ================================================================
   SELL FLOW — unified minimal monochrome design (matches the
   "قیمت و وضعیت خودرو" demo palette/spacing). Applied to every step
   of the ad-submission flow, not just the price step, so the whole
   form reads as one consistent design language. Scoped to
   [data-page="sell-step"] plus the sell flow's picker sheets/modals,
   which live outside that section in the DOM but belong to the same
   flow. Declared last + !important so it wins over the older
   violet-tinted rules above without having to delete them.
   ================================================================ */
:root{
  --sm-bg:#14171a;
  --sm-surface:#202327;
  --sm-surface-2:#24282c;
  --sm-line:#2e3236;
  --sm-line-soft:#272b2f;
  --sm-text:#e0e3e6;
  --sm-text-dim:#929599;
  --sm-text-faint:#6a6d71;
  --sm-accent:#e0e3e6;
  --sm-accent-ink:#1a1d21;
  --sm-radius:16px;
  --sm-radius-sm:11px;
}

/* ---- page canvas + generic utility recolor, scoped to the sell flow ---- */
[data-page="sell-step"]{ background:var(--sm-bg); }
[data-page="sell-step"] .bg-neutral-900,
[data-page="sell-step"] .bg-neutral-900\/70,
[data-page="sell-step"] .bg-neutral-900\/60{ background:var(--sm-surface)!important; }
[data-page="sell-step"] .border-neutral-700,
[data-page="sell-step"] .border-neutral-800{ border-color:var(--sm-line)!important; }
[data-page="sell-step"] .text-neutral-400{ color:var(--sm-text-dim)!important; }
[data-page="sell-step"] .text-neutral-500{ color:var(--sm-text-faint)!important; }
[data-page="sell-step"] .text-neutral-100,
[data-page="sell-step"] .text-neutral-200{ color:var(--sm-text)!important; }
[data-page="sell-step"] input.rounded-xl,
[data-page="sell-step"] select.rounded-xl,
[data-page="sell-step"] textarea.rounded-xl{ border-radius:var(--sm-radius-sm)!important; }
[data-page="sell-step"] input:focus,
[data-page="sell-step"] textarea:focus,
[data-page="sell-step"] select:focus{ border-color:#4d5155!important; box-shadow:0 0 0 3px rgba(255,255,255,.05)!important; }
[data-page="sell-step"] .text-violet-300,
[data-page="sell-step"] .text-violet-400{ color:var(--sm-text-dim)!important; }
[data-page="sell-step"] .bg-violet-300{ background-color:var(--sm-accent)!important; color:var(--sm-accent-ink)!important; }

/* ---- step note card (title + hint shown at the top of each step) ---- */
[data-page="sell-step"] [data-slot="note"] .rounded-2xl{
  background:var(--sm-surface)!important;
  border:1px solid var(--sm-line)!important;
  border-radius:var(--sm-radius)!important;
}
[data-page="sell-step"] [data-slot="note"] .font-bold{ color:var(--sm-text)!important; }

/* ---- bottom action dock (next / back / submit) ---- */
[data-page="sell-step"] [data-slot="actions"] > button{ border-radius:999px!important; }

/* ---- price field: input + trailing unit, no currency badge, no adders ---- */
[data-page="sell-step"] .sell-price-currency,
[data-page="sell-step"] .sell-price-adders,
[data-page="sell-step"] .sell-price-hint{ display:none!important; }
[data-page="sell-step"] .sell-price-field{
  grid-template-columns:minmax(0,1fr) 70px!important;
  background:var(--sm-surface)!important;
  border:1px solid var(--sm-line)!important;
  border-radius:var(--sm-radius-sm)!important;
  min-height:56px!important;
}
[data-page="sell-step"] .sell-price-field:focus-within{
  border-color:#4d5155!important; box-shadow:0 0 0 3px rgba(255,255,255,.05)!important;
}
[data-page="sell-step"] .sell-price-input{ font-size:16px!important; font-weight:700!important; }
[data-page="sell-step"] .sell-price-unit{ color:var(--sm-text-faint)!important; font-size:12.5px!important; font-weight:700!important; }
[data-page="sell-step"] .sell-block-label{ color:var(--sm-text-dim)!important; }
[data-page="sell-step"] .sell-block-label small{ color:var(--sm-text-faint)!important; }
[data-page="sell-step"] .sell-mileage-input{
  background:var(--sm-surface)!important; border:1px solid var(--sm-line)!important;
  border-radius:var(--sm-radius-sm)!important; color:var(--sm-text)!important;
}
[data-page="sell-step"] .sell-mileage-input:focus{
  border-color:#4d5155!important; box-shadow:0 0 0 3px rgba(255,255,255,.05)!important;
}

/* ---- fixed-price / trade-in: stacked toggle rows with a switch, like the demo ---- */
[data-page="sell-step"] .sell-check-options{
  display:flex!important; flex-direction:column!important; gap:0!important;
  border:1px solid var(--sm-line)!important; border-radius:var(--sm-radius-sm)!important;
  overflow:hidden!important; margin-top:10px!important;
}
[data-page="sell-step"] .sell-check-card{
  border:0!important; border-radius:0!important; background:transparent!important;
  justify-content:space-between!important; padding:14px!important; min-height:auto!important;
}
[data-page="sell-step"] .sell-check-card:has(input:checked){ background:rgba(255,255,255,.03)!important; }
[data-page="sell-step"] .sell-check-card + .sell-check-card{ border-top:1px solid var(--sm-line-soft)!important; }
[data-page="sell-step"] .sell-check-copy{ display:flex!important; flex-direction:column!important; gap:2px!important; }
[data-page="sell-step"] .sell-check-copy b{
  font-size:14px!important; color:var(--sm-text)!important; font-weight:700!important; white-space:normal!important;
}
[data-page="sell-step"] .sell-check-copy small{
  display:block!important; font-size:11.5px!important; font-weight:600!important; color:var(--sm-text-faint)!important;
}
[data-page="sell-step"] .sell-check-box{
  width:40px!important; height:24px!important; flex:0 0 40px!important;
  border-radius:999px!important; border:0!important; background:var(--sm-line)!important;
  position:relative!important; color:transparent!important;
}
[data-page="sell-step"] .sell-check-box::after{
  content:""; position:absolute; top:3px; right:3px; width:18px; height:18px; border-radius:50%;
  background:var(--sm-text-faint); transition:transform .15s ease, background .15s ease;
}
[data-page="sell-step"] .sell-check-card:has(input:checked) .sell-check-box{ background:#3f4347!important; }
[data-page="sell-step"] .sell-check-card:has(input:checked) .sell-check-box::after{
  transform:translateX(-16px); background:var(--sm-text)!important;
}
[data-page="sell-step"] .sell-check-card:focus-within{ box-shadow:none!important; }

/* ---- brand / year / color / trim trigger buttons on the form ---- */
[data-page="sell-step"] .sell-brand-trigger,
[data-page="sell-step"] .sell-color-trigger,
[data-page="sell-step"] .sell-trim-trigger{
  background:var(--sm-surface)!important; border:1px solid var(--sm-line)!important;
  border-radius:var(--sm-radius-sm)!important; color:var(--sm-text)!important;
}
[data-page="sell-step"] .sell-brand-trigger:focus-visible,
[data-page="sell-step"] .sell-color-trigger:focus,
[data-page="sell-step"] .sell-trim-trigger:focus{
  border-color:#4d5155!important; box-shadow:0 0 0 3px rgba(255,255,255,.05)!important; outline:none!important;
}
[data-page="sell-step"] .sell-brand-trigger-mark,
[data-page="sell-step"] .sell-trim-trigger-icon,
[data-page="sell-step"] .sell-color-trigger-swatch.is-empty::after{
  background:var(--sm-surface-2)!important; border-color:var(--sm-line)!important; color:var(--sm-text-dim)!important;
}
[data-page="sell-step"] .sell-brand-trigger-arrow{ color:var(--sm-text-faint)!important; }

/* ================================================================
   SELL FLOW — "basics" row (برند + سال ساخت کنار هم، مدل تمام‌عرض)
   plus a refreshed, more premium look for the picker trigger boxes.
   ================================================================ */
.sell-basics-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.sell-basics-grid .sell-block-field--full{ grid-column:1 / -1; }
@media (max-width:340px){
  .sell-basics-grid{ grid-template-columns:1fr; }
  .sell-basics-grid .sell-block-field--full{ grid-column:auto; }
}

.sell-block-label span{ font-size:12.5px; letter-spacing:.01em; }

.sell-brand-trigger,
.sell-trim-trigger{
  border-radius:17px;
  padding:8px 14px 8px 12px;
  gap:11px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035), 0 2px 6px rgba(0,0,0,.22);
  transition:border-color .18s ease, transform .14s ease, background .18s ease, box-shadow .18s ease;
}
.sell-brand-trigger:active,
.sell-trim-trigger:active{
  transform:scale(.982);
  box-shadow:inset 0 1px 5px rgba(0,0,0,.3);
}
[data-page="sell-step"] .sell-brand-trigger:focus-visible,
[data-page="sell-step"] .sell-trim-trigger:focus{
  box-shadow:0 0 0 3px rgba(255,255,255,.08)!important;
}

.sell-brand-trigger-mark,
.sell-trim-trigger-icon{
  border-radius:13px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.sell-trim-trigger-icon{ font-size:17px; }

.sell-brand-trigger-label,
.sell-trim-trigger-label{ font-weight:800; }

/* Two-up row: tighten the brand/year boxes a touch so both sit
   comfortably side by side without crowding the arrow/ellipsis. */
.sell-basics-grid .sell-brand-trigger,
.sell-basics-grid > .sell-block-field:not(.sell-block-field--full) .sell-trim-trigger{
  min-height:60px;
  padding-left:8px;
}
.sell-basics-grid .sell-brand-trigger-mark{ width:44px; height:44px; }
.sell-basics-grid > .sell-block-field:not(.sell-block-field--full) .sell-trim-trigger-icon{ width:38px; height:38px; }

/* Model row spans full width — give it a little more room/presence. */
.sell-trim-trigger--wide{ min-height:60px; }

/* Subtle per-field accent tint so برند / سال / مدل read as distinct,
   purposefully designed fields rather than three identical boxes. */
[data-page="sell-step"] [data-action="openSellYearPicker"] .sell-trim-trigger-icon{
  background:linear-gradient(155deg, rgba(125,211,252,.18), var(--sm-surface-2))!important;
  border-color:rgba(125,211,252,.3)!important;
  color:#a9e2fb!important;
}
[data-page="sell-step"] [data-action="openSellModelPicker"] .sell-trim-trigger-icon{
  background:linear-gradient(155deg, rgba(253,224,71,.18), var(--sm-surface-2))!important;
  border-color:rgba(253,224,71,.3)!important;
  color:#f4e19c!important;
}
[data-page="sell-step"] [data-action="openSellBrandPicker"] .sell-brand-trigger-mark{
  background:radial-gradient(circle at 32% 26%, var(--sm-surface-2), var(--sm-bg) 78%)!important;
}

/* ---- damage-step diagram card + panel chips + location map frame ---- */
[data-page="sell-step"] [data-slot="diagram"]{
  background:var(--sm-surface)!important; border:1px solid var(--sm-line)!important; border-radius:var(--sm-radius)!important;
}
[data-page="sell-step"] .damage-chip{ border-color:var(--sm-line)!important; color:var(--sm-text-dim)!important; }
[data-page="sell-step"] .sell-location-map{ border-color:var(--sm-line)!important; border-radius:var(--sm-radius)!important; }

/* ---- photo picker + photo tiles (step 1: عکس‌ها) ---- */
[data-page="sell-step"] .border-dashed{ border-color:var(--sm-line)!important; }
[data-page="sell-step"] [data-slot="photos"] > div{ border-color:var(--sm-line)!important; }

/* ---- form-level error banner + terms line ---- */
[data-page="sell-step"] [data-slot="terms"]{ color:var(--sm-text-faint)!important; }

/* ================================================================
   SELL FLOW pickers/sheets — these mount outside [data-page="sell-step"]
   (in #modalWrap) but are still part of the same ad-submission flow,
   so they get the same tokens.
   ================================================================ */
.sell-year-picker-sheet,
.sell-brand-picker-sheet,
.sell-color-picker-sheet,
.sell-trim-picker-sheet,
.sell-publishing-card{
  /* Frosted dark glass instead of a flat/solid fill. */
  background:rgba(27,31,34,.66)!important;
  -webkit-backdrop-filter:blur(22px) saturate(140%)!important;
  backdrop-filter:blur(22px) saturate(140%)!important;
  border-color:rgba(255,255,255,.22)!important;
  border-bottom-width:1px!important;
  /* Float the sheet instead of stretching it edge-to-edge: side (and
     bottom) insets plus rounding all four corners so it reads as a
     card sitting above the page, not a bar stuck to the screen. */
  left:12px!important; right:12px!important; bottom:12px!important;
  width:auto!important; margin:0!important;
  border-radius:26px!important;
}
.sell-year-picker-close{ background:rgba(255,255,255,.08)!important; border-color:rgba(255,255,255,.28)!important; color:var(--sm-text)!important; }
.sell-year-picker-handle span{ background:rgba(255,255,255,.5)!important; }
.sell-year-wheel-highlight{ background:rgba(255,255,255,.07)!important; backdrop-filter: blur(6px)!important; -webkit-backdrop-filter: blur(6px)!important; border-color:rgba(255,255,255,.12)!important; box-shadow:inset 0 1px 2px rgba(0,0,0,.6), inset 0 -1px 2px rgba(0,0,0,.6), 0 6px 16px -6px rgba(0,0,0,.8)!important; }
.sell-year-wheel-item.is-selected{ color:var(--sm-text)!important; }
.sell-year-picker-confirm{
  background:var(--sm-accent)!important; color:var(--sm-accent-ink)!important; box-shadow:none!important;
}
.sell-brand-option,
.sell-color-option,
.sell-trim-option{
  border-color:rgba(255,255,255,.18)!important;
  background:rgba(255,255,255,.04)!important;
  border-radius:var(--sm-radius-sm)!important;
}
.sell-brand-option[aria-selected="true"],
.sell-color-option[aria-selected="true"],
.sell-trim-option.is-selected{
  border-color:#e9ecef!important;
  background:rgba(255,255,255,.12)!important;
  box-shadow:none!important;
}
.sell-brand-option-mark,
.sell-trim-big{
  background:rgba(0,0,0,.5)!important; border-color:rgba(255,255,255,.22)!important; color:var(--sm-text)!important;
}
.sell-brand-option-tick,
.sell-trim-option b,
.sell-color-option-tick{ border-color:rgba(255,255,255,.3)!important; }
.sell-brand-option[aria-selected="true"] .sell-brand-option-tick,
.sell-trim-option.is-selected b,
.sell-color-option[aria-selected="true"] .sell-color-option-tick{
  color:var(--sm-accent-ink)!important; background:var(--sm-accent)!important; border-color:var(--sm-accent)!important;
}
.sell-model-picker-search{
  background:rgba(255,255,255,.05)!important; border-color:rgba(255,255,255,.22)!important; color:var(--sm-text)!important;
}
.sell-model-picker-search-icon{ color:var(--sm-text-dim)!important; }
.sell-model-option{
  border-color:rgba(255,255,255,.18)!important;
  background:rgba(255,255,255,.04)!important;
}
.sell-model-option[aria-selected="true"]{
  border-color:#e9ecef!important;
  background:rgba(255,255,255,.12)!important;
}
.sell-model-option-tick{ border-color:rgba(255,255,255,.3)!important; }
.sell-model-option[aria-selected="true"] .sell-model-option-tick{
  color:var(--sm-accent-ink)!important; background:var(--sm-accent)!important; border-color:var(--sm-accent)!important;
}
.sell-model-option-chevron{ color:var(--sm-text-faint)!important; }
.sell-model-option.has-submodels .sell-model-option-chevron{ color:var(--sm-accent)!important; }
.sell-model-back{ color:var(--sm-text-dim)!important; background:var(--sm-surface-2)!important; }
.sell-model-picker-empty{ color:var(--sm-text-faint)!important; }

/* ---------------------------------------------------------------
   SWIPE-TO-SAVE (car listing cards) — swiping a listing card reveals
   a blue "save" panel behind it (site's own bookmark icon). Release
   past the threshold to snap it open, tap the panel to save/unsave.
   Wrapper: .swipe-row > .swipe-save-panel + .swipe-card-fg
   selector: .swipe-row
--------------------------------------------------------------- */
.swipe-row { position: relative; overflow: hidden; border-radius: var(--swipe-radius, 16px); }
.swipe-save-panel {
  position: absolute;
  top: 0; bottom: 0; left: 0;
  width: var(--swipe-reveal, 76px);
  border-radius: var(--swipe-radius, 16px);
  background: linear-gradient(155deg, #6591e6 0%, #3f63c4 100%);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 16px rgba(30, 60, 140, .35);
  z-index: 0;
}
.swipe-save-panel svg { filter: drop-shadow(0 1px 1px rgba(0,0,0,.18)); }
.swipe-save-panel.is-saved { background: linear-gradient(155deg, #4fc47a 0%, #2f9c58 100%); }
.swipe-card-fg {
  position: relative;
  z-index: 1;
  transform: translateX(0px);
  transition: transform .22s cubic-bezier(.22,1,.36,1);
  /* PERF: was `will-change: transform` on EVERY card, i.e. one permanent
     GPU layer per card (12–40+ of them). Now only promoted while a card is
     actually being dragged / hinted (see the rule below). */
  touch-action: pan-y;
  /* Opaque backdrop so the blue .swipe-save-panel — created on demand by
     js/19-swipe-save-card.js the instant a drag is confirmed horizontal,
     not present in the DOM at all otherwise — can never peek through the
     card's own edges/gaps while it's revealed behind it mid-swipe. */
  background: #14171a;
  border-radius: var(--swipe-radius, 16px);
}
html.theme-light .swipe-card-fg { background: #e9ecef; }
.swipe-row.is-dragging .swipe-card-fg { transition: none; }
.swipe-row.is-dragging .swipe-card-fg,
.swipe-row.is-hint-reveal .swipe-card-fg { will-change: transform; }
/* Slower, calmer reveal used only for the auto "you can swipe this" nudge
   (js/19-swipe-save-card.js: swipeShowFirstCardHint) — a real user swipe
   release keeps the snappier default transition above. */
.swipe-row.is-hint-reveal .swipe-card-fg { transition: transform .64s cubic-bezier(.16,1,.3,1); }


/* ================================================================
   HOMEPAGE DEMO INTEGRATION
   Visual source: marque_registry_redesign.html
   Scope: #pageContent -> .home-demo-page only.
   ================================================================ */

.home-demo-page {
  --home-demo-bg: #14171a;
  --home-demo-bg-elevated: #1f2327;
  --home-demo-card-border: #2c3034;
  --home-demo-text: #dcdfe2;
  --home-demo-text-muted: #888b8f;
  --home-demo-accent: #8f7cf2;
  --home-demo-accent-soft: rgba(143,124,242,0.14);
  width: 100%;
  color: var(--home-demo-text);
  font-family: "Vazirmatn", "Segoe UI", Tahoma, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.home-demo-phone {
  max-width: 430px;
  margin: 0 auto;
  min-height: 100vh;
  background: var(--home-demo-bg);
  padding-bottom: 90px;
  position: relative;
}

.home-demo-search-wrap {
  padding: 18px 20px 8px;
}

.home-demo-search {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  background: var(--home-demo-bg-elevated);
  border: 1px solid var(--home-demo-card-border);
  border-radius: 999px;
  padding: 14px 20px;
  color: var(--home-demo-text-muted);
  font-size: 14.5px;
  font-weight: 400;
  line-height: 1.2;
  text-align: right;
  cursor: pointer;
  user-select: none;
}

.home-demo-search span { flex: 1; }
.home-demo-search svg { flex-shrink: 0; opacity: 0.8; }

/* Hero headline explaining what the site is — sits above the brand grid
   so a first-time visitor understands this is a car buy/sell marketplace
   before they see the brand-logo cards. */
.home-demo-hero {
  padding: 18px 20px 4px;
  text-align: right;
}

.home-demo-hero-title {
  margin: 0;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.3;
  color: var(--home-demo-text);
}

.home-demo-hero-sub {
  margin: 8px 0 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.7;
  color: var(--home-demo-text-muted);
}

/* Section label — a grid item spanning the full row, placed right after
   the video card and before the individual brand cards, so it reads as
   the heading for "browse by brand" rather than floating above
   everything on the page. */
.home-demo-section-title {
  grid-column: 1 / span 2;
  padding: 4px 0 2px;
  text-align: right;
}

.home-demo-section-title-main {
  margin: 0;
  font-size: 15px;
  font-weight: 800;
  color: var(--home-demo-text);
}

.home-demo-section-title-sub {
  margin: 4px 0 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--home-demo-text-muted);
}

/* Soft upward fade-in for home-page headline/caption text. Reuses the
   same easing as .card-fade-in for consistency with the rest of the app. */
@keyframes homeTextRise {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.home-text-rise {
  animation: homeTextRise 0.5s cubic-bezier(.22,1,.36,1) both;
}

.home-demo-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  padding: 14px 20px 10px;
}

.home-demo-card {
  width: 100%;
  min-width: 0;
  aspect-ratio: 0.92 / 1;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  border: 1px solid var(--home-demo-card-border);
  background: #1d2125;
  transition: transform 0.15s ease;
  padding: 0;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  text-align: initial;
}

.home-demo-card:active { transform: scale(0.97); }

.home-demo-card-glow {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 18% 20%, var(--home-demo-tint) 0%, transparent 40%),
    radial-gradient(circle at 82% 16%, var(--home-demo-tint) 0%, transparent 36%),
    radial-gradient(circle at 14% 80%, var(--home-demo-tint) 0%, transparent 38%),
    radial-gradient(circle at 86% 76%, var(--home-demo-tint) 0%, transparent 42%),
    radial-gradient(circle at 50% 88%, var(--home-demo-tint) 0%, transparent 46%);
  z-index: 0;
}

.home-demo-card-bg {
  position: absolute;
  left: 50%;
  top: 44%;
  transform: translate(-50%, -50%);
  width: 60%;
  height: 60%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  z-index: 1;
}

.home-demo-card-bg.dark-logo { filter: invert(1) brightness(1.1); }

.home-demo-card-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.45) 30%, rgba(0,0,0,0.05) 55%, transparent 65%);
  z-index: 2;
}

.home-demo-card-label {
  position: absolute;
  bottom: 12px;
  right: 14px;
  left: 14px;
  text-align: right;
  z-index: 3;
  display: block;
}

.home-demo-card-name {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-family: 'Vazirmatn', "Arial Black", Arial, "Helvetica Neue", sans-serif;
  font-size: 14.5px;
  font-weight: 800;
  letter-spacing: 0.2px;
  line-height: 1.25;
  color: var(--home-demo-text);
  text-shadow: 0 1px 2px rgba(0,0,0,0.9), 0 2px 10px rgba(0,0,0,0.6);
  direction: ltr;
}

.home-demo-card-count {
  direction: rtl;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 5px;
  overflow: hidden;
  white-space: nowrap;
  font-size: 11.5px;
  font-weight: 400;
  line-height: normal;
  color: #c5c8cb;
  margin-top: 4px;
}

.home-demo-card-count span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
}

.home-demo-card-count b {
  color: var(--home-demo-accent);
  font-weight: 700;
}

.home-demo-card-dot {
  width: 5px;
  height: 5px;
  flex: 0 0 5px;
  border-radius: 50%;
  background: var(--home-demo-brand-color, var(--home-demo-accent));
  display: inline-block;
}

.home-demo-card-all {
  grid-column: 1 / span 2;
  aspect-ratio: 2 / 1.05;
  background:
    linear-gradient(to left, rgba(26,29,33,0.95) 0%, rgba(26,29,33,0.55) 38%, rgba(26,29,33,0.05) 70%),
    url('home-demo-assets/all-brands-banner.webp');
  background-size: cover;
  background-position: center 46%;
  color: var(--home-demo-text);
}

.home-demo-banner-topmark {
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  gap: 6px;
  z-index: 3;
}

.home-demo-banner-dot {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: var(--home-demo-accent);
}

.home-demo-banner-topmark > span:last-child {
  font-family: 'Vazirmatn', Georgia, "Times New Roman", serif;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 2px;
  line-height: normal;
  color: #bec1c4;
}

.home-demo-banner-text {
  position: absolute;
  right: 18px;
  bottom: 52px;
  z-index: 3;
  max-width: 55%;
  text-align: right;
  display: block;
}

.home-demo-banner-title {
  display: block;
  font-size: 20px;
  font-weight: 800;
  line-height: normal;
  color: var(--home-demo-text);
  margin-bottom: 4px;
}

.home-demo-banner-sub {
  display: block;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
  color: #babdc0;
}

.home-demo-banner-btn {
  position: absolute;
  left: 50%;
  top: 26%;
  transform: translate(-50%, -50%);
  z-index: 3;
  background: var(--home-demo-text);
  color: #1a1d21;
  font-size: 12px;
  font-weight: 700;
  line-height: normal;
  padding: 8px 16px;
  border-radius: 999px;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(0,0,0,0.35);
}

.home-demo-note {
  margin: 22px 20px 0;
  padding: 14px 16px;
  background: var(--home-demo-accent-soft);
  border: 1px solid rgba(143,124,242,0.3);
  border-radius: 14px;
  font-size: 12.5px;
  font-weight: 400;
  color: #cfc8f5;
  line-height: 1.9;
  text-align: right;
}


/* Two "standing" (portrait) shortcut cards under the video banner —
   crashed/accident-history cars and brand-new imported cars. Noticeably
   taller than wide, more so than the default brand-card ratio. */
.home-demo-category-card {
  aspect-ratio: 0.45 / 1;
}

/* Real photo background for a category card (currently just the
   "imported" one). Sits behind the tint/shade layers, kept fully sharp —
   only the rim is darkened/softened via an inset shadow, like a vignette,
   so the photo itself never gets blurred. */
.home-demo-category-photo {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  box-shadow: inset 0 0 28px 12px rgba(0,0,0,0.65);
  z-index: 0;
}

.home-demo-category-icon {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  color: var(--home-demo-brand-color, var(--home-demo-text));
  background: rgba(26,29,33,0.4);
  border: 1px solid rgba(255,255,255,0.14);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.home-demo-category-name {
  white-space: normal;
  line-height: 1.3;
}

.home-demo-category-sub {
  display: block;
  margin-top: 5px;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  color: #c5c8cb;
}

/* HOMEPAGE ALL-LISTINGS VIDEO CARD */
.home-demo-card-all {
  aspect-ratio: 16 / 9;
  background: #181c1f;
  isolation: isolate;
  border: none;
  box-shadow: 0 14px 44px -10px rgba(0,0,0,0.75);
}

.home-demo-card-all .home-demo-banner-topmark,
.home-demo-card-all .home-demo-banner-text,
.home-demo-card-all .home-demo-banner-btn {
  display: none;
}

/* Thin glass-edge sheen around the card border — a subtle diagonal
   highlight rather than a flat stroke, so the card reads as "glass over
   video" instead of a plain bordered box. */
.home-demo-card-all::after {
  content: none;
}

.home-demo-all-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}

/* Sits on top of the video until it actually has a frame to show, so the
   browser's own "not loaded yet" placeholder (a big play triangle on a
   blurred still) never appears — this is a plain shimmering block instead. */
.home-demo-all-skeleton {
  position: absolute;
  inset: 0;
  z-index: 5;
  border-radius: inherit;
  opacity: 1;
  transition: opacity 0.35s ease;
}

.home-demo-card-all.home-demo-all-video-ready .home-demo-all-skeleton {
  opacity: 0;
  pointer-events: none;
}

.home-demo-all-video-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.55) 0%,
    rgba(0,0,0,0.22) 30%,
    rgba(0,0,0,0.05) 55%,
    rgba(0,0,0,0.28) 85%,
    rgba(0,0,0,0.5) 100%
  );
}

/* Pulsing "live" chip, top-right. */
.home-demo-all-live {
  position: absolute;
  top: 13px;
  left: 14px;
  z-index: 3;
  direction: rtl;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  font-weight: 600;
  color: rgba(255,255,255,0.85);
  background: rgba(26,29,33,0.45);
  border: 1px solid rgba(255,255,255,0.14);
  padding: 5px 8px;
  border-radius: 999px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

/* FIX (perf): this used to animate box-shadow directly, which forces the
   browser to repaint the dot every frame for as long as the home page is
   open — box-shadow isn't compositor-only like transform/opacity are.
   Same expanding-ring look, but now done as a separate ::after layer that
   only animates transform+opacity (compositor-friendly, no repaint),
   matching the technique already used for .home-demo-all-arrow-btn::before. */
.home-demo-all-live-dot {
  position: relative;
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: #6ee7a0;
}

.home-demo-all-live-dot::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(110,231,160,0.6);
  transform-origin: center;
  animation: home-demo-live-pulse 1.8s ease-out infinite;
}

@keyframes home-demo-live-pulse {
  0% { transform: scale(1); opacity: 0.55; }
  70% { transform: scale(3.3); opacity: 0; }
  100% { transform: scale(3.3); opacity: 0; }
}

/* Dark blur that rises from the bottom edge of the card and fades out
   toward the middle, via a mask on the blur layer itself (rather than a
   flat gradient scrim) so the content sits on real frosted glass. */
.home-demo-all-blur {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(to top, rgba(22,25,29,0.62) 0%, rgba(22,25,29,0.32) 26%, rgba(22,25,29,0) 48%);
  backdrop-filter: blur(13px) saturate(1.15);
  -webkit-backdrop-filter: blur(13px) saturate(1.15);
  -webkit-mask-image: linear-gradient(to top, #14171a 0%, #14171a 22%, transparent 48%);
  mask-image: linear-gradient(to top, #14171a 0%, #14171a 22%, transparent 48%);
}

.home-demo-all-content {
  position: absolute;
  inset: 0;
  z-index: 3;
  direction: rtl;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  flex-direction: column;
  text-align: right;
  padding: 16px 18px 18px;
  pointer-events: none;
}

.home-demo-all-count {
  align-self: flex-start;
  display: block;
  font-size: 11.5px;
  font-weight: 500;
  color: rgba(255,255,255,0.75);
  text-shadow: 0 1px 4px rgba(0,0,0,0.9);
  margin-bottom: 4px;
}

.home-demo-all-count b {
  color: #e9ecef;
  font-weight: 800;
}

/* FIX: this used to be a plain heading line ("همه‌ی خودروها را ببین") sitting
   above a separate pill-shaped CTA button that repeated the same idea in
   different words ("مشاهده همه آگهی‌ها") plus an arrow icon. Per request,
   that heading's text now IS the CTA copy — shown once, styled like a
   button label — and the arrow that used to live inline with the old CTA
   text has moved out into its own standalone round button (see
   .home-demo-all-arrow-btn below), pinned to the opposite corner. */
.home-demo-all-cta {
  align-self: flex-start;
  display: block;
  color: #e9ecef;
  font-size: 19px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: -0.3px;
  text-shadow: 0 2px 6px rgba(0,0,0,0.95);
}

/* Standalone round arrow button, bottom-left corner of the card — facing
   the "همه‌ی خودروها را ببین" text, which (in RTL) sits bottom-right via
   .home-demo-all-content. Presentational only: the whole card is the real
   click target (data-action="goListings" on the button itself), so this
   stays pointer-events:none and just needs to look unmistakably like a
   button. */
.home-demo-all-arrow-btn {
  position: absolute;
  left: 18px;
  bottom: 18px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(26,29,33,0.4);
  color: #e9ecef;
  backdrop-filter: blur(6px) saturate(1.2);
  -webkit-backdrop-filter: blur(6px) saturate(1.2);
  box-shadow: 0 6px 18px -4px rgba(0,0,0,0.6);
  pointer-events: none;
}

/* Pulsing ring — a separate ::before layer so the animated scale/opacity
   never fights with the button's own resting box-shadow (see
   :active below), same "expanding ring" technique as .home-demo-all-live-dot's
   pulse. Kept on its own element rather than animating the button's box-shadow
   directly so the depth shadow stays constant while just the ring beats. */
.home-demo-all-arrow-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.65);
  animation: home-demo-arrow-pulse 2.2s ease-out infinite;
}

@keyframes home-demo-arrow-pulse {
  0% { transform: scale(1); opacity: 0.6; }
  70% { transform: scale(1.6); opacity: 0; }
  100% { transform: scale(1.6); opacity: 0; }
}

/* The white arrow icon itself now beats along with the ring: a quick
   compress (the "فشرده شدن" squeeze) followed by a slight overshoot and
   settle, on the same 2.2s cycle as .home-demo-all-arrow-btn::before so
   both read as one pulse instead of two unrelated animations. */
.home-demo-all-arrow-btn svg {
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  transform-origin: center;
  animation: home-demo-arrow-icon-pulse 2.2s ease-out infinite;
}

@keyframes home-demo-arrow-icon-pulse {
  0% { transform: scale(1); }
  8% { transform: scale(0.78); }
  22% { transform: scale(1.1); }
  34% { transform: scale(1); }
  100% { transform: scale(1); }
}

.home-demo-card-all:active .home-demo-all-arrow-btn {
  transform: scale(0.96);
}

/* =========================================================================
   BODY CONDITION OVERLAY — "وضعیت جامع بدنه" full-screen rating popup
   ========================================================================= */
.bcond-trigger{display:flex;align-items:center;gap:12px;width:100%;text-align:right;background:linear-gradient(180deg,#25292d,#202327);border:1px solid #393d41;border-radius:16px;padding:14px 16px;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .15s ease;color:#e0e3e6}
.bcond-trigger:active{transform:scale(.98)}
.bcond-trigger:hover{border-color:#4e5256}
.bcond-trigger-icon{flex:0 0 auto;width:38px;height:38px;border-radius:12px;background:conic-gradient(from 180deg,#14b8a6,#22c55e,#eab308,#f97316,#ef4444,#c026d3,#9333ea,#14b8a6);display:flex;align-items:center;justify-content:center;position:relative}
.bcond-trigger-icon::after{content:'';position:absolute;inset:3px;border-radius:9px;background:#202327}
.bcond-trigger-icon::before{content:'⚙';position:relative;z-index:1;font-size:15px;color:#d3d6d9}
.bcond-trigger-text{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}
.bcond-trigger-text strong{font-size:14px;font-weight:700}
.bcond-trigger-text small{font-size:11.5px;color:#85888c}
.bcond-trigger-chevron{flex:0 0 auto;color:#6e7175}
.bcond-trigger.has-rating .bcond-trigger-icon::before{content:'✓'}

.bcond-overlay{position:fixed;inset:0;z-index:150;pointer-events:auto}
.bcond-overlay[hidden]{display:none!important}
.bcond-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity .3s ease}
.bcond-sheet{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 0%,#24282c 0%,#1a1d21 62%);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 18px) 20px calc(env(safe-area-inset-bottom,0px) + 26px);color:#e0e3e6;transform:translateY(14px) scale(.985);opacity:0;transition:transform .38s cubic-bezier(.22,1,.36,1),opacity .3s ease}
.bcond-overlay.is-open .bcond-backdrop{opacity:1}
.bcond-overlay.is-open .bcond-sheet{transform:translateY(0) scale(1);opacity:1}

.bcond-topbar{display:flex;align-items:center;justify-content:flex-start}
.bcond-back{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;border:0;color:#e0e3e6;padding:0}
.bcond-back svg{transform:scaleX(-1)}

.bcond-heading{margin-top:22px;text-align:right}
.bcond-title{font-size:26px;font-weight:800;margin:0;letter-spacing:-.02em}
.bcond-subtitle{text-align:right;color:#939699;font-size:14px;margin:6px 0 0}

.bcond-numeral-wrap{display:flex;align-items:center;justify-content:center;margin:26px 0 4px}
.bcond-numeral{font-size:112px;line-height:1;font-weight:800;color:var(--bcond-color,#d3d6d9);transition:color .35s ease;display:inline-block;will-change:transform,opacity,filter;filter:blur(1.5px) drop-shadow(0 0 22px var(--bcond-glow,rgba(0,0,0,.4)));opacity:.92}
.bcond-numeral.is-pulsing{animation:bcond-num-pop .32s cubic-bezier(.22,1,.36,1)}
@keyframes bcond-num-pop{0%{opacity:0;filter:blur(14px);transform:scale(.72) translateY(6px)}55%{opacity:.85;filter:blur(4px);transform:scale(1.06)}100%{opacity:.92;filter:blur(1.5px) drop-shadow(0 0 22px var(--bcond-glow,rgba(0,0,0,.4)));transform:scale(1)}}

.bcond-label{text-align:center;font-size:21px;font-weight:800;color:var(--bcond-color,#d3d6d9);transition:color .35s ease}
.bcond-desc{text-align:center;color:#939699;font-size:13.5px;max-width:300px;margin:8px auto 0;line-height:1.85;min-height:44px}

.bcond-slider-area{margin-top:44px;position:relative;padding-top:34px}
.bcond-range-badge{position:absolute;top:0;right:30%;transform:translateX(50%);background:var(--bcond-color,#ef4444);color:#212529;font-size:10.5px;font-weight:800;padding:5px 12px;border-radius:999px;white-space:nowrap;box-shadow:0 4px 14px var(--bcond-glow,rgba(0,0,0,.35));transition:background-color .35s ease,opacity .2s ease;z-index:2}

.bcond-track-wrap{direction:ltr;padding:0 4px}
.bcond-track{position:relative;height:34px;background:linear-gradient(90deg,#0ea5a5 0%,#22c55e 11%,#84cc16 22%,#eab308 33%,#f59e0b 44%,#f97316 55%,#ef4444 66%,#dc2626 77%,#c026d3 88%,#9333ea 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);clip-path:polygon(0% 48%,6% 44%,14% 39%,24% 33%,35% 27%,47% 21%,60% 15%,74% 9%,88% 3%,100% 0%,100% 100%,88% 97%,74% 91%,60% 85%,47% 79%,35% 73%,24% 67%,14% 61%,6% 56%);transition:filter .2s ease}

.bcond-usual-band{position:absolute;top:-6px;bottom:-6px;background-image:repeating-linear-gradient(45deg,rgba(0,0,0,.55) 0,rgba(0,0,0,.55) 3px,transparent 3px,transparent 8px);border-inline:2px solid rgba(0,0,0,.55);pointer-events:none}

.bcond-thumb{position:absolute;top:50%;left:44.44%;width:32px;height:32px;border-radius:50%;background:#e9ecef;border:6px solid var(--bcond-color,#d3d6d9);box-shadow:0 0 0 1px rgba(0,0,0,.2),0 0 0 6px rgba(255,255,255,.06),0 6px 16px var(--bcond-glow,rgba(0,0,0,.4));transform:translate(-50%,-50%);cursor:grab;transition:border-color .35s ease,box-shadow .35s ease,left .05s linear;touch-action:none;z-index:3}
.bcond-thumb:active{cursor:grabbing}

.bcond-usual-caption{display:block;text-align:center;margin-top:12px;font-size:11.5px;font-weight:700;color:#73767a;letter-spacing:.02em}

.bcond-clear{display:block;margin:28px auto 0;background:none;border:0;color:#aaadb0;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.bcond-divider{height:1px;background:rgba(255,255,255,.08);margin:18px 0 0}
.bcond-howto{display:block;margin:14px auto 0;background:none;border:0;color:#6e7175;font-size:12px}

.bcond-save-big{margin-top:auto;width:100%;border:0;border-radius:16px;padding:15px 18px;background:var(--bcond-color,#54585b);box-shadow:0 8px 22px var(--bcond-glow,rgba(0,0,0,.35));cursor:pointer;transition:background-color .35s ease,box-shadow .35s ease,transform .15s ease;display:flex;flex-direction:column;align-items:center;gap:2px}
.bcond-save-big:active{transform:scale(.98)}
.bcond-save-big-text{font-size:16px;font-weight:800;color:#212529}
.bcond-save-big-sub{font-size:11.5px;font-weight:700;color:rgba(33,37,41,.72)}

@media (prefers-reduced-motion:reduce){
  .bcond-numeral.is-pulsing{animation:none!important}
  .bcond-sheet,.bcond-backdrop,.bcond-thumb,.bcond-range-badge{transition:none!important}
}


/* ===============================================================
   VEHICLE DETAIL — premium listing hierarchy pass
   Purpose: make the detail page read like a marketplace listing:
   photo → identity → price → key facts → details → contact.
   No route/action behavior is changed here.
================================================================= */
[data-page="vehicle"].vehicle-detail-page .detail-info-sheet {
  padding: 18px 20px 0;
  border-radius: 0;
  box-shadow: none;
}

[data-page="vehicle"].vehicle-detail-page .detail-title-row {
  align-items: center;
  margin-top: 2px;
}
[data-page="vehicle"].vehicle-detail-page .detail-name-row {
  gap: 9px;
  align-items: center;
}
[data-page="vehicle"].vehicle-detail-page .detail-car-name {
  font-size: 27px;
  line-height: 1.12;
  font-weight: 900;
  letter-spacing: -.035em;
}
[data-page="vehicle"].vehicle-detail-page .detail-year-badge {
  order: 0;
  padding: 7px 12px;
  border-radius: 11px;
  font-size: 16px;
  line-height: 1;
  background: #e9ecef;
  box-shadow: 0 5px 16px rgba(255,255,255,.12);
}
[data-page="vehicle"].vehicle-detail-page .detail-location {
  margin-top: 8px;
  font-size: 12.5px;
  color: #818488;
}
[data-page="vehicle"].vehicle-detail-page .detail-dot-sep { background:#575b5f; }

[data-page="vehicle"].vehicle-detail-page .detail-main-price-row {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:23px 0 17px;
  padding:17px 17px 16px 16px;
  min-height:91px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.085);
  border-radius:23px;
  background:
    radial-gradient(circle at 100% 0%,rgba(255,255,255,.105),transparent 34%),
    linear-gradient(145deg,#292d31 0%,#212529 52%,#1f2327 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.045),
    0 12px 30px rgba(0,0,0,.20);
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price-row::before {
  content:"";
  position:absolute;
  top:14px;
  bottom:14px;
  right:0;
  width:3px;
  border-radius:4px 0 0 4px;
  background:linear-gradient(180deg,#e9ecef,#e9ecef);
  box-shadow:0 0 16px rgba(255,255,255,.16);
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price-row::after {
  content:"";
  position:absolute;
  width:120px;
  height:120px;
  left:-55px;
  bottom:-72px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.035);
  box-shadow:0 0 0 15px rgba(255,255,255,.012),0 0 0 30px rgba(255,255,255,.008);
  pointer-events:none;
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price {
  position:relative;
  z-index:1;
  min-width:0;
  direction:rtl;
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price-value {
  font-size:29px;
  line-height:1.08;
  font-weight:900;
  letter-spacing:-.035em;
  color:#e5e8eb;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-shadow:0 1px 12px rgba(255,255,255,.035);
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price-label {
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:7px;
  color:#898d90;
  font-size:11px;
  font-weight:500;
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price-label::before {
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:#e9ecef;
  box-shadow:0 0 8px rgba(255,255,255,.38);
}
[data-page="vehicle"].vehicle-detail-page .detail-facts-grid {
  margin-top:0;
  min-height:128px;
  background:#202428;
  border:1px solid #313539;
  border-radius:22px;
  box-shadow:0 10px 30px rgba(0,0,0,.14);
}
[data-page="vehicle"].vehicle-detail-page .detail-fact {
  padding:18px 7px;
  gap:8px;
}
[data-page="vehicle"].vehicle-detail-page .detail-fact:not(:first-child)::before {
  top:18px;
  bottom:18px;
  background:#33373b;
}
[data-page="vehicle"].vehicle-detail-page .detail-fact-icon {
  width:39px;
  height:39px;
  border-radius:50%;
  background:#292d31;
  color:#c9cccf;
}
[data-page="vehicle"].vehicle-detail-page .detail-fact-swatch {
  border:2px solid #23272b;
  box-shadow:0 0 0 1px #494c50;
}
[data-page="vehicle"].vehicle-detail-page .detail-fact-value {
  font-size:16px;
  font-weight:900;
  color:#e0e3e6;
}
[data-page="vehicle"].vehicle-detail-page .detail-fact-label {
  font-size:10.5px;
  color:#75787c;
}

[data-page="vehicle"].vehicle-detail-page .detail-tabs {
  margin-top:24px;
  padding:4px;
  gap:3px;
  border-radius:19px;
  background:#202327;
  border:1px solid #313539;
}
[data-page="vehicle"].vehicle-detail-page .detail-tab {
  padding:13px 5px;
  border-radius:15px;
  font-size:13px;
  color:#818488;
}
[data-page="vehicle"].vehicle-detail-page .detail-tab.is-active {
  background:#dfe2e5;
  color:#1d2125;
  box-shadow:0 4px 14px rgba(0,0,0,.22);
}

[data-page="vehicle"].vehicle-detail-page .detail-panel { margin-top:24px; }
[data-page="vehicle"].vehicle-detail-page .detail-section-label {
  font-size:20px;
  font-weight:900;
  margin-bottom:5px;
  color:#e0e3e6;
}
[data-page="vehicle"].vehicle-detail-page .detail-section-label::after {
  content:"";
  display:block;
  width:28px;
  height:2px;
  margin-top:8px;
  border-radius:99px;
  background:#e9ecef;
}
[data-page="vehicle"].vehicle-detail-page .detail-spec-group { margin-bottom:20px; }
[data-page="vehicle"].vehicle-detail-page .detail-spec-group h3 {
  margin-bottom:9px;
  color:#75787c;
  font-size:12px;
}
[data-page="vehicle"].vehicle-detail-page .detail-spec-table {
  background:#202428;
  border:1px solid #313539;
  border-radius:20px;
}
[data-page="vehicle"].vehicle-detail-page .detail-spec-row {
  padding:15px 17px;
  border-bottom-color:#313438;
}
[data-page="vehicle"].vehicle-detail-page .detail-spec-row span { color:#818488; }
[data-page="vehicle"].vehicle-detail-page .detail-spec-row b { color:#dde0e3; }

[data-page="vehicle"].vehicle-detail-page .detail-section-head { margin-top:30px; }
[data-page="vehicle"].vehicle-detail-page .detail-section-head h2 {
  font-size:18px;
  font-weight:900;
}

[data-page="vehicle"].vehicle-detail-page .detail-cta {
  padding:12px 14px calc(12px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(25,28,32,0) 0%,rgba(25,28,32,.92) 30%,#191c20 100%);
}
[data-page="vehicle"].vehicle-detail-page .detail-cta-inner {
  max-width:520px;
  min-height:68px;
  border-radius:23px;
  padding:8px 9px 8px 12px;
  background:rgba(34,38,42,.96);
  border:1px solid #373b3f;
  box-shadow:0 18px 44px rgba(0,0,0,.48);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
[data-page="vehicle"].vehicle-detail-page .detail-cta-price-value { font-size:20px; }
[data-page="vehicle"].vehicle-detail-page .detail-cta-btn {
  min-height:48px;
  padding:12px 20px;
  font-size:14px;
  background:#e9ecef;
  color:#191c20;
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 8px 24px rgba(255,255,255,.18), inset 0 1px 0 rgba(255,255,255,.28);
  text-shadow:none;
}
[data-page="vehicle"].vehicle-detail-page .detail-cta-btn:hover {
  background:#dee1e4;
  box-shadow:0 10px 28px rgba(255,255,255,.24), inset 0 1px 0 rgba(255,255,255,.3);
}
[data-page="vehicle"].vehicle-detail-page .detail-cta-btn:active {
  transform:translateY(1px) scale(.99);
  box-shadow:0 5px 16px rgba(255,255,255,.18), inset 0 1px 0 rgba(255,255,255,.22);
}
[data-page="vehicle"].vehicle-detail-page .detail-cta-phone {
  width:46px;
  height:46px;
  border-radius:16px;
  background:#25292d;
}

@media (max-width:400px) {
  [data-page="vehicle"].vehicle-detail-page .detail-info-sheet { padding-left:18px; padding-right:18px; }
  [data-page="vehicle"].vehicle-detail-page .detail-car-name { font-size:24px; }
  [data-page="vehicle"].vehicle-detail-page .detail-main-price-value { font-size:25px; }
  [data-page="vehicle"].vehicle-detail-page .detail-main-price-row { padding:15px 14px; min-height:86px; border-radius:21px; }
}
@media (max-width:360px) {
  [data-page="vehicle"].vehicle-detail-page .detail-car-name { font-size:22px; }
  [data-page="vehicle"].vehicle-detail-page .detail-year-badge { font-size:14px; padding:6px 9px; }
  [data-page="vehicle"].vehicle-detail-page .detail-fact-value { font-size:14px; }
  [data-page="vehicle"].vehicle-detail-page .detail-cta-btn { padding:11px 14px; font-size:12.5px; }
}

/* ===============================================================
   VEHICLE DETAIL — compact hero/title composition
   Reduce the empty vertical gap between gallery and listing identity.
   Keeps the existing structure and interactions unchanged.
================================================================= */
@media (max-width: 720px) {
  [data-page="vehicle"].vehicle-detail-page .detail-hero {
    height: 300px;
  }
  [data-page="vehicle"].vehicle-detail-page .detail-info-sheet {
    margin-top: 0;
    padding-top: 14px;
    border-radius: 0;
  }
  [data-page="vehicle"].vehicle-detail-page .detail-title-row {
    margin-top: 0;
  }
  [data-page="vehicle"].vehicle-detail-page .detail-location {
    margin-top: 5px;
  }
}

@media (max-width: 400px) {
  [data-page="vehicle"].vehicle-detail-page .detail-hero { height: 280px; }
  [data-page="vehicle"].vehicle-detail-page .detail-info-sheet { margin-top: 0; }
}

/* ===============================================================
   VEHICLE DETAIL — long-number safety
   Keep long prices, mileage and numeric specs inside their containers
   on narrow mobile screens without changing the visual hierarchy.
================================================================= */
[data-page="vehicle"].vehicle-detail-page .detail-main-price-value,
[data-page="vehicle"].vehicle-detail-page .detail-cta-price-value {
  max-width:100%;
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price-value {
  font-size:clamp(20px, 7.2vw, 29px);
  letter-spacing:-.025em;
}
[data-page="vehicle"].vehicle-detail-page .detail-fact-value {
  max-width:100%;
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  line-height:1.18;
  font-size:clamp(12px, 3.7vw, 14px);
  font-variant-numeric:tabular-nums;
}
[data-page="vehicle"].vehicle-detail-page .detail-spec-row {
  align-items:flex-start;
}
[data-page="vehicle"].vehicle-detail-page .detail-spec-row span {
  flex:0 0 38%;
  min-width:0;
}
[data-page="vehicle"].vehicle-detail-page .detail-spec-row b {
  flex:1 1 auto;
  min-width:0;
  max-width:62%;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
  line-height:1.3;
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price {
  min-width:0;
  max-width:100%;
}
[data-page="vehicle"].vehicle-detail-page .detail-cta-price {
  min-width:0;
  max-width:40%;
}
[data-page="vehicle"].vehicle-detail-page .detail-cta-price-value {
  font-size:clamp(15px, 5vw, 20px);
  line-height:1.15;
}
@media (max-width:400px) {
  [data-page="vehicle"].vehicle-detail-page .detail-spec-row { gap:8px; }
  [data-page="vehicle"].vehicle-detail-page .detail-spec-row span { flex-basis:34%; }
  [data-page="vehicle"].vehicle-detail-page .detail-spec-row b { max-width:66%; }
  [data-page="vehicle"].vehicle-detail-page .detail-cta-price { max-width:37%; }
}

/* Single merged all-listings box (replaces the old 3-box block:
   video banner + crashed-cars + imported-cars cards). Taller so it
   takes the space the two category cards used to occupy.
   The banner photo is 16:9, so it is shown at its natural ratio across
   the top (no zoom/crop) and fades into black; text sits below it. */
.home-demo-card-all {
  aspect-ratio: 1 / 0.92;
  background: #14171a;
}
.home-demo-card-all .home-demo-all-video {
  bottom: auto;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  -webkit-mask-image: linear-gradient(to bottom, #14171a 72%, transparent 100%);
  mask-image: linear-gradient(to bottom, #14171a 72%, transparent 100%);
}
.home-demo-card-all .home-demo-all-video-overlay,
.home-demo-card-all .home-demo-all-blur { display: none; }
.home-demo-all-cta { font-size: 22px; }
.home-demo-all-count { font-size: 13px; }

/* Phone: edge-to-edge. The boxed 520px viewport keeps its side borders
   only on wide screens (desktop); on phones the 1px grey border-x showed
   up as a thin strip along both screen edges. */
@media (max-width: 520px) {
  #appViewport { border-left-width: 0 !important; border-right-width: 0 !important; max-width: 100% !important; }
}

/* Sell-flow location picker: fallback (no map library / offline) + locate button */
.sell-fallback-map { position: relative; width: 100%; background: #22262a; overflow: hidden; cursor: crosshair; }
.sell-fallback-grid { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image:
  linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
  linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 33.333% 33.333%; }
.sell-fallback-center { position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; border: 1px dashed rgba(255,255,255,.35); }
.sell-fallback-pin { position: absolute; width: 34px; height: 34px; margin: -32px 0 0 -17px; border-radius: 50%; background: #8f7cf2; color: #e9ecef; display: flex; align-items: center; justify-content: center; box-shadow: 0 3px 10px rgba(0,0,0,.5); pointer-events: none; }
.sell-fallback-hint { position: absolute; bottom: 8px; left: 0; right: 0; text-align: center; font-size: 10.5px; color: rgba(255,255,255,.5); pointer-events: none; }
.sell-location-map .sell-locate-btn { position: absolute; top: 10px; right: 10px; z-index: 600; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,.18); background: rgba(26,29,33,.82); color: #e9ecef; font-size: 12px; font-weight: 700; backdrop-filter: blur(6px); }
.sell-location-map .sell-locate-btn.is-loading { opacity: .6; pointer-events: none; }

.sell-location-map .detail-map-visual { height: 260px !important; min-height: 260px !important; }

/* Center-pin location picker: pin stays fixed in the middle, map moves under it. */
.sell-center-pin { position: absolute; left: 50%; top: 50%; width: 34px; height: 34px; margin: -32px 0 0 -17px; z-index: 900; pointer-events: none; }
.sell-center-pin .leaflet-app-pin { background: #8f7cf2; }
.sell-center-shadow { position: absolute; left: 50%; bottom: -3px; width: 14px; height: 5px; margin-left: -7px; border-radius: 50%; background: rgba(0,0,0,.45); filter: blur(1.5px); }
.sell-fallback-grid { background-size: 44px 44px !important; background-image:
  linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),
  linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px),
  linear-gradient(rgba(143,124,242,.10) 2px, transparent 2px),
  linear-gradient(90deg, rgba(143,124,242,.10) 2px, transparent 2px) !important;
  background-size: 44px 44px, 44px 44px, 176px 176px, 176px 176px !important; }

/* Circular area selector (replaces the center pin): fixed circle, map moves under it. */
.sell-center-pin { display: none !important; }
.sell-center-circle { position: absolute; left: 50%; top: 50%; width: 150px; height: 150px; margin: -75px 0 0 -75px; border-radius: 50%; z-index: 900; pointer-events: none; box-sizing: border-box; border: 2px solid #8f7cf2; background: rgba(143,124,242,.20); box-shadow: 0 0 0 1px rgba(0,0,0,.35); }

/* Pin at the center of the circular area (tip sits exactly on the center). */
.sell-circle-pin { position: absolute; left: 50%; top: 50%; width: 34px; height: 34px; margin: -32px 0 0 -17px; }
.sell-circle-pin .leaflet-app-pin { background: #8f7cf2; }
.sell-circle-pin-shadow { position: absolute; left: 50%; bottom: -3px; width: 14px; height: 5px; margin-left: -7px; border-radius: 50%; background: rgba(0,0,0,.45); filter: blur(1.5px); }

.sell-fb-zoom { position: absolute; top: 10px; left: 10px; z-index: 950; display: flex; flex-direction: column; border-radius: 10px; overflow: hidden; border: 1px solid rgba(255,255,255,.18); background: rgba(26,29,33,.85); }
.sell-fb-zoom button { width: 34px; height: 34px; color: #e9ecef; font-size: 20px; line-height: 1; border: 0; background: transparent; }
.sell-fb-zoom button + button { border-top: 1px solid rgba(255,255,255,.15); }
.sell-location-map .leaflet-control-zoom a { background: rgba(26,29,33,.85); color: #e9ecef; border-color: rgba(255,255,255,.18); }

/* Sell form: extra vehicle specs (fuel, gearbox, interior trim, drivetrain) */
.sell-extra-specs { margin-top: 4px; }
.sell-chip-grid { display: flex; flex-wrap: wrap; gap: 8px; direction: rtl; }
.sell-chip { display: inline-flex; align-items: center; gap: 7px; padding: 10px 14px; border-radius: 14px; border: 1px solid #32363a; background: #23272b; color: #c5c8cb; font-size: 13px; font-weight: 700; line-height: 1.2; }
.sell-chip.is-selected { border-color: #8f7cf2; background: rgba(143,124,242,.16); color: #e9ecef; }
.sell-chip-dot { width: 14px; height: 14px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); display: inline-block; }

/* Vehicle detail: white accents (replaces the old lime) with black text inside */
[data-page="vehicle"].vehicle-detail-page .detail-year-badge,
[data-page="vehicle"].vehicle-detail-page .detail-cta-btn,
[data-page="vehicle"].vehicle-detail-page .detail-cta-btn * { color: #14171a !important; }

/* Vehicle detail page: the lavender "اطلاعات بیشتر" buttons (neon violet,
   set inline on the card) become white with black text. Scoped to the
   detail page only so other screens keep their look. */
[data-page="vehicle"] button[data-action="goVehicle"] {
  background-color: #e9ecef !important;
  color: #14171a !important;
  border-color: #14171a !important;
}
[data-page="vehicle"] button[data-action="goVehicle"] svg { color: #14171a !important; stroke: #14171a !important; }

/* Vehicle detail: title first, then the year patch; year number centered in the patch. */
[data-page="vehicle"].vehicle-detail-page .detail-name-row { flex-direction: row; justify-content: flex-start; }
[data-page="vehicle"].vehicle-detail-page .detail-year-badge {
  order: 0;
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 54px; height: 30px; padding: 0 10px !important;
  text-align: center; line-height: 1 !important; font-variant-numeric: tabular-nums;
  box-sizing: border-box; direction: ltr; unicode-bidi: isolate;
}

/* ================================================================
   BRAND SHEET — bottom sheet (half screen) listing the brand boxes.
   ================================================================ */
.brand-sheet {
  --home-demo-card-border: #2c3034; --home-demo-text: #dcdfe2; --home-demo-accent: #8f7cf2;
  position: fixed; inset: 0; z-index: 85; font-family: "Vazirmatn", "Segoe UI", Tahoma, sans-serif; color: #dcdfe2;
}
.brand-sheet-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.6); opacity: 0; transition: opacity .3s ease; }
.brand-sheet.is-open .brand-sheet-backdrop { opacity: 1; }
.brand-sheet-panel {
  /* Always full-screen tall; only transform ever animates (GPU-only, no layout). */
  position: absolute; left: 0; right: 0; bottom: 0; max-width: 520px; margin: 0 auto;
  height: 100vh; height: 100dvh;
  --sheet-off: 32vh; --sheet-off: 32dvh;          /* resting: ~68% of the screen visible */
  --sheet-full-off: 10vh; --sheet-full-off: 10dvh; /* expanded: 90% visible */
  display: flex; flex-direction: column;
  background: #14171a; border: 1px solid #2c3034; border-bottom: 0; border-radius: 28px 28px 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,.35);
  transform: translate3d(0, 100%, 0);
  transition: transform .34s cubic-bezier(.22,1,.36,1);
  will-change: transform; backface-visibility: hidden; contain: layout style;
}
/* Resting position: about 68% of the screen visible. */
.brand-sheet.is-open .brand-sheet-panel { transform: translate3d(0, var(--sheet-off), 0); }
/* Dragged up: stops at 90% of the screen height (never full screen). */
.brand-sheet.is-open .brand-sheet-panel.is-full { transform: translate3d(0, var(--sheet-full-off), 0); }
.brand-sheet-drag { flex: 0 0 auto; display: flex; justify-content: center; padding: 10px 0 4px; touch-action: none; }
.brand-sheet-drag span { width: 38px; height: 4px; border-radius: 999px; background: #44484c; }
.brand-sheet-head { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 20px 12px; direction: rtl; touch-action: none; }
.brand-sheet-title { margin: 0; font-size: 18px; font-weight: 900; line-height: 1.3; }
.brand-sheet-sub { margin: 2px 0 0; font-size: 12px; font-weight: 600; color: #888b8f; }
.brand-sheet-close { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.08); color: #e0e3e6; display: flex; align-items: center; justify-content: center; -webkit-tap-highlight-color: transparent; }
.brand-sheet-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px 16px calc(20px + var(--sheet-off, 32dvh) + env(safe-area-inset-bottom, 0px)); direction: rtl; -webkit-overflow-scrolling: touch; }
.brand-sheet-all { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 0 16px; height: 52px; margin-bottom: 12px;
  border-radius: 16px; border: 1px solid #2c3034; background: #1f2327; color: inherit; font-family: inherit; -webkit-tap-highlight-color: transparent; }
.brand-sheet-all-name { font-size: 14.5px; font-weight: 800; }
.brand-sheet-all-count { font-size: 12px; font-weight: 500; color: #c5c8cb; }
.brand-sheet-all-count b { color: #8f7cf2; font-weight: 800; }
.brand-sheet-all.is-selected { border-color: #e9ecef; box-shadow: 0 0 0 1px #e9ecef inset; }
.brand-sheet-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
/* Same boxes as the old home page, a little wider than tall so more fit on screen. */
.brand-sheet .home-demo-card { aspect-ratio: 1.1 / 1; }
.brand-sheet .home-demo-card-bg { top: 40%; width: 50%; height: 50%; }
.brand-sheet .home-demo-card-selected { border-color: #e9ecef; box-shadow: 0 0 0 1px #e9ecef inset; }
.brand-sheet .home-demo-card-selected::after { content: "\2713"; position: absolute; top: 10px; left: 10px; z-index: 4; width: 22px; height: 22px; border-radius: 50%; background: #e9ecef; color: #14171a; font-size: 13px; font-weight: 900; line-height: 22px; text-align: center; }
.theme-light .brand-sheet-panel { background: #e9ecef; border-color: #d4d7da; color: #34383c; }
.theme-light .brand-sheet-close { background: rgba(0,0,0,.06); border-color: rgba(0,0,0,.08); color: #34383c; }
/* Cheaper cards inside the sheet: fewer gradients, no text blur, no entrance animations. */
.brand-sheet .home-text-rise { animation: none; }
.brand-sheet .home-demo-card { contain: layout paint style; transition: none; }
.brand-sheet .home-demo-card-glow { background-image: radial-gradient(circle at 20% 20%, var(--home-demo-tint) 0%, transparent 45%), radial-gradient(circle at 80% 80%, var(--home-demo-tint) 0%, transparent 48%); }
.brand-sheet .home-demo-card-name { text-shadow: none; }
@media (prefers-reduced-motion: reduce) { .brand-sheet-panel, .brand-sheet-backdrop { transition-duration: .01s; } }

/* Home hero text: short + modern */
.home-demo-hero { padding: 22px 20px 6px; }
.home-demo-hero-title {
  font-size: 30px; font-weight: 900; line-height: 1.2; letter-spacing: -0.02em;
  background: linear-gradient(180deg, #e9ecef 30%, #999c9f 130%);
  -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
}
.home-demo-hero-sub { margin-top: 8px; font-size: 14.5px; font-weight: 500; line-height: 1.5; letter-spacing: 0; color: #86898d; }
.theme-light .home-demo-hero-title { background: linear-gradient(180deg, #2a2e32 30%, #626669 130%); -webkit-background-clip: text; background-clip: text; }

/* Sell flow: short bold step heading replaces the long description boxes. */
.sell-step-heading { font-size: 26px; font-weight: 900; line-height: 1.3; letter-spacing: -0.01em; color: #e9ecef; text-align: right; padding: 6px 2px 0; }
.theme-light .sell-step-heading { color: #2a2e32; }

/* ================================================================
   SELL FLOW — step 2 (مشخصات): minimal grouped layout
   - one grouped list for برند / مدل / سال (label + value + chevron)
   - option groups as equal-width grids, color as swatches
   - no per-field hints, no icon boxes, no gradients
   ================================================================ */
.sell-step2 { display:flex; flex-direction:column; gap:20px; }
.sell-step-heading { font-size:22px; font-weight:800; padding:2px 2px 0; }

.sell-list { border:1px solid var(--sm-line,#2c3034); border-radius:16px; background:var(--sm-surface,#1c1f22); overflow:hidden; }
.sell-row-wrap + .sell-row-wrap { border-top:1px solid var(--sm-line-soft,#262a2d); }
.sell-row { width:100%; min-height:58px; display:flex; align-items:center; gap:12px; padding:0 16px; background:none; border:0; color:var(--sm-text,#e9ecef); text-align:right; -webkit-tap-highlight-color:transparent; }
.sell-row:active { background:rgba(255,255,255,.04); }
.sell-row:focus-visible { outline:2px solid rgba(255,255,255,.25); outline-offset:-2px; }
.sell-row-label { flex:0 0 auto; font-size:13.5px; font-weight:600; color:var(--sm-text-dim,#9a9ea2); }
.sell-row-value { flex:1 1 auto; min-width:0; display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-inline-start:auto; }
.sell-row-text { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; font-weight:700; }
.sell-row-mark { width:24px; height:24px; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; }
.sell-row-mark:empty { display:none; }
.sell-row-mark img { width:100%; height:100%; object-fit:contain; }
.sell-row-chev { flex:0 0 auto; color:var(--sm-text-faint,#6e7275); }

.sell-sections { display:flex; flex-direction:column; gap:22px; }
.sell-section { display:flex; flex-direction:column; gap:10px; }
.sell-section-head { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:18px; }
.sell-section-title { font-size:13.5px; font-weight:600; color:var(--sm-text-dim,#9a9ea2); }
.sell-section-value { font-size:12.5px; font-weight:700; color:var(--sm-text,#e9ecef); }

.sell-opt-grid { display:grid; gap:8px; direction:rtl; }
.sell-cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sell-cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.sell-opt-grid .sell-chip { justify-content:center; text-align:center; min-height:46px; padding:0 6px; border-radius:12px; font-size:13px; font-weight:600; white-space:nowrap; background:transparent; border:1px solid var(--sm-line,#2c3034); color:var(--sm-text-dim,#b4b8bb); transition:background .15s ease,border-color .15s ease,color .15s ease; }
.sell-opt-grid .sell-chip:active { background:rgba(255,255,255,.05); }
.sell-chip.is-selected { background:rgba(255,255,255,.09)!important; border-color:#d9dcdf!important; color:#fff!important; }

.sell-swatch-row { display:flex; gap:12px; flex-wrap:wrap; direction:rtl; }
.sell-chip.sell-swatch { width:36px; height:36px; padding:0; min-height:0; border-radius:50%; border:1px solid var(--sm-line,#3a3e42); background:transparent; display:flex; align-items:center; justify-content:center; }
.sell-swatch i { width:26px; height:26px; border-radius:50%; border:1px solid rgba(255,255,255,.22); display:block; }
.sell-chip.sell-swatch.is-selected { background:transparent!important; border:2px solid #e9ecef!important; }

/* action dock: soft fade so content never collides with buttons; back is quiet, next is primary */
body:has([data-page="sell-step"]) [data-slot="actions"].sell-actions-dock {
  padding-top:28px;
  background:linear-gradient(to top,var(--sm-bg,#14171a) 55%,rgba(20,23,26,0));
}
body:has([data-page="sell-step"]) [data-page="sell-step"] [data-slot="actions"] > button { min-height:50px; box-shadow:none; font-size:15px; }
body:has([data-page="sell-step"]) [data-page="sell-step"] [data-slot="actions"] > button:first-child { flex:0 0 32%; background:transparent!important; border:1px solid var(--sm-line,#34383c); color:var(--sm-text-dim,#b4b8bb)!important; }
body:has([data-page="sell-step"]) [data-page="sell-step"] [data-slot="actions"] > button:last-child { flex:1 1 auto; }

/* ================================================================
   SELL FLOW — step 3 (قیمت و وضعیت): minimal layout
   big price field, two quiet switches, grouped list for the rest
   ================================================================ */
.sell-row--input { cursor:text; }
.sell-row-input,
[data-page="sell-step"] .sell-row-input { flex:1 1 auto; min-width:0; background:transparent!important; border:0!important; box-shadow:none!important; outline:0; color:var(--sm-text,#e9ecef); font-size:15px; font-weight:700; text-align:left; direction:ltr; padding:0; -moz-appearance:textfield; }
.sell-row-input::-webkit-outer-spin-button,.sell-row-input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.sell-row-input::placeholder { color:var(--sm-text-faint,#6a6d71); }
.sell-row-unit { flex:0 0 auto; font-size:12.5px; color:var(--sm-text-faint,#6a6d71); font-weight:600; }
.sell-row-swatch { width:18px; height:18px; border-radius:50%; border:1px solid rgba(255,255,255,.25); flex:0 0 auto; }
.sell-row-swatch.is-empty { display:none; }
.sell-row-badge { display:none; }

[data-page="sell-step"] .sell-price-box { display:flex; align-items:baseline; gap:10px; padding:4px 2px 12px; border:0; border-bottom:1px solid var(--sm-line,#2e3236); border-radius:0; background:none!important; box-shadow:none!important; }
[data-page="sell-step"] .sell-price-box:focus-within { border-bottom-color:#d9dcdf; }
[data-page="sell-step"] .sell-price-box .sell-price-input { flex:1 1 auto; min-width:0; font-size:32px!important; font-weight:800!important; letter-spacing:0; text-align:right; direction:ltr; background:transparent!important; border:0!important; box-shadow:none!important; outline:0; color:var(--sm-text,#e9ecef); padding:0; }
[data-page="sell-step"] .sell-price-box .sell-price-input::placeholder { color:var(--sm-text-faint,#4a4d51); }
[data-page="sell-step"] .sell-price-box .sell-price-unit { flex:0 0 auto; font-size:14px!important; font-weight:600!important; color:var(--sm-text-dim,#929599)!important; }

.sell-toggle { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:54px; padding:0 16px; position:relative; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.sell-toggle + .sell-toggle { border-top:1px solid var(--sm-line-soft,#262a2d); }
.sell-toggle-text { font-size:14.5px; font-weight:600; color:var(--sm-text,#e9ecef); }
.sell-toggle > input { position:absolute; opacity:0; width:1px; height:1px; pointer-events:none; }
.sell-switch { position:relative; flex:0 0 auto; width:42px; height:26px; border-radius:999px; background:#3a3e42; transition:background .2s ease; }
.sell-switch::after { content:""; position:absolute; top:3px; right:3px; width:20px; height:20px; border-radius:50%; background:#e9ecef; transition:transform .2s ease; }
.sell-toggle > input:checked + .sell-switch { background:#8fd19e; }
.sell-toggle > input:checked + .sell-switch::after { transform:translateX(-16px); background:#fff; }
.sell-toggle > input:focus-visible + .sell-switch { outline:2px solid rgba(255,255,255,.35); outline-offset:2px; }
.sell-row--input + .sell-row-wrap { border-top:1px solid var(--sm-line-soft,#262a2d); }

/* ================================================================
   SELL FLOW — step 4 (بدنه و رنگ): minimal layout
   ================================================================ */
[data-page="sell-step"] .sell-diagram { padding:10px; display:flex; justify-content:center; }
.sell-legend { display:flex; justify-content:center; gap:18px; font-size:12px; color:var(--sm-text-dim,#929599); }
.sell-legend span { display:inline-flex; align-items:center; gap:6px; }
.sell-legend i { width:8px; height:8px; border-radius:50%; display:inline-block; }
.sell-summary { text-align:center; font-size:12.5px; color:var(--sm-text-faint,#6a6d71); }
.sell-more > summary { list-style:none; cursor:pointer; text-align:center; font-size:13px; font-weight:600; color:var(--sm-text-dim,#929599); padding:8px 0; -webkit-tap-highlight-color:transparent; }
.sell-more > summary::-webkit-details-marker { display:none; }
.sell-more > summary::after { content:"⌄"; margin-inline-start:6px; display:inline-block; transition:transform .2s ease; }
.sell-more[open] > summary::after { transform:rotate(180deg); }
.sell-chip-wrap { display:flex; flex-wrap:wrap; gap:8px; padding-top:8px; direction:rtl; }
.bcond-row.has-rating .sell-row-text { color:var(--bcond-color,var(--sm-text,#e9ecef)); }

/* ================================================================
   Generic modal → bottom sheet (مدیریت آگهی, حذف, اطلاعات تماس …)
   slides up from the bottom, rounded top corners, grab handle
   ================================================================ */
@keyframes sheet-up { from { transform:translateY(100%); } to { transform:translateY(0); } }
@keyframes sheet-down { from { transform:translateY(0); } to { transform:translateY(100%); } }
#genericModal .modal-sheet { max-width:520px; max-height:88dvh; overflow-y:auto; overscroll-behavior:contain; border-width:1px 0 0; border-radius:26px 26px 0 0; padding:8px 20px calc(20px + env(safe-area-inset-bottom,0px)); box-shadow:0 -10px 40px rgba(0,0,0,.45); animation:sheet-up .36s cubic-bezier(.22,1,.36,1) both; }
#genericModal.is-closing .modal-sheet { animation:sheet-down .26s cubic-bezier(.4,0,1,1) both; }
#genericModal.is-closing { animation:ui-fade-out .26s ease both; }
#genericModal.is-closing .modal-backdrop { animation:ui-fade-out .26s ease both; }
.modal-sheet-handle { width:36px; height:4px; border-radius:2px; background:rgba(255,255,255,.18); margin:0 auto 14px; }
.theme-light .modal-sheet-handle { background:rgba(0,0,0,.15); }
#genericModal #modalTitle { font-size:16px; font-weight:700; }
@media (prefers-reduced-motion: reduce) { #genericModal .modal-sheet, #genericModal.is-closing .modal-sheet { animation-duration:.01s; } }

/* manage-ad sheet content: flat, text-only rows */
#genericModal .manageAd-status { display:flex; flex-direction:column; gap:2px; padding:0 0 14px!important; margin:0 0 4px!important; background:none!important; border:0!important; border-bottom:1px solid var(--sm-line,#2e3236)!important; border-radius:0!important; }
#genericModal .manageAd-status-title { display:flex; align-items:center; gap:8px; margin:0; font-size:14px; }
#genericModal .manageAd-status-title::before { content:""; width:8px; height:8px; border-radius:50%; background:#a78bfa; }
#genericModal .manageAd-status.is-listed .manageAd-status-title::before { background:#34d399; }
#genericModal .manageAd-status-desc { font-size:12.5px; }
#genericModal .manageAd-rows { border:0; border-radius:0; background:none; }
#genericModal .manageAd-rows-secondary { margin-top:0; border-top:1px solid var(--sm-line,#2e3236); }
#genericModal .manageAd-row { min-height:54px; padding:0 2px; border-bottom:1px solid var(--sm-line-soft,#262a2d); font-size:15px; }
#genericModal .manageAd-rows-secondary .manageAd-row { border-bottom:0; }
#genericModal .manageAd-row-icon, #genericModal .manageAd-row-chevron { display:none; }
#genericModal .manageAd-row-label { font-size:15px; font-weight:600; }
#genericModal .manageAd-rows-secondary .manageAd-row-label { color:var(--sm-text-dim,#929599); font-weight:500; }

/* delete step inside the sheet: lighter, no double borders */
#genericModal .manageAd-delete-warn { background:none!important; border:0!important; padding:0 0 10px!important; margin:0!important; }
#genericModal .manageAd-reason-list, #genericModal [data-slot="reasons"] { border:0!important; background:none!important; border-radius:0!important; display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
#genericModal .manageAd-reason-row { min-height:50px; border-radius:12px; font-size:14px; }

/* ---- share poster sheet ---- */
.poster-sheet { display:flex; flex-direction:column; gap:12px; align-items:stretch; }
.poster-frame { align-self:center; width:min(56vw,230px); aspect-ratio:9/16; border-radius:16px; overflow:hidden; background:#14171a; border:1px solid var(--sm-line,#2e3236); display:flex; align-items:center; justify-content:center; box-shadow:0 12px 32px rgba(0,0,0,.4); }
.poster-img { width:100%; height:100%; display:block; object-fit:cover; }
.poster-loading { font-size:12px; color:var(--sm-text-faint,#6a6d71); padding:0 12px; text-align:center; }
.poster-primary { min-height:50px; border-radius:999px; border:0; background:var(--sm-accent,#e0e3e6); color:var(--sm-accent-ink,#1a1d21); font-size:15px; font-weight:800; margin-top:6px; }
.poster-primary:disabled, .poster-secondary button:disabled { opacity:.45; }
.poster-secondary { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.poster-secondary button { min-height:46px; border-radius:999px; background:transparent; border:1px solid var(--sm-line,#34383c); color:var(--sm-text-dim,#b4b8bb); font-size:14px; font-weight:600; }

/* ================================================================
   LISTING CARD (listings / brand grid) — large photo card
   framed card, photo with rounded corners, star top-left, price chip
   top-right, frosted info bar at the bottom with a go-arrow.
   ================================================================ */
.xc { position:relative; padding:6px; border-radius:30px; background:var(--sm-surface,#1c1f22); border:1px solid var(--sm-line-soft,#262a2d); cursor:pointer; -webkit-tap-highlight-color:transparent; }
.xc:active { transform:scale(.992); }
.xc-media { position:relative; aspect-ratio:5/4; border-radius:24px; overflow:hidden; background:#14171a; isolation:isolate; }
.xc-photo, .xc-photo > * { position:absolute; inset:0; width:100%; height:100%; }
.xc-photo img, .xc-photo svg { width:100%; height:100%; object-fit:cover; display:block; }
.xc-media::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(to bottom,rgba(0,0,0,.28),rgba(0,0,0,0) 28%,rgba(0,0,0,0) 62%,rgba(0,0,0,.35)); }

.xc-save { position:absolute; z-index:3; top:12px; left:12px; width:42px; height:42px; border-radius:50%; border:0; display:flex; align-items:center; justify-content:center; color:#fff; background:rgba(20,22,24,.38); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); -webkit-tap-highlight-color:transparent; }
.xc-save:active { transform:scale(.92); }
.xc-save.is-liked { color:#f5d36b; }

.xc-top-end { position:absolute; z-index:3; top:12px; right:12px; display:flex; align-items:center; gap:6px; }
.xc-tag { height:34px; padding:0 13px; border-radius:999px; display:inline-flex; align-items:center; color:#fff; font-size:13.5px; font-weight:800; white-space:nowrap; background:rgba(20,22,24,.38); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
.xc-tag { font-size:11px; font-weight:700; color:#f5d36b; padding:0 10px; }

.xc-go { flex:0 0 auto; width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.2); color:#fff; }

.xc.is-skeleton { cursor:default; }
.xc.is-skeleton .xc-media { background:#1a1d20; }
.theme-light .xc { background:#e9ecef; border-color:#d4d7da; }
.theme-light .xc-media { background:#d4d7da; }

/* ---- listing view-style toggle (large ⇄ compact) ---- */
.vt-row { display:flex; justify-content:flex-start; padding:4px 16px 0; }
.vt-seg { display:inline-flex; padding:3px; gap:2px; border-radius:999px; background:var(--sm-surface,#1c1f22); border:1px solid var(--sm-line-soft,#262a2d); }
.vt-btn { width:38px; height:32px; border-radius:999px; border:0; background:transparent; color:var(--sm-text-faint,#6a6d71); display:flex; align-items:center; justify-content:center; -webkit-tap-highlight-color:transparent; transition:background .18s ease,color .18s ease; }
.vt-btn.is-active { background:rgba(255,255,255,.1); color:var(--sm-text,#e9ecef); }
.explore-list[data-list-style="large"] { gap:14px; padding:10px 14px 28px; }
.theme-light .vt-seg { background:#e9ecef; border-color:#d4d7da; }
.theme-light .vt-btn.is-active { background:rgba(0,0,0,.08); }

/* large card: no outer frame; price lives in the glass bar */
.xc { padding:0; background:none; border:0; border-radius:24px; }
.xc-media { border-radius:24px; }
.theme-light .xc { background:none; border:0; }

/* large card: a bit smaller */
.xc-media { aspect-ratio:16/11; }
.xc-save { width:36px; height:36px; top:10px; left:10px; }
.xc-save svg { width:16px; height:16px; }
.xc-tag { height:30px; font-size:10.5px; }
.xc-top-end { top:10px; right:10px; }
.explore-list[data-list-style="large"] { gap:12px; }

/* ================================================================
   LISTING CARD — bottom info bar (frosted glass)
   RTL layout:  [ title + chips ]  |  [ price ]
   - title and chips are separate elements, so Persian/Latin/digits
     never get mixed into one bidi string (that was what made the
     old "brand · year · km" line scramble).
   - price is a stacked block (amount over unit) at the opposite end,
     separated from the text by a thin divider.
   ================================================================ */
.xc-glass { position:absolute; z-index:3; left:8px; right:8px; bottom:8px; padding:10px 12px; border-radius:18px; display:flex; align-items:stretch; justify-content:space-between; gap:12px; direction:rtl; color:#fff; background:rgba(18,20,23,.55); -webkit-backdrop-filter:blur(18px) saturate(150%); backdrop-filter:blur(18px) saturate(150%); border:1px solid rgba(255,255,255,.12); box-shadow:0 6px 18px rgba(0,0,0,.28); }
.xc-glass-text { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:6px; }
.xc-title { display:block; max-width:100%; font-size:14.5px; font-weight:800; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-align:right; unicode-bidi:plaintext; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.xc-meta { display:flex; align-items:center; flex-wrap:nowrap; gap:5px; min-width:0; overflow:hidden; }
.xc-chip { flex:0 0 auto; display:inline-flex; align-items:center; gap:4px; height:20px; padding:0 8px; border-radius:999px; background:rgba(255,255,255,.14); color:rgba(255,255,255,.88); font-size:10.5px; font-weight:700; line-height:1; white-space:nowrap; }
.xc-chip svg { flex:0 0 auto; opacity:.8; }
.xc-chip-year { background:rgba(202,254,110,.2); color:#CAFE6E; }
.xc-chip-hybrid { background:rgba(96,165,250,.22); color:#8dbcff; letter-spacing:-.1px; }
.xc-price { flex:0 0 auto; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-width:76px; padding-inline-start:12px; border-inline-start:1px solid rgba(255,255,255,.16); text-align:center; }
.xc-price-amount { font-size:19px; font-weight:800; line-height:1.05; color:#fff; white-space:nowrap; font-variant-numeric:tabular-nums; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.xc-price-unit { font-size:10px; font-weight:700; line-height:1; color:rgba(255,255,255,.72); white-space:nowrap; }
.xc-media::after { background:linear-gradient(to bottom,rgba(0,0,0,.28),rgba(0,0,0,0) 28%,rgba(0,0,0,0) 45%,rgba(0,0,0,.45)); }
@media (max-width:360px) {
  .xc-glass { padding:9px 10px; gap:9px; }
  .xc-title { font-size:13.5px; }
  .xc-price { min-width:66px; padding-inline-start:9px; }
  .xc-price-amount { font-size:17px; }
}

/* ================================================================
   FLOATING LAYOUT SWITCH (large ⇄ compact) — fixed above the dock
   Solid fill, no backdrop-filter: it sits over scrolling photos and a
   live blur there would be re-computed every frame.
   ================================================================ */
.vt-fab { position:fixed; z-index:39; right:16px; bottom:calc(96px + env(safe-area-inset-bottom,0px)); pointer-events:none; }
.vt-fab .vt-seg { pointer-events:auto; background:rgba(28,31,34,.94); border:1px solid rgba(255,255,255,.12); box-shadow:0 8px 22px rgba(0,0,0,.45); }
.theme-light .vt-fab .vt-seg { background:rgba(233,236,239,.96); border-color:#d4d7da; box-shadow:0 8px 22px rgba(45,49,53,.18); }

/* ================================================================
   SCROLL PERFORMANCE — listings grid
   1) No per-card backdrop-filter. Every card had 2–3 live blurs (info bar,
      star, promo tag); with 12–40 cards that is dozens of blur passes per
      scrolled frame. Same look via slightly more opaque fills instead.
   2) card-fade-in used fill-mode `both`, which keeps the end keyframe
      (a transform) applied forever = a permanent compositor layer per card.
      `backwards` plays the same entrance, then releases the layer.
   3) Off-screen cards skip layout/paint (content-visibility) with a size
      hint so the scrollbar doesn't jump.
   4) The sticky header glass uses a lighter blur.
   ================================================================ */
.xc-glass { background:rgba(18,20,23,.72); -webkit-backdrop-filter:none; backdrop-filter:none; }
.xc-save, .xc-tag { background:rgba(20,22,24,.62); -webkit-backdrop-filter:none; backdrop-filter:none; }
.xcard-promo-badge { background:rgba(32,35,39,.78); -webkit-backdrop-filter:none; backdrop-filter:none; }
.card-fade-in { animation-fill-mode:backwards; }
.explore-list[data-list-style="large"] > .swipe-row,
.explore-list[data-list-style="large"] > .xc { content-visibility:auto; contain-intrinsic-size:auto 240px; }
.explore-list:not([data-list-style="large"]) > .swipe-row { content-visibility:auto; contain-intrinsic-size:auto 176px; }
body:has([data-page="listings"]) #stickyHeaderGroup { backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); background:rgba(22,25,29,.88); --chrome-fade-bg:rgba(22,25,29,.88); }
.theme-light body:has([data-page="listings"]) #stickyHeaderGroup { backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); background:rgba(255,255,255,.82); --chrome-fade-bg:rgba(255,255,255,.82); }

/* Floating layout switch — lighter, clearly visible pill */
.vt-fab .vt-seg { background:#e9ecef; border:1px solid rgba(255,255,255,.55); box-shadow:0 8px 22px rgba(0,0,0,.5), 0 0 0 1px rgba(0,0,0,.12); }
.vt-fab .vt-btn { color:#6a6e72; }
.vt-fab .vt-btn.is-active { background:#24282c; color:#fff; }
.theme-light .vt-fab .vt-seg { background:#2b2f33; border-color:rgba(0,0,0,.2); box-shadow:0 8px 22px rgba(45,49,53,.28); }
.theme-light .vt-fab .vt-btn { color:#a3a7ab; }
.theme-light .vt-fab .vt-btn.is-active { background:#e9ecef; color:#24282c; }

/* Overview tab: more breathing room between description and map */
.detail-overview-panel .detail-description + .detail-map-card { margin-top:44px; }

/* Vehicle detail: the bottom CTA wrapper used to paint a dark gradient strip
   (fading to #191c20) behind the floating price bar. Over the page content
   that read as a differently-coloured band / gap under the bar. The wrapper is
   now fully transparent; only the floating bar itself is drawn. */
.detail-cta,
[data-page="vehicle"].vehicle-detail-page .detail-cta { background:none; }

/* Vehicle detail: the info sheet is #25292d but the page/viewport behind it
   was #191c20, so the 108px of bottom padding under the sheet showed up as a
   darker band behind the price bar. Page + viewport now use the sheet colour. */
[data-page="vehicle"].vehicle-detail-page { background:#25292d; }
body:has(.vehicle-detail-page) #appViewport { background:#25292d !important; }
.theme-light [data-page="vehicle"].vehicle-detail-page,
.theme-light body:has(.vehicle-detail-page) #appViewport { background:#25292d !important; }

/* Location map: standalone block at the bottom of the vehicle page */
.detail-map-section { margin-top:40px; }
.detail-map-section .detail-map-card { margin-top:0; }

/* Vehicle detail — tighten empty space in every tab (توضیحات / مشخصات / وضعیت بدنه).
   Biggest offender: .detail-spacer (110px) PLUS the page's own 108px bottom
   padding stacked under the content = ~220px of dead space. Only enough
   room is kept now for the floating price bar to clear the last element. */
.detail-spacer { height:0; }
[data-page="vehicle"].vehicle-detail-page { padding-bottom:calc(96px + env(safe-area-inset-bottom, 0px)); }
[data-page="vehicle"].vehicle-detail-page .detail-panel { margin-top:16px; }
[data-page="vehicle"].vehicle-detail-page .detail-spec-group { margin-bottom:14px; }
[data-page="vehicle"].vehicle-detail-page .detail-spec-group:last-child { margin-bottom:0; }
[data-page="vehicle"].vehicle-detail-page .detail-spec-row { padding:12px 16px; }
[data-page="vehicle"].vehicle-detail-page .detail-diagram-card { margin-top:12px; }
[data-page="vehicle"].vehicle-detail-page .detail-condition-card { margin-top:12px; }
.detail-map-section { margin-top:24px; }

/* Dark bottom shadow — a soft fade at the very bottom edge of the screen,
   running from above the dock down past it to the bottom edge, so the dock
   (and the detail page's price bar) sit on a dark base. Fixed, click-through,
   sits under the dock (z 40) and the detail CTA (z 39). No filter/blur: it's
   a plain gradient, so it costs nothing while scrolling. */
body::after { content:""; position:fixed; left:50%; bottom:0; transform:translateX(-50%); width:min(100%,520px); height:calc(130px + env(safe-area-inset-bottom, 0px)); pointer-events:none; z-index:38; background:linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.6) 35%, rgba(0,0,0,.25) 70%, rgba(0,0,0,0) 100%); }

/* ================================================================
   BRAND SHEET — smoother open
   - No more html/body overflow:hidden scroll lock: toggling it re-laid out
     the whole (heavy) listings page right when the slide-in started. The
     backdrop is touch-action:none and the list has overscroll-behavior:contain,
     which is enough to keep the page behind from scrolling.
   - Cards below the visible part of the panel are skipped for layout/paint
     (content-visibility) until they scroll into view.
   - Backdrop fade runs on the compositor.
   ================================================================ */
.brand-sheet-backdrop { touch-action: none; will-change: opacity; }
.brand-sheet .home-demo-card { content-visibility: auto; contain-intrinsic-size: auto 156px; }
.brand-sheet-grid { contain: layout style; }

/* Brand sheet: end-of-list gap. The panel is full-screen tall and slid down by
   --sheet-off, so the scroller needs bottom padding equal to the hidden part to
   let the last row reach the screen edge. It always used the "half" offset
   (32dvh), which left ~22dvh of empty space once the sheet was expanded
   (offset 10dvh). Padding now follows the current state and the extra 20px
   margin is trimmed. */
.brand-sheet-scroll { padding-bottom: calc(10px + var(--sheet-off, 32dvh) + env(safe-area-inset-bottom, 0px)); }
.brand-sheet-panel.is-full .brand-sheet-scroll { padding-bottom: calc(10px + var(--sheet-full-off, 10dvh) + env(safe-area-inset-bottom, 0px)); }

/* ---------------------------------------------------------------
   SELLER TYPE — شخصی / نمایشگاه (tags, vehicle seller card, dealer page,
   account-type picker used by sign-up + edit-info)
--------------------------------------------------------------- */
.seller-tag { flex:0 0 auto; display:inline-flex; align-items:center; gap:4px; height:22px; padding:0 8px; border-radius:999px; font-size:10.5px; font-weight:700; line-height:1; white-space:nowrap; -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); }
.seller-tag svg { flex:0 0 auto; }
.seller-tag-dealer { background:rgba(96,165,250,.24); color:#8dbcff; }
.seller-tag-personal { background:rgba(255,255,255,.16); color:rgba(255,255,255,.9); }
.theme-light .seller-tag-dealer { background:rgba(37,99,235,.12); color:#1d4ed8; }
.theme-light .seller-tag-personal { background:rgba(0,0,0,.07); color:#3b3f44; }
.xc-top-end .seller-tag { height:30px; padding:0 10px; background-color:rgba(20,22,24,.42); }
.xc-top-end .seller-tag-dealer { color:#8dbcff; }
.xc-top-end .seller-tag-personal { color:#fff; }
.xcard-row-top .seller-tag { margin-inline-start:auto; height:18px; font-size:9.5px; padding:0 6px; }

.detail-seller { margin:14px 0 4px; }
.seller-card { width:100%; display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:16px; background:var(--seller-card-bg,#17181a); border:1px solid rgba(255,255,255,.07); color:inherit; text-align:right; font:inherit; }
.theme-light .seller-card { --seller-card-bg:#f3f4f6; border-color:rgba(0,0,0,.08); }
.seller-card-link { cursor:pointer; -webkit-tap-highlight-color:transparent; }
.seller-card-link:active { transform:scale(.99); }
.seller-card-avatar { flex:0 0 auto; width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.1); font-weight:800; font-size:17px; }
.seller-card-avatar-dealer { background:rgba(96,165,250,.22); color:#8dbcff; }
.seller-card-main { flex:1; min-width:0; }
.seller-card-name { font-weight:800; font-size:14.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.seller-card-sub { margin-top:5px; display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:12px; opacity:.85; }

.seller-hero { display:flex; flex-direction:column; align-items:center; gap:8px; padding:18px 16px 16px; text-align:center; }
.seller-hero-avatar { width:68px; height:68px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(96,165,250,.22); color:#8dbcff; font-size:28px; font-weight:800; }
.seller-hero-name { font-size:20px; font-weight:800; }
.seller-hero-meta { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; font-size:12.5px; opacity:.9; }
.seller-empty { padding:36px 20px; text-align:center; font-size:14px; opacity:.7; }

.account-type-row { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; margin:-6px 0 14px; font-size:13px; }
.account-type-name { font-weight:700; }
.account-type-link { color:#8dbcff; font-size:12.5px; font-weight:700; text-decoration:underline; text-underline-offset:3px; background:none; border:0; padding:0; }

.acct-type-list { display:flex; flex-direction:column; gap:10px; }
.acct-type-card { position:relative; display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:16px; border:1.5px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); cursor:pointer; transition:border-color .2s ease, background-color .2s ease; }
.acct-type-card input { position:absolute; opacity:0; pointer-events:none; }
.acct-type-card::before { content:""; flex:0 0 auto; width:20px; height:20px; border-radius:50%; border:2px solid rgba(255,255,255,.35); box-sizing:border-box; transition:all .2s ease; }
.acct-type-card:has(input:checked) { border-color:#8dbcff; background:rgba(96,165,250,.12); }
.acct-type-card:has(input:checked)::before { border-color:#8dbcff; background:radial-gradient(circle,#8dbcff 0 4px,transparent 5px); }
.acct-type-body { display:flex; flex-direction:column; gap:3px; }
.acct-type-title { font-size:15px; font-weight:700; }
.acct-type-desc { font-size:12.5px; opacity:.7; }
.acct-dealer-fields { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.acct-dealer-fields[hidden] { display:none; }
.acct-input { width:100%; box-sizing:border-box; padding:13px 14px; border-radius:14px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.05); color:inherit; font:inherit; font-size:14.5px; outline:none; }
.acct-input:focus { border-color:#8dbcff; }

/* Seller-written descriptions keep their line breaks. */
.detail-description { white-space:pre-line; overflow-wrap:anywhere; }

.dealership-card { width:calc(100% - 32px); box-sizing:border-box; margin:0 16px 18px; padding:16px; border-radius:20px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09); display:flex; flex-direction:column; gap:16px; text-align:right; }
.dealership-card-head { display:flex; align-items:center; gap:14px; min-width:0; }
.dealership-card-logo { flex:0 0 auto; width:54px; height:54px; border-radius:16px; display:flex; align-items:center; justify-content:center; background:rgba(96,165,250,.14); border:1px solid rgba(96,165,250,.3); color:#8dbcff; font-size:23px; font-weight:800; line-height:1; }
.dealership-card-id { min-width:0; flex:1; display:flex; flex-direction:column; gap:8px; }
.dealership-card-namerow { display:flex; align-items:center; gap:6px; min-width:0; }
.dealership-card-name { font-weight:800; font-size:17px; line-height:1.3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.dealership-card-verified { flex:0 0 auto; display:inline-flex; color:#5aa2f5; }
.dealership-card-meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.dealership-card-city { display:inline-flex; align-items:center; gap:4px; font-size:12.5px; opacity:.7; }
.dealership-card-actions { display:flex; gap:10px; }
.dealership-card-actions button { flex:1; height:44px; border-radius:12px; font-size:13.5px; font-weight:700; display:flex; align-items:center; justify-content:center; gap:7px; cursor:pointer; transition:transform .12s, background .15s; }
.dealership-card-actions button:active { transform:scale(.98); }
.dealership-btn-main { background:#e9ecef; color:#14171a; border:0; }
.dealership-btn-sub { background:transparent; color:inherit; border:1px solid rgba(255,255,255,.18); }
.dealership-card .dealership-status { margin-top:-4px; }
.theme-light .dealership-card { background:#fff; border-color:#d9dcdf; }
.theme-light .dealership-btn-main { background:#1d2125; color:#fff; }
.theme-light .dealership-btn-sub { border-color:#cfd3d6; }
.dealership-create-btn { display:flex; align-items:center; justify-content:center; gap:8px; width:calc(100% - 32px); margin:0 16px 16px; height:46px; border-radius:14px; border:1.5px dashed rgba(141,188,255,.55); color:#8dbcff; font-weight:700; font-size:14px; background:transparent; }
.publish-as { margin-top:18px; text-align:right; }
.publish-as-title { font-size:13px; font-weight:700; margin-bottom:4px; }
.publish-as-hint { font-size:12px; opacity:.65; margin-bottom:10px; }


/* ---- Rejected ads in "my ads": stay visible, labelled, tap for reason ---- */
.account-pin-card.is-rejected .account-pin-image img,
.account-pin-card.is-rejected .account-pin-image > *:first-child { filter: saturate(.55) brightness(.8); }
.account-pin-rejected-badge { position: absolute; top: 8px; right: 8px; background: #dc2626; color: #fff; font-size: 11.5px; font-weight: 800; padding: 4px 10px; border-radius: 9999px; box-shadow: 0 2px 8px rgba(0,0,0,.35); }
.account-pin-card.is-rejected .account-pin-owner { color: #f87171; font-weight: 700; }
.manageAd-status.is-rejected { border-color: rgba(248,113,113,.4); background: rgba(248,113,113,.08); }
.manageAd-status.is-rejected .manageAd-status-title { color: #f87171; }
#genericModal .manageAd-status.is-rejected .manageAd-status-title::before { background: #ef4444; }
.manageAd-reject-box { margin: 12px 0 10px; padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(248,113,113,.4); background: rgba(248,113,113,.08); }
.manageAd-reject-label { font-size: 11.5px; font-weight: 700; color: #f87171; margin-bottom: 4px; }
.manageAd-reject-text { font-size: 13.5px; line-height: 1.7; color: #e0e3e6; }
.manageAd-reject-actions { display: flex; gap: 10px; margin-bottom: 12px; }
.manageAd-reject-btn { flex: 1; padding: 11px 8px; border-radius: 9999px; font-size: 13.5px; font-weight: 700; border: 1px solid #44484c; background: transparent; color: #e0e3e6; }
.manageAd-reject-btn.is-primary { background: #c4b5fd; color: #14171a; border-color: #c4b5fd; }
.theme-light .manageAd-reject-text { color: #34383c; }
.theme-light .manageAd-reject-btn { color: #34383c; border-color: #cfd3d6; }
.theme-light .manageAd-reject-btn.is-primary { background: #7c3aed; color: #fff; border-color: #7c3aed; }


/* ---- Paid ad services ---- */
.manageAd-services { margin: 4px 0 12px; display: flex; flex-direction: column; gap: 8px; }
.manageAd-services-title { font-size: 12px; font-weight: 700; color: #9a9da0; }
.manageAd-service-row { display: flex; align-items: center; gap: 12px; width: 100%; padding: 11px 12px; border-radius: 14px; border: 1px solid #2e3236; background: rgba(255,255,255,.03); text-align: right; color: #e0e3e6; }
.manageAd-service-icon { width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: rgba(196,181,253,.14); color: #c4b5fd; flex: none; }
.manageAd-service-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.manageAd-service-name { font-size: 13.5px; font-weight: 700; }
.manageAd-service-hint { font-size: 11.5px; color: #9a9da0; }
.manageAd-service-price { font-size: 12px; font-weight: 700; color: #c4b5fd; white-space: nowrap; }
.adService-desc { font-size: 13.5px; line-height: 2; color: #c4c7ca; margin: 0 0 14px; }
.adService-price-box { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-radius: 14px; border: 1px solid #2e3236; margin-bottom: 14px; font-size: 13.5px; }
.adService-price-box strong { font-size: 15px; color: #c4b5fd; }
.adService-actions { display: flex; gap: 10px; }
.manageAd-reject-btn:disabled { opacity: .55; }
.theme-light .manageAd-service-row { border-color: #d4d7da; color: #34383c; background: #fff; }
.theme-light .adService-desc { color: #53575b; }
.theme-light .adService-price-box { border-color: #d4d7da; }

.manageAd-service-row.is-locked { opacity: .45; cursor: not-allowed; }

.dealership-status { margin-top: 10px; font-size: 12px; line-height: 1.8; padding: 8px 10px; border-radius: 10px; }
.dealership-status.is-pending { color: #fbbf24; background: rgba(251,191,36,.1); border: 1px solid rgba(251,191,36,.3); }
.dealership-status.is-rejected { color: #f87171; background: rgba(248,113,113,.1); border: 1px solid rgba(248,113,113,.3); }

/* ---- Ad stats popup ---- */
.adStats-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 12px; }
.adStats-tile { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 4px; border-radius: 14px; border: 1px solid #2e3236; background: transparent; color: #c4c7ca; }
.adStats-tile strong { font-size: 18px; color: #e0e3e6; }
.adStats-tile span { font-size: 11.5px; }
.adStats-tile.is-active { border-color: #c4b5fd; background: rgba(196,181,253,.1); }
.adStats-tile.is-active strong { color: #c4b5fd; }
.adStats-range { display: flex; gap: 8px; margin-bottom: 8px; }
.adStats-range-btn { flex: 1; padding: 7px 4px; font-size: 12px; font-weight: 600; border-radius: 9999px; border: 1px solid #2e3236; background: transparent; color: #9a9da0; }
.adStats-range-btn.is-active { background: #c4b5fd; color: #14171a; border-color: #c4b5fd; }
.adStats-chart { direction: ltr; margin: 4px 0 6px; }
.adStats-grid { stroke: #2e3236; stroke-width: 1; }
.adStats-ax { fill: #8a8d90; font-size: 8.5px; }
.adStats-rect { fill: #c4b5fd; opacity: .85; }
.adStats-zero { fill: #3a3f44; }
.adStats-bar { cursor: pointer; }
.adStats-bar.is-sel .adStats-rect, .adStats-bar:hover .adStats-rect { opacity: 1; fill: #ddd6fe; }
.adStats-readout { text-align: center; font-size: 13.5px; font-weight: 700; color: #e0e3e6; margin: 6px 0 2px; }
.adStats-hint { text-align: center; font-size: 11px; color: #8a8d90; margin-bottom: 14px; }
.theme-light .adStats-tile { border-color: #d4d7da; color: #53575b; }
.theme-light .adStats-tile strong, .theme-light .adStats-readout { color: #34383c; }
.theme-light .adStats-grid { stroke: #e1e4e7; }
.theme-light .adStats-rect { fill: #7c3aed; }
.theme-light .adStats-zero { fill: #d4d7da; }
.theme-light .adStats-range-btn { border-color: #d4d7da; }

/* Sticky contact bar: price takes the free space, never ellipsised —
   long prices are abbreviated in JS (formatCompactPrice) and then fitted. */
[data-page="vehicle"].vehicle-detail-page .detail-cta-price { flex:1 1 0; min-width:0; max-width:none; }
[data-page="vehicle"].vehicle-detail-page .detail-cta-price-value { white-space:nowrap; overflow:hidden; text-overflow:clip; overflow-wrap:normal; word-break:normal; font-size:20px; }

/* Account page profile block: avatar, phone and the buttons under it are all centered */
.account-profile { align-items: center; text-align: center; }
.account-profile .account-name { width: 100%; display: flex; justify-content: center; text-align: center; }
.account-profile .account-phone-row { justify-content: center; }
.account-profile .account-name-empty { justify-content: center; }
.account-profile > div:last-child { justify-content: center; flex-wrap: wrap; width: 100%; }

/* Promoted / urgent badges: same neutral glass look as the other tags on a
   card photo (no red / orange / gold), readable in dark and light theme. */
.listing-promo-badge, .listing-urgent-badge { display:inline-flex; align-items:center; background:rgba(32,35,39,.72); color:#e9ecef; font-size:10px; font-weight:700; padding:4px 8px; border-radius:999px; line-height:1; white-space:nowrap; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.xc-top-end .listing-urgent-badge { height:30px; padding:0 10px; font-size:10.5px; background:rgba(20,22,24,.62); -webkit-backdrop-filter:none; backdrop-filter:none; }
.xc-tag { color:#e9ecef !important; }

/* Bottom sheets (اطلاعات تماس, مدیریت آگهی …): the sheet itself only slides
   up/down — no opacity fade. Only the dim backdrop fades. */
#genericModal.modal-shell, #genericModal.modal-shell.is-closing { animation: none; will-change: auto; }
#genericModal .modal-sheet { will-change: transform; }
#genericModal .modal-backdrop { animation: ui-fade-in .3s ease both; }
#genericModal.is-closing .modal-backdrop { animation: ui-fade-out .26s ease both; }

/* Large-card view: the bottom info patch (price / title) is darker — color only, size and border unchanged */
.xc-glass { background:rgba(10,11,13,.9); }

/* Portrait photos in landscape boxes: whole photo over a blurred copy (see 06-home-cards.js) */
.smart-photo-bg { position:absolute !important; inset:0; width:100% !important; height:100% !important; object-fit:cover !important; filter:blur(22px) brightness(.55) saturate(1.2); transform:scale(1.3); z-index:0; pointer-events:none; }
.smart-photo-fg { z-index:1; object-fit:contain !important; }

/* ===== Vehicle detail: back / share / bookmark — glass controls on the photo =====
   RTL-native: back sits at the top-right (start), share + bookmark share one
   pill floating on the photo/sheet seam (left), so it never takes width from the title. Bookmark turns gold when saved (same gold as .xc-save). */
[data-page="vehicle"].vehicle-detail-page .detail-hero-actions-row { display:none; }
[data-page="vehicle"].vehicle-detail-page .detail-top-actions {
  top:12px; left:12px; right:12px; direction:rtl;
  pointer-events:none;
}
[data-page="vehicle"].vehicle-detail-page .detail-top-actions > * { pointer-events:auto; }
[data-page="vehicle"].vehicle-detail-page .detail-round-btn {
  width:42px; height:42px; border:1px solid rgba(255,255,255,.16);
  background:rgba(16,18,21,.48); color:#f1f3f5;
  -webkit-backdrop-filter:blur(14px) saturate(1.3); backdrop-filter:blur(14px) saturate(1.3);
  box-shadow:0 6px 16px -8px rgba(0,0,0,.6);
  transition:background .15s, color .15s, transform .12s;
  -webkit-tap-highlight-color:transparent;
}
[data-page="vehicle"].vehicle-detail-page .detail-round-btn:active { transform:scale(.94); background:rgba(16,18,21,.7); }
[data-page="vehicle"].vehicle-detail-page .detail-round-btn:focus-visible { outline:2px solid #f5d36b; outline-offset:2px; }
[data-page="vehicle"].vehicle-detail-page .detail-action-group {
  position:absolute; top:-21px; left:20px; z-index:3;
  gap:0; direction:ltr; border-radius:21px; overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  background:#30353a;
  box-shadow:0 8px 18px -8px rgba(0,0,0,.65);
}
[data-page="vehicle"].vehicle-detail-page .detail-info-sheet { padding-top:30px; }
[data-page="vehicle"].vehicle-detail-page .detail-action-group .detail-round-btn {
  width:46px; height:40px; border:0; border-radius:0; background:transparent;
  box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none;
}
[data-page="vehicle"].vehicle-detail-page .detail-action-group .detail-round-btn + .detail-round-btn { border-inline-start:1px solid rgba(255,255,255,.14); }
[data-page="vehicle"].vehicle-detail-page .detail-action-group .detail-round-btn:active { background:rgba(255,255,255,.12); }
[data-page="vehicle"].vehicle-detail-page .detail-round-btn.is-liked { color:#f5d36b; }

/* ---- Sell flow, body step: guide finger on the car diagram ----
   A finger glides over the roof, doors and hood, tapping each with a ripple,
   then rests. Shown only until the first part is chosen (carPanelDiagramSVG). */
[data-action="openPartStatusPicker"].car-panel-shape { cursor:pointer; outline:none; }
[data-action="openPartStatusPicker"].car-panel-shape:hover,
[data-action="openPartStatusPicker"].car-panel-shape:focus-visible { fill:rgba(29,33,37,.12) !important; stroke:#1d2125 !important; }

.tap-hint-move { animation:tap-hint-move 9s ease-in-out infinite; transform:translate(986px,538px); opacity:0; }
.tap-hint-icon { animation:tap-hint-press 9s ease-in-out infinite; transform-box:fill-box; transform-origin:50% 0; filter:drop-shadow(0 6px 6px rgba(0,0,0,.28)); }
.tap-hint-ripple { fill:rgba(29,33,37,.14); stroke:rgba(29,33,37,.55); stroke-width:5; transform-box:fill-box; transform-origin:center; transform:scale(0); opacity:0; animation:tap-hint-ripple 9s ease-out infinite; }
@keyframes tap-hint-move {
  0%   { transform:translate(986px,538px); opacity:0; }
  4%   { transform:translate(986px,538px); opacity:1; }
  14%  { transform:translate(986px,538px); }
  30%  { transform:translate(860px,866px); }
  34%  { transform:translate(860px,866px); }
  48%  { transform:translate(1068px,866px); }
  52%  { transform:translate(1068px,866px); }
  66%  { transform:translate(506px,538px); }
  72%  { transform:translate(506px,538px); opacity:1; }
  78%  { transform:translate(506px,538px); opacity:0; }
  100% { transform:translate(986px,538px); opacity:0; }
}
@keyframes tap-hint-press {
  0%, 5%, 9%, 30%, 34%, 48%, 52%, 66%, 70%, 100% { transform:scale(1); }
  6.5%, 31.5%, 49.5%, 67.5% { transform:scale(.86); }
}
@keyframes tap-hint-ripple {
  0%, 5.5%, 14%, 30.5%, 38%, 48.5%, 56%, 66.5%, 74%, 100% { transform:scale(0); opacity:0; }
  6%, 31%, 49%, 67% { transform:scale(.25); opacity:.9; }
  13%, 37.5%, 55.5%, 73.5% { transform:scale(1.5); opacity:0; }
}
@media (prefers-reduced-motion: reduce) {
  .tap-hint-move, .tap-hint-icon, .tap-hint-ripple { animation:none !important; }
  .tap-hint-move { opacity:1; transform:translate(860px,866px); }
  .tap-hint-ripple { opacity:.8; transform:scale(.8); }
}

/* =====================================================================
   VEHICLE DETAIL — iOS-style v4 (inset grouped lists, system greys)
   Not black: iOS "elevated" dark greys. Separation = one step of lightness
   between page and card, hairline separators, segmented control, blur
   material for floating bars. Semibold (600/700) type, no heavy weights.
     page        #1c1c1e      card / grouped row   #2c2c2e
     fill        rgba(118,118,128,.24)  (segmented track, chips)
     separator   rgba(84,84,88,.65)
     label       #fff   secondary #a1a1a6   tertiary #636366
   Keep this block last so it wins over older detail-page rules above.
   ===================================================================== */
[data-page="vehicle"].vehicle-detail-page,
.theme-light [data-page="vehicle"].vehicle-detail-page { background:#1c1c1e; color:#fff; }
body:has(.vehicle-detail-page) #appViewport,
.theme-light body:has(.vehicle-detail-page) #appViewport { background:#1c1c1e !important; }
[data-page="vehicle"].vehicle-detail-page .detail-hero-frame,
[data-page="vehicle"].vehicle-detail-page .detail-info-sheet { background:#1c1c1e; }
[data-page="vehicle"].vehicle-detail-page .detail-hero { border-radius:26px; box-shadow:none; }

/* floating controls on / near the photo: translucent material */
[data-page="vehicle"].vehicle-detail-page .detail-round-btn {
  background:rgba(44,44,46,.62); color:#fff; border:.5px solid rgba(255,255,255,.14); box-shadow:none;
  -webkit-backdrop-filter:blur(20px) saturate(180%); backdrop-filter:blur(20px) saturate(180%);
}
[data-page="vehicle"].vehicle-detail-page .detail-action-group {
  background:rgba(44,44,46,.78); border:.5px solid rgba(255,255,255,.14); box-shadow:0 6px 18px -8px rgba(0,0,0,.5);
  -webkit-backdrop-filter:blur(20px) saturate(180%); backdrop-filter:blur(20px) saturate(180%);
}
[data-page="vehicle"].vehicle-detail-page .detail-action-group .detail-round-btn { background:transparent; border:0; -webkit-backdrop-filter:none; backdrop-filter:none; }
[data-page="vehicle"].vehicle-detail-page .detail-action-group .detail-round-btn + .detail-round-btn { border-inline-start:.5px solid rgba(84,84,88,.65); }
[data-page="vehicle"].vehicle-detail-page .detail-round-btn.is-liked { color:#fff; }

/* title */
[data-page="vehicle"].vehicle-detail-page .detail-car-name { color:#fff; font-weight:700; font-size:24px; letter-spacing:-.015em; }
[data-page="vehicle"].vehicle-detail-page .detail-year-badge { background:rgba(118,118,128,.32) !important; color:#ebebf5 !important; border:0; font-weight:600; border-radius:7px; }
[data-page="vehicle"].vehicle-detail-page .detail-location,
[data-page="vehicle"].vehicle-detail-page .detail-location svg { color:#8e8e93; }
[data-page="vehicle"].vehicle-detail-page .detail-dot-sep { background:#636366; }

/* price: plain large type, no box — classy and quiet */
[data-page="vehicle"].vehicle-detail-page .detail-main-price-row {
  margin:20px 0 22px; padding:0 2px; min-height:0; background:none; border:0; box-shadow:none; border-radius:0; overflow:visible;
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price-row::before,
[data-page="vehicle"].vehicle-detail-page .detail-main-price-row::after,
[data-page="vehicle"].vehicle-detail-page .detail-main-price-label::before { display:none; }
[data-page="vehicle"].vehicle-detail-page .detail-main-price-value { color:#fff; font-size:34px; font-weight:700; letter-spacing:-.02em; text-shadow:none; }
[data-page="vehicle"].vehicle-detail-page .detail-main-price-label { color:#8e8e93; font-size:13px; font-weight:400; margin-top:4px; }

/* grouped cards */
[data-page="vehicle"].vehicle-detail-page .detail-facts-grid,
[data-page="vehicle"].vehicle-detail-page .detail-spec-table,
[data-page="vehicle"].vehicle-detail-page .detail-map-card,
[data-page="vehicle"].vehicle-detail-page .detail-diagram-card,
[data-page="vehicle"].vehicle-detail-page .detail-condition-card,
[data-page="vehicle"].vehicle-detail-page .detail-services-list,
[data-page="vehicle"].vehicle-detail-page .detail-owner-card {
  background:#2c2c2e; border:0; border-radius:20px; box-shadow:none;
}
[data-page="vehicle"].vehicle-detail-page .detail-facts-grid { min-height:0; }
[data-page="vehicle"].vehicle-detail-page .detail-fact { padding:18px 6px 16px; gap:6px; }
[data-page="vehicle"].vehicle-detail-page .detail-fact:not(:first-child)::before { background:rgba(84,84,88,.65); width:.5px; top:20%; bottom:20%; }
[data-page="vehicle"].vehicle-detail-page .detail-fact-icon { background:transparent; color:#8e8e93; width:26px; height:26px; }
[data-page="vehicle"].vehicle-detail-page .detail-fact-swatch { width:22px; height:22px; border:0; box-shadow:0 0 0 .5px rgba(255,255,255,.35); }
[data-page="vehicle"].vehicle-detail-page .detail-fact-value { color:#fff; font-size:15px; font-weight:600; }
[data-page="vehicle"].vehicle-detail-page .detail-fact-label { color:#8e8e93; font-size:11.5px; }
[data-page="vehicle"].vehicle-detail-page .detail-spec-row { border-bottom:.5px solid rgba(84,84,88,.65); }
[data-page="vehicle"].vehicle-detail-page .detail-spec-row span { color:#a1a1a6; }
[data-page="vehicle"].vehicle-detail-page .detail-spec-row b { color:#fff; font-weight:600; }
[data-page="vehicle"].vehicle-detail-page .detail-spec-group h3 { color:#8e8e93; font-weight:600; font-size:12.5px; }

/* seller: an inset grouped row */
[data-page="vehicle"].vehicle-detail-page .detail-seller { margin:14px 0 6px; }
[data-page="vehicle"].vehicle-detail-page .seller-card,
[data-page="vehicle"].vehicle-detail-page .seller-card:has(.seller-card-avatar-dealer) { --seller-card-bg:#2c2c2e; border:0; border-radius:20px; }
[data-page="vehicle"].vehicle-detail-page .seller-card-avatar,
[data-page="vehicle"].vehicle-detail-page .seller-card-avatar-dealer { background:rgba(118,118,128,.36); color:#fff; }
[data-page="vehicle"].vehicle-detail-page .seller-card-name { font-weight:600; }
[data-page="vehicle"].vehicle-detail-page .seller-tag-dealer { background:rgba(118,118,128,.32); color:#ebebf5; }
[data-page="vehicle"].vehicle-detail-page .seller-card-sub { opacity:1; color:#8e8e93; }
[data-page="vehicle"].vehicle-detail-page .seller-card-link > :last-child { color:#636366; }

/* tabs: iOS segmented control */
[data-page="vehicle"].vehicle-detail-page .detail-tabs { margin-top:26px; padding:2px; gap:0; border:0; border-radius:12px; background:rgba(118,118,128,.24); }
[data-page="vehicle"].vehicle-detail-page .detail-tab { padding:10px 4px; border-radius:10px; color:#ebebf5; font-weight:500; font-size:13px; }
[data-page="vehicle"].vehicle-detail-page .detail-tab.is-active { background:#636366; color:#fff; font-weight:600; border:0; box-shadow:0 3px 8px rgba(0,0,0,.28), 0 1px 1px rgba(0,0,0,.2); }

/* headings + body */
[data-page="vehicle"].vehicle-detail-page .detail-section-label,
[data-page="vehicle"].vehicle-detail-page .detail-section-head h2 { color:#fff; font-size:20px; font-weight:700; }
[data-page="vehicle"].vehicle-detail-page .detail-section-label::after { display:none; }
[data-page="vehicle"].vehicle-detail-page .detail-description { color:#a1a1a6; line-height:1.95; font-size:14.5px; }

/* floating bar: blur material + capsule button */
[data-page="vehicle"].vehicle-detail-page .detail-cta-inner {
  background:rgba(44,44,46,.78); border:.5px solid rgba(255,255,255,.14); border-radius:26px;
  -webkit-backdrop-filter:blur(24px) saturate(180%); backdrop-filter:blur(24px) saturate(180%);
  box-shadow:0 14px 36px rgba(0,0,0,.4);
}
[data-page="vehicle"].vehicle-detail-page .detail-cta-price-value { color:#fff; font-weight:700; }
[data-page="vehicle"].vehicle-detail-page .detail-cta-price-unit { color:#8e8e93; }
[data-page="vehicle"].vehicle-detail-page .detail-cta-btn { background:#f2f2f7; border:0; box-shadow:none; font-weight:600; }
[data-page="vehicle"].vehicle-detail-page .detail-cta-btn:hover { background:#fff; box-shadow:none; }
[data-page="vehicle"].vehicle-detail-page .detail-cta-phone { background:rgba(118,118,128,.32); border:0; color:#fff; }

/* ================================================================
   LISTING CARD (large) — info bar straddles the photo's bottom edge
   The bar's vertical centre sits exactly on the photo's bottom line,
   half over the photo, half below it. The photo clips itself (so the
   bar is free to hang out of .xc-media), and the card gets bottom
   padding for the half that hangs below — that padding is inside the
   .xc box, so content-visibility:auto (paint containment) won't clip it.
   ================================================================ */
.xc { padding-bottom:34px; }
.xc-media { overflow:visible; }
.xc-photo { overflow:hidden; border-radius:24px; }
.xc-media::after { border-radius:24px; }
.xc-glass { bottom:0; transform:translateY(50%); }

/* info bar: lighter slate so it stands out from the dark page background it now overlaps */
.xc-glass { background:#3a4046; border-color:rgba(255,255,255,.2); box-shadow:0 8px 20px rgba(0,0,0,.45); }
.xc-chip { background:rgba(255,255,255,.16); }
.xc-price { border-inline-start-color:rgba(255,255,255,.24); }

/* ---- tidy pass: roomier list, cleaner info bar ---- */
.explore-list[data-list-style="large"] { gap:30px; }
.explore-list[data-list-style="large"] > .xc { contain-intrinsic-size:auto 300px; }
.xc { --xc-ring:#14171a; }
.theme-light .xc { --xc-ring:#e9ecef; }
/* bar sits inset so the photo's rounded corners don't peek out beside it,
   and a ring in the page colour cuts it cleanly out of the photo edge */
.xc-glass { left:16px; right:16px; background:#262a2f; border:1px solid rgba(255,255,255,.09);
  box-shadow:0 0 0 5px var(--xc-ring), 0 10px 22px rgba(0,0,0,.35); }
.xc-chip { background:rgba(255,255,255,.1); color:rgba(255,255,255,.85); }
.xc-price { border-inline-start-color:rgba(255,255,255,.14); }
.xc-price-amount { color:#CAFE6E; text-shadow:none; }
.xc-title { text-shadow:none; }

/* ---- listings page (dark theme): near-black page background ---- */
html:not(.theme-light):has([data-page="listings"]),
html:not(.theme-light):has([data-page="listings"]) body,
html:not(.theme-light) body:has([data-page="listings"]) #appViewport { background:#08090b !important; }
html:not(.theme-light) body:has([data-page="listings"]) #siteHeader { background:#08090b; }
html:not(.theme-light) body:has([data-page="listings"]) #stickyHeaderGroup { --chrome-fade-bg:#08090b; background:rgba(8,9,11,.88); }
html:not(.theme-light) body:has([data-page="listings"]) .xc { --xc-ring:#08090b; }

/* ---- all pages (dark theme): same #08090b page background ---- */
:root:not(.theme-light), html:not(.theme-light) { --sm-bg:#08090b; }
html:not(.theme-light),
html:not(.theme-light) body,
html:not(.theme-light) #appViewport,
html:not(.theme-light) body:has(.vehicle-detail-page) #appViewport,
html:not(.theme-light) [data-page="vehicle"].vehicle-detail-page,
html:not(.theme-light) [data-page="sell-step"] { background:#08090b !important; }
html:not(.theme-light) #siteHeader { background:#08090b; }
html:not(.theme-light) #stickyHeaderGroup { --chrome-fade-bg:#08090b; }
html:not(.theme-light) .auth-flow { --auth-bg:#08090b; --auth-shell-bg:#08090b; }
html:not(.theme-light) .xc { --xc-ring:#08090b; }

/* ---- dark theme: unify leftover surfaces + all popups on #08090b ---- */
html:not(.theme-light) #appFrame,
html:not(.theme-light) .bg-neutral-950,
html:not(.theme-light) .bg-black,
html:not(.theme-light) .page-header-sticky,
html:not(.theme-light) .toolbar-sticky,
html:not(.theme-light) .explore-header { background-color:#08090b !important; }
html:not(.theme-light) { --blackstone-deep:#08090b; --chrome-fade-bg:#08090b; }
/* popups / bottom sheets */
html:not(.theme-light) .brand-sheet-panel,
html:not(.theme-light) .filter-overlay-panel,
html:not(.theme-light) #genericModal .modal-sheet,
html:not(.theme-light) .modal-card,
html:not(.theme-light) .sell-year-picker-sheet,
html:not(.theme-light) .sell-brand-picker-sheet,
html:not(.theme-light) .sell-trim-picker-sheet,
html:not(.theme-light) .sell-color-picker-sheet,
html:not(.theme-light) .detail-info-sheet,
html:not(.theme-light) [data-page="vehicle"].vehicle-detail-page .detail-info-sheet,
html:not(.theme-light) .bcond-sheet { background:#08090b !important; background-image:none !important; }
html:not(.theme-light) .auth-flow { --auth-sheet-bg:#08090b; }
html:not(.theme-light) .auth-sheet, html:not(.theme-light) .auth-success-sheet { background:#08090b; }


/* ---- listings skeleton: mirrors the real large/compact cards ---- */
@keyframes skeleton-shimmer-glass { 0%,100% { background-color:rgba(255,255,255,.10); } 50% { background-color:rgba(255,255,255,.2); } }
.xc.is-skeleton .xc-sk { display:block; }
.xc.is-skeleton .xc-sk-save { border:0; padding:0; background-color:#2e3236; }
.xc.is-skeleton .xc-sk-tag { display:block; height:30px; width:64px; }
.xc.is-skeleton .xc-glass .skeleton-block { animation-name:skeleton-shimmer-glass; }
.xc.is-skeleton .xc-glass .xc-price { align-items:center; }
.xc.is-skeleton .xc-photo .skeleton-block { background-color:#2e3236; }
.xcard.is-skeleton .xcard-media .skeleton-block { border-radius:0; }
.xcard.is-skeleton .xcard-brand-avatar { background:#2e3236; }
.theme-light .xc.is-skeleton .xc-glass .skeleton-block { animation-name:skeleton-shimmer-glass; }


/* Vehicle detail: back button sits at the top-left corner of the photo */
[data-page="vehicle"].vehicle-detail-page .detail-top-actions { direction:ltr; justify-content:flex-start; }

/* Vehicle detail: area behind the photo (and the info sheet) uses the page background */
[data-page="vehicle"].vehicle-detail-page .detail-hero-frame,
[data-page="vehicle"].vehicle-detail-page .detail-info-sheet { background:transparent; }

/* Vehicle detail: back button sits ABOVE the photo frame, top-right (outside the photo) */
[data-page="vehicle"].vehicle-detail-page .detail-top-actions {
  position:static; display:flex; justify-content:flex-start; direction:rtl;
  padding:6px 2px 12px; pointer-events:auto;
}
[data-page="vehicle"].vehicle-detail-page .detail-back-btn { background:rgba(255,255,255,.08); }


/* Vehicle detail: price panel — soft graphite surface, hairline edge, one quiet glow */
[data-page="vehicle"].vehicle-detail-page .detail-main-price-row {
  position:relative; display:flex; align-items:center; justify-content:space-between;
  margin:14px 0 16px; padding:11px 16px 10px; min-height:0; overflow:hidden;
  border:.5px solid rgba(255,255,255,.09); border-radius:18px;
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(255,255,255,.075) 0%, rgba(255,255,255,0) 52%),
    linear-gradient(160deg, #323236 0%, #29292c 55%, #232326 100%);
  box-shadow:
    inset 0 .5px 0 rgba(255,255,255,.14),
    inset 0 -18px 30px -24px rgba(0,0,0,.55),
    0 14px 30px -14px rgba(0,0,0,.55);
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price-row::before {
  display:block; content:""; position:absolute; top:0; bottom:0; right:0; left:auto; width:100%;
  border-radius:inherit; background:none; box-shadow:none; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,0) 40%);
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price-row::after { display:none; }
[data-page="vehicle"].vehicle-detail-page .detail-main-price { position:relative; z-index:1; }
[data-page="vehicle"].vehicle-detail-page .detail-main-price-value {
  font-size:clamp(20px, 6vw, 25px); font-weight:700; line-height:1.2; letter-spacing:-.02em; color:#fff;
}
[data-page="vehicle"].vehicle-detail-page .detail-main-price-label {
  margin-top:1px; font-size:11.5px; line-height:1.3; color:#9a9aa0;
}


/* Large listing cards: slimmer info bar under the photo (~65px -> ~54px) */
.xc-glass { padding:7px 12px; gap:10px; border-radius:16px; }
.xc-glass-text { gap:4px; }
.xc-title { font-size:13.5px; line-height:1.25; }
.xc-chip { height:18px; padding:0 7px; font-size:10px; }
.xc-price { gap:2px; min-width:68px; }
.xc-price-amount { font-size:17.5px; }
.xc-price-unit { font-size:9.5px; }
.xc { padding-bottom:30px; }


/* Account → my listings: a listing waiting for approval has its photo pulse light/dark, like the loading skeleton */
@keyframes pin-pending-pulse { 0%,100% { opacity:0; } 50% { opacity:.88; } }
.account-pin-card.is-pending .account-pin-image::after {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:#000; opacity:0; animation:pin-pending-pulse 2.6s ease-in-out infinite;
}
.account-pin-card.is-pending .account-pin-avatar,
.account-pin-card.is-pending .account-pin-rejected-badge { z-index:2; }
@media (prefers-reduced-motion: reduce) {
  .account-pin-card.is-pending .account-pin-image::after { animation:none; opacity:.5; }
}

/* ── Status patches under the card + on detail: trade-in (teal) / painted parts (amber) ── */
.xpatch,.xc-chip--trade,.xc-chip--paint{gap:4px}
.xpatch{flex:0 0 auto;box-sizing:border-box;display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-weight:800;font-size:10px;line-height:1.3;white-space:nowrap}
.xpatch svg{flex:0 0 auto}
.xpatch--trade,.xc-chip--trade{background:rgba(45,212,191,.16);color:#2dd4bf}
.xpatch--paint,.xc-chip--paint{background:rgba(251,191,36,.16);color:#fbbf24}
.xc-chip--trade svg,.xc-chip--paint svg{opacity:1}
.xc-meta--tags{margin-top:-1px}
.detail-status-patches{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 2px}
.detail-status-patches[hidden]{display:none}
.detail-status-patches .xpatch{font-size:11.5px;padding:5px 11px}
.detail-trade-note{display:flex;align-items:center;gap:6px;margin:10px 0 0;font-size:12.5px;font-weight:800;color:#2dd4bf}
.theme-light .detail-trade-note{color:#0f766e}
.theme-light .xpatch--trade{background:rgba(13,148,136,.14);color:#0f766e}
.theme-light .xpatch--paint{background:rgba(217,119,6,.14);color:#b45309}

/* Keep year, mileage and status chips on the same single row in the large glass listing card. */
.xc-glass .xc-meta { display:flex; flex-wrap:nowrap; align-items:center; gap:5px; min-width:0; max-width:100%; overflow:hidden; }
.xc-glass .xc-meta > .xc-chip { flex:0 1 auto; min-width:0; max-width:100%; white-space:nowrap; }
.xc-glass .xc-meta > .xc-chip svg { flex:0 0 auto; }
.xc-glass .xc-meta > .xc-chip--paint,
.xc-glass .xc-meta > .xc-chip--trade { flex:0 0 auto; }


/* Sell form step 3: "قیمت توافقی" on -> the price box is dimmed + disabled */
[data-page="sell-step"] .sell-section.is-negotiable .sell-price-box { opacity:.45; }
[data-page="sell-step"] .sell-section.is-negotiable .sell-price-input { cursor:not-allowed; font-size:20px!important; }
[data-page="sell-step"] .sell-section.is-negotiable .sell-price-input::placeholder { color:var(--sm-text-dim,#929599); }


/* Large card layout: title on top (never truncated), year + km under it, other patches under that. */
.xc-glass .xc-glass-text { gap:4px; justify-content:center; }
.xc-glass .xc-title { white-space:normal; overflow:visible; text-overflow:clip; line-height:1.3; margin:0; }
.xc-glass .xc-meta { flex-wrap:wrap; overflow:visible; gap:5px; margin:0; }
.xc-glass .xc-meta--tags { margin-top:0; }
.xc-glass .xc-meta > .xc-chip { flex:0 0 auto; max-width:none; white-space:nowrap; }

/* Large card: the info bar is centered exactly on the photo's bottom edge (half over the photo, half below),
   whatever its height. The card's bottom padding is kept equal to half the bar's height by js/18-peek-preview-init.js. */
.xc .xc-glass { bottom:0; transform:translateY(50%); }


/* Large card redesign: bigger title, year + km as plain inline text (no pills),
   only status patches (trade-in / paint / hybrid) are pills; narrower, tighter bar. */
.xc .xc-glass { left:24px; right:24px; padding:9px 12px; gap:10px; border-radius:16px; }
.xc-glass .xc-glass-text { gap:4px; }
.xc-glass .xc-title { font-size:16px; line-height:1.3; }
.xc-glass .xc-specs { display:flex; align-items:center; flex-wrap:wrap; gap:6px; font-size:12px; font-weight:700; line-height:1.2; color:rgba(255,255,255,.72); }
.xc-glass .xc-spec { display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.xc-glass .xc-spec svg { opacity:.7; flex:0 0 auto; }
.xc-glass .xc-spec-year { color:#CAFE6E; font-weight:800; }
.xc-glass .xc-spec-dot { width:3px; height:3px; border-radius:50%; background:rgba(255,255,255,.35); flex:0 0 auto; }
.xc-glass .xc-meta--tags { gap:4px; }
.xc-glass .xc-meta--tags > .xc-chip { height:19px; padding:0 8px; font-size:10px; }
.xc-glass .xc-price { min-width:60px; padding-inline-start:10px; gap:2px; }
.xc-glass .xc-price-amount { font-size:18px; }
.xc-glass .xc-price-unit { font-size:9.5px; }


/* Large card — final design: title + year on top, km / status as plain icon text below,
   price in a lime tab on the bar's end. */
.xc .xc-glass.xc-glass--tab { left:24px; right:24px; padding:0; gap:0; overflow:hidden; border-radius:18px; align-items:stretch;
  background:#1a1d21; border:1px solid #2e3338; box-shadow:0 6px 18px rgba(0,0,0,.35); -webkit-backdrop-filter:none; backdrop-filter:none; }
.xc-glass--tab .xc-glass-text { flex:1 1 auto; min-width:0; padding:11px 14px; gap:4px; justify-content:center; align-items:stretch; }
.xc-glass--tab .xc-b-head { display:flex; align-items:center; flex-wrap:nowrap; gap:8px; min-width:0; }
.xc-glass--tab .xc-title { flex:1 1 auto; min-width:0; font-size:17px; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:clip; }
/* Very long names: js/18 first shrinks the font (down to 12.5px); only if that still doesn't fit does it fall back to 2 lines. */
.xc-glass--tab .xc-title.is-two-line { white-space:normal; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-height:1.3; }
.xc-glass--tab .xc-b-year { font-size:12px; font-weight:800; color:#CAFE6E; white-space:nowrap; }
.xc-glass--tab .xc-b-meta { display:flex; align-items:center; flex-wrap:wrap; gap:3px 10px; font-size:11.5px; font-weight:700; line-height:1.2; color:rgba(255,255,255,.7); }
.xc-glass--tab .xc-b-item { display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.xc-glass--tab .xc-b-item svg { flex:0 0 auto; }
.xc-glass--tab .xc-b-item--trade { color:#2dd4bf; }
.xc-glass--tab .xc-b-item--paint { color:#fbbf24; }
.xc-glass--tab .xc-b-item--hybrid { color:#8dbcff; font-weight:800; letter-spacing:-.1px; }
.xc-glass--tab .xc-price--tab { flex:0 0 auto; width:84px; min-width:84px; padding:0 4px; gap:2px; border:0; background:#3a4046; color:#fff; justify-content:center; align-items:center; text-align:center; }
.xc-glass--tab .xc-price--tab .xc-price-amount { font-size:22px; color:#CAFE6E; text-shadow:none; }
.xc-glass--tab .xc-price--tab .xc-price-unit { font-size:10px; font-weight:700; color:rgba(255,255,255,.75); }
.xc-glass--tab .xc-price--text .xc-price-amount { font-size:15px; line-height:1.3; white-space:normal; }

/* ---------------------------------------------------------------
   CarMaa MESSAGING — inbox, conversations and frontend transport preview
--------------------------------------------------------------- */
.mr-chat-avatar { position:relative; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; color:#f5edff; font-weight:850; font-size:17px; background:radial-gradient(circle at 30% 20%,#7c6b9c,#34303d 65%,#201e24); border:1px solid rgba(217,200,255,.3); box-shadow:0 0 0 3px rgba(196,172,255,.045); }
.mr-chat-avatar.is-small { width:36px; height:36px; font-size:13px; }
.mr-chat-car-thumb { flex:0 0 auto; width:56px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:11px; overflow:hidden; background:#202126; color:#72717a; }
.mr-chat-car-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.mr-chat-car-thumb svg { width:38px; height:26px; }
.mr-chat-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:42px 22px 38px; min-height:285px; border:1px dashed rgba(255,255,255,.1); border-radius:22px; background:linear-gradient(150deg,rgba(255,255,255,.025),transparent); }
.mr-chat-empty .mr-chat-avatar { width:60px; height:60px; font-size:22px; margin-bottom:15px; }
.mr-chat-empty-title { font-size:16px; font-weight:850; color:#f3eff8; }
.mr-chat-empty p { max-width:310px; margin:8px 0 17px; font-size:12px; line-height:1.95; color:#8e8a96; }
.mr-chat-primary-btn { border:0; border-radius:999px; padding:11px 18px; color:#17131f; background:#ddd0ff; font:inherit; font-size:12px; font-weight:850; cursor:pointer; }
.mr-chat-quiet-btn { border:1px solid rgba(255,255,255,.12); border-radius:999px; padding:9px 15px; color:#d0c6e4; background:rgba(255,255,255,.035); font:inherit; font-size:11px; cursor:pointer; }
.mr-chat-privacy-note { margin:20px 2px 0; font-size:10px; line-height:1.8; color:#66636d; text-align:center; }
.mr-chat-preview-note { margin:8px 0 0; color:#77727f; font-size:10px; text-align:center; }
.mr-chat-inline-error { margin:10px 0; padding:10px 12px; border:1px solid rgba(255,130,130,.2); border-radius:12px; background:rgba(136,28,36,.12); color:#f2a9ab; font-size:11px; line-height:1.8; }
.mr-chat-loading { display:flex; align-items:center; justify-content:center; gap:10px; min-height:130px; color:#aaa4b5; font-size:12px; }
.mr-chat-loading > span { width:17px; height:17px; border:2px solid rgba(214,199,255,.2); border-top-color:#d8c9ff; border-radius:50%; animation:mrChatSpin .75s linear infinite; }
@keyframes mrChatSpin { to { transform:rotate(360deg); } }
.mr-chat-dock-item { overflow:visible; }
.mr-chat-dock-icon { position:relative; }
.mr-chat-dock-badge { position:absolute; top:-7px; right:-9px; min-width:16px; height:16px; padding:0 3px; display:flex; align-items:center; justify-content:center; border-radius:999px; border:2px solid #27252a; color:#fff; background:#ff3b30; font-size:8px; font-weight:900; line-height:1; }
.mr-chat-start-note { margin:auto; display:flex; flex-direction:column; align-items:center; justify-content:center; max-width:285px; text-align:center; }
.mr-chat-start-note > span { display:flex; align-items:center; justify-content:center; width:37px; height:37px; margin-bottom:10px; color:#d7c7fa; background:rgba(210,193,255,.08); border:1px solid rgba(210,193,255,.1); border-radius:50%; }
.mr-chat-start-note b { color:#d9d2e4; font-size:13px; }
.mr-chat-start-note p { color:#817d88; font-size:11px; line-height:1.9; }
.mr-account-inbox-shortcut { margin:0 16px 16px; padding:18px; border-radius:18px; background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.075); }
.mr-account-inbox-shortcut p { margin:0 0 13px; color:#a7a2ae; font-size:12px; line-height:1.9; }
.mr-account-inbox-shortcut button { border:0; border-radius:999px; background:#d9cbfb; color:#21192b; padding:10px 15px; font:inherit; font-weight:800; font-size:11px; cursor:pointer; }
.theme-light .mr-chat-screen,.theme-light .mr-chat-conversation { color:#25232a; }
.theme-light .mr-chat-page-heading h1,.theme-light .mr-chat-rail-heading b,.theme-light .mr-chat-inbox-label h2,.theme-light .mr-chat-thread-top b,.theme-light .mr-chat-listing-copy b,.theme-light .mr-chat-head-person b { color:#25232a; }
.theme-light .mr-chat-empty { border-color:rgba(40,35,50,.16); background:rgba(40,35,50,.02); }
.theme-light .mr-chat-empty-title { color:#2a2631; }
.theme-light .mr-chat-contact-rail,.theme-light .mr-chat-conversation-head { border-bottom-color:rgba(40,35,50,.09); }
.theme-light .mr-account-inbox-shortcut { background:rgba(35,31,42,.03); border-color:rgba(35,31,42,.1); }
@media (max-width:520px) {
  .mr-chat-screen { padding:15px 14px 125px; }
  .dock-label { font-size:9.5px; }
  .bottom-dock-inner { padding-left:4px; padding-right:4px; }
}
@media (prefers-reduced-motion: reduce) {
  .mr-chat-loading > span { animation:none; }
  .mr-chat-filters button,.mr-chat-composer button { transition:none; }
}


.mr-chat-screen { width:100%; max-width:820px; margin:0 auto; padding:18px 16px 124px; color:#f5f5f5; direction:rtl; }
.theme-light .mr-chat-screen { color:#25232a; }

/* ===== CarMaa MESSAGES v101 — inbox redesign (stories rail + ring avatars) ===== */
.mr-msg-screen { --msg-bg:#08090b; --msg-card:#1c1c1e; --msg-card2:#2a2a2d; --msg-text:#fff; --msg-sub:#b9b9bf; --msg-time:#8e8e93; --msg-blue:#0a7cff; padding:16px 16px 130px; max-width:560px; }
.mr-msg-search { height:56px; display:flex; align-items:center; gap:12px; padding:0 18px; border-radius:22px; background:var(--msg-card); }
.mr-msg-search > svg { width:24px; height:24px; flex:0 0 auto; fill:none; stroke:#e9e9ee; stroke-width:1.7; stroke-linecap:round; }
.mr-msg-search input { flex:1 1 auto; min-width:0; background:transparent; border:0; outline:0; color:#f2f2f6; font:inherit; font-size:15px; font-weight:600; }
.mr-msg-search input::placeholder { color:#7d7d84; }
.mr-msg-search input::-webkit-search-cancel-button { display:none; }
.mr-msg-clear { flex:0 0 auto; width:24px; height:24px; border:0; border-radius:50%; background:rgba(255,255,255,.1); color:#ddd; font-size:17px; line-height:1; cursor:pointer; }
.mr-msg-filter { position:relative; flex:0 0 auto; width:32px; height:32px; display:flex; align-items:center; justify-content:center; border:0; background:transparent; color:#fff; cursor:pointer; padding:0; }
.mr-msg-filter svg { width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; }
.mr-msg-filter svg .k { fill:currentColor; stroke:none; }
.mr-msg-filter.is-active::after { content:""; position:absolute; top:2px; left:2px; width:9px; height:9px; border-radius:50%; background:var(--msg-blue); border:2px solid var(--msg-card); }
.mr-msg-stories { display:flex; gap:12px; margin:22px -16px 0; padding:0 16px 4px; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; }
.mr-msg-stories::-webkit-scrollbar { display:none; }
.mr-msg-story { position:relative; flex:0 0 auto; width:96px; height:116px; padding:0; border:0; border-radius:28px; overflow:hidden; background:var(--msg-card2); color:#fff; cursor:pointer; scroll-snap-align:start; font:inherit; }
.mr-msg-story:active { transform:scale(.97); }
.mr-msg-story > img { width:100%; height:100%; object-fit:cover; display:block; }
.mr-msg-story-fallback { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(160deg,#3a3a40,#1d1d20); }
.mr-msg-story-fallback .mr-chat-car-thumb { width:100%; height:100%; border-radius:0; background:transparent; }
.mr-msg-story-avatar { position:absolute; top:9px; right:9px; width:38px; height:38px; display:flex; align-items:center; justify-content:center; border-radius:50%; font-size:15px; font-weight:800; color:hsl(var(--h) 45% 22%); background:hsl(var(--h) 80% 86%); box-shadow:0 0 0 4px hsl(var(--h) 85% 92% / .88); }
.mr-msg-story.has-unread::after { content:""; position:absolute; bottom:9px; left:9px; width:11px; height:11px; border-radius:50%; background:var(--msg-blue); box-shadow:0 0 0 3px rgba(0,0,0,.55); }
.mr-msg-story.is-new { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; background:var(--msg-card2); }
.mr-msg-new-avatar { position:relative; width:58px; height:58px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#3d9bf2; color:#fff; box-shadow:0 0 0 4px rgba(61,155,242,.22); }
.mr-msg-new-avatar > svg { width:27px; height:27px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.mr-msg-new-avatar > i { position:absolute; bottom:-6px; left:50%; transform:translateX(-50%); width:24px; height:24px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#3a3a3e; border:2px solid var(--msg-card2); }
.mr-msg-new-avatar > i svg { width:14px; height:14px; fill:none; stroke:#fff; stroke-width:2.6; stroke-linecap:round; }
.mr-msg-story.is-new small { font-size:11.5px; font-weight:700; color:#c2c2c8; }
.mr-msg-title { margin:30px 2px 14px; font-size:26px; line-height:1.3; font-weight:800; color:var(--msg-text); letter-spacing:-.3px; }
.mr-msg-list { display:flex; flex-direction:column; gap:4px; }
.mr-msg-row { width:100%; display:flex; align-items:center; gap:14px; padding:9px 2px; border:0; background:transparent; color:inherit; font:inherit; text-align:right; cursor:pointer; min-width:0; border-radius:18px; transition:background .15s ease; }
.mr-msg-row:active { background:rgba(255,255,255,.05); }
.mr-msg-avatar { flex:0 0 auto; width:68px; height:68px; padding:2px; display:flex; border-radius:50%; background:linear-gradient(150deg,#f6dccb 0%,#8f86a0 48%,#e7b59b 100%); }
.mr-msg-avatar b { width:100%; height:100%; display:flex; align-items:center; justify-content:center; border-radius:50%; border:3px solid var(--msg-bg); font-size:25px; font-weight:800; color:hsl(var(--h) 70% 88%); background:radial-gradient(circle at 30% 25%,hsl(var(--h) 55% 40%),hsl(var(--h) 45% 15%) 80%); }
.mr-msg-copy { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:6px; }
.mr-msg-copy b { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:16px; font-weight:800; color:var(--msg-text); }
.mr-msg-preview { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:13px; font-weight:600; color:var(--msg-sub); }
.mr-msg-row.has-unread .mr-msg-preview { color:#fff; }
.mr-msg-meta { flex:0 0 auto; align-self:stretch; display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:9px; min-width:44px; }
.mr-msg-meta time { font-size:12px; font-weight:600; color:var(--msg-time); white-space:nowrap; }
.mr-msg-badge { min-width:24px; height:24px; padding:0 6px; display:flex; align-items:center; justify-content:center; border-radius:999px; background:var(--msg-blue); color:#fff; font-size:12px; font-weight:800; }
.mr-msg-screen .mr-chat-privacy-note { margin-top:26px; }
.theme-light .mr-msg-screen { --msg-bg:#fff; --msg-card:#f0f0f3; --msg-card2:#e6e6eb; --msg-text:#111; --msg-sub:#5f5f66; --msg-time:#8a8a91; }
.theme-light .mr-msg-search > svg,.theme-light .mr-msg-filter { color:#111; stroke:#111; }
.theme-light .mr-msg-filter svg { stroke:#111; } .theme-light .mr-msg-filter svg .k { fill:#111; }
.theme-light .mr-msg-search input { color:#111; }
.theme-light .mr-msg-story.is-new small { color:#55555c; }
.theme-light .mr-msg-new-avatar > i { background:#fff; } .theme-light .mr-msg-new-avatar > i svg { stroke:#111; }
.theme-light .mr-msg-row.has-unread .mr-msg-preview { color:#111; }
@media (max-width:380px) { .mr-msg-story { width:88px; height:106px; border-radius:25px; } .mr-msg-avatar { width:62px; height:62px; } .mr-msg-title { font-size:24px; } }


/* ===== CarMaa CHAT v102 — iMessage-style conversation ===== */
.mr-cv { --cv-bg:#08090b; --cv-in:#262629; --cv-in-text:#f4f4f6; --cv-out:#30c75b; --cv-field:#1c1c1e; --cv-sub:#8e8e93; width:100%; max-width:560px; margin:0 auto; padding:10px 14px 0; direction:rtl; color:#fff; }
.mr-cv-head { position:relative; display:flex; justify-content:center; align-items:flex-start; min-height:112px; padding-top:4px; }
.mr-cv-back { position:absolute; right:0; top:6px; height:42px; min-width:42px; padding:0 11px; display:flex; align-items:center; gap:6px; border:0; border-radius:999px; background:#2a2a2d; color:#fff; cursor:pointer; direction:ltr; }
.mr-cv-back svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.mr-cv-back i { min-width:22px; height:22px; padding:0 6px; display:flex; align-items:center; justify-content:center; border-radius:999px; background:#fff; color:#111; font-style:normal; font-size:12px; font-weight:800; }
.mr-cv-person { display:flex; flex-direction:column; align-items:center; gap:0; border:0; background:none; color:inherit; font:inherit; cursor:pointer; padding:0; }
.mr-cv-avatar { width:66px; height:66px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:radial-gradient(circle at 30% 22%,hsl(var(--h) 45% 48%),hsl(var(--h) 40% 22%) 85%); box-shadow:0 0 0 1px rgba(255,255,255,.08); }
.mr-cv-avatar b { font-size:24px; font-weight:800; color:#fff; letter-spacing:.5px; }
.mr-cv-name { margin-top:-12px; display:inline-flex; align-items:center; gap:3px; padding:5px 12px 5px 9px; border-radius:999px; background:rgba(44,44,48,.92); border:2px solid var(--cv-bg); font-size:14px; font-weight:800; color:#fff; max-width:62vw; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mr-cv-name svg { width:14px; height:14px; flex:0 0 auto; fill:none; stroke:#9a9aa1; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; transform:scaleX(-1); }
.mr-cv-ctx { display:block; margin:2px auto 0; max-width:92%; border:0; background:none; color:var(--cv-sub); font:inherit; font-size:11.5px; font-weight:600; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; cursor:pointer; }
.mr-cv-history { height:calc(100dvh - 400px); min-height:230px; overflow-y:auto; overscroll-behavior:contain; padding:6px 2px 14px; display:flex; flex-direction:column; gap:4px; scrollbar-width:none; }
.mr-cv-history::-webkit-scrollbar { display:none; }
.mr-cv-stamp { align-self:center; margin:12px 0 8px; font-size:11.5px; font-weight:600; color:var(--cv-sub); }
.mr-cv-row { display:flex; width:100%; }
.mr-cv-row.is-mine { justify-content:flex-start; }
.mr-cv-row.is-theirs { justify-content:flex-end; }
.mr-cv-row.has-tail { margin-bottom:6px; }
.mr-cv-bubble { position:relative; max-width:76%; padding:9px 15px; border-radius:22px; font-size:15.5px; font-weight:600; line-height:1.85; overflow-wrap:anywhere; color:var(--cv-in-text); background:var(--cv-in); }
.mr-cv-row.is-mine .mr-cv-bubble { background:var(--cv-out); color:#fff; }
.mr-cv-row.has-tail .mr-cv-bubble::before,.mr-cv-row.has-tail .mr-cv-bubble::after { content:""; position:absolute; bottom:0; height:20px; }
.mr-cv-row.is-theirs.has-tail .mr-cv-bubble::before { left:-7px; width:20px; background:var(--cv-in); border-bottom-right-radius:16px; }
.mr-cv-row.is-theirs.has-tail .mr-cv-bubble::after { left:-10px; width:10px; background:var(--cv-bg); border-bottom-right-radius:10px; }
.mr-cv-row.is-mine.has-tail .mr-cv-bubble::before { right:-7px; width:20px; background:var(--cv-out); border-bottom-left-radius:16px; }
.mr-cv-row.is-mine.has-tail .mr-cv-bubble::after { right:-10px; width:10px; background:var(--cv-bg); border-bottom-left-radius:10px; }
.mr-cv-composer { position:fixed; z-index:35; left:12px; right:12px; bottom:calc(88px + env(safe-area-inset-bottom,0px)); max-width:536px; margin:0 auto; display:flex; flex-direction:column; gap:8px; }
.mr-cv-composer-row { display:flex; align-items:flex-end; gap:10px; direction:ltr; }
.mr-cv-plus { flex:0 0 auto; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:0; border-radius:50%; background:#2a2a2d; color:#e8e8ec; cursor:pointer; transition:transform .18s ease; }
.mr-cv-plus svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; }
.mr-cv-plus.is-open { transform:rotate(45deg); }
.mr-cv-pill { position:relative; flex:1 1 auto; min-width:0; display:flex; align-items:flex-end; border-radius:23px; background:var(--cv-field); border:1px solid rgba(255,255,255,.07); direction:rtl; }
.mr-cv-pill textarea { flex:1 1 auto; min-width:0; min-height:44px; max-height:120px; padding:11px 16px 9px 48px; resize:none; border:0; outline:0; background:transparent; color:#f4f4f6; font:inherit; font-size:15px; font-weight:600; line-height:1.6; }
.mr-cv-pill textarea::placeholder { color:#6f6f76; }
.mr-cv-send { position:absolute; left:6px; bottom:6px; width:32px; height:32px; display:flex; align-items:center; justify-content:center; border:0; border-radius:50%; background:#3a3a3e; color:#7d7d84; cursor:pointer; transition:background .15s ease,color .15s ease; }
.mr-cv-send svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; }
.mr-cv-composer.has-text .mr-cv-send { background:var(--cv-out); color:#fff; }
.mr-cv-send:disabled { opacity:.5; }
.mr-cv-quick { display:flex; flex-wrap:wrap; gap:8px; padding:2px 2px 0; }
.mr-cv-quick[hidden] { display:none; }
.mr-cv-quick button { border:0; border-radius:999px; padding:8px 13px; background:#2a2a2d; color:#e8e8ec; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.theme-light .mr-cv { --cv-bg:#fff; --cv-in:#e9e9eb; --cv-in-text:#111; --cv-field:#f2f2f5; color:#111; }
.theme-light .mr-cv-back,.theme-light .mr-cv-plus,.theme-light .mr-cv-quick button { background:#ececf0; color:#111; }
.theme-light .mr-cv-name { background:#ececf0; color:#111; }
.theme-light .mr-cv-pill textarea { color:#111; } .theme-light .mr-cv-send { background:#dcdce1; color:#8a8a91; }
@media (max-width:380px) { .mr-cv-bubble { font-size:14.5px; } }
.mr-cv-history > :first-child { margin-top:auto; }
.mr-cv-person { margin-bottom:-4px; }

/* v102c — header floats over messages: progressive fade + blur + shadow */
.mr-cv-stage { position:relative; height:calc(100dvh - 255px); min-height:340px; }
.mr-cv-stage .mr-cv-history { height:100%; min-height:0; padding-top:158px; padding-bottom:16px;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,transparent 62px,rgba(0,0,0,.35) 105px,#000 168px,#000 calc(100% - 14px),transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,transparent 62px,rgba(0,0,0,.35) 105px,#000 168px,#000 calc(100% - 14px),transparent 100%); }
.mr-cv-top { position:absolute; top:0; left:-14px; right:-14px; z-index:5; padding:0 14px 34px; pointer-events:none;
  background:linear-gradient(to bottom,var(--cv-bg) 0,rgba(14,16,19,.86) 48%,rgba(14,16,19,.45) 78%,transparent 100%); }
.theme-light .mr-cv-top { background:linear-gradient(to bottom,#fff 0,rgba(255,255,255,.86) 48%,rgba(255,255,255,.45) 78%,transparent 100%); }
.mr-cv-top::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  -webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 100%); mask-image:linear-gradient(to bottom,#000 55%,transparent 100%); }
.mr-cv-top button { pointer-events:auto; }
.mr-cv-head { min-height:104px; }

/* v102d — messages scroll under the composer too (stage ends at the composer's bottom edge) */
.mr-cv-stage { height:calc(100dvh - 157px - env(safe-area-inset-bottom,0px)); }
.mr-cv-stage .mr-cv-history { padding-bottom:84px;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,transparent 62px,rgba(0,0,0,.35) 105px,#000 168px,#000 calc(100% - 130px),rgba(0,0,0,.4) calc(100% - 52px),rgba(0,0,0,.12) 100%);
  mask-image:linear-gradient(to bottom,transparent 0,transparent 62px,rgba(0,0,0,.35) 105px,#000 168px,#000 calc(100% - 130px),rgba(0,0,0,.4) calc(100% - 52px),rgba(0,0,0,.12) 100%); }
.mr-cv-pill { background:rgba(28,28,30,.72); -webkit-backdrop-filter:blur(18px) saturate(140%); backdrop-filter:blur(18px) saturate(140%); }
.mr-cv-plus { background:rgba(42,42,45,.78); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); }
.theme-light .mr-cv-pill { background:rgba(242,242,245,.78); }
.theme-light .mr-cv-plus { background:rgba(236,236,240,.85); }

/* v102e — chat: messages scroll up to the very top of the screen (site header floats transparent over them) */
body:has([data-page="conversation"]) #stickyHeaderGroup { position:fixed; top:0; left:0; right:0; z-index:36; background:transparent; }
body:has([data-page="conversation"]) #siteHeader { background:transparent !important; }
body:has([data-page="conversation"]) #stickyHeaderGroup::after { display:none; }
.mr-cv { padding-top:0; --cv-hdr:calc(69px + env(safe-area-inset-top,0px)); }
.mr-cv-stage { height:calc(100dvh - 88px - env(safe-area-inset-bottom,0px)); }
.mr-cv-top { padding-top:var(--cv-hdr); padding-bottom:30px;
  background:linear-gradient(to bottom,rgba(14,16,19,.62) 0,rgba(14,16,19,.62) 40%,rgba(14,16,19,.3) 75%,transparent 100%); }
.theme-light .mr-cv-top { background:linear-gradient(to bottom,rgba(255,255,255,.62) 0,rgba(255,255,255,.62) 40%,rgba(255,255,255,.3) 75%,transparent 100%); }
.mr-cv-stage .mr-cv-history { padding-top:calc(var(--cv-hdr) + 158px);
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.16) 0,rgba(0,0,0,.28) 120px,rgba(0,0,0,.6) 200px,#000 280px,#000 calc(100% - 130px),rgba(0,0,0,.4) calc(100% - 52px),rgba(0,0,0,.12) 100%);
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.16) 0,rgba(0,0,0,.28) 120px,rgba(0,0,0,.6) 200px,#000 280px,#000 calc(100% - 130px),rgba(0,0,0,.4) calc(100% - 52px),rgba(0,0,0,.12) 100%); }
.mr-cv-top { background:linear-gradient(to bottom,rgba(14,16,19,.66) 0,rgba(14,16,19,.8) 55%,rgba(14,16,19,.4) 82%,transparent 100%); }
.theme-light .mr-cv-top { background:linear-gradient(to bottom,rgba(255,255,255,.66) 0,rgba(255,255,255,.8) 55%,rgba(255,255,255,.4) 82%,transparent 100%); }
.mr-cv-top::before { -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); }

/* v102f — lighter scrim, closer to the reference */
.mr-cv-top { padding-bottom:18px; background:linear-gradient(to bottom,rgba(14,16,19,.34) 0,rgba(14,16,19,.3) 55%,rgba(14,16,19,.12) 85%,transparent 100%); }
.theme-light .mr-cv-top { background:linear-gradient(to bottom,rgba(255,255,255,.34) 0,rgba(255,255,255,.3) 55%,rgba(255,255,255,.12) 85%,transparent 100%); }
.mr-cv-top::before { -webkit-backdrop-filter:blur(7px); backdrop-filter:blur(7px); -webkit-mask-image:linear-gradient(to bottom,#000 50%,transparent 100%); mask-image:linear-gradient(to bottom,#000 50%,transparent 100%); }
.mr-cv-stage .mr-cv-history {
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.5) 0,rgba(0,0,0,.55) 110px,rgba(0,0,0,.8) 190px,#000 250px,#000 calc(100% - 130px),rgba(0,0,0,.4) calc(100% - 52px),rgba(0,0,0,.12) 100%);
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.5) 0,rgba(0,0,0,.55) 110px,rgba(0,0,0,.8) 190px,#000 250px,#000 calc(100% - 130px),rgba(0,0,0,.4) calc(100% - 52px),rgba(0,0,0,.12) 100%); }

/* v102g — no site header on the chat page */
body:has([data-page="conversation"]) #stickyHeaderGroup { display:none !important; }
.mr-cv { --cv-hdr:calc(14px + env(safe-area-inset-top,0px)); }

/* v102h — liquid-glass header: messages stay fully visible and are frosted (blurred) as they pass under it */
.mr-cv-stage .mr-cv-history { -webkit-mask-image:none; mask-image:none; }
.mr-cv-top { background:linear-gradient(to bottom,rgba(14,16,19,.22) 0,rgba(14,16,19,.1) 70%,transparent 100%); padding-bottom:22px; }
.theme-light .mr-cv-top { background:linear-gradient(to bottom,rgba(255,255,255,.35) 0,rgba(255,255,255,.15) 70%,transparent 100%); }
.mr-cv-top::before { -webkit-backdrop-filter:blur(6px) saturate(115%); backdrop-filter:blur(6px) saturate(115%);
  -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 76%,rgba(0,0,0,.5) 90%,transparent 100%); mask-image:linear-gradient(to bottom,#000 0,#000 76%,rgba(0,0,0,.5) 90%,transparent 100%); }
.mr-cv-back,.mr-cv-name { background:rgba(70,70,76,.38); -webkit-backdrop-filter:blur(14px) saturate(160%); backdrop-filter:blur(14px) saturate(160%); box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 4px 14px rgba(0,0,0,.18); border:1px solid rgba(255,255,255,.1); }
.theme-light .mr-cv-back,.theme-light .mr-cv-name { background:rgba(255,255,255,.55); border-color:rgba(0,0,0,.06); }
.mr-cv-pill,.mr-cv-plus { box-shadow:inset 0 1px 0 rgba(255,255,255,.1); }
.mr-cv-top { background:linear-gradient(to bottom,rgba(14,16,19,.14) 0,rgba(14,16,19,.06) 70%,transparent 100%); }


/* v102j — chat: no bottom dock on the conversation page; composer/stage drop to the bottom */
body:has([data-page="conversation"]) #bottomDock { display:none !important; }
body:has([data-page="conversation"]) #pageContent { padding-bottom:0; }
.mr-cv-composer { bottom:calc(12px + env(safe-area-inset-bottom,0px)); }
.mr-cv-stage { height:calc(100dvh - 12px - env(safe-area-inset-bottom,0px)); }
.mr-cv-person { -webkit-tap-highlight-color:transparent; }

/* v102k — chat: remove the bottom dark scrim (it was drawn for the dock) so the composer/+ stay clear */
body:has([data-page="conversation"])::after { display:none !important; }
.mr-cv-composer { z-index:41; }


/* v102l — chat skeleton loaders (inbox, conversation, seller) */
body:has([data-skeleton="conversation"]) #bottomDock { display:none !important; }
body:has([data-skeleton="conversation"]) #stickyHeaderGroup { display:none !important; }
body:has([data-skeleton="conversation"])::after { display:none !important; }
body:has([data-skeleton="conversation"]) #pageContent { padding-bottom:0; }
.mr-sk-stories { overflow:hidden; }
.mr-sk-story { flex:0 0 auto; width:96px; height:116px; border-radius:28px; }
.mr-sk-row { cursor:default; pointer-events:none; }
.mr-cv-composer .skeleton-block { -webkit-backdrop-filter:none; backdrop-filter:none; }
@media (max-width:380px) { .mr-sk-story { width:88px; height:106px; border-radius:25px; } }

/* v102m — chat inbox: no site header on the messages page (and its skeleton) */
body:has([data-page="messages"]) #stickyHeaderGroup,
body:has([data-skeleton="messages"]) #stickyHeaderGroup { display:none !important; }
.mr-msg-screen { padding-top:calc(16px + env(safe-area-inset-top,0px)); }


/* v102o — chat: screen is fixed to the viewport so the keyboard opening/closing can't scroll or shift it */
html:has(.mr-cv), body:has(.mr-cv) { overflow:hidden !important; height:100%; overscroll-behavior:none; }
.mr-cv { position:fixed; top:0; left:0; right:0; bottom:0; margin:0 auto; padding:0 14px; z-index:1; }
.mr-cv .mr-cv-stage { height:100%; }

/* v102p — bubble colors: iMessage-style blue (mine) / graphite (theirs) */
.mr-cv { --cv-out:#1a93fd; --cv-in:#2a292e; }
.theme-light .mr-cv { --cv-out:#1a93fd; --cv-in:#e9e9eb; }


/* v102r — profile pictures (account avatar / dealership logo) in chat + seller pages */
.mr-msg-avatar img { width:100%; height:100%; border-radius:50%; border:3px solid var(--msg-bg); object-fit:cover; display:block; background:var(--msg-card2); }
.mr-msg-story-avatar { overflow:hidden; }
.mr-msg-story-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.mr-cv-avatar { overflow:hidden; }
.mr-cv-avatar img { width:100%; height:100%; object-fit:cover; display:block; border-radius:50%; }
.seller-card-avatar, .seller-hero-avatar, .dealership-card-logo { overflow:hidden; }
.seller-card-avatar img, .seller-hero-avatar img { width:100%; height:100%; object-fit:cover; display:block; }

/* v102s — brand-logo avatars (seeded dealerships) sit on a light disc */
.mr-cv-avatar img.is-logo, .mr-msg-avatar img.is-logo, .mr-msg-story-avatar img.is-logo { object-fit:contain; padding:10px; background:#fff; box-sizing:border-box; }
.mr-msg-story-avatar img.is-logo { padding:5px; }

/* ===== CarMaa STORIES v103 — 24h stories rail + viewer ===== */
.mr-story-tile { padding:3px; background:rgba(255,255,255,.16); }
.theme-light .mr-story-tile { background:rgba(0,0,0,.12); }
.mr-story-tile.is-unseen { background:linear-gradient(45deg,#f9ce34,#ee2a7b 55%,#6228d7); }
.mr-story-in { position:relative; display:block; width:100%; height:100%; border-radius:25px; overflow:hidden; background:var(--msg-card2); box-shadow:0 0 0 2px var(--msg-bg); }
.mr-story-cover { width:100%; height:100%; object-fit:cover; display:block; }
.mr-story-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.28) 0%,transparent 38%,transparent 55%,rgba(0,0,0,.72) 100%); }
.mr-story-tile .mr-msg-story-avatar { top:7px; right:7px; width:34px; height:34px; font-size:14px; box-shadow:0 0 0 3px hsl(var(--h) 85% 92% / .9); overflow:hidden; }
.mr-story-tile .mr-msg-story-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.mr-story-tile .mr-msg-story-avatar img.is-logo { object-fit:contain; padding:6px; background:#fff; box-sizing:border-box; }
.mr-story-name { position:absolute; right:8px; left:8px; bottom:8px; font-size:11.5px; font-weight:800; line-height:1.3; color:#fff; text-align:center; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; text-shadow:0 1px 3px rgba(0,0,0,.6); }
.mr-story-add { position:absolute; left:7px; top:7px; width:26px; height:26px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#0a7cff; color:#fff; box-shadow:0 0 0 2.5px rgba(0,0,0,.5); cursor:pointer; }
.mr-story-add svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2.8; stroke-linecap:round; }
.mr-story-me-avatar { background:hsl(var(--h,210) 70% 82%) !important; color:hsl(var(--h,210) 45% 22%) !important; font-size:22px; font-weight:800; box-shadow:0 0 0 4px rgba(10,124,255,.28) !important; overflow:visible !important; }
.mr-story-me-avatar > img { width:100%; height:100%; border-radius:50%; object-fit:cover; }
.mr-story-me-avatar > i { background:#0a7cff !important; border-color:var(--msg-card2) !important; }
.mr-story-me-avatar > i svg { width:14px; height:14px; fill:none; stroke:#fff !important; stroke-width:2.8; stroke-linecap:round; }
html.mr-sv-lock, html.mr-sv-lock body { overflow:hidden; }
.mr-sv { position:fixed; inset:0; z-index:300; background:#000; display:flex; justify-content:center; direction:rtl; color:#fff; animation:mrSvIn .18s ease-out; touch-action:none; -webkit-user-select:none; user-select:none; }
@keyframes mrSvIn { from { opacity:0; transform:scale(.98); } to { opacity:1; transform:none; } }
.mr-sv-stage { position:relative; width:100%; max-width:480px; height:100dvh; overflow:hidden; background:#000; }
.mr-sv-bg { position:absolute; inset:-20px; width:calc(100% + 40px); height:calc(100% + 40px); object-fit:cover; filter:blur(28px) brightness(.55); }
.mr-sv-img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.mr-sv-scrim-top { position:absolute; left:0; right:0; top:0; height:150px; background:linear-gradient(180deg,rgba(0,0,0,.6),transparent); pointer-events:none; }
.mr-sv-scrim-bot { position:absolute; left:0; right:0; bottom:0; height:230px; background:linear-gradient(0deg,rgba(0,0,0,.72),transparent); pointer-events:none; }
.mr-sv-zones { position:absolute; inset:0; }
.mr-sv-bars { position:absolute; top:max(10px,env(safe-area-inset-top)); left:10px; right:10px; display:flex; gap:4px; direction:rtl; z-index:2; pointer-events:none; }
.mr-sv-bars i { flex:1 1 0; height:3px; border-radius:3px; background:rgba(255,255,255,.35); overflow:hidden; }
.mr-sv-bars b { display:block; height:100%; background:#fff; float:right; }
.mr-sv-head { position:absolute; left:10px; right:10px; top:calc(max(10px,env(safe-area-inset-top)) + 14px); display:flex; align-items:center; gap:10px; z-index:3; }
.mr-sv-avatar { width:40px; height:40px; flex:0 0 auto; display:flex; align-items:center; justify-content:center; border-radius:50%; overflow:hidden; font-weight:800; color:hsl(var(--h) 45% 22%); background:hsl(var(--h) 80% 86%); box-shadow:0 0 0 2px rgba(255,255,255,.85); }
.mr-sv-avatar img { width:100%; height:100%; object-fit:cover; }
.mr-sv-avatar img.is-logo { object-fit:contain; padding:7px; background:#fff; box-sizing:border-box; }
.mr-sv-who { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:2px; }
.mr-sv-who b { font-size:14px; font-weight:800; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; text-shadow:0 1px 3px rgba(0,0,0,.5); }
.mr-sv-who time { font-size:12px; font-weight:600; opacity:.8; }
.mr-sv-btn { flex:0 0 auto; width:40px; height:40px; display:flex; align-items:center; justify-content:center; border:0; border-radius:50%; background:rgba(0,0,0,.35); color:#fff; font-size:26px; line-height:1; cursor:pointer; padding:0; }
.mr-sv-btn svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.mr-sv-btn[hidden] { display:none; }
.mr-sv-foot { position:absolute; left:16px; right:16px; bottom:max(22px,env(safe-area-inset-bottom)); z-index:3; display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.mr-sv-caption { margin:0; font-size:15px; font-weight:600; line-height:1.7; text-shadow:0 1px 4px rgba(0,0,0,.6); }
.mr-sv-caption[hidden] { display:none; }
.mr-sv-pill { height:44px; padding:0 22px; border:0; border-radius:999px; background:#fff; color:#111; font:inherit; font-size:14.5px; font-weight:800; cursor:pointer; }
.mr-sv-pill[hidden] { display:none; }
.mr-sv-pill.is-ghost { background:rgba(255,255,255,.18); color:#fff; }
.mr-sv.is-composer .mr-sv-close { position:absolute; top:max(14px,env(safe-area-inset-top)); right:12px; z-index:3; }
.mr-sv-compose { position:absolute; left:14px; right:14px; bottom:max(18px,env(safe-area-inset-bottom)); z-index:3; display:flex; flex-direction:column; gap:12px; }
.mr-sv-compose textarea { width:100%; box-sizing:border-box; resize:none; border:0; outline:0; border-radius:18px; padding:13px 16px; background:rgba(255,255,255,.16); backdrop-filter:blur(10px); color:#fff; font:inherit; font-size:15px; font-weight:600; }
.mr-sv-compose textarea::placeholder { color:rgba(255,255,255,.65); }
.mr-sv-compose-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.mr-sv-compose-row span { font-size:12px; font-weight:600; opacity:.8; }
@media (min-width:600px) { .mr-sv-stage { border-radius:18px; height:min(100dvh,860px); align-self:center; } }

.mr-sv-link { display:flex; align-items:center; gap:8px; align-self:flex-start; max-width:100%; height:40px; padding:0 14px; border:0; border-radius:999px; background:rgba(255,255,255,.18); backdrop-filter:blur(10px); color:#fff; font:inherit; font-size:13.5px; font-weight:700; cursor:pointer; }
.mr-sv-link svg { width:18px; height:18px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.mr-sv-link span { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.mr-sv-link i { flex:0 0 auto; width:22px; height:22px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(0,0,0,.35); font-style:normal; font-size:16px; line-height:1; }
.mr-sv-link i[hidden] { display:none; }
.mr-sv-link.is-set { background:#fff; color:#111; }
.mr-sv-link.is-set i { background:rgba(0,0,0,.12); }
.mr-sv-sheet { position:absolute; inset:0; z-index:5; display:flex; align-items:flex-end; background:rgba(0,0,0,.5); }
.mr-sv-sheet-card { width:100%; max-height:70%; display:flex; flex-direction:column; border-radius:24px 24px 0 0; background:#1c1c1e; padding:14px 14px max(16px,env(safe-area-inset-bottom)); }
.mr-sv-sheet-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:2px 4px 12px; font-size:15px; }
.mr-sv-sheet-list { overflow-y:auto; display:flex; flex-direction:column; gap:8px; touch-action:pan-y; }
.mr-sv-ad { display:flex; align-items:center; gap:12px; width:100%; padding:8px; border:2px solid transparent; border-radius:16px; background:#2a2a2d; color:#fff; font:inherit; text-align:right; cursor:pointer; }
.mr-sv-ad.is-on { border-color:#0a7cff; }
.mr-sv-ad-img { flex:0 0 auto; width:68px; height:52px; border-radius:11px; overflow:hidden; background:#3a3a40; }
.mr-sv-ad-img img { width:100%; height:100%; object-fit:cover; display:block; }
.mr-sv-ad-copy { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:4px; }
.mr-sv-ad-copy b { font-size:14px; font-weight:800; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.mr-sv-ad-copy small { font-size:12px; font-weight:600; color:#b9b9bf; }
.mr-sv-ad-check { flex:0 0 auto; width:22px; height:22px; border-radius:50%; border:2px solid #6b6b72; }
.mr-sv-ad.is-on .mr-sv-ad-check { border-color:#0a7cff; background:#0a7cff radial-gradient(#fff 0 32%,transparent 36%); }

.mr-sv-reply { width:100%; display:flex; flex-direction:column; gap:10px; }
.mr-sv-reply[hidden] { display:none; }
.mr-sv-emojis { display:flex; justify-content:space-between; gap:4px; }
.mr-sv-emojis button { flex:1 1 0; height:40px; border:0; border-radius:12px; background:rgba(255,255,255,.12); font-size:21px; line-height:1; cursor:pointer; padding:0; }
.mr-sv-emojis button:active { transform:scale(.9); }
.mr-sv-replyform { display:flex; align-items:center; gap:8px; height:48px; padding:0 6px 0 16px; border-radius:999px; border:1.5px solid rgba(255,255,255,.55); background:rgba(0,0,0,.25); backdrop-filter:blur(8px); }
.mr-sv-replyform input { flex:1 1 auto; min-width:0; border:0; outline:0; background:transparent; color:#fff; font:inherit; font-size:15px; font-weight:600; }
.mr-sv-replyform input::placeholder { color:rgba(255,255,255,.75); }
.mr-sv-send { flex:0 0 auto; width:36px; height:36px; display:flex; align-items:center; justify-content:center; border:0; border-radius:50%; background:#fff; color:#111; cursor:pointer; padding:0; }
.mr-sv-send svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transform:translateX(-1px); }
.mr-cv-storyref { display:flex; align-items:center; gap:8px; margin:-2px -4px 8px; padding:6px 8px; border-radius:12px; background:rgba(0,0,0,.18); font-size:11.5px; opacity:.92; }
.mr-cv-storyref img { width:34px; height:34px; border-radius:8px; object-fit:cover; flex:0 0 auto; }
.mr-cv-storyref small { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:inherit; font-weight:700; }

/* v103.1 — story tile cover = profile photo */
.mr-story-cover.is-logo { object-fit:contain; padding:18px; background:#fff; box-sizing:border-box; }
.mr-story-cover-ph { display:flex; align-items:center; justify-content:center; font-size:38px; font-weight:800; color:hsl(var(--h,210) 45% 22%); background:linear-gradient(160deg,hsl(var(--h,210) 80% 88%),hsl(var(--h,210) 70% 74%)); }
.mr-story-shade { background:linear-gradient(180deg,transparent 0%,transparent 55%,rgba(0,0,0,.65) 100%); }

/* v103.2 — Instagram-style story ring: colorful when unseen, gray once seen */
.mr-story-tile { padding:6px; background:#8e8e93; border-radius:30px; transition:background .25s; }
.theme-light .mr-story-tile { background:#c7c7cc; }
.mr-story-tile.is-unseen { background:linear-gradient(45deg,#f9ce34,#ee2a7b 55%,#6228d7); }
.mr-story-in { border-radius:22px; box-shadow:0 0 0 3px var(--msg-bg); }
@media (max-width:380px) { .mr-story-tile { border-radius:27px; } }

/* v103.3 — snake ring: the colored ring draws itself around the tile from the top,
   erases, redraws (3 laps at different, uneven speeds) and then rests as a full ring */
@property --sr-t { syntax:"<angle>"; inherits:false; initial-value:0deg; }
@property --sr-h { syntax:"<angle>"; inherits:false; initial-value:360deg; }
.mr-story-tile { isolation:isolate; }
.mr-story-in { position:relative; z-index:1; }
.mr-story-tile, .mr-story-tile.is-unseen, .theme-light .mr-story-tile, .theme-light .mr-story-tile.is-unseen { background:transparent; }
.mr-story-tile::before { background:conic-gradient(#8e8e93,#8e8e93); }
.theme-light .mr-story-tile::before { background:conic-gradient(#c7c7cc,#c7c7cc); }
.mr-story-tile::before { content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  -webkit-mask-image:conic-gradient(from 0deg,transparent 0 var(--sr-t),#000 var(--sr-t) var(--sr-h),transparent var(--sr-h));
          mask-image:conic-gradient(from 0deg,transparent 0 var(--sr-t),#000 var(--sr-t) var(--sr-h),transparent var(--sr-h));
  animation:mr-story-snake 8.2s ease-in-out 1 both; }
.mr-story-tile.is-unseen::before { background:conic-gradient(from 0deg,#f9ce34,#ee2a7b 40%,#6228d7 75%,#f9ce34); }
@keyframes mr-story-snake {
  0%     { --sr-t:0deg;   --sr-h:0deg; }
  11%    { --sr-t:0deg;   --sr-h:360deg; }   /* lap 1: fast draw */
  14.6%  { --sr-t:0deg;   --sr-h:360deg; }
  34.1%  { --sr-t:360deg; --sr-h:360deg; }   /* tail chases the head: slow */
  39%    { --sr-t:360deg; --sr-h:360deg; }
  39.01% { --sr-t:0deg;   --sr-h:0deg; }
  68.3%  { --sr-t:0deg;   --sr-h:360deg; }   /* lap 2: slow draw */
  70.7%  { --sr-t:0deg;   --sr-h:360deg; }
  80.5%  { --sr-t:360deg; --sr-h:360deg; }   /* quick erase */
  81%    { --sr-t:0deg;   --sr-h:0deg; }
  100%   { --sr-t:0deg;   --sr-h:360deg; }   /* lap 3: medium draw, stays full */
}
@media (prefers-reduced-motion:reduce) { .mr-story-tile::before { animation:none; } }

/* v103.4 — selected dock item: bold white icon (no purple tint) */
.dock-item.is-active { color:#fff; }
.dock-item.is-active .dock-icon svg { stroke-width:2.4; }
.dock-item.is-active .dock-label { font-weight:800; }
.theme-light .dock-item.is-active { color:#1d1f22; }

/* v103.5 — "استوری‌ها" heading above the rail */
.mr-stories-title { margin:24px 2px 0; font-size:17px; line-height:1.3; font-weight:800; color:var(--msg-text); letter-spacing:-.2px; }
.mr-stories-title + .mr-msg-stories { margin-top:12px; }


/* CarMaa vehicle detail refresh: calmer gallery and premium price card */
.vehicle-detail-page { background:#101114; color:#f4f5f6; }
.vehicle-detail-page .detail-hero-frame { padding:12px 12px 0; background:#101114; }
.vehicle-detail-page .detail-hero {
  height:clamp(230px, 68vw, 390px);
  max-height:420px;
  border-radius:24px;
  background:#181a1e;
  box-shadow:0 14px 36px rgba(0,0,0,.22);
}
.vehicle-detail-page .detail-hero-overlay { display:none; }
.vehicle-detail-page .detail-counter {
  right:14px; bottom:14px; padding:5px 9px; border-radius:10px;
  background:rgba(18,19,22,.72); border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(14px); font-size:11px;
}
.vehicle-detail-page .detail-top-actions { top:22px; left:22px; right:auto; }
.vehicle-detail-page .detail-back-btn {
  width:36px; height:36px; background:rgba(20,21,24,.62); color:#fff;
  border:1px solid rgba(255,255,255,.12); box-shadow:none;
  backdrop-filter:blur(14px);
}
.vehicle-detail-page .detail-info-sheet {
  margin-top:0; padding:16px 16px 0; background:#101114;
}
.vehicle-detail-page .detail-action-group {
  justify-content:flex-start; gap:8px; margin:0 0 14px;
}
.vehicle-detail-page .detail-action-group .detail-round-btn {
  width:36px; height:36px; background:#1d1f23; color:#e8e9eb;
  border:1px solid rgba(255,255,255,.08); box-shadow:none;
}
.vehicle-detail-page .detail-price-card {
  margin:0 0 16px; padding:17px 16px 16px;
  border-radius:22px; background:linear-gradient(145deg,#24262b 0%,#1b1d21 100%);
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 12px 30px rgba(0,0,0,.18);
}
.vehicle-detail-page .detail-price-card-top {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  min-height:22px; margin-bottom:12px;
}
.vehicle-detail-page .detail-price-card-kicker {
  font-size:10px; font-weight:700; letter-spacing:.04em; color:#92969d;
}
.vehicle-detail-page .detail-price-card .detail-status-patches {
  display:flex; align-items:center; flex-wrap:wrap; gap:6px;
  margin:0; padding:0;
}
.vehicle-detail-page .detail-title-row { margin:0; }
.vehicle-detail-page .detail-car-name {
  color:#f4f5f6; font-size:21px; line-height:1.45; font-weight:850;
}
.vehicle-detail-page .detail-year-badge {
  background:#35383e; color:#f4f5f6; border:1px solid rgba(255,255,255,.08);
}
.vehicle-detail-page .detail-location { color:#a4a8af; font-size:12px; gap:6px; }
.vehicle-detail-page .detail-location svg { color:#a4a8af; }
.vehicle-detail-page .detail-price-divider {
  height:1px; background:rgba(255,255,255,.09); margin:15px 0 13px;
}
.vehicle-detail-page .detail-main-price-row {
  display:flex; align-items:flex-end; justify-content:space-between; gap:12px;
}
.vehicle-detail-page .detail-main-price {
  display:flex; flex-direction:column; gap:4px; min-width:0;
}
.vehicle-detail-page .detail-main-price-label { order:0; color:#9b9fa6; font-size:11px; }
.vehicle-detail-page .detail-main-price-value {
  order:1; color:#fff; font-size:clamp(22px,6vw,29px); line-height:1.25;
  font-weight:900; letter-spacing:-.03em; overflow-wrap:anywhere;
}
.vehicle-detail-page .detail-price-currency {
  color:#c4c7cc; font-size:12px; font-weight:700; padding-bottom:4px;
}
.vehicle-detail-page .detail-facts-grid { gap:9px; }
.vehicle-detail-page .detail-spacer { height:100px; }
@media (min-width:700px) {
  .vehicle-detail-page .detail-hero-frame { padding:20px 20px 0; }
  .vehicle-detail-page .detail-hero { height:430px; }
  .vehicle-detail-page .detail-info-sheet { max-width:900px; margin:0 auto; padding:20px 20px 0; }
  .vehicle-detail-page .detail-price-card { padding:22px; }
}


/* VEHICLE DETAIL: integrated standalone CarMaa demo layout v106 */

    :root {
      color-scheme: dark;
      --bg: #090a0d;
      --bg-2: #101114;
      --surface: rgba(24, 25, 30, .88);
      --surface-2: #1b1c21;
      --surface-3: #23242a;
      --line: rgba(255,255,255,.085);
      --line-strong: rgba(255,255,255,.14);
      --text: #f5f5f7;
      --text-2: #c8c8ce;
      --muted: #878991;
      --soft: #a9abb2;
      --inverse: #101114;
      --button: #f3f3f5;
      --button-text: #111216;
      --shadow: 0 24px 70px rgba(0,0,0,.28);
      --glass: rgba(255,255,255,.055);
      --radius-xl: 30px;
      --radius-lg: 24px;
      --radius-md: 17px;
      --radius-sm: 12px;
    }
.vehicle-demo-layout, .vehicle-demo-layout * { box-sizing: border-box; }
.vehicle-demo-layout { scroll-behavior: smooth; scroll-padding-top: 100px; }
.vehicle-demo-layout {
      margin: 0; min-width: 320px; color: var(--text); background:
        radial-gradient(ellipse at 78% 0%, rgba(130,134,148,.105), transparent 32rem),
        radial-gradient(ellipse at 0% 48%, rgba(255,255,255,.025), transparent 28rem), var(--bg);
      font-family: "Vazirmatn", Tahoma, sans-serif; line-height: 1.65; letter-spacing: -.18px;
      -webkit-font-smoothing: antialiased;
    }
.vehicle-demo-layout button, .vehicle-demo-layout a, .vehicle-demo-layout input { font: inherit; }
.vehicle-demo-layout button { cursor: pointer; }
.vehicle-demo-layout a { color: inherit; text-decoration: none; }
.vehicle-demo-layout svg { display: block; }
.vehicle-demo-layout .icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.vehicle-demo-layout .icon-sm { width: 17px; height: 17px; }
.vehicle-demo-layout .icon-lg { width: 23px; height: 23px; }
.vehicle-demo-layout .site-header { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid var(--line); background: rgba(10,11,14,.76); backdrop-filter: blur(24px) saturate(160%); -webkit-backdrop-filter: blur(24px) saturate(160%); }
.vehicle-demo-layout .header-inner { max-width: 1320px; padding: 0 30px; height: 76px; margin: auto; display: flex; align-items: center; gap: 34px; }
.vehicle-demo-layout .brand { display: flex; align-items: center; gap: 11px; flex: 0 0 auto; }
.vehicle-demo-layout .brand-mark { width: 39px; height: 39px; border: 1px solid rgba(255,255,255,.27); border-radius: 13px; display: grid; place-items: center; color: #111216; background: linear-gradient(145deg,#fff,#bfc0c5); box-shadow: inset 0 1px 0 white, 0 6px 22px rgba(255,255,255,.08); }
.vehicle-demo-layout .brand-mark svg { width: 23px; height: 23px; stroke-width: 2.5; }
.vehicle-demo-layout .brand-name { font-family: Arial, sans-serif; font-weight: 900; font-size: 19px; letter-spacing: 1.2px; line-height: 1.1; }
.vehicle-demo-layout .brand-caption { display: block; margin-top: 4px; font-size: 10px; color: var(--muted); letter-spacing: 0; font-weight: 400; }
.vehicle-demo-layout .nav-links { display: flex; align-items: center; gap: 26px; color: var(--text-2); font-size: 13px; }
.vehicle-demo-layout .nav-links a { transition: color .2s; }
.vehicle-demo-layout .nav-links a:hover { color: var(--text); }
.vehicle-demo-layout .nav-links .active { color: var(--text); position: relative; }
.vehicle-demo-layout .nav-links .active:after { content: ""; position: absolute; bottom: -27px; left: 0; right: 0; height: 2px; border-radius: 3px; background: #f1f1f3; }
.vehicle-demo-layout .header-actions { display: flex; align-items: center; gap: 9px; margin-right: auto; }
.vehicle-demo-layout .search-pill { display: flex; align-items: center; gap: 9px; height: 41px; padding: 0 14px; border: 1px solid var(--line); background: var(--glass); border-radius: 14px; color: var(--muted); font-size: 12px; min-width: 160px; }
.vehicle-demo-layout .icon-button { width: 42px; height: 42px; display: grid; place-items: center; color: var(--text-2); background: var(--glass); border: 1px solid var(--line); border-radius: 14px; transition: .2s; }
.vehicle-demo-layout .icon-button:hover { transform: translateY(-1px); border-color: var(--line-strong); color: var(--text); background: var(--surface-3); }
.vehicle-demo-layout .header-post { height: 42px; padding: 0 17px; display: flex; align-items: center; gap: 8px; border-radius: 14px; border: 0; background: var(--button); color: var(--button-text); font-size: 12px; font-weight: 800; box-shadow: 0 5px 18px rgba(255,255,255,.05); }
.vehicle-demo-layout .header-post .icon { width: 17px; }
.vehicle-demo-layout .page-shell { width: min(1320px, 100%); margin: auto; padding: 25px 30px 120px; }
.vehicle-demo-layout .breadcrumbs { display: flex; gap: 8px; align-items: center; color: var(--muted); font-size: 11px; margin: 0 0 24px; flex-wrap: wrap; }
.vehicle-demo-layout .breadcrumbs a:hover { color: var(--text); }
.vehicle-demo-layout .breadcrumbs .icon { width: 13px; height: 13px; opacity: .65; }
.vehicle-demo-layout .listing-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin-bottom: 24px; }
.vehicle-demo-layout .eyebrow { display: flex; align-items: center; gap: 8px; color: var(--muted); text-transform: uppercase; font-size: 10px; font-weight: 700; letter-spacing: 1.2px; margin-bottom: 8px; }
.vehicle-demo-layout .eyebrow-dot { width: 6px; height: 6px; border-radius: 50%; background: #dedee2; box-shadow: 0 0 0 4px rgba(255,255,255,.06); }
.vehicle-demo-layout h1 { font-size: clamp(25px, 3vw, 39px); line-height: 1.32; letter-spacing: -.9px; margin: 0; font-weight: 850; }
.vehicle-demo-layout .title-en { direction: ltr; display: inline-block; font-family: Arial,sans-serif; font-size: .73em; font-weight: 600; color: var(--soft); letter-spacing: -.35px; margin-right: 7px; }
.vehicle-demo-layout .heading-sub { color: var(--muted); font-size: 12px; margin: 9px 0 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.vehicle-demo-layout .heading-sub .dot { width: 3px; height: 3px; border-radius: 50%; background: #666870; }
.vehicle-demo-layout .heading-meta { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; justify-content: flex-end; }
.vehicle-demo-layout .tag { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line-strong); border-radius: 11px; padding: 8px 11px; font-size: 11px; color: var(--text-2); background: rgba(255,255,255,.035); white-space: nowrap; }
.vehicle-demo-layout .tag .icon { width: 14px; height: 14px; }
.vehicle-demo-layout .tag.featured { background: #f0f0f2; border-color: #f0f0f2; color: #17181b; font-weight: 800; }
.vehicle-demo-layout .listing-topline { display:flex; justify-content:flex-start; margin-bottom:12px; }
.vehicle-demo-layout .tag.verified { border-color: rgba(207,212,221,.24); background: rgba(207,212,221,.075); }
.vehicle-demo-layout .tag.verified .icon { color: #eff0f4; }
.vehicle-demo-layout .listing-layout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(330px,.72fr); gap: 20px; align-items: stretch; }
.vehicle-demo-layout .glass-card { border: 1px solid var(--line); background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.025) 42%, rgba(255,255,255,.035)); box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.035); }
.vehicle-demo-layout .gallery-card { min-width: 0; padding: 10px; border-radius: var(--radius-xl); position: relative; overflow: hidden; }
.vehicle-demo-layout .hero-photo-wrap { height: clamp(345px, 43vw, 560px); min-height: 345px; overflow: hidden; border-radius: 23px; position: relative; background: #202126; isolation: isolate; }
.vehicle-demo-layout .hero-photo-wrap:after { content:""; position:absolute; inset: 36% 0 0; background: linear-gradient(180deg, transparent, rgba(5,6,8,.48)); pointer-events:none; z-index:1; }
.vehicle-demo-layout .hero-photo { position: absolute; inset:0; width:100%; height:100%; object-fit: cover; object-position: center 51%; transition: opacity .2s, transform .7s cubic-bezier(.2,.7,.2,1); }
.vehicle-demo-layout .hero-photo-wrap:hover .hero-photo { transform: scale(1.025); }
.vehicle-demo-layout .gallery-top, .vehicle-demo-layout .gallery-bottom { position: absolute; z-index: 2; display: flex; align-items: center; justify-content: space-between; left: 16px; right: 16px; gap: 12px; }
.vehicle-demo-layout .gallery-top { top: 16px; }
.vehicle-demo-layout .gallery-bottom { bottom: 16px; color: white; }
.vehicle-demo-layout .photo-badges { display: flex; align-items: center; gap: 8px; }
.vehicle-demo-layout .photo-badge { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 11px; border-radius: 10px; font-size: 10px; font-weight: 700; background: rgba(13,14,17,.72); color: #f5f5f7; border: 1px solid rgba(255,255,255,.13); backdrop-filter: blur(16px); }
.vehicle-demo-layout .photo-badge.light { color: #151619; background: rgba(248,248,250,.92); border-color: rgba(255,255,255,.55); }
.vehicle-demo-layout .photo-badge .icon { width: 14px; height: 14px; }
.vehicle-demo-layout .gallery-actions { display: flex; gap: 7px; }
.vehicle-demo-layout .round-action { width: 39px; height: 39px; display: grid; place-items: center; color: white; background: rgba(15,16,20,.55); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(16px); border-radius: 13px; transition: .22s; }
.vehicle-demo-layout .round-action:hover { background: rgba(255,255,255,.16); }
.vehicle-demo-layout .round-action.is-active { color: #141518; background: #f0f0f2; }
.vehicle-demo-layout .photo-caption { display: flex; align-items: center; gap: 9px; font-size: 11px; color: rgba(255,255,255,.88); }
.vehicle-demo-layout .photo-caption .camera-count { display: inline-grid; place-items: center; background: rgba(15,16,20,.73); border: 1px solid rgba(255,255,255,.12); min-width: 57px; height: 31px; border-radius: 10px; padding: 0 10px; font-weight: 700; backdrop-filter: blur(15px); }
.vehicle-demo-layout .gallery-arrows { display: flex; gap: 7px; }
.vehicle-demo-layout .gallery-arrow { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; background: rgba(15,16,20,.64); border: 1px solid rgba(255,255,255,.15); color: white; }
.vehicle-demo-layout .gallery-arrow:disabled { opacity: .35; }
.vehicle-demo-layout .thumb-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) auto; gap: 9px; padding: 10px 2px 1px; }
.vehicle-demo-layout .thumb { position: relative; height: 78px; border: 1px solid var(--line); padding: 0; background: #222329; border-radius: 14px; overflow: hidden; opacity: .63; transition: .2s; }
.vehicle-demo-layout .thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.vehicle-demo-layout .thumb.active { border: 2px solid #f1f1f3; opacity: 1; box-shadow: 0 0 0 2px rgba(255,255,255,.1); }
.vehicle-demo-layout .thumb span { position:absolute; bottom:5px; right:6px; color:white; background:rgba(10,11,14,.65); font-size:9px; border-radius:6px; padding:2px 5px; }
.vehicle-demo-layout .thumb-more { min-width: 62px; height: 78px; display: grid; place-content: center; gap: 3px; border: 1px solid var(--line); background: var(--glass); border-radius: 14px; color: var(--text-2); font-size: 10px; }
.vehicle-demo-layout .thumb-more .icon { margin: auto; width: 19px; height:19px; }
.vehicle-demo-layout .summary-column { display: flex; flex-direction: column; gap: 14px; min-width:0; }
.vehicle-demo-layout .price-card { padding: 25px; border-radius: var(--radius-xl); position: relative; overflow: hidden; isolation: isolate; }
.vehicle-demo-layout .price-card:before { content:""; position:absolute; z-index:-1; width:260px; height:260px; border-radius:50%; left:-110px; top:-145px; background: radial-gradient(circle, rgba(255,255,255,.105), transparent 68%); }
.vehicle-demo-layout .price-heading { margin-bottom: 20px; }
.vehicle-demo-layout .price-heading h1 { margin: 0 0 7px; }
.vehicle-demo-layout .price-heading .heading-sub { margin: 0; }
.vehicle-demo-layout .price-label-row { display:flex; align-items:center; justify-content:space-between; gap: 12px; color: var(--muted); font-size: 11px; }
.vehicle-demo-layout .price-kicker { display:flex; align-items:center; gap:7px; }
.vehicle-demo-layout .price-kicker .icon { width:16px; height:16px; }
.vehicle-demo-layout .negotiable { display:inline-flex; align-items:center; gap:6px; color: var(--text-2); font-size:10px; border:1px solid var(--line-strong); border-radius:9px; padding:5px 8px; }
.vehicle-demo-layout .negotiable .green-dot { width:5px; height:5px; border-radius:50%; background:#d3d5da; }
.vehicle-demo-layout .price-line { display:flex; align-items:baseline; gap:8px; margin: 14px 0 3px; }
.vehicle-demo-layout .price-number { font-size: clamp(33px,3.5vw,45px); line-height:1.25; font-weight:900; letter-spacing:-1.1px; font-variant-numeric: tabular-nums; }
.vehicle-demo-layout .price-unit { color:var(--text-2); font-size:12px; font-weight:600; }
.vehicle-demo-layout .price-hint { color:var(--muted); font-size:10px; }
.vehicle-demo-layout .thin-rule { height:1px; background:var(--line); margin:21px 0; }
.vehicle-demo-layout .summary-facts { display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap:8px; }
.vehicle-demo-layout .fact { min-width:0; padding:12px 8px 10px; border:1px solid var(--line); background:rgba(255,255,255,.025); border-radius:15px; text-align:center; }
.vehicle-demo-layout .fact .icon { width:19px; height:19px; margin:0 auto 7px; color:#a8aab1; }
.vehicle-demo-layout .fact-value { color:var(--text); font-size:14px; line-height:1.4; font-weight:800; display:block; white-space:nowrap; }
.vehicle-demo-layout .fact-name { color:var(--muted); font-size:10px; display:block; margin-top:4px; }
.vehicle-demo-layout .primary-button, .vehicle-demo-layout .secondary-button { min-height: 49px; display:flex; align-items:center; justify-content:center; gap:9px; border-radius:15px; padding: 0 16px; font-weight:800; font-size:12px; transition: transform .2s,background .2s,border-color .2s; }
.vehicle-demo-layout .primary-button { color:var(--button-text); background:var(--button); border:1px solid #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.8), 0 8px 24px rgba(255,255,255,.07); }
.vehicle-demo-layout .primary-button:hover { transform: translateY(-2px); background:#fff; }
.vehicle-demo-layout .primary-button .icon { width:19px; height:19px; }
.vehicle-demo-layout .secondary-button { color:var(--text); background:rgba(255,255,255,.045); border:1px solid var(--line-strong); }
.vehicle-demo-layout .secondary-button:hover { background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.25); }
.vehicle-demo-layout .contact-buttons { display:grid; grid-template-columns: 1fr 1fr; gap:9px; margin-top:17px; }
.vehicle-demo-layout .contact-buttons .primary-button, .vehicle-demo-layout .contact-buttons .secondary-button { min-height:47px; padding-inline:10px; }
.vehicle-demo-layout .seller-mini { display:flex; align-items:center; gap:12px; padding: 15px 16px; border:1px solid var(--line); border-radius:20px; background:rgba(255,255,255,.025); }
.vehicle-demo-layout .seller-avatar { width:46px; height:46px; display:grid; place-items:center; flex:0 0 auto; border-radius:16px; background:linear-gradient(145deg,#dedee1,#868891); color:#1a1b1e; font-size:16px; font-weight:900; box-shadow:inset 0 1px 0 rgba(255,255,255,.8); }
.vehicle-demo-layout .seller-info { min-width:0; flex:1; }
.vehicle-demo-layout .seller-name { font-size:12px; font-weight:800; display:flex; align-items:center; gap:6px; }
.vehicle-demo-layout .seller-name .icon { width:15px; height:15px; color:#d7d8dc; }
.vehicle-demo-layout .seller-type { color:var(--muted); font-size:10px; margin-top:3px; }
.vehicle-demo-layout .seller-arrow { color:var(--muted); }
.vehicle-demo-layout .seller-trust { display:flex; gap:12px; color:var(--muted); border-top:1px solid var(--line); margin-top:13px; padding-top:11px; font-size:10px; }
.vehicle-demo-layout .seller-trust span { display:flex; align-items:center; gap:5px; }
.vehicle-demo-layout .seller-trust .icon { width:14px; height:14px; color:var(--text-2); }
.vehicle-demo-layout .mini-label { display:inline-flex; align-items:center; gap:5px; color:var(--muted); font-size:10px; margin-right:auto; }
.vehicle-demo-layout .mini-label .icon { width:13px; height:13px; }
.vehicle-demo-layout .spec-strip { margin-top:20px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.vehicle-demo-layout .spec-tile { display:flex; align-items:center; gap:13px; min-width:0; padding:17px 18px; border-radius:19px; }
.vehicle-demo-layout .spec-icon { width:43px; height:43px; display:grid; place-items:center; border-radius:14px; border:1px solid var(--line); background:rgba(255,255,255,.05); color:#dedfe3; }
.vehicle-demo-layout .spec-icon .icon { width:22px; height:22px; }
.vehicle-demo-layout .spec-text { min-width:0; }
.vehicle-demo-layout .spec-title { display:block; color:var(--muted); font-size:10px; margin-bottom:3px; }
.vehicle-demo-layout .spec-value { display:block; font-size:13px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vehicle-demo-layout .lower-layout { margin-top:20px; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.68fr); gap:20px; align-items:start; }
.vehicle-demo-layout .content-stack { display:flex; flex-direction:column; gap:16px; min-width:0; }
.vehicle-demo-layout .section-card { padding:24px; border-radius:var(--radius-xl); min-width:0; }
.vehicle-demo-layout .section-header { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:20px; }
.vehicle-demo-layout .section-title { display:flex; align-items:center; gap:10px; font-size:16px; margin:0; font-weight:850; letter-spacing:-.4px; }
.vehicle-demo-layout .section-title-mark { width:31px; height:31px; display:grid; place-items:center; border:1px solid var(--line-strong); background:var(--glass); border-radius:11px; color:var(--text-2); }
.vehicle-demo-layout .section-title-mark .icon { width:16px; height:16px; }
.vehicle-demo-layout .section-caption { color:var(--muted); font-size:10px; white-space:nowrap; }
.vehicle-demo-layout .description { margin:0; color:var(--text-2); font-size:12px; line-height:2.2; }
.vehicle-demo-layout .description strong { color:var(--text); font-weight:700; }
.vehicle-demo-layout .description-more { color:var(--text); display:inline-flex; align-items:center; gap:5px; background:transparent; border:0; padding:3px 0; margin-top:12px; font-size:11px; font-weight:800; }
.vehicle-demo-layout .description-more .icon { width:15px; height:15px; }
.vehicle-demo-layout .feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.vehicle-demo-layout .feature-chip { display:flex; align-items:center; gap:9px; min-width:0; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.022); padding:12px 11px; color:var(--text-2); font-size:11px; }
.vehicle-demo-layout .feature-chip .icon { width:17px; height:17px; color:#cfd0d6; }
.vehicle-demo-layout .detail-table { display:grid; grid-template-columns:1fr 1fr; column-gap:24px; }
.vehicle-demo-layout .detail-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); font-size:11px; }
.vehicle-demo-layout .detail-row:nth-last-child(-n/**/+2) { border-bottom:0; }
.vehicle-demo-layout .detail-row span:first-child { color:var(--muted); }
.vehicle-demo-layout .detail-row strong { font-weight:700; color:var(--text-2); text-align:left; }
.vehicle-demo-layout .location-card { padding:22px; border-radius:var(--radius-xl); overflow:hidden; position:relative; }
.vehicle-demo-layout .map-preview { height:138px; margin:0 0 17px; position:relative; overflow:hidden; border-radius:17px; border:1px solid var(--line); background-color:#23252a; background-image: linear-gradient(35deg, transparent 45%, rgba(255,255,255,.07) 46%, rgba(255,255,255,.07) 48%, transparent 49%), linear-gradient(145deg, transparent 30%, rgba(255,255,255,.09) 31%, rgba(255,255,255,.09) 34%, transparent 35%), linear-gradient(80deg, transparent 58%, rgba(255,255,255,.065) 59%, rgba(255,255,255,.065) 61%, transparent 62%), repeating-linear-gradient(0deg, transparent 0 27px, rgba(255,255,255,.045) 28px 29px), repeating-linear-gradient(90deg, transparent 0 35px, rgba(255,255,255,.045) 36px 37px); }
.vehicle-demo-layout .map-preview:after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 55% 47%, rgba(255,255,255,.12), transparent 35%); }
.vehicle-demo-layout .map-pin { position:absolute; z-index:2; top:43%; right:52%; width:38px; height:38px; border-radius:14px 14px 14px 4px; transform:rotate(-45deg); background:#f2f2f4; color:#131417; display:grid; place-items:center; box-shadow:0 10px 25px rgba(0,0,0,.35); }
.vehicle-demo-layout .map-pin .icon { transform:rotate(45deg); width:18px; height:18px; }
.vehicle-demo-layout .location-address { display:flex; align-items:flex-start; gap:10px; color:var(--text-2); font-size:12px; }
.vehicle-demo-layout .location-address .icon { color:var(--muted); margin-top:3px; }
.vehicle-demo-layout .location-note { color:var(--muted); font-size:10px; margin:5px 0 0 28px; }
.vehicle-demo-layout .location-button { width:100%; margin-top:16px; min-height:43px; }
.vehicle-demo-layout .safety-note { display:flex; align-items:flex-start; gap:10px; padding:15px; border:1px solid var(--line); border-radius:17px; color:var(--muted); background:rgba(255,255,255,.025); font-size:10px; line-height:1.9; }
.vehicle-demo-layout .safety-note .icon { width:20px; height:20px; color:var(--text-2); margin-top:2px; }
.vehicle-demo-layout .safety-note strong { display:block; color:var(--text-2); font-size:11px; margin-bottom:2px; }
.vehicle-demo-layout .related-strip { margin-top:20px; padding:22px; border-radius:var(--radius-xl); }
.vehicle-demo-layout .related-empty { border:1px dashed var(--line-strong); border-radius:17px; padding:22px; display:flex; align-items:center; justify-content:space-between; color:var(--muted); font-size:11px; }
.vehicle-demo-layout .related-empty strong { color:var(--text-2); display:block; font-size:12px; }
.vehicle-demo-layout .footer { display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line); margin-top:40px; padding-top:22px; color:var(--muted); font-size:10px; }
.vehicle-demo-layout .footer-links { display:flex; gap:18px; }
.vehicle-demo-layout .mobile-dock { display:none; }
.vehicle-demo-layout .toast { position:fixed; z-index:70; bottom:28px; left:50%; transform:translate(-50%,20px); opacity:0; pointer-events:none; padding:12px 18px; border-radius:14px; background:#f0f0f2; color:#151619; font-size:12px; font-weight:700; box-shadow:0 16px 45px rgba(0,0,0,.3); transition:.25s; white-space:nowrap; }
.vehicle-demo-layout .toast.show { transform:translate(-50%,0); opacity:1; }
.vehicle-demo-layout .modal-backdrop { position:fixed; z-index:80; inset:0; background:rgba(0,0,0,.62); backdrop-filter:blur(11px); display:none; align-items:center; justify-content:center; padding:20px; }
.vehicle-demo-layout .modal-backdrop.open { display:flex; }
.vehicle-demo-layout .modal { width:min(420px,100%); border:1px solid var(--line-strong); border-radius:26px; background:var(--surface-2); box-shadow:0 35px 100px rgba(0,0,0,.55); padding:24px; animation:pop .2s ease-out; }
@keyframes pop {from { transform:translateY(8px) scale(.98); opacity:0; }to { transform:translateY(0) scale(1); opacity:1; }}
.vehicle-demo-layout .modal-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:17px; }
.vehicle-demo-layout .modal-title { margin:0; font-size:17px; font-weight:850; }
.vehicle-demo-layout .modal-copy { margin:0 0 17px; font-size:12px; color:var(--muted); line-height:1.9; }
.vehicle-demo-layout .modal-contact { display:flex; gap:12px; align-items:center; padding:14px; border:1px solid var(--line); background:rgba(255,255,255,.025); border-radius:16px; margin-bottom:14px; }
.vehicle-demo-layout .modal-contact strong { display:block; font-size:13px; }
.vehicle-demo-layout .modal-contact small { display:block; font-size:10px; color:var(--muted); margin-top:3px; }
.vehicle-demo-layout .modal .primary-button, .vehicle-demo-layout .modal .secondary-button { width:100%; margin-top:9px; }
.vehicle-demo-layout .close-modal { width:34px; height:34px; border-radius:11px; border:1px solid var(--line); background:var(--glass); color:var(--text-2); display:grid; place-items:center; }
.vehicle-demo-layout { color-scheme:light; --bg:#f1f2f4; --bg-2:#fff; --surface:rgba(255,255,255,.91); --surface-2:#fff; --surface-3:#eceef1; --line:rgba(20,22,27,.09); --line-strong:rgba(20,22,27,.16); --text:#17181c; --text-2:#555860; --muted:#858892; --soft:#656871; --inverse:#f7f7f9; --button:#17181c; --button-text:#f4f4f6; --shadow:0 24px 70px rgba(20,24,35,.08); --glass:rgba(20,22,27,.035); background:radial-gradient(ellipse at 78% 0%,rgba(110,112,126,.13),transparent 32rem),#f1f2f4; }
.vehicle-demo-layout .site-header { background:rgba(247,248,250,.82); }
.vehicle-demo-layout .brand-mark { background:linear-gradient(145deg,#292a2e,#53555d); color:white; border-color:rgba(0,0,0,.15); }
.vehicle-demo-layout .featured, .vehicle-demo-layout .tag.featured { color:#17181b; }
.vehicle-demo-layout .photo-badge.light { color:#151619; }
.vehicle-demo-layout .primary-button { border-color:#17181c; }
.vehicle-demo-layout .hero-photo-wrap { background:#d4d5d8; }
.vehicle-demo-layout .map-preview { background-color:#dedfe3; background-image:linear-gradient(35deg,transparent 45%,rgba(30,32,37,.09) 46%,rgba(30,32,37,.09) 48%,transparent 49%),linear-gradient(145deg,transparent 30%,rgba(30,32,37,.12) 31%,rgba(30,32,37,.12) 34%,transparent 35%),linear-gradient(80deg,transparent 58%,rgba(30,32,37,.1) 59%,rgba(30,32,37,.1) 61%,transparent 62%),repeating-linear-gradient(0deg,transparent 0 27px,rgba(30,32,37,.07) 28px 29px),repeating-linear-gradient(90deg,transparent 0 35px,rgba(30,32,37,.07) 36px 37px); }
.vehicle-demo-layout .map-pin { color:white; background:#17181c; }
@media (min-width: 1300px) {.vehicle-demo-layout .page-shell { padding-top:31px; }
.vehicle-demo-layout .hero-photo-wrap { height:555px; }}
@media (max-width: 1050px) {.vehicle-demo-layout .header-inner { gap:20px; padding-inline:22px; }
.vehicle-demo-layout .nav-links { gap:16px; }
.vehicle-demo-layout .search-pill { min-width:unset; }
.vehicle-demo-layout .page-shell { padding-inline:22px; }
.vehicle-demo-layout .listing-layout { grid-template-columns:minmax(0,1.12fr) minmax(300px,.85fr); gap:14px; }
.vehicle-demo-layout .price-card { padding:20px; }
.vehicle-demo-layout .lower-layout { grid-template-columns:minmax(0,1.15fr) minmax(270px,.8fr); gap:14px; }
.vehicle-demo-layout .spec-tile { padding:14px 12px; gap:10px; }
.vehicle-demo-layout .spec-icon { width:38px; height:38px; }}
@media (max-width: 780px) {.vehicle-demo-layout .header-inner { height:64px; padding-inline:17px; gap:12px; }
.vehicle-demo-layout .brand-mark { width:36px; height:36px; border-radius:12px; }
.vehicle-demo-layout .brand-name { font-size:17px; }
.vehicle-demo-layout .brand-caption { display:none; }
.vehicle-demo-layout .nav-links { display:none; }
.vehicle-demo-layout .header-actions { gap:7px; }
.vehicle-demo-layout .search-pill { width:39px; height:39px; padding:0; min-width:0; justify-content:center; border-radius:13px; font-size:0; }
.vehicle-demo-layout .search-pill .icon { width:19px; height:19px; }
.vehicle-demo-layout .header-post { width:40px; height:39px; padding:0; justify-content:center; font-size:0; border-radius:13px; }
.vehicle-demo-layout .header-post .icon { width:19px; height:19px; }
.vehicle-demo-layout .page-shell { padding:18px 15px 118px; }
.vehicle-demo-layout .breadcrumbs { margin-bottom:18px; font-size:10px; }
.vehicle-demo-layout .listing-heading { align-items:flex-start; flex-direction:column; gap:13px; margin-bottom:18px; }
.vehicle-demo-layout .eyebrow { margin-bottom:5px; }
.vehicle-demo-layout h1 { font-size:27px; }
.vehicle-demo-layout .heading-sub { font-size:11px; margin-top:7px; }
.vehicle-demo-layout .heading-meta { justify-content:flex-start; }
.vehicle-demo-layout .tag { padding:7px 9px; }
.vehicle-demo-layout .listing-layout { display:flex; flex-direction:column; gap:14px; }
.vehicle-demo-layout .gallery-card { padding:7px; border-radius:24px; order:0; }
.vehicle-demo-layout .hero-photo-wrap { min-height:0; height:auto; aspect-ratio:1.16 / 1; border-radius:19px; }
.vehicle-demo-layout .hero-photo { object-position:center 51%; }
.vehicle-demo-layout .gallery-top, .vehicle-demo-layout .gallery-bottom { left:11px; right:11px; }
.vehicle-demo-layout .gallery-top { top:11px; }
.vehicle-demo-layout .gallery-bottom { bottom:11px; }
.vehicle-demo-layout .photo-badge { height:29px; padding:0 9px; font-size:9px; }
.vehicle-demo-layout .round-action { width:35px; height:35px; border-radius:12px; }
.vehicle-demo-layout .thumb-row { gap:7px; padding-top:8px; }
.vehicle-demo-layout .thumb { height:62px; border-radius:11px; }
.vehicle-demo-layout .thumb-more { min-width:48px; height:62px; border-radius:11px; font-size:9px; }
.vehicle-demo-layout .summary-column { order:1; gap:11px; }
.vehicle-demo-layout .price-card { padding:19px; border-radius:23px; }
.vehicle-demo-layout .price-number { font-size:34px; }
.vehicle-demo-layout .thin-rule { margin:16px 0; }
.vehicle-demo-layout .summary-facts { gap:7px; }
.vehicle-demo-layout .fact { padding:10px 5px 9px; border-radius:13px; }
.vehicle-demo-layout .fact-value { font-size:13px; }
.vehicle-demo-layout .fact-name { font-size:9px; }
.vehicle-demo-layout .contact-buttons { margin-top:13px; }
.vehicle-demo-layout .seller-mini { padding:13px; }
.vehicle-demo-layout .spec-strip { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:14px; }
.vehicle-demo-layout .spec-tile { padding:13px 12px; border-radius:16px; }
.vehicle-demo-layout .spec-value { font-size:12px; }
.vehicle-demo-layout .lower-layout { display:flex; flex-direction:column; gap:13px; margin-top:14px; }
.vehicle-demo-layout .content-stack { width:100%; gap:13px; }
.vehicle-demo-layout .section-card { padding:19px; border-radius:22px; }
.vehicle-demo-layout .section-header { margin-bottom:15px; }
.vehicle-demo-layout .section-title { font-size:14px; }
.vehicle-demo-layout .section-caption { font-size:9px; }
.vehicle-demo-layout .description { font-size:11px; }
.vehicle-demo-layout .feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.vehicle-demo-layout .feature-chip { padding:11px 9px; font-size:10px; }
.vehicle-demo-layout .detail-table { column-gap:18px; }
.vehicle-demo-layout .detail-row { font-size:10px; }
.vehicle-demo-layout .location-card { padding:19px; border-radius:22px; }
.vehicle-demo-layout .map-preview { height:120px; }
.vehicle-demo-layout .related-strip { margin-top:14px; padding:18px; border-radius:22px; }
.vehicle-demo-layout .related-empty { align-items:flex-start; gap:10px; flex-direction:column; }
.vehicle-demo-layout .footer { margin-top:27px; flex-direction:column; align-items:flex-start; gap:12px; }
.vehicle-demo-layout .mobile-dock { position:fixed; z-index:35; display:flex; align-items:center; gap:10px; bottom:calc(9px + env(safe-area-inset-bottom)); left:10px; right:10px; padding:9px; min-height:76px; border:1px solid rgba(255,255,255,.13); border-radius:25px; background:rgba(26,27,32,.88); box-shadow:0 14px 45px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.08); backdrop-filter:blur(25px) saturate(170%); -webkit-backdrop-filter:blur(25px) saturate(170%); }
.vehicle-demo-layout .mobile-dock { background:rgba(255,255,255,.9); border-color:rgba(0,0,0,.12); box-shadow:0 14px 45px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.9); }
.vehicle-demo-layout .dock-price { flex:1; min-width:0; padding-inline:7px; }
.vehicle-demo-layout .dock-price strong { display:block; font-size:20px; line-height:1.35; white-space:nowrap; }
.vehicle-demo-layout .dock-price span { display:block; color:var(--muted); font-size:10px; }
.vehicle-demo-layout .dock-call { width:48px; height:48px; border:1px solid var(--line); border-radius:16px; display:grid; place-items:center; background:rgba(255,255,255,.07); color:var(--text); }
.vehicle-demo-layout .dock-chat { border:0; height:48px; padding:0 20px; border-radius:16px; background:var(--button); color:var(--button-text); display:flex; align-items:center; gap:8px; font-size:12px; font-weight:850; white-space:nowrap; }
.vehicle-demo-layout .dock-chat .icon { width:18px; }
.vehicle-demo-layout .toast { bottom:calc(100px + env(safe-area-inset-bottom)); }}
@media (max-width: 390px) {.vehicle-demo-layout .brand-name { font-size:15px; }
.vehicle-demo-layout .header-inner { padding-inline:12px; }
.vehicle-demo-layout .page-shell { padding-inline:11px; }
.vehicle-demo-layout h1 { font-size:24px; }
.vehicle-demo-layout .price-card { padding:15px; }
.vehicle-demo-layout .price-number { font-size:30px; }
.vehicle-demo-layout .contact-buttons { grid-template-columns:1fr; }
.vehicle-demo-layout .summary-facts { gap:5px; }
.vehicle-demo-layout .fact-value { font-size:12px; }
.vehicle-demo-layout .spec-tile { padding:11px 9px; gap:8px; }
.vehicle-demo-layout .spec-icon { width:34px; height:34px; border-radius:11px; }
.vehicle-demo-layout .spec-value { font-size:11px; }
.vehicle-demo-layout .dock-chat { padding:0 14px; }
.vehicle-demo-layout .dock-price strong { font-size:18px; }}
@media (prefers-reduced-motion: reduce) {.vehicle-demo-layout, .vehicle-demo-layout *, .vehicle-demo-layout *::before, .vehicle-demo-layout *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }}
.vehicle-demo-layout .listing-heading-under-photo { margin: 18px 7px 15px; padding: 0 8px; }
.vehicle-demo-layout .listing-heading-under-photo h1 { margin-top: 7px; }
.vehicle-demo-layout .listing-heading-under-photo .heading-sub { margin-top: 9px; }
@media (max-width: 760px) {.vehicle-demo-layout .listing-heading-under-photo { margin: 15px 4px 12px; padding: 0 5px; }
.vehicle-demo-layout .listing-heading-under-photo h1 { font-size: clamp(23px, 6vw, 31px); line-height: 1.45; }
.vehicle-demo-layout .listing-heading-under-photo .heading-meta { margin-top: 12px; }}
.vehicle-demo-layout .gallery-card { padding: 8px; }
.vehicle-demo-layout .hero-photo-wrap { border-radius: 21px; }
.vehicle-demo-layout .hero-photo-wrap:after { inset: 58% 0 0; background: linear-gradient(180deg, transparent, rgba(5,6,8,.34)); }
.vehicle-demo-layout .gallery-top { top: 13px; left: 13px; right: 13px; }
.vehicle-demo-layout .photo-badges { display: none; }
.vehicle-demo-layout .gallery-actions { gap: 6px; }
.vehicle-demo-layout .round-action { width: 35px; height: 35px; border-radius: 50%; background: rgba(18,19,22,.42); border-color: rgba(255,255,255,.13); box-shadow: none; }
.vehicle-demo-layout .gallery-bottom { bottom: 13px; left: 13px; right: 13px; }
.vehicle-demo-layout .photo-caption { gap: 0; }
.vehicle-demo-layout .photo-caption > span:not(.camera-count) { display: none; }
.vehicle-demo-layout .photo-caption .camera-count { min-width: 0; height: 27px; padding: 0 9px; border-radius: 9px; background: rgba(18,19,22,.55); border-color: rgba(255,255,255,.12); font-size: 10px; }
.vehicle-demo-layout .gallery-arrows { gap: 5px; }
.vehicle-demo-layout .gallery-arrow { width: 30px; height: 30px; border-radius: 50%; background: rgba(18,19,22,.42); border-color: rgba(255,255,255,.12); }
.vehicle-demo-layout .thumb-row { gap: 7px; padding: 9px 1px 0; }
.vehicle-demo-layout .thumb { height: 66px; border-radius: 11px; }
.vehicle-demo-layout .thumb span { display: none; }
.vehicle-demo-layout .thumb-more { height: 66px; border-radius: 11px; background: transparent; }
@media (max-width: 760px) {.vehicle-demo-layout .gallery-card { padding: 5px; border-radius: 21px; }
.vehicle-demo-layout .hero-photo-wrap { border-radius: 17px; }
.vehicle-demo-layout .gallery-top { top: 9px; left: 9px; right: 9px; }
.vehicle-demo-layout .gallery-bottom { bottom: 9px; left: 9px; right: 9px; }
.vehicle-demo-layout .round-action { width: 32px; height: 32px; }
.vehicle-demo-layout .gallery-arrow { width: 28px; height: 28px; }
.vehicle-demo-layout .thumb-row { gap: 6px; padding-top: 7px; }
.vehicle-demo-layout .thumb, .vehicle-demo-layout .thumb-more { height: 55px; border-radius: 9px; }}

/* Dynamic app integrations: preserve actions and style dynamic vehicle slots to match the standalone demo. */
.vehicle-demo-layout { --bg:#090a0d; --bg-2:#101114; --surface:rgba(24,25,30,.88); --surface-2:#1b1c21; --surface-3:#23242a; --line:rgba(255,255,255,.085); --line-strong:rgba(255,255,255,.14); --text:#f5f5f7; --text-2:#c8c8ce; --muted:#878991; --soft:#a9abb2; --button:#f3f3f5; --button-text:#111216; --shadow:0 24px 70px rgba(0,0,0,.28); --glass:rgba(255,255,255,.055); display:block; background:#090a0d; color:#f5f5f7; font-family:'Vazirmatn',Tahoma,sans-serif; line-height:1.65; }
.vehicle-demo-layout .vehicle-demo-icon-defs { position:absolute; width:0; height:0; overflow:hidden; }
.vehicle-demo-layout .page-shell { padding-bottom:145px; }
.vehicle-demo-layout .breadcrumbs { justify-content:flex-start; }
.vehicle-demo-layout .hero-photo-host { position:absolute; inset:0; overflow:hidden; cursor:zoom-in; z-index:0; }
.vehicle-demo-layout .hero-photo-host > img, .vehicle-demo-layout .hero-photo-host > svg { position:absolute !important; inset:0; width:100% !important; height:100% !important; object-fit:cover !important; object-position:center 51%; display:block; }
.vehicle-demo-layout .hero-photo-host > svg { background:#202126; }
.vehicle-demo-layout .gallery-back { position:absolute; z-index:4; top:13px; right:13px; width:34px; height:34px; }
.vehicle-demo-layout .photo-badges { display:none; }
.vehicle-demo-layout .thumb-row { grid-template-columns:repeat(3,minmax(0,1fr)) auto; }
.vehicle-demo-layout .thumb img, .vehicle-demo-layout .thumb > svg { width:100%; height:100%; display:block; object-fit:cover; }
.vehicle-demo-layout .thumb.active { border-color:#f0f0f2; }
.vehicle-demo-layout .listing-topline { align-items:flex-start; }
.vehicle-demo-layout .detail-status-patches { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.vehicle-demo-layout .detail-status-patches[hidden], .vehicle-demo-layout [hidden] { display:none !important; }
.vehicle-demo-layout .detail-status-patches .xpatch { display:inline-flex; align-items:center; gap:5px; border:1px solid rgba(255,255,255,.13); border-radius:9px; padding:5px 7px; font-size:9px; white-space:nowrap; }
.vehicle-demo-layout .detail-status-patches .xpatch--trade { color:#c0eee2; background:rgba(67,171,143,.12); border-color:rgba(67,171,143,.25); }
.vehicle-demo-layout .listing-heading { display:block; }
.vehicle-demo-layout #listing-title { display:block; }
.vehicle-demo-layout .price-heading h1 { display:block; }
.vehicle-demo-layout .price-heading .title-en:empty { display:none; }
.vehicle-demo-layout .title-en { margin-right:5px; }
.vehicle-demo-layout .heading-sub { text-align:right; }
.vehicle-demo-layout .price-number { direction:ltr; unicode-bidi:isolate; }
.vehicle-demo-layout .price-unit { flex:0 0 auto; }
.vehicle-demo-layout .detail-status-patches svg { width:12px; height:12px; }
.vehicle-demo-layout .summary-facts .fact-value { white-space:nowrap; }
.vehicle-demo-layout .seller-slot { min-width:0; }
.vehicle-demo-layout .seller-mini { display:flex; align-items:center; gap:12px; padding:15px; border:1px solid var(--line); background:rgba(255,255,255,.035); border-radius:20px; color:var(--text); text-align:right; width:100%; }
.vehicle-demo-layout button.seller-mini { cursor:pointer; }
.vehicle-demo-layout .seller-avatar { width:42px; height:42px; border-radius:15px; display:grid; place-items:center; flex:0 0 auto; overflow:hidden; color:#17181b; background:linear-gradient(145deg,#f5f5f7,#9da0a7); font-size:16px; font-weight:850; }
.vehicle-demo-layout .seller-avatar img { width:100%; height:100%; object-fit:cover; }
.vehicle-demo-layout .seller-info { flex:1; min-width:0; }
.vehicle-demo-layout .seller-name { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:800; }
.vehicle-demo-layout .seller-name .icon { color:#cbd0d8; width:15px; height:15px; }
.vehicle-demo-layout .seller-type { display:flex; align-items:center; gap:6px; margin-top:3px; color:var(--muted); font-size:10px; flex-wrap:wrap; }
.vehicle-demo-layout .mini-label { display:flex; align-items:center; gap:4px; color:var(--muted); font-size:10px; }
.vehicle-demo-layout .mini-label .icon { width:14px; height:14px; }
.vehicle-demo-layout .spec-strip .spec-value { word-break:break-word; }
.vehicle-demo-layout .detail-tabs { margin-top:0; margin-bottom:15px; }
.vehicle-demo-layout .detail-tabs .detail-tab { flex:1; min-height:38px; border:0; border-radius:10px; background:transparent; color:var(--muted); font:inherit; font-size:10px; font-weight:700; }
.vehicle-demo-layout .detail-tabs .detail-tab.is-active { background:#f0f0f2; color:#151619; }
.vehicle-demo-layout .detail-tab-panels .detail-panel { padding:0; margin:0; border:0; background:transparent; color:var(--text-2); }
.vehicle-demo-layout .detail-section-label { color:var(--text); font-size:13px; margin:0 0 10px; font-weight:800; }
.vehicle-demo-layout .detail-description { color:var(--text-2); font-size:11px; line-height:2; }
.vehicle-demo-layout .detail-map-card { overflow:hidden; border:1px solid var(--line); border-radius:17px; background:rgba(255,255,255,.025); }
.vehicle-demo-layout .detail-map-visual { width:100%; height:145px; border-radius:0; background:#1f2025; }
.vehicle-demo-layout .detail-map-info { display:flex; justify-content:space-between; align-items:center; gap:9px; padding:12px; }
.vehicle-demo-layout .detail-map-address { color:var(--text); font-size:11px; font-weight:800; }
.vehicle-demo-layout .detail-map-distance { margin-top:4px; font-size:9px; color:var(--muted); line-height:1.8; }
.vehicle-demo-layout .detail-mini-btn { flex:0 0 auto; background:var(--button); color:var(--button-text); border:0; border-radius:10px; padding:8px 11px; font-size:10px; font-weight:800; }
.vehicle-demo-layout .location-address { margin-top:12px; display:flex; align-items:flex-start; gap:9px; padding:0 2px; color:var(--text-2); }
.vehicle-demo-layout .location-address > .icon { color:var(--muted); width:16px; height:16px; margin-top:2px; }
.vehicle-demo-layout .location-address strong { display:block; font-size:11px; color:var(--text); }
.vehicle-demo-layout .location-address span { display:block; margin-top:3px; font-size:9px; color:var(--muted); }
.vehicle-demo-layout .safety-note { display:flex; gap:10px; padding:15px; border-radius:18px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.025); color:var(--muted); font-size:10px; line-height:1.9; }
.vehicle-demo-layout .safety-note > .icon { color:var(--text-2); width:18px; height:18px; flex:0 0 auto; }
.vehicle-demo-layout .safety-note strong { display:block; color:var(--text); font-size:11px; margin-bottom:4px; }
.vehicle-demo-layout .related-strip { margin-top:20px; padding:22px; border-radius:var(--radius-xl); }
.vehicle-demo-layout .related-empty { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px; border-radius:17px; background:rgba(255,255,255,.025); border:1px dashed var(--line-strong); color:var(--muted); font-size:10px; line-height:1.9; }
.vehicle-demo-layout .related-empty strong { display:block; color:var(--text-2); font-size:12px; margin-bottom:3px; }
.vehicle-demo-layout .footer { display:flex; justify-content:space-between; gap:12px; border-top:1px solid var(--line); margin-top:32px; padding-top:20px; color:var(--muted); font-size:10px; }
.vehicle-demo-layout .footer-links { display:flex; gap:15px; }
.vehicle-demo-layout .detail-cta { z-index:39; padding:10px 10px calc(10px + env(safe-area-inset-bottom)); background:linear-gradient(180deg,rgba(9,10,13,0) 0%,rgba(9,10,13,.92) 38%); }
.vehicle-demo-layout .detail-cta-inner { max-width:488px; border:1px solid var(--line-strong); border-radius:22px; background:rgba(27,28,33,.9); backdrop-filter:blur(22px) saturate(160%); -webkit-backdrop-filter:blur(22px) saturate(160%); box-shadow:0 14px 45px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.06); padding:9px; }
.vehicle-demo-layout .detail-cta-price-value { color:var(--text); font-size:18px; }
.vehicle-demo-layout .detail-cta-price-unit { color:var(--muted); font-size:9px; }
.vehicle-demo-layout .detail-cta-btn { background:var(--button); color:var(--button-text); padding:12px 14px; border-radius:15px; font-size:11px; box-shadow:none; }
.vehicle-demo-layout .detail-cta-phone { width:43px; height:43px; border-radius:15px; background:rgba(255,255,255,.08); border:1px solid var(--line); color:var(--text); }
.vehicle-demo-layout .detail-cta-phone .icon { width:18px; height:18px; }
.vehicle-demo-layout .detail-spacer { height:10px; }
@media (max-width:780px) {
  .vehicle-demo-layout .listing-layout { display:flex; flex-direction:column; gap:14px; }
  .vehicle-demo-layout .gallery-card { order:0; }
  .vehicle-demo-layout .summary-column { order:1; }
  .vehicle-demo-layout .spec-strip { margin-top:14px; }
  .vehicle-demo-layout .lower-layout { margin-top:14px; }
  .vehicle-demo-layout .related-strip { margin-top:14px; padding:18px; }
  .vehicle-demo-layout .page-shell { padding-inline:15px; }
  .vehicle-demo-layout .detail-cta { padding-left:9px; padding-right:9px; }
  .vehicle-demo-layout .detail-cta-inner { gap:8px; }
  .vehicle-demo-layout .detail-cta-btn { padding:11px 12px; font-size:10px; }
  .vehicle-demo-layout .footer { flex-direction:column; align-items:flex-start; }
}
@media (max-width:390px) {
  .vehicle-demo-layout .page-shell { padding-inline:10px; }
  .vehicle-demo-layout .price-card { padding:15px; }
  .vehicle-demo-layout .price-number { font-size:30px; }
  .vehicle-demo-layout .contact-buttons { grid-template-columns:1fr; }
  .vehicle-demo-layout .detail-cta-price-value { font-size:16px; }
  .vehicle-demo-layout .detail-cta-btn { padding-inline:10px; }
}

/* Higher-specificity bridge over the previous detail-screen component styles. */
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta { padding:10px 10px calc(10px + env(safe-area-inset-bottom)); background:linear-gradient(180deg,rgba(9,10,13,0) 0%,rgba(9,10,13,.92) 38%); }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-inner { max-width:488px; border:1px solid rgba(255,255,255,.14); border-radius:22px; background:rgba(27,28,33,.9); backdrop-filter:blur(22px) saturate(160%); -webkit-backdrop-filter:blur(22px) saturate(160%); box-shadow:0 14px 45px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.06); padding:9px; }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-price-value { color:#f5f5f7; font-size:18px; }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-price-unit { color:#878991; font-size:9px; }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-btn { background:#f3f3f5; color:#111216; padding:12px 14px; border-radius:15px; font-size:11px; box-shadow:none; }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-phone { width:43px; height:43px; border-radius:15px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.085); color:#f5f5f7; }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-tabs { margin-top:0; margin-bottom:15px; padding:5px; border-radius:16px; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.06); }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-tabs .detail-tab { flex:1; min-height:38px; border:0; border-radius:10px; background:transparent; color:#878991; font:inherit; font-size:10px; font-weight:700; }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-tabs .detail-tab.is-active { background:#f0f0f2; color:#151619; }
@media (max-width:780px) {
  [data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta { padding-left:9px; padding-right:9px; }
  [data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-inner { gap:8px; }
  [data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-btn { padding:11px 12px; font-size:10px; }
}

/* CarMaa brand logo in header */
.header-brand-logo{display:block;width:clamp(88px,10.2vw,126px);height:auto;object-fit:contain;}
.header-shield-logo{width:104px;height:auto;min-height:0;clip-path:none;background:transparent;box-shadow:none;padding:0;}
.header-brand-logo-small{display:block;width:100%;height:auto;object-fit:contain;}


/* Vehicle contact actions live only in the persistent bottom CTA. */
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-actions { gap:7px; }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-btn,
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-phone { min-height:43px; width:auto; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:0 12px; border-radius:15px; white-space:nowrap; text-decoration:none; flex:0 0 auto; }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-btn .icon,
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-phone .icon { width:17px; height:17px; flex:0 0 auto; }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-phone { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); color:#f5f5f7; font-size:10px; font-weight:700; }
[data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-btn { font-size:10px; }
@media (max-width:430px) {
  [data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-inner { gap:7px; padding:8px; }
  [data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-actions { gap:6px; }
  [data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-btn,
  [data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-phone { min-height:42px; padding:0 9px; gap:5px; font-size:9px; }
  [data-page="vehicle"].vehicle-detail-page.vehicle-demo-layout .detail-cta-price-value { font-size:16px; }
}

/* ===============================================================
   CARMAA VEHICLE DETAIL — live color-glass summary tiles + seller card
   The three compact facts inherit colors from the listing data:
   newer year / lower mileage = greener, older / higher = redder.
================================================================= */
.vehicle-demo-layout .summary-facts .fact {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: rgba(255,255,255,.085);
  background: linear-gradient(145deg, rgba(255,255,255,.035), rgba(18,21,25,.82));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035), 0 8px 22px rgba(0,0,0,.13);
  transition: border-color .28s ease, box-shadow .28s ease, transform .28s ease;
}
.vehicle-demo-layout .summary-facts .fact::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -32% -18%;
  pointer-events: none;
  opacity: .78;
  background: radial-gradient(ellipse at 50% 110%, hsla(var(--metric-hue, 60), 86%, 52%, .24), transparent 61%);
  transition: opacity .28s ease;
}
.vehicle-demo-layout .summary-facts .fact > * {
  position: relative;
  z-index: 1;
}
.vehicle-demo-layout .summary-facts .fact--year,
.vehicle-demo-layout .summary-facts .fact--mileage {
  border-color: hsla(var(--metric-hue, 60), 80%, 62%, .24);
  background: linear-gradient(148deg,
    hsla(var(--metric-hue, 60), 65%, 42%, .16) 0%,
    rgba(24,27,31,.91) 58%,
    hsla(var(--metric-hue, 60), 75%, 38%, .095) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.045),
    inset 0 -14px 25px hsla(var(--metric-hue, 60), 78%, 46%, .035),
    0 0 20px hsla(var(--metric-hue, 60), 82%, 48%, .055);
}
.vehicle-demo-layout .summary-facts .fact--year::before,
.vehicle-demo-layout .summary-facts .fact--mileage::before {
  background: radial-gradient(ellipse at 50% 115%, hsla(var(--metric-hue, 60), 90%, 54%, .30), transparent 64%);
}
.vehicle-demo-layout .summary-facts .fact--year .icon,
.vehicle-demo-layout .summary-facts .fact--mileage .icon {
  color: hsl(var(--metric-hue, 60), 74%, 68%);
  filter: drop-shadow(0 0 7px hsla(var(--metric-hue, 60), 85%, 55%, .23));
}
.vehicle-demo-layout .summary-facts .fact--paint {
  border-color: rgba(var(--paint-rgb, 138,138,134), .32);
  background: linear-gradient(148deg,
    rgba(var(--paint-rgb, 138,138,134), .22) 0%,
    rgba(23,26,30,.94) 57%,
    rgba(var(--paint-rgb, 138,138,134), .11) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055),
    inset 0 -15px 26px rgba(var(--paint-rgb, 138,138,134), .055),
    0 0 19px rgba(var(--paint-rgb, 138,138,134), .075);
}
.vehicle-demo-layout .summary-facts .fact--paint::before {
  background: radial-gradient(ellipse at 52% 112%, rgba(var(--paint-rgb, 138,138,134), .38), transparent 64%);
  opacity: .9;
}
.vehicle-demo-layout .summary-facts .fact--paint .icon {
  color: rgb(var(--paint-rgb, 180,180,175));
  filter: drop-shadow(0 0 7px rgba(var(--paint-rgb, 138,138,134), .28));
}
.vehicle-demo-layout .summary-facts .fact:hover {
  transform: translateY(-2px);
  border-color: rgba(255,255,255,.16);
}
.vehicle-demo-layout .summary-facts .fact--year:hover,
.vehicle-demo-layout .summary-facts .fact--mileage:hover {
  border-color: hsla(var(--metric-hue, 60), 84%, 67%, .42);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 0 23px hsla(var(--metric-hue, 60), 85%, 52%, .11);
}
.vehicle-demo-layout .summary-facts .fact--paint:hover {
  border-color: rgba(var(--paint-rgb, 138,138,134), .48);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 0 23px rgba(var(--paint-rgb, 138,138,134), .13);
}

/* The seller/display card behaves like dark glass with a slow moving aurora underneath. */
.vehicle-demo-layout .seller-slot .seller-mini {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(147,179,207,.17);
  background: linear-gradient(135deg, rgba(26,30,36,.97), rgba(16,19,24,.96) 68%, rgba(24,29,35,.97));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 12px 28px rgba(0,0,0,.2), 0 0 22px rgba(44,129,177,.045);
  -webkit-backdrop-filter: blur(18px) saturate(1.18);
  backdrop-filter: blur(18px) saturate(1.18);
  isolation: isolate;
}
.vehicle-demo-layout .seller-slot .seller-mini::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -55% -28%;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 18% 58%, rgba(37,141,177,.29), transparent 38%),
    radial-gradient(ellipse at 74% 38%, rgba(65,80,176,.25), transparent 39%),
    radial-gradient(ellipse at 52% 100%, rgba(42,158,133,.17), transparent 42%);
  background-size: 150% 150%;
  background-position: 0% 45%;
  filter: blur(15px);
  opacity: .82;
  transform: translate3d(-2%,0,0) scale(1.06);
  animation: carmaaSellerAurora 10s ease-in-out infinite alternate;
}
.vehicle-demo-layout .seller-slot .seller-mini::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: -75%;
  bottom: -75%;
  left: -45%;
  width: 34%;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(205,231,255,.055), rgba(111,194,220,.10), transparent);
  filter: blur(5px);
  transform: rotate(18deg) translateX(-170%);
  animation: carmaaSellerSheen 9s ease-in-out infinite;
}
.vehicle-demo-layout .seller-slot .seller-mini--dealer {
  border-color: rgba(77,170,207,.24);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 12px 30px rgba(0,0,0,.22), 0 0 22px rgba(48,145,194,.085);
}
.vehicle-demo-layout .seller-slot .seller-mini--personal::before {
  background:
    radial-gradient(ellipse at 18% 58%, rgba(86,111,180,.25), transparent 38%),
    radial-gradient(ellipse at 74% 38%, rgba(142,78,160,.20), transparent 39%),
    radial-gradient(ellipse at 52% 100%, rgba(54,147,139,.15), transparent 42%);
}
.vehicle-demo-layout .seller-slot .seller-mini > * {
  position: relative;
  z-index: 1;
}
.vehicle-demo-layout .seller-slot .seller-mini .seller-name,
.vehicle-demo-layout .seller-slot .seller-mini .seller-type,
.vehicle-demo-layout .seller-slot .seller-mini .mini-label {
  text-shadow: 0 1px 8px rgba(0,0,0,.34);
}
.vehicle-demo-layout .seller-slot .seller-mini-link:hover {
  border-color: rgba(99,183,218,.34);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.065), 0 14px 32px rgba(0,0,0,.24), 0 0 25px rgba(48,145,194,.12);
}
@keyframes carmaaSellerAurora {
  0% { background-position: 0% 45%; transform: translate3d(-2%, -1%, 0) scale(1.06); }
  50% { background-position: 65% 60%; transform: translate3d(2%, 1%, 0) scale(1.10); }
  100% { background-position: 100% 38%; transform: translate3d(-1%, 2%, 0) scale(1.06); }
}
@keyframes carmaaSellerSheen {
  0%, 16% { transform: rotate(18deg) translateX(-170%); opacity: 0; }
  30% { opacity: .75; }
  66%, 100% { transform: rotate(18deg) translateX(500%); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .vehicle-demo-layout .seller-slot .seller-mini::before,
  .vehicle-demo-layout .seller-slot .seller-mini::after { animation: none !important; }
  .vehicle-demo-layout .summary-facts .fact { transition: none !important; }
}


/* Vehicle detail: spec sheet. No wrapper box: each group is a heading on the page plus one panel. */
.vehicle-demo-layout .section-card.vehicle-detail-specs-card, .vehicle-demo-layout .section-card.body-condition-card { padding:0 !important; border:0 !important; border-radius:0 !important; background:none !important; box-shadow:none !important; overflow:visible; }
.vehicle-demo-layout .vehicle-detail-specs-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; align-items:start; }
.vehicle-demo-layout .vehicle-detail-spec-group { min-width:0; }
.vehicle-demo-layout .vehicle-detail-spec-group .section-header { margin-bottom:12px; padding-inline:2px; }
.vehicle-demo-layout .vehicle-detail-spec-group .section-title { font-size:15px; }
.vehicle-demo-layout .vehicle-detail-spec-group .section-caption { font-size:11px; display:inline-flex; align-items:center; gap:8px; }

/* Technical: 2x2 engraved tiles that share hairlines inside a single panel */
.vehicle-demo-layout .vds-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line-strong); border:1px solid var(--line-strong); border-radius:22px; overflow:hidden; }
.vehicle-demo-layout .vds-tile { position:relative; min-width:0; min-height:92px; padding:16px 16px 15px; display:flex; flex-direction:column; justify-content:space-between; gap:14px; background:var(--surface-2); overflow:hidden; }
.vehicle-demo-layout .vds-tile-label { position:relative; z-index:1; color:var(--muted); font-size:11.5px; line-height:1.4; }
.vehicle-demo-layout .vds-tile-value { position:relative; z-index:1; color:var(--text); font-size:15.5px; font-weight:800; line-height:1.35; letter-spacing:-.2px; overflow-wrap:anywhere; unicode-bidi:plaintext; }
.vehicle-demo-layout .vds-tile.is-empty .vds-tile-value { color:var(--muted); font-size:13px; font-weight:600; }
.vehicle-demo-layout .vds-tile-mark { position:absolute; inset-inline-end:-6px; bottom:-10px; color:var(--text); opacity:.07; pointer-events:none; }
.vehicle-demo-layout .vds-tile-mark .icon { width:68px; height:68px; stroke-width:1.2; }
.vehicle-demo-layout .vds-tile.is-empty .vds-tile-mark { opacity:.035; }

/* Ownership: checklist, each row is on record (green) or still open (dashed) */
.vehicle-demo-layout .vds-docs { border:1px solid var(--line-strong); border-radius:22px; background:var(--surface-2); overflow:hidden; }
.vehicle-demo-layout .vds-doc { display:flex; align-items:center; gap:14px; padding:14px 16px; }
.vehicle-demo-layout .vds-doc + .vds-doc { border-top:1px solid var(--line); }
.vehicle-demo-layout .vds-doc-badge { width:40px; height:40px; flex:0 0 auto; display:grid; place-items:center; border-radius:13px; }
.vehicle-demo-layout .vds-doc-badge .icon { width:19px; height:19px; }
.vehicle-demo-layout .vds-doc.is-empty .vds-doc-badge { border:1.5px dashed var(--line-strong); color:var(--muted); }
.vehicle-demo-layout .vds-doc.is-ok .vds-doc-badge { background:rgba(52,211,153,.13); border:1px solid rgba(52,211,153,.3); color:#34d399; }
.vehicle-demo-layout .vds-doc-text { min-width:0; flex:1; display:flex; flex-direction:column; gap:1px; }
.vehicle-demo-layout .vds-doc-label { color:var(--muted); font-size:11.5px; }
.vehicle-demo-layout .vds-doc-value { color:var(--text); font-size:14.5px; font-weight:750; overflow-wrap:anywhere; unicode-bidi:plaintext; }
.vehicle-demo-layout .vds-doc.is-empty .vds-doc-value { color:var(--muted); font-size:13px; font-weight:600; }
.vehicle-demo-layout .vds-doc-check { color:#34d399; display:grid; place-items:center; }
.vehicle-demo-layout .vds-doc-check .icon { width:20px; height:20px; }

/* Progress meter in the ownership caption */
.vehicle-demo-layout .vds-meter { display:inline-flex; gap:3px; }
.vehicle-demo-layout .vds-meter i { width:14px; height:4px; border-radius:2px; background:var(--line-strong); }
.vehicle-demo-layout .vds-meter i.on { background:#34d399; }

.vehicle-demo-layout .vds-note { display:flex; align-items:center; gap:8px; margin:10px 0 0; padding-inline:4px; color:var(--muted); font-size:11.5px; line-height:1.6; }
.vehicle-demo-layout .vds-note[hidden] { display:none; }
.vehicle-demo-layout .vds-note .icon { width:15px; height:15px; }

@media (max-width: 700px) {
  .vehicle-demo-layout .vehicle-detail-specs-layout { grid-template-columns:minmax(0,1fr); gap:26px; }
  .vehicle-demo-layout .vds-tile { min-height:86px; padding:14px; }
  .vehicle-demo-layout .vds-tile-value { font-size:15px; }
  .vehicle-demo-layout .vds-doc { padding:12px 14px; }
}

/* Body & paint: the drawing sheet plus one line of small status chips */
.vehicle-demo-layout .body-condition-card .section-header { margin-bottom:14px; padding-inline:2px; }
.vehicle-demo-layout .body-condition-card .section-title { font-size:15px; }
.vehicle-demo-layout .body-condition-card .section-caption { font-size:11px; }
.vehicle-demo-layout .bc-sheet { border:1px solid var(--line-strong); border-radius:22px; overflow:hidden; background:#e8e8e8; }
.vehicle-demo-layout .bc-sheet svg { display:block; width:100%; height:auto; max-width:none; margin:0; filter:brightness(.92) contrast(1.03); }
.vehicle-demo-layout .bc-sheet .car-panel-shape { cursor:default; }
.vehicle-demo-layout .bc-chips { display:flex; flex-wrap:wrap; gap:8px; margin:12px 2px 0; }
.vehicle-demo-layout .bc-chip { display:inline-flex; align-items:center; gap:7px; min-height:30px; padding:0 12px; border:1px solid var(--line-strong); border-radius:99px; background:rgba(255,255,255,.03); color:var(--text-2); font-size:12px; font-weight:700; line-height:1.4; }
.vehicle-demo-layout .bc-chip::before { content:""; width:8px; height:8px; flex:0 0 auto; border-radius:50%; background:var(--bc-color, var(--muted)); }
.vehicle-demo-layout .bc-chip.is-clear { color:var(--muted); font-weight:600; }
.vehicle-demo-layout .bc-chip.is-clear::before { background:#34d399; }


/* Optional vehicle technical and ownership fields added to the listing flow. */
.sell-spec-text-input { width:100%; min-height:44px; border:1px solid var(--sm-line,#2c3034); border-radius:12px; padding:11px 12px; background:var(--sm-panel,#202326); color:var(--sm-text,#e9ecef); font:inherit; font-size:13px; outline:none; direction:rtl; }
.sell-spec-text-input::placeholder { color:var(--sm-muted,#777d82); }
.sell-spec-text-input:focus { border-color:#8f7cf2; box-shadow:0 0 0 2px rgba(143,124,242,.12); }
.sell-ownership-more { margin-top:6px; padding-top:4px; border-top:1px solid var(--sm-line,#2c3034); }
.sell-ownership-more > summary { text-align:right; padding:13px 2px; color:var(--sm-text,#d5d8db); }
.sell-ownership-intro { margin:0 0 14px; color:var(--sm-muted,#898f94); font-size:12px; line-height:1.8; text-align:right; }
.sell-ownership-sections { padding:0 0 6px; gap:18px; }
.sell-ownership-sections .sell-chip-grid { gap:7px; }
.sell-ownership-sections .sell-chip { min-height:38px; padding:8px 12px; border-radius:11px; font-size:12px; }

/* =====================================================================
   LARGE LISTING CARDS — reference-matched monochrome Liquid Glass
   This block intentionally wins over the original .xc-glass rules above and applies directly to every large-card component.
   Palette: charcoal, cool graphite, silver-white; green only for trade-in.
   ===================================================================== */
body article.xc .xc-glass.xc-glass--tab {
  position: absolute;
  z-index: 3;
  left: 18px;
  right: 18px;
  bottom: 0;
  transform: translateY(50%);
  display: flex;
  flex-direction: row;
  align-items: stretch;
  justify-content: space-between;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-radius: 26px;
  direction: rtl;
  color: #f3f5f7;
  background: linear-gradient(112deg, rgba(30,34,40,.97) 0%, rgba(14,16,19,.97) 72%, rgba(12,14,17,.98) 100%);
  border: 1px solid rgba(171,185,203,.23);
  box-shadow: 0 15px 36px rgba(0,0,0,.42), inset 0 1px 0 rgba(242,247,255,.13), inset 0 -1px 0 rgba(255,255,255,.035);
  -webkit-backdrop-filter: blur(30px) saturate(112%);
  backdrop-filter: blur(30px) saturate(112%);
  isolation: isolate;
}
body article.xc .xc-glass.xc-glass--tab::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(115deg, rgba(235,242,252,.065), transparent 27%, rgba(255,255,255,.012) 72%, rgba(255,255,255,.035));
}
body article.xc .xc-glass--tab .xc-glass-text {
  position: relative;
  z-index: 1;
  order: 1;
  flex: 1 1 auto;
  min-width: 0;
  padding: 17px 22px 16px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 13px;
}
body article.xc .xc-glass--tab .xc-b-head {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 14px;
  min-width: 0;
}
body article.xc .xc-glass--tab .xc-title {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  color: #f5f6f8;
  font-size: 30px;
  font-weight: 900;
  letter-spacing: -.65px;
  line-height: 1.24;
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-shadow: 0 1px 12px rgba(255,255,255,.075);
  unicode-bidi: plaintext;
}
body article.xc .xc-glass--tab .xc-title.is-two-line {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
  overflow: hidden;
  line-height: 1.22;
}
body article.xc .xc-glass--tab .xc-b-year {
  order: 2;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 15px;
  border-radius: 999px;
  color: #d8dde5;
  background: linear-gradient(145deg, rgba(118,132,151,.23), rgba(43,49,58,.34));
  border: 1px solid rgba(211,222,239,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.065);
  font-size: 17px;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
}
body article.xc .xc-glass--tab .xc-b-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
  overflow: visible;
  color: #c6ccd5;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
}
body article.xc .xc-glass--tab .xc-b-item {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 43px;
  max-width: 100%;
  padding: 7px 14px;
  border-radius: 999px;
  color: #cbd1da;
  background: linear-gradient(145deg, rgba(91,103,120,.23), rgba(23,27,33,.72));
  border: 1px solid rgba(174,190,211,.15);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 3px 8px rgba(0,0,0,.13);
  white-space: nowrap;
}
body article.xc .xc-glass--tab .xc-b-item svg {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  color: #c2cad4;
  opacity: .95;
}
body article.xc .xc-glass--tab .xc-b-item--trade {
  color: #53d7a7;
  background: linear-gradient(145deg, rgba(64,193,148,.10), rgba(23,27,33,.73));
  border-color: rgba(83,215,167,.19);
}
body article.xc .xc-glass--tab .xc-b-item--trade svg { color: #53d7a7; }
body article.xc .xc-glass--tab .xc-b-item--paint { color: #d0d4da; }
body article.xc .xc-glass--tab .xc-b-item--hybrid { color: #cdd2da; }
body article.xc .xc-glass--tab .xc-price.xc-price--tab {
  position: relative;
  z-index: 1;
  order: 2;
  flex: 0 0 31%;
  width: 31%;
  min-width: 150px;
  max-width: 34%;
  margin: 0;
  padding: 18px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  text-align: center;
  color: #f5f6f8;
  background: linear-gradient(145deg, rgba(87,99,114,.56), rgba(37,42,49,.83));
  border: 0;
  border-inline-start: 1px solid rgba(190,205,224,.25);
  border-radius: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), inset -1px 0 0 rgba(255,255,255,.025);
}
body article.xc .xc-glass--tab .xc-price--tab .xc-price-amount {
  display: block;
  max-width: 100%;
  color: #f5f7fa;
  font-size: clamp(34px, 3.4vw, 52px);
  font-weight: 900;
  letter-spacing: -1px;
  line-height: 1.02;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  text-shadow: 0 2px 18px rgba(230,239,250,.12);
}
body article.xc .xc-glass--tab .xc-price--tab .xc-price-unit {
  display: block;
  margin: 0;
  color: #c6cdd6;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.35;
  white-space: nowrap;
}
body article.xc .xc-glass--tab .xc-price--text .xc-price-amount {
  font-size: clamp(15px, 1.7vw, 23px);
  line-height: 1.3;
  white-space: normal;
  overflow-wrap: anywhere;
}
body article.xc .xc-glass--tab .xc-price--text .xc-price-unit { display: none; }

/* The glass information bar sits across the photo edge and is measured by the observer. */
body article.xc .xc-media { overflow: visible; }
body article.xc .xc-media::after { border-radius: 24px; }
body article.xc { margin-bottom: 2px; }
@media (max-width: 900px) {
  body article.xc .xc-glass--tab .xc-glass-text { padding: 14px 16px; gap: 11px; }
  body article.xc .xc-glass--tab .xc-title { font-size: 25px; }
  body article.xc .xc-glass--tab .xc-b-year { min-height: 32px; font-size: 15px; padding: 0 12px; }
  body article.xc .xc-glass--tab .xc-b-meta { gap: 6px; font-size: 13px; }
  body article.xc .xc-glass--tab .xc-b-item { min-height: 36px; padding: 6px 10px; gap: 6px; }
  body article.xc .xc-glass--tab .xc-b-item svg { width: 15px; height: 15px; }
  body article.xc .xc-glass--tab .xc-price.xc-price--tab { flex-basis: 30%; width: 30%; min-width: 120px; padding: 14px 11px; }
  body article.xc .xc-glass--tab .xc-price--tab .xc-price-amount { font-size: clamp(30px, 4.3vw, 42px); }
}
@media (max-width: 600px) {
  body article.xc .xc-glass.xc-glass--tab { left: 10px; right: 10px; border-radius: 19px; }
  body article.xc .xc-glass--tab .xc-glass-text { padding: 11px 10px; gap: 9px; }
  body article.xc .xc-glass--tab .xc-b-head { gap: 7px; }
  body article.xc .xc-glass--tab .xc-title { font-size: 21px; letter-spacing: -.35px; }
  body article.xc .xc-glass--tab .xc-b-year { min-height: 27px; padding: 0 9px; font-size: 12px; }
  body article.xc .xc-glass--tab .xc-b-meta { gap: 5px; font-size: 11px; }
  body article.xc .xc-glass--tab .xc-b-item { min-height: 29px; padding: 5px 8px; gap: 5px; }
  body article.xc .xc-glass--tab .xc-b-item svg { width: 13px; height: 13px; }
  body article.xc .xc-glass--tab .xc-price.xc-price--tab { flex-basis: 31%; width: 31%; min-width: 91px; padding: 10px 6px; }
  body article.xc .xc-glass--tab .xc-price--tab .xc-price-amount { font-size: clamp(23px, 7vw, 32px); letter-spacing: -.4px; }
  body article.xc .xc-glass--tab .xc-price--tab .xc-price-unit { font-size: 10px; white-space: normal; }
}
@media (max-width: 390px) {
  body article.xc .xc-glass.xc-glass--tab { left: 6px; right: 6px; }
  body article.xc .xc-glass--tab .xc-glass-text { padding: 9px 8px; gap: 7px; }
  body article.xc .xc-glass--tab .xc-title { font-size: 18px; }
  body article.xc .xc-glass--tab .xc-b-meta { gap: 4px; font-size: 10px; }
  body article.xc .xc-glass--tab .xc-b-item { min-height: 26px; padding: 4px 6px; gap: 4px; }
  body article.xc .xc-glass--tab .xc-price.xc-price--tab { flex-basis: 29%; width: 29%; min-width: 82px; padding: 8px 5px; }
  body article.xc .xc-glass--tab .xc-price--tab .xc-price-amount { font-size: 23px; }
  body article.xc .xc-glass--tab .xc-price--tab .xc-price-unit { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  body .explore-list[data-list-style="large"] article.xc:active { transform: none; }
}


/* ================================================================
   CARMAA HOME DASHBOARD — service tiles + editorial car marketplace
   Dark graphite, understated glass surfaces, low-saturation accents.
   ================================================================ */
.cm-home-page {
  --cm-home-bg: #0d0f12;
  --cm-home-card: #171a1f;
  --cm-home-border: rgba(190,202,218,.13);
  --cm-home-muted: #8e959f;
  --cm-home-white: #f3f5f7;
  --cm-home-accent: #b9a9ff;
  color: var(--cm-home-white);
  width: 100%;
  padding: 4px 0 112px;
  overflow: hidden;
  background: radial-gradient(ellipse at 92% 0%, rgba(112,123,145,.10), transparent 35%), var(--cm-home-bg);
  font-family: "Vazirmatn", "Segoe UI", Tahoma, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.cm-home-hero { padding: 21px 18px 17px; text-align: right; }
.cm-home-eyebrow { display: inline-flex; align-items: center; gap: 7px; border: 1px solid rgba(190,202,218,.13); background: rgba(255,255,255,.035); border-radius: 999px; padding: 6px 10px; color: #b9bec7; font-size: 10.5px; letter-spacing: .02em; }
.cm-home-eyebrow-dot { width: 6px; height: 6px; border-radius: 50%; background: #a99ae8; box-shadow: 0 0 0 3px rgba(169,154,232,.12); }
.cm-home-hero h1 { margin: 15px 0 0; font-size: clamp(25px, 6vw, 32px); line-height: 1.3; font-weight: 850; letter-spacing: -.045em; color: #f6f7f9; }
.cm-home-hero h1 span { color: #c6cbd3; }
.cm-home-hero p { margin: 7px 0 0; font-size: 13px; line-height: 1.8; color: #9298a2; }
.cm-home-services { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; padding: 2px 14px 15px; direction: rtl; }
.cm-home-tile { position: relative; isolation: isolate; min-width: 0; min-height: 142px; grid-column: span 2; padding: 14px 13px; border: 1px solid var(--cm-home-border); border-radius: 21px; color: var(--cm-home-white); background: linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.018) 54%,rgba(255,255,255,.035)), #171a1f; box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 9px 25px rgba(0,0,0,.15); overflow: hidden; text-align: right; appearance: none; -webkit-appearance: none; transition: transform .18s ease,border-color .18s ease,background .18s ease; }
.cm-home-tile:active:not(:disabled) { transform: scale(.975); }
.cm-home-tile-copy { position: relative; z-index: 4; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; text-align: right; }
.cm-home-tile-copy strong { font-size: 14px; line-height: 1.35; letter-spacing: -.025em; font-weight: 800; color: #f4f5f7; white-space: nowrap; }
.cm-home-tile-copy small { font-size: 10px; line-height: 1.6; font-weight: 400; color: #9ba2ac; max-width: 100%; }
.cm-home-tile-listings { background: linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.01) 55%), #191d22; }
.cm-home-car-art { position: absolute; z-index: 1; width: 130%; left: -28%; bottom: -5px; height: 70px; transform: rotate(-2deg); opacity: .9; mask-image: linear-gradient(to bottom,#000 65%,transparent 100%); }
.cm-home-car-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; border-radius: 13px; filter: saturate(.5) brightness(.78) contrast(1.08); }
.cm-home-tile-listings::after { content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(180deg,rgba(20,23,28,.12),rgba(12,14,17,.05) 38%,rgba(12,14,17,.72) 100%); pointer-events:none; }
.cm-home-tile-mark { position:absolute; z-index:3; top:68px; right:12px; width:32px; height:32px; border-radius:11px; display:grid; place-items:center; background:rgba(16,19,23,.72); border:1px solid rgba(255,255,255,.15); backdrop-filter:blur(12px); }
.cm-home-tile-mark svg { width:20px;height:20px;fill:none;stroke:#e7eaf0;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round; }
.cm-home-art { position:absolute; z-index:1; left:7px; bottom:3px; width:78px; height:73px; opacity:.92; }
.cm-home-art-qa { left:1px; bottom:0; }
.cm-home-bubble { position:absolute; display:flex; align-items:center; justify-content:center; border-radius:18px; border:1px solid rgba(224,229,238,.19); box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 8px 18px rgba(0,0,0,.22); font-weight:800; }
.cm-home-bubble-back { width:39px;height:37px; right:8px;top:8px; color:#aaa6ce; font-size:19px; background:linear-gradient(145deg,rgba(170,163,217,.19),rgba(170,163,217,.04)); transform:rotate(-10deg); }
.cm-home-bubble-front { width:57px;height:42px; left:4px;bottom:6px; font-size:11px; letter-spacing:.06em; color:#dad6f7; background:linear-gradient(145deg,rgba(157,146,220,.25),rgba(83,79,110,.17)); transform:rotate(5deg); }
.cm-home-art-messages { left:2px; width:81px; }
.cm-home-message-shape { position:absolute; border-radius:14px; display:block; box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 8px 16px rgba(0,0,0,.18); }
.cm-home-message-one { width:49px;height:35px; top:9px;left:18px; background:linear-gradient(135deg,rgba(199,207,218,.22),rgba(97,106,119,.15)); border:1px solid rgba(210,216,227,.17); transform:rotate(-8deg); }
.cm-home-message-one::after { content:"";position:absolute;bottom:-5px;left:9px;width:11px;height:11px;background:#777f8b;clip-path:polygon(0 0,100% 0,0 100%); }
.cm-home-message-two { width:42px;height:28px;bottom:8px;right:3px;background:linear-gradient(135deg,rgba(159,147,217,.35),rgba(98,89,143,.22));border:1px solid rgba(191,181,244,.2);transform:rotate(8deg); }
.cm-home-message-line { position:absolute; width:23px;height:3px;border-radius:3px;left:14px;top:22px;background:rgba(240,242,248,.7);box-shadow:0 7px 0 rgba(240,242,248,.35); transform:rotate(-8deg); }
.cm-home-tile-wide { grid-column: span 3; min-height: 118px; }
.cm-home-tile-account { min-height: 118px; }
.cm-home-art-account { left:17px;bottom:6px;width:98px;height:79px; }
.cm-home-avatar-orb { position:absolute; left:4px;top:8px;width:52px;height:52px;border-radius:50%;border:1px solid rgba(224,229,238,.2);background:linear-gradient(145deg,rgba(189,198,213,.26),rgba(92,101,116,.1));display:grid;place-items:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 8px 20px rgba(0,0,0,.2); }
.cm-home-avatar-orb svg { width:26px;height:26px;fill:none;stroke:#e1e4ea;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round; }
.cm-home-account-glass { position:absolute;right:0;bottom:7px;width:51px;height:36px;border-radius:13px;border:1px solid rgba(214,219,228,.15);background:linear-gradient(145deg,rgba(189,198,213,.18),rgba(75,82,93,.12));transform:rotate(-10deg); }
.cm-home-tile-arrow { position:absolute;left:13px;top:13px;font-size:17px;color:#adb4bf; }
.cm-home-tile-soon { background:linear-gradient(145deg,rgba(255,255,255,.03),rgba(255,255,255,.012)),#14171b; filter:saturate(.42); }
.cm-home-tile-soon:disabled { opacity:.77; cursor:default; }
.cm-home-soon-badge { position:absolute;left:12px;top:12px;z-index:4;border:1px solid rgba(190,197,207,.17);background:rgba(255,255,255,.055);border-radius:999px;padding:5px 8px;font-size:9px;color:#a7adb7; }
.cm-home-art-soon { left:7px;bottom:-6px;display:flex;align-items:flex-end;gap:5px;transform:rotate(-9deg);filter:blur(.4px); }
.cm-home-art-soon span { display:block;width:15px;border-radius:9px 9px 5px 5px;border:1px solid rgba(200,207,220,.18);background:linear-gradient(180deg,rgba(207,213,224,.2),rgba(73,80,92,.08)); }
.cm-home-art-soon span:nth-child(1){height:24px}.cm-home-art-soon span:nth-child(2){height:48px}.cm-home-art-soon span:nth-child(3){height:36px}.cm-home-art-soon span:nth-child(4){height:59px}
.cm-home-search { width:calc(100% - 28px); margin:0 14px 27px; padding:12px 13px; display:flex;align-items:center;gap:11px;text-align:right;border-radius:19px;border:1px solid rgba(190,202,218,.13);background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018)),#171a1f;color:#f2f4f7;box-shadow:inset 0 1px 0 rgba(255,255,255,.045); }
.cm-home-search-icon { width:38px;height:38px;flex:0 0 38px;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,.055);border:1px solid rgba(220,227,238,.08); }
.cm-home-search-icon svg { width:20px;height:20px;fill:none;stroke:#b9c0ca;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round; }
.cm-home-search-copy { flex:1;min-width:0;display:flex;flex-direction:column;gap:4px; }
.cm-home-search-copy strong {font-size:12.5px;font-weight:750;line-height:1.4}.cm-home-search-copy small{font-size:10px;color:#858d99;line-height:1.5}
.cm-home-search-arrow { width:29px;height:29px;display:grid;place-items:center;border-radius:50%;color:#d4d8df;background:rgba(255,255,255,.06);border:1px solid rgba(220,227,238,.08);font-size:16px; }
.cm-home-latest { margin-top:2px;padding:0 14px 22px; }
.cm-home-section-heading { display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 2px 13px; }
.cm-home-section-heading h2 {margin:0;color:#f1f3f6;font-size:16px;font-weight:850;letter-spacing:-.025em}.cm-home-section-heading p{margin:4px 0 0;color:#858d98;font-size:10.5px;line-height:1.6}
.cm-home-section-heading button {flex-shrink:0;display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.04);border:1px solid rgba(190,202,218,.12);color:#c1c7d0;padding:8px 10px;border-radius:999px;font-size:10px;}
.cm-home-featured-rail { display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;padding:1px 0 14px;scrollbar-width:none;overscroll-behavior-x:contain; }
.cm-home-featured-rail::-webkit-scrollbar {display:none}.cm-home-featured-rail > .xc {flex:0 0 85%;max-width:360px;scroll-snap-align:start;}
.cm-home-empty-latest {width:100%;padding:21px 15px;border:1px dashed rgba(190,202,218,.16);border-radius:17px;color:#8e96a1;font-size:12px;text-align:center;}
.cm-home-sell-cta { margin:0 14px;padding:17px 14px;display:flex;align-items:center;gap:11px;border:1px solid rgba(190,202,218,.13);border-radius:22px;background:linear-gradient(120deg,rgba(175,163,238,.09),transparent 55%),#171a1f;box-shadow:inset 0 1px 0 rgba(255,255,255,.04); }
.cm-home-sell-icon {width:38px;height:38px;flex:0 0 38px;border-radius:13px;display:grid;place-items:center;background:rgba(177,166,236,.12);border:1px solid rgba(177,166,236,.18);}
.cm-home-sell-icon svg {width:20px;height:20px;fill:none;stroke:#c5baf7;stroke-width:1.9;stroke-linecap:round;}
.cm-home-sell-cta div {flex:1;min-width:0}.cm-home-sell-cta h2{margin:0;font-size:12.5px;font-weight:800;color:#f1f3f7}.cm-home-sell-cta p{margin:4px 0 0;font-size:10px;line-height:1.6;color:#9299a4}.cm-home-sell-cta button{flex-shrink:0;border:1px solid rgba(199,187,255,.18);background:#b6a8ed;color:#191625;border-radius:999px;padding:9px 11px;font-size:10px;font-weight:800;display:flex;gap:5px;align-items:center;}
.cm-home-footer-note {padding:24px 14px 8px;text-align:center;color:#626a75;font-size:10px;letter-spacing:.02em;}
.cm-home-skeleton {padding:18px 14px 35px}.cm-home-skeleton .sk-hero{height:79px;border-radius:18px;margin:0 4px 17px}.cm-home-skeleton .sk-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.cm-home-skeleton .sk-tiles span{grid-column:span 2;height:142px;border-radius:21px}.cm-home-skeleton .sk-tiles span:nth-child(n+4){grid-column:span 3;height:118px}.cm-home-skeleton .sk-search{height:62px;border-radius:19px;margin-top:16px}.cm-home-skeleton .sk-bottom{height:95px;border-radius:20px;margin-top:16px}
@media (min-width: 500px) { .cm-home-page {max-width:520px;margin:0 auto}.cm-home-tile {min-height:150px}.cm-home-tile-wide,.cm-home-tile-account {min-height:124px}.cm-home-hero{padding-top:25px} }
@media (max-width: 365px) { .cm-home-hero {padding-inline:15px}.cm-home-services{gap:8px;padding-inline:10px}.cm-home-tile{padding:12px 9px;min-height:132px;border-radius:18px}.cm-home-tile-copy strong{font-size:12.5px}.cm-home-tile-copy small{font-size:9px}.cm-home-tile-wide,.cm-home-tile-account{min-height:110px}.cm-home-art{transform:scale(.88);transform-origin:bottom left}.cm-home-car-art{width:145%;left:-42%}.cm-home-sell-cta{gap:8px;padding:14px 10px}.cm-home-sell-cta button{padding:8px 8px;font-size:9.5px} }

/* ================================================================
   HOME SERVICE TILES — layout correction
   Fix: the tile copy was participating in the button's flex layout,
   so browser-level button alignment vertically centered it over the
   decorative artwork. Keep copy in a dedicated top zone and artwork
   in a separate bottom zone. This override intentionally sits last.
   ================================================================ */
.cm-home-services {
  align-items: stretch;
  grid-auto-flow: row;
  column-gap: 10px;
  row-gap: 10px;
  padding: 3px 14px 17px;
}
.cm-home-tile,
.cm-home-tile:visited {
  display: block !important;
  box-sizing: border-box;
  min-width: 0;
  min-height: 142px;
  padding: 0 !important;
  align-self: stretch;
  text-align: right;
  direction: rtl;
  border-radius: 22px;
  border: 1px solid rgba(202,211,225,.14);
  background-color: #191c21;
  background-image: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.018) 62%, rgba(255,255,255,.028));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.065), 0 7px 18px rgba(0,0,0,.14);
  overflow: hidden;
  isolation: isolate;
}
.cm-home-tile::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 1px;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(125deg, rgba(255,255,255,.025), transparent 42%);
}
.cm-home-tile-copy {
  position: absolute !important;
  z-index: 5 !important;
  top: 15px !important;
  right: 13px !important;
  left: 13px !important;
  bottom: auto !important;
  width: auto !important;
  max-width: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 5px !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: right !important;
  direction: rtl;
  pointer-events: none;
}
.cm-home-tile-copy strong {
  display: block;
  max-width: 100%;
  white-space: normal !important;
  overflow-wrap: anywhere;
  font-size: 14px !important;
  line-height: 1.45 !important;
  font-weight: 820 !important;
  letter-spacing: -.035em;
  color: #f2f4f7;
  text-shadow: 0 1px 8px rgba(0,0,0,.16);
}
.cm-home-tile-copy small {
  display: block;
  max-width: 100%;
  white-space: normal !important;
  overflow-wrap: anywhere;
  font-size: 10px !important;
  line-height: 1.65 !important;
  font-weight: 450 !important;
  color: #a0a7b1 !important;
}
.cm-home-tile-listings {
  background-color: #191c21;
  background-image: linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012) 60%), #191c21;
}
.cm-home-tile-listings::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  background: linear-gradient(180deg, #191c21 0%, rgba(25,28,33,.97) 34%, rgba(25,28,33,.48) 62%, rgba(12,14,17,.12) 100%);
  pointer-events: none;
}
.cm-home-car-art {
  position: absolute;
  z-index: 1;
  left: -20%;
  right: auto;
  bottom: 0;
  width: 120%;
  height: 48%;
  transform: none;
  opacity: .78;
  overflow: hidden;
  mask-image: linear-gradient(to bottom, transparent 0%, #000 35%, #000 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 35%, #000 100%);
}
.cm-home-car-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 56%;
  border-radius: 0;
  filter: saturate(.24) brightness(.68) contrast(1.05);
}
.cm-home-tile-listings .cm-home-tile-copy { right: 13px !important; left: 13px !important; }
.cm-home-tile-mark {
  top: auto !important;
  right: 10px !important;
  bottom: 10px !important;
  z-index: 4 !important;
  width: 29px;
  height: 29px;
  border-radius: 10px;
  background: rgba(18,21,25,.82);
  border-color: rgba(230,235,243,.15);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.cm-home-tile-mark svg { width: 18px; height: 18px; }
.cm-home-art {
  z-index: 1;
  left: 5px;
  right: auto;
  bottom: 3px;
  width: 75px;
  height: 56px;
  opacity: .72;
  transform: scale(.88);
  transform-origin: bottom left;
  pointer-events: none;
}
.cm-home-art-qa { left: 0; bottom: 0; width: 76px; height: 60px; }
.cm-home-bubble { box-shadow: inset 0 1px 0 rgba(255,255,255,.075); }
.cm-home-bubble-back { width: 33px; height: 31px; right: 8px; top: 4px; font-size: 16px; }
.cm-home-bubble-front { width: 49px; height: 34px; left: 3px; bottom: 3px; font-size: 10px; }
.cm-home-art-messages { left: 0; width: 75px; height: 56px; }
.cm-home-message-one { width: 43px; height: 30px; top: 5px; left: 16px; }
.cm-home-message-two { width: 37px; height: 24px; bottom: 4px; right: 3px; }
.cm-home-message-line { width: 20px; left: 12px; top: 17px; }
.cm-home-tile-wide { grid-column: span 3; min-height: 118px; }
.cm-home-tile-account { min-height: 118px; }
.cm-home-tile-account .cm-home-tile-copy,
.cm-home-tile-soon .cm-home-tile-copy { top: 17px !important; right: 16px !important; left: 16px !important; }
.cm-home-art-account { left: 10px; bottom: 5px; width: 84px; height: 61px; transform: scale(.86); transform-origin: bottom left; opacity: .64; }
.cm-home-avatar-orb { top: 2px; left: 3px; width: 45px; height: 45px; }
.cm-home-avatar-orb svg { width: 23px; height: 23px; }
.cm-home-account-glass { bottom: 3px; width: 43px; height: 28px; }
.cm-home-tile-arrow { top: 12px; left: 13px; z-index: 4; font-size: 15px; color: #aab1bb; }
.cm-home-tile-soon {
  background-image: linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012)), #15181c;
  filter: none;
}
.cm-home-tile-soon:disabled { opacity: .88; }
.cm-home-soon-badge { top: 12px; left: 12px; z-index: 5; padding: 5px 8px; font-size: 9px; background: rgba(255,255,255,.045); }
.cm-home-art-soon { left: 7px; bottom: -2px; height: 48px; width: auto; transform: rotate(-8deg); filter: none; opacity: .48; }
.cm-home-art-soon span { width: 13px; border-radius: 8px 8px 4px 4px; }
.cm-home-art-soon span:nth-child(1){height:19px}
.cm-home-art-soon span:nth-child(2){height:37px}
.cm-home-art-soon span:nth-child(3){height:29px}
.cm-home-art-soon span:nth-child(4){height:44px}
.cm-home-tile:focus-visible { outline: 2px solid rgba(218,224,233,.7); outline-offset: 3px; }
@media (hover:hover) {
  .cm-home-tile:not(:disabled):hover { border-color: rgba(210,220,233,.24); background-color: #1c2026; }
}
@media (min-width:500px) {
  .cm-home-tile { min-height: 150px; }
  .cm-home-tile-wide, .cm-home-tile-account { min-height: 124px; }
}
@media (max-width:365px) {
  .cm-home-services { column-gap: 8px; row-gap: 8px; padding-inline: 10px; }
  .cm-home-tile { min-height: 132px; border-radius: 18px; }
  .cm-home-tile-copy { top: 12px !important; right: 10px !important; left: 10px !important; gap: 4px !important; }
  .cm-home-tile-copy strong { font-size: 12.5px !important; }
  .cm-home-tile-copy small { font-size: 9px !important; }
  .cm-home-tile-wide, .cm-home-tile-account { min-height: 110px; }
}

/* v104 — route-specific bottom dock requested by user
   Home: no dock. Listings: only sell, saved, messages, account. */
body:has(#pageContent > [data-page="home"]) #bottomDock {
  display: none !important;
}
body:has(#pageContent > [data-page="listings"]) #bottomDock [data-dock="listings"],
body:has(#pageContent > [data-page="listings"]) #bottomDock [data-dock="qa"] {
  display: none !important;
}
body:has(#pageContent > [data-page="listings"]) #bottomDock .bottom-dock-inner {
  justify-content: space-around;
}

/* v105 — Home service tiles: large faded background marks, clear foreground copy.
   Keep the original illustrated language, but push artwork behind the copy and
   increase text contrast so the tiles feel intentional rather than cluttered. */
.cm-home-tile {
  background-color: #191c21 !important;
  background-image: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.018) 58%, rgba(255,255,255,.03)), #191c21 !important;
  border-color: rgba(205,214,228,.16) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.075), 0 8px 22px rgba(0,0,0,.2) !important;
}
.cm-home-tile-copy {
  z-index: 6 !important;
  top: 15px !important;
  right: 13px !important;
  left: 13px !important;
  gap: 5px !important;
  filter: none !important;
}
.cm-home-tile-copy strong {
  color: #fbfcfe !important;
  font-size: 14.5px !important;
  line-height: 1.45 !important;
  font-weight: 850 !important;
  text-shadow: 0 2px 9px rgba(0,0,0,.68), 0 1px 2px rgba(0,0,0,.8) !important;
}
.cm-home-tile-copy small {
  color: #c0c6d0 !important;
  font-size: 10.5px !important;
  line-height: 1.65 !important;
  font-weight: 500 !important;
  text-shadow: 0 1px 7px rgba(0,0,0,.85), 0 1px 2px rgba(0,0,0,.9) !important;
}
/* Big but quiet illustrations: recognisable in the background, never competing. */
.cm-home-art {
  z-index: 1 !important;
  opacity: .19 !important;
  filter: saturate(.62) !important;
  pointer-events: none !important;
}
.cm-home-art-qa {
  left: -8px !important;
  bottom: -7px !important;
  width: 112px !important;
  height: 91px !important;
  transform: none !important;
  opacity: .2 !important;
}
.cm-home-bubble-back {
  width: 54px !important;
  height: 48px !important;
  right: 13px !important;
  top: 8px !important;
  font-size: 22px !important;
  border-radius: 19px !important;
}
.cm-home-bubble-front {
  width: 78px !important;
  height: 53px !important;
  left: 2px !important;
  bottom: 2px !important;
  font-size: 13px !important;
  border-radius: 22px !important;
}
.cm-home-art-messages {
  left: -10px !important;
  bottom: -7px !important;
  width: 118px !important;
  height: 92px !important;
  transform: none !important;
  opacity: .18 !important;
}
.cm-home-message-one {
  width: 72px !important;
  height: 52px !important;
  top: 8px !important;
  left: 23px !important;
  border-radius: 18px !important;
}
.cm-home-message-two {
  width: 62px !important;
  height: 42px !important;
  bottom: 4px !important;
  right: 3px !important;
  border-radius: 17px !important;
}
.cm-home-message-line {
  width: 35px !important;
  height: 3px !important;
  left: 20px !important;
  top: 22px !important;
  box-shadow: 0 9px 0 rgba(240,242,248,.35) !important;
}
.cm-home-art-account {
  left: -6px !important;
  bottom: -7px !important;
  width: 140px !important;
  height: 104px !important;
  transform: none !important;
  opacity: .17 !important;
}
.cm-home-avatar-orb {
  top: 6px !important;
  left: 7px !important;
  width: 63px !important;
  height: 63px !important;
}
.cm-home-avatar-orb svg { width: 31px !important; height: 31px !important; }
.cm-home-account-glass {
  right: 1px !important;
  bottom: 7px !important;
  width: 70px !important;
  height: 48px !important;
  border-radius: 17px !important;
}
.cm-home-art-soon {
  left: -8px !important;
  bottom: -8px !important;
  height: 82px !important;
  gap: 7px !important;
  transform: rotate(-8deg) !important;
  opacity: .17 !important;
}
.cm-home-art-soon span { width: 19px !important; border-radius: 10px 10px 5px 5px !important; }
.cm-home-art-soon span:nth-child(1) { height: 33px !important; }
.cm-home-art-soon span:nth-child(2) { height: 63px !important; }
.cm-home-art-soon span:nth-child(3) { height: 49px !important; }
.cm-home-art-soon span:nth-child(4) { height: 77px !important; }
.cm-home-soon-badge {
  color: #c1c7d0 !important;
  background: rgba(25,28,33,.82) !important;
  border-color: rgba(220,228,240,.18) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.22) !important;
}
/* The car photo is also a large, faded background mark under a stronger text veil. */
.cm-home-tile-listings::after {
  z-index: 2 !important;
  background: linear-gradient(180deg,
    rgba(25,28,33,.99) 0%,
    rgba(25,28,33,.96) 33%,
    rgba(17,19,23,.72) 58%,
    rgba(12,14,17,.48) 100%) !important;
}
.cm-home-car-art {
  z-index: 1 !important;
  left: -22% !important;
  bottom: -2px !important;
  width: 140% !important;
  height: 68% !important;
  opacity: .8 !important;
  mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.28) 16%, #000 43%, #000 100%) !important;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.28) 16%, #000 43%, #000 100%) !important;
}
.cm-home-car-art img {
  filter: saturate(.22) brightness(.62) contrast(1.05) !important;
}
.cm-home-tile-mark {
  z-index: 4 !important;
  opacity: .82 !important;
  background: rgba(18,21,25,.78) !important;
}
.cm-home-tile-arrow { z-index: 5 !important; }
.cm-home-tile-account .cm-home-tile-copy,
.cm-home-tile-soon .cm-home-tile-copy { top: 15px !important; right: 15px !important; left: 15px !important; }
.cm-home-tile-wide { min-height: 122px !important; }
.cm-home-tile-account { min-height: 122px !important; }
@media (max-width:365px) {
  .cm-home-tile-copy { top: 12px !important; right: 10px !important; left: 10px !important; }
  .cm-home-tile-copy strong { font-size: 13px !important; }
  .cm-home-tile-copy small { font-size: 9.5px !important; }
  .cm-home-art-qa { width: 102px !important; height: 83px !important; }
  .cm-home-art-messages { width: 107px !important; height: 84px !important; }
  .cm-home-art-account { width: 127px !important; height: 96px !important; }
  .cm-home-art-soon { height: 72px !important; }
  .cm-home-art-soon span:nth-child(1) { height: 27px !important; }
  .cm-home-art-soon span:nth-child(2) { height: 54px !important; }
  .cm-home-art-soon span:nth-child(3) { height: 42px !important; }
  .cm-home-art-soon span:nth-child(4) { height: 67px !important; }
}


/* v106 — remove the redundant home eyebrow and give the Listings tile more width.
   Nested rows let the top three service tiles use custom proportions without
   disturbing the two equal-width tiles beneath them. */
.cm-home-hero h1 { margin-top: 0 !important; }
.cm-home-services {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
.cm-home-services-primary {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 10px;
  direction: rtl;
  min-width: 0;
}
.cm-home-services-secondary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  direction: rtl;
  min-width: 0;
}
.cm-home-services-primary > .cm-home-tile,
.cm-home-services-secondary > .cm-home-tile {
  grid-column: auto !important;
  width: 100%;
  min-width: 0;
}
.cm-home-services-primary > .cm-home-tile-listings { min-height: 142px; }
.cm-home-services-primary > .cm-home-tile-qa,
.cm-home-services-primary > .cm-home-tile-messages { min-height: 142px; }
.cm-home-services-secondary > .cm-home-tile { min-height: 122px !important; }
@media (max-width: 365px) {
  .cm-home-services-primary { grid-template-columns: 1.14fr 1fr 1fr; gap: 8px; }
  .cm-home-services-secondary { gap: 8px; }
  .cm-home-services { gap: 8px !important; }
  .cm-home-services-primary > .cm-home-tile { min-height: 132px; }
}

/* v107 — Put only the service title below each illustrated tile; remove captions. */
.cm-home-services-primary > .cm-home-tile,
.cm-home-services-secondary > .cm-home-tile {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 7px !important;
  align-self: stretch !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #f4f6fa !important;
  text-align: center !important;
  white-space: normal !important;
  cursor: pointer;
}
.cm-home-tile-surface {
  display: block;
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  width: 100%;
  height: 120px;
  flex: 0 0 120px;
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(205,214,228,.17);
  background: linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.018) 60%,rgba(255,255,255,.035)), #191c21;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.075), 0 8px 22px rgba(0,0,0,.2);
}
.cm-home-tile-surface::before {
  content: "";
  position: absolute;
  inset: 1px;
  z-index: 0;
  border-radius: inherit;
  background: linear-gradient(125deg,rgba(255,255,255,.03),transparent 45%);
  pointer-events: none;
}
.cm-home-tile-label {
  position: relative;
  z-index: 6;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0 2px 1px;
  box-sizing: border-box;
  color: #f5f6f9;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
  text-align: center;
  text-shadow: 0 1px 0 rgba(0,0,0,.4);
  overflow-wrap: anywhere;
}
.cm-home-tile .cm-home-tile-copy { display: none !important; }
.cm-home-tile-listings .cm-home-tile-surface {
  background: linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012) 60%), #191c21;
}
.cm-home-tile-listings .cm-home-tile-surface::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg,rgba(25,28,33,.38) 0%,rgba(25,28,33,.22) 30%,rgba(12,14,17,.22) 100%);
}
.cm-home-tile-listings .cm-home-car-art {
  position: absolute;
  z-index: 1;
  left: -20%;
  bottom: -4px;
  width: 142%;
  height: 88%;
  opacity: .86;
  mask-image: linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.35) 12%,#000 38%,#000 100%);
  -webkit-mask-image: linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.35) 12%,#000 38%,#000 100%);
}
.cm-home-tile-listings .cm-home-car-art img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: saturate(.22) brightness(.7) contrast(1.05);
}
.cm-home-tile-listings .cm-home-tile-mark { top: auto !important; right: 9px !important; bottom: 9px !important; z-index: 4 !important; }
.cm-home-tile-surface .cm-home-art { z-index: 1 !important; opacity: .2 !important; }
.cm-home-tile-surface .cm-home-art-qa { left:-8px !important; bottom:-9px !important; width:112px !important; height:94px !important; }
.cm-home-tile-surface .cm-home-art-messages { left:-10px !important; bottom:-9px !important; width:118px !important; height:96px !important; }
.cm-home-tile-surface .cm-home-art-account { left:-5px !important; bottom:-8px !important; width:142px !important; height:106px !important; }
.cm-home-tile-surface .cm-home-art-soon { left:-8px !important; bottom:-8px !important; height:82px !important; opacity:.17 !important; }
.cm-home-tile-surface .cm-home-tile-arrow { top:10px !important; left:11px !important; z-index:4 !important; }
.cm-home-tile-surface .cm-home-soon-badge { top:9px !important; left:9px !important; z-index:4 !important; }
.cm-home-tile-soon:disabled { opacity: 1 !important; }
.cm-home-tile-soon:disabled .cm-home-tile-surface { opacity: .82; }
.cm-home-tile:not(:disabled):active .cm-home-tile-surface { transform: scale(.975); }
.cm-home-tile:focus-visible .cm-home-tile-surface { outline: 2px solid rgba(218,224,233,.7); outline-offset: 3px; }
@media (hover:hover) {
  .cm-home-tile:not(:disabled):hover .cm-home-tile-surface { border-color: rgba(210,220,233,.28); }
  .cm-home-tile:not(:disabled):hover .cm-home-tile-label { color: #fff; }
}
.cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface { height: 128px; flex-basis: 128px; }
.cm-home-services-primary > .cm-home-tile-qa .cm-home-tile-surface,
.cm-home-services-primary > .cm-home-tile-messages .cm-home-tile-surface { height: 128px; flex-basis: 128px; }
.cm-home-services-secondary > .cm-home-tile .cm-home-tile-surface { height: 100px; flex-basis: 100px; }
@media (min-width:500px) {
  .cm-home-tile-surface { height: 140px; flex-basis: 140px; }
  .cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface,
  .cm-home-services-primary > .cm-home-tile-qa .cm-home-tile-surface,
  .cm-home-services-primary > .cm-home-tile-messages .cm-home-tile-surface { height: 140px; flex-basis: 140px; }
  .cm-home-services-secondary > .cm-home-tile .cm-home-tile-surface { height: 114px; flex-basis: 114px; }
}
@media (max-width:365px) {
  .cm-home-tile-surface { height: 108px; flex-basis: 108px; border-radius: 18px; }
  .cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface,
  .cm-home-services-primary > .cm-home-tile-qa .cm-home-tile-surface,
  .cm-home-services-primary > .cm-home-tile-messages .cm-home-tile-surface { height: 108px; flex-basis: 108px; }
  .cm-home-services-secondary > .cm-home-tile .cm-home-tile-surface { height: 92px; flex-basis: 92px; }
  .cm-home-tile-label { font-size: 12px; line-height: 1.4; }
}
/* The visual surface now owns its glass overlays; do not draw the old overlay on the outer button. */
.cm-home-tile::before,
.cm-home-tile::after { content: none !important; display: none !important; }


/* v108 — Listings tile at double width; only one companion tile beside it.
   The remaining three services form a clean three-column row underneath. */
.cm-home-services-primary {
  display: grid !important;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) !important;
  gap: 10px !important;
  direction: rtl !important;
  align-items: start !important;
}
.cm-home-services-primary > .cm-home-tile-listings {
  grid-column: auto !important;
  min-width: 0 !important;
}
.cm-home-services-primary > .cm-home-tile-qa {
  grid-column: auto !important;
  min-width: 0 !important;
}
.cm-home-services-secondary {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  direction: rtl !important;
  align-items: start !important;
}
.cm-home-services-secondary > .cm-home-tile {
  grid-column: auto !important;
  min-width: 0 !important;
}
.cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface {
  width: 100% !important;
}
@media (max-width: 365px) {
  .cm-home-services-primary { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) !important; gap: 8px !important; }
  .cm-home-services-secondary { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
}


/* ===== Compact listing card (.xcard) — tidy, conventional layout =====
   Photo (with overlay tags) on one side; info column on the other:
   brand → title → chips (all same height) → km → price pinned to the
   bottom edge, aligned with the photo's bottom. Seller tag (شخصی/نمایشگاه)
   now lives on the photo instead of floating in the info column. */
.xcard { align-items:center; }
.xcard-body { align-self:center; height:152px; padding:1px 2px; gap:6px; justify-content:flex-start; align-items:stretch; text-align:start; }
.xcard-row-top { justify-content:flex-start; min-height:18px; }
.xcard-brand { font-size:12px; color:#a3a7ab; }
.xcard-brand-avatar { width:18px; height:18px; }
.xcard-title { font-size:15px; line-height:1.35; }
.xcard-title-text { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.xcard-badge-stack { gap:5px; }
.xcard-year-badge, .xcard-hybrid-badge, .xcard-trim-badge,
.xcard-badge-stack > .xpatch { height:22px; padding:0 10px; font-size:11px; line-height:1; box-sizing:border-box; display:inline-flex; align-items:center; }
.xcard-row-mid { gap:0; }
.xcard-spec { font-size:12px; color:#a3a7ab; font-weight:600; gap:5px; }
.xcard-row-bottom { margin-top:auto; padding-top:0; justify-content:flex-start; }
.xcard-price { flex-direction:column; align-items:flex-start; gap:2px; }
.xcard-price-amount { font-size:19px; line-height:1.1; }
.xcard-price-unit { font-size:10.5px; }
.xcard-media .seller-tag { position:absolute; z-index:2; bottom:7px; inset-inline-start:7px; height:21px; padding:0 8px; font-size:10px; background:rgba(20,22,24,.66); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.xcard-media .seller-tag-dealer, .theme-light .xcard-media .seller-tag-dealer { background:rgba(20,22,24,.66); color:#8dbcff; }
.xcard-media .seller-tag-personal, .theme-light .xcard-media .seller-tag-personal { background:rgba(20,22,24,.66); color:#fff; }
.xcard-promo-badge { top:7px; inset-inline-start:7px; height:21px; display:inline-flex; align-items:center; padding:0 8px; font-size:10px; }
.theme-light .xcard-brand, .theme-light .xcard-spec { color:#7d8186; }
@media (max-width:430px) {
  .xcard-body { height:140px; gap:5px; }
  .xcard-price-amount { font-size:18px; }
}

/* ===== Listing card v2 (.xcd) — the approved design, scaled proportionally =====
   One layout at every width: photo left (slanted inner edge), info right.
   All sizes are in cqw (1% of the card's width), so the card keeps the exact
   proportions of the design on any phone — same footprint as the old card. */
.xcd-wrap { container-type:inline-size; max-width:760px; margin-inline:auto; }
.xcd { position:relative; display:flex; flex-direction:row-reverse; align-items:stretch; box-sizing:border-box; padding:2.3cqw; border-radius:5.6cqw; background:linear-gradient(150deg,#161c27 0%,#0d1219 72%); border:1px solid rgba(255,255,255,.07); box-shadow:0 12px 30px rgba(0,0,0,.4); overflow:hidden; cursor:pointer; color:#fff; transition:transform .18s cubic-bezier(.22,1,.36,1); }
.xcd:active { transform:scale(.985); }
.xcd :where(button) { font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
.xcd-ic { width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto; }

/* photo */
.xcd-photo { position:relative; flex:0 0 55%; width:55%; border-radius:4.4cqw; overflow:hidden; background:#1a1f27; isolation:isolate; clip-path:polygon(0 0,100% 0,84% 100%,0 100%); }
.xcd-photo-img, .xcd-photo-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.xcd-photo .seller-tag { position:absolute; z-index:3; top:2cqw; inset-inline-end:auto; left:2cqw; height:4.4cqw; padding:0 2.3cqw; font-size:max(7px,1.8cqw); gap:.9cqw; border-radius:999px; -webkit-backdrop-filter:none; backdrop-filter:none; }
.xcd-photo .seller-tag svg { width:2cqw; height:2cqw; }
.xcd-photo .seller-tag-dealer, .theme-light .xcd-photo .seller-tag-dealer { background:#2f5bea; color:#fff; }
.xcd-photo .seller-tag-personal, .theme-light .xcd-photo .seller-tag-personal { background:rgba(15,18,24,.72); color:#fff; }
.xcd-flag { position:absolute; z-index:3; top:2cqw; right:9cqw; height:4cqw; display:inline-flex; align-items:center; padding:0 1.9cqw; border-radius:999px; font-size:max(6.5px,1.5cqw); font-weight:800; background:rgba(15,18,24,.72); color:#e9ecef; }
.xcd-flag--urgent { background:#dc2626; color:#fff; right:auto; left:2cqw; top:7.4cqw; }
.xcd-count { position:absolute; z-index:3; left:2cqw; bottom:2cqw; display:flex; align-items:center; gap:2.2cqw; height:4.9cqw; padding:0 2.4cqw; border-radius:999px; background:rgba(12,15,20,.74); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); font-size:max(7px,1.7cqw); font-weight:700; color:#e9ecef; }
.xcd-count-text { display:inline-flex; align-items:center; gap:.9cqw; white-space:nowrap; }
.xcd-count-text .xcd-ic { font-size:max(9px,2.2cqw); color:#8aa4ff; }
.xcd-dots { display:inline-flex; gap:1cqw; }
.xcd-dots i { width:1.2cqw; height:1.2cqw; border-radius:50%; background:rgba(255,255,255,.28); }
.xcd-dots i.is-on { background:#3b6cf5; }

/* info column */
.xcd-info { flex:1; min-width:0; display:flex; flex-direction:column; justify-content:space-between; gap:1.5cqw; padding:.8cqw 1.8cqw .8cqw .4cqw; }
.xcd-head { display:flex; align-items:center; justify-content:space-between; gap:2cqw; min-height:4.5cqw; }
.xcd-brandchip { display:inline-flex; align-items:center; gap:1cqw; height:4.5cqw; padding:0 2.6cqw; border-radius:999px; background:#1b222d !important; border:1px solid rgba(255,255,255,.07) !important; font-size:max(7px,1.75cqw); font-weight:800; color:#e6e9ee; }
.xcd-brandchip .xcd-ic { font-size:max(8px,2cqw); }
.xcd-logo { height:3.3cqw; max-width:42%; width:auto; object-fit:contain; filter:brightness(0) invert(1); opacity:.95; }
.xcd-logo--badge { filter:none !important; opacity:1 !important; width:4.6cqw; height:4.6cqw; padding:.5cqw; box-sizing:border-box; border-radius:50%; background:#e9ecef; object-fit:contain; }
.xcd-titlerow { display:flex; align-items:center; justify-content:space-between; gap:1.5cqw; }
.xcd-title { flex:1; min-width:0; margin:0; font-size:max(12px,4.1cqw); font-weight:800; line-height:1.2; color:#fff; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.xcd-heart { flex:0 0 auto; width:4.9cqw; height:4.9cqw; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.14) !important; background:#161c26 !important; color:#e6e9ee; }
.xcd-heart .xcd-ic { font-size:max(9px,2.3cqw); }
.xcd-heart.is-on { color:#ff5a7a; border-color:rgba(255,90,122,.5) !important; }
.xcd-heart.is-on .xcd-ic { fill:currentColor; }
.xcd-chips { display:flex; flex-wrap:nowrap; overflow:hidden; gap:1.1cqw; justify-content:flex-start; padding-bottom:1.5cqw; border-bottom:1px solid rgba(255,255,255,.08); }
.xcd-chip { display:inline-flex; align-items:center; gap:.6cqw; height:4.2cqw; padding:0 2.4cqw; border-radius:999px; font-size:max(7.5px,2.2cqw); font-weight:800; line-height:1; white-space:nowrap; box-sizing:border-box; }
.xcd-chip--year { background:#243a1f; color:#a7ee5f; }
.xcd-chip--hybrid { background:rgba(37,99,235,.2); color:#60a5fa; }
.xcd-chip--trade, .xcd-chip--paint, .xcd-chip--ribbon { font-size:max(6.5px,1.6cqw); padding:0 1.8cqw; }
.xcd-chip--trade { background:rgba(45,212,191,.16); color:#2dd4bf; }
.xcd-chip--paint { background:rgba(251,191,36,.16); color:#fbbf24; }
.xcd-chip--ribbon { background:rgba(255,255,255,.1); color:#d6d9de; max-width:16cqw; overflow:hidden; text-overflow:ellipsis; }

/* specs */
.xcd-specs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.xcd-spec { display:flex; flex-direction:column; align-items:center; gap:.5cqw; min-width:0; padding:0 .4cqw; text-align:center; }
.xcd-spec + .xcd-spec { border-inline-start:1px solid rgba(255,255,255,.08); }
.xcd-spec .xcd-ic { font-size:max(11px,2.7cqw); color:#aeb6c4; }
.xcd-spec-label { font-size:max(6px,1.4cqw); color:#9aa3b2; font-weight:600; white-space:nowrap; }
.xcd-spec-val { font-size:max(6.5px,1.45cqw); font-weight:800; color:#fff; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* footer */
.xcd-foot { display:flex; gap:1.4cqw; align-items:stretch; }
.xcd-km { flex:1 1 0; min-width:0; display:flex; align-items:center; gap:1.2cqw; padding:1.2cqw 1.8cqw; border-radius:3.4cqw; background:#141a24; border:1px solid rgba(255,255,255,.07); }
.xcd-km > .xcd-ic { font-size:max(14px,3.4cqw); color:#aeb6c4; }
.xcd-km-text { display:flex; flex-direction:column; min-width:0; line-height:1.15; }
.xcd-km-label { font-size:max(6px,1.35cqw); color:#9aa3b2; font-weight:600; }
.xcd-km-val { font-size:max(10px,2.6cqw); font-weight:800; color:#fff; }
.xcd-km-unit { font-size:max(6px,1.3cqw); color:#8a93a3; }
.xcd-price { flex:1.6 1 0; min-width:0; display:flex; margin-inline-start:.8cqw; border-radius:3.4cqw; border:1.5px solid #8be04e; background:linear-gradient(135deg,#1f4a27 0%,#0f2a1d 80%); transform:skewX(-8deg); box-shadow:0 0 14px rgba(139,224,78,.12); }
.xcd-price-in { flex:1; min-width:0; transform:skewX(8deg); padding:1cqw 2.2cqw; display:flex; flex-direction:column; justify-content:center; gap:.3cqw; }
.xcd-price-label { display:inline-flex; align-items:center; gap:1cqw; font-size:max(7px,1.8cqw); font-weight:700; color:#e9f6e2; }
.xcd-tagic { width:max(9px,2.2cqw); height:max(9px,2.2cqw); fill:#8be04e; }
.xcd-tagic circle { fill:#0f2418; }
.xcd-price-row { display:flex; align-items:baseline; flex-wrap:nowrap; gap:1cqw; }
.xcd-price-amount { font-size:max(14px,4.3cqw); font-weight:800; line-height:1.05; color:#fff; }
.xcd-price--text .xcd-price-amount { font-size:max(11px,3.2cqw); }
.xcd-price-unit { font-size:max(7px,1.7cqw); font-weight:700; color:#cfe3c4; white-space:nowrap; }

/* light theme */
.theme-light .xcd { background:#fff; border-color:#dfe3ea; color:#171b22; box-shadow:0 8px 22px rgba(30,40,60,.1); }
.theme-light .xcd-title, .theme-light .xcd-spec-val, .theme-light .xcd-km-val { color:#171b22; }
.theme-light .xcd-brandchip, .theme-light .xcd-km, .theme-light .xcd-heart { background:#f1f3f7 !important; color:#2a303a; border-color:#dfe3ea !important; }
.theme-light .xcd-logo:not(.xcd-logo--badge) { filter:brightness(0); opacity:.85; }
.theme-light .xcd-chips, .theme-light .xcd-spec + .xcd-spec { border-color:#e4e7ed; }
.theme-light .xcd-price { background:linear-gradient(135deg,#e6f6dc,#d3efc2); }
.theme-light .xcd-price-label, .theme-light .xcd-price-amount { color:#14301a; }
.theme-light .xcd-price-unit { color:#3f6a3a; }
.theme-light .xcd-chip--year { background:#e3f4d2; color:#3b7a12; }
.explore-list:not([data-list-style="large"]) > .swipe-row { contain-intrinsic-size:auto 175px; }

/* specs row + heart removed; keep the old card footprint; no text may spill out of its box */
.xcd { min-height:46cqw; }
.xcd-info { gap:2cqw; }
.xcd-chips { border-bottom:0; padding-bottom:0; }
.xcd-foot { margin-top:auto; gap:1.2cqw; }
.xcd-km { flex:1 1 0; padding:1.2cqw 1.6cqw; gap:1cqw; overflow:hidden; }
.xcd-km > .xcd-ic { font-size:max(12px,3cqw); }
.xcd-km-text { flex:1; align-items:flex-start; }
.xcd-km-val { font-size:max(9px,2.4cqw); white-space:nowrap; }
.xcd-km-label, .xcd-km-unit { white-space:nowrap; }
.xcd-price { flex:2 1 0; margin-inline-start:1cqw; overflow:hidden; }
.xcd-price-in { padding:1cqw 1.8cqw 1cqw 2.4cqw; overflow:hidden; }
.xcd-price-row { gap:.8cqw; min-width:0; }
.xcd-price-amount { font-size:max(13px,3.8cqw); white-space:nowrap; }
.xcd-price-unit { font-size:max(6.5px,1.5cqw); }
.xcd-title { font-size:max(12px,4.1cqw); }
.xcd { min-height:50cqw; }
.xcd-chips { flex-wrap:wrap; overflow:visible; row-gap:1cqw; }
.xcd-foot { gap:1.2cqw; }
.xcd-km { flex:1.2 1 0; padding:1.2cqw 1.4cqw; gap:.8cqw; }
.xcd-km > .xcd-ic { font-size:max(10px,2.5cqw); }
.xcd-km-val { font-size:max(8.5px,2.2cqw); }
.xcd-km-label, .xcd-km-unit { font-size:max(6px,1.25cqw); }
.xcd-price { flex:1.8 1 0; }
.xcd-price-in { padding:1cqw 2cqw 1cqw 2.2cqw; }
.xcd-price-row { flex-direction:column; align-items:flex-start; gap:.2cqw; }
.xcd-price-amount { font-size:max(13px,3.8cqw); line-height:1; }
.xcd-price-unit { font-size:max(6.5px,1.55cqw); line-height:1.1; }
/* final sizing pass: fill the card height evenly */
.xcd { min-height:46cqw; }
.xcd-info { justify-content:space-between; padding:1.2cqw 1.8cqw 1.2cqw .4cqw; }
.xcd-head { min-height:5.2cqw; }
.xcd-brandchip { height:5.2cqw; font-size:max(8px,2cqw); }
.xcd-logo { height:3.8cqw; }
.xcd-logo--badge { width:5.2cqw; height:5.2cqw; }
.xcd-title { font-size:max(13px,4.7cqw); }
.xcd-chip { height:4.9cqw; font-size:max(8px,2.4cqw); padding:0 2.7cqw; }
.xcd-chip--trade, .xcd-chip--paint, .xcd-chip--ribbon { font-size:max(7px,1.8cqw); }
.xcd-foot { margin-top:0; min-height:12.5cqw; }
.xcd-km > .xcd-ic { font-size:max(11px,2.8cqw); }
.xcd-km-val { font-size:max(9px,2.5cqw); }
.xcd-km-label, .xcd-km-unit { font-size:max(6.5px,1.4cqw); }
.xcd-price-label { font-size:max(7.5px,1.9cqw); }
.xcd-price-amount { font-size:max(14px,4.4cqw); }
.xcd-price-unit { font-size:max(7px,1.7cqw); }

/* ===== Listing card v2 — revision: spacing, no brand button, km as patch, glass price ===== */
/* 1) title/brand logo breathe away from the photo edge */
.xcd-info { padding:1.2cqw 1.8cqw 1.2cqw 4.2cqw; }
/* 2) brand button removed: logo sits alone at the start of the info column */
.xcd-head { direction:ltr; justify-content:flex-start; }
/* 3) chips: one height, one font size, one gap (same horizontally and vertically) */
.xcd-chips { direction:ltr; display:flex; flex-wrap:wrap; overflow:visible; align-items:center; gap:1.6cqw; row-gap:1.6cqw; padding:0; border:0; }
.xcd-chip, .xcd-chip--trade, .xcd-chip--paint, .xcd-chip--ribbon, .xcd-chip--km, .xcd-chip--year, .xcd-chip--hybrid {
  height:4.9cqw; padding:0 2.5cqw; margin:0; gap:.9cqw; font-size:max(8px,2.3cqw); line-height:1; flex:0 0 auto; max-width:100%; box-sizing:border-box;
}
.xcd-chip--ribbon { max-width:100%; }
.xcd-chip svg, .xcd-chip .xcd-ic { width:1.15em; height:1.15em; flex:0 0 auto; }
.xcd-chip--km { background:rgba(255,255,255,.09); color:#d6dbe4; direction:rtl; }
.xcd-chip--km .xcd-ic { color:#aeb6c4; }
/* 4) price box fills the whole foot row (km box is gone) */
.xcd-foot { display:flex; margin-top:auto; min-height:12.5cqw; }
.xcd-price { flex:1 1 100%; width:100%; margin-inline-start:0; }
/* 5) price box: dark glass instead of green */
.xcd-price {
  background:linear-gradient(135deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,.04) 100%);
  border:1px solid rgba(255,255,255,.16);
  -webkit-backdrop-filter:blur(12px) saturate(140%); backdrop-filter:blur(12px) saturate(140%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 6px 16px rgba(0,0,0,.28);
}
.xcd-price-label { color:#aeb6c4; }
.xcd-tagic { fill:#c9d0dc; }
.xcd-tagic circle { fill:#161c27; }
.xcd-price-amount { color:#fff; }
.xcd-price-unit { color:#aeb6c4; }
.theme-light .xcd-price { background:linear-gradient(135deg,rgba(20,26,36,.08),rgba(20,26,36,.03)); border-color:rgba(20,26,36,.14); box-shadow:inset 0 1px 0 rgba(255,255,255,.7); }
.theme-light .xcd-price-label, .theme-light .xcd-price-unit { color:#5a6372; }
.theme-light .xcd-price-amount { color:#171b22; }
.theme-light .xcd-tagic { fill:#5a6372; }
.theme-light .xcd-tagic circle { fill:#fff; }
.theme-light .xcd-chip--km { background:#eef0f4; color:#3a4150; }

/* ===== Listing card v2 — text follows the photo's slanted edge, with a small constant gap ===== */
/* photo edge recedes ~8.4cqw from top to bottom; each row is pulled left by the same amount it recedes,
   so every row keeps the same small gap (--xcd-gap) from the slanted edge */
.xcd { --xcd-gap:2.6cqw; }
.xcd-info { padding-left:0; }
.xcd-head     { margin-left:calc(var(--xcd-gap) - .3cqw); }
.xcd-titlerow { margin-left:calc(var(--xcd-gap) - 1.4cqw); }
.xcd-chips    { margin-left:calc(var(--xcd-gap) - 3.5cqw); }
.xcd-foot     { margin-left:calc(var(--xcd-gap) - 7.3cqw); }

/* ===== Listing card v2 — price box layout: label on one side, amount + unit on the other, full width used ===== */
.xcd-price { align-items:stretch; overflow:hidden; }
.xcd-price-in {
  direction:rtl; flex:1; min-width:0;
  flex-direction:row; align-items:center; justify-content:space-between; gap:2cqw;
  padding:1.2cqw 4.2cqw;
}
.xcd-price-label { flex:0 0 auto; gap:1.2cqw; font-size:max(8px,2.1cqw); font-weight:700; line-height:1; white-space:nowrap; }
.xcd-tagic { width:max(10px,2.5cqw); height:max(10px,2.5cqw); }
.xcd-price-row { direction:rtl; flex-direction:row; align-items:baseline; justify-content:flex-start; gap:1.1cqw; min-width:0; }
.xcd-price-amount { font-size:max(18px,5.6cqw); font-weight:800; line-height:1; letter-spacing:-.01em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.xcd-price-unit { font-size:max(8px,2.1cqw); font-weight:700; line-height:1; white-space:nowrap; }
.xcd-price--text .xcd-price-in { justify-content:space-between; }
.xcd-price--text .xcd-price-amount { font-size:max(14px,4cqw); white-space:normal; line-height:1.2; }
.xcd-foot { min-height:13.5cqw; }

/* ===== Listing card v2 — perf pass: no blur/backdrop-filter per card, cheaper shadows ===== */
.xcd-price {
  -webkit-backdrop-filter:none; backdrop-filter:none;
  background:linear-gradient(135deg,#2a303b 0%,#1a1f28 100%);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:none;
}
.xcd-count { -webkit-backdrop-filter:none; backdrop-filter:none; background:rgba(12,15,20,.85); }
.xcd { box-shadow:none; }
.xcd-price, .xcd-price-in { will-change:auto; }
.theme-light .xcd-price { background:linear-gradient(135deg,#eceff4,#e2e6ee); box-shadow:none; }

/* ===== Listings page — scroll perf: no live blur over the scrolling list ===== */
/* The fixed bottom dock (blur 36px + saturate + brightness) and the sticky header (blur 10px) re-blurred
   every frame while cards scrolled underneath them. Solid fills look the same on dark photos and cost ~nothing. */
body:has(#pageContent > [data-page="listings"]) #bottomDock .bottom-dock-inner {
  -webkit-backdrop-filter:none; backdrop-filter:none;
  background:linear-gradient(180deg,#2a2f35,#1d2125);
  box-shadow:0 6px 14px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.1);
}
body:has(#pageContent > [data-page="listings"]) #stickyHeaderGroup {
  -webkit-backdrop-filter:none; backdrop-filter:none; background:#16191d;
}
.theme-light body:has(#pageContent > [data-page="listings"]) #bottomDock .bottom-dock-inner { background:linear-gradient(180deg,#f3f5f8,#e6e9ee); }
.theme-light body:has(#pageContent > [data-page="listings"]) #stickyHeaderGroup { background:#fff; }
/* card: keep it a single cheap layer; reserve its real height so content-visibility doesn't jump while scrolling */
.xcd-wrap { contain:layout paint style; }
.explore-list:not([data-list-style="large"]) > .swipe-row { contain-intrinsic-size:auto 50cqw; contain-intrinsic-size:auto 200px; }
.card-fade-in { animation-duration:.25s; }

/* ===== Listing card v2 — everything except the photo is right-aligned ===== */
.xcd-info { padding-left:2.2cqw; padding-right:2.2cqw; align-items:stretch; }
.xcd-head, .xcd-titlerow, .xcd-chips, .xcd-foot { margin-left:0; margin-right:0; }
.xcd-head { direction:rtl; justify-content:flex-start; }
.xcd-titlerow { direction:rtl; justify-content:flex-start; }
.xcd-title { text-align:right; }
.xcd-chips { direction:rtl; justify-content:flex-start; }
.xcd-price-in { padding-left:3.2cqw; padding-right:3.6cqw; }

/* ===== Listing card v2 — swipe wrapper removed + lighter cards ===== */
/* cards are now direct children of .explore-list (no .swipe-row) */
/* SMOOTH-SCROLL FIX: content-visibility:auto was removed from the cards. Card heights vary (173-200px) but the
   placeholder size was a fixed 200px, so every card entering the viewport changed height -> a layout pass on
   (almost) every scroll frame (62 layouts per 100 scroll steps in profiling, vs 11 without it).
   Cards keep `contain: layout paint style` (set on .xcd-wrap above), which already isolates them cheaply. */
.explore-list:not([data-list-style="large"]) > .xcd-wrap { content-visibility:visible; }
/* no extra compositing layers / effects per card */
.xcd { transition:none; will-change:auto; }
.xcd:active { transform:none; }
.xcd-photo { isolation:auto; }
.xcd.card-fade-in { animation:none; }

/* fix: without the .swipe-row wrapper the card is a flex item with auto side margins and shrank to content width */
.xcd-wrap { width:100%; box-sizing:border-box; align-self:stretch; }

/* ===== Listing card v2 — brand logos, icon-only price label, price box reaching the photo slant ===== */
.xcd-logo { max-width:26cqw; width:auto; object-fit:contain; object-position:right center; }
.xcd-logo--color, .theme-light .xcd-logo--color { filter:none !important; opacity:1 !important; }
/* price: tag icon only (the word "قیمت" is gone) */
.xcd-price-label { gap:0; }
.xcd-tagic { width:max(13px,3.4cqw); height:max(13px,3.4cqw); }
/* price box extends left toward the slanted photo edge, keeping a small gap */
.xcd-foot { margin-left:calc(1.8cqw - 7.5cqw - 2.2cqw); }

/* ===== Listing card v2 — price box: more gap from the photo, tidy right-aligned content ===== */
.xcd-foot { margin-left:calc(4.4cqw - 7.5cqw - 2.2cqw); }
.xcd-price-in { direction:rtl; flex-direction:row; align-items:center; justify-content:flex-start; gap:2.6cqw; padding:1.2cqw 5cqw 1.2cqw 4cqw; }
.xcd-price-label { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; }
.xcd-price-row { flex:0 1 auto; display:flex; flex-direction:row; align-items:baseline; justify-content:flex-start; gap:1.2cqw; line-height:1; }
.xcd-price-amount { line-height:1; }
.xcd-price-unit { line-height:1; position:relative; top:0; }

/* ===== Listing card v2 — km under the title, centered gradient chips ===== */
.xcd-photo .seller-tag { display:none !important; }
.xcd-kmrow { direction:rtl; display:flex; align-items:center; justify-content:flex-start; gap:1.2cqw; font-size:max(9px,2.5cqw); font-weight:700; line-height:1.2; color:#aeb6c4; }
.xcd-kmrow .xcd-ic { font-size:max(11px,2.9cqw); color:#aeb6c4; }
.xcd-kmrow span { white-space:nowrap; font-variant-numeric:tabular-nums; }
.theme-light .xcd-kmrow, .theme-light .xcd-kmrow .xcd-ic { color:#5a6372; }

/* chips: label centered in the pill, colored gradient backgrounds */
.xcd-chip { display:inline-flex; align-items:center; justify-content:center; text-align:center; padding-top:0; padding-bottom:0; border:1px solid rgba(255,255,255,.14); }
.xcd-chip--year   { background:linear-gradient(135deg,#4f9a26 0%,#1f5a1a 100%) !important; color:#e4ffc4 !important; }
.xcd-chip--trim   { background:linear-gradient(135deg,#6b7bff 0%,#3a2fb8 100%) !important; color:#fff !important; }
.xcd-chip--trim[data-trim="full"]  { background:linear-gradient(135deg,#f6c453 0%,#c47a12 100%) !important; color:#2a1700 !important; }
.xcd-chip--trim[data-trim="half"]  { background:linear-gradient(135deg,#5cc8ff 0%,#2563eb 100%) !important; color:#fff !important; }
.xcd-chip--trim[data-trim="basic"] { background:linear-gradient(135deg,#9aa6b8 0%,#566174 100%) !important; color:#fff !important; }
.xcd-chip--hybrid { background:linear-gradient(135deg,#3b82f6 0%,#1e3a8a 100%) !important; color:#e6f0ff !important; }
.xcd-chip--trade  { background:linear-gradient(135deg,#2dd4bf 0%,#0f6b61 100%) !important; color:#eafffb !important; }
.xcd-chip--paint  { background:linear-gradient(135deg,#fbbf24 0%,#b45309 100%) !important; color:#2b1500 !important; }
.xcd-chip--ribbon { background:linear-gradient(135deg,#a78bfa 0%,#5b21b6 100%) !important; color:#f3ecff !important; }
.xcd-chip svg { opacity:1; }

/* ===== Public profile page (seller screen): tall cover → blur, name, @username, follow/message, counters, bio, ads ===== */
.pf-hero { --pf-photo:min(112vw,580px); --pf-bg:#0b0d11; position:relative; overflow:hidden; background:var(--pf-bg); color:#fff; isolation:isolate; }
.theme-light .pf-hero { border-radius:0 0 30px 30px; }
.pf-cover { position:absolute; inset:0; z-index:0; }
.pf-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 22%; display:block; }
.pf-img--blur { filter:blur(22px) saturate(1.15); transform:scale(1.25); transform-origin:50% 35%;
  -webkit-mask-image:linear-gradient(to bottom,transparent calc(var(--pf-photo)*.6),#000 calc(var(--pf-photo)*.92)); mask-image:linear-gradient(to bottom,transparent calc(var(--pf-photo)*.6),#000 calc(var(--pf-photo)*.92)); }
.pf-cover::after { content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to bottom,rgba(0,0,0,.42) 0,rgba(0,0,0,0) 110px,rgba(0,0,0,0) calc(var(--pf-photo)*.55),rgba(11,13,17,.5) calc(var(--pf-photo)*.95),rgba(11,13,17,.9) calc(var(--pf-photo)*1.2),var(--pf-bg) 100%); }
.pf-noimg { position:absolute; inset:0; display:grid; place-items:start center; padding-top:calc(var(--pf-photo)*.28); background:radial-gradient(120% 60% at 50% 20%,#3b3f8f 0%,#1b1e3d 55%,#0b0d11 100%); }
.pf-noimg span { width:34vw; max-width:170px; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; font-size:64px; font-weight:800; color:#fff; background:rgba(255,255,255,.12); }
.pf-top { position:absolute; z-index:3; top:calc(12px + env(safe-area-inset-top,0px)); left:14px; right:14px; display:flex; justify-content:space-between; }
.pf-round { width:38px; height:38px; border-radius:50%; border:0; display:grid; place-items:center; color:#fff; background:rgba(40,44,52,.6); -webkit-tap-highlight-color:transparent; }
.pf-body { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; text-align:center; padding:calc(var(--pf-photo) - 120px) 18px 22px; }
.pf-name { margin:0; display:inline-flex; align-items:center; gap:8px; font-size:30px; font-weight:800; line-height:1.25; color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.35); }
.pf-verified { flex:0 0 auto; }
.pf-handle { margin-top:4px; font-size:15px; font-weight:500; color:rgba(255,255,255,.58); unicode-bidi:plaintext; }
.pf-actions { display:flex; align-items:center; gap:10px; width:100%; margin-top:18px; }
.pf-follow { flex:1 1 auto; height:54px; border-radius:999px; border:0; background:#fff; color:#0b0d11; font:inherit; font-size:16px; font-weight:800; -webkit-tap-highlight-color:transparent; }
.pf-follow.is-following { background:rgba(255,255,255,.12); color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.24); }
.pf-chat { flex:0 0 54px; width:54px; height:54px; border-radius:50%; display:grid; place-items:center; color:#fff; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); -webkit-tap-highlight-color:transparent; }
.pf-stats { display:grid; grid-template-columns:repeat(3,1fr); width:100%; margin-top:22px; }
.pf-stats > div { display:flex; flex-direction:column; align-items:center; gap:4px; }
.pf-stats strong { font-size:28px; font-weight:800; line-height:1.1; color:#fff; font-variant-numeric:tabular-nums; }
.pf-stats span { font-size:13.5px; font-weight:500; color:rgba(255,255,255,.55); }
.pf-bio { width:100%; margin-top:20px; padding:14px 16px; border-radius:18px; text-align:right; font-size:14.5px; line-height:1.75; color:rgba(255,255,255,.88); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); }
.pf-page .explore-list { padding-top:16px; }

/* ===== Listing card v2 — all chips dark, like the km line ===== */
.xcd-chip, .xcd-chip--year, .xcd-chip--trim, .xcd-chip--trim[data-trim], .xcd-chip--hybrid, .xcd-chip--trade, .xcd-chip--paint, .xcd-chip--ribbon, .xcd-chip--km {
  background:rgba(255,255,255,.09) !important; background-image:none !important;
  color:#d6dbe4 !important; border:1px solid rgba(255,255,255,.08) !important;
}
.xcd-chip svg, .xcd-chip .xcd-ic { color:#aeb6c4 !important; opacity:1; }
.theme-light .xcd-chip, .theme-light .xcd-chip--year, .theme-light .xcd-chip--trim, .theme-light .xcd-chip--trim[data-trim], .theme-light .xcd-chip--hybrid, .theme-light .xcd-chip--trade, .theme-light .xcd-chip--paint, .theme-light .xcd-chip--ribbon {
  background:#eef0f4 !important; color:#3a4150 !important; border-color:#dfe3ea !important;
}
.theme-light .xcd-chip svg { color:#5a6372 !important; }

/* Dealership banner picker (vertical 3:4, separate from the personal avatar) */
.dealer-banner-pick { position:relative; display:block; width:150px; cursor:pointer; }
.dealer-banner-preview { width:150px; aspect-ratio:3/4; border-radius:18px; overflow:hidden; display:flex; align-items:center; justify-content:center; font-size:44px; font-weight:800; border:1px solid rgba(255,255,255,.12); }
.dealer-banner-preview img { width:100%; height:100%; object-fit:cover; display:block; }
.dealer-banner-pick .account-avatar-badge { bottom:-6px; right:-6px; }

/* ---------- Notifications (bell replaces the hamburger menu) ---------- */
.mr-bell-btn { position:relative; }
.mr-bell-badge { position:absolute; top:2px; inset-inline-end:0; min-width:16px; height:16px; padding:0 4px; border-radius:9999px; background:#ef4444; color:#fff; font-size:10px; font-weight:800; line-height:16px; text-align:center; pointer-events:none; box-sizing:border-box; }
.mr-bell-badge[hidden] { display:none; }
.explore-icon-btn .mr-bell-badge { top:-3px; inset-inline-end:-3px; }
html.mr-nf-open, html.mr-nf-open body { overflow:hidden; }
.mr-nf-panel[hidden] { display:none !important; }
.mr-nf-panel { position:fixed; inset:0; z-index:99985; display:flex; justify-content:center; --nf-bg:#0c0d10; --nf-card:#15171b; --nf-line:rgba(255,255,255,.07); --nf-text:#f3f4f6; --nf-mute:#9ca3af; --nf-acc:#ffffff; }
.mr-nf-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.62); backdrop-filter:blur(6px); }
.mr-nf-sheet { position:relative; width:min(100%,560px); height:100%; background:var(--nf-bg); color:var(--nf-text); display:flex; flex-direction:column; animation:mrNfIn .24s cubic-bezier(.2,.8,.2,1); }
@keyframes mrNfIn { from { transform:translateY(18px); opacity:0; } to { transform:none; opacity:1; } }
.mr-nf-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:calc(16px + env(safe-area-inset-top)) 16px 10px; }
.mr-nf-title { display:flex; align-items:center; gap:10px; }
.mr-nf-title h2 { font-size:22px; font-weight:800; margin:0; letter-spacing:-.01em; }
.mr-nf-count { font-size:11px; font-weight:800; color:#111; background:#fff; padding:3px 9px; border-radius:99px; }
.mr-nf-tools { display:flex; gap:6px; }
.mr-nf-tools button { width:38px; height:38px; border-radius:12px; background:var(--nf-card); border:1px solid var(--nf-line); color:#c7cbd1; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .15s, transform .1s; }
.mr-nf-tools button:active { transform:scale(.94); background:#1d2025; }
.mr-nf-tools .is-close { background:#23262c; color:#fff; }
.mr-nf-tabs { display:flex; gap:8px; padding:4px 16px 12px; overflow-x:auto; scrollbar-width:none; }
.mr-nf-tabs::-webkit-scrollbar { display:none; }
.mr-nf-tabs button { flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:99px; font-size:12.5px; font-weight:700; color:var(--nf-mute); background:var(--nf-card); border:1px solid var(--nf-line); cursor:pointer; white-space:nowrap; }
.mr-nf-tabs button.is-on { color:#111; background:#fff; border-color:transparent; box-shadow:0 6px 18px -6px rgba(255,255,255,.35); }
.mr-nf-tabs button.is-on em { background:rgba(0,0,0,.12); color:#111; }
.mr-nf-tabs em { font-style:normal; font-size:10.5px; min-width:17px; height:17px; padding:0 5px; line-height:17px; border-radius:99px; background:rgba(255,255,255,.14); color:#fff; text-align:center; }
.mr-nf-list { flex:1; overflow-y:auto; padding:2px 14px calc(28px + env(safe-area-inset-bottom)); display:flex; flex-direction:column; gap:10px; }
.mr-nf-day { font-size:12px; font-weight:700; color:var(--nf-mute); padding:8px 4px 0; }
.mr-nf-card { position:relative; background:var(--nf-card); border:1px solid var(--nf-line); border-radius:20px; padding:14px; }
.mr-nf-card.is-unread { border-color:color-mix(in srgb, var(--tone) 38%, transparent); background:linear-gradient(180deg, color-mix(in srgb, var(--tone) 9%, var(--nf-card)), var(--nf-card) 70%); }
.mr-nf-row { display:flex; gap:12px; align-items:flex-start; }
.mr-nf-ico { flex:0 0 auto; width:44px; height:44px; border-radius:15px; display:flex; align-items:center; justify-content:center; color:var(--tone); background:color-mix(in srgb, var(--tone) 15%, transparent); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tone) 28%, transparent); }
.mr-nf-col { flex:1; min-width:0; }
.mr-nf-top { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.mr-nf-top h3 { font-size:14px; font-weight:800; margin:0; line-height:1.5; }
.mr-nf-top h3[data-nf] { cursor:pointer; }
.mr-nf-top time { flex:0 0 auto; font-size:10.5px; color:#7b828c; margin-top:3px; white-space:nowrap; }
.mr-nf-body { font-size:12.5px; line-height:1.8; color:var(--nf-mute); margin-top:2px; word-break:break-word; }
.mr-nf-dot { position:absolute; top:14px; inset-inline-start:14px; width:8px; height:8px; border-radius:50%; background:var(--tone); box-shadow:0 0 0 4px color-mix(in srgb, var(--tone) 22%, transparent); display:none; }
.mr-nf-offer { display:flex; gap:10px; align-items:center; margin-top:8px; }
.mr-nf-car { flex:0 0 auto; width:62px; height:46px; border-radius:11px; overflow:hidden; background:#22252b; display:flex; align-items:center; justify-content:center; color:#6b7280; }
.mr-nf-car img { width:100%; height:100%; object-fit:cover; display:block; }
.mr-nf-offer-info { min-width:0; }
.mr-nf-offer-car { font-size:13px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mr-nf-offer-who { font-size:12px; color:var(--nf-mute); margin-top:2px; }
.mr-nf-offer-who b { color:#e5e7eb; }
.mr-nf-price { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-top:12px; padding:11px 13px; border-radius:14px; background:rgba(251,191,36,.08); border:1px dashed rgba(251,191,36,.35); }
.mr-nf-price span { font-size:11.5px; color:#d1b36a; }
.mr-nf-price strong { font-size:16px; font-weight:800; color:#fbbf24; }
.mr-nf-offer-foot { margin-top:10px; }
.mr-nf-pill { display:inline-flex; font-size:11px; font-weight:800; padding:4px 10px; border-radius:99px; }
.mr-nf-pill.is-ok { color:#34d399; background:rgba(52,211,153,.12); }
.mr-nf-pill.is-bad { color:#f87171; background:rgba(248,113,113,.12); }
.mr-nf-pill.is-wait { color:#fbbf24; background:rgba(251,191,36,.12); }
.mr-nf-acts { display:flex; gap:8px; margin-top:12px; }
.mr-nf-btn { flex:1; min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:0 14px; border-radius:14px; font-size:13px; font-weight:800; border:1px solid var(--nf-line); background:#1d2025; color:#e5e7eb; cursor:pointer; transition:transform .1s, filter .15s; }
.mr-nf-btn:active { transform:scale(.97); }
.mr-nf-btn.is-pri { flex:2; border:0; color:#111; background:#fff; box-shadow:0 8px 20px -8px rgba(255,255,255,.35); }
.mr-nf-btn.is-wide { flex:1; }
.mr-nf-btn.is-ghost { color:#fca5a5; background:rgba(248,113,113,.08); border-color:rgba(248,113,113,.22); }
.mr-nf-empty { text-align:center; padding:70px 24px; color:var(--nf-mute); }
.mr-nf-empty span { width:76px; height:76px; margin:0 auto 14px; border-radius:26px; background:var(--nf-card); border:1px solid var(--nf-line); display:flex; align-items:center; justify-content:center; color:#6b7280; }
.mr-nf-empty p { font-size:15px; font-weight:800; color:#e5e7eb; margin:0 0 6px; }
.mr-nf-empty small { font-size:12px; line-height:1.9; }
.theme-light .mr-nf-panel { --nf-bg:#f4f5f7; --nf-card:#fff; --nf-line:rgba(0,0,0,.08); --nf-text:#14171a; --nf-mute:#5f6670; }
.theme-light .mr-nf-offer-who b { color:#14171a; }
.theme-light .mr-nf-tools button, .theme-light .mr-nf-btn { color:#2a2f36; background:#fff; }
.theme-light .mr-nf-btn.is-pri { color:#fff; background:#14171a; }
.theme-light .mr-nf-tabs button.is-on, .theme-light .mr-nf-count { color:#fff; background:#14171a; }
.theme-light .mr-nf-tabs button.is-on em { background:rgba(255,255,255,.2); }

.mr-nf-lead { position:relative; flex:0 0 auto; display:block; }
.mr-nf-av { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; overflow:hidden; flex:0 0 auto; color:#fff; font-size:15px; background:linear-gradient(135deg, hsl(var(--h) 65% 48%), hsl(calc(var(--h) + 40) 70% 38%)); }
.mr-nf-av img { width:100%; height:100%; object-fit:cover; display:block; }
.mr-nf-av b { font-weight:800; }
.mr-nf-thumb { display:block; width:56px; height:56px; border-radius:15px; overflow:hidden; background:#22252b; box-shadow:0 0 0 1px color-mix(in srgb, var(--tone) 35%, transparent); }
.mr-nf-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.mr-nf-mini { position:absolute; bottom:-4px; inset-inline-end:-4px; width:21px; height:21px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; background:var(--tone); border:2px solid var(--nf-card, #15171b); }
.mr-nf-offer-who { display:flex; align-items:center; gap:6px; }

/* Notifications: neutral (non-coloured) boxes — colour only on small glyphs/text */
.mr-nf-card.is-unread { border-color:rgba(255,255,255,.16); background:var(--nf-card); }
.mr-nf-dot { display:block; box-shadow:none; }
.mr-nf-ico { background:rgba(255,255,255,.06); box-shadow:none; }
.mr-nf-thumb { box-shadow:0 0 0 1px var(--nf-line); }
.mr-nf-mini { background:#2a2d33; color:var(--tone); border-color:var(--nf-card); }
.mr-nf-price { background:rgba(255,255,255,.04); border:1px solid var(--nf-line); }
.mr-nf-price span { color:var(--nf-mute); }
.mr-nf-pill.is-ok, .mr-nf-pill.is-bad, .mr-nf-pill.is-wait { background:rgba(255,255,255,.06); }
.mr-nf-btn.is-ghost { background:#1d2025; border-color:var(--nf-line); color:#e5e7eb; }
.theme-light .mr-nf-card.is-unread { border-color:rgba(0,0,0,.18); }
.theme-light .mr-nf-ico, .theme-light .mr-nf-price, .theme-light .mr-nf-pill.is-ok, .theme-light .mr-nf-pill.is-bad, .theme-light .mr-nf-pill.is-wait { background:rgba(0,0,0,.05); }
.theme-light .mr-nf-mini { background:#e9ecef; }

/* Notifications: soft tone gradient on the right 20% of each card only */
.mr-nf-card, .mr-nf-card.is-unread { background-color:var(--nf-card); background-image:linear-gradient(to left, color-mix(in srgb, var(--tone) 24%, transparent) 0%, color-mix(in srgb, var(--tone) 8%, transparent) 12%, transparent 20%); background-repeat:no-repeat; }
.mr-nf-price strong { color:#93c5fd; }
.mr-nf-dot { top:auto; bottom:14px; inset-inline-start:auto; inset-inline-end:14px; }
.mr-nf-card, .mr-nf-card.is-unread { background-image:linear-gradient(to left, color-mix(in srgb, var(--tone) 26%, transparent) 0%, color-mix(in srgb, var(--tone) 10%, transparent) 20%, transparent 35%); }

/* Home header: same position/size as the listings-page header (.explore-header) */
.header-home-row { padding:14px 16px 10px !important; }
.header-home-row > div { gap:10px !important; }
.header-home-row > div > button { width:38px; height:38px; border-radius:9999px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; color:#e0e3e6; flex:0 0 auto; overflow:visible; }
.header-home-row > div > button:active { opacity:.75; }
.header-home-row .header-brand-logo { width:clamp(92px,12.8vw,121px); max-height:34px; }
.header-home-row .header-account-avatar, .header-home-row .header-account-initial { width:30px; height:30px; border-radius:50%; }
.header-home-row > div > button .mr-bell-badge { top:-3px; inset-inline-end:-3px; }
.theme-light .header-home-row > div > button { background:rgba(0,0,0,.06); border-color:rgba(0,0,0,.08); color:#34383c; }


/* v109 — Home tiles: minimal, image-free backgrounds.
   Each tile gets one large outline drawing (inline SVG) that matches its
   service, a very soft tinted glow, and nothing else. No photos. */
.cm-home-tile-surface {
  --tint: 190,200,216;
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(var(--tint),.10), transparent 62%),
    linear-gradient(160deg, #1a1d23, #14171b) !important;
  border-color: rgba(var(--tint),.16) !important;
}
.cm-home-tile-listings .cm-home-tile-surface { --tint: 150,176,220; }
.cm-home-tile-qa .cm-home-tile-surface       { --tint: 178,162,240; }
.cm-home-tile-messages .cm-home-tile-surface { --tint: 124,196,184; }
.cm-home-tile-account .cm-home-tile-surface  { --tint: 206,184,150; }
.cm-home-tile-soon .cm-home-tile-surface     { --tint: 176,182,192; }
.cm-home-tile-listings .cm-home-tile-surface::after { content: none !important; }
.cm-home-bg {
  position: absolute; inset: 0; z-index: 1;
  width: 100%; height: 100%;
  fill: none; stroke: rgb(var(--tint));
  stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  opacity: .34; pointer-events: none;
}
.cm-home-bg * { vector-effect: non-scaling-stroke; }
.cm-home-bg .dash { stroke-dasharray: 3 6; opacity: .7; }
.cm-home-bg-car {
  -webkit-mask-image: linear-gradient(to bottom, #000 55%, transparent 100%);
          mask-image: linear-gradient(to bottom, #000 55%, transparent 100%);
}
.cm-home-bg-qa, .cm-home-bg-msg { opacity: .3; }
.cm-home-bg-soon { opacity: .22; }
.cm-home-tile-surface .cm-home-tile-arrow,
.cm-home-tile-surface .cm-home-soon-badge { z-index: 4 !important; }

/* v110 — Messages tile: paper-plane picture as the tile background.
   The picture has a pure-black backdrop, so "screen" blending lets it melt
   into the dark tile (black adds nothing) and only the plane shows. */
.cm-home-plane {
  position: absolute; z-index: 1;
  inset: -8% -12% -8% -12%;
  width: 124%; height: 116%;
  object-fit: cover; object-position: center;
  mix-blend-mode: screen;
  opacity: .92;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(closest-side, #000 62%, transparent 100%);
          mask-image: radial-gradient(closest-side, #000 62%, transparent 100%);
}
.cm-home-tile-messages .cm-home-tile-surface { --tint: 214,120,214; }


/* ================================================================
   SHOWROOM DIRECTORY — premium dark-glass dealership discovery
   Activity index is derived from visible listing activity; customer
   ratings are explicitly collected and stored locally in this prototype.
   ================================================================ */
.cm-home-tile-dealers .cm-home-tile-surface { --tint: 126,190,177; background: radial-gradient(100% 80% at 94% 5%,rgba(100,196,172,.14),transparent 66%),linear-gradient(155deg,#1b2224,#141719) !important; }
.cm-home-bg-dealers { opacity:.36; }
.cm-home-showroom-badge { position:absolute;left:9px;top:9px;z-index:4;border:1px solid rgba(136,214,190,.22);background:rgba(37,91,77,.24);color:#a8e1cd;border-radius:999px;padding:5px 8px;font-size:9px;letter-spacing:-.02em; }
.cm-home-dealers-glow { position:absolute;z-index:0;right:-28px;bottom:-42px;width:135px;height:115px;border-radius:50%;background:rgba(71,170,147,.08);filter:blur(18px); }
.cm-home-tile-dealers .cm-home-tile-surface .cm-home-showroom-badge { z-index:4; }
.cm-home-tile-dealers:focus-visible .cm-home-tile-surface { outline-color:rgba(133,218,191,.8); }
.cm-home-showrooms { padding:0 14px 23px; }
.cm-home-showroom-rail { display:flex;gap:11px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;padding:1px 0 13px; }
.cm-home-showroom-rail::-webkit-scrollbar { display:none; }
.cm-home-showroom-card { flex:0 0 79%;width:79%;max-width:330px;overflow:hidden;scroll-snap-align:start;border:1px solid rgba(191,204,219,.13);border-radius:19px;background:linear-gradient(155deg,rgba(255,255,255,.045),rgba(255,255,255,.012) 60%),#15191d;box-shadow:0 10px 25px rgba(0,0,0,.16); }
.cm-home-showroom-cover,.cm-showroom-cover { position:relative;display:block;width:100%;padding:0;border:0;overflow:hidden;text-align:initial;background:#1b2325;isolation:isolate; }
.cm-home-showroom-cover { height:116px; }
.cm-showroom-cover { height:156px; }
.cm-showroom-cover-image { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 56%;opacity:.8;filter:saturate(.72) brightness(.78);transition:transform .35s ease,opacity .25s ease; }
.cm-showroom-cover-logo { object-fit:contain;max-width:64%;max-height:72%;inset:14% 18%;width:64%;height:72%;opacity:.68;filter:grayscale(.25) brightness(1.12); }
.cm-showroom-cover-placeholder { position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,rgba(105,190,169,.15),transparent 58%),linear-gradient(145deg,#222a2d,#161a1d); }
.cm-showroom-cover-placeholder svg { width:54%;height:80%;fill:none;stroke:#9dc9bd;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;opacity:.44; }
.cm-home-showroom-cover-shade,.cm-showroom-cover-shade { position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(9,13,14,.14),transparent 27%,rgba(8,11,12,.78) 100%);pointer-events:none; }
.cm-showroom-rank-badge { position:absolute;z-index:2;top:10px;right:10px;display:inline-flex;align-items:center;gap:5px;max-width:80%;border:1px solid rgba(228,235,239,.17);border-radius:999px;padding:6px 9px;background:rgba(15,20,22,.72);color:#d4dbe0;font-size:10px;font-weight:750;backdrop-filter:blur(12px); }
.cm-showroom-rank-badge.is-top { border-color:rgba(131,220,190,.28);background:rgba(20,76,60,.65);color:#b0f0d6; }
.cm-home-showroom-cover .cm-showroom-rank-badge { top:9px;right:9px;padding:5px 8px;font-size:9px; }
.cm-home-showroom-open,.cm-showroom-cover-open { position:absolute;z-index:2;bottom:10px;left:11px;display:flex;gap:5px;align-items:center;color:#f4f8f7;font-size:10px;font-weight:750; }
.cm-showroom-cover-open { bottom:12px;left:14px;font-size:11px; }
.cm-home-showroom-card-body { padding:12px 12px 13px; }
.cm-home-showroom-identity,.cm-showroom-identity { display:flex;align-items:center;gap:9px;min-width:0; }
.cm-home-showroom-avatar,.cm-showroom-avatar { position:relative;display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:14px;overflow:hidden;border:1px solid rgba(211,224,231,.13);background:linear-gradient(145deg,rgba(121,190,172,.15),rgba(255,255,255,.035)),#20272a;color:#cae5de;font-weight:850;font-size:15px; }
.cm-home-showroom-avatar img,.cm-showroom-avatar img { width:100%;height:100%;object-fit:cover; }
.cm-home-showroom-identity>div,.cm-showroom-identity-copy { flex:1;min-width:0; }
.cm-home-showroom-identity strong { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.55;font-weight:800;color:#eff4f3; }
.cm-home-showroom-identity small { display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#8e9b9a; }
.cm-home-showroom-bottom { display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(192,211,208,.09);font-size:10px;color:#96a3a1; }
.cm-home-showroom-bottom b { color:#dae6e2;font-size:11px; }
.cm-showroom-star-static { color:#e7bd70; }
.cm-showroom-compact-rating { display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:9px;color:#899593; }
.cm-showroom-compact-rating strong { color:#dfe9e6;font-size:10px; }
.cm-home-showroom-score { display:grid;grid-template-columns:1fr auto;gap:6px 8px;align-items:center;margin-top:11px;font-size:10px;color:#91a09c; }
.cm-home-showroom-score>b { color:#c0e5d8;font-size:12px;font-variant-numeric:tabular-nums; }
.cm-home-showroom-score>b small { color:#82938e;font-size:9px;font-weight:500; }
.cm-home-showroom-score-track,.cm-showroom-activity-track { display:block;grid-column:1/-1;height:4px;overflow:hidden;border-radius:99px;background:rgba(181,205,197,.1); }
.cm-home-showroom-score-track i,.cm-showroom-activity-track i { display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5d9d8a,#a0d9c3); }
.cm-home-showroom-empty { flex:0 0 100%;padding:22px 15px;border:1px dashed rgba(191,204,219,.16);border-radius:17px;text-align:center;color:#8e9999;font-size:11px; }

.cm-showroom-directory { --sd-bg:#0d1113; --sd-card:#171c1f; --sd-muted:#8f9a9b; --sd-line:rgba(190,211,207,.12); width:100%;min-height:100%;padding:0 0 112px;overflow:hidden;background:radial-gradient(ellipse at 94% 0%,rgba(64,146,123,.14),transparent 34%),var(--sd-bg);color:#eef3f2;font-family:"Vazirmatn","Segoe UI",Tahoma,sans-serif; }
.cm-showroom-directory-hero { position:relative;padding:24px 18px 19px;overflow:hidden; }
.cm-showroom-directory-hero::after { content:"";position:absolute;z-index:0;left:-50px;top:-100px;width:240px;height:220px;border-radius:50%;background:rgba(72,157,132,.08);filter:blur(28px);pointer-events:none; }
.cm-showroom-back { position:absolute;z-index:2;top:17px;left:15px;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--sd-line);border-radius:50%;background:rgba(255,255,255,.035);color:#d9e5e1; }
.cm-showroom-back svg { width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.cm-showroom-hero-eyebrow { display:flex;align-items:center;gap:7px;color:#93cdb9;font-size:10px;font-weight:750;letter-spacing:-.01em; }
.cm-showroom-hero-eyebrow span { width:6px;height:6px;border-radius:50%;background:#8bd1b6;box-shadow:0 0 0 4px rgba(139,209,182,.1); }
.cm-showroom-directory-hero h1 { margin:13px 0 0;font-size:clamp(24px,6vw,31px);line-height:1.35;font-weight:900;letter-spacing:-.045em;color:#f3f7f5; }
.cm-showroom-directory-hero p { max-width:420px;margin:6px 0 0;color:#9ba8a5;font-size:11.5px;line-height:1.9; }
.cm-showroom-directory-metrics { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:21px; }
.cm-showroom-directory-metrics div { display:flex;flex-direction:column;gap:4px;min-width:0;padding:11px 10px;border:1px solid rgba(183,210,201,.1);border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012)),rgba(255,255,255,.012); }
.cm-showroom-directory-metrics strong { color:#d9efe6;font-size:19px;line-height:1.2;font-weight:850;font-variant-numeric:tabular-nums; }
.cm-showroom-directory-metrics span { color:#899995;font-size:9.5px; }
.cm-showroom-directory-controls { display:flex;gap:8px;align-items:stretch;padding:0 14px 12px; }
.cm-showroom-search { display:flex;align-items:center;gap:9px;flex:1;min-width:0;height:47px;padding:0 12px;border:1px solid var(--sd-line);border-radius:15px;background:#171c1f; }
.cm-showroom-search svg { flex:0 0 19px;width:19px;height:19px;fill:none;stroke:#8fa19c;stroke-width:1.6;stroke-linecap:round; }
.cm-showroom-search input { width:100%;min-width:0;border:0;outline:0;background:transparent;color:#eef4f1;font-size:11px;direction:rtl; }
.cm-showroom-search input::placeholder { color:#75817e; }
.cm-showroom-search kbd { flex:0 0 auto;padding:3px 5px;border-radius:6px;background:rgba(255,255,255,.045);color:#6f7a77;font-size:8px; }
.cm-showroom-city-filter { display:flex;flex-direction:column;justify-content:center;gap:3px;flex:0 0 102px;padding:6px 9px;border:1px solid var(--sd-line);border-radius:15px;background:#171c1f; }
.cm-showroom-city-filter span { color:#7f8d89;font-size:8px; }
.cm-showroom-city-filter select { width:100%;min-width:0;border:0;outline:0;background:transparent;color:#dfe9e5;font-family:inherit;font-size:10px; }
.cm-showroom-city-filter option { background:#171c1f;color:#edf4f0; }
.cm-showroom-sort-bar { display:flex;align-items:center;gap:7px;padding:0 14px 13px;overflow-x:auto;white-space:nowrap;scrollbar-width:none; }
.cm-showroom-sort-bar::-webkit-scrollbar { display:none; }
.cm-showroom-sort-bar>span { flex:0 0 auto;color:#71807b;font-size:9px;padding-left:1px; }
.cm-showroom-sort-bar button { flex:0 0 auto;padding:8px 10px;border:1px solid rgba(186,211,202,.11);border-radius:999px;background:rgba(255,255,255,.025);color:#9ba8a4;font-family:inherit;font-size:10px;transition:background .15s,border-color .15s,color .15s; }
.cm-showroom-sort-bar button.is-active { border-color:rgba(126,205,176,.3);background:rgba(64,137,111,.16);color:#c0ead9;box-shadow:inset 0 1px 0 rgba(255,255,255,.035); }
.cm-showroom-results-line { display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 17px 12px;color:#7f8e89;font-size:9px; }
.cm-showroom-results-line [data-showroom-results-count] { color:#bac8c2;font-size:10.5px;font-weight:750; }
.cm-showroom-grid { display:grid;grid-template-columns:minmax(0,1fr);gap:13px;padding:0 14px; }
.cm-showroom-card { min-width:0;overflow:hidden;border:1px solid rgba(182,207,199,.12);border-radius:21px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008) 45%),#151a1c;box-shadow:0 12px 28px rgba(0,0,0,.16); }
.cm-showroom-card:focus-within { border-color:rgba(131,210,183,.3); }
.cm-showroom-cover { height:162px; }
.cm-showroom-cover:hover .cm-showroom-cover-image { transform:scale(1.035);opacity:.95; }
.cm-showroom-cover:active { opacity:.88; }
.cm-showroom-card-body { padding:13px 13px 14px; }
.cm-showroom-avatar { flex-basis:46px;width:46px;height:46px;border-radius:15px; }
.cm-showroom-identity-copy h3 { display:flex;align-items:center;gap:5px;margin:0;color:#eff5f2;font-size:13px;font-weight:850;line-height:1.55; }
.cm-showroom-identity-copy p { display:flex;align-items:center;gap:4px;margin:4px 0 0;color:#85938e;font-size:10px; }
.cm-showroom-identity-copy p svg { flex:0 0 13px;width:13px;height:13px;fill:none;stroke:#8fa39a;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round; }
.cm-showroom-verified { display:inline-flex;align-items:center;flex:0 0 auto;width:17px;height:17px; }
.cm-showroom-verified svg { width:100%;height:100%;fill:#66bfa0;stroke:#102b23;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round; }
.cm-showroom-stats { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:14px;padding:12px 0;border-top:1px solid rgba(187,212,202,.09);border-bottom:1px solid rgba(187,212,202,.09); }
.cm-showroom-stats div { display:flex;flex-direction:column;gap:4px;min-width:0;align-items:flex-start;padding-inline-start:9px;border-inline-start:1px solid rgba(187,212,202,.08); }
.cm-showroom-stats div:first-child { border-inline-start:0;padding-inline-start:0; }
.cm-showroom-stats strong { color:#dae9e2;font-size:12px;font-weight:850;line-height:1.2;font-variant-numeric:tabular-nums; }
.cm-showroom-stats span { color:#7f8e88;font-size:9px;line-height:1.4; }
.cm-showroom-activity { margin-top:12px; }
.cm-showroom-activity>div { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px; }
.cm-showroom-activity>div>span { color:#9aa9a2;font-size:10px;font-weight:650; }
.cm-showroom-activity>div>strong { color:#bce5d3;font-size:14px;font-weight:850;font-variant-numeric:tabular-nums; }
.cm-showroom-activity>div>strong small { margin-inline-start:2px;color:#7b8e85;font-size:9px;font-weight:500; }
.cm-showroom-activity>small { display:block;margin-top:6px;color:#64746e;font-size:8.5px; }
.cm-showroom-rating { display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:12px;padding:11px 10px;border:1px solid rgba(187,212,202,.09);border-radius:14px;background:rgba(255,255,255,.018); }
.cm-showroom-rating-summary { display:grid;grid-template-columns:auto auto;align-items:center;gap:3px 7px;min-width:0; }
.cm-showroom-rating-summary>span { color:#a5b0ab;font-size:10px;font-weight:700; }
.cm-showroom-rating-summary>strong { color:#f0cb7b;font-size:13px;font-weight:850; }
.cm-showroom-rating-summary>small { grid-column:1/-1;color:#71817a;font-size:8.5px; }
.cm-showroom-rating-stars { display:flex;direction:ltr;gap:1px;flex:0 0 auto; }
.cm-showroom-rate-star { display:grid;place-items:center;width:27px;height:30px;padding:0;border:0;background:transparent;color:#53625b;font-size:21px;line-height:1;transition:transform .15s,color .15s; }
.cm-showroom-rate-star.is-filled { color:#efc36d; }
.cm-showroom-rate-star:active { transform:scale(1.18); }
.cm-showroom-rate-star:focus-visible { outline:1px solid #8acfb3;border-radius:6px; }
.cm-showroom-visit { width:100%;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding:12px 13px;border:1px solid rgba(135,207,178,.22);border-radius:13px;background:linear-gradient(100deg,rgba(60,128,103,.22),rgba(55,99,85,.1));color:#c7ecdc;font-family:inherit;font-size:11px;font-weight:800; }
.cm-showroom-visit:active { transform:scale(.99); }
.cm-showroom-rating-note { margin:16px 18px 0;color:#687772;font-size:9px;line-height:1.9; }
.cm-showroom-empty { grid-column:1/-1;display:flex;align-items:center;flex-direction:column;gap:8px;padding:30px 15px;border:1px dashed rgba(183,208,199,.15);border-radius:19px;text-align:center; }
.cm-showroom-empty>span { display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(255,255,255,.04);color:#93aa9f;font-size:25px; }
.cm-showroom-empty strong { color:#dfe8e3;font-size:13px; }
.cm-showroom-empty p { margin:0;color:#7f8d87;font-size:10px; }
.cm-showroom-empty button { margin-top:4px;padding:8px 12px;border:1px solid var(--sd-line);border-radius:999px;background:rgba(255,255,255,.035);color:#b4d8c9;font-family:inherit;font-size:10px; }
@media (min-width:560px) {
  .cm-showroom-directory { max-width:760px;margin:0 auto; }
  .cm-showroom-directory-hero { padding-inline:24px; }
  .cm-showroom-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-inline:18px; }
  .cm-showroom-cover { height:145px; }
  .cm-showroom-card-body { padding:12px; }
  .cm-showroom-rating { align-items:flex-start;flex-direction:column; }
  .cm-showroom-rating-stars { align-self:flex-start; }
  .cm-showroom-rate-star { width:24px; }
  .cm-home-showroom-card { flex-basis:46%; }
}
@media (max-width:365px) {
  .cm-showroom-directory-hero { padding:21px 13px 16px; }
  .cm-showroom-directory-controls { padding-inline:10px;gap:6px; }
  .cm-showroom-city-filter { flex-basis:88px;padding-inline:7px; }
  .cm-showroom-search { gap:6px;padding-inline:8px; }
  .cm-showroom-search kbd { display:none; }
  .cm-showroom-grid { padding-inline:10px;gap:10px; }
  .cm-showroom-card-body { padding:11px; }
  .cm-showroom-rating { padding:9px 8px; }
  .cm-showroom-rate-star { width:24px;font-size:19px; }
  .cm-home-showroom-card { flex-basis:84%; }
}


/* ================================================================
   SHOWROOM DIRECTORY — align to CarMaa's graphite dark theme.
   The earlier version leaned green; showroom surfaces now share the
   app's #0e1013 / #171a1f palette, with restrained cool-lavender accents.
   ================================================================ */
.cm-home-tile-dealers .cm-home-tile-surface {
  --tint: 183,176,232;
  background: radial-gradient(100% 80% at 94% 5%,rgba(169,154,232,.085),transparent 66%),linear-gradient(155deg,#1a1d23,#14171b) !important;
}
.cm-home-showroom-badge {
  border-color:rgba(190,202,218,.16);
  background:rgba(255,255,255,.055);
  color:#cbd0da;
}
.cm-home-dealers-glow { background:rgba(169,154,232,.045); }
.cm-home-tile-dealers:focus-visible .cm-home-tile-surface { outline-color:rgba(185,169,255,.7); }
.cm-home-showroom-card { border-color:rgba(190,202,218,.13); background:linear-gradient(155deg,rgba(255,255,255,.045),rgba(255,255,255,.012) 60%),#15191f; }
.cm-home-showroom-cover,.cm-showroom-cover { background:#1a1d23; }
.cm-showroom-cover-placeholder { background:radial-gradient(ellipse at 50% 40%,rgba(169,154,232,.07),transparent 58%),linear-gradient(145deg,#22242c,#16181e); }
.cm-showroom-cover-placeholder svg { stroke:#aeb4c4; }
.cm-showroom-rank-badge.is-top { border-color:rgba(185,169,255,.24);background:rgba(70,65,101,.63);color:#ded8ff; }
.cm-home-showroom-avatar,.cm-showroom-avatar { background:linear-gradient(145deg,rgba(169,154,232,.12),rgba(255,255,255,.035)),#20232a;color:#d4d6ef; }
.cm-home-showroom-score>b { color:#c8c1f3; }
.cm-home-showroom-score-track i,.cm-showroom-activity-track i { background:linear-gradient(90deg,#8b82bd,#c2baf0); }

.cm-showroom-directory {
  --sd-bg:#08090b;
  --sd-card:#171a1f;
  --sd-muted:#8e959f;
  --sd-line:rgba(190,202,218,.13);
  background:radial-gradient(ellipse at 93% 0%,rgba(169,154,232,.055),transparent 36%),var(--sd-bg);
  color:#f3f5f7;
}
.cm-showroom-directory-hero::after { background:rgba(169,154,232,.045); }
.cm-showroom-hero-eyebrow { color:#b9bec9; }
.cm-showroom-hero-eyebrow span { background:#aaa3d4;box-shadow:0 0 0 4px rgba(169,154,232,.09); }
.cm-showroom-directory-hero h1 { color:#f3f5f7; }
.cm-showroom-directory-hero p { color:#9298a2; }
.cm-showroom-directory-metrics div { border-color:rgba(190,202,218,.11);background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012)),rgba(255,255,255,.012); }
.cm-showroom-directory-metrics strong { color:#e6e8ee; }
.cm-showroom-directory-metrics span { color:#8e959f; }
.cm-showroom-search,.cm-showroom-city-filter { border-color:rgba(190,202,218,.13);background:#171a1f; }
.cm-showroom-search svg { stroke:#9da4af; }
.cm-showroom-search input { color:#f0f2f6; }
.cm-showroom-search input::placeholder { color:#858c97; }
.cm-showroom-search kbd { background:rgba(255,255,255,.055);color:#9aa1ac; }
.cm-showroom-city-filter span { color:#9298a2; }
.cm-showroom-city-filter select { color:#e1e4ea; }
.cm-showroom-city-filter option { background:#171a1f;color:#edf0f5; }
.cm-showroom-sort-bar>span { color:#858c97; }
.cm-showroom-sort-bar button { border-color:rgba(190,202,218,.13);background:rgba(255,255,255,.025);color:#a8aeb8; }
.cm-showroom-sort-bar button.is-active { border-color:rgba(185,169,255,.25);background:rgba(169,154,232,.11);color:#d8d2fb;box-shadow:inset 0 1px 0 rgba(255,255,255,.035); }
.cm-showroom-results-line { color:#8e959f; }
.cm-showroom-results-line [data-showroom-results-count] { color:#d2d6de; }
.cm-showroom-grid { gap:13px; }
.cm-showroom-card { border-color:rgba(190,202,218,.13);background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008) 45%),#171a1f; }
.cm-showroom-card:focus-within { border-color:rgba(185,169,255,.25); }
.cm-showroom-identity-copy h3 { color:#f0f2f6; }
.cm-showroom-identity-copy p { color:#939aa5; }
.cm-showroom-identity-copy p svg { stroke:#9aa2af; }
.cm-showroom-verified svg { fill:#aeb6e9;stroke:#171923; }
.cm-showroom-stats { border-top-color:rgba(190,202,218,.09);border-bottom-color:rgba(190,202,218,.09); }
.cm-showroom-stats div { border-inline-start-color:rgba(190,202,218,.08); }
.cm-showroom-stats strong { color:#e1e4eb; }
.cm-showroom-stats span { color:#8e959f; }
.cm-showroom-activity>div>span { color:#a5abb5; }
.cm-showroom-activity>div>strong { color:#c8c1f3; }
.cm-showroom-activity>div>strong small { color:#9298a2; }
.cm-showroom-activity>small { color:#747b86; }
.cm-showroom-activity-track { background:rgba(190,202,218,.10); }
.cm-showroom-rating { border-color:rgba(190,202,218,.10);background:rgba(255,255,255,.018); }
.cm-showroom-rating-summary>span { color:#b0b5bf; }
.cm-showroom-rating-summary>small { color:#858c97; }
.cm-showroom-rate-star { color:#555a65; }
.cm-showroom-rate-star:focus-visible { outline-color:#b9a9ff; }
.cm-showroom-visit { border-color:rgba(185,169,255,.21);background:linear-gradient(100deg,rgba(169,154,232,.12),rgba(255,255,255,.035));color:#ded9fa; }
.cm-showroom-rating-note { color:#777e89; }
.cm-showroom-empty { border-color:rgba(190,202,218,.15); }
.cm-showroom-empty>span { color:#a5acb8; }
.cm-showroom-empty strong { color:#e1e4eb; }
.cm-showroom-empty p { color:#8e959f; }
.cm-showroom-empty button { color:#c5c9d2; }

/* The showroom reuses the listings sticky chrome. Bell + centered logo only;
   the left-side placeholder keeps the logo optically centered without a search icon. */
.cm-showroom-page-header { width:100%; }
.cm-showroom-header-placeholder { visibility:hidden;pointer-events:none; }
body:has(#pageContent > [data-page="dealers"]) #stickyHeaderGroup {
  background:rgba(22,25,29,.88);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  --chrome-fade-bg:rgba(22,25,29,.88);
}
body:has([data-page="dealers"]) .page-header-sticky.explore-header {
  background:transparent !important;
}
body:has([data-page="dealers"]) .page-header-sticky.explore-header .explore-icon-btn {
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.12);
}
body:has([data-page="dealers"]) #stickyHeaderGroup::after { display:none; }
html:not(.theme-light) body:has(#pageContent > [data-page="dealers"]) #stickyHeaderGroup {
  --chrome-fade-bg:#08090b;
  background:rgba(14,16,19,.88);
}
html:not(.theme-light) body:has([data-page="dealers"]) #appViewport,
html:not(.theme-light) body:has([data-page="dealers"]) #siteHeader,
html:not(.theme-light) [data-page="dealers"] { background-color:#08090b; }
.theme-light body:has([data-page="dealers"]) #stickyHeaderGroup {
  --chrome-fade-bg:rgba(255,255,255,.82);
  background:rgba(255,255,255,.82);
}
.theme-light body:has([data-page="dealers"]) .page-header-sticky.explore-header .explore-icon-btn {
  background:rgba(0,0,0,.06);
  border-color:rgba(0,0,0,.08);
  color:#34383c;
}
.cm-showroom-skeleton-list { display:flex;flex-direction:column;gap:14px;padding:12px 14px 30px; }
.cm-showroom-skeleton-card { overflow:hidden;border:1px solid rgba(190,202,218,.12);border-radius:20px;background:#171a1f; }
.cm-showroom-skeleton-card>.skeleton-block { height:138px;border-radius:0 !important; }
.cm-showroom-skeleton-card .skeleton-block { background-color:rgba(255,255,255,.055); }
@media (min-width:560px) {
  .cm-showroom-directory { max-width:760px;margin:0 auto; }
}

/* ================================================================
   CARMAA FINAL POLISH — single graphite canvas, quiet showroom cards,
   strong typographic hierarchy, and touch-scroll home promo carousel.
   ================================================================ */
html:not(.theme-light) body:has([data-page="dealers"]) #appViewport,
html:not(.theme-light) body:has([data-page="dealers"]) #siteHeader,
html:not(.theme-light) body:has([data-page="dealers"]) #stickyHeaderGroup,
html:not(.theme-light) [data-page="dealers"] {
  background-color:#0b0d10 !important;
  --chrome-fade-bg:#0b0d10;
}
html:not(.theme-light) body:has([data-page="dealers"]) #stickyHeaderGroup {
  background:rgba(11,13,16,.94) !important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
html:not(.theme-light) body:has([data-page="dealers"]) .page-header-sticky.explore-header {
  background:#0b0d10 !important;
}
html:not(.theme-light) body:has([data-page="dealers"]) .page-header-sticky.explore-header .explore-icon-btn {
  background:#17191e;
  border-color:rgba(255,255,255,.09);
}
.cm-showroom-directory {
  --sd-bg:#0b0d10;
  --sd-card:#111318;
  --sd-muted:#9297a2;
  --sd-line:rgba(220,225,235,.10);
  background:#0b0d10 !important;
  color:#f4f5f8;
}
.cm-showroom-directory-hero { padding:19px 17px 14px; }
.cm-showroom-directory-hero::after { display:none; }
.cm-showroom-hero-eyebrow { color:#8e94a0; font-size:9px; letter-spacing:.07em; }
.cm-showroom-hero-eyebrow span { width:5px;height:5px;background:#aaa0ed;box-shadow:0 0 0 3px rgba(169,154,232,.09); }
.cm-showroom-directory-hero h1 { margin:10px 0 0;font-size:clamp(26px,6.5vw,32px);line-height:1.32;font-weight:950;letter-spacing:-.045em;color:#f5f6f8; }
.cm-showroom-directory-hero h1 strong { color:#c3b9fa;font-weight:950; }
.cm-showroom-directory-metrics { margin-top:18px;gap:0; }
.cm-showroom-directory-metrics div { padding:2px 12px 2px 0;gap:5px;border:0;border-inline-start:1px solid rgba(220,225,235,.09);border-radius:0;background:transparent; }
.cm-showroom-directory-metrics div:first-child { border-inline-start:0;padding-inline-start:0; }
.cm-showroom-directory-metrics strong { font-size:23px;line-height:1.1;font-weight:950;color:#f0f1f5;letter-spacing:-.025em; }
.cm-showroom-directory-metrics span { color:#8d929d;font-size:10px;font-weight:650; }
.cm-showroom-directory-controls { padding:0 14px 12px; }
.cm-showroom-search,.cm-showroom-city-filter { border-color:rgba(220,225,235,.10);background:#111318;border-radius:15px; }
.cm-showroom-search { height:48px; }
.cm-showroom-city-filter { flex-basis:96px; }
.cm-showroom-sort-bar { padding-bottom:12px; }
.cm-showroom-sort-bar button { padding:8px 12px;font-size:10px;font-weight:750;border-color:rgba(220,225,235,.10);background:#101216;color:#9da2ad; }
.cm-showroom-sort-bar button.is-active { border-color:rgba(185,169,255,.26);background:rgba(169,154,232,.13);color:#d9d2ff;box-shadow:none; }
.cm-showroom-results-line { justify-content:flex-start;padding:0 17px 12px; }
.cm-showroom-results-line [data-showroom-results-count] { font-size:12px;font-weight:900;color:#f1f2f6; }
.cm-showroom-results-line>span:last-child { color:#777d89;font-size:9px; }
.cm-showroom-grid { gap:12px;padding:0 14px; }
.cm-showroom-card { border:1px solid rgba(220,225,235,.085);border-radius:20px;background:#111318;box-shadow:0 8px 22px rgba(0,0,0,.13); }
.cm-showroom-card:focus-within { border-color:rgba(185,169,255,.24); }
.cm-showroom-cover { height:156px;background:#15171d; }
.cm-showroom-cover-image { filter:saturate(.62) brightness(.76);opacity:.86; }
.cm-showroom-cover-shade { background:linear-gradient(180deg,rgba(7,8,11,.03),transparent 42%,rgba(7,8,11,.69)); }
.cm-showroom-rank-badge { display:inline-flex;gap:5px;align-items:center;padding:6px 9px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(11,13,16,.79);color:#d8dbe3;font-size:10px;font-weight:700;backdrop-filter:blur(10px); }
.cm-showroom-rank-badge b { color:#fff;font-size:12px;font-weight:950; }
.cm-showroom-rank-badge.is-top { border-color:rgba(185,169,255,.22);background:rgba(38,34,55,.83);color:#d9d1ff; }
.cm-showroom-cover-open { bottom:12px;left:13px;font-size:11px;font-weight:850;color:#f4f5f8; }
.cm-showroom-cover-open b { font-size:16px;font-weight:950; }
.cm-showroom-card-body { padding:13px 13px 12px; }
.cm-showroom-identity { gap:10px; }
.cm-showroom-avatar { flex-basis:43px;width:43px;height:43px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#20222a;color:#d4cdfd;font-size:15px;font-weight:950; }
.cm-showroom-identity-copy h3 { gap:5px;font-size:14px;line-height:1.45;font-weight:950;color:#f4f5f8; }
.cm-showroom-identity-copy p { margin-top:5px;font-size:10px;color:#9297a2;font-weight:550; }
.cm-showroom-identity-copy p svg { stroke:#858b97; }
.cm-showroom-verified { width:15px;height:15px; }
.cm-showroom-verified svg { fill:#b7aff0;stroke:#171620; }
.cm-showroom-stats { grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:13px;padding:11px 0 10px;border-top:1px solid rgba(220,225,235,.075);border-bottom:0; }
.cm-showroom-stats div { gap:4px;padding-inline-start:10px;border-inline-start:1px solid rgba(220,225,235,.08); }
.cm-showroom-stats div:first-child { padding-inline-start:0; }
.cm-showroom-stats strong { font-size:16px;font-weight:950;line-height:1.18;letter-spacing:-.025em;color:#f0f1f5; }
.cm-showroom-stats strong small { font-size:9px;color:#8e94a0;font-weight:750; }
.cm-showroom-stats span { font-size:9px;color:#858b96;font-weight:650; }
.cm-showroom-activity-stat strong { color:#c6bcff; }
.cm-showroom-last-stat strong { font-size:13px;letter-spacing:0; }
.cm-showroom-rating-compact { display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px;padding-top:8px;border-top:1px solid rgba(220,225,235,.055); }
.cm-showroom-rating-summary { display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 6px;min-width:0; }
.cm-showroom-rating-summary>span { color:#a3a8b2;font-size:10px;font-weight:750; }
.cm-showroom-rating-summary>strong { color:#f0cb7b;font-size:13px;font-weight:950;white-space:nowrap; }
.cm-showroom-rating-summary>strong i { font-style:normal;font-size:12px; }
.cm-showroom-rating-summary>small { grid-column:1/-1;color:#737985;font-size:8px; }
.cm-showroom-rating-stars { display:flex;direction:ltr;gap:0;flex:0 0 auto; }
.cm-showroom-rate-star { width:22px;height:24px;font-size:18px;color:#4b4f5b; }
.cm-showroom-rate-star.is-filled { color:#efc36d; }
.cm-showroom-rate-star:focus-visible { outline:1px solid #b9a9ff;border-radius:5px; }
.cm-showroom-rating-note { margin:13px 18px 0;color:#707682;font-size:9px;line-height:1.8; }
.cm-showroom-empty { border-color:rgba(220,225,235,.12); }
.cm-showroom-empty>span { color:#b5b9c6; }
.cm-showroom-empty strong { color:#edf0f5;font-weight:900; }
.cm-showroom-empty p { color:#9096a1; }
.cm-showroom-empty button { color:#d1cbf6; }
.cm-showroom-skeleton-card { background:#111318;border-color:rgba(220,225,235,.08); }

/* Featured showroom tiles: only three high-value bold metrics, no duplicate activity bar. */
.cm-home-showroom-card { border-color:rgba(220,225,235,.085);background:#111318;box-shadow:0 8px 20px rgba(0,0,0,.12); }
.cm-home-showroom-cover { height:112px; }
.cm-home-showroom-cover-shade { background:linear-gradient(180deg,rgba(7,8,11,.04),transparent 45%,rgba(7,8,11,.72)); }
.cm-home-showroom-rank-badge { max-width:80%; }
.cm-home-showroom-card-body { padding:11px 12px 12px; }
.cm-home-showroom-avatar { flex-basis:38px;width:38px;height:38px;border-radius:12px;background:#20222a;color:#d4cdfd;font-weight:950; }
.cm-home-showroom-identity strong { color:#f2f3f6;font-size:12px;font-weight:950; }
.cm-home-showroom-identity small { color:#9297a2;font-size:10px; }
.cm-home-showroom-bottom { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(220,225,235,.075);font-size:9px;color:#858b96; }
.cm-home-showroom-bottom>span { display:flex;flex-direction:column;gap:3px;min-width:0; }
.cm-home-showroom-bottom b { color:#f0f1f5;font-size:15px;line-height:1.15;font-weight:950; }
.cm-home-showroom-bottom small { color:#858b96;font-size:9px;font-weight:650; }
.cm-home-showroom-rating-inline small i { color:#efc36d;font-style:normal; }
.cm-home-showroom-score { display:none !important; }

/* Touch-friendly, horizontally scrollable promo carousel directly under home tiles. */
.cm-home-promos { position:relative;margin:0 14px 25px;min-width:0; }
.cm-home-promo-track { display:flex;gap:0;width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-snap-stop:always;scroll-behavior:smooth;overscroll-behavior-x:contain;overscroll-behavior-y:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:22px;touch-action:pan-x; }
.cm-home-promo-track::-webkit-scrollbar { display:none; }
.cm-home-promo-slide { position:relative;flex:0 0 100%;width:100%;height:clamp(172px,48vw,218px);min-width:0;overflow:hidden;isolation:isolate;scroll-snap-align:center;border:1px solid rgba(220,225,235,.10);border-radius:22px;background:#111318; }
.cm-home-promo-slide::after { content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(8,9,12,0) 0%,rgba(8,9,12,.06) 31%,rgba(8,9,12,.58) 48%,rgba(8,9,12,.88) 75%,rgba(8,9,12,.93) 100%); }
.cm-home-promo-image { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center; }
.cm-home-promo-copy { position:absolute;z-index:2;top:50%;right:15px;transform:translateY(-50%);width:53%;max-width:300px;text-align:right;color:#f5f6f8; }
.cm-home-promo-kicker { display:flex;align-items:center;justify-content:flex-start;gap:7px;margin-bottom:9px;color:#a5a9b5;font-size:8px;font-weight:850;letter-spacing:.09em; }
.cm-home-promo-kicker i { width:4px;height:4px;border-radius:50%;background:#b9a9ff;box-shadow:0 0 0 3px rgba(185,169,255,.11); }
.cm-home-promo-copy h2 { margin:0;font-size:clamp(19px,5.1vw,26px);font-weight:800;line-height:1.4;letter-spacing:-.035em;color:#e6e8ee; }
.cm-home-promo-copy h2 strong { color:#fff;font-weight:950; }
.cm-home-promo-copy p { margin:5px 0 11px;color:#a3a7b0;font-size:10px;line-height:1.6;font-weight:500; }
.cm-home-promo-copy button { display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:32px;padding:7px 12px;border:0;border-radius:999px;background:#f1f1f4;color:#111318;font-family:inherit;font-size:10px;font-weight:950;box-shadow:0 3px 12px rgba(0,0,0,.12); }
.cm-home-promo-copy button span { font-size:14px;line-height:1; }
.cm-home-promo-dots { display:flex;align-items:center;justify-content:center;gap:7px;margin:10px auto 0; }
.cm-home-promo-dots button { width:7px;height:7px;padding:0;border:0;border-radius:99px;background:#535660;transition:width .18s ease,background .18s ease; }
.cm-home-promo-dots button.is-active { width:20px;background:#b9a9ff; }
@media (min-width:560px) {
  .cm-home-promos { max-width:720px;margin-inline:auto;margin-bottom:28px;padding-inline:14px; }
  .cm-home-promo-slide { height:230px; }
  .cm-home-promo-copy { right:24px;width:48%; }
  .cm-home-promo-copy h2 { font-size:29px; }
  .cm-showroom-card-body { padding:13px; }
}
@media (max-width:365px) {
  .cm-home-promo-slide { height:164px; }
  .cm-home-promo-copy { right:11px;width:54%; }
  .cm-home-promo-kicker { margin-bottom:6px;font-size:7px; }
  .cm-home-promo-copy h2 { font-size:18px; }
  .cm-home-promo-copy p { margin:4px 0 8px;font-size:9px; }
  .cm-home-promo-copy button { min-height:29px;padding:6px 10px;font-size:9px; }
}
@media (prefers-reduced-motion:reduce) {
  .cm-home-promo-track { scroll-behavior:auto; }
  .cm-home-promo-dots button { transition:none; }
}


/* ================================================================
   CARMAA BRIGHT PHOTO + NEUTRAL WHITE ACCENTS
   Keep the graphite canvas, lift images and cards, remove violet UI accents.
   ================================================================ */
.cm-showroom-directory {
  --sd-bg:#0b0d10;
  --sd-card:#191c22;
  --sd-line:rgba(238,241,247,.14);
  background:#0b0d10 !important;
}
.cm-showroom-directory-hero h1 strong { color:#fff !important; }
.cm-showroom-hero-eyebrow span {
  background:#f4f5f7 !important;
  box-shadow:0 0 0 3px rgba(255,255,255,.10) !important;
}
.cm-showroom-directory-metrics div {
  border-color:rgba(238,241,247,.12) !important;
  background:#15181e !important;
}
.cm-showroom-search,
.cm-showroom-city-filter { background:#171a20 !important; border-color:rgba(238,241,247,.14) !important; }
.cm-showroom-sort-bar button {
  background:#171a20 !important;
  border-color:rgba(238,241,247,.13) !important;
  color:#c2c6cf !important;
}
.cm-showroom-sort-bar button.is-active {
  border-color:rgba(255,255,255,.34) !important;
  background:#e8eaf0 !important;
  color:#111318 !important;
}
.cm-showroom-grid .cm-showroom-card,
.cm-home-showroom-card {
  background:#191c22 !important;
  border-color:rgba(238,241,247,.15) !important;
  box-shadow:0 10px 24px rgba(0,0,0,.22) !important;
}
.cm-showroom-card:focus-within { border-color:rgba(255,255,255,.35) !important; }
.cm-showroom-cover,
.cm-home-showroom-cover { background:#252932 !important; }
.cm-showroom-cover-image {
  opacity:1 !important;
  filter:brightness(1.12) saturate(1.04) contrast(1.03) !important;
}
.cm-showroom-cover-shade {
  background:linear-gradient(180deg,rgba(7,8,11,.015) 0%,rgba(7,8,11,0) 42%,rgba(7,8,11,.48) 100%) !important;
}
.cm-home-showroom-cover-shade {
  background:linear-gradient(180deg,rgba(7,8,11,.01) 0%,rgba(7,8,11,0) 45%,rgba(7,8,11,.48) 100%) !important;
}
.cm-showroom-rank-badge.is-top {
  border-color:rgba(255,255,255,.26) !important;
  background:rgba(22,25,31,.86) !important;
  color:#fff !important;
}
.cm-showroom-avatar,
.cm-home-showroom-avatar {
  border-color:rgba(255,255,255,.14) !important;
  background:#292d35 !important;
  color:#fff !important;
}
.cm-showroom-verified svg { fill:#f0f2f6 !important; stroke:#171a20 !important; }
.cm-showroom-stats strong,
.cm-showroom-activity-stat strong,
.cm-home-showroom-bottom b,
.cm-home-showroom-score>b { color:#fff !important; }
.cm-showroom-activity-track { background:rgba(255,255,255,.14) !important; }
.cm-showroom-activity-track i,
.cm-home-showroom-score-track i { background:#f4f5f7 !important; }
.cm-showroom-visit {
  border-color:rgba(255,255,255,.18) !important;
  background:rgba(255,255,255,.09) !important;
  color:#fff !important;
}
.cm-showroom-rate-star:focus-visible { outline-color:#fff !important; }
.cm-showroom-empty button { color:#fff !important; }

/* The showroom shortcut also uses neutral white rather than violet or green. */
.cm-home-tile-dealers .cm-home-tile-surface {
  --tint:255,255,255 !important;
  background:radial-gradient(100% 80% at 94% 5%,rgba(255,255,255,.075),transparent 66%),linear-gradient(155deg,#20232a,#171a20) !important;
}
.cm-home-showroom-badge {
  border-color:rgba(255,255,255,.19) !important;
  background:rgba(255,255,255,.085) !important;
  color:#f2f3f6 !important;
}
.cm-home-dealers-glow { background:rgba(255,255,255,.045) !important; }
.cm-home-tile-dealers:focus-visible .cm-home-tile-surface { outline-color:rgba(255,255,255,.75) !important; }
.cm-home-showroom-bottom { border-top-color:rgba(255,255,255,.12) !important; }

/* Promotional photos stay visible; only a controlled shade remains behind copy. */
.cm-home-promo-slide { background:#171a20 !important; border-color:rgba(238,241,247,.15) !important; }
.cm-home-promo-image { filter:brightness(1.2) saturate(1.08) contrast(1.035) !important; }
.cm-home-promo-slide::after {
  background:linear-gradient(90deg,
    rgba(8,9,12,0) 0%,
    rgba(8,9,12,.015) 29%,
    rgba(8,9,12,.24) 47%,
    rgba(8,9,12,.66) 74%,
    rgba(8,9,12,.78) 100%) !important;
}
.cm-home-promo-kicker i { background:#fff !important; box-shadow:0 0 0 3px rgba(255,255,255,.10) !important; }
.cm-home-promo-dots button.is-active { background:#fff !important; }

@media (prefers-reduced-transparency: reduce) {
  .cm-showroom-rank-badge { backdrop-filter:none !important; }
}


/* Home account tile: when a user has a profile photo, use it as a full-bleed card background. */
.cm-home-tile-account { position: relative; }
.cm-home-tile-account .cm-home-acc-photo { position:absolute; inset:0; z-index:0; display:block; overflow:hidden; border-radius:inherit; }
.cm-home-tile-account .cm-home-acc-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.cm-home-tile-account:has(.cm-home-acc-photo)::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(0,0,0,.06) 15%,rgba(0,0,0,.66) 100%); pointer-events:none; }
.cm-home-tile-account:has(.cm-home-acc-photo) .cm-home-tile-copy,
.cm-home-tile-account:has(.cm-home-acc-photo) .cm-home-tile-arrow { z-index:3; position:relative; color:#fff; }
.cm-home-tile-account:has(.cm-home-acc-photo) .cm-home-tile-copy strong,
.cm-home-tile-account:has(.cm-home-acc-photo) .cm-home-tile-copy small { color:#fff; text-shadow:0 1px 5px rgba(0,0,0,.5); }
.cm-home-tile-account:has(.cm-home-acc-photo) { padding:0; }


/* Account tile full-bleed profile photo — photo is a direct child of the tile,
   not confined to the smaller decorative surface. Works without :has(). */
.cm-home-tile-account-has-photo { position:relative !important; isolation:isolate; padding:0 !important; overflow:hidden !important; }
.cm-home-tile-account-has-photo > .cm-home-acc-photo { position:absolute !important; inset:0 !important; z-index:0 !important; display:block !important; width:auto !important; height:auto !important; transform:none !important; border-radius:inherit !important; overflow:hidden !important; box-shadow:none !important; background:#171a20; }
.cm-home-tile-account-has-photo > .cm-home-acc-photo img { display:block !important; width:100% !important; height:100% !important; object-fit:cover !important; object-position:center !important; }
.cm-home-tile-account-has-photo::after { content:"" !important; position:absolute !important; inset:0 !important; z-index:1 !important; pointer-events:none !important; background:linear-gradient(180deg,rgba(0,0,0,.04) 12%,rgba(0,0,0,.68) 100%) !important; }
.cm-home-tile-account-has-photo > .cm-home-tile-surface { position:relative !important; z-index:2 !important; background:transparent !important; border-color:transparent !important; box-shadow:none !important; }
.cm-home-tile-account-has-photo > .cm-home-tile-label { position:relative !important; z-index:3 !important; color:#fff !important; text-shadow:0 1px 5px rgba(0,0,0,.6) !important; }
.cm-home-tile-account-has-photo .cm-home-tile-arrow { position:relative !important; z-index:3 !important; color:#fff !important; }

/* v109 — Keep the listings tile and its adjacent showroom tile exactly equal in height. */
.cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface,
.cm-home-services-primary > .cm-home-tile-dealers .cm-home-tile-surface {
  height: 128px !important;
  flex-basis: 128px !important;
  min-height: 128px !important;
}
@media (min-width: 500px) {
  .cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface,
  .cm-home-services-primary > .cm-home-tile-dealers .cm-home-tile-surface {
    height: 140px !important;
    flex-basis: 140px !important;
    min-height: 140px !important;
  }
}
@media (max-width: 365px) {
  .cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface,
  .cm-home-services-primary > .cm-home-tile-dealers .cm-home-tile-surface {
    height: 108px !important;
    flex-basis: 108px !important;
    min-height: 108px !important;
  }
}

/* v111 — Keep the glass illustration assets fully inside their clipped tile.
   These are square images; absolute sizing prevents intrinsic dimensions from
   enlarging the surface or letting the rounded edges protrude. */
.cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface,
.cm-home-services-primary > .cm-home-tile-dealers .cm-home-tile-surface {
  position: relative !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  isolation: isolate !important;
  border-radius: 22px !important;
}
.cm-home-listings-glass,
.cm-home-showrooms-glass {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  z-index: 1 !important;
  pointer-events: none !important;
}
@media (max-width: 365px) {
  .cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface,
  .cm-home-services-primary > .cm-home-tile-dealers .cm-home-tile-surface {
    border-radius: 18px !important;
  }
}

/* v113 — Home tiles: fix broken artwork + remove purple glow.
   1) The v111 rule centers the square art with inset/100% sizing, but older rules in
      showrooms-ios.css still applied top/left:50% + translate(-50%,-50%), which pushed
      the image to the top-left corner and cut it off. Reset all of that here.
   2) Tiles are now neutral graphite — no violet gradients, tints or glows. */
.cm-home-tile-surface > img.cm-home-listings-glass,
.cm-home-tile-surface > img.cm-home-showrooms-glass,
.cm-home-tile-surface > img.cm-home-plane,
.cm-home-tile-surface > img.cm-home-acc-glass {
  position: absolute !important;
  inset: 0 !important;
  top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: 100% !important; height: 100% !important;
  max-width: 100% !important; max-height: 100% !important;
  aspect-ratio: auto !important;
  transform: none !important;
  object-fit: contain !important;
  object-position: center !important;
  margin: 0 !important; padding: 0 !important;
  mix-blend-mode: screen;
  opacity: .96;
  -webkit-mask-image: none !important;
          mask-image: none !important;
  pointer-events: none;
  z-index: 1 !important;
}
.cm-home-tile-surface {
  background: linear-gradient(145deg, rgba(255,255,255,.05), rgba(255,255,255,.015) 60%, rgba(255,255,255,.025)), #181b20 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 6px 16px rgba(0,0,0,.18) !important;
  border-color: rgba(205,214,228,.14) !important;
}
.cm-home-tile-surface::before,
.cm-home-tile-surface::after { background: none !important; }
.cm-home-tile-dealers .cm-home-tile-surface,
.cm-home-services-primary > .cm-home-tile-dealers .cm-home-tile-surface {
  background: linear-gradient(145deg, rgba(255,255,255,.05), rgba(255,255,255,.015) 60%, rgba(255,255,255,.025)), #181b20 !important;
}
.cm-home-dealers-glow { display: none !important; }
.cm-home-tile-qa .cm-home-tile-surface,
.cm-home-tile-messages .cm-home-tile-surface,
.cm-home-tile-account .cm-home-tile-surface,
.cm-home-tile-dealers .cm-home-tile-surface,
.cm-home-tile-listings .cm-home-tile-surface { --tint: 205,212,224 !important; }
.cm-home-bg { stroke: rgba(205,212,224,.55) !important; }
.cm-home-bg-qa { opacity: .5 !important; }
.cm-home-sell-cta { background: #171a1f !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important; }
.cm-home-sell-icon { background: rgba(255,255,255,.06) !important; border-color: rgba(255,255,255,.12) !important; }
/* v113 — Q&A tile artwork: show the whole bubble icon, centered (was cropped by "slice"). */
.cm-home-tile-qa .cm-home-bg-qa { inset: 12% 22% !important; width: 56% !important; height: 76% !important; opacity: .75 !important; }

/* v114 — Account tile with profile photo: the photo must stay INSIDE the rounded box
   (same height as the other tiles' surface), not cover the whole button + title. */
.cm-home-tile-account-has-photo { overflow: visible !important; }
.cm-home-tile-account-has-photo > .cm-home-acc-photo,
.cm-home-tile-account-has-photo::after {
  position: absolute !important;
  top: 0 !important; left: 0 !important; right: 0 !important; bottom: auto !important;
  inset-inline: 0 !important;
  width: 100% !important; height: 100px !important;
  border-radius: 22px !important;
  box-shadow: none !important;
}
.cm-home-tile-account-has-photo::after {
  content: "" !important;
  background: linear-gradient(180deg, rgba(0,0,0,.02) 40%, rgba(0,0,0,.45) 100%) !important;
}
.cm-home-tile-account-has-photo > .cm-home-tile-surface {
  border: 1px solid rgba(205,214,228,.14) !important;
  border-radius: 22px !important;
  background: transparent !important;
  box-shadow: none !important;
}
.cm-home-tile-account-has-photo > .cm-home-tile-label {
  color: #f5f6f9 !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.4) !important;
}
@media (min-width: 500px) {
  .cm-home-tile-account-has-photo > .cm-home-acc-photo,
  .cm-home-tile-account-has-photo::after { height: 114px !important; }
}
@media (max-width: 365px) {
  .cm-home-tile-account-has-photo > .cm-home-acc-photo,
  .cm-home-tile-account-has-photo::after { height: 92px !important; border-radius: 18px !important; }
  .cm-home-tile-account-has-photo > .cm-home-tile-surface { border-radius: 18px !important; }
}

/* v115 — Home banners: vertical swipes on the carousel must scroll the page.
   The track had touch-action:pan-x + overscroll-behavior-y:contain, which swallowed
   every vertical gesture that started on a banner. Horizontal swiping still works. */
.cm-home-promo-track { touch-action: pan-x pan-y !important; overscroll-behavior-y: auto !important; }
.cm-home-promo-slide, .cm-home-promo-image, .cm-home-promo-copy { touch-action: pan-x pan-y; }
.cm-home-promo-image { -webkit-user-drag: none; user-select: none; }

/* v116 — Notifications: remove the colored light/glow on the cards (the tone gradient
   on the card edge) and the purple glow shadows on the active tab and primary button. */
.mr-nf-card, .mr-nf-card.is-unread { background-image: none !important; background-color: var(--nf-card) !important; box-shadow: none !important; }
.mr-nf-dot { box-shadow: none !important; }
.mr-nf-tabs button.is-on { box-shadow: none !important; }
.mr-nf-btn.is-pri { box-shadow: none !important; }

/* v117 — Showroom edit page: separate banner + profile photo pickers. */
.dealer-media-edit { position: relative; width: 100%; padding-bottom: 42px; }
.dealer-cover-pick { position: relative; display: block; width: 100%; cursor: pointer; }
.dealer-cover-preview { width: 100%; aspect-ratio: 16/9; border-radius: 20px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: #20232a; border: 1px dashed rgba(255,255,255,.2); color: #9aa1ab; font-size: 13px; font-weight: 700; }
.dealer-cover-preview img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dealer-cover-preview:has(img) { border-style: solid; border-color: rgba(255,255,255,.12); }
.dealer-cover-pick .dealer-media-badge { top: 10px; bottom: auto; left: 10px; right: auto; }
.dealer-avatar-pick { position: absolute; right: 18px; bottom: 0; display: block; width: 84px; height: 84px; cursor: pointer; }
.dealer-avatar-preview { width: 84px; height: 84px; border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; font-size: 32px; font-weight: 800; color: #fff; background: #2a2d33; border: 4px solid #0c0d10; box-sizing: border-box; box-shadow: 0 0 0 1px rgba(255,255,255,.14); }
.dealer-avatar-preview img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dealer-avatar-pick .dealer-media-badge { bottom: 0; right: 0; }

/* Showroom list: banner fills the card cover. */
.sr-photo.is-banner { object-fit: cover; width: 100%; height: 100%; }
.dealership-card-actions { flex-wrap:wrap; } .dealership-card-actions button { flex:1 1 40%; }

/* Dock: hidden on account / showroom-account / messages-list pages.
   Keyed on body[data-dock-page] (set from the destination route) so it also applies while the page is loading. */
body[data-dock-page="account"] #bottomDock,
body[data-dock-page="accountEdit"] #bottomDock,
body[data-dock-page="dealershipEdit"] #bottomDock,
body[data-dock-page="messages"] #bottomDock,
body:has(#pageContent > [data-page="account"]) #bottomDock,
body:has(#pageContent > [data-page="messages"]) #bottomDock { display:none !important; }

/* Dock on the listings page: apply the compact (4-item, solid) style from the destination route too,
   so there is no flash of the old full dock while the listings page is loading. */
body[data-dock-page="listings"] #bottomDock [data-dock="listings"],
body[data-dock-page="listings"] #bottomDock [data-dock="qa"] { display:none !important; }
body[data-dock-page="listings"] #bottomDock .bottom-dock-inner {
  -webkit-backdrop-filter:none; backdrop-filter:none;
  background:linear-gradient(180deg,#2a2f35,#1d2125);
  box-shadow:0 6px 14px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.1);
}
.theme-light body[data-dock-page="listings"] #bottomDock .bottom-dock-inner { background:linear-gradient(180deg,#f3f5f8,#e6e9ee); }
body[data-dock-page="home"] #bottomDock { display:none !important; }

/* Showroom-account tile on home: dark and "switched off" until the user has created a showroom */
.cm-home-tile-myshop.is-off { opacity:.42; filter:grayscale(1) brightness(.7); cursor:default; pointer-events:none; }
.cm-home-tile-myshop .cm-home-bg-qa { fill:none !important; }

/* Listings tile: photo background (Porsche GT3), darkened at the edges to stay in the dark theme */
.cm-home-tile-listings .cm-home-tile-surface { position:relative; overflow:hidden !important; }
.cm-home-tile-listings .cm-home-listings-photo { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover; object-position:center 55%; opacity:1 !important; transform:none !important; filter:saturate(1.05) brightness(.92); }
.cm-home-tile-listings .cm-home-tile-surface::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(10,11,13,.35),rgba(10,11,13,0) 40%,rgba(10,11,13,.45)); }

/* Showrooms tile: photo background, darkened to keep the dark theme + badge legible */
.cm-home-tile-dealers .cm-home-tile-surface { position:relative; overflow:hidden !important; }
.cm-home-tile-dealers .cm-home-dealers-photo { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover; object-position:center 60%; opacity:1 !important; transform:none !important; filter:saturate(1.05) brightness(.8); }
.cm-home-tile-dealers .cm-home-tile-surface::after { content:""; position:absolute; inset:0; pointer-events:none; z-index:1; background:linear-gradient(180deg,rgba(10,11,13,.55),rgba(10,11,13,.05) 45%,rgba(10,11,13,.35)); }
.cm-home-tile-dealers .cm-home-showroom-badge { z-index:4 !important; }

/* =====================================================================
   CARMAA HOME — cohesive editorial redesign (v121)
   This final home-scoped layer replaces accumulated layout overrides
   without changing listing cards or other app routes.
   ===================================================================== */
.cm-home-page {
  --cm-home-bg:#0b0d10;
  --cm-home-card:#15191f;
  --cm-home-card-raised:#1b2027;
  --cm-home-line:rgba(238,242,248,.11);
  --cm-home-muted:#969eaa;
  --cm-home-text:#f5f7fa;
  --cm-home-soft:#c4cad3;
  --cm-home-accent:#e8edf4;
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  margin:0 auto;
  padding:8px 0 calc(112px + env(safe-area-inset-bottom,0px));
  overflow:hidden;
  color:var(--cm-home-text);
  background:
    radial-gradient(ellipse at 94% 2%,rgba(116,137,164,.13),transparent 29%),
    radial-gradient(ellipse at 0% 36%,rgba(84,96,116,.075),transparent 27%),
    var(--cm-home-bg);
  font-family:"Vazirmatn","SF Pro Text","Segoe UI",Tahoma,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.cm-home-page, .cm-home-page * { box-sizing:border-box; }
.cm-home-page button { font-family:inherit; -webkit-tap-highlight-color:transparent; }
.cm-home-page button:focus-visible,
.cm-home-page [tabindex="0"]:focus-visible { outline:2px solid rgba(245,248,252,.85); outline-offset:3px; }
.cm-home-hero { padding:20px 18px 16px !important; text-align:right; }
.cm-home-eyebrow { display:inline-flex; align-items:center; gap:8px; padding:6px 10px !important; margin:0 0 9px; border:1px solid rgba(231,237,245,.11) !important; border-radius:999px !important; background:rgba(255,255,255,.035) !important; color:#bfc6d0 !important; font-size:10px !important; font-weight:750; letter-spacing:0; }
.cm-home-eyebrow-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:#f3f5f8 !important; box-shadow:0 0 0 4px rgba(255,255,255,.075) !important; }
.cm-home-hero h1 { max-width:570px; margin:0 !important; font-size:clamp(25px,6.4vw,35px) !important; line-height:1.46 !important; font-weight:900 !important; letter-spacing:-.045em !important; color:#f7f8fa !important; }
.cm-home-hero h1 span { color:#aeb8c6 !important; }
.cm-home-hero p { max-width:480px; margin:7px 0 0 !important; font-size:12px !important; line-height:1.95 !important; color:#969eaa !important; }

/* Search is intentionally the first action after the greeting. */
.cm-home-search { position:relative; isolation:isolate; width:calc(100% - 32px) !important; min-height:80px; margin:0 16px 25px !important; padding:13px 14px !important; display:flex !important; align-items:center; gap:12px !important; text-align:right; border:1px solid rgba(233,239,247,.14) !important; border-radius:22px !important; background:linear-gradient(120deg,rgba(255,255,255,.075),rgba(255,255,255,.02) 58%),#161a20 !important; color:#f6f7fa !important; box-shadow:0 13px 30px rgba(0,0,0,.19),inset 0 1px 0 rgba(255,255,255,.055) !important; cursor:pointer; transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.cm-home-search::before { content:""; position:absolute; z-index:-1; inset:0; border-radius:inherit; background:radial-gradient(circle at 0% 100%,rgba(255,255,255,.055),transparent 50%); pointer-events:none; }
.cm-home-search-icon { width:43px !important; height:43px !important; flex:0 0 43px !important; display:grid; place-items:center; border:1px solid rgba(239,243,248,.13) !important; border-radius:15px !important; background:rgba(255,255,255,.065) !important; }
.cm-home-search-icon svg { width:21px !important; height:21px !important; fill:none; stroke:#f1f4f8 !important; stroke-width:1.7; stroke-linecap:round; }
.cm-home-search-copy { display:flex !important; flex:1; flex-direction:column; align-items:flex-start; gap:3px !important; min-width:0; }
.cm-home-search-copy small { color:#9fa8b4 !important; font-size:9px !important; font-weight:800; letter-spacing:.01em; }
.cm-home-search-copy strong { display:block; color:#f4f6f9 !important; font-size:13px !important; font-weight:850 !important; line-height:1.5 !important; }
.cm-home-search-copy > span { display:block; color:#9da5b0; font-size:10px; line-height:1.55; }
.cm-home-search-arrow { width:31px !important; height:31px !important; flex:0 0 31px; display:grid; place-items:center; border:1px solid rgba(238,242,248,.1) !important; border-radius:50% !important; background:rgba(255,255,255,.055) !important; color:#e7ebf1 !important; font-size:16px !important; }
@media (hover:hover) { .cm-home-search:hover { border-color:rgba(241,245,250,.28) !important; transform:translateY(-1px); } }
.cm-home-search:active { transform:scale(.99); }

/* Clear section heading shared by service, listing and showroom blocks. */
.cm-home-service-block { padding:0 16px 23px; }
.cm-home-section-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; margin:0 2px 13px; }
.cm-home-section-intro h2, .cm-home-trust-heading h2 { margin:2px 0 0; color:#f2f5f8; font-size:17px; line-height:1.5; font-weight:900; letter-spacing:-.025em; }
.cm-home-section-kicker { display:block; margin:0; color:#8e99a7; font-size:9px; line-height:1.65; font-weight:850; letter-spacing:.02em; }
.cm-home-section-hint { flex:0 0 auto; padding:5px 8px; border:1px solid rgba(232,238,246,.1); border-radius:999px; color:#a6afb9; background:rgba(255,255,255,.025); font-size:9px; font-weight:750; }
.cm-home-services { display:flex !important; flex-direction:column !important; gap:13px !important; padding:0 !important; direction:rtl; }
.cm-home-services-primary { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:11px !important; min-width:0; direction:rtl; }
.cm-home-services-secondary { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:9px !important; min-width:0; direction:rtl; }
.cm-home-services-primary > .cm-home-tile,
.cm-home-services-secondary > .cm-home-tile { min-width:0 !important; width:100% !important; min-height:0 !important; height:auto !important; padding:0 !important; display:flex !important; flex-direction:column !important; align-items:stretch !important; justify-content:flex-start !important; gap:7px !important; grid-column:auto !important; align-self:stretch; border:0 !important; border-radius:0 !important; background:transparent !important; color:inherit !important; box-shadow:none !important; overflow:visible !important; text-align:center !important; white-space:normal !important; filter:none; }
.cm-home-services-primary > .cm-home-tile .cm-home-tile-surface { width:100% !important; height:clamp(154px,43vw,188px) !important; flex:0 0 auto !important; min-height:0 !important; overflow:hidden !important; position:relative !important; isolation:isolate; border:1px solid rgba(233,239,247,.15) !important; border-radius:23px !important; background:#171b21 !important; box-shadow:0 11px 25px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.07) !important; transform:translateZ(0); transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease; }
.cm-home-tile-listings .cm-home-tile-surface::before,
.cm-home-tile-dealers .cm-home-tile-surface::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(8,10,13,.06) 15%,rgba(8,10,13,.02) 42%,rgba(8,10,13,.88) 100%) !important; pointer-events:none; }
.cm-home-tile-listings .cm-home-listings-photo,
.cm-home-tile-dealers .cm-home-dealers-photo { position:absolute !important; inset:0 !important; z-index:0 !important; display:block; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; transform:scale(1.01); opacity:1 !important; border-radius:inherit; filter:saturate(.87) brightness(.86) contrast(1.035) !important; transition:transform .45s cubic-bezier(.2,.7,.2,1),filter .25s ease; }
.cm-home-tile-listings .cm-home-listings-photo { object-position:center 54% !important; }
.cm-home-tile-dealers .cm-home-dealers-photo { object-position:center 57% !important; }
.cm-home-tile-overlay { position:absolute; right:13px; bottom:14px; left:13px; z-index:3; display:flex; flex-direction:column; align-items:flex-start; gap:3px; text-align:right; color:#fff; }
.cm-home-tile-tag { display:inline-flex; align-items:center; padding:3px 7px; margin-bottom:3px; border:1px solid rgba(255,255,255,.2); border-radius:999px; background:rgba(13,16,20,.44); color:rgba(255,255,255,.85); font-size:8px; font-weight:800; backdrop-filter:blur(10px); }
.cm-home-tile-title { display:block; font-size:16px; line-height:1.5; letter-spacing:-.02em; font-weight:950; text-shadow:0 2px 12px rgba(0,0,0,.5); }
.cm-home-tile-caption { display:block; font-size:9px; font-weight:650; line-height:1.6; color:rgba(247,249,252,.78); }
.cm-home-tile-corner { position:absolute; z-index:4; top:10px; left:10px; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; border:1px solid rgba(255,255,255,.19); background:rgba(13,16,20,.38); color:#fff; font-size:16px; backdrop-filter:blur(10px); }
.cm-home-tile-dealers .cm-home-showroom-badge { position:absolute !important; z-index:5 !important; top:11px !important; right:11px !important; left:auto !important; max-width:calc(100% - 50px); margin:0 !important; padding:5px 8px !important; border:1px solid rgba(255,255,255,.19) !important; border-radius:999px !important; background:rgba(12,15,19,.5) !important; color:#fff !important; font-size:8px !important; line-height:1.3; font-weight:850 !important; backdrop-filter:blur(12px); }
.cm-home-dealers-glow { position:absolute; z-index:2; inset:0; background:linear-gradient(130deg,rgba(255,255,255,.08),transparent 44%); pointer-events:none; }
.cm-home-services-secondary > .cm-home-tile .cm-home-tile-surface { position:relative !important; display:grid !important; place-items:center; width:100% !important; height:76px !important; flex:0 0 76px !important; min-height:0 !important; overflow:hidden !important; border:1px solid rgba(234,240,247,.12) !important; border-radius:19px !important; background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.015)),#171b21 !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.05) !important; transition:border-color .18s ease,transform .18s ease; }
.cm-home-services-secondary .cm-home-tile-label { display:block !important; position:relative; z-index:5; width:100%; margin:0 !important; padding:0 1px !important; color:#e8ebf0 !important; font-size:10px !important; font-weight:800 !important; line-height:1.5 !important; text-align:center; text-shadow:none !important; overflow-wrap:anywhere; }
.cm-home-tile-messages .cm-home-tile-surface { background:radial-gradient(circle at 50% 0%,rgba(184,196,215,.13),transparent 65%),#181c22 !important; }
.cm-home-tile-messages .cm-home-plane { position:absolute !important; left:50% !important; top:50% !important; width:78px !important; height:64px !important; max-width:none !important; transform:translate(-50%,-44%) !important; object-fit:contain; opacity:.64 !important; filter:grayscale(1) brightness(1.2) !important; }
.cm-home-mini-icon { position:absolute; z-index:4; top:7px; left:7px; width:21px; height:21px; display:grid; place-items:center; border-radius:50%; border:1px solid rgba(238,243,250,.10); background:rgba(255,255,255,.055); color:#dfe5ed; font-size:12px; line-height:1; }
.cm-home-tile-qa .cm-home-bg-qa { position:absolute !important; inset:15% 20% !important; width:60% !important; height:70% !important; color:#c9d2de !important; opacity:.53 !important; stroke:currentColor !important; stroke-width:2.5 !important; }
.cm-home-tile-myshop .cm-home-tile-status { position:absolute; z-index:5; right:7px; top:7px; max-width:calc(100% - 38px); padding:3px 5px; border-radius:999px; border:1px solid rgba(240,244,250,.11); background:rgba(255,255,255,.055); color:#d3dae3; font-size:7px; font-weight:800; line-height:1.4; }
.cm-home-tile-create .cm-home-tile-surface { background:radial-gradient(circle at 50% 0%,rgba(217,225,236,.1),transparent 65%),#191e24 !important; }
.cm-home-tile-account .cm-home-tile-surface { background:radial-gradient(circle at 50% 0%,rgba(217,225,236,.13),transparent 68%),#191d23 !important; }
.cm-home-tile-account .cm-home-account-outline { width:47px; height:47px; color:#cbd3de; fill:none; stroke:currentColor; stroke-width:1.4; opacity:.7; }
.cm-home-tile-account .cm-home-acc-glass { position:absolute !important; inset:auto !important; left:50% !important; bottom:-8px !important; width:92px !important; height:66px !important; transform:translateX(-50%) !important; object-fit:contain; opacity:.28 !important; }
.cm-home-tile-account .cm-home-acc-photo { position:absolute !important; inset:0 !important; z-index:0 !important; display:block !important; width:auto !important; height:auto !important; overflow:hidden !important; border-radius:inherit !important; }
.cm-home-tile-account .cm-home-acc-photo img { display:block !important; width:100% !important; height:100% !important; object-fit:cover !important; object-position:center !important; border-radius:inherit; }
.cm-home-tile-account-has-photo > .cm-home-tile-surface { background:transparent !important; border-color:rgba(255,255,255,.2) !important; }
.cm-home-tile-account-has-photo > .cm-home-tile-surface::after { content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.15) 45%,rgba(0,0,0,.55)); pointer-events:none; }
.cm-home-tile-account-has-photo .cm-home-account-outline { position:relative; z-index:1; opacity:0; }
.cm-home-tile:not(:disabled):active .cm-home-tile-surface { transform:scale(.985) !important; }
@media (hover:hover) {
  .cm-home-services-primary > .cm-home-tile:hover .cm-home-tile-surface { border-color:rgba(246,249,253,.3) !important; box-shadow:0 16px 34px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.08) !important; }
  .cm-home-services-primary > .cm-home-tile:hover .cm-home-listings-photo,
  .cm-home-services-primary > .cm-home-tile:hover .cm-home-dealers-photo { transform:scale(1.045); filter:saturate(.98) brightness(.93) contrast(1.04) !important; }
  .cm-home-services-secondary > .cm-home-tile:hover .cm-home-tile-surface { border-color:rgba(246,249,253,.26) !important; transform:translateY(-2px); }
}
.cm-home-tile:disabled { opacity:1 !important; }

/* Latest-listing rail: cards keep their own marketplace design, while the rail gains predictable snap points. */
.cm-home-latest { margin:0 !important; padding:0 16px 25px !important; min-width:0; }
.cm-home-section-heading { display:flex !important; align-items:flex-end !important; justify-content:space-between !important; gap:12px !important; margin:0 2px 13px !important; }
.cm-home-section-heading > div { min-width:0; }
.cm-home-section-heading h2 { margin:2px 0 0 !important; color:#f3f5f8 !important; font-size:18px !important; line-height:1.5; font-weight:900 !important; letter-spacing:-.025em !important; }
.cm-home-section-heading p { margin:4px 0 0 !important; color:#929ba7 !important; font-size:10px !important; line-height:1.7; }
.cm-home-section-heading button { display:inline-flex !important; align-items:center; justify-content:center; gap:5px; flex:0 0 auto; min-height:32px; padding:6px 10px !important; border:1px solid rgba(237,242,248,.12) !important; border-radius:999px !important; background:rgba(255,255,255,.045) !important; color:#dbe1e9 !important; font-size:9px !important; font-weight:800; }
.cm-home-section-heading button span { font-size:13px; }
.cm-home-featured-rail { display:flex !important; gap:12px !important; width:100%; min-width:0; padding:1px 0 13px !important; margin:0; overflow-x:auto !important; overflow-y:hidden !important; scroll-snap-type:x mandatory; scroll-snap-stop:normal; scroll-padding-inline:2px; scrollbar-width:none; overscroll-behavior-x:contain; overscroll-behavior-y:auto; -webkit-overflow-scrolling:touch; touch-action:pan-x pan-y; }
.cm-home-featured-rail::-webkit-scrollbar { display:none; }
.cm-home-featured-rail > .xc { flex:0 0 82% !important; width:82%; max-width:360px; min-width:0; scroll-snap-align:start; scroll-snap-stop:normal; }
.cm-home-empty-latest { flex:0 0 100%; width:100%; padding:22px 16px; border:1px dashed rgba(230,237,246,.18); border-radius:18px; background:rgba(255,255,255,.02); color:#9aa3af; font-size:11px; line-height:1.8; text-align:center; }

/* One editorial spotlight replaces repeated promotional actions. */
.cm-home-promos { position:relative; min-width:0; margin:0 16px 28px !important; }
.cm-home-promo-track { display:block !important; overflow:hidden !important; border-radius:24px !important; }
.cm-home-promo-slide.cm-home-promo-editorial { position:relative; display:block; width:100%; height:clamp(190px,51vw,226px) !important; min-height:190px; overflow:hidden; isolation:isolate; border:1px solid rgba(232,239,248,.14) !important; border-radius:24px !important; background:#171b22 !important; }
.cm-home-promo-editorial .cm-home-promo-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 53%; filter:saturate(.82) brightness(.78) contrast(1.04) !important; }
.cm-home-promo-editorial::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(270deg,rgba(8,10,13,.97) 0%,rgba(8,10,13,.83) 37%,rgba(8,10,13,.38) 67%,rgba(8,10,13,.05) 100%) !important; pointer-events:none; }
.cm-home-promo-editorial .cm-home-promo-copy { top:50% !important; right:17px !important; left:auto !important; width:58% !important; max-width:310px; transform:translateY(-50%) !important; text-align:right !important; }
.cm-home-promo-editorial .cm-home-promo-kicker { display:flex; align-items:center; gap:7px; margin:0 0 7px !important; color:#b6c0ce !important; font-size:9px !important; font-weight:850 !important; }
.cm-home-promo-editorial .cm-home-promo-kicker i { display:inline-block; width:5px; height:5px; border-radius:50%; background:#e7ecf2 !important; box-shadow:0 0 0 4px rgba(255,255,255,.08) !important; }
.cm-home-promo-editorial .cm-home-promo-copy h2 { margin:0 !important; font-size:clamp(18px,5vw,25px) !important; line-height:1.55 !important; font-weight:850 !important; letter-spacing:-.035em !important; color:#f4f6f9 !important; }
.cm-home-promo-editorial .cm-home-promo-copy h2 strong { color:#fff !important; font-weight:950 !important; }
.cm-home-promo-editorial .cm-home-promo-copy p { margin:5px 0 12px !important; color:#bec5ce !important; font-size:10px !important; line-height:1.8 !important; }
.cm-home-promo-editorial .cm-home-promo-copy button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:34px; padding:7px 12px !important; border:1px solid rgba(255,255,255,.12) !important; border-radius:999px !important; background:#f0f3f7 !important; color:#12161c !important; font-size:10px !important; font-weight:900 !important; box-shadow:0 5px 16px rgba(0,0,0,.18); }
.cm-home-promo-index { position:absolute; z-index:2; bottom:12px; left:13px; display:flex; align-items:center; gap:7px; color:rgba(248,250,253,.74); font-size:8px; letter-spacing:.04em; font-weight:800; }
.cm-home-promo-index i { display:inline-block; width:22px; height:1px; background:rgba(255,255,255,.6); }

/* Showroom directory rail inherits the shared card styles, with a clear heading hierarchy. */
.cm-home-showrooms.sr-home { width:auto; margin:0 16px 26px !important; padding:0 !important; overflow:visible; background:transparent !important; }
.cm-home-showrooms .sr-section-head { align-items:flex-end !important; gap:12px; margin:0 2px 12px !important; }
.cm-home-showrooms .sr-section-head > div { min-width:0; }
.cm-home-showrooms .sr-section-head h2 { margin:2px 0 0 !important; color:#f3f5f8 !important; font-size:18px !important; font-weight:900 !important; line-height:1.5; letter-spacing:-.025em; }
.cm-home-showroom-subtitle { margin:4px 0 0; color:#929ba7; font-size:10px; line-height:1.7; }
.cm-home-showrooms .sr-section-head button { display:inline-flex; align-items:center; gap:5px; flex:0 0 auto; padding:6px 0 !important; color:#cbd2db !important; font-size:9px !important; font-weight:850 !important; white-space:nowrap; }
.cm-home-showrooms .sr-rail { gap:11px !important; padding:2px 2px 13px !important; margin:0 !important; scroll-padding-inline:2px; scroll-snap-type:x mandatory; scroll-snap-stop:normal; overscroll-behavior-x:contain; overscroll-behavior-y:auto; touch-action:pan-x pan-y; }
.cm-home-showrooms .sr-rail .sr-card { flex:0 0 82% !important; width:82% !important; max-width:340px !important; scroll-snap-align:start; border-radius:20px !important; }
.cm-home-showrooms .sr-home-empty { border:1px dashed rgba(230,237,246,.15); background:rgba(255,255,255,.025) !important; color:#9aa3af !important; }

/* Small trust strip: communicates existing product value without adding another carousel. */
.cm-home-trust-strip { margin:0 16px 24px; padding:17px 14px 14px; border:1px solid rgba(231,238,247,.09); border-radius:22px; background:linear-gradient(135deg,rgba(255,255,255,.045),rgba(255,255,255,.012)),#11151a; }
.cm-home-trust-heading { padding:0 2px 12px; }
.cm-home-trust-heading h2 { font-size:15px !important; }
.cm-home-trust-items { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.cm-home-trust-item { display:flex; flex-direction:column; align-items:flex-start; gap:8px; min-width:0; padding:10px 8px; border:1px solid rgba(232,238,246,.07); border-radius:15px; background:rgba(255,255,255,.025); }
.cm-home-trust-icon { width:29px; height:29px; display:grid; place-items:center; border:1px solid rgba(232,238,246,.11); border-radius:10px; color:#dbe2eb; background:rgba(255,255,255,.04); }
.cm-home-trust-icon svg { display:block; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; }
.cm-home-trust-item > span:last-child { display:flex; flex-direction:column; gap:3px; min-width:0; }
.cm-home-trust-item strong { color:#e6ebf1; font-size:9px; line-height:1.5; font-weight:850; }
.cm-home-trust-item small { color:#8e98a5; font-size:8px; line-height:1.7; }

.cm-home-sell-cta { position:relative; overflow:hidden; margin:0 16px !important; padding:17px 14px !important; gap:11px !important; border:1px solid rgba(235,241,248,.13) !important; border-radius:22px !important; background:radial-gradient(ellipse at 0% 0%,rgba(205,215,229,.12),transparent 60%),linear-gradient(120deg,rgba(255,255,255,.045),rgba(255,255,255,.012)),#161a20 !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 12px 24px rgba(0,0,0,.15) !important; }
.cm-home-sell-cta::after { content:""; position:absolute; left:-24px; bottom:-42px; width:100px; height:100px; border:1px solid rgba(255,255,255,.045); border-radius:50%; box-shadow:0 0 0 13px rgba(255,255,255,.018),0 0 0 27px rgba(255,255,255,.012); pointer-events:none; }
.cm-home-sell-icon { position:relative; z-index:1; width:42px !important; height:42px !important; flex:0 0 42px !important; display:grid; place-items:center; overflow:hidden; border:1px solid rgba(235,241,248,.13) !important; border-radius:14px !important; background:rgba(255,255,255,.06) !important; }
.cm-home-sell-icon img { display:block; width:100%; height:100%; object-fit:contain; padding:4px; filter:grayscale(1) brightness(1.35); }
.cm-home-sell-cta > div { position:relative; z-index:1; flex:1; min-width:0; }
.cm-home-sell-cta .cm-home-section-kicker { margin-bottom:2px; }
.cm-home-sell-cta h2 { margin:0 !important; color:#f3f6f9 !important; font-size:13px !important; line-height:1.55; font-weight:900 !important; }
.cm-home-sell-cta p { margin:4px 0 0 !important; color:#9ca5b1 !important; font-size:9px !important; line-height:1.8 !important; }
.cm-home-sell-cta button { position:relative; z-index:2; display:inline-flex !important; align-items:center; justify-content:center; gap:6px; flex:0 0 auto; min-height:36px; padding:8px 11px !important; border:1px solid rgba(255,255,255,.12) !important; border-radius:999px !important; background:#eef2f6 !important; color:#13171c !important; font-size:10px !important; font-weight:950 !important; }
.cm-home-sell-cta button span { font-size:13px; }
.cm-home-footer-note { padding:22px 16px 5px !important; color:#68717d !important; font-size:9px !important; line-height:1.7; letter-spacing:.02em; }
.cm-home-footer-note span { padding-inline:3px; color:#929ba6; }

/* Small screens: protect card labels and the seller CTA from crowding. */
@media (max-width:380px) {
  .cm-home-hero { padding:16px 15px 14px !important; }
  .cm-home-hero h1 { font-size:25px !important; }
  .cm-home-hero p { font-size:11px !important; }
  .cm-home-search { width:calc(100% - 28px) !important; margin-inline:14px !important; padding:11px !important; gap:9px !important; }
  .cm-home-search-copy strong { font-size:12px !important; }
  .cm-home-search-copy > span { font-size:9px; }
  .cm-home-service-block,.cm-home-latest { padding-inline:13px !important; }
  .cm-home-services-primary { gap:8px !important; }
  .cm-home-services-secondary { gap:7px !important; }
  .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface { height:151px !important; border-radius:20px !important; }
  .cm-home-services-secondary > .cm-home-tile .cm-home-tile-surface { height:69px !important; flex-basis:69px !important; border-radius:16px !important; }
  .cm-home-services-secondary .cm-home-tile-label { font-size:9px !important; }
  .cm-home-tile-overlay { right:10px; bottom:11px; left:10px; }
  .cm-home-tile-title { font-size:14px; }
  .cm-home-tile-caption { font-size:8px; }
  .cm-home-tile-tag { font-size:7px; }
  .cm-home-tile-dealers .cm-home-showroom-badge { right:7px !important; top:7px !important; font-size:7px !important; }
  .cm-home-trust-strip,.cm-home-sell-cta,.cm-home-showrooms.sr-home,.cm-home-promos { margin-inline:13px !important; }
  .cm-home-trust-strip { padding:13px 10px 10px; }
  .cm-home-trust-item { padding:8px 6px; }
  .cm-home-trust-item strong { font-size:8px; }
  .cm-home-trust-item small { font-size:7px; }
  .cm-home-sell-cta { padding:13px 10px !important; gap:8px !important; }
  .cm-home-sell-icon { width:34px !important; height:34px !important; flex-basis:34px !important; }
  .cm-home-sell-cta h2 { font-size:11px !important; }
  .cm-home-sell-cta p { font-size:8px !important; }
  .cm-home-sell-cta button { padding-inline:8px !important; font-size:9px !important; }
  .cm-home-promo-editorial .cm-home-promo-copy { right:12px !important; width:62% !important; }
  .cm-home-promo-editorial .cm-home-promo-copy h2 { font-size:17px !important; }
  .cm-home-promo-editorial .cm-home-promo-copy p { font-size:9px !important; }
}

/* Tablet and desktop: use the available width instead of leaving a phone-sized column. */
@media (min-width:760px) {
  body:has(#pageContent > [data-page="home"]) #appViewport { width:100% !important; max-width:1120px !important; margin-inline:auto; border-inline:1px solid rgba(255,255,255,.06); }
  body:has(#pageContent > [data-page="home"]) #pageContent { width:100%; }
  .cm-home-page { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:22px; row-gap:0; max-width:1120px !important; padding:26px 28px 100px !important; overflow:visible; }
  .cm-home-hero { grid-column:span 7; align-self:center; padding:20px 0 27px !important; }
  .cm-home-hero h1 { max-width:620px; font-size:38px !important; }
  .cm-home-hero p { font-size:13px !important; }
  .cm-home-search { grid-column:span 5; align-self:center; width:100% !important; margin:0 0 16px !important; }
  .cm-home-service-block,.cm-home-latest,.cm-home-promos,.cm-home-showrooms.sr-home,.cm-home-trust-strip,.cm-home-sell-cta,.cm-home-footer-note { grid-column:1 / -1; }
  .cm-home-service-block { padding:0 0 29px !important; }
  .cm-home-section-intro { margin-bottom:15px; }
  .cm-home-section-intro h2,.cm-home-section-heading h2,.cm-home-showrooms .sr-section-head h2 { font-size:21px !important; }
  .cm-home-services-primary { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:16px !important; }
  .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface { height:230px !important; border-radius:26px !important; }
  .cm-home-tile-title { font-size:22px; }
  .cm-home-tile-caption { font-size:12px; }
  .cm-home-tile-overlay { right:20px; bottom:20px; left:20px; }
  .cm-home-tile-tag { font-size:10px; padding:5px 9px; }
  .cm-home-services-secondary { grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:12px !important; }
  .cm-home-services-secondary > .cm-home-tile .cm-home-tile-surface { height:96px !important; flex-basis:96px !important; border-radius:20px !important; }
  .cm-home-services-secondary .cm-home-tile-label { font-size:12px !important; }
  .cm-home-latest { padding:0 0 28px !important; }
  .cm-home-featured-rail { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px !important; overflow:visible !important; padding-bottom:0 !important; }
  .cm-home-featured-rail > .xc { width:auto !important; max-width:none; min-width:0; flex:none !important; }
  .cm-home-promos { margin:0 0 30px !important; }
  .cm-home-promo-slide.cm-home-promo-editorial { height:248px !important; border-radius:27px !important; }
  .cm-home-promo-editorial .cm-home-promo-copy { right:32px !important; width:42% !important; }
  .cm-home-promo-editorial .cm-home-promo-copy h2 { font-size:30px !important; }
  .cm-home-promo-editorial .cm-home-promo-copy p { font-size:12px !important; }
  .cm-home-promo-editorial .cm-home-promo-copy button { min-height:40px; font-size:12px !important; }
  .cm-home-showrooms.sr-home { margin:0 0 28px !important; }
  .cm-home-showrooms .sr-rail { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px !important; overflow:visible !important; padding:2px 0 0 !important; }
  .cm-home-showrooms .sr-rail .sr-card { width:auto !important; max-width:none !important; min-width:0; flex:none !important; }
  .cm-home-trust-strip { margin:0 0 24px !important; padding:21px 22px 18px; }
  .cm-home-trust-items { gap:12px; }
  .cm-home-trust-item { flex-direction:row; align-items:center; gap:11px; padding:13px; }
  .cm-home-trust-icon { width:38px; height:38px; flex:0 0 38px; }
  .cm-home-trust-icon svg { width:19px; height:19px; }
  .cm-home-trust-item strong { font-size:11px; }
  .cm-home-trust-item small { font-size:9px; }
  .cm-home-sell-cta { margin:0 !important; padding:20px 22px !important; gap:15px !important; }
  .cm-home-sell-icon { width:50px !important; height:50px !important; flex-basis:50px !important; }
  .cm-home-sell-cta h2 { font-size:17px !important; }
  .cm-home-sell-cta p { font-size:11px !important; }
  .cm-home-sell-cta button { min-height:42px; padding:10px 18px !important; font-size:12px !important; }
  .cm-home-footer-note { padding-top:26px !important; }
}
@media (min-width:1100px) {
  .cm-home-page { padding-inline:38px !important; }
  .cm-home-hero h1 { font-size:42px !important; }
  .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface { height:260px !important; }
  .cm-home-featured-rail { gap:18px !important; }
  .cm-home-showrooms .sr-rail { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) {
  .cm-home-page *, .cm-home-page *::before, .cm-home-page *::after { transition:none !important; scroll-behavior:auto !important; animation:none !important; }
}
/* Hard-disable legacy button-level photo overlays now that artwork lives inside the clipped surface. */
.cm-home-services-primary > .cm-home-tile-listings::after { content:none !important; display:none !important; }
.cm-home-tile-account-has-photo::after { content:none !important; display:none !important; }

/* CarMaa home refresh: replace decorative tile imagery with restrained dark gradients. */
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface,
.cm-home-page .cm-home-services-secondary > .cm-home-tile .cm-home-tile-surface {
  background: linear-gradient(138deg, rgba(42,56,82,.62) 0%, rgba(17,25,42,.94) 48%, rgba(8,13,25,.98) 100%) !important;
  border: 1px solid rgba(132,157,202,.24) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 12px 28px rgba(0,0,0,.22) !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface::before,
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface::after {
  background: radial-gradient(ellipse at 0% 0%, rgba(90,126,190,.19), transparent 62%),
              linear-gradient(145deg, rgba(255,255,255,.025), transparent 58%) !important;
}
.cm-home-page .cm-home-tile-listings .cm-home-listings-photo,
.cm-home-page .cm-home-tile-dealers .cm-home-dealers-photo,
.cm-home-page .cm-home-tile-account .cm-home-acc-photo,
.cm-home-page .cm-home-tile-account .cm-home-acc-glass,
.cm-home-page .cm-home-tile-messages .cm-home-plane,
.cm-home-page .cm-home-tile-qa .cm-home-bg-qa {
  display: none !important;
}
.cm-home-page .cm-home-tile-listings .cm-home-tile-surface {
  background: radial-gradient(ellipse at 100% 0%, rgba(69,111,190,.26), transparent 58%), linear-gradient(145deg,#182944 0%,#101b30 48%,#090f1d 100%) !important;
}
.cm-home-page .cm-home-tile-dealers .cm-home-tile-surface {
  background: radial-gradient(ellipse at 100% 0%, rgba(61,145,133,.23), transparent 58%), linear-gradient(145deg,#15302f 0%,#102321 48%,#091514 100%) !important;
}
.cm-home-page .cm-home-tile-messages .cm-home-tile-surface {
  background: radial-gradient(ellipse at 100% 0%, rgba(151,111,67,.24), transparent 58%), linear-gradient(145deg,#30251c 0%,#211a16 48%,#100d0b 100%) !important;
}
.cm-home-page .cm-home-tile-qa .cm-home-tile-surface {
  background: radial-gradient(ellipse at 100% 0%, rgba(155,76,119,.23), transparent 58%), linear-gradient(145deg,#301c2b 0%,#211522 48%,#100a11 100%) !important;
}
.cm-home-page .cm-home-tile-account .cm-home-tile-surface,
.cm-home-page .cm-home-tile-account-has-photo > .cm-home-tile-surface {
  background: radial-gradient(ellipse at 100% 0%, rgba(76,109,184,.24), transparent 58%), linear-gradient(145deg,#1b2741 0%,#111a2d 48%,#090e19 100%) !important;
}
.cm-home-page .cm-home-tile-create .cm-home-tile-surface,
.cm-home-page .cm-home-tile-myshop .cm-home-tile-surface {
  background: radial-gradient(ellipse at 100% 0%, rgba(109,130,166,.18), transparent 62%), linear-gradient(145deg,#202a3b 0%,#151d2b 50%,#0b101a 100%) !important;
}
.cm-home-page .cm-home-tile-overlay { text-shadow: 0 2px 12px rgba(0,0,0,.32); }
.cm-home-page .cm-home-tile-title { text-shadow: none !important; }
.cm-home-page .cm-home-tile-surface:hover {
  border-color: rgba(154,181,231,.42) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.075), 0 16px 34px rgba(0,0,0,.3) !important;
}


/* ================================================================
   CARMAA HOME — PREMIUM SMART SEARCH PANEL
   Replaces the plain search strip with a layered dark gradient module.
   Keeps the existing openSearchOverlay action and search flow intact.
   ================================================================ */
.cm-home-search-panel {
  position: relative;
  isolation: isolate;
  min-width: 0;
  width: calc(100% - 32px);
  margin: 0 16px 28px;
  padding: 16px;
  overflow: hidden;
  border: 1px solid rgba(104, 151, 225, .30);
  border-radius: 25px;
  background:
    radial-gradient(ellipse at 0% 0%, rgba(20, 169, 255, .17), transparent 45%),
    radial-gradient(ellipse at 100% 100%, rgba(117, 71, 255, .18), transparent 48%),
    linear-gradient(138deg, #111c31 0%, #0b1222 52%, #141126 100%);
  box-shadow: 0 18px 42px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.07);
}
.cm-home-search-panel::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: 210px;
  height: 210px;
  top: -145px;
  left: -68px;
  border-radius: 50%;
  background: rgba(33, 159, 255, .20);
  filter: blur(38px);
  pointer-events: none;
}
.cm-home-search-panel::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.018) 50%, transparent 76%);
  pointer-events: none;
}
.cm-home-search-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 14px;
}
.cm-home-search-heading { min-width: 0; }
.cm-home-search-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 7px;
  color: #8fd7ff;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .01em;
}
.cm-home-search-eyebrow i {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: #46d5ff;
  box-shadow: 0 0 12px rgba(70,213,255,.82);
}
.cm-home-search-heading h2 {
  margin: 0;
  color: #f5f8ff;
  font-size: 16px;
  font-weight: 950;
  line-height: 1.65;
  letter-spacing: -.035em;
}
.cm-home-search-heading p {
  margin: 3px 0 0;
  color: #a2b0c7;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.8;
}
.cm-home-search-orb {
  display: grid;
  place-items: center;
  width: 45px;
  height: 45px;
  flex: 0 0 45px;
  border: 1px solid rgba(104,191,255,.28);
  border-radius: 16px;
  color: #c6eaff;
  background: linear-gradient(145deg, rgba(43,173,255,.20), rgba(109,84,255,.14));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 6px 22px rgba(18,105,224,.10);
}
.cm-home-search-orb svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.cm-home-page .cm-home-search {
  position: relative;
  isolation: isolate;
  display: flex !important;
  align-items: center;
  gap: 11px !important;
  width: 100% !important;
  min-width: 0;
  min-height: 68px;
  margin: 0 !important;
  padding: 10px 11px !important;
  text-align: right;
  color: #f5f8ff !important;
  border: 1px solid rgba(126,166,226,.28) !important;
  border-radius: 19px !important;
  background: linear-gradient(115deg, rgba(8,17,35,.98), rgba(12,20,41,.94)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 8px 22px rgba(0,0,0,.14) !important;
  cursor: pointer;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.cm-home-page .cm-home-search::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(105deg, rgba(25,151,255,.055), transparent 42%, rgba(134,82,255,.055));
  pointer-events: none;
}
.cm-home-page .cm-home-search-icon {
  display: grid;
  place-items: center;
  width: 43px !important;
  height: 43px !important;
  flex: 0 0 43px !important;
  border: 1px solid rgba(255,255,255,.17) !important;
  border-radius: 14px !important;
  color: #fff;
  background: linear-gradient(145deg, #20aaff 0%, #4068ff 53%, #764bff 100%) !important;
  box-shadow: 0 5px 17px rgba(50,111,255,.30), inset 0 1px 0 rgba(255,255,255,.22);
}
.cm-home-page .cm-home-search-icon svg {
  width: 22px !important;
  height: 22px !important;
  fill: none;
  stroke: currentColor !important;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.cm-home-page .cm-home-search-copy {
  flex: 1 1 auto;
  min-width: 0;
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px !important;
}
.cm-home-page .cm-home-search-copy small {
  color: #8bb8ec !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  line-height: 1.4;
}
.cm-home-page .cm-home-search-copy strong {
  display: block;
  max-width: 100%;
  overflow: hidden;
  color: #eff5ff !important;
  font-size: 11.5px !important;
  font-weight: 850 !important;
  line-height: 1.65 !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cm-home-page .cm-home-search-filter-icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border: 1px solid rgba(120,168,255,.28);
  border-radius: 13px;
  color: #c7dcff;
  background: linear-gradient(145deg, rgba(37,105,202,.23), rgba(101,71,206,.20));
}
.cm-home-page .cm-home-search-filter-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.cm-home-search-facets {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  padding-top: 12px;
}
.cm-home-search-facet {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 25px;
  padding: 4px 8px;
  border: 1px solid rgba(146,173,215,.15);
  border-radius: 999px;
  color: #b7c5dc;
  background: rgba(255,255,255,.035);
  font-size: 9px;
  font-weight: 650;
  white-space: nowrap;
}
.cm-home-search-facet i {
  display: inline-grid;
  place-items: center;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  color: #86dfff;
  background: rgba(44,164,255,.13);
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
}
.cm-home-search-facet-note {
  margin-inline-start: auto;
  color: #7187aa;
  font-size: 8px;
  font-weight: 700;
  white-space: nowrap;
}
@media (hover:hover) {
  .cm-home-page .cm-home-search:hover {
    transform: translateY(-1px);
    border-color: rgba(88,177,255,.58) !important;
    box-shadow: 0 9px 25px rgba(20,105,221,.12), inset 0 1px 0 rgba(255,255,255,.075) !important;
  }
}
.cm-home-page .cm-home-search:active { transform: scale(.995); }
.cm-home-page .cm-home-search:focus-visible { outline: 2px solid #6dc8ff; outline-offset: 3px; }
@media (max-width:380px) {
  .cm-home-search-panel { width: calc(100% - 26px); margin: 0 13px 23px; padding: 13px; border-radius: 22px; }
  .cm-home-search-heading h2 { font-size: 14px; }
  .cm-home-search-heading p { max-width: 245px; font-size: 9px; }
  .cm-home-search-orb { width: 39px; height: 39px; flex-basis: 39px; border-radius: 14px; }
  .cm-home-page .cm-home-search { min-height: 62px; gap: 8px !important; padding: 8px !important; border-radius: 16px !important; }
  .cm-home-page .cm-home-search-icon { width: 38px !important; height: 38px !important; flex-basis: 38px !important; border-radius: 12px !important; }
  .cm-home-page .cm-home-search-copy strong { font-size: 10px !important; }
  .cm-home-page .cm-home-search-filter-icon { width: 35px; height: 35px; flex-basis: 35px; border-radius: 11px; }
  .cm-home-search-facets { gap: 5px; padding-top: 10px; }
  .cm-home-search-facet { padding: 4px 6px; font-size: 8px; }
  .cm-home-search-facet-note { display: none; }
}
@media (min-width:760px) {
  .cm-home-search-panel { grid-column: span 5; align-self: center; width: 100%; margin: 0 0 20px; padding: 20px; border-radius: 29px; }
  .cm-home-search-panel-head { margin-bottom: 17px; }
  .cm-home-search-heading h2 { font-size: 19px; }
  .cm-home-search-heading p { font-size: 11px; }
  .cm-home-page .cm-home-search { min-height: 76px; padding: 12px !important; }
  .cm-home-page .cm-home-search-copy strong { font-size: 12px !important; }
  .cm-home-search-facets { gap: 6px; }
  .cm-home-search-facet { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .cm-home-page .cm-home-search { transition: none; }
}


/* v122 — Homepage service cards: one full-width horizontal card per row. */
.cm-home-page .cm-home-services {
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
  width:100% !important;
  padding:0 !important;
}
.cm-home-page .cm-home-services-primary {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:12px !important;
  width:100% !important;
  min-width:0 !important;
  direction:rtl !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile {
  display:block !important;
  position:relative !important;
  width:100% !important;
  height:clamp(154px,28vw,260px) !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  border:0 !important;
  border-radius:22px !important;
  background:transparent !important;
  box-shadow:none !important;
  text-align:right !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface {
  display:block !important;
  position:relative !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:hidden !important;
  border-radius:22px !important;
  transform:translateZ(0);
}
.cm-home-page .cm-home-services-primary .cm-home-tile-overlay {
  right:18px !important;
  left:18px !important;
  bottom:17px !important;
  z-index:4 !important;
  align-items:flex-start !important;
  gap:3px !important;
  text-align:right !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-tag {
  margin-bottom:3px !important;
  padding:4px 8px !important;
  font-size:9px !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-title {
  font-size:clamp(16px,4vw,20px) !important;
  line-height:1.45 !important;
  font-weight:900 !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-caption {
  font-size:10px !important;
  line-height:1.7 !important;
  color:rgba(241,245,250,.72) !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-corner {
  top:14px !important;
  left:14px !important;
  width:32px !important;
  height:32px !important;
  font-size:17px !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-dealers .cm-home-showroom-badge {
  top:15px !important;
  right:15px !important;
  font-size:9px !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-account .cm-home-account-outline {
  position:absolute !important;
  z-index:2 !important;
  display:block !important;
  left:28px !important;
  top:50% !important;
  width:clamp(54px,13vw,78px) !important;
  height:clamp(54px,13vw,78px) !important;
  transform:translateY(-50%) !important;
  color:#cdd8e8 !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.3 !important;
  opacity:.72 !important;
  pointer-events:none !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-account .cm-home-tile-surface::after {
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
  background:radial-gradient(ellipse at 17% 50%,rgba(145,174,224,.16),transparent 29%),linear-gradient(145deg,rgba(255,255,255,.02),transparent 60%) !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-account .cm-home-tile-overlay,
.cm-home-page .cm-home-services-primary .cm-home-tile-account .cm-home-tile-corner {
  z-index:4 !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-account-has-photo .cm-home-acc-photo {
  display:block !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-account-has-photo .cm-home-acc-photo img {
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-account-has-photo .cm-home-tile-surface::after {
  background:linear-gradient(180deg,rgba(0,0,0,.06) 10%,rgba(0,0,0,.12) 40%,rgba(0,0,0,.72) 100%) !important;
}
.cm-home-page .cm-home-services-primary .cm-home-tile-account-has-photo .cm-home-account-outline {
  display:none !important;
}
@media (prefers-reduced-motion:reduce) {
  .cm-home-page .cm-home-services-primary > .cm-home-tile { transition:none !important; }
}


/* CarMaa homepage slogan: standalone bold headline, not a pill/badge */
.cm-home-hero { padding: 24px 18px 20px !important; text-align: right !important; }
.cm-home-hero .cm-home-slogan { display:block; margin:0 !important; padding:0 !important; border:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; color:#f7f8fb !important; font-size:clamp(27px, 7.2vw, 38px) !important; line-height:1.45 !important; font-weight:950 !important; letter-spacing:-.045em !important; }
.cm-home-hero .cm-home-slogan::before, .cm-home-hero .cm-home-slogan::after { content:none !important; display:none !important; }
@media (min-width: 700px) { .cm-home-hero .cm-home-slogan { font-size:42px !important; } }


/* CarMaa listings tile — use the supplied Porsche GT3 photo with a curved top shadow. */
.cm-home-page .cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface {
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
  background:#07090e !important;
  border:1px solid rgba(236,242,250,.17) !important;
  box-shadow:0 12px 30px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.09) !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile-listings .cm-home-listings-photo {
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center 54% !important;
  margin:0 !important;
  opacity:1 !important;
  filter:saturate(1.04) contrast(1.04) brightness(.95) !important;
  transform:none !important;
  z-index:0 !important;
  pointer-events:none !important;
}
.cm-home-page .cm-home-listings-shadow {
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  z-index:2 !important;
  pointer-events:none !important;
  background:linear-gradient(138deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.72) 39%, rgba(0,0,0,.34) 70%, rgba(0,0,0,.08) 100%) !important;
  clip-path:polygon(0 0, 67% 0, 65.5% 5%, 62.5% 11%, 58.5% 18%, 55% 25%, 49.5% 33%, 44.5% 41%, 37.5% 51%, 29.5% 62%, 20% 74%, 10% 88%, 0 100%) !important;
  filter:drop-shadow(5px 8px 12px rgba(0,0,0,.74)) !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface::before {
  content:"" !important;
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
  background:linear-gradient(180deg,rgba(0,0,0,.12) 0%,transparent 37%,rgba(0,0,0,.58) 100%) !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-overlay,
.cm-home-page .cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-corner {
  z-index:4 !important;
}
@media (prefers-reduced-motion:reduce) {
  .cm-home-page .cm-home-listings-shadow { filter:none !important; }
}

/* CarMaa homepage: unified dark glass cards, without the Porsche artwork or curved shadow. */
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface,
.cm-home-page .cm-home-services-secondary > .cm-home-tile .cm-home-tile-surface {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, rgba(27, 33, 46, .78) 0%, rgba(13, 18, 29, .83) 52%, rgba(6, 10, 18, .88) 100%) !important;
  border: 1px solid rgba(153, 181, 223, .20) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .075) !important;
  -webkit-backdrop-filter: blur(20px) saturate(125%) !important;
  backdrop-filter: blur(20px) saturate(125%) !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface::before,
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  border-radius: inherit !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface::before {
  background: linear-gradient(155deg, rgba(255,255,255,.055) 0%, rgba(255,255,255,.012) 27%, transparent 54%) !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface::after {
  background: radial-gradient(ellipse at 100% 0%, rgba(71, 132, 220, .09), transparent 54%) !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile-listings .cm-home-listings-photo,
.cm-home-page .cm-home-services-primary > .cm-home-tile-listings .cm-home-listings-shadow {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  background: none !important;
  filter: none !important;
  box-shadow: none !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile-listings .cm-home-tile-surface {
  background: linear-gradient(135deg, rgba(27, 33, 46, .78) 0%, rgba(13, 18, 29, .83) 52%, rgba(6, 10, 18, .88) 100%) !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-overlay,
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-corner,
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-showroom-badge,
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-account-outline {
  z-index: 3 !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile:hover .cm-home-tile-surface {
  border-color: rgba(125, 180, 255, .36) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .10) !important;
}

/* Keep back controls in the page header, pinned to its physical left edge. */
.cm-back-in-header { position: absolute !important; left: 12px !important; right: auto !important; top: 50% !important; transform: translateY(-50%); z-index: 8; margin: 0 !important; }
.cm-back-in-header:active { transform: translateY(-50%) scale(.97); }
.page-header-sticky, .explore-header, .cm-showroom-page-header, [data-page-header], .page-header { position: relative; }

/* CarMaa: lightweight matte-dark cards (no glass blur, no blue tint). */
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface,
.cm-home-page .cm-home-services-secondary > .cm-home-tile .cm-home-tile-surface {
  background: linear-gradient(145deg, #202124 0%, #17181b 52%, #101113 100%) !important;
  border: 1px solid rgba(255,255,255,.09) !important;
  box-shadow: 0 5px 14px rgba(0,0,0,.22) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface::before,
.cm-home-page .cm-home-services-primary > .cm-home-tile .cm-home-tile-surface::after,
.cm-home-page .cm-home-services-secondary > .cm-home-tile .cm-home-tile-surface::before,
.cm-home-page .cm-home-services-secondary > .cm-home-tile .cm-home-tile-surface::after {
  display: none !important;
  content: none !important;
  background: none !important;
  filter: none !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile:hover .cm-home-tile-surface,
.cm-home-page .cm-home-services-secondary > .cm-home-tile:hover .cm-home-tile-surface {
  border-color: rgba(255,255,255,.15) !important;
  box-shadow: 0 7px 18px rgba(0,0,0,.28) !important;
}
.cm-home-page .cm-home-services-primary > .cm-home-tile-listings .cm-home-listings-photo,
.cm-home-page .cm-home-services-primary > .cm-home-tile-listings .cm-home-listings-shadow {
  display: none !important; visibility: hidden !important; opacity: 0 !important;
  background: none !important; filter: none !important; box-shadow: none !important;
}

/* Homepage section actions live at the bottom, aligned opposite the section title. */
.cm-home-section-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 2px 0;direction:rtl}
.cm-home-section-footer button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:7px 12px;border:1px solid rgba(237,242,248,.14);border-radius:999px;background:#17191d;color:#e2e5e9;font-size:11px;font-weight:800;white-space:nowrap}
.cm-home-section-footer button span,.cm-home-section-footer button svg{width:9px;height:15px;flex:0 0 auto}
.cm-home-section-footer button svg{fill:none;stroke:currentColor;stroke-width:1.7}
.cm-home-section-heading,.cm-home-showrooms .sr-section-head{justify-content:flex-start!important}

/* Account profile cover banner: behind avatar, fades into matte dark panel. */
.account-profile { position: relative; overflow: hidden; padding-top: 0 !important; }
.account-profile-banner { position: relative; width: calc(100% + 40px); height: 220px; margin: 0 -20px -76px; flex: 0 0 auto; background: #171717; background-size: cover; background-position: center 42%; border-radius: 0 0 18px 18px; overflow: hidden; }
.account-profile-banner::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom, rgba(0,0,0,.08) 0%, rgba(0,0,0,.12) 35%, rgba(9,9,9,.78) 73%, #090909 100%); }
.account-profile-banner.has-banner { background-color: #171717; }
.account-banner-change { position: absolute; z-index: 8; top: 8px; right: 14px; padding: 7px 12px; border-radius: 999px; background: rgba(18,18,18,.88); color: #f3f3f3; border: 1px solid rgba(255,255,255,.22); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; pointer-events: auto; }
.account-avatar-wrap { z-index: 3; margin-top: 0; margin-bottom: 14px; }
.account-profile > [data-slot="name"], .account-profile > div:last-child { position: relative; z-index: 1; }


/* Account cover banner starts at the very top of the shared header and spans
   down to the showroom card. It sits behind page content and preserves the
   matte-dark fade at its lower edge. */
body:has(#pageContent > [data-page="account"]) #pageBlurWrap { position: relative; isolation: isolate; }
body:has(#pageContent > [data-page="account"]) #pageContent { position: relative; z-index: 1; }
body:not(:has(#pageContent > [data-page="account"])) #pageBlurWrap > .account-cover-banner-layer { display: none !important; }
.account-profile-banner-spacer { width: 100%; height: 144px; flex: 0 0 144px; pointer-events: none; }
.account-profile { overflow: visible !important; }
.account-profile-banner.account-cover-banner-layer {
  position: absolute !important; left: 0 !important; right: 0 !important; top: 0;
  width: auto !important; height: 480px; margin: 0 !important; flex: none !important;
  border-radius: 0 !important; z-index: 0; pointer-events: none;
  background-color: #171717; background-size: cover; background-position: center 38%;
}
.account-profile-banner.account-cover-banner-layer::after {
  background: linear-gradient(to bottom, rgba(0,0,0,.16) 0%, rgba(0,0,0,.22) 34%, rgba(8,9,11,.72) 70%, #08090b 100%);
}
/* The choose-banner control is moved into the foreground profile layer for reliable mobile taps. */
.account-profile > .account-banner-change { pointer-events: auto; }
body:has(#pageContent > [data-page="account"]) #siteHeader,
body:has(#pageContent > [data-page="account"]) #stickyHeaderGroup { background: transparent !important; }
body:has(#pageContent > [data-page="account"]) #stickyHeaderGroup::after { display: none !important; }
body:has(#pageContent > [data-page="account"]) #pageContent > [data-page="account"] .page-header-sticky { background: transparent !important; }
body:has(#pageContent > [data-page="account"]) #pageContent > [data-page="account"] .account-body { background: transparent !important; }

/* Account has the shared-header back button already: suppress any legacy page-level duplicate. */
body:has(#pageContent > [data-page="account"]) .cm-universal-back { display: none !important; }

/* Account profile: a compact banner picker grows from the avatar's upper edge. */
.account-profile .account-banner-change{
  position:absolute!important; z-index:9; top:clamp(170px, 27vw, 218px)!important; right:calc(50% - 125px)!important;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:44px; padding:9px 15px; border-radius:13px;
  background:#191a1c; color:#f2f2f2; border:1px solid #34363a;
  font-size:13px; font-weight:750; box-shadow:none; cursor:pointer; pointer-events:auto;
}
.account-profile .account-banner-plus{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:#292b2f;color:#fff;font-size:22px;line-height:1;font-weight:400}
.account-profile:not(.account-has-banner) .account-banner-change{min-width:154px;min-height:54px;justify-content:flex-start;padding:10px 14px}
.account-profile.account-has-banner .account-banner-change{top:clamp(170px, 27vw, 218px)!important;right:calc(50% - 125px)!important;min-width:44px;min-height:44px;padding:8px;border-radius:50%;background:#171819;border-color:#383a3d}
/* Keep the page title centered, with no full-width title strip or background. */
body:has(#pageContent > [data-page="account"]) #pageContent > [data-page="account"] .page-header-sticky,
body:has(#pageContent > [data-page="account"]) #pageContent > [data-page="account"] .page-header-sticky > *{background:transparent!important;box-shadow:none!important}
body:has(#pageContent > [data-page="account"]) #pageContent > [data-page="account"] .page-header-sticky{display:flex;justify-content:center;text-align:center}
body:has(#pageContent > [data-page="account"]) #pageContent > [data-page="account"] .page-header-sticky [data-page-title],
body:has(#pageContent > [data-page="account"]) #pageContent > [data-page="account"] .page-header-sticky h1{width:100%;text-align:center;background:transparent!important}


/* Stable account cover geometry: never animate or resize the banner while scrolling. */
.account-profile-banner.account-cover-banner-layer {
  box-sizing: border-box !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
  will-change: auto !important;
}
.account-profile-banner.account-cover-banner-layer::after {
  transform: none !important;
  transition: none !important;
  animation: none !important;
}

/* Account page final layout correction: the title chrome is relocated into
   #pageHeaderSlot by the app router, so style that live slot (not the template
   inside #pageContent). Remove the opaque full-width strip and center title. */
body:has(#pageContent > [data-page="account"]) #pageHeaderSlot,
body:has(#pageContent > [data-page="account"]) #pageHeaderSlot .page-header-sticky,
body:has(#pageContent > [data-page="account"]) #pageHeaderSlot .page-header-sticky > * {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}
body:has(#pageContent > [data-page="account"]) #pageHeaderSlot .page-header-sticky {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 40px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 3px 0 5px !important;
  border: 0 !important;
  text-align: center !important;
}
body:has(#pageContent > [data-page="account"]) #pageHeaderSlot .page-header-sticky [data-slot="breadcrumbs"] {
  display: none !important;
}
body:has(#pageContent > [data-page="account"]) #pageHeaderSlot .page-header-sticky h1 {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: #f2f2f2 !important;
  text-align: center !important;
  line-height: 1.35 !important;
}

/* Lift the whole account profile and its tabs/content. Keep the banner picker
   attached to the avatar after shortening the spacer by the same amount. */
.account-profile-banner-spacer {
  height: 92px !important;
  min-height: 92px !important;
  flex: 0 0 92px !important;
}
.account-profile .account-banner-change {
  top: 118px !important;
}
.account-profile.account-has-banner .account-banner-change {
  top: 118px !important;
}


/* Account media is editable only on the dedicated account-edit screen. */
.account-profile .account-avatar-wrap { cursor: default !important; pointer-events: none !important; }
.account-profile .account-banner-change,
.account-profile .account-avatar-badge { display: none !important; }
.account-edit-banner-tools { display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr); gap:13px; align-items:center; direction:rtl; padding:12px; border:1px solid #303236; border-radius:17px; background:#151618; }
.account-edit-banner-preview { position:relative; min-width:0; aspect-ratio:16/7; display:flex; align-items:center; justify-content:center; overflow:hidden; border-radius:12px; border:1px dashed #414348; background:#101113; background-size:cover; background-position:center; color:#777c84; font-size:11px; text-align:center; padding:8px; box-sizing:border-box; }
.account-edit-banner-preview.has-banner { border-style:solid; }
.account-edit-banner-preview.has-banner::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(to bottom,transparent 25%,rgba(0,0,0,.35)); }
.account-edit-banner-copy { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:6px; color:#e7e8ea; }
.account-edit-banner-copy strong { font-size:13px; font-weight:800; }
.account-edit-banner-copy p { margin:0; color:#92969e; font-size:10.5px; line-height:1.6; }
.account-edit-banner-button { display:inline-flex; gap:5px; align-items:center; justify-content:center; min-height:35px; margin-top:2px; padding:7px 11px; border-radius:10px; color:#f4f4f5; background:#27292d; border:1px solid #3b3d42; font-size:11.5px; font-weight:750; }
.account-edit-banner-button span { font-size:17px; line-height:1; }
@media (max-width:360px) { .account-edit-banner-tools { grid-template-columns:1fr; } .account-edit-banner-preview { width:100%; aspect-ratio:16/6; } }

/* Deliberate edge-pull interaction at the end of homepage card rails. */
.cm-edge-pull-host { position:relative; }
.cm-edge-pull-indicator { position:absolute; z-index:20; top:50%; left:8px; display:flex; align-items:center; gap:7px; padding:6px 10px 6px 6px; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(22,23,25,.97); color:#f3f4f6; box-shadow:0 8px 24px rgba(0,0,0,.35); opacity:0; transform:translateY(-50%) translateX(-18px) scale(.78); pointer-events:none; transition:opacity .08s linear, transform .08s linear, border-color .12s linear, background .12s linear; white-space:nowrap; }
.cm-edge-pull-indicator.is-visible { visibility:visible; }
.cm-edge-pull-indicator.is-ready { border-color:rgba(255,255,255,.46); background:#303236; }
.cm-edge-pull-plus { display:inline-flex; width:31px; height:31px; flex:0 0 31px; align-items:center; justify-content:center; border-radius:50%; background:#303236; color:#fff; font-size:25px; line-height:1; font-weight:400; }
.cm-edge-pull-label { font-size:10px; font-weight:800; }
.cm-edge-pull-resisting { overscroll-behavior-x:contain; }
@media (prefers-reduced-motion: reduce) { .cm-edge-pull-indicator { transition:none; } }

/* Account cover: part of the page (absolute inside #pageBlurWrap), so it scrolls together with the content. */
.account-profile-banner.account-cover-banner-layer {
  position: absolute !important;
  left: 0 !important; right: 0 !important;
  z-index: 0 !important;
}

/* Account cover: spans from above the header to the middle of the avatar, then fades, blurs and darkens. */
.account-profile-banner.account-cover-banner-layer::after {
  background: linear-gradient(to bottom, rgba(0,0,0,.08) 0%, rgba(0,0,0,.12) 30%, rgba(8,9,11,.5) 62%, rgba(8,9,11,.88) 86%, #08090b 100%) !important;
}
.account-profile-banner.account-cover-banner-layer::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  -webkit-mask-image: linear-gradient(to bottom, transparent 35%, #000 100%);
  mask-image: linear-gradient(to bottom, transparent 35%, #000 100%);
}
.account-profile-banner.account-cover-banner-layer::after { z-index: 2; }

/* Account cover: the whole photo is fitted to the (avatar-middle) banner box instead of being cropped. */
.account-profile-banner.account-cover-banner-layer {
  background-size: 100% 100% !important;
  background-position: center center !important;
}


/* ------------------------------------------------------------------
   PAGE-MATCHED SKELETONS — CarMaa routes use their real layout geometry
   while data is pending; these styles shape placeholders only.
   ------------------------------------------------------------------ */
.cm-skeleton-screen { --cm-sk-bg:rgba(255,255,255,.065); }
.theme-light .cm-skeleton-screen { --cm-sk-bg:rgba(20,23,26,.085); }
.cm-skeleton-screen .skeleton-block { background-color:var(--cm-sk-bg); }
.cm-skeleton-screen button { cursor:default; pointer-events:none!important; }
.cm-sk-filter-main,.cm-sk-filter-chip { display:flex!important; align-items:center; justify-content:center; }
.cm-sk-filter-main .skeleton-block { width:48px; max-width:48px; }
.cm-sk-filter-chip .skeleton-block { max-width:100%; }
.cm-sk-filter-wrap { flex:0 0 auto; }
.cm-sk-field { display:flex; flex-direction:column; gap:9px; min-width:0; }
.cm-sk-label { display:flex; min-height:10px; }
.cm-sk-form-control { display:block; width:100%; border-radius:12px; }
.cm-listings-sk-footer { display:flex; gap:12px; padding:16px; align-items:center; }
.cm-listings-sk-footer .skeleton-block { display:block; height:10px; border-radius:99px; }

/* Homepage: preserve the real responsive section/card dimensions while replacing only media/text. */
.cm-home-skeleton { direction:rtl; overflow:hidden; padding-bottom:26px; }
.cm-home-skeleton .cm-home-sk-banner-track { display:flex; }
.cm-home-skeleton .cm-home-sk-slide { position:relative; overflow:hidden; }
.cm-home-sk-slide-art { position:absolute; inset:0; display:block; border-radius:inherit; opacity:.7; }
.cm-home-sk-slide .cm-hb-copy { position:relative; z-index:1; display:flex; align-items:flex-start; flex-direction:column; gap:10px; }
.cm-home-sk-copy-kicker { width:68px; height:9px; border-radius:99px; }
.cm-home-sk-copy-title { width:72%; max-width:225px; height:21px; border-radius:99px; }
.cm-home-sk-copy-caption { width:82%; max-width:255px; height:11px; border-radius:99px; }
.cm-home-sk-copy-cta { width:96px; height:32px; border-radius:999px; margin-top:5px; }
.cm-home-sk-tile-title { display:block; width:68%; height:14px; border-radius:999px; }
.cm-home-sk-tile-sub { display:block; width:50%; height:9px; border-radius:999px; margin-top:8px; }
.cm-home-sk-art { opacity:.6; }
.cm-home-sk-go { display:block; width:30px; height:30px; border-radius:50%; }
.cm-home-sk-listing-rail { overflow:hidden; }
.cm-home-sk-listing-card { flex:0 0 68%; min-width:0; overflow:hidden; border:1px solid rgba(180,190,205,.12); border-radius:18px; background:rgba(255,255,255,.018); }
.cm-home-sk-listing-photo { display:block; width:100%; aspect-ratio:4/3; border-radius:0; }
.cm-home-sk-listing-body { display:flex; flex-direction:column; gap:10px; padding:12px; }
.cm-home-sk-meta { display:flex; justify-content:space-between; gap:12px; }
.cm-home-sk-promo-image { position:absolute; inset:0; display:block; border-radius:inherit; }
.cm-home-promo-slide { position:relative; overflow:hidden; }
.cm-home-promo-copy { position:relative; z-index:1; display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.cm-home-sk-promo-kicker { width:72px; height:9px; border-radius:99px; }
.cm-home-sk-promo-title { width:66%; height:20px; border-radius:99px; }
.cm-home-sk-promo-copyline { width:90%; max-width:300px; height:11px; border-radius:99px; }
.cm-home-sk-promo-cta { width:100px; height:32px; border-radius:99px; }
.cm-home-sk-showroom-rail { overflow:hidden; }
.cm-home-sk-showroom-card { flex:0 0 76%; min-width:0; }
.cm-home-sk-showroom-media { position:absolute; inset:0; width:100%; height:100%; border-radius:0; }
.cm-home-sk-showroom-card .sr-media { position:relative; overflow:hidden; }
.cm-home-sk-showroom-card .sr-id .skeleton-block { display:block; }
.cm-home-sk-awards { display:flex; gap:5px; }
.cm-home-sk-awards .skeleton-block { flex:none; }
.cm-home-sk-showroom-card .sr-stats>div { display:flex; flex-direction:column; gap:5px; align-items:center; }
.cm-home-trust-icon .skeleton-block { display:block; }
.cm-home-trust-item>span:last-child { display:flex; flex-direction:column; gap:7px; }
.cm-home-sk-sell-title { display:block; width:165px; height:17px; border-radius:99px; margin:8px 0; }
.cm-home-sk-sell-copy { display:block; width:min(240px,90%); height:10px; border-radius:99px; }
.cm-home-sk-sell-button { display:block; width:96px; height:42px; border-radius:999px; }
@media(max-width:420px) { .cm-home-sk-listing-card { flex-basis:78%; } .cm-home-sk-showroom-card { flex-basis:83%; } }
@media(min-width:720px) { .cm-home-sk-listing-card { flex-basis:32%; } .cm-home-sk-showroom-card { flex-basis:31%; } }

/* Showroom directory cards match the live ranking/listing card grid. */
.cm-showroom-sk-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.cm-showroom-sk-stats>div { display:flex; flex-direction:column; align-items:center; gap:7px; padding:13px 6px; border:1px solid rgba(180,190,205,.1); border-radius:14px; }
.cm-showroom-sk-stats strong,.cm-showroom-sk-stats>div>span { display:flex; justify-content:center; }
.cm-showroom-sk-search { display:flex; align-items:center; gap:10px; }
.cm-showroom-sk-search>.skeleton-block { display:block; flex:1; }
.cm-showroom-sk-grid .sr-card { min-width:0; overflow:hidden; }
.cm-showroom-sk-cover { position:absolute; inset:0; display:block; width:100%; height:100%; border-radius:0; }
.cm-showroom-sk-grid .sr-media { position:relative; overflow:hidden; }
.cm-showroom-sk-grid .sr-id { min-width:0; }
.cm-showroom-sk-grid .sr-meta { min-width:0; display:flex; flex-direction:column; gap:7px; }
.cm-showroom-sk-awards { display:flex; flex-wrap:wrap; gap:5px; }
.cm-showroom-sk-awards .skeleton-block { display:block; flex:none; }
.cm-showroom-sk-grid .sr-stats>div { display:flex; flex-direction:column; align-items:center; gap:5px; }
.cm-showroom-sk-grid .sr-rate { display:flex; align-items:center; justify-content:space-between; gap:8px; }

/* Vehicle detail: hero/gallery, title/price facts, owner, specs, tabs, location and sticky contact. */
.cm-vehicle-sk-main-photo { display:block; }
.cm-vehicle-sk-thumb { display:block; width:64px; height:48px; flex:0 0 64px; border-radius:9px; }
.cm-vehicle-sk-thumb-more { width:44px; flex-basis:44px; }
.cm-vehicle-sk-fact-icon { width:24px; height:24px; border-radius:7px; }
.cm-vehicle-sk-fact-value { width:48px; height:13px; border-radius:99px; }
.cm-vehicle-sk-seller { display:flex; align-items:center; gap:10px; }
.cm-vehicle-sk-seller .seller-info { flex:1; display:flex; flex-direction:column; gap:8px; }
.cm-vehicle-sk-seller .seller-type { display:flex; gap:6px; }
.cm-vehicle-sk-tabs { display:flex; gap:8px; overflow:hidden; }
.cm-vehicle-sk-panel { display:flex; flex-direction:column; gap:12px; padding:16px 0; }
.cm-vehicle-sk-map { display:block; width:100%; height:172px; border-radius:16px; }

/* Public profile pages: cover, overlapping avatar, actions, stats, awards, about and listing feed. */
.cm-seller-sk-hero .sp-banner-cover { position:relative; overflow:hidden; }
.cm-seller-sk-banner { position:absolute; inset:0; display:block; width:100%; height:100%; border-radius:0; }
.cm-seller-sk-avatar { display:block; width:92px; height:92px; border-radius:26px; flex:0 0 92px; }
.cm-seller-sk-name { display:block; width:160px; max-width:65%; height:22px; border-radius:99px; margin-top:12px; }
.cm-seller-sk-handle { display:block; width:115px; height:11px; border-radius:99px; margin-top:9px; }
.cm-seller-sk-hero .sp-id { display:flex; flex-direction:column; align-items:center; text-align:center; }
.cm-seller-sk-hero .sp-actions { display:flex; gap:10px; }
.cm-seller-sk-hero .sp-stats>div { display:flex; flex-direction:column; align-items:center; gap:7px; }
.cm-seller-sk-awards { display:flex; flex-wrap:wrap; gap:7px; }
.cm-seller-sk-awards .skeleton-block { display:block; }

/* Account, profile-edit and showroom-edit page form proportions. */
.cm-account-sk-profile { display:flex; flex-direction:column; align-items:center; gap:14px; padding:16px 0 20px; }
.cm-account-sk-profile .account-name { display:flex; justify-content:center; }
.cm-account-sk-actions { display:flex; align-items:center; justify-content:center; gap:9px; }
.cm-account-sk-dealer-card { margin:0 16px 16px; padding:14px; border:1px solid rgba(180,190,205,.12); border-radius:18px; }
.cm-account-sk-dealer-top { display:flex; gap:11px; align-items:center; }
.cm-account-sk-dealer-top>div { display:flex; flex-direction:column; gap:8px; }
.cm-account-sk-dealer-logo { display:block; width:52px; height:52px; border-radius:14px; flex:0 0 52px; }
.cm-account-sk-dealer-actions { display:flex; gap:10px; margin-top:14px; }
.cm-account-sk-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.cm-account-sk-tabs .account-tab { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0; min-width:0; }
.cm-account-sk-tabs .account-tab .skeleton-block { display:block; width:22px; height:22px; border-radius:6px; }
.cm-account-sk-empty { display:flex; flex-direction:column; align-items:center; gap:10px; }
.cm-account-edit-sk-avatar,.cm-dealer-edit-sk-logo { display:block; }
.cm-dealer-edit-sk-logo { border-radius:50%; }

/* Sell wizard skeleton rows. */
.cm-sell-sk-row { pointer-events:none; }
.cm-sell-sk-price { display:flex; flex-direction:column; gap:10px; }
.cm-sell-sk-toggle-row { display:flex; align-items:center; justify-content:space-between; padding:12px 0; border-bottom:1px solid rgba(180,190,205,.1); }
.cm-sell-sk-extra { display:flex; flex-direction:column; gap:10px; }
.cm-sell-sk-control { display:block; width:100%; height:48px; border-radius:12px; }
.cm-sell-sk-map { display:block; width:100%; height:184px; border-radius:16px; }
.cm-sell-sk-radio { display:block; width:20px; height:20px; border-radius:50%; flex:0 0 20px; }
.cm-sell-sk-action { display:block; flex:1; height:50px; border-radius:999px; }
.cm-sell-sk-action-primary { background-color:rgba(196,181,253,.24)!important; }
.cm-sell-sk-upload-icon { display:block; width:36px; height:36px; border-radius:10px; }
.cm-sell-sk-photo { display:block; width:100%; aspect-ratio:4/3; border-radius:12px; }
.cm-sell-sk-textarea { display:block; width:100%; min-height:120px; border-radius:12px; }
.cm-sell-sk-car-diagram { position:relative; min-height:180px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; align-items:center; justify-items:center; padding:16px; }
.cm-sell-sk-car-shape { display:block; grid-column:1/-1; width:78%; height:88px; border-radius:44px 44px 28px 28px; }
.cm-sell-sk-car-diagram i { display:block; width:38px; height:20px; border-radius:8px; }

/* Question/answer loading states keep the live section order and control dimensions. */
.cm-skeleton-screen .qa-sk { flex:0 0 auto; max-width:100%; }
.cm-qa-sk-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
.cm-qa-sk-actions .qa-btn { display:inline-flex; align-items:center; justify-content:center; min-height:38px; }
.cm-qa-sk-actions .qa-sk { background:var(--qa-card-2); }
.cm-qa-sk-chips { overflow:hidden; flex-wrap:nowrap; }
.cm-qa-sk-chips .qa-chip { display:inline-flex; align-items:center; flex:0 0 auto; gap:7px; }
.cm-qa-sk-sort { display:flex; flex-wrap:nowrap; gap:6px; overflow:hidden; }
.cm-qa-sk-sort .qa-sort-btn { display:inline-flex; align-items:center; justify-content:center; }
.cm-qa-sk-sort .qa-sk { background:var(--qa-card-2); }
.cm-skeleton-screen .qa-tools button { pointer-events:none; }
.cm-qa-sk-detail-title { display:flex; flex-direction:column; gap:9px; }
.cm-qa-sk-paragraph { display:flex; flex-direction:column; gap:11px; }
.cm-qa-sk-media { overflow:hidden; }
.cm-qa-sk-media .qa-sk { display:block; }
.cm-qa-sk-upload { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; min-height:124px; }
.cm-qa-sk-identity { display:flex; flex-direction:column; gap:8px; }
.cm-qa-sk-submit,.cm-qa-sk-cancel { display:inline-flex; align-items:center; justify-content:center; min-height:42px; }
.cm-qa-sk-tabs { pointer-events:none; }
.cm-qa-sk-tabs .qa-tab { display:flex; align-items:center; justify-content:center; min-height:40px; }
.cm-skeleton-screen .qa-answer-form .qa-sk-control,
.cm-skeleton-screen .qa-form .qa-sk-control { display:flex; align-items:flex-start; padding:14px; border-radius:12px; border:1px solid var(--qa-border); background:var(--qa-card); }
.cm-skeleton-screen .qa-sk-control .qa-sk { background:var(--qa-card-2); }
@media (prefers-reduced-motion:reduce) { .cm-skeleton-screen .skeleton-block,.cm-skeleton-screen .qa-sk { animation:none!important; } }


/* Final page-accurate skeleton refinements */
.cm-home-sk-slide::after { z-index:1; background:linear-gradient(to left,rgba(6,6,10,.24),transparent 62%),linear-gradient(to top,rgba(0,0,0,.2),transparent 42%); }
.cm-home-sk-slide-art { z-index:0; }
.cm-home-sk-slide .cm-hb-copy { z-index:2; }
.cm-sell-sk-spec { display:flex; flex-direction:column; gap:10px; }
.cm-sell-sk-spec .sell-section-head { display:flex; align-items:center; justify-content:space-between; }
.cm-sell-sk-spec .sell-opt-grid,
.cm-sell-sk-spec .sell-swatch-row { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.cm-sell-sk-price-value { display:block; width:58%; height:24px; border-radius:8px; }
.cm-sell-sk-row-value { display:block; width:82px; height:13px; border-radius:999px; }
.cm-sell-sk-switch { display:inline-block!important; width:34px!important; height:19px!important; min-width:34px; border-radius:999px!important; background-color:var(--cm-sk-bg)!important; animation:skeleton-shimmer 1.3s ease-in-out infinite; }
.cm-sell-sk-car-svg { display:block; width:100%; max-width:420px; height:auto; margin:0 auto; }
.cm-sell-sk-car-image { opacity:.28; filter:grayscale(1); }
.cm-sell-sk-car-panel { animation:skeleton-shimmer 1.3s ease-in-out infinite; }
.cm-account-sk-create-dealer { margin:0 16px 16px; }
.cm-account-sk-create-dealer .skeleton-block { display:block; }
.cm-account-sk-inbox { margin:0 16px; padding:18px; border:1px solid rgba(180,190,205,.1); border-radius:16px; display:flex; flex-direction:column; gap:14px; }
.cm-account-sk-inbox p { display:flex; flex-direction:column; gap:9px; margin:0; }
.cm-account-sk-inbox-cta { display:block; height:42px; width:100%; border-radius:999px; }
.cm-account-sk-dealer-card .dealership-card-actions { display:flex; gap:10px; }
.cm-sell-sk-switch.cm-sell-sk-switch { flex:0 0 auto; }
@media(prefers-reduced-motion:reduce){.cm-sell-sk-switch,.cm-sell-sk-car-panel{animation:none!important}}

/* Skeleton pulse for the genuine body-panel SVG: animate fill opacity, not background color. */
@keyframes cm-car-panel-skeleton-pulse { 0%,100% { fill-opacity:.22; } 50% { fill-opacity:.52; } }
.cm-sell-sk-car-panel { animation:cm-car-panel-skeleton-pulse 1.35s ease-in-out infinite; }
.cm-saved-sk-title { display:flex; flex-direction:column; gap:5px; min-height:34px; }
.cm-seller-sk-empty { display:flex; flex-direction:column; align-items:center; gap:9px; margin:16px; padding:24px; border:1px dashed rgba(180,190,205,.14); border-radius:18px; }


/* Home mobile typography and breathing room refinement */
@media (max-width: 600px) {
  .cm-home-latest {
    margin-top: 24px !important;
  }
  .cm-home-section-heading {
    margin-bottom: 15px !important;
  }
  .cm-home-section-heading h2 {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }
  .cm-home-section-heading p {
    font-size: 9px !important;
    line-height: 1.65 !important;
    margin-top: 5px !important;
  }
  .cm-home-showrooms {
    margin-top: 22px !important;
  }
  .cm-home-showrooms .sr-section-head {
    margin-bottom: 15px !important;
  }
  .cm-home-showrooms .sr-section-head h2 {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }
  .cm-home-showroom-subtitle {
    font-size: 9px !important;
    line-height: 1.65 !important;
    margin-top: 5px !important;
  }
}

/* ===== Sell flow: media (photo / video) step + mileage radio list ===== */
.sell-media { display:flex; flex-direction:column; gap:14px; }
.sell-media-head { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.sell-media-title { font-size:19px; font-weight:800; line-height:1.4; color:var(--sm-text,#e9ecef); }
.sell-media-opt { font-size:13px; font-weight:600; color:var(--sm-text-dim,#929599); }
.sell-media-tiles { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; direction:rtl; }
.sell-media-tile { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; min-height:112px; padding:14px 8px; border:1.5px dashed var(--sm-text-dim,#6a6e72); border-radius:18px; background:var(--sm-surface,#1c1f22); color:var(--sm-text,#e0e3e6); cursor:pointer; text-align:center; -webkit-tap-highlight-color:transparent; transition:background .15s ease,border-color .15s ease,opacity .15s ease; }
.sell-media-tile:active { background:rgba(255,255,255,.05); }
.sell-media-tile.is-full { opacity:.45; cursor:not-allowed; }
.sell-media-tile-label { font-size:14px; font-weight:700; }
.sell-media-tile-count { position:absolute; top:8px; inset-inline-start:10px; font-size:11px; font-weight:700; color:var(--sm-text-dim,#929599); }
.sell-media-tile-count:empty { display:none; }
.sell-media-rules { display:flex; flex-direction:column; gap:6px; }
.sell-media-rules p { margin:0; font-size:13px; line-height:1.8; color:var(--sm-text,#cfd2d5); }
.sell-media-link { background:none; border:0; padding:0; font:inherit; font-weight:700; color:#a99bff; text-decoration:none; cursor:pointer; }
.sell-media-warn { padding:16px 18px; border-radius:16px; background:rgba(245,176,65,.13); color:#f2c46d; font-size:14px; font-weight:600; line-height:1.7; }
.sell-media-warn[hidden], .sell-media-illus[hidden], [data-slot="video-preview"][hidden] { display:none!important; }
.sell-media-illus { color:var(--sm-text-dim,#8a8f95); padding:8px 6px 0; max-width:340px; width:100%; margin:0 auto; }
.sell-media-video { position:relative; aspect-ratio:16/9; border-radius:16px; overflow:hidden; border:1px solid var(--sm-line,#2e3236); background:#000; }
.sell-media-video img { width:100%; height:100%; object-fit:cover; display:block; opacity:.85; }
.sell-media-play { position:absolute; inset:0; margin:auto; width:44px; height:44px; border-radius:50%; background:rgba(0,0,0,.6); color:#fff; display:flex; align-items:center; justify-content:center; }
.sell-media-dur { position:absolute; bottom:8px; inset-inline-end:8px; padding:3px 8px; border-radius:999px; background:rgba(0,0,0,.7); color:#fff; font-size:11px; font-weight:700; }
.sell-media-x { position:absolute; top:8px; inset-inline-start:8px; width:28px; height:28px; border-radius:50%; border:0; background:rgba(0,0,0,.7); color:#fff; display:flex; align-items:center; justify-content:center; }
.theme-light .sell-media-warn { background:#fff1cf; color:#7a4a0c; }
.theme-light .sell-media-link { color:#4b32e8; }

.sell-mileage { gap:0; }
.sell-mileage .sell-section-head { margin-bottom:6px; }
.sell-radio { display:flex; align-items:center; gap:12px; width:100%; padding:16px 2px; background:none; border:0; border-top:1px solid var(--sm-line-soft,#272b2f); color:var(--sm-text,#e0e3e6); font-size:15px; font-weight:700; text-align:right; -webkit-tap-highlight-color:transparent; }
.sell-mileage .sell-section-head + .sell-radio { border-top:0; }
.sell-radio-dot { flex:0 0 auto; width:24px; height:24px; box-sizing:border-box; border-radius:50%; border:2px solid var(--sm-text,#e0e3e6); transition:border-width .15s ease; }
.sell-radio.is-selected .sell-radio-dot { border:7px solid var(--sm-text,#f2f4f5); }
.sell-mileage-panel { display:flex; flex-direction:column; gap:8px; padding:2px 0 16px; }
.sell-mileage-panel[hidden] { display:none!important; }
.sell-mileage-field { font-size:13px; font-weight:600; color:var(--sm-text-dim,#929599); }
.sell-mileage-input { width:100%; box-sizing:border-box; padding:14px 16px; border-radius:14px; border:1px solid var(--sm-line,#2e3236); background:var(--sm-surface,#1c1f22); color:var(--sm-text,#e9ecef); font-size:16px; font-weight:700; text-align:right; outline:0; transition:border-color .15s ease; }
.sell-mileage-input::placeholder { color:var(--sm-text-faint,#6a6d71); font-weight:500; }
.sell-mileage-input:focus { border-color:#d9dcdf; }
.sell-mileage-hint { min-height:16px; font-size:12px; font-weight:600; color:var(--sm-text-faint,#7d8186); }

/* Filter chips: scroll edge-to-edge on the left instead of being clipped by the row padding */
html body .toolbox-filter-row { padding-left: 0 !important; padding-right: 0 !important; }
html body .toolbox-filter-row .toolbox-filter-chips { padding-left: 18px; padding-right: 18px; scroll-padding-left: 18px; scroll-padding-right: 18px; }

/* ===== "مدیریت آگهی" sheet — iOS-style redesign ===== */
#genericModal .ma { display:flex; flex-direction:column; gap:14px; padding-top:4px; direction:rtl; }
#genericModal .ma-status { display:flex; flex-direction:column; gap:12px; padding:0!important; margin:0!important; background:none!important; border:0!important; border-radius:0!important; }
.ma-head { display:flex; align-items:center; gap:12px; padding:12px; border-radius:18px; background:var(--sm-surface,#202327); border:1px solid var(--sm-line-soft,#272b2f); }
.ma-thumb { flex:0 0 auto; width:64px; height:64px; border-radius:12px; overflow:hidden; background:var(--sm-surface-2,#24282c); color:var(--sm-text-faint,#6a6d71); display:flex; align-items:center; justify-content:center; }
.ma-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.ma-head-text { min-width:0; display:flex; flex-direction:column; gap:5px; }
.ma-title { font-size:15px; font-weight:800; line-height:1.4; color:var(--sm-text,#e9ecef); overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.ma-price { font-size:13px; font-weight:700; color:var(--sm-text-dim,#929599); }
.ma-state { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:0 2px; }
.ma-pill { display:inline-flex; align-items:center; gap:7px; padding:5px 12px 5px 10px; border-radius:999px; font-size:12.5px; font-weight:800; background:rgba(167,139,250,.14); color:#c4b5fd; }
.ma-pill i { width:7px; height:7px; border-radius:50%; background:currentColor; }
.ma-status.is-listed .ma-pill { background:rgba(48,209,88,.14); color:#4ade80; }
.ma-status.is-rejected .ma-pill { background:rgba(255,69,58,.14); color:#ff6b61; }
.ma-desc { font-size:12.5px; line-height:1.75; color:var(--sm-text-dim,#929599); font-weight:500; }
.ma-label { font-size:12.5px; font-weight:700; color:var(--sm-text-dim,#929599); padding:2px 4px 0; margin-bottom:-6px; }
.ma-tiles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.ma-tile { display:flex; flex-direction:column; align-items:center; gap:7px; padding:14px 6px 12px; border-radius:18px; background:var(--sm-surface,#202327); border:1px solid var(--sm-line-soft,#272b2f); color:var(--sm-text,#e9ecef); text-align:center; -webkit-tap-highlight-color:transparent; transition:transform .12s ease, background .15s ease; }
.ma-tile:active:not(:disabled) { transform:scale(.96); background:var(--sm-surface-2,#24282c); }
.ma-tile.is-locked { opacity:.4; }
.ma-tile-ic { width:38px; height:38px; border-radius:12px; display:flex; align-items:center; justify-content:center; color:#fff; background:#0a84ff; }
.ma-tile[data-svc="urgent"] .ma-tile-ic { background:#ff9f0a; }
.ma-tile[data-svc="renew"] .ma-tile-ic { background:#30d158; }
.ma-tile-name { font-size:13px; font-weight:800; line-height:1.3; }
.ma-tile-price { font-size:11px; font-weight:600; color:var(--sm-text-dim,#929599); }
.ma-group { border-radius:18px; overflow:hidden; background:var(--sm-surface,#202327); border:1px solid var(--sm-line-soft,#272b2f); }
.ma-row { width:100%; display:flex; align-items:center; gap:12px; min-height:56px; padding:0 14px; background:none; border:0; border-bottom:1px solid var(--sm-line-soft,#272b2f); color:var(--sm-text,#e9ecef); font-size:15px; font-weight:600; text-align:right; -webkit-tap-highlight-color:transparent; }
.ma-row:last-child { border-bottom:0; }
.ma-row:active { background:rgba(255,255,255,.05); }
.ma-row-ic { flex:0 0 auto; width:30px; height:30px; border-radius:9px; display:flex; align-items:center; justify-content:center; color:#fff; background:#8e8e93; }
.ma-row-ic[data-c="blue"] { background:#0a84ff; }
.ma-row-ic[data-c="green"] { background:#30d158; }
.ma-row-ic[data-c="orange"] { background:#ff9f0a; }
.ma-row-ic[data-c="red"] { background:#ff453a; }
.ma-row-label { flex:1; }
.ma-row-chev { display:flex; color:var(--sm-text-faint,#6a6d71); }
.ma-row--danger .ma-row-label { color:#ff453a; }
.ma-row[data-action="contactSupport"] .ma-row-label { color:var(--sm-text-dim,#b4b8bb); font-weight:500; }
.theme-light .ma-head, .theme-light .ma-tile, .theme-light .ma-group { background:#fff; border-color:#e3e5e8; }
.theme-light .ma-title, .theme-light .ma-row, .theme-light .ma-tile { color:#1d1d1f; }
.theme-light .ma-row { border-bottom-color:#eceef0; }
.theme-light .ma-row--danger .ma-row-label { color:#d70015; }

/* ===== Manage-ad sub-sheets (stats / paid service / delete) — iOS style, matches .ma ===== */
/* buttons shared by service + rejected-ad screens */
#genericModal .manageAd-reject-btn { min-height:50px; padding:0 16px; border-radius:14px; border:0; background:var(--sm-surface,#202327); color:var(--sm-text,#e9ecef); font-size:15px; font-weight:700; }
#genericModal .manageAd-reject-btn.is-primary { background:#0a84ff; color:#fff; }
#genericModal .manageAd-reject-btn:active:not(:disabled) { filter:brightness(.92); }
#genericModal .manageAd-reject-box { margin:0; padding:14px 16px; border-radius:18px; border:0; background:rgba(255,69,58,.1); }
#genericModal .manageAd-reject-label { color:#ff6b61; font-size:12.5px; }
#genericModal .manageAd-reject-actions { margin:4px 0 0; }

/* paid service */
#genericModal .adService { display:flex; flex-direction:column; gap:14px; padding-top:4px; }
.adService-hero { display:flex; flex-direction:column; align-items:center; gap:6px; padding:8px 0 2px; text-align:center; }
.adService-hero-ic { width:60px; height:60px; border-radius:18px; display:flex; align-items:center; justify-content:center; color:#fff; background:#0a84ff; margin-bottom:4px; }
.adService-hero[data-svc="urgent"] .adService-hero-ic { background:#ff9f0a; }
.adService-hero[data-svc="renew"] .adService-hero-ic { background:#30d158; }
.adService-hero strong { font-size:18px; font-weight:800; color:var(--sm-text,#f2f4f5); }
.adService-hero span:last-child { font-size:13px; font-weight:500; color:var(--sm-text-dim,#929599); }
#genericModal .adService-desc { margin:0; padding:14px 16px; border-radius:18px; background:var(--sm-surface,#202327); border:1px solid var(--sm-line-soft,#272b2f); font-size:13px; line-height:2; color:var(--sm-text-dim,#b4b8bb); font-weight:500; }
#genericModal .adService-price-box { display:flex; align-items:center; justify-content:space-between; padding:0 16px; min-height:54px; border-radius:18px; background:var(--sm-surface,#202327); border:1px solid var(--sm-line-soft,#272b2f); margin:0; }
#genericModal .adService-price-box span { font-size:14px; font-weight:600; color:var(--sm-text-dim,#929599); }
#genericModal .adService-price-box strong { font-size:16px; font-weight:800; color:var(--sm-text,#f2f4f5); }
#genericModal .adService-actions { flex-direction:column-reverse; gap:8px; }

/* stats */
#genericModal .adStats { display:flex; flex-direction:column; gap:14px; padding-top:4px; }
#genericModal .adStats-tiles { margin:0; gap:10px; }
#genericModal .adStats-tile { padding:14px 4px 12px; border-radius:18px; border:1px solid var(--sm-line-soft,#272b2f); background:var(--sm-surface,#202327); gap:4px; }
#genericModal .adStats-tile strong { font-size:22px; font-weight:800; color:var(--sm-text,#f2f4f5); }
#genericModal .adStats-tile span { font-size:12px; color:var(--sm-text-dim,#929599); font-weight:600; }
#genericModal .adStats-tile.is-active { border-color:#0a84ff; background:rgba(10,132,255,.12); }
#genericModal .adStats-tile.is-active strong { color:#4aa3ff; }
#genericModal .adStats-range { margin:0; padding:3px; gap:2px; border-radius:12px; background:var(--sm-surface,#202327); }
#genericModal .adStats-range-btn { padding:9px 4px; border:0; border-radius:10px; background:transparent; color:var(--sm-text-dim,#929599); font-size:13px; font-weight:700; }
#genericModal .adStats-range-btn.is-active { background:var(--sm-surface-2,#34393e); color:var(--sm-text,#fff); box-shadow:0 1px 3px rgba(0,0,0,.35); }
#genericModal .adStats-chart { margin:0; padding:14px 10px 6px; border-radius:18px; background:var(--sm-surface,#202327); border:1px solid var(--sm-line-soft,#272b2f); }
#genericModal .adStats-rect { fill:#0a84ff; opacity:.9; }
#genericModal .adStats-bar.is-sel .adStats-rect, #genericModal .adStats-bar:hover .adStats-rect { fill:#4aa3ff; opacity:1; }
#genericModal .adStats-zero { fill:var(--sm-line,#3a3f44); }
#genericModal .adStats-readout { margin:0; font-size:14px; font-weight:800; color:var(--sm-text,#f2f4f5); }
#genericModal .adStats-hint { margin:-8px 0 0; }

/* delete confirmation */
#genericModal .manageAd-delete-warn { display:flex; align-items:flex-start; gap:12px; padding:14px 16px!important; margin:0 0 14px!important; border-radius:18px!important; background:rgba(255,69,58,.1)!important; border:0!important; }
#genericModal .manageAd-delete-warn-icon { width:36px; height:36px; border-radius:50%; background:#ff453a; color:#fff; display:flex; align-items:center; justify-content:center; margin:0; }
#genericModal .manageAd-delete-warn-title { font-size:15px; font-weight:800; color:#ff6b61; margin-bottom:3px; }
#genericModal .manageAd-delete-warn-desc { font-size:12.5px; line-height:1.7; color:var(--sm-text-dim,#b4b8bb); }
#genericModal .manageAd-reason-list { border:1px solid var(--sm-line-soft,#272b2f); border-radius:18px; background:var(--sm-surface,#202327); margin:0 0 16px; overflow:hidden; }
#genericModal .manageAd-reason-row { min-height:54px; padding:0 16px; border:0; border-bottom:1px solid var(--sm-line-soft,#272b2f); background:none; color:var(--sm-text,#e9ecef); font-size:15px; font-weight:600; text-align:right; }
#genericModal .manageAd-reason-row:last-child { border-bottom:0; }
#genericModal .manageAd-reason-row.is-selected { background:none; color:var(--sm-text,#fff); }
#genericModal .manageAd-reason-tick { width:22px; height:22px; border:0; background:none; color:#0a84ff; }
#genericModal .manageAd-reason-row.is-selected .manageAd-reason-tick { background:none; border:0; color:#0a84ff; }
#genericModal .manageAd-reason-tick svg { width:20px; height:20px; stroke-width:2.6; }
#genericModal .ma-actions { display:flex; flex-direction:column-reverse; gap:8px; }
#genericModal .manageAd-cancel-btn, #genericModal .manageAd-delete-confirm-btn { flex:none; width:100%; min-height:52px; border:0; border-radius:14px; font-size:15px; font-weight:800; }
#genericModal .manageAd-cancel-btn { background:var(--sm-surface,#202327); color:var(--sm-text,#e9ecef); }
#genericModal .manageAd-delete-confirm-btn { background:#ff453a; color:#fff; }
#genericModal .manageAd-delete-confirm-btn.is-unarmed { background:var(--sm-surface-2,#2b2f33); color:var(--sm-text-faint,#6a6d71); opacity:1; }
.theme-light #genericModal .adService-desc, .theme-light #genericModal .adService-price-box, .theme-light #genericModal .adStats-tile, .theme-light #genericModal .adStats-chart, .theme-light #genericModal .manageAd-reason-list, .theme-light #genericModal .manageAd-cancel-btn, .theme-light #genericModal .manageAd-reject-btn:not(.is-primary) { background:#fff; border-color:#e3e5e8; color:#1d1d1f; }
.theme-light #genericModal .adStats-tile strong, .theme-light #genericModal .adStats-readout, .theme-light #genericModal .adService-hero strong, .theme-light #genericModal .adService-price-box strong, .theme-light #genericModal .manageAd-reason-row { color:#1d1d1f; }

/* باکس «نوع سوخت» در جزئیات خودرو: پس‌زمینه‌ی پمپ بنزین سه‌بعدی، کم‌رنگ و در سمت چپ (جای همان آیکن قبلی) */
.vehicle-demo-layout .vds-tile.is-fuel .vds-tile-mark { display:none; }
.vehicle-demo-layout .vds-tile.is-fuel::after {
  content:""; position:absolute; left:-8px; bottom:-12px; width:76px; height:101px; z-index:0; pointer-events:none;
  background:url("assets/fuel-pump-3d.webp") no-repeat left bottom / contain;
  opacity:.3; filter:brightness(.85) saturate(.9);
}
.vehicle-demo-layout .vds-tile.is-fuel.is-empty::after { opacity:.18; }

/* باکس «نوع موتور» در جزئیات خودرو: پس‌زمینه‌ی موتور سه‌بعدی، کم‌رنگ و در سمت چپ (جای همان آیکن قبلی) */
.vehicle-demo-layout .vds-tile.is-engine .vds-tile-mark { display:none; }
.vehicle-demo-layout .vds-tile.is-engine::after {
  content:""; position:absolute; left:-6px; bottom:-8px; width:92px; height:98px; z-index:0; pointer-events:none;
  background:url("assets/engine-3d.webp") no-repeat left bottom / contain;
  opacity:.28; filter:brightness(.8) saturate(.75);
}
.vehicle-demo-layout .vds-tile.is-engine.is-empty::after { opacity:.16; }

/* باکس «نوع گیربکس» در جزئیات خودرو: پس‌زمینه‌ی دسته‌دنده‌ی سه‌بعدی، کم‌رنگ و در سمت چپ (جای همان آیکن قبلی) */
.vehicle-demo-layout .vds-tile.is-gearbox .vds-tile-mark { display:none; }
.vehicle-demo-layout .vds-tile.is-gearbox::after {
  content:""; position:absolute; left:-4px; bottom:-8px; width:82px; height:98px; z-index:0; pointer-events:none;
  background:url("assets/gearbox-3d.webp") no-repeat left bottom / contain;
  opacity:.26; filter:brightness(.75) saturate(.8);
}
.vehicle-demo-layout .vds-tile.is-gearbox.is-empty::after { opacity:.15; }

/* باکس «انتقال قدرت» در جزئیات خودرو: پس‌زمینه‌ی چرخ‌دنده‌های سه‌بعدی، کم‌رنگ و در سمت چپ (جای همان آیکن قبلی) */
.vehicle-demo-layout .vds-tile.is-drivetrain .vds-tile-mark { display:none; }
.vehicle-demo-layout .vds-tile.is-drivetrain::after {
  content:""; position:absolute; left:-6px; bottom:-8px; width:96px; height:92px; z-index:0; pointer-events:none;
  background:url("assets/drivetrain-3d.webp") no-repeat left bottom / contain;
  opacity:.26; filter:brightness(.75) saturate(.8);
}
.vehicle-demo-layout .vds-tile.is-drivetrain.is-empty::after { opacity:.15; }

/* مقدار باکس‌های مشخصات فنی همیشه راست‌چین (حتی متن لاتین مثل FWD یا 2.0 Turbo)؛ عکس پس‌زمینه سمت چپ است */
.vehicle-demo-layout .vds-tile-value { text-align:right; }
.vehicle-demo-layout .vds-tile.is-engine .vds-tile-value, .vehicle-demo-layout .vds-tile.is-drivetrain .vds-tile-value { direction:rtl; unicode-bidi:isolate; }

/* فوتر صفحه اصلی: عکس اسکناس پاره‌شده، وسط‌چین بالای متن */
.cm-home-footer-art { display:block; width:min(240px,64%); height:auto; margin:0 auto 12px; pointer-events:none; user-select:none; -webkit-user-drag:none; }

/* ===== Listing card: city chip (list page + home only; detail page has its own city line) ===== */
.xcd-chip--city { max-width:100%; min-width:0; direction:rtl; }
.xcd-chip--city .xcd-city-text { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }

/* CARMA search overlay: matte card-matched search input */
.search-overlay-shell {
  background: #15191f !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  box-shadow: none !important;
}
.search-overlay-label { color: #c7cdd5 !important; }
.search-overlay-rotator { color: #f1f3f5 !important; }
.search-overlay-input { color: #f1f3f5 !important; caret-color: #f1f3f5; }
.search-overlay-clear { border-color: #59616b !important; color: #d8dde3 !important; }
.theme-light .search-overlay-shell { background: #15191f !important; }
.theme-light .search-overlay-label { color: #c7cdd5 !important; }
.theme-light .search-overlay-rotator { color: #f1f3f5 !important; }
.theme-light .search-overlay-input { color: #f1f3f5 !important; }

/* ===== Distinct city/location badge on vehicle listing cards ===== */
.xcd-chip--city {
  background:linear-gradient(135deg,rgba(17,92,108,.34),rgba(18,43,54,.84)) !important;
  background-image:linear-gradient(135deg,rgba(17,92,108,.34),rgba(18,43,54,.84)) !important;
  color:#c5f3f8 !important;
  border:1px solid rgba(101,211,225,.34) !important;
  border-radius:9px !important;
  padding-inline:3cqw !important;
  gap:1.2cqw !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045) !important;
}
.xcd-chip--city svg, .xcd-chip--city .xcd-ic {
  color:#69d6e5 !important;
  opacity:1 !important;
  flex:0 0 auto;
}
.xcd-chip--city .xcd-city-text { font-weight:800; }
.theme-light .xcd-chip--city {
  background:#e4f7fa !important;
  background-image:none !important;
  color:#155d6b !important;
  border-color:#b8e5eb !important;
  box-shadow:none !important;
}
.theme-light .xcd-chip--city svg, .theme-light .xcd-chip--city .xcd-ic { color:#16899c !important; }

/* ===== Listings skeleton: mirrors article.xc .xc-glass--tab (title+year, meta pills, price box) ===== */
.xc.is-skeleton .xc-glass--tab .xc-sk{display:block}
.xc.is-skeleton .xc-glass--tab .xc-sk-title{flex:0 1 62%;height:30px}
.xc.is-skeleton .xc-glass--tab .xc-sk-year{flex:0 0 auto;width:54px;height:36px;border:0}
.xc.is-skeleton .xc-glass--tab .xc-sk-pill{flex:0 0 auto;width:92px;height:43px;border:0;padding:0}
.xc.is-skeleton .xc-glass--tab .xc-sk-pill-sm{width:64px}
.xc.is-skeleton .xc-glass--tab .xc-sk-amount{width:78%;height:34px}
.xc.is-skeleton .xc-glass--tab .xc-sk-unit{width:38%;height:12px}
@media (max-width:900px){.xc.is-skeleton .xc-glass--tab .xc-sk-year{height:32px}.xc.is-skeleton .xc-glass--tab .xc-sk-pill{height:36px}.xc.is-skeleton .xc-glass--tab .xc-sk-amount{height:30px}}
@media (max-width:600px){.xc.is-skeleton .xc-glass--tab .xc-sk-title{height:23px}.xc.is-skeleton .xc-glass--tab .xc-sk-year{width:44px;height:27px}.xc.is-skeleton .xc-glass--tab .xc-sk-pill{width:72px;height:29px}.xc.is-skeleton .xc-glass--tab .xc-sk-pill-sm{width:52px}.xc.is-skeleton .xc-glass--tab .xc-sk-amount{height:26px}.xc.is-skeleton .xc-glass--tab .xc-sk-unit{height:10px}}
@media (max-width:390px){.xc.is-skeleton .xc-glass--tab .xc-sk-title{height:20px}.xc.is-skeleton .xc-glass--tab .xc-sk-pill{height:26px}.xc.is-skeleton .xc-glass--tab .xc-sk-amount{height:23px}}

/* ===== Listings skeleton (compact .xcd card): same wrapper/photo/info/foot classes as the real card ===== */
.xcd.is-skeleton{cursor:default;pointer-events:none}
.xcd.is-skeleton:active{transform:none}
.xcd.is-skeleton .xcd-sk-photo{position:absolute;inset:0;display:block;border-radius:0}
.xcd.is-skeleton .xcd-sk-logo{display:block;width:13cqw;height:3.6cqw;border-radius:999px}
.xcd.is-skeleton .xcd-sk-title{display:block;width:58%;height:max(12px,3.6cqw);border-radius:999px}
.xcd.is-skeleton .xcd-sk-km{display:block;width:24cqw;height:max(9px,2.5cqw);border-radius:999px}
.xcd.is-skeleton .xcd-sk-chip{display:block;flex:0 0 auto;height:4.2cqw;border-radius:999px}
.xcd.is-skeleton .xcd-sk-plabel{display:block;width:9cqw;height:max(7.5px,1.9cqw);border-radius:999px}
.xcd.is-skeleton .xcd-sk-pamount{display:block;width:72%;height:max(14px,4.3cqw);border-radius:999px;margin-top:.6cqw}
.xcd.is-skeleton .xcd-price .skeleton-block{opacity:.55}

/* ===== Showroom (dealer) profile skeleton: banner layer, no avatar, [icon][main][icon], hex rail ===== */
.cm-seller-sk-hero--dealer .sp-banner-cover.cm-seller-sk-cover{position:absolute;top:-80px;left:-16px;right:-16px;height:clamp(300px,100vw,420px);display:block;overflow:hidden;pointer-events:none}
.cm-seller-sk-hero--dealer .cm-seller-sk-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.34) 0%,rgba(0,0,0,.04) 22%,rgba(0,0,0,.10) 46%,rgba(8,9,11,.56) 68%,rgba(8,9,11,.90) 88%,var(--sr-bg,#08090b) 100%)}
.cm-seller-sk-hero--dealer .cm-seller-sk-banner{opacity:.55}
.cm-seller-sk-hero--dealer .sp-id{align-items:center}
.cm-seller-sk-hero--dealer .cm-seller-sk-name{width:170px;height:23px;margin:0}
.cm-seller-sk-hero--dealer .cm-seller-sk-handle{margin-top:9px}
.cm-seller-sk-icon{display:block;flex:0 0 54px;width:54px;height:54px;border-radius:50%}
.cm-seller-sk-main{display:block;flex:1 1 auto;min-width:0;height:54px;border-radius:999px}
.cm-seller-sk-troph .sp-troph-rail{overflow:hidden}
.cm-seller-sk-hex{display:block;flex:0 0 92px;width:92px;height:106px;border-radius:0;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.cm-seller-sk-troph-cap{display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 16px}
.cm-seller-sk-troph-cap .skeleton-block{display:block}

/* ===== Vehicle page bottom CTA skeleton: 46px phone circle + 46px pill (icon + short label), like contact-bar.css ===== */
.cm-vehicle-sk-cta-icon{display:block;width:19px;height:19px;border-radius:50%;flex:0 0 19px}
.cm-vehicle-sk-cta-label{width:38px;height:13px;border-radius:999px;flex:0 0 auto}
.cm-vehicle-sk-cta-icon--dark{background-color:rgba(20,23,26,.16)!important;background-image:none!important;animation:none!important}
[data-page="vehicle"] .detail-cta-phone .cm-vehicle-sk-cta-icon{width:19px;height:19px}

/* ===== Sell flow bottom actions skeleton: ghost button 32% + filled button, 50px high, like the real dock ===== */
body:has([data-page="sell-step"]) [data-slot="actions"] > .cm-sell-sk-action{min-height:50px;height:50px;box-shadow:none}
body:has([data-page="sell-step"]) [data-slot="actions"] > .cm-sell-sk-action-ghost{flex:0 0 32%;display:flex;align-items:center;justify-content:center;border:1px solid var(--sm-line,#34383c);border-radius:999px;background:transparent!important}
body:has([data-page="sell-step"]) [data-slot="actions"] > .cm-sell-sk-action-primary{flex:1 1 auto}

/* ===== Vehicle detail: map must never paint above the header / bottom contact bar =====
   Leaflet panes/controls use z-index 400-1000. Giving the map wrapper its own stacking
   context (z-index:0 + isolation) keeps all of that inside the map box. */
[data-page="vehicle"] .vmap-section,
[data-page="vehicle"] .vmap,
[data-page="vehicle"] .vmap-body,
[data-page="vehicle"] .vmap-canvas,
[data-page="vehicle"] .detail-map-visual,
[data-page="vehicle"] .leaflet-container { position:relative; z-index:0; isolation:isolate; }
[data-page="vehicle"] .vmap-panel { z-index:2; }
[data-page="vehicle"] .detail-cta { z-index:60; }

/* ===== Vehicle detail: remove the empty dark band under the footer =====
   It was page-shell 145px + page 96px (+ safe area). Only the height of the fixed contact bar is reserved now. */
[data-page="vehicle"].vehicle-detail-page .page-shell,
.vehicle-demo-layout .page-shell { padding-bottom:12px; }
[data-page="vehicle"].vehicle-detail-page { padding-bottom:calc(84px + env(safe-area-inset-bottom, 0px)); }
[data-page="vehicle"].vehicle-detail-page .footer { margin-bottom:0; padding-bottom:0; }

/* Inbox: back button to the right of the search input */
.mr-msg-topbar { display:flex; align-items:center; gap:10px; }
.mr-msg-topbar .mr-msg-search { flex:1 1 auto; min-width:0; }
.mr-msg-back { flex:0 0 auto; width:56px; height:56px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.09); border-radius:22px; background:var(--msg-card); color:#f2f2f6; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.mr-msg-back svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.mr-msg-back:active { transform:scale(.94); }
.theme-light .mr-msg-back { color:#111; border-color:rgba(0,0,0,.08); }

/* =====================================================================
   Model / sub-model picker — premium redesign
   ===================================================================== */
.sell-model-picker-sheet { --smp-fg:#f1f2f4; --smp-dim:#9a9ea4; --smp-faint:#6d7177; --smp-line:rgba(255,255,255,.09); --smp-card:rgba(255,255,255,.045); --smp-card-hover:rgba(255,255,255,.08); --smp-accent:#ffffff; --smp-accent-soft:rgba(255,255,255,.12); --smp-accent-ink:#16181b; display:flex; flex-direction:column; max-height:min(88dvh,720px); }
.theme-light .sell-model-picker-sheet { --smp-fg:#16181b; --smp-dim:#5d6268; --smp-faint:#8b9096; --smp-line:rgba(0,0,0,.09); --smp-card:rgba(0,0,0,.035); --smp-card-hover:rgba(0,0,0,.07); --smp-accent:#16181b; --smp-accent-soft:rgba(0,0,0,.07); --smp-accent-ink:#ffffff; }
.sell-model-picker-sheet .smp-head { display:flex; align-items:center; gap:12px; padding:6px 16px 12px; direction:rtl; }
.smp-mark { flex:0 0 auto; width:46px; height:46px; border-radius:15px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.04)); border:1px solid var(--smp-line); color:var(--smp-fg); font-size:13px; font-weight:800; box-shadow:inset 0 1px 0 rgba(255,255,255,.12); }
.theme-light .smp-mark { background:#fff; }
.smp-mark img { width:70%; height:70%; object-fit:contain; }
.smp-titles { flex:1 1 auto; min-width:0; }
.smp-title { color:var(--smp-fg); font-size:17px; font-weight:800; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.smp-sub { color:var(--smp-dim); font-size:11.5px; margin-top:3px; line-height:1.5; }
.smp-iconbtn { flex:0 0 auto; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1px solid var(--smp-line); background:var(--smp-card); color:var(--smp-fg); cursor:pointer; transition:transform .15s ease, background .2s ease; -webkit-tap-highlight-color:transparent; }
.smp-iconbtn:active { transform:scale(.92); background:var(--smp-card-hover); }
.smp-iconbtn[hidden] { display:none; }

.smp-crumbs { display:flex; align-items:center; gap:6px; padding:0 16px 12px; direction:rtl; overflow-x:auto; scrollbar-width:none; }
.smp-crumbs::-webkit-scrollbar { display:none; }
.smp-crumb { flex:0 0 auto; padding:5px 11px; border-radius:999px; font-size:11.5px; font-weight:700; color:var(--smp-dim); background:var(--smp-card); border:1px solid var(--smp-line); white-space:nowrap; font-family:inherit; }
button.smp-crumb { cursor:pointer; }
.smp-crumb.is-active { color:var(--smp-accent); background:var(--smp-accent-soft); border-color:transparent; }
.smp-crumb-sep { flex:0 0 auto; color:var(--smp-faint); font-style:normal; font-size:14px; line-height:1; }

.sell-model-picker-sheet .sell-model-picker-search-wrap { margin:0 16px 10px; }
.sell-model-picker-sheet .sell-model-picker-search-icon { right:15px; color:var(--smp-faint) !important; }
.sell-model-picker-sheet .sell-model-picker-search { height:48px; padding:0 44px 0 42px; border-radius:16px; font-size:14.5px; font-family:inherit; color:var(--smp-fg) !important; background:var(--smp-card) !important; border:1px solid var(--smp-line) !important; transition:border-color .2s ease, box-shadow .2s ease; }
.sell-model-picker-sheet .sell-model-picker-search:focus { border-color:var(--smp-accent) !important; box-shadow:0 0 0 3px var(--smp-accent-soft); }
.sell-model-picker-sheet .sell-model-picker-search::placeholder { color:var(--smp-faint); }
.smp-clear { position:absolute; left:10px; top:50%; transform:translateY(-50%); width:26px; height:26px; border:0; border-radius:50%; background:var(--smp-card-hover); color:var(--smp-fg); font-size:17px; line-height:1; cursor:pointer; }
.smp-clear[hidden] { display:none; }

.sell-model-picker-sheet .sell-model-picker-list { flex:1 1 auto; min-height:0; max-height:none; padding:4px 14px calc(20px + env(safe-area-inset-bottom,0px)); gap:8px; -webkit-mask-image:linear-gradient(#000 calc(100% - 22px),transparent); mask-image:linear-gradient(#000 calc(100% - 22px),transparent); }
.sell-model-picker-sheet .sell-model-option { position:relative; gap:12px; padding:10px 12px; min-height:58px; border-radius:18px; font-family:inherit; color:var(--smp-fg) !important; background:var(--smp-card) !important; border:1px solid var(--smp-line) !important; box-shadow:none; transition:transform .15s ease, background .2s ease, border-color .2s ease; -webkit-tap-highlight-color:transparent; }
.sell-model-picker-sheet .sell-model-option:active { transform:scale(.985); background:var(--smp-card-hover) !important; }
.sell-model-picker-sheet .sell-model-option[aria-selected="true"] { background:var(--smp-accent-soft) !important; border-color:var(--smp-accent) !important; }
.sell-model-option-badge { flex:0 0 auto; width:38px; height:38px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:800; color:var(--smp-dim); background:rgba(255,255,255,.06); border:1px solid var(--smp-line); }
.theme-light .sell-model-option-badge { background:#fff; }
.sell-model-option[aria-selected="true"] .sell-model-option-badge { color:var(--smp-accent); border-color:transparent; background:var(--smp-accent-soft); }
.sell-model-option-copy { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:3px; text-align:right; }
.sell-model-option-copy strong { font-size:14.5px; font-weight:700; line-height:1.35; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sell-model-option-copy small { font-size:11px; color:var(--smp-faint); }
.sell-model-picker-sheet .sell-model-option-chevron { flex:0 0 auto; width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--smp-dim) !important; background:var(--smp-card); }
.sell-model-picker-sheet .sell-model-option.has-submodels .sell-model-option-chevron { color:var(--smp-accent) !important; background:var(--smp-accent-soft); }
.sell-model-picker-sheet .sell-model-option-tick { flex:0 0 auto; width:26px; height:26px; border-radius:50%; border:1.5px solid var(--smp-line) !important; color:transparent; display:flex; align-items:center; justify-content:center; transition:all .18s ease; }
.sell-model-picker-sheet .sell-model-option[aria-selected="true"] .sell-model-option-tick { color:var(--smp-accent-ink) !important; background:var(--smp-accent) !important; border-color:var(--smp-accent) !important; }
.sell-model-picker-sheet .sell-model-picker-empty { display:flex; flex-direction:column; align-items:center; gap:10px; padding:38px 18px; color:var(--smp-dim) !important; font-size:13px; }
.smp-empty-ic { width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--smp-card); color:var(--smp-faint); }
@media (prefers-reduced-motion:no-preference) {
  .sell-brand-picker.is-open .sell-model-option { animation:smpIn .32s cubic-bezier(.22,1,.36,1) both; }
  .sell-brand-picker.is-open .sell-model-option:nth-child(n+8) { animation:none; }
  @keyframes smpIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
}
.sell-brand-picker.is-open .sell-model-option:nth-child(1){animation-delay:25ms}
.sell-brand-picker.is-open .sell-model-option:nth-child(2){animation-delay:50ms}
.sell-brand-picker.is-open .sell-model-option:nth-child(3){animation-delay:75ms}
.sell-brand-picker.is-open .sell-model-option:nth-child(4){animation-delay:100ms}
.sell-brand-picker.is-open .sell-model-option:nth-child(5){animation-delay:125ms}
.sell-brand-picker.is-open .sell-model-option:nth-child(6){animation-delay:150ms}
.sell-brand-picker.is-open .sell-model-option:nth-child(7){animation-delay:175ms}
.sell-model-picker-sheet > .sell-year-picker-handle,
.sell-model-picker-sheet .smp-head,
.sell-model-picker-sheet .smp-crumbs,
.sell-model-picker-sheet .sell-model-picker-search-wrap { flex:0 0 auto; }
.sell-model-picker-sheet { min-height:min(70dvh,560px); }


/* ================================================================
   SELL STEPPER — round icon nodes + pill lines + caption
   (replaces the old thin 5-segment bar). Change --ss-accent to recolor
   (e.g. a pink like #f8b4c8 with --ss-ink:#1a1d21).
   ================================================================ */
.sell-stepper {
  --ss-accent:#e0e3e6; --ss-ink:#1a1d21;
  --ss-off:#24282c; --ss-off-ink:#8d9195; --ss-line:#2e3236;
  --ss-dot:42px;
  padding-top:6px;
}
html.theme-light .sell-stepper {
  --ss-accent:#1a1d21; --ss-ink:#f3f4f6;
  --ss-off:#dfe2e5; --ss-off-ink:#7b7f84; --ss-line:#d5d8db;
}
.sell-stepper.ss-compact { --ss-dot:36px; }
.sell-stepper.ss-compact .ss-dot svg { width:17px; height:17px; }
.ss-track { list-style:none; margin:0; padding:0; display:flex; align-items:center; }
.ss-node { flex:0 0 auto; display:flex; }
.ss-dot {
  width:var(--ss-dot); height:var(--ss-dot); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--ss-off); color:var(--ss-off-ink);
  transition:background-color .35s ease, color .35s ease, box-shadow .35s ease, transform .35s ease;
}
.ss-node.is-done .ss-dot { background:var(--ss-accent); color:var(--ss-ink); }
.ss-node.is-current .ss-dot {
  background:var(--ss-accent); color:var(--ss-ink);
  animation:ss-ring 1.6s ease-in-out infinite;
  animation-delay:var(--ss-phase,0s);
}
.ss-node.is-current .ss-dot svg {
  animation:ss-beat 1.6s ease-in-out infinite;
  animation-delay:var(--ss-phase,0s);
}
.ss-line {
  flex:1 1 0; min-width:8px; height:6px; margin:0 5px; border-radius:999px;
  background:var(--ss-line); position:relative; overflow:hidden;
}
.ss-line > i {
  position:absolute; top:0; bottom:0; inset-inline-start:0;
  width:calc(var(--ss-fill,0) * 100%); border-radius:999px; background:var(--ss-accent);
}
.ss-line > i.ss-grow { animation:ss-grow .5s cubic-bezier(.22,1,.36,1) both; }
.ss-caption { margin-top:12px; }
.ss-title { font-size:17px; font-weight:800; line-height:1.35; color:var(--sm-text,#e0e3e6); }
.ss-sub { margin-top:2px; font-size:13px; font-weight:500; color:var(--sm-text-dim,#929599); }
html.theme-light .ss-title { color:#1a1d21; }
.ss-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@keyframes ss-grow { from { width:0; } }
@keyframes ss-ring {
  0%,100% { box-shadow:0 0 0 0 color-mix(in srgb, var(--ss-accent) 45%, transparent); }
  50%     { box-shadow:0 0 0 7px color-mix(in srgb, var(--ss-accent) 0%, transparent); }
}
@keyframes ss-beat { 0%,100% { transform:scale(1); } 50% { transform:scale(1.22); } }
@media (prefers-reduced-motion: reduce) {
  .ss-dot, .ss-dot svg, .ss-line > i { animation:none !important; transition:none !important; }
}
