/* Z-index scale — use these vars for new layered UI (sheet,popover,modal). */ :root{ --z-base:1;--z-toolbar:35;--z-sheet:200;--z-fab:220;--z-drawer:300;--z-popover:350;--z-modal:400;--z-toast:500;--z-auth-gate:600;}.map-v2-shell{ max-width:96rem;margin:0 auto;}.map-v2-card{ transition:transform 160ms ease,box-shadow 160ms ease,border-color 160ms ease;}.map-v2-card:hover{ transform:translateY(-1px);box-shadow:0 18px 40px rgba(15,23,42,0.08);}.map-v2-toolbar-section{ position:sticky;top:5.15rem;z-index:35;}.map-v2-toolbar-actions{ display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.6rem;}.map-v2-toolbar-actions > *{ min-width:0;}.map-v2-toolbar-view{ display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.55rem;border-radius:9999px;border:1px solid #e2e8f0;background:#f8fafc;padding:0.25rem;}.map-v2-toolbar-view > button{ width:100%;border-color:transparent;}.map-v2-toolbar-sort{ width:100%;}.map-v2-sort-sheet-panel{ width:100%;max-width:28rem;border-radius:1.75rem 1.75rem 0 0;background:linear-gradient(180deg,rgba(255,255,255,0.98),rgba(248,250,252,0.98));box-shadow:0 -24px 60px rgba(15,23,42,0.22);}.map-v2-active-chip{ display:inline-flex;align-items:center;border-radius:9999px;border:1px solid #dbe4ee;background:#f8fafc;padding:0.38rem 0.75rem;font-size:0.68rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;color:#475569;white-space:nowrap;}.map-v2-toolbar-sort select{ width:100%;min-width:0;}@media (min-width:1024px){ .map-v2-toolbar-section{ position:sticky;top:4.75rem;z-index:35;}.map-v2-toolbar-actions{ display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;}.map-v2-toolbar-view{ display:flex;align-items:center;gap:0.5rem;border:0;background:transparent;padding:0;}.map-v2-toolbar-sort{ width:auto;}}.map-v2-filter{ appearance:none;background-image:linear-gradient(45deg,transparent 50%,#94a3b8 50%),linear-gradient(135deg,#94a3b8 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;}.map-v2-filter--input{ background-image:none;}.ts-wrapper{ width:100%;}.ts-wrapper .ts-control{ border-radius:1rem;border:1px solid #e2e8f0;background-color:#f8fafc;padding:0.625rem 2.5rem 0.625rem 1rem;font-size:0.875rem;font-weight:600;color:#0f172a;box-shadow:none;min-height:unset;line-height:1.5;cursor:pointer;transition:border-color 150ms ease,background-color 150ms ease;}.ts-wrapper.focus .ts-control{ border-color:#34d399;background-color:#ffffff;outline:none;}.ts-wrapper .ts-control input{ font-size:0.875rem;font-weight:600;color:#0f172a;line-height:1.5;min-width:2rem;}.ts-wrapper.multi .ts-control .item{ background-color:#ecfdf5;color:#065f46;border:1px solid #a7f3d0;border-radius:9999px;font-size:0.75rem;font-weight:700;padding:0.125rem 0.625rem;margin:1px 2px 1px 0;}.ts-wrapper.multi .ts-control .item .remove{ color:#065f46;opacity:0.6;margin-left:4px;}.ts-wrapper.multi .ts-control .item .remove:hover{ opacity:1;}.ts-dropdown{ border-radius:1rem;border:1px solid #e2e8f0;box-shadow:0 10px 25px rgba(15,23,42,0.08);margin-top:4px;overflow:hidden;}.ts-dropdown .ts-dropdown-content{ padding:4px;}.ts-dropdown .option{ border-radius:0.625rem;padding:0.5rem 0.75rem;font-size:0.875rem;font-weight:600;color:#0f172a;cursor:pointer;}.ts-dropdown .option.active,.ts-dropdown .option:hover{ background-color:#ecfdf5;color:#065f46;}.ts-dropdown .option.selected{ background-color:#d1fae5;color:#065f46;}.ts-wrapper:not(.multi) .ts-control:after{ content:'';position:absolute;right:18px;top:50%;border:5px solid transparent;border-top-color:#94a3b8;transform:translateY(-25%);pointer-events:none;}.ts-wrapper.disabled .ts-control{ opacity:0.5;cursor:not-allowed;}.map-v2-selected-card{ box-shadow:0 30px 80px rgba(15,23,42,0.22);}/* On mobile,Estado/Cidade/Bairro skip Tom Select and render as native <select> so the OS picker (iOS wheel / Android dialog) handles selection without triggering the on-screen keyboard. Desktop unaffected because Tom Select wraps the select and hides the original element. */ @media (max-width:767px){ .map-v2-native-select{ width:100%;border-radius:1rem;border:1px solid #e2e8f0;background-color:#ffffff;padding:0.75rem 1rem;font-size:0.875rem;font-weight:600;color:#0f172a;line-height:1.5;outline:none;box-shadow:none;}.map-v2-native-select:focus{ border-color:#34d399;}.map-v2-native-select:disabled{ opacity:0.5;cursor:not-allowed;}select.map-v2-native-select[multiple]{ min-height:2.75rem;}}/* ---- Mobile sort pill ---- */ @media (max-width:1023px){ .mobile-sort-pill{ display:inline-flex;align-items:center;gap:0.375rem;border:1px solid #e2e8f0;border-radius:9999px;background:#ffffff;padding:0.625rem 0.875rem;min-height:44px;font-size:0.8125rem;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;box-shadow:0 1px 3px rgba(15,23,42,0.06);cursor:pointer;transition:border-color 120ms ease,transform 120ms ease;}.mobile-sort-pill:active{ border-color:#94a3b8;transform:scale(0.97);}.mobile-filter-search-btn{ flex-shrink:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:9999px;border:none;background:#0f172a;color:#ffffff;box-shadow:0 1px 4px rgba(15,23,42,0.2);cursor:pointer;transition:background 120ms ease,transform 120ms ease;}.mobile-filter-search-btn:active{ background:#1e293b;transform:scale(0.95);}.mobile-filter-search-btn[aria-busy="true"]{ pointer-events:none;opacity:0.7;}}/* ---- Mobile inline UF + Cidade filter bar ---- */ @media (max-width:1023px){ .mobile-filter-bar{ display:flex;align-items:center;gap:0.5rem;width:100%;margin-bottom:0.5rem;}.mobile-filter-select{ flex:1;min-width:0;min-height:44px;border:1px solid #e2e8f0;border-radius:9999px;background-color:#ffffff;padding:0.625rem 2.25rem 0.625rem 1rem;font-size:0.8125rem;font-weight:600;color:#0f172a;line-height:1.4;outline:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0.75rem center;background-size:1rem;box-shadow:0 1px 3px rgba(15,23,42,0.06);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:border-color 120ms ease,box-shadow 120ms ease,opacity 120ms ease;}.mobile-filter-select:focus{ border-color:#34d399;box-shadow:0 0 0 3px rgba(52,211,153,0.15);}.mobile-filter-select:disabled,.mobile-filter-select[aria-disabled="true"]{ opacity:0.55;cursor:not-allowed;background-color:#f8fafc;color:#94a3b8;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:0.75rem center,right 0.75rem center;background-size:0.875rem,1rem;background-repeat:no-repeat,no-repeat;padding-left:2rem;}.mobile-filter-select:disabled:has(option:checked[value=""]){ color:#94a3b8;}.mobile-filter-tune-btn{ flex-shrink:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:9999px;border:1px solid #e2e8f0;background:#ffffff;color:#475569;box-shadow:0 1px 3px rgba(15,23,42,0.06);transition:border-color 120ms ease,color 120ms ease,transform 120ms ease;cursor:pointer;}.mobile-filter-tune-btn:active{ border-color:#94a3b8;color:#0f172a;transform:scale(0.95);}/* View toggle (Lista/Mapa) — bump touch target on mobile */ .map-v2-toolbar-view > button{ min-height:40px;padding-top:0.5rem;padding-bottom:0.5rem;}.mobile-tipo-pill,.mobile-location-chip{ min-height:44px;padding-top:0.625rem;padding-bottom:0.625rem;font-size:0.8125rem;}.mobile-location-chip{ padding-left:0.875rem;padding-right:0.875rem;}}/* ---- QuintoAndar-style filter pills ---- */ .filter-pill{ display:inline-flex;align-items:center;gap:0.3rem;border-radius:9999px;border:1px solid #e2e8f0;background:#ffffff;padding:0.45rem 0.875rem;font-size:0.8125rem;font-weight:500;color:#374151;white-space:nowrap;cursor:pointer;flex-shrink:0;transition:border-color 120ms ease,background 120ms ease,color 120ms ease,box-shadow 120ms ease;line-height:1.4;}.filter-pill:hover{ border-color:#94a3b8;background:#f8fafc;}.filter-pill--active{ border-color:#0f172a;background:#0f172a;color:#ffffff;}.filter-pill--active:hover{ border-color:#334155;background:#1e293b;}.filter-pill .material-symbols-outlined{ font-size:15px;}.filter-pill--location{ border-color:#e2e8f0;background:#f8fafc;padding-left:0.75rem;font-weight:600;}.filter-pill--location:hover{ border-color:#94a3b8;background:#f1f5f9;}.pills-scroll{ scrollbar-width:none;-ms-overflow-style:none;}.pills-scroll::-webkit-scrollbar{ display:none;}/* ---- Pill dropdown popup panels ---- */ /* Pill popup — 8pt rhythm:padding 16/24,gaps 8/12/16/24 */ .pill-popup{ position:fixed;z-index:200;background:#ffffff;border:1px solid rgba(15,23,42,0.08);border-radius:20px;box-shadow:0 16px 48px -8px rgba(15,23,42,0.18);padding:24px;min-width:17rem;max-width:22rem;width:max-content;}.pill-popup-title{ font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:0.14em;color:#64748b;margin-bottom:16px;}.pill-popup-field{ margin-top:16px;}.pill-popup-field:first-of-type{ margin-top:0;}.pill-popup-label{ display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:#94a3b8;margin-bottom:6px;}.pill-popup select,.pill-popup input[type="number"],.pill-popup input[type="text"]{ width:100%;border-radius:12px;border:1px solid #e2e8f0;background:#f8fafc;padding:10px 14px;font-size:14px;font-weight:600;color:#0f172a;outline:none;transition:border-color 120ms ease,background 120ms ease;}.pill-popup select:focus,.pill-popup input[type="number"]:focus,.pill-popup input[type="text"]:focus{ border-color:#10b981;background:#ffffff;}.pill-popup select:disabled{ opacity:0.5;cursor:not-allowed;}.pill-popup-row{ display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;}.pill-popup-row .pill-popup-field{ min-width:0;}.pill-popup-apply{ display:block;width:100%;margin-top:24px;border-radius:9999px;background:#0f172a;color:#ffffff;font-size:12px;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;padding:12px 16px;cursor:pointer;border:none;transition:background 120ms ease;}.pill-popup-apply:hover{ background:#1e293b;}.pill-popup-checks{ display:flex;flex-direction:column;gap:0.15rem;max-height:13rem;overflow-y:auto;}.pill-popup-checks label{ display:flex;align-items:center;gap:0.6rem;font-size:0.875rem;font-weight:500;color:#334155;cursor:pointer;padding:0.35rem 0.5rem;border-radius:0.5rem;transition:background 80ms;white-space:nowrap;}.pill-popup-checks label:hover{ background:#f1f5f9;}.pill-popup-checks input[type="checkbox"]{ width:0.9rem;height:0.9rem;accent-color:#0f172a;flex-shrink:0;cursor:pointer;}#listPanelHeader{ display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:0.75rem 0 0.625rem;}.list-panel-header-sort{ display:none;}@media (min-width:1024px){ #listPanelHeader{ padding:0.875rem 0 0.5rem;}.list-panel-header-sort{ display:inline-flex;align-items:center;gap:0.5rem;border-radius:9999px;border:1px solid #e2e8f0;background:#f8fafc;padding:0.45rem 0.85rem;font-size:0.75rem;font-weight:600;color:#475569;white-space:nowrap;}.list-panel-header-sort select{ border:0;background:transparent;font-size:0.75rem;font-weight:600;color:#334155;outline:none;}}/* ---- Mobile search card (QuintoAndar-style) ---- */ .mobile-search-card{ display:flex;width:100%;align-items:center;gap:0.75rem;border-radius:1.25rem;border:1px solid #e2e8f0;background:#ffffff;padding:0.75rem 1rem;box-shadow:0 1px 6px rgba(15,23,42,0.06);text-align:left;cursor:pointer;transition:border-color 120ms ease,box-shadow 120ms ease;}.mobile-search-card:hover{ border-color:#94a3b8;box-shadow:0 2px 12px rgba(15,23,42,0.1);}.mobile-search-card__tune{ display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:9999px;border:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0;transition:border-color 120ms,background 120ms;}.mobile-search-card:hover .mobile-search-card__tune{ border-color:#0f172a;background:#0f172a;color:#fff;}.mobile-tipo-pill{ display:inline-flex;align-items:center;flex-shrink:0;border-radius:9999px;border:1px solid #e2e8f0;background:#ffffff;padding:0.4rem 0.875rem;font-size:0.8125rem;font-weight:600;color:#475569;white-space:nowrap;cursor:pointer;transition:border-color 120ms ease,background 120ms ease,color 120ms ease;}.mobile-tipo-pill:hover{ border-color:#94a3b8;background:#f8fafc;}.mobile-tipo-pill--active{ border-color:#0f172a;background:#0f172a;color:#ffffff;}.mobile-tipo-pill--active:hover{ border-color:#334155;background:#1e293b;}/* ---- WhatsApp float (hidden on mobile map view) ---- */ #whatsappFloat{ display:inline-flex;}@media (max-width:1023px){ [data-shell-mode="map"] #whatsappFloat{ display:none;}}/* Mobile:splitMapPanel hidden by default */ #mobileMapActionDock{ display:none !important;}@media (max-width:1023px){ #splitMapPanel{ display:none;}[data-shell-mode="map"] #splitMapPanel{ display:block !important;}/* ---- Map mode:fixed viewport layout ---- */ /* Shell fills viewport below fixed nav;toolbar + map fill top,list scrolls below */ [data-shell-mode="map"]{ padding:0;padding-top:5rem;         /* clear fixed nav (matches pt-20 = 5rem) */ box-sizing:border-box;height:100dvh;overflow:hidden;display:flex;flex-direction:column;}[data-shell-mode="map"] #mapToolbar{ flex-shrink:0;position:static;          /* no sticky needed — shell doesn't scroll */ top:auto;}[data-shell-mode="map"] #mapShellGrid{ flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;}/* Map panel fills full available height;sheet overlays it (Zillow style) */ [data-shell-mode="map"] #splitMapPanel{ order:-1;flex:1 1 auto;min-height:0;}[data-shell-mode="map"] #mapPanel{ height:100%;border:0;border-radius:0;box-shadow:none;overflow:hidden;}[data-shell-mode="map"] #map{ height:100%;}/* Bottom sheet — list panel becomes draggable overlay (Airbnb-style) */ [data-shell-mode="map"] #splitListPanel{ position:fixed;left:0;right:0;bottom:0;top:auto;height:calc(100dvh - 5rem);z-index:var(--z-sheet,200);background:#ffffff;border-top-left-radius:1.5rem;border-top-right-radius:1.5rem;box-shadow:0 -12px 32px rgba(15,23,42,0.22);padding:0;flex:0 0 auto;overflow:hidden;transform:translateY(var(--sheet-offset,calc(100% - 200px)));transition:transform 220ms cubic-bezier(0.32,0.72,0,1);will-change:transform;}[data-shell-mode="map"] #splitListPanel.is-dragging{ transition:none;}[data-shell-mode="map"][data-sheet-snap="peek"] #splitListPanel{ --sheet-offset:calc(100% - 200px);}[data-shell-mode="map"][data-sheet-snap="half"] #splitListPanel{ --sheet-offset:45%;}[data-shell-mode="map"][data-sheet-snap="full"] #splitListPanel{ --sheet-offset:0%;}[data-shell-mode="map"][data-sheet-snap="full"] #splitListPanel,[data-shell-mode="map"][data-sheet-snap="half"] #splitListPanel{ overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}/* Drag handle — bigger touch target,more visible bar */ .bottom-sheet-handle{ position:sticky;top:0;z-index:3;background:#ffffff;padding:14px 0 10px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;border-top-left-radius:1.5rem;border-top-right-radius:1.5rem;}.bottom-sheet-handle:active{ cursor:grabbing;}.bottom-sheet-handle::before{ content:'';display:block;width:36px;height:5px;margin:0 auto;border-radius:9999px;background:#cbd5e1;transition:background 120ms ease;}.bottom-sheet-handle:hover::before,.bottom-sheet-handle:active::before{ background:#64748b;}/* Airbnb-style:count centered,no sort row at peek */ [data-shell-mode="map"] #listPanelHeader{ padding:0.125rem 1rem 0.5rem;text-align:center;justify-content:center;}[data-shell-mode="map"] #listPanelHeader > div{ width:100%;}[data-shell-mode="map"] #listPanelHeader .flex{ justify-content:center;}[data-shell-mode="map"] #resultsCount{ font-size:1rem;font-weight:800;color:#0f172a;}[data-shell-mode="map"] #mobileActiveFilterChips{ justify-content:center;}[data-shell-mode="map"] #resultsList{ padding:0 1rem;}[data-shell-mode="map"] #paginationContainer{ padding:0 1rem 4rem;}[data-shell-mode="map"] #selectedPropertyPanel{ position:fixed;left:0.5rem;right:0.5rem;bottom:calc(28dvh + 0.5rem);width:auto;z-index:calc(var(--z-sheet,200) + 5);}[data-shell-mode="map"] #selectedPropertyPanel .map-v2-selected-card{ max-height:32dvh;overflow-y:auto;}/* Hide redundant bottom action dock — sheet handle replaces "Mostrar lista" */ [data-shell-mode="map"] #mobileMapActionDock{ display:none !important;}/* Hide elements not needed in map mode */ [data-shell-mode="map"] #listPanelSeoIntro,[data-shell-mode="map"] #mobileTipoPillsRow,[data-shell-mode="map"] .list-panel-header-sort,[data-shell-mode="map"] #savedFiltersToggle{ display:none !important;}}/* ---- Desktop layout modes (split / map-only / cards-only) ---- */ @media (min-width:1024px){ /* Default = split (cards + map) */ #mapShellGrid{ grid-template-columns:minmax(0,1fr) 400px !important;height:var(--ll-map-shell-height,calc(100dvh - 12rem));overflow:hidden;}/* Map-only mode:hide cards,map fills width */ [data-desktop-layout="map"] #mapShellGrid{ grid-template-columns:1fr !important;}[data-desktop-layout="map"] #splitListPanel{ display:none !important;}/* Cards-only mode:hide map,cards fill width */ [data-desktop-layout="cards"] #mapShellGrid{ grid-template-columns:1fr !important;}[data-desktop-layout="cards"] #splitMapPanel{ display:none !important;}[data-desktop-layout="cards"] #resultsList{ grid-template-columns:repeat(3,minmax(0,1fr)) !important;}}@media (min-width:1024px){ /* keep below for legacy specificity */ #splitListPanel{ overflow-y:auto;height:100%;padding-right:0.25rem;scrollbar-width:thin;scrollbar-color:#e2e8f0 transparent;}#splitListPanel::-webkit-scrollbar{ width:4px;}#splitListPanel::-webkit-scrollbar-thumb{ background:#e2e8f0;border-radius:4px;}#splitMapPanel{ display:block !important;height:100%;position:relative;/* anchors selectedPropertyPanel inside the map column */}#mapPanel{ display:block !important;height:100% !important;border-radius:1.25rem;overflow:hidden;}#selectedPropertyPanel{ position:absolute;left:1rem;right:auto;bottom:1rem;width:21rem;max-width:calc(100% - 1.5rem);z-index:1000;}#selectedPropertyPanel .map-v2-selected-card{ max-height:calc(100vh - 13rem);overflow-y:auto;}#map{ height:100% !important;}#resultsPanel{ display:block !important;}#paginationContainer{ display:flex !important;}#resultsList{ grid-template-columns:repeat(2,minmax(0,1fr)) !important;}}@media (min-width:1400px){ #mapShellGrid{ grid-template-columns:minmax(0,1fr) 460px !important;}#resultsList{ grid-template-columns:repeat(3,minmax(0,1fr)) !important;}}@media (min-width:1024px){ .busca-page #resultsList{ grid-template-columns:repeat(3,minmax(0,1fr)) !important;}}@media (min-width:1400px){ .busca-page #resultsList{ grid-template-columns:repeat(4,minmax(0,1fr)) !important;}}.card-img-wrap{ aspect-ratio:16 / 7;}@keyframes selectedCardIn{ from{ transform:translateY(10px);opacity:0;}to { transform:translateY(0);   opacity:1;}}@media (min-width:1024px){ #selectedPropertyPanel:not(.hidden){ animation:selectedCardIn 180ms ease both;}}/* ── Skeleton loading cards ─────────────────────────── */ @keyframes map-skeleton-shimmer{ 0% { background-position:200% 0;}100%{ background-position:-200% 0;}}.map-v2-skeleton-card{ border-radius:1.25rem;background:#f8fafc;border:1px solid #e8edf2;overflow:hidden;}.map-v2-skeleton-pulse{ background:linear-gradient(90deg,#f1f5f9 25%,#e8edf2 50%,#f1f5f9 75%);background-size:200% 100%;animation:map-skeleton-shimmer 1.4s ease infinite;}@media (prefers-reduced-motion:reduce){ .map-v2-skeleton-pulse{ animation:none;background:#e8edf2;}}.map-v2-skeleton-card--airbnb{ border-radius:16px;border-color:rgba(15,23,42,0.08);background:#ffffff;}.map-v2-skeleton-card--airbnb .map-v2-skeleton-photo{ width:100%;aspect-ratio:4 / 3;}.map-v2-skeleton-card--airbnb .map-v2-skeleton-body{ padding:14px;display:flex;flex-direction:column;gap:6px;}/* ── Map loading state (skeleton overlay over tiles) ── */ #mapPanel{ position:relative;}#mapPanel[data-map-loading="true"]::after{ content:'';position:absolute;inset:0;z-index:400;background:linear-gradient(135deg,rgba(241,245,249,0.78) 0%,rgba(232,237,242,0.78) 100%),linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.55) 50%,transparent 100%);background-size:100% 100%,200% 100%;background-repeat:no-repeat,no-repeat;background-position:0 0,200% 0;animation:map-skeleton-shimmer 1.4s ease infinite;pointer-events:none;}#mapPanel[data-map-loading="true"]::before{ content:'Carregando imóveis…';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:401;background:#ffffff;border:1px solid #e2e8f0;border-radius:9999px;padding:0.55rem 1.1rem;font-size:0.78rem;font-weight:700;letter-spacing:0.04em;color:#0f172a;box-shadow:0 8px 24px rgba(15,23,42,0.12);display:inline-flex;align-items:center;gap:0.5rem;pointer-events:none;}@media (prefers-reduced-motion:reduce){ #mapPanel[data-map-loading="true"]::after{ animation:none;}}/* ── Search button busy state ───────────────────────── */ #btnRefreshResults[aria-busy="true"],#btnRefreshResultsMobile[aria-busy="true"],#btnApplyMobileFilters[aria-busy="true"]{ pointer-events:none;opacity:0.75;}#btnRefreshResults[aria-busy="true"]::after,#btnRefreshResultsMobile[aria-busy="true"]::after{ content:'';display:inline-block;width:0.9em;height:0.9em;margin-left:0.55rem;border-radius:50%;border:2px solid rgba(255,255,255,0.4);border-top-color:#ffffff;animation:map-spin 0.7s linear infinite;vertical-align:-2px;}@keyframes map-spin{ to{ transform:rotate(360deg);}}@media (prefers-reduced-motion:reduce){ #btnRefreshResults[aria-busy="true"]::after,#btnRefreshResultsMobile[aria-busy="true"]::after{ animation:none;border-top-color:rgba(255,255,255,0.85);}}/* ── Cidade select loading state (encadeado UF→Cidade) ── */ .mobile-filter-select[data-loading="true"],.map-v2-native-select[data-loading="true"]{ opacity:0.6;pointer-events:none;color:#94a3b8;}/* ── Result cards fade-in stagger ───────────────────── */ @keyframes map-card-in{ from{ opacity:0;transform:translateY(6px);}to { opacity:1;transform:translateY(0);}}#resultsList > .map-v2-card{ animation:map-card-in 220ms ease-out both;animation-delay:calc(var(--card-index,0) * 32ms);}@media (prefers-reduced-motion:reduce){ #resultsList > .map-v2-card{ animation:none;}}/* ── Map expand/collapse button (Airbnb pattern) ────── */ .map-expand-ctl{ background:transparent !important;border:0 !important;box-shadow:none !important;margin-bottom:8px !important;}.map-expand-btn{ display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9999px;border:1px solid #e2e8f0;background:#ffffff;color:#0f172a;box-shadow:0 4px 14px rgba(15,23,42,0.10);cursor:pointer;transition:transform 120ms ease,box-shadow 120ms ease,border-color 120ms ease;}.map-expand-btn:hover{ border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,0.14);}.map-expand-btn .material-symbols-outlined{ font-size:18px;}.map-expand-btn .map-collapse-icon{ display:none;}[data-desktop-layout="map"] .map-expand-btn .map-expand-icon{ display:none;}[data-desktop-layout="map"] .map-expand-btn .map-collapse-icon{ display:inline-flex;}/* Hide expand button on mobile — sheet pattern replaces it */ @media (max-width:1023px){ .map-expand-ctl{ display:none !important;}}/* ── Hover sync (Redfin-style) ──────────────────────── */ .map-v2-card.is-hover-from-map{ outline:2px solid #10b981;outline-offset:0;box-shadow:0 14px 32px rgba(16,185,129,0.18);transform:translateY(-2px);z-index:5;}/* ── Price-pin DivIcon (Redfin/Airbnb-style price labels) ── */ .price-pin-wrap{ background:transparent !important;border:0 !important;}.price-pin{ display:inline-flex;align-items:center;justify-content:center;background:#ffffff;color:#0f172a;border:1px solid rgba(15,23,42,0.12);border-radius:9999px;padding:4px 10px;font-size:12px;font-weight:800;letter-spacing:-0.01em;box-shadow:0 6px 16px rgba(15,23,42,0.18);white-space:nowrap;cursor:pointer;transition:transform 120ms ease,background 120ms ease,color 120ms ease,border-color 120ms ease;position:relative;transform:translate(-50%,-100%);}.price-pin::after{ content:'';position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #ffffff;filter:drop-shadow(0 1px 0 rgba(15,23,42,0.12));}.price-pin:hover,.price-pin-wrap.marker-highlight .price-pin,.price-pin-wrap.marker-active .price-pin{ background:var(--ll-ink,#0f172a);color:#ffffff;border-color:var(--ll-ink,#0f172a);transform:translate(-50%,-100%) scale(1.08);z-index:1000;}.price-pin:hover::after,.price-pin-wrap.marker-highlight .price-pin::after,.price-pin-wrap.marker-active .price-pin::after{ border-top-color:var(--ll-ink,#0f172a);}.price-pin--cluster{ background:#0f172a;color:#ffffff;border-color:#0f172a;font-size:11px;padding:5px 11px;}.price-pin--cluster::after{ border-top-color:#0f172a;}.price-pin--cluster:hover{ background:#1e293b;border-color:#1e293b;color:#ffffff;}.price-pin--cluster:hover::after{ border-top-color:#1e293b;}/* ── Active pagination page ─────────────────────────── */ #paginationContainer button[aria-current="page"]{ border-color:#0f172a !important;background:#0f172a !important;color:#ffffff !important;box-shadow:0 4px 12px rgba(15,23,42,0.18);}/* ── Dismissible active filter chips ────────────────── */ .map-v2-active-chip--dismissible{ cursor:pointer;gap:0.3rem;border:1px solid #dbe4ee;background:#f8fafc;font-family:inherit;transition:background 120ms,border-color 120ms;}.map-v2-active-chip--dismissible:hover{ background:#eef2f7;border-color:#94a3b8;}.map-v2-active-chip-close{ font-size:11px !important;line-height:1;color:#94a3b8;flex-shrink:0;}/* ── Rich empty state ───────────────────────────────── */ .map-v2-empty-state{ display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.5rem 1.5rem;border-radius:1.5rem;border:1.5px dashed #e2e8f0;background:#fafafa;}.map-v2-empty-state-icon{ font-size:2.75rem;color:#94a3b8;margin-bottom:0.6rem;}.map-v2-empty-state-title{ font-size:1rem;font-weight:800;color:#1e293b;margin-bottom:0.35rem;letter-spacing:-0.02em;}.map-v2-empty-state-body{ font-size:0.84rem;color:#64748b;max-width:22rem;line-height:1.55;margin-bottom:1.25rem;}.map-v2-empty-state-cta{ display:inline-flex;align-items:center;gap:0.5rem;border-radius:9999px;background:#0f172a;color:#fff;border:none;padding:0.6rem 1.4rem;font-size:0.82rem;font-weight:800;cursor:pointer;transition:background 150ms;}.map-v2-empty-state-cta:hover{ background:#1e293b;}/* ── Mobile filter bar:hide row 2 (Estado/Cidade),keep in DOM for JS ── */ @media (max-width:1023px){ #mobileFilterBar{ display:none !important;}}/* ── Mobile location chip ───────────────────────────────────────────────── */ .mobile-location-chip{ display:inline-flex;align-items:center;gap:0.3rem;flex-shrink:0;border-radius:9999px;border:1px solid #e2e8f0;background:#ffffff;padding:0.35rem 0.75rem;font-size:0.75rem;font-weight:700;color:#374151;white-space:nowrap;cursor:pointer;transition:border-color 120ms ease,background 120ms ease,color 120ms ease;box-shadow:0 1px 3px rgba(15,23,42,0.06);}.mobile-location-chip--active{ border-color:#0f172a;background:#0f172a;color:#ffffff;}.mobile-location-chip--active .material-symbols-outlined{ color:#ffffff;}/* ── Horizontal card (mobile list) ─────────────────────────────────────── */ @media (max-width:639px){ .map-v2-card--horiz{ display:flex;flex-direction:row;overflow:hidden;border-radius:1rem;border:0;box-shadow:0 2px 12px rgba(15,23,42,0.08);background:#ffffff;align-items:stretch;min-height:132px;}.map-v2-card--horiz .card-img-wrap{ aspect-ratio:unset !important;flex-shrink:0;width:132px;height:132px;}.map-v2-card--horiz .card-img-wrap img{ height:100%;object-fit:cover;}/* Bump readable text inside horizontal mobile card */ .map-v2-card--horiz .map-v2-card-title,.map-v2-card--horiz [data-card-title]{ font-size:0.95rem;line-height:1.25;}.map-v2-card--horiz .map-v2-card-price,.map-v2-card--horiz [data-card-price]{ font-size:1rem;font-weight:800;}/* Non-horiz list cards also get subtle shadow + radius on mobile */ #resultsList .map-v2-card:not(.map-v2-card--horiz){ border-radius:1rem;overflow:hidden;box-shadow:0 2px 12px rgba(15,23,42,0.08);}/* Featured (first) card — Airbnb-style hero */ .map-v2-card--featured{ aspect-ratio:auto !important;border-radius:1.25rem;overflow:hidden;}.map-v2-card--featured > .card-img-wrap{ width:100%;aspect-ratio:4 / 5;}.map-v2-card--featured > .card-img-wrap img{ height:100%;width:100%;object-fit:cover;}.map-v2-card--featured section{ padding:0.875rem 1rem;}.map-v2-card--featured section .text-xs{ font-size:0.875rem;}.map-v2-card--featured section .text-sm{ font-size:1rem;}/* Tighter gap between horiz cards */ #resultsList{ gap:0.75rem !important;}/* Overscroll containment so list scroll doesn't trigger pull-to-refresh */ [data-shell-mode="map"] #splitListPanel{ overscroll-behavior:contain;}}/* ── Map bottom sheet:full-width Airbnb-style cards ───────────────────── */ @media (max-width:1023px){ [data-shell-mode="map"] #resultsList{ grid-template-columns:1fr !important;gap:0.625rem !important;padding-top:0.25rem !important;}/* Compact horiz card sized to fit peek slice */ [data-shell-mode="map"] #resultsList .map-v2-card--horiz{ min-height:80px !important;border-radius:0.875rem;}[data-shell-mode="map"] #resultsList .map-v2-card--horiz .card-img-wrap{ width:80px !important;height:80px !important;}/* List mode on tablets keeps 2-col (map mode forces 1-col above) */ [data-shell-mode="list"] #resultsList{ grid-template-columns:repeat(2,minmax(0,1fr));}}@media (max-width:639px){ [data-shell-mode="list"] #resultsList{ grid-template-columns:1fr !important;}/* Override horiz → vertical for map sheet context */ [data-shell-mode="map"] #resultsList .map-v2-card--horiz{ flex-direction:column;min-height:unset;border-radius:1.25rem;overflow:hidden;}[data-shell-mode="map"] #resultsList .map-v2-card--horiz .card-img-wrap{ width:100% !important;height:unset !important;aspect-ratio:2 / 1 !important;}[data-shell-mode="map"] #resultsList .map-v2-card--horiz .card-img-wrap img{ width:100%;height:100%;object-fit:cover;}[data-shell-mode="map"] #resultsList .map-v2-card--horiz section{ padding:0.75rem 1rem;}}/* ── Safe-area insets for fixed mobile UI (iPhone notch + home indicator) ── */ @media (max-width:1023px){ #mobileMapActionDock{ padding-bottom:max(1rem,env(safe-area-inset-bottom));}#selectedPropertyPanel{ padding-bottom:env(safe-area-inset-bottom);}/* Active filter chips:bigger dismiss target */ .map-v2-active-chip--dismissible{ min-height:32px;padding:0.45rem 0.65rem 0.45rem 0.85rem;}.map-v2-active-chip-close{ font-size:14px !important;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;}}/* ═══════════════════════════════════════════════════════════════════ Phase 1 — Market Terminal foundation Tabular numerals + price-pin tiering + status ribbon + countdown chip ═══════════════════════════════════════════════════════════════════ */ /* Tabular figures on every numeric surface — prices align,percentages stop dancing,m² columns become readable. Safe on text. */ .map-v2-card,.price-pin,.map-v2-active-chip,.list-panel-header-sort,#resultsCount,#freeQuotaCounter,.card-countdown-chip,.card-status-ribbon,.tabular-nums{ font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1;}/* ── Price-pin tiers — Fase 2.3 redesign ── Spec:3 categorias visíveis na legenda (Desconto 45%+ / Demais / Já visualizados). --soon e --upcoming retiradas:urgência temporal vai pelo card flag,nao pelo pin (que deve sinalizar apenas oportunidade de preço). */ .price-pin--hot{            /* desconto >= 40% */ background:var(--ll-green,#0F7A4D);color:#ffffff;border-color:var(--ll-green,#0F7A4D);}.price-pin--hot::after{ border-top-color:var(--ll-green,#0F7A4D);}.price-pin--viewed{         /* ja visualizado pelo usuario */ color:var(--ll-muted-2,#9aa0ab);background:#ffffff;border-color:var(--ll-line-2,#e0ded5);box-shadow:0 3px 8px rgba(15,23,42,0.10);opacity:0.85;}.price-pin--live{           /* leilão em andamento (até 4h após início) */ background:var(--ll-red,#c2261c);color:#ffffff;border-color:var(--ll-red,#c2261c);}.price-pin--live::after{ border-top-color:var(--ll-red,#c2261c);}@media (prefers-reduced-motion:no-preference){ .price-pin--live{ animation:card-countdown-blink 1.1s ease-in-out infinite;}}/* Keep emerald hover transform on tiered pins (just scale,no color flip) */ .price-pin--hot:hover,.price-pin--soon:hover,.price-pin--upcoming:hover,.price-pin--live:hover,.price-pin-wrap.marker-highlight .price-pin--hot,.price-pin-wrap.marker-highlight .price-pin--soon,.price-pin-wrap.marker-highlight .price-pin--upcoming,.price-pin-wrap.marker-highlight .price-pin--live{ transform:translate(-50%,-100%) scale(1.1);z-index:1000;}.price-pin--hot:hover::after,.price-pin-wrap.marker-highlight .price-pin--hot::after{ border-top-color:#b91c1c;}.price-pin--soon:hover::after,.price-pin-wrap.marker-highlight .price-pin--soon::after{ border-top-color:#c2410c;}.price-pin--upcoming:hover::after,.price-pin-wrap.marker-highlight .price-pin--upcoming::after{ border-top-color:#047857;}.price-pin--live:hover::after,.price-pin-wrap.marker-highlight .price-pin--live::after{ border-top-color:#f97316;}/* ── Status ribbon (corner flag indicating auction phase) ── */ .card-status-ribbon{ position:absolute;left:0;top:0;padding:3px 7px 3px 6px;font-size:8px;font-weight:900;letter-spacing:0.08em;text-transform:uppercase;color:#ffffff;background:#0f172a;border-radius:0 0 6px 0;z-index:2;box-shadow:0 1px 4px rgba(15,23,42,0.22);pointer-events:none;line-height:1;}.card-status-ribbon--leilao-1   { background:#c2410c;}.card-status-ribbon--leilao-2   { background:#b91c1c;}.card-status-ribbon--venda-direta{ background:#1e40af;}.card-status-ribbon--licitacao  { background:#6d28d9;}.card-status-ribbon--venda-online{ background:#0f766e;}.card-status-ribbon--judicial   { background:#7c3aed;}/* ── Countdown chip (urgency surfaced on the image) ── */ .card-bottomright-stack{ position:absolute;right:6px;bottom:6px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;z-index:2;}.card-countdown-chip{ display:inline-flex;align-items:center;gap:4px;padding:3px 8px 3px 6px;font-size:10px;font-weight:800;letter-spacing:0.01em;color:#ffffff;background:rgba(15,23,42,0.92);border-radius:9999px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);line-height:1;white-space:nowrap;}.card-countdown-chip .material-symbols-outlined{ font-size:11px !important;line-height:1;}.card-countdown-chip--urgent { background:#b91c1c;}.card-countdown-chip--soon   { background:#c2410c;}.card-countdown-chip--upcoming{ background:#047857;}.card-countdown-chip--live   { background:#f97316;}@media (prefers-reduced-motion:no-preference){ .card-countdown-chip--urgent{ animation:card-countdown-pulse 1.6s ease-in-out infinite;}.card-countdown-chip--live{ animation:card-countdown-blink 1.1s ease-in-out infinite;}}@keyframes card-countdown-pulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(185,28,28,0.55);}50%    { box-shadow:0 0 0 7px rgba(185,28,28,0);}}@keyframes card-countdown-blink{ 0%,100%{ opacity:1;box-shadow:0 0 0 0 rgba(249,115,22,0.65);}50%    { opacity:0.7;box-shadow:0 0 0 8px rgba(249,115,22,0);}}/* ═══════════════════════════════════════════════════════════════════ Phase 2 — UX features ═══════════════════════════════════════════════════════════════════ */ /* Guest preview:cards beyond the 3rd render blurred + locked */ .map-v2-card--guest-blur{ position:relative;filter:blur(7px) saturate(0.7);pointer-events:none;user-select:none;}.map-v2-card--guest-blur::after{ content:'';position:absolute;inset:0;background:rgba(255,255,255,0.18);z-index:1;}/* Guest CTA card inserted after preview cards */ .map-v2-guest-cta-card{ grid-column:1 / -1;border-radius:1.5rem;border:1px solid #cbd5e1;background:radial-gradient(circle at top left,rgba(16,185,129,0.10),transparent 30%),linear-gradient(180deg,#ffffff,#f8fafc);box-shadow:0 18px 40px rgba(15,23,42,0.10);padding:1.75rem;position:relative;z-index:2;}.map-v2-guest-cta-inner{ max-width:36rem;margin:0 auto;text-align:center;}.map-v2-guest-cta-eyebrow{ display:inline-block;margin:0 0 0.5rem;padding:0.25rem 0.75rem;font-size:10px;font-weight:900;letter-spacing:0.22em;text-transform:uppercase;color:#047857;background:rgba(16,185,129,0.12);border-radius:9999px;}.map-v2-guest-cta-title{ font-size:1.5rem;font-weight:900;letter-spacing:-0.02em;color:#0f172a;margin:0 0 0.5rem;line-height:1.2;}.map-v2-guest-cta-body{ font-size:0.95rem;color:#475569;line-height:1.5;margin:0 0 1.25rem;}.map-v2-guest-cta-actions{ display:flex;flex-direction:column;gap:0.5rem;align-items:center;}@media (min-width:640px){ .map-v2-guest-cta-actions{ flex-direction:row;justify-content:center;}}.map-v2-guest-cta-primary,.map-v2-guest-cta-secondary{ display:inline-flex;align-items:center;justify-content:center;padding:0.75rem 1.5rem;border-radius:9999px;font-size:0.85rem;font-weight:800;letter-spacing:0.05em;text-transform:uppercase;text-decoration:none;min-width:11rem;transition:transform 120ms ease,box-shadow 120ms ease,background 120ms ease;}.map-v2-guest-cta-primary{ background:linear-gradient(135deg,#10b981,#059669);color:#ffffff;box-shadow:0 12px 28px rgba(16,185,129,0.28);}.map-v2-guest-cta-primary:hover{ transform:translateY(-1px);box-shadow:0 16px 36px rgba(16,185,129,0.35);}.map-v2-guest-cta-secondary{ background:#ffffff;color:#0f172a;border:1px solid #cbd5e1;}.map-v2-guest-cta-secondary:hover{ border-color:#0f172a;}/* Empty state — smart suggestions */ .map-v2-empty-state-suggestions{ display:flex;flex-wrap:wrap;gap:0.5rem;justify-content:center;margin:0.75rem 0 0.5rem;}.map-v2-empty-state-suggestion{ padding:0.5rem 0.9rem;border-radius:9999px;background:#f1f5f9;border:1px solid #cbd5e1;color:#0f172a;font-size:0.8rem;font-weight:700;cursor:pointer;transition:background 120ms,border-color 120ms;}.map-v2-empty-state-suggestion:hover{ background:#e2e8f0;border-color:#94a3b8;}/* ═══════════════════════════════════════════════════════════════════ Phase 5 — Airbnb-tight density ═══════════════════════════════════════════════════════════════════ */ /* Scoped Geist Sans only on the imoveis map page — does not touch other pages. Headings keep their boldness;Geist's 500/600/700 are notably more refined than Inter at UI sizes. */ .map-v2-shell,.map-v2-shell input,.map-v2-shell select,.map-v2-shell button,#popupLocation,#popupSource,#popupPrice,#popupTipo,#popupDesconto,#filtersSidebar,#sortSheetModal,#savedFiltersModal,#selectedPropertyPanel{ font-family:'Geist','Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}.map-v2-card--airbnb{ position:relative;display:flex;flex-direction:column;background:#ffffff;border:1px solid rgba(15,23,42,0.08);border-radius:16px;overflow:hidden;transition:transform 160ms ease,box-shadow 160ms ease,border-color 160ms ease;}.map-v2-card--airbnb:hover{ transform:translateY(-2px);box-shadow:0 16px 32px -8px rgba(15,23,42,0.12);border-color:rgba(15,23,42,0.18);}.map-v2-card--airbnb .card-photo{ position:relative;width:100%;aspect-ratio:3 / 2;overflow:hidden;background:#f1f5f9;}/* Overlay (selected-property drawer / pin click) — keep photo shorter so location + price are above the fold. */ .map-v2-card--airbnb.map-v2-selected-card .card-photo{ aspect-ratio:16 / 9;}.map-v2-card--airbnb.map-v2-selected-card .card-body{ padding:12px 16px 16px;gap:3px;}.map-v2-card--airbnb.map-v2-selected-card .card-location{ font-size:15px;}.map-v2-card--airbnb.map-v2-selected-card .card-price-value{ font-size:22px;}/* Overlay close button lives at right:12px top:12px (h-9 w-9 = 36×36) — shift the heart left of it so they don't stack on the same spot. */ .map-v2-card--airbnb.map-v2-selected-card .card-fav-btn{ right:54px !important;top:14px !important;}.map-v2-card--airbnb .card-photo-img{ position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;}.map-v2-card--airbnb .card-photo-img.is-active{ opacity:1;}.map-v2-card--airbnb .card-photo:not(.card-photo--carousel) .card-photo-img{ /* Single-photo:no stacking needed,simpler render */ position:static;opacity:1;}@media (prefers-reduced-motion:no-preference){ .map-v2-card--airbnb .card-photo-img{ transition:opacity 220ms ease,transform 400ms ease;}.map-v2-card--airbnb:hover .card-photo-img.is-active{ transform:scale(1.04);}}/* Carousel arrows */ .map-v2-card--airbnb .card-photo-arrow{ position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.96);color:#0f172a;border:1px solid rgba(15,23,42,0.08);border-radius:9999px;box-shadow:0 4px 12px rgba(15,23,42,0.18);font-size:18px;font-weight:700;line-height:1;cursor:pointer;opacity:0;transition:opacity 150ms ease,transform 150ms ease,background 150ms ease;z-index:4;padding:0;}.map-v2-card--airbnb .card-photo-arrow:hover{ background:#ffffff;transform:translateY(-50%) scale(1.06);}.map-v2-card--airbnb:hover .card-photo-arrow{ opacity:1;}.map-v2-card--airbnb .card-photo-arrow--prev{ left:8px;}.map-v2-card--airbnb .card-photo-arrow--next{ right:8px;}@media (max-width:767px){ .map-v2-card--airbnb .card-photo-arrow{ display:none;}}/* Carousel dots */ .map-v2-card--airbnb .card-photo-dots{ position:absolute;bottom:7px;left:50%;transform:translateX(-50%);display:flex;gap:3px;z-index:3;padding:4px 6px;background:rgba(15,23,42,0.18);border-radius:9999px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}.map-v2-card--airbnb .card-photo-dots span{ width:5px;height:5px;border-radius:9999px;background:rgba(255,255,255,0.65);cursor:pointer;transition:width 180ms ease,background 180ms ease;}.map-v2-card--airbnb .card-photo-dots span.is-active{ width:16px;background:rgba(255,255,255,1);}.map-v2-card--airbnb .card-body{ position:relative;padding:12px 13px 13px;display:flex;flex-direction:column;flex:1;gap:3px;font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1;}.map-v2-card--airbnb .card-stretched-link{ position:absolute;inset:0;z-index:1;/* Visually invisible — accessible label only */}.map-v2-card--airbnb .card-stretched-link:focus-visible{ outline:2px solid #0f172a;outline-offset:-4px;border-radius:12px;}.map-v2-card--airbnb .card-location{ font-size:14px;font-weight:700;color:#0f172a;line-height:1.25;letter-spacing:-0.005em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;}.map-v2-card--airbnb .card-address{ font-size:12px;font-weight:500;color:#64748b;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.map-v2-card--airbnb .card-meta{ font-size:11.5px;font-weight:500;color:#475569;margin-top:2px;line-height:1.3;display:flex;align-items:center;flex-wrap:wrap;gap:6px;}.map-v2-card--airbnb .card-source-chip{ display:inline-flex;align-items:center;padding:2px 6px;font-size:9px;font-weight:800;letter-spacing:0.06em;text-transform:uppercase;border-radius:4px;line-height:1;}.map-v2-card--airbnb .card-meta-text{ white-space:nowrap;}.map-v2-card--airbnb .card-meta-sep{ color:#cbd5e1;font-weight:500;user-select:none;}.map-v2-card--airbnb .card-price-row{ display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:6px;}.map-v2-card--airbnb .card-price-block{ display:flex;flex-direction:column;min-width:0;}.map-v2-card--airbnb .card-price-value{ font-size:20px;font-weight:800;color:#0f172a;letter-spacing:-0.02em;line-height:1.1;}.map-v2-card--airbnb .card-price-label{ font-size:10px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:0.06em;margin-top:2px;}.map-v2-card--airbnb .card-discount-tag{ flex-shrink:0;display:inline-flex;align-items:center;padding:3px 9px;font-size:11px;font-weight:800;color:#047857;background:rgba(16,185,129,0.10);border-radius:9999px;letter-spacing:0.01em;}.map-v2-card--airbnb .card-subline{ font-size:11px;font-weight:500;color:#64748b;margin-top:2px;}.map-v2-card--airbnb .card-aval-line{ font-size:10px;font-weight:500;color:#94a3b8;margin-top:1px;}.map-v2-card--airbnb .card-aval-line strong{ font-weight:700;color:#475569;}/* Card-photo decorations need to sit above the stretched link */ .map-v2-card--airbnb .card-fav-btn{ z-index:3;}.map-v2-card--airbnb .card-photo-arrow{ z-index:3;}.map-v2-card--airbnb .card-photo-dots{ z-index:3;}.map-v2-card--airbnb .card-status-ribbon,.map-v2-card--airbnb .card-bottomright-stack,.map-v2-card--airbnb .card-bottomleft-flag{ z-index:2;}/* ===== Fase 2 redesign — discount pill (signal heroi) ===== */ .ll-discount-pill{ display:inline-flex;align-items:baseline;gap:4px;padding:6px 10px;background:var(--ll-ink,#0f172a);color:#ffffff;border-radius:8px;font-family:var(--ll-font-mono,ui-monospace,monospace);font-size:14px;font-weight:600;letter-spacing:-0.02em;line-height:1;box-shadow:0 2px 8px rgba(15,23,42,0.25);white-space:nowrap;font-variant-numeric:tabular-nums;}.ll-discount-pill__label{ font-family:var(--ll-font-sans,sans-serif);font-size:9.5px;text-transform:uppercase;letter-spacing:0.08em;opacity:0.65;font-weight:700;}/* horizontal mobile card has a smaller photo,scale down the pill */ .map-v2-card--horiz .ll-discount-pill{ padding:4px 7px;font-size:11px;border-radius:6px;box-shadow:0 1px 4px rgba(15,23,42,0.25);}.map-v2-card--horiz .ll-discount-pill__label{ font-size:8px;}/* ===== Bottom-left flag (countdown/urgency) ===== */ .card-bottomleft-flag{ position:absolute;left:6px;bottom:6px;z-index:2;}/* ===== Fase 2.2 — meta-row schedule item (Pregão DD/MM) ===== */ .map-v2-card--airbnb .card-meta{ justify-content:space-between;gap:8px;border-top:1px solid var(--ll-line,#eae9e2);padding-top:9px;margin-top:8px;}.card-meta-left{ display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0;}.card-meta-schedule{ display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--ll-ink-2,#3a4150);white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums;}.card-meta-schedule .material-symbols-outlined{ font-size:13px !important;line-height:1;color:var(--ll-muted,#6b7280);}.card-meta-schedule--live{ color:var(--ll-red,#c2261c);font-weight:700;}.card-meta-schedule--live .material-symbols-outlined{ color:var(--ll-red,#c2261c);}/* ===== Fase 2.2 — map legend ===== */ .ll-map-legend{ position:absolute;bottom:16px;left:16px;z-index:400;flex-direction:column;gap:6px;padding:10px 12px;background:rgba(255,255,255,0.96);backdrop-filter:blur(8px);border:1px solid var(--ll-line,#eae9e2);border-radius:10px;font-size:11.5px;font-weight:500;color:var(--ll-ink-2,#3a4150);box-shadow:var(--ll-shadow-sm,0 1px 2px rgba(10,10,10,0.04));pointer-events:none;}.ll-map-legend__row{ display:inline-flex;align-items:center;gap:8px;white-space:nowrap;}.ll-map-legend__sw{ width:12px;height:12px;border-radius:4px;flex-shrink:0;}.ll-map-legend__sw--hot   { background:var(--ll-green,#0F7A4D);}.ll-map-legend__sw--default{ background:#ffffff;border:1px solid var(--ll-line-2,#e0ded5);}.ll-map-legend__sw--viewed{ background:var(--ll-muted-2,#9aa0ab);}/* ===== Fase 4 — pin selection stepper ===== */ .ll-pin-stepper{ display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px 12px;border-top:1px solid var(--ll-line,#eae9e2);background:var(--ll-surface-2,#f4f4f0);position:relative;z-index:4;}.ll-pin-stepper__pos{ font-size:12px;color:var(--ll-muted,#6b7280);font-variant-numeric:tabular-nums;}.ll-pin-stepper__pos strong{ color:var(--ll-ink,#0f172a);font-weight:700;}.ll-pin-stepper__nav{ display:inline-flex;gap:6px;}.ll-pin-stepper__btn{ width:32px;height:32px;border-radius:9999px;border:1px solid var(--ll-line-2,#e0ded5);background:var(--ll-surface,#fff);color:var(--ll-ink,#0f172a);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.15s ease;}.ll-pin-stepper__btn:hover{ background:var(--ll-surface-2,#f4f4f0);}/* Heart fav button — Airbnb style:white stroke heart on photo,no white bg pill */ .map-v2-card--airbnb .card-fav-btn{ background:transparent !important;box-shadow:none !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;}.map-v2-card--airbnb .card-fav-btn .card-fav-icon{ color:rgba(255,255,255,0.95) !important;font-size:22px !important;filter:drop-shadow(0 1px 2px rgba(15,23,42,0.45));transition:transform 120ms ease,color 120ms ease;}.map-v2-card--airbnb .card-fav-btn:hover .card-fav-icon{ transform:scale(1.08);}.map-v2-card--airbnb .card-fav-btn .card-fav-icon.text-rose-500,.map-v2-card--airbnb .card-fav-btn[aria-label*="Remover"] .card-fav-icon{ color:#f43f5e !important;}/* Widescreen 4-column grid */ @media (min-width:1600px){ #resultsList{ grid-template-columns:repeat(4,minmax(0,1fr)) !important;}#mapShellGrid{ grid-template-columns:minmax(0,1fr) 500px !important;}}/* Empty-state overlay on the map when list returns 0 results */ #mapPanel[data-list-empty="true"]::before{ content:'Nenhum imóvel nesta busca';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:200;padding:12px 20px;background:rgba(15,23,42,0.94);color:#ffffff;border-radius:9999px;font-size:13px;font-weight:700;box-shadow:0 12px 28px rgba(15,23,42,0.25);pointer-events:none;white-space:nowrap;}/* "Why this property" badges on top 3 cards */ .card-why-row{ display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px;}.card-why-badge{ display:inline-flex;align-items:center;padding:2px 7px;font-size:9px;font-weight:800;letter-spacing:0.03em;color:#0f766e;background:rgba(20,184,166,0.12);border-radius:9999px;white-space:nowrap;}/* Cluster pin polish — more "data" feel */ .price-pin--cluster{ background:#0f172a;color:#ffffff;border-color:rgba(255,255,255,0.12);font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1;padding:5px 12px 5px 10px;box-shadow:0 8px 22px rgba(15,23,42,0.32);}.price-pin--cluster::after{ border-top-color:#0f172a;}
