:root{--ink:#0c1220;--muted:#586070;--card:#ffffffee;--brd:#e7eaf1;--accent:#1B58F0;--shadow:0 20px 40px rgba(12,18,32,.18);--r:16px}
.bcard-root{position:relative;min-height:90vh}
.mapbg{position:fixed;inset:0;z-index:0}
.panel.filters{position:fixed;z-index:3;top:96px;left:calc(50% - 560px);width:360px;max-width:92vw;backdrop-filter:blur(8px);background:var(--card);border:1px solid var(--brd);border-radius:var(--r);box-shadow:var(--shadow)}
.panel-header{cursor:move;user-select:none;display:flex;align-items:baseline;justify-content:space-between;padding:14px 16px 8px;border-bottom:1px solid var(--brd)}
.panel-header h2{margin:0;font-size:18px}.hint{color:var(--muted);font-size:12px}
.panel-body{padding:12px 16px 16px}.row{display:grid;gap:8px;margin-bottom:12px}
label{font-size:13px;color:var(--muted)}select,input{width:100%;padding:10px 12px;border:1px solid var(--brd);border-radius:10px;background:#fff;font-size:14px}
.cta{display:flex;gap:10px;margin-top:4px}.btn{appearance:none;border:0;border-radius:10px;padding:10px 14px;font-weight:600;cursor:pointer}
.btn--pri{background:var(--accent);color:#fff}.btn--gh{background:#fff;border:1px solid var(--brd);color:var(--ink)}
.sum{margin-top:10px;color:var(--muted);font-size:14px}
.grid{position:relative;z-index:2;margin:16px auto;max-width:1200px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:980px){.grid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.grid{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--brd);border-radius:12px;padding:14px;box-shadow:0 10px 30px rgba(12,18,32,.12)}
.card h3{margin:0 0 6px;font-size:16px}.meta{font-size:13px;color:var(--muted)}
.maplibregl-popup{font:12px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Arial,"Noto Sans"}
.maplibregl-popup-content{border-radius:10px;border:1px solid var(--brd);box-shadow:0 10px 30px rgba(12,18,32,.2)}
/* Limit map section height */
.bcard-section {
  position: relative;
  width: 100%;
  max-width: 1200px;   /* optional */
  margin: 0 auto;
  padding: 20px;
}

.bcard-root {
  position: relative;
  min-height: 800px;   /* <-- map height instead of full viewport */
  border: 1px solid var(--brd);
  border-radius: var(--r);
  overflow: hidden;
}

/* Map should just fill its parent, not fixed to screen */
.mapbg {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 0;
}