/* Modo Jardim Acapulco: planta SVG local, independente do Google Maps. */
.map-view-selector {
    position: absolute;
    z-index: 7600;
    top: 126px;
    left: 12px;
    display: inline-flex;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, .7);
    border-radius: 12px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .18);
    backdrop-filter: blur(12px);
}

/* No mapa da cidade o seletor fica logo abaixo do cabeçalho. A planta do
   Acapulco mantém o espaço próprio da sua barra de ferramentas. */
#map:not(.acapulco-mode) .map-view-selector { top: 18px; }
#map.acapulco-mode .map-view-selector { top: 126px; }

.map-view-selector button {
    border: 0;
    border-right: 1px solid #e2e8f0;
    padding: 10px 13px;
    background: transparent;
    color: #334155;
    font: 800 12px/1 Outfit, system-ui, sans-serif;
    cursor: pointer;
}

.map-view-selector button:last-child { border-right: 0; }
.map-view-selector button:hover { background: #f1f5f9; }
.map-view-selector button.is-active { color: #fff; background: linear-gradient(135deg, #0f766e, #0369a1); }
.map-view-selector i { margin-right: 5px; }

#map.acapulco-mode > .acapulco-underlay-hidden {
    visibility: hidden !important;
    pointer-events: none !important;
}

/* O contexto municipal não consulta os lotes de Acapulco. Ele some somente
   enquanto o modo Acapulco está ativo e volta intacto ao modo Cidade. */
body.acapulco-mode-active #sidebar,
body.acapulco-mode-active #sidebarToggle,
body.acapulco-mode-active #sidebarBackdrop,
body.acapulco-mode-active #statsPanel,
body.acapulco-mode-active #weather-widget,
body.acapulco-mode-active #history-panel,
body.acapulco-mode-active .map-compliance-footer,
body.acapulco-mode-active .map-toolbox,
body.acapulco-mode-active .landscape-control,
body.acapulco-mode-active .gm-style-cc { display: none !important; }

body.acapulco-mode-active #map { width: 100vw !important; flex: 1 1 100% !important; }

.acapulco-map-workspace {
    position: absolute;
    z-index: 7500;
    inset: 0;
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    background: #e8edf3;
    color: #172033;
}
.acapulco-map-workspace.hidden { display: none; }

.acapulco-toolbar {
    z-index: 3;
    display: flex;
    min-height: 96px;
    align-items: center;
    gap: 12px;
    padding: 10px 18px 10px 18px;
    border-bottom: 1px solid #cbd5e1;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 3px 14px rgba(15, 23, 42, .08);
}

.acapulco-title { display: flex; min-width: 210px; flex-direction: column; gap: 2px; color: #0f172a; font: 800 15px/1.1 Outfit, system-ui, sans-serif; }
.acapulco-title i { color: #0f766e; }
.acapulco-title small { color: #64748b; font: 700 10px/1.1 Outfit, system-ui, sans-serif; }
.acapulco-search-wrap { position: relative; min-width: 190px; max-width: 440px; flex: 1; }
.acapulco-search { display: flex; width: 100%; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; color: #64748b; }
.acapulco-search:focus-within { border-color: #0f766e; box-shadow: 0 0 0 3px rgba(13, 148, 136, .12); }
.acapulco-search input { width: 100%; min-width: 0; height: 36px; border: 0; outline: 0; background: transparent; color: #0f172a; font: 700 12px Outfit, system-ui, sans-serif; }
.acapulco-search-results { position: absolute; z-index: 9; top: calc(100% + 7px); left: 0; width: 100%; max-height: min(480px, calc(100vh - 160px)); overflow: auto; border: 1px solid #bfdbfe; border-radius: 12px; background: rgba(255,255,255,.98); box-shadow: 0 18px 42px rgba(15,23,42,.24); }
.acapulco-search-results.hidden { display: none; }
.acapulco-search-results header, .acapulco-search-results footer { display: flex; justify-content: space-between; gap: 8px; padding: 9px 11px; background: #f8fafc; color: #64748b; font: 700 10px/1.25 Outfit,system-ui,sans-serif; }
.acapulco-search-results header { border-bottom: 1px solid #e2e8f0; }
.acapulco-search-results header strong { color: #0f172a; font-size: 11px; }
.acapulco-search-results footer { border-top: 1px solid #e2e8f0; }
.acapulco-search-results > button { display: grid; width: 100%; gap: 2px; border: 0; border-bottom: 1px solid #eef2f7; padding: 9px 11px; background: #fff; color: #334155; text-align: left; cursor: pointer; }
.acapulco-search-results > button:hover { background: #eff6ff; }
.acapulco-search-results > button strong { color: #0f172a; font: 850 12px Outfit,system-ui,sans-serif; }
.acapulco-search-results > button span, .acapulco-search-results > button small, .acapulco-search-results > p { color: #64748b; font: 700 10px/1.25 Outfit,system-ui,sans-serif; }
.acapulco-search-results > p { margin: 0; padding: 14px 11px; }
.acapulco-filter { display: flex; align-items: center; gap: 6px; color: #475569; font: 800 11px Outfit, system-ui, sans-serif; }
.acapulco-filter select { height: 34px; border: 1px solid #cbd5e1; border-radius: 8px; padding: 0 6px; background: #fff; color: #334155; font: 700 11px Outfit, system-ui, sans-serif; }
.acapulco-toolbar-actions { display: flex; gap: 6px; }
.acapulco-toolbar button, .acapulco-empty-state button { border: 1px solid #cbd5e1; border-radius: 8px; padding: 9px 10px; background: #fff; color: #334155; font: 800 11px Outfit, system-ui, sans-serif; cursor: pointer; }
.acapulco-toolbar button:hover, .acapulco-empty-state button:hover { background: #f1f5f9; }
.acapulco-toolbar button.primary, .acapulco-empty-state button.primary { border-color: #0f766e; background: linear-gradient(135deg, #0f766e, #0369a1); color: #fff; }
.acapulco-toolbar button.acapulco-hd { border-color: #99f6e4; background: #f0fdfa; color: #0f766e; }
.acapulco-toolbar button.acapulco-hd:hover, .acapulco-toolbar button.acapulco-hd.is-active { border-color: #0f766e; background: linear-gradient(135deg, #0f766e, #0369a1); color: #fff; }
.acapulco-map-workspace.is-importing [data-acapulco-import] { cursor: progress; opacity: .64; }

.acapulco-canvas { position: relative; flex: 1; overflow: hidden; touch-action: none; background: radial-gradient(circle at 50% 40%, #f8fafc, #cbd5e1); cursor: grab; }
.acapulco-canvas:active { cursor: grabbing; }
.acapulco-leaflet { position: absolute; inset: 0; z-index: 0; background: #dbe4ef; }
.acapulco-leaflet.leaflet-container { font: 700 12px Outfit, system-ui, sans-serif; }
.acapulco-leaflet .leaflet-control-attribution { font: 600 9px/1.2 system-ui, sans-serif; }
.acapulco-world { position: absolute; inset: 0; transform-origin: center center; will-change: transform; }
.acapulco-world > img, .acapulco-world > svg { position: absolute; inset: 0; width: 100%; height: 100%; user-select: none; }
.acapulco-world > img { object-fit: contain; pointer-events: none; }
.acapulco-world > svg { overflow: visible; }
.acapulco-world polygon { fill: rgba(37, 99, 235, .12); stroke: rgba(30, 64, 175, .86); stroke-width: 1.25; vector-effect: non-scaling-stroke; cursor: pointer; transition: fill .12s ease, stroke .12s ease, stroke-width .12s ease; outline: none; }
.acapulco-world polygon:hover, .acapulco-world polygon:focus { fill: rgba(14, 165, 233, .38); stroke: #075985; stroke-width: 2.6; }
.acapulco-world polygon.is-available { fill: rgba(22, 163, 74, .22); stroke: #15803d; }
.acapulco-world polygon.is-selected { fill: rgba(245, 158, 11, .48); stroke: #b45309; stroke-width: 3.2; }

.acapulco-canvas-controls { position: absolute; z-index: 2; right: 18px; bottom: 18px; display: grid; overflow: hidden; border: 1px solid #cbd5e1; border-radius: 10px; background: rgba(255,255,255,.96); box-shadow: 0 10px 24px rgba(15,23,42,.17); }
.acapulco-canvas-controls button { width: 38px; height: 36px; border: 0; border-bottom: 1px solid #e2e8f0; background: #fff; color: #334155; cursor: pointer; }
.acapulco-canvas-controls button:last-child { border-bottom: 0; }
.acapulco-canvas-controls button:hover { background: #f1f5f9; color: #0f766e; }

.acapulco-tools-panel { position: absolute; z-index: 5; top: 18px; left: 18px; width: 234px; overflow: hidden; border: 1px solid #cbd5e1; border-radius: 13px; background: rgba(255,255,255,.98); box-shadow: 0 16px 38px rgba(15,23,42,.2); }
.acapulco-tools-panel header { display: flex; align-items: center; justify-content: space-between; padding: 11px 12px; border-bottom: 1px solid #e2e8f0; color: #0f172a; font: 850 12px Outfit, system-ui, sans-serif; }
.acapulco-tools-panel header button { width: 24px; height: 24px; border: 0; border-radius: 50%; background: #f1f5f9; color: #475569; font-size: 18px; cursor: pointer; }
.acapulco-tools-panel > button { display: flex; width: calc(100% - 20px); align-items: center; gap: 8px; margin: 8px 10px 0; border: 1px solid #dbe3ed; border-radius: 8px; padding: 9px; background: #fff; color: #334155; font: 800 11px Outfit, system-ui, sans-serif; text-align: left; cursor: pointer; }
.acapulco-tools-panel > button:hover, .acapulco-tools-panel > button.is-active { border-color: #0f766e; background: #f0fdfa; color: #0f766e; }
.acapulco-tools-panel p { margin: 10px 12px 13px; color: #64748b; font: 700 10px/1.35 Outfit, system-ui, sans-serif; }
.acapulco-advanced-panel { position: absolute; z-index: 6; top: 18px; left: 18px; width: min(430px, calc(100% - 36px)); border: 1px solid #cbd5e1; border-radius: 14px; background: rgba(255,255,255,.98); box-shadow: 0 18px 44px rgba(15,23,42,.24); overflow: hidden; }
.acapulco-advanced-panel header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid #e2e8f0; }
.acapulco-advanced-panel header span, .acapulco-editor-modal header span { display: block; color: #0f766e; font: 800 9px Outfit,system-ui,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.acapulco-advanced-panel header strong, .acapulco-editor-modal header strong { color: #0f172a; font: 850 15px Outfit,system-ui,sans-serif; }
.acapulco-advanced-panel header button, .acapulco-editor-modal header button { width: 27px; height: 27px; border: 0; border-radius: 50%; background: #f1f5f9; color: #475569; font-size: 20px; cursor: pointer; }
.acapulco-advanced-grid, .acapulco-editor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 15px 16px; }
.acapulco-advanced-grid label, .acapulco-editor-grid label { display: grid; gap: 4px; color: #64748b; font: 800 9px Outfit,system-ui,sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.acapulco-advanced-grid input, .acapulco-editor-grid input, .acapulco-editor-grid textarea { width: 100%; border: 1px solid #cbd5e1; border-radius: 8px; padding: 8px; outline: none; background: #fff; color: #1e293b; font: 700 12px Outfit,system-ui,sans-serif; text-transform: none; }
.acapulco-advanced-grid input:focus, .acapulco-editor-grid input:focus, .acapulco-editor-grid textarea:focus { border-color: #0f766e; box-shadow: 0 0 0 3px rgba(13,148,136,.12); }
.acapulco-advanced-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 0 16px 16px; }
.acapulco-advanced-actions button, .acapulco-editor-modal footer button { border: 1px solid #cbd5e1; border-radius: 8px; padding: 9px 11px; background: #fff; color: #334155; font: 800 11px Outfit,system-ui,sans-serif; cursor: pointer; }
.acapulco-advanced-actions .primary, .acapulco-editor-modal footer .primary { border-color: #0f766e; background: linear-gradient(135deg,#0f766e,#0369a1); color: #fff; }
.acapulco-editor-modal { position: absolute; z-index: 10; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(15,23,42,.38); backdrop-filter: blur(3px); }
.acapulco-editor-modal form { width: min(610px,100%); max-height: min(720px, calc(100vh - 64px)); overflow: auto; border: 1px solid #cbd5e1; border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(15,23,42,.36); }
.acapulco-editor-modal header { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid #e2e8f0; }
.acapulco-editor-grid .wide { grid-column: 1 / -1; }
.acapulco-editor-grid label.checkbox { display: flex; align-items: center; gap: 8px; color: #334155; font-size: 11px; text-transform: none; }
.acapulco-editor-grid label.checkbox input { width: 16px; height: 16px; }
.acapulco-editor-modal footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 18px; border-top: 1px solid #e2e8f0; background: #f8fafc; }
.acapulco-editor-modal footer small { color: #64748b; font: 700 10px/1.35 Outfit,system-ui,sans-serif; }
.acapulco-quadra-label, .acapulco-lot-label { display: grid; place-items: center; pointer-events: none !important; white-space: nowrap; }
.acapulco-quadra-label { min-width: 34px; transform: translate(-50%,-50%); border: 1px solid rgba(15,23,42,.22) !important; border-radius: 999px !important; padding: 4px 7px; background: rgba(15,23,42,.86) !important; box-shadow: 0 5px 12px rgba(15,23,42,.22); color: #fff; font: 850 10px Outfit,system-ui,sans-serif; letter-spacing: .03em; }
.acapulco-lot-label { min-width: 18px; transform: translate(-50%,-50%); border: 1px solid rgba(37,99,235,.34) !important; border-radius: 5px !important; padding: 2px 4px; background: rgba(255,255,255,.9) !important; box-shadow: 0 2px 7px rgba(15,23,42,.18); color: #1e3a8a; font: 850 9px/1 Outfit,system-ui,sans-serif; }

.acapulco-lot-card { position: absolute; z-index: 2; top: 18px; right: 18px; width: min(470px, calc(100% - 36px)); max-height: calc(100% - 100px); overflow: auto; border: 1px solid rgba(203,213,225,.95); border-radius: 14px; background: rgba(255,255,255,.97); box-shadow: 0 17px 42px rgba(15,23,42,.2); backdrop-filter: blur(12px); }
.acapulco-empty-card { display: grid; min-height: 126px; place-content: center; gap: 7px; padding: 20px; color: #64748b; text-align: center; font: 700 12px/1.3 Outfit, system-ui, sans-serif; }
.acapulco-empty-card i { color: #0f766e; font-size: 23px; }
.acapulco-empty-card strong { color: #334155; font-size: 14px; }
.acapulco-lot-card > header { display: flex; justify-content: space-between; gap: 10px; padding: 16px 16px 10px; border-bottom: 1px solid #e2e8f0; }
.acapulco-lot-card header span { color: #0f766e; font: 800 10px Outfit, system-ui, sans-serif; text-transform: uppercase; letter-spacing: .08em; }
.acapulco-lot-card h2 { margin: 3px 0 0; color: #0f172a; font: 850 18px/1.12 Outfit, system-ui, sans-serif; }
.acapulco-lot-card header button { width: 28px; height: 28px; border: 0; border-radius: 50%; background: #f1f5f9; color: #475569; font: 800 23px/1 Arial, sans-serif; cursor: pointer; }
.acapulco-card-id { margin: 12px 16px; color: #475569; font: 800 11px Outfit, system-ui, sans-serif; }
.acapulco-lot-card dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0 16px; border-top: 1px solid #e2e8f0; }
.acapulco-lot-card dl div { min-height: 54px; padding: 9px 7px 8px 0; border-bottom: 1px solid #e2e8f0; }
.acapulco-lot-card dt { color: #64748b; font: 800 9px Outfit, system-ui, sans-serif; text-transform: uppercase; letter-spacing: .06em; }
.acapulco-lot-card dd { margin: 4px 0 0; color: #1e293b; font: 800 12px/1.25 Outfit, system-ui, sans-serif; overflow-wrap: anywhere; }
.acapulco-lot-card section { margin: 0 16px; padding: 11px 0; border-bottom: 1px solid #e2e8f0; }
.acapulco-lot-card section h3 { margin: 0 0 5px; color: #64748b; font: 800 9px Outfit, system-ui, sans-serif; text-transform: uppercase; letter-spacing: .06em; }
.acapulco-lot-card section strong, .acapulco-lot-card section p { margin: 0; color: #334155; font: 700 12px/1.4 Outfit, system-ui, sans-serif; overflow-wrap: anywhere; }
.acapulco-lot-card a { color: #0369a1; font-weight: 800; }
.acapulco-card-meta { display: flex; flex-wrap: wrap; gap: 5px; }
.acapulco-card-meta span { border-radius: 999px; padding: 4px 6px; background: #f1f5f9; color: #475569; font: 800 10px Outfit, system-ui, sans-serif; }
.acapulco-lot-card footer { padding: 12px 16px 15px; color: #94a3b8; font: 700 10px/1.35 Outfit, system-ui, sans-serif; }
.acapulco-edit-lot { width: calc(100% - 32px); margin: 12px 16px 0; border: 1px solid #bfdbfe; border-radius: 9px; padding: 9px; background: #eff6ff; color: #1d4ed8; font: 800 11px Outfit,system-ui,sans-serif; cursor: pointer; }
.acapulco-edit-lot:hover { background: #dbeafe; }
.acapulco-report-lot { width: calc(100% - 32px); margin: 8px 16px 0; border: 1px solid #fecaca; border-radius: 9px; padding: 9px; background: #fff7f7; color: #b91c1c; font: 800 11px Outfit,system-ui,sans-serif; cursor: pointer; }
.acapulco-report-lot:hover { border-color: #f87171; background: #fef2f2; box-shadow: 0 5px 14px rgba(185,28,28,.08); }
.acapulco-crm-lot { width: calc(100% - 32px); margin: 8px 16px 0; border: 1px solid #99f6e4; border-radius: 9px; padding: 9px; background: #f0fdfa; color: #0f766e; font: 800 11px Outfit,system-ui,sans-serif; cursor: pointer; }
.acapulco-crm-lot:hover { background: #ccfbf1; }
.acapulco-owner-query > p { color:#64748b !important; font-size:11px !important; }
.acapulco-query-actions { display:grid; grid-template-columns:1fr; gap:7px; margin-top:10px; }
.acapulco-query-actions button { border:1px solid #bae6fd; border-radius:9px; padding:9px 10px; background:#f0f9ff; color:#0369a1; font:800 11px Outfit,system-ui,sans-serif; cursor:pointer; text-align:left; }
.acapulco-query-actions button[data-acapulco-enrich-owner] { border-color:#99f6e4; background:#f0fdfa; color:#0f766e; }
.acapulco-query-actions button:hover:not(:disabled) { filter:brightness(.97); box-shadow:0 4px 12px rgba(15,23,42,.08); }
.acapulco-query-actions button:disabled { cursor:not-allowed; opacity:.52; }
.acapulco-owner-query-result { display:grid; gap:8px; margin-top:11px; }
.acapulco-owner-query-result.hidden { display:none; }
.acapulco-owner-query-result > p { margin:0; padding:9px; border:1px dashed #cbd5e1; border-radius:8px; background:#f8fafc; font-size:10px !important; }
.acapulco-owner-query-result .acapulco-query-error { border-color:#fecaca; background:#fef2f2; color:#b91c1c !important; }
.acapulco-owner-query-result .acapulco-query-empty { border-color:#bfdbfe; background:#eff6ff; color:#1d4ed8 !important; }
.acapulco-query-summary { padding:9px; border:1px solid #99f6e4; border-radius:8px; background:#f0fdfa; color:#115e59; font:800 10px/1.4 Outfit,system-ui,sans-serif; }
.acapulco-owner-query-result details { overflow:hidden; border:1px solid #dbe3ed; border-radius:9px; background:#fff; }
.acapulco-owner-query-result summary { padding:9px 10px; background:#f8fafc; color:#334155; font:800 10px/1.3 Outfit,system-ui,sans-serif; cursor:pointer; }
.acapulco-owner-query-result details[open] summary { border-bottom:1px solid #e2e8f0; color:#0f766e; }
.acapulco-lot-card dl.acapulco-complete-record { grid-template-columns:1fr; margin:0 10px 10px; border-top:0; }
.acapulco-lot-card dl.acapulco-complete-record div { display:grid; grid-template-columns:118px minmax(0,1fr); gap:8px; min-height:0; padding:7px 0; }
.acapulco-lot-card dl.acapulco-complete-record dd { margin:0; white-space:pre-wrap; font-size:10px; font-weight:700; }
.acapulco-nested-list { display:grid; gap:5px; }
.acapulco-nested-list > div { padding:6px; border:1px solid #e2e8f0; border-radius:6px; background:#f8fafc; }
.acapulco-lot-card dl.acapulco-nested-record { grid-template-columns:1fr; margin:0; border-top:0; }
.acapulco-lot-card dl.acapulco-nested-record div { display:grid; grid-template-columns:100px minmax(0,1fr); gap:7px; min-height:0; padding:4px 0; }
.acapulco-lot-card dl.acapulco-nested-record dd { margin:0; overflow-wrap:anywhere; font-size:10px; font-weight:700; }
.acapulco-enrichment-card { display:grid; gap:10px; margin:10px 0; border:1px solid #bae6fd; border-radius:10px; padding:10px; background:linear-gradient(145deg,#f8fdff,#effcff); }
.acapulco-enrichment-title { display:flex; align-items:flex-start; gap:9px; }
.acapulco-enrichment-title > i { margin-top:2px; color:#0284c7; font-size:16px; }
.acapulco-enrichment-title > div { display:grid; gap:2px; min-width:0; }
.acapulco-enrichment-title small, .acapulco-enrichment-grid small { color:#64748b; font:800 8px Outfit,system-ui,sans-serif; letter-spacing:.05em; text-transform:uppercase; }
.acapulco-enrichment-title strong { color:#0f172a; font:850 13px/1.25 Outfit,system-ui,sans-serif; overflow-wrap:anywhere; }
.acapulco-enrichment-title span { color:#475569; font:800 10px Outfit,system-ui,sans-serif; }
.acapulco-enrichment-grid { display:grid; grid-template-columns:1fr 1fr; border:1px solid #dbeafe; border-radius:8px; overflow:hidden; background:#fff; }
.acapulco-enrichment-grid > div { display:grid; gap:3px; min-height:51px; padding:8px; border-bottom:1px solid #e2e8f0; }
.acapulco-enrichment-grid > div:nth-child(odd) { border-right:1px solid #e2e8f0; }
.acapulco-enrichment-grid > div:nth-last-child(-n+2) { border-bottom:0; }
.acapulco-enrichment-grid strong { color:#1e293b; font:800 10px/1.35 Outfit,system-ui,sans-serif; overflow-wrap:anywhere; }
.acapulco-enrichment-flags { display:flex; flex-wrap:wrap; gap:5px; }
.acapulco-enrichment-flags span { border:1px solid #bbf7d0; border-radius:999px; padding:4px 6px; background:#f0fdf4; color:#166534; font:800 9px Outfit,system-ui,sans-serif; }
.acapulco-enrichment-flags span.is-alert { border-color:#fed7aa; background:#fff7ed; color:#c2410c; }
.acapulco-enrichment-block { padding-top:8px; border-top:1px solid #dbeafe; }
.acapulco-enrichment-block h4 { display:flex; align-items:center; gap:5px; margin:0 0 5px; color:#0369a1; font:800 9px Outfit,system-ui,sans-serif; letter-spacing:.05em; text-transform:uppercase; }
.acapulco-enrichment-block p { color:#64748b !important; font-size:10px !important; }
.acapulco-enrichment-block ul, .acapulco-enrichment-block ol { display:grid; gap:5px; margin:0; padding-left:18px; color:#334155; font:700 10px/1.4 Outfit,system-ui,sans-serif; }
.acapulco-enrichment-block li { overflow-wrap:anywhere; }
.acapulco-enrichment-block li small { color:#64748b; font-size:9px; }
.acapulco-enrichment-block li > strong, .acapulco-enrichment-block li > span { display:block; }
.acapulco-enrichment-block li > span { color:#64748b; font-size:9px; }
.acapulco-enrichment-card > details { border:1px solid #dbeafe; border-radius:7px; background:#fff; }
.acapulco-enrichment-card > details > summary { padding:7px 8px; background:#f8fafc; color:#0369a1; font-size:9px; }
.acapulco-enrichment-card > details > .acapulco-complete-record, .acapulco-enrichment-card > details > .acapulco-nested-list { margin:8px; }
.acapulco-iptu { display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid #bfdbfe; border-radius:9px; padding:10px; background:linear-gradient(135deg,#eff6ff,#f8fbff); }
.acapulco-iptu > div { display:grid; gap:3px; min-width:0; }
.acapulco-iptu small { color:#64748b; font:800 8px Outfit,system-ui,sans-serif; letter-spacing:.06em; }
.acapulco-iptu strong { color:#1d4ed8; font:850 13px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.04em; overflow-wrap:anywhere; }
.acapulco-iptu button { flex:0 0 auto; border:1px solid #93c5fd; border-radius:7px; padding:7px 8px; background:#fff; color:#1d4ed8; font:800 10px Outfit,system-ui,sans-serif; cursor:pointer; }
.acapulco-iptu button:hover { background:#dbeafe; }

/* Ficha imobiliária: campos agrupados para leitura rápida, sem reduzir os
   dados disponíveis no cadastro importado. */
.acapulco-lot-card > header { padding: 17px 17px 12px; background: linear-gradient(135deg, #fff, #f8fafc); }
.acapulco-lot-card header span { color: #0f766e; }
.acapulco-card-identity { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin: 12px 16px; }
.acapulco-card-identity > div { display: grid; gap: 3px; min-width: 0; }
.acapulco-card-identity small { color: #64748b; font: 800 9px Outfit,system-ui,sans-serif; letter-spacing: .06em; }
.acapulco-card-identity strong { overflow-wrap: anywhere; color: #334155; font: 800 11px/1.3 Outfit,system-ui,sans-serif; }
.acapulco-status { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; border: 1px solid #dbe3ed; border-radius: 999px; padding: 5px 7px; background: #f8fafc; color: #64748b; font: 800 10px Outfit,system-ui,sans-serif; }
.acapulco-status.available { border-color: #86efac; background: #f0fdf4; color: #15803d; }
.acapulco-card-summary { display: grid; grid-template-columns: 1fr 1fr; margin: 0 16px !important; border: 1px solid #dbe7f3; border-radius: 11px; padding: 0 !important; overflow: hidden; background: #fbfdff; }
.acapulco-card-summary > div { display: grid; grid-template-columns: 17px 1fr; column-gap: 6px; min-height: 61px; padding: 10px; border-bottom: 1px solid #e2e8f0; }
.acapulco-card-summary > div:nth-child(odd) { border-right: 1px solid #e2e8f0; }
.acapulco-card-summary > div:nth-last-child(-n+2) { border-bottom: 0; }
.acapulco-card-summary i { grid-row: span 2; margin-top: 2px; color: #0f766e; font-size: 12px; }
.acapulco-card-summary small { color: #64748b; font: 800 9px Outfit,system-ui,sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.acapulco-card-summary strong { overflow-wrap: anywhere; color: #1e293b; font: 850 12px/1.28 Outfit,system-ui,sans-serif; }
.acapulco-lot-card .acapulco-card-section { margin: 0 16px; padding: 13px 0; border-bottom: 1px solid #e2e8f0; }
.acapulco-lot-card .acapulco-card-section h3 { display: flex; align-items: center; gap: 6px; margin-bottom: 7px; color: #475569; }
.acapulco-lot-card .acapulco-card-section h3 i { color: #0f766e; font-size: 11px; }
.acapulco-card-section > strong { display: block; margin-bottom: 7px !important; color: #0f172a !important; font-size: 13px !important; }
.acapulco-card-section h4 { margin: 12px 0 5px; color:#64748b; font:800 9px Outfit,system-ui,sans-serif; letter-spacing:.05em; text-transform:uppercase; }
.acapulco-lot-card dl.acapulco-card-lines { display: grid; grid-template-columns: 1fr; gap: 5px; margin: 0; border-top: 0; }
.acapulco-card-lines div { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 8px; min-height: 0 !important; padding: 2px 0 !important; border-bottom: 0 !important; }
.acapulco-card-lines dt { color: #64748b; font: 800 9px Outfit,system-ui,sans-serif; text-transform: uppercase; letter-spacing: .05em; }
.acapulco-card-lines dd { margin: 0; overflow-wrap: anywhere; color: #334155; font: 700 11px/1.35 Outfit,system-ui,sans-serif; }
.acapulco-card-lines div:first-child dd { white-space: nowrap; }
.acapulco-record-list { display:grid; gap:5px; margin:0; padding-left:17px; color:#334155; font:700 11px/1.4 Outfit,system-ui,sans-serif; overflow-wrap:anywhere; }
.acapulco-record-list a { color:#0369a1; text-decoration:underline; }
.acapulco-card-meta { margin: 0 16px !important; padding: 12px 0 !important; border-bottom: 1px solid #e2e8f0; }
.acapulco-card-meta span { display: inline-flex; align-items: center; gap: 4px; }
.acapulco-card-meta i { color: #64748b; }
.acapulco-lot-card footer { margin-top: 1px; padding: 12px 16px 15px; }
.acapulco-lot-card footer i { margin-right: 4px; color: #0f766e; }

.acapulco-crm-modal { position: absolute; z-index: 11; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(15,23,42,.42); backdrop-filter: blur(3px); }
.acapulco-crm-modal form { width: min(600px,100%); max-height: min(720px, calc(100vh - 64px)); overflow: auto; border: 1px solid #cbd5e1; border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(15,23,42,.36); }
.acapulco-crm-modal header { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid #e2e8f0; }
.acapulco-crm-modal header span { display:block; color:#0f766e; font:800 9px Outfit,system-ui,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.acapulco-crm-modal header strong { color:#0f172a; font:850 15px Outfit,system-ui,sans-serif; }
.acapulco-crm-modal header button { width:27px; height:27px; border:0; border-radius:50%; background:#f1f5f9; color:#475569; font-size:20px; cursor:pointer; }
.acapulco-crm-body { padding: 15px 16px 0; }
.acapulco-crm-body > p { margin: 0 0 13px; color:#64748b; font:700 11px/1.4 Outfit,system-ui,sans-serif; }
.acapulco-crm-body > label { display:grid; gap:4px; color:#64748b; font:800 9px Outfit,system-ui,sans-serif; letter-spacing:.04em; text-transform:uppercase; }
.acapulco-crm-body select { height:38px; border:1px solid #cbd5e1; border-radius:8px; padding:0 8px; background:#fff; color:#1e293b; font:700 12px Outfit,system-ui,sans-serif; }
.acapulco-crm-divider { display:flex; align-items:center; gap:8px; margin:15px 0 0; color:#94a3b8; font:800 9px Outfit,system-ui,sans-serif; letter-spacing:.06em; text-transform:uppercase; }
.acapulco-crm-divider::before, .acapulco-crm-divider::after { content:''; height:1px; flex:1; background:#e2e8f0; }
.acapulco-crm-modal footer { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:15px; padding:14px 18px; border-top:1px solid #e2e8f0; background:#f8fafc; }
.acapulco-crm-modal footer small { color:#64748b; font:700 10px/1.35 Outfit,system-ui,sans-serif; }
.acapulco-crm-modal footer button { border:1px solid #0f766e; border-radius:8px; padding:9px 11px; background:linear-gradient(135deg,#0f766e,#0369a1); color:#fff; font:800 11px Outfit,system-ui,sans-serif; cursor:pointer; }

.acapulco-empty-state { position: absolute; z-index: 4; top: 50%; left: 50%; width: min(440px, calc(100% - 36px)); transform: translate(-50%, -50%); padding: 28px; border: 1px solid #cbd5e1; border-radius: 16px; background: rgba(255,255,255,.98); box-shadow: 0 22px 55px rgba(15,23,42,.24); text-align: center; }
.acapulco-empty-state i { color: #0f766e; font-size: 32px; }
.acapulco-empty-state h2 { margin: 12px 0 6px; color: #0f172a; font: 850 19px/1.2 Outfit, system-ui, sans-serif; }
.acapulco-empty-state p, .acapulco-empty-state small { display: block; color: #64748b; font: 700 12px/1.45 Outfit, system-ui, sans-serif; }
.acapulco-empty-state button { margin: 13px 0 10px; }

@media (max-width: 900px) {
    .acapulco-toolbar { flex-wrap: wrap; padding-left: 18px; }
    .acapulco-title { min-width: 175px; }
    .acapulco-search-wrap { order: 3; max-width: none; flex-basis: 100%; }
}
@media (max-width: 600px) {
    .map-view-selector { left: 8px; }
    #map:not(.acapulco-mode) .map-view-selector { top: 18px; }
    #map.acapulco-mode .map-view-selector { top: 138px; }
    .map-view-selector button { padding: 9px; font-size: 10px; }
    .acapulco-toolbar { min-height: 128px; padding: 55px 10px 8px; gap: 7px; }
    .acapulco-title { min-width: 150px; font-size: 13px; }
    .acapulco-toolbar-actions button { padding: 8px; font-size: 10px; }
    .acapulco-lot-card { top: auto; right: 8px; bottom: 8px; width: calc(100% - 16px); max-height: min(56%, 390px); }
    .acapulco-canvas-controls { right: 10px; bottom: calc(min(56%, 390px) + 18px); }
    .acapulco-advanced-grid, .acapulco-editor-grid { grid-template-columns: 1fr; }
    .acapulco-editor-modal footer { align-items: flex-end; flex-direction: column; }
}
