/* Quantum Park — Neighborhood Map styles (served via jsDelivr) */
.qp-map-wrapper { width:100%; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:#1a1a2e; }
.qp-map-section { display:flex; position:relative; z-index:2; border-radius:8px; overflow:hidden; box-shadow:0 4px 24px rgba(0,0,0,.12); }

/* Sidebar */
.qp-map-sidebar { width:300px; min-width:300px; height:750px; background:#0c2b3d; color:#fff; display:flex; flex-direction:column; overflow:hidden; }
.qp-sidebar-header { padding:20px 20px 16px; border-bottom:1px solid rgba(255,255,255,.1); flex-shrink:0; }
.qp-sidebar-header h3 { margin:0 0 4px; font-size:18px; font-weight:700; letter-spacing:.5px; }
.qp-sidebar-header p { margin:0; font-size:12px; opacity:.6; }
.qp-sidebar-search { padding:12px 20px; flex-shrink:0; }
.qp-sidebar-search input { width:100%; padding:10px 14px; border:1px solid rgba(255,255,255,.15); border-radius:6px; background:rgba(255,255,255,.08); color:#fff; font-size:13px; outline:none; transition:border-color .2s; box-sizing:border-box; }
.qp-sidebar-search input::placeholder { color:rgba(255,255,255,.4); }
.qp-sidebar-search input:focus { border-color:rgba(255,255,255,.4); }
.qp-sidebar-list { flex:1; overflow-y:auto; overflow-x:hidden; padding:0 12px 20px; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.2) transparent; }
.qp-sidebar-list::-webkit-scrollbar { width:5px; }
.qp-sidebar-list::-webkit-scrollbar-thumb { background:rgba(255,255,255,.2); border-radius:3px; }
.qp-sidebar-group-title { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:rgba(255,255,255,.4); padding:16px 8px 8px; margin:0; }
.qp-sidebar-item { display:flex; align-items:center; gap:10px; padding:8px; border-radius:6px; cursor:pointer; transition:background .15s; text-decoration:none; color:#fff; }
.qp-sidebar-item:hover { background:rgba(255,255,255,.08); }
.qp-sidebar-item.active { background:rgba(255,255,255,.15); }
.qp-sidebar-item.filtered-out { display:none; }
.qp-sidebar-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.qp-sidebar-name { font-size:13px; font-weight:500; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Map */
.qp-map-main { flex:1; min-width:0; position:relative; height:750px; }
#qp-mapbox { width:100%; height:100%; }
#qp-mapbox .mapboxgl-ctrl-attrib { font-size:10px; }

/* Filter bar */
.qp-filter-bar { position:absolute; top:12px; left:12px; z-index:5; display:flex; gap:6px; flex-wrap:wrap; max-width:calc(100% - 24px); }
.qp-filter-btn { padding:8px 16px; border:none; border-radius:50px; font-size:12px; font-weight:600; cursor:pointer; transition:all .2s; background:#fff; color:#555; box-shadow:0 2px 8px rgba(0,0,0,.12); text-transform:uppercase; letter-spacing:.5px; }
.qp-filter-btn:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,.18); }
.qp-filter-btn.active { color:#fff; }
.qp-filter-btn[data-filter="all"].active { background:#007cbd; color:#fff; }

/* Legend */
.qp-legend { position:absolute; bottom:32px; left:12px; z-index:5; background:rgba(255,255,255,.95); padding:10px 16px; border-radius:8px; display:flex; gap:14px; flex-wrap:wrap; font-size:11px; box-shadow:0 2px 8px rgba(0,0,0,.1); max-width:calc(100% - 24px); }
.qp-legend-item { display:flex; align-items:center; gap:6px; font-weight:500; color:#555; }
.qp-legend-dot { width:10px; height:10px; border-radius:50%; }

/* Markers */
.qp-marker { width:22px; height:28px; cursor:pointer; transition:transform .2s ease; background-size:contain; background-repeat:no-repeat; }
.qp-marker:hover { transform:scale(1.3) translateY(-4px); z-index:10 !important; }
.qp-marker.hidden { display:none; }
.qp-anchor { width:34px; height:42px; cursor:default; background-size:contain; background-repeat:no-repeat; filter:drop-shadow(0 3px 6px rgba(0,0,0,.35)); }

/* Popup */
.mapboxgl-popup-content { border-radius:10px !important; padding:0 !important; box-shadow:0 8px 30px rgba(0,0,0,.18) !important; min-width:220px; overflow:hidden; }
.mapboxgl-popup-close-button { font-size:18px; color:#999; padding:4px 10px; z-index:2; }
.qp-popup { padding:16px 18px; }
.qp-popup-type { display:inline-block; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:1px; padding:3px 8px; border-radius:4px; margin-bottom:8px; color:#fff; }
.qp-popup h4 { margin:0 0 6px; font-size:16px; font-weight:700; color:#1a1a2e; }
.qp-popup-address { font-size:12px; color:#777; margin:0 0 12px; }
.qp-popup-link { display:inline-block; background:#007cbd; color:#fff; text-decoration:none; padding:8px 18px; border-radius:6px; font-size:12px; font-weight:600; transition:background .2s; }
.qp-popup-link:hover { background:#005f91; }

@media (max-width:900px) {
  .qp-map-section { flex-direction:column; }
  .qp-map-sidebar { width:100%; min-width:unset; height:240px; min-height:200px; }
  .qp-map-main { height:500px; }
  .qp-legend { display:none; }
  .qp-filter-btn { padding:6px 12px; font-size:11px; }
}
@media (max-width:600px) {
  .qp-map-sidebar { height:200px; }
  .qp-map-main { height:400px; }
  .qp-filter-btn { padding:5px 10px; font-size:10px; }
}
