:root{
    --brand:#11325C;--brand-light:#1a4a87;
    --accent:#e8a020;--text:#1a1a2e;--muted:#6b7280;
    --border:#e2e8f0;--card-bg:#fff;--radius:12px;
    --shadow:0 1px 6px rgba(0,0,0,.12);--ff:'Figtree',sans-serif;
    --top-h:56px; /* top bar height */
}

/* ── OUTER WRAP ── */
#crm-map-wrap{
    display:flex;flex-direction:column;
    height:100vh;min-height:600px;max-height:1200px;
    font-family:var(--ff);
    background:#f8f9fa;
    overflow:hidden;
}

/* ══════════════════════════════
   TOP BAR — search + pill filters
   ══════════════════════════════ */
#crm-top-bar{
    height:var(--top-h);
    background:#fff;
    border-bottom:1px solid var(--border);
    display:flex;align-items:center;
    gap:8px;padding:0 16px;
    flex-shrink:0;
    z-index:100;
    box-shadow:0 1px 4px rgba(0,0,0,.06);
}

/* Search input */
.crm-search-wrap{
    display:flex;align-items:center;
    border:1px solid var(--border);
    border-radius:24px;
    padding:0 14px;
    height:36px;
    min-width:220px;max-width:320px;flex:1;
    background:#fff;
    transition:border-color .2s,box-shadow .2s;
    gap:8px;
}
.crm-search-wrap:focus-within{
    border-color:var(--brand);
    box-shadow:0 0 0 2px rgba(17,50,92,.08);
}
.crm-search-wrap svg{opacity:.4;flex-shrink:0;}
#crm-search-input{
    border:none;outline:none;font-family:var(--ff);
    font-size:13px;color:var(--text);background:transparent;
    width:100%;
}
#crm-search-input::placeholder{color:var(--muted);}
/* AI filter pills strip — shown when [listing_map] receives URL params from [listing_ai_search] */
#crm-ai-pills{
    display:none;
    position:absolute;left:0;width:62%;
    top:calc(var(--top-h) + 4px);z-index:99;
    padding:6px 16px;
    gap:6px;flex-wrap:wrap;align-items:center;
    background:#fff;border-bottom:0.5px solid var(--border);
}
#crm-ai-pills.visible{display:flex;}
.crm-ai-pill{
    display:inline-flex;align-items:center;gap:5px;
    background:#e8eef6;color:#11325C;
    font-size:11px;font-weight:600;
    padding:4px 10px;border-radius:20px;
    border:0.5px solid #b5cce0;
    font-family:var(--ff);
}
.crm-ai-pill-key{opacity:.55;font-weight:400;}
#crm-ai-clear{
    font-size:11px;color:var(--muted);cursor:pointer;
    background:none;border:none;font-family:var(--ff);
    padding:4px 8px;margin-left:4px;
    transition:color .15s;
}
#crm-ai-clear:hover{color:#d63638;}

/* Pill filters */
.crm-pill{
    display:inline-flex;align-items:center;gap:5px;
    border:1px solid var(--border);
    border-radius:20px;
    padding:0 14px;height:36px;
    font-size:13px;font-weight:500;font-family:var(--ff);
    color:var(--text);background:#fff;
    cursor:pointer;white-space:nowrap;
    transition:all .15s;
    position:relative;
}
.crm-pill:hover{border-color:#aaa;}
.crm-pill.active{
    background:var(--brand);color:#fff;border-color:var(--brand);
}
.crm-pill svg{opacity:.6;}
.crm-pill.active svg{opacity:1;filter:brightness(10);}

/* Clear Filters button */
#crm-btn-clear{
    display:inline-flex;align-items:center;gap:5px;
    border:1px solid var(--border);border-radius:20px;
    padding:0 14px;height:36px;
    font-size:13px;font-weight:500;font-family:var(--ff);
    color:var(--muted);background:#fff;cursor:pointer;
    white-space:nowrap;transition:all .15s;
}
#crm-btn-clear:hover{border-color:#d63638;color:#d63638;}

/* Pill dropdown */
.crm-pill-dropdown{
    position:absolute;top:calc(100% + 6px);left:0;
    background:#fff;border:1px solid var(--border);
    border-radius:12px;padding:8px;
    box-shadow:0 4px 24px rgba(0,0,0,.12);
    z-index:1000;min-width:180px;
    display:none;
}
.crm-pill-dropdown.open{display:block;}
.crm-pill-dropdown label{
    display:flex;align-items:center;gap:10px;
    padding:8px 10px;border-radius:8px;cursor:pointer;
    font-size:13px;color:var(--text);
    transition:background .15s;
}
.crm-pill-dropdown label:hover{background:#f4f6f9;}
.crm-pill-dropdown input[type=number],
.crm-pill-dropdown input[type=text]{
    width:100%;border:1px solid var(--border);border-radius:8px;
    padding:7px 10px;font-size:13px;font-family:var(--ff);
    outline:none;color:var(--text);
    transition:border-color .2s;
}
.crm-pill-dropdown input:focus{border-color:var(--brand);}
.crm-pill-dropdown .crm-dd-row{display:flex;gap:8px;padding:8px 10px;}
.crm-pill-dropdown .crm-dd-row input{flex:1;}
.crm-pill-dropdown .crm-dd-apply{
    width:calc(100% - 20px);margin:6px 10px 4px;
    background:var(--brand);color:#fff;border:none;border-radius:8px;
    padding:9px;font-size:13px;font-weight:700;font-family:var(--ff);
    cursor:pointer;transition:background .2s;
}
.crm-pill-dropdown .crm-dd-apply:hover{background:var(--brand-light);}

/* Right side controls */
.crm-top-right{
    margin-left:auto;display:flex;align-items:center;gap:8px;
}
/* View toggle: hidden on desktop, only useful on mobile */
#crm-view-toggle{
    display:none; /* hidden by default */
    border:1px solid var(--border);border-radius:8px;overflow:hidden;
}
.crm-view-btn{
    padding:6px 12px;font-size:12px;font-weight:600;font-family:var(--ff);
    border:none;background:#fff;color:var(--muted);cursor:pointer;
    transition:all .15s;display:flex;align-items:center;gap:5px;
}
.crm-view-btn.active{background:var(--brand);color:#fff;}

/* Draw button */
#btn-draw{
    display:inline-flex;align-items:center;gap:6px;
    border:1px solid var(--border);
    border-radius:20px 0 0 20px; /* left pill shape */
    padding:0 14px;height:36px;
    font-size:13px;font-weight:500;font-family:var(--ff);
    color:var(--text);background:#fff;cursor:pointer;
    white-space:nowrap;transition:all .15s;
    border-right:none; /* merges with clear button */
}
#btn-draw:only-child{ border-radius:20px; border-right:1px solid var(--border); }
#btn-draw:hover,#btn-draw.active{background:var(--brand);color:#fff;border-color:var(--brand);}
#btn-draw-clear{
    display:none; /* shown via JS when drawing exists */
    align-items:center;justify-content:center;
    border:1px solid var(--border);
    border-left:1px solid rgba(255,255,255,.3);
    border-radius:0 20px 20px 0; /* right pill shape */
    padding:0 11px;height:36px;
    font-size:13px;font-weight:600;font-family:var(--ff);
    color:#fff;background:#d63638;
    border-color:#d63638;
    cursor:pointer;transition:all .15s;
    white-space:nowrap;
}
#btn-draw-clear:hover{background:#b91c1c;border-color:#b91c1c;}
/* When draw active, clear button border matches */
#btn-draw.active + #btn-draw-clear{
    border-left-color:rgba(255,255,255,.25);
}

/* ══════════════════════════════
   BODY — listings left + map right
   ══════════════════════════════ */
#crm-body{
    display:flex;flex:1;overflow:hidden;
    position:relative;
}

/* ── LISTINGS PANEL (left, scrollable) ── */
#crm-listings-panel{
    flex:0 0 42%;
    height:100%;overflow-y:auto;
    background:#f8f9fa;
    display:flex;flex-direction:column;
}
#crm-listings-header{
    padding:12px 16px 8px;
    flex-shrink:0;
}
#crm-results-count{
    font-size:13px;font-weight:600;color:var(--text);
    font-family:var(--ff);
}
#crm-results-sub{
    font-size:12px;color:var(--muted);margin-top:1px;
}
#crm-results-grid{
    padding:0 12px 12px;
    display:grid;grid-template-columns:1fr 1fr;gap:12px;
}
#crm-empty{
    grid-column:1/-1;text-align:center;
    padding:48px 20px;color:var(--muted);font-size:15px;
}

/* ── CARD ── */
.crm-card{
    background:#fff;border-radius:var(--radius);
    overflow:hidden;box-shadow:var(--shadow);
    cursor:pointer;transition:box-shadow .2s,transform .15s;
    border:2px solid transparent;
    display:block;color:inherit;text-decoration:none;
}
.crm-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.16);transform:translateY(-2px);}
.crm-card.active{border-color:var(--brand);}
.crm-card-img{
    width:100%;aspect-ratio:4/3;
    background:#dde3ec;position:relative;
    overflow:hidden;
}
.crm-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s;}
.crm-card:hover .crm-card-img img{transform:scale(1.04);}
.crm-card-img .no-photo{
    width:100%;height:100%;display:flex;
    align-items:center;justify-content:center;
    color:#a0aec0;font-size:11px;flex-direction:column;gap:4px;
}
.crm-card-badge{
    position:absolute;top:8px;left:8px;
    background:rgba(0,0,0,.55);backdrop-filter:blur(4px);
    color:#fff;font-size:9px;font-weight:700;
    padding:3px 8px;border-radius:4px;
    text-transform:uppercase;letter-spacing:.5px;
}
.crm-card-badge.rent{background:rgba(232,160,32,.9);}
.crm-card-body{padding:10px 11px 12px;}
.crm-card-price{
    font-size:16px;font-weight:800;color:var(--text);
    font-family:var(--ff);margin-bottom:3px;
}
.crm-card-title{
    font-size:12px;color:var(--muted);
    font-family:var(--ff);margin-bottom:5px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.crm-card-stats{
    font-size:11px;color:var(--muted);
    display:flex;align-items:center;gap:6px;flex-wrap:wrap;
}
.crm-card-stats .sep{opacity:.3;}

/* ── MAP (right, fixed height) ── */
#crm-map{
    flex:1;height:100%;position:relative;z-index:1;
}
.leaflet-interactive:focus{outline:none !important;}
path.leaflet-interactive:focus{outline:none !important;}

/* ── POLYGON STYLES ── */
/* Regions: grey outline, no fill */
/* Hoods: grey outline, no fill */
/* Hover/active: cyan */

/* ── PIN ── */
.crm-pin{
    background:#1a1a2e;color:#fff;
    font-size:11px;font-weight:700;font-family:var(--ff);
    padding:4px 9px;border-radius:20px;white-space:nowrap;
    display:inline-block;width:auto !important;
    box-shadow:0 2px 8px rgba(0,0,0,.3);border:2px solid #fff;
    cursor:pointer;transition:background .15s,transform .15s;line-height:1.2;
}
.crm-pin:hover,.crm-pin.active{background:var(--brand);transform:scale(1.1);}
.leaflet-div-icon{background:transparent !important;border:none !important;width:auto !important;height:auto !important;overflow:visible !important;}

/* ── POPUP ── */
.crm-popup{min-width:200px;font-family:var(--ff);}
.crm-popup-img{width:100%;height:130px;object-fit:cover;display:block;border-radius:6px;margin-bottom:8px;}
.crm-popup-price{font-size:16px;font-weight:800;color:var(--text);margin-bottom:3px;}
.crm-popup-title{font-size:12px;color:var(--muted);margin-bottom:5px;}
.crm-popup-meta{font-size:11px;color:var(--muted);margin-bottom:8px;display:flex;gap:8px;flex-wrap:wrap;}
.crm-popup-link{
    display:block;background:var(--brand);color:#fff;text-align:center;
    padding:8px 12px;border-radius:8px;font-size:12px;font-weight:700;
    text-decoration:none;transition:background .2s;
}
.crm-popup-link:hover{background:var(--brand-light);}

/* ── MAP DRAWING ── */
#crm-map.drawing{cursor:crosshair !important;}

/* ── SCROLLBAR ── */
#crm-listings-panel::-webkit-scrollbar{width:4px;}
#crm-listings-panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}

/* ── RESPONSIVE ── */
@media(max-width:1024px){
    #crm-results-grid{grid-template-columns:1fr 1fr;}
    #crm-listings-panel{flex:0 0 48%;}
}
@media(max-width:768px){
    #crm-body{flex-direction:column-reverse;} /* map on top, listings below on mobile */
    #crm-listings-panel{flex:1;height:50vh;overflow-y:auto;}
    #crm-map{flex:0 0 50vh;}
    #crm-results-grid{grid-template-columns:1fr 1fr;}
    .crm-search-wrap{min-width:140px;}
    .crm-pill span.crm-pill-label{display:none;} /* hide pill labels on mobile */
    #crm-view-toggle{display:flex;} /* show List/Map toggle on mobile only */
}
@media(max-width:480px){
    #crm-results-grid{grid-template-columns:1fr;}
    #crm-top-bar{gap:6px;padding:0 10px;}
    .crm-pill{padding:0 10px;}
}
/* ── Region property count circles ── */
.crm-region-count {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #00459B;
    color: #fff;
    font-family: 'Figtree', sans-serif;
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0,69,155,0.35);
    border: 2px solid #fff;
    pointer-events: none;
    transition: transform 0.2s;
}
