:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #17202a;
  background: #c8d3db;
}

* { box-sizing: border-box; }
html, body, .map-stage, #map { width: 100%; height: 100%; margin: 0; }
button { font: inherit; }
.map-stage { position: relative; overflow: hidden; }
#map { position: absolute; inset: 0; }

.panel {
  position: absolute;
  z-index: 2;
  top: 16px;
  left: 16px;
  width: min(410px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgb(23 32 42 / 16%);
  border-radius: 10px;
  background: rgb(255 255 255 / 95%);
  box-shadow: 0 16px 48px rgb(23 32 42 / 20%);
  backdrop-filter: blur(10px);
}

header { display: flex; justify-content: space-between; gap: 16px; padding: 18px 18px 10px; }
.eyebrow { margin: 0 0 4px; color: #65707a; font-size: .72rem; font-weight: 750; text-transform: uppercase; }
h1 { margin: 0; font-size: 1.32rem; line-height: 1.15; }
.count { min-width: 48px; height: fit-content; padding: 8px; border-radius: 8px; background: #17202a; color: #fff; text-align: center; }
.stats { padding: 0 18px 14px; color: #596572; font-size: .82rem; }
.filters { display: flex; gap: 6px; padding: 0 18px 12px; }
.filters button { border: 1px solid rgb(23 32 42 / 18%); border-radius: 999px; padding: 5px 9px; background: #fff; color: #344054; cursor: pointer; font-size: .72rem; font-weight: 700; }
.filters button.active { border-color: #fd8337; background: #fd8337; color: #17202a; }
.alert-list { min-height: 0; margin: 0; padding: 0; overflow: auto; border-top: 1px solid rgb(23 32 42 / 12%); list-style: none; }
.alert-list li { border-bottom: 1px solid rgb(23 32 42 / 10%); }
.alert-list button { width: 100%; display: grid; gap: 4px; border: 0; padding: 12px 18px; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.alert-list button:hover, .alert-list button:focus-visible { background: rgb(180 35 24 / 8%); outline: none; }
.alert-list strong { font-size: .94rem; }
.alert-list span { color: #596572; font-size: .78rem; }
.alert-list small { color: #475467; font-size: .76rem; }
.empty, .error { padding: 18px; }
.error { color: #b42318; font-weight: 700; }
footer { padding: 11px 18px; color: #65707a; font-size: .72rem; }
footer a { color: #344054; font-weight: 700; }
.mapboxgl-popup-content { min-width: 250px; border-radius: 8px; }
.mapboxgl-popup-content strong { display: block; margin-bottom: 8px; }
.mapboxgl-popup-content p { margin: 0 0 10px; line-height: 1.4; }
.mapboxgl-popup-content dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 9px; margin: 0 0 10px; font-size: .82rem; }
.mapboxgl-popup-content dt { color: #65707a; }
.mapboxgl-popup-content dd { margin: 0; font-weight: 650; }

@media (max-width: 720px) {
  .panel { top: auto; bottom: 12px; left: 12px; width: calc(100vw - 24px); max-height: 43vh; }
  header { padding: 14px 14px 8px; }
  .stats { padding: 0 14px 10px; }
  footer { padding: 9px 14px; }
}
