.stat-card {
  text-align: center;
  padding: 1.25rem;
}
.stat-card .stat-value {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
}
.stat-card .stat-label {
  font-size: 0.85rem;
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.chart-card {
  min-height: 320px;
}
.chart-card canvas {
  max-height: 300px;
}
#town-map {
  height: 350px;
  border-radius: 0.375rem;
}
.no-data-message {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 200px;
  opacity: 0.5;
  font-style: italic;
}
/* Dark mode map tile inversion */
[data-bs-theme="dark"] .leaflet-tile-pane {
  filter: invert(1) hue-rotate(180deg);
}
