/* ---------- Responsive (mobile) ---------- */
@media (max-width: 860px) {
  header, #view-overview { padding: 20px 18px 18px; }
  header h1 { font-size: 1.7rem; }
  .dashboard {
    flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory;
    margin: 18px -18px 0; padding: 0 18px 6px; -webkit-overflow-scrolling: touch;
  }
  #view-overview .dashboard { margin-top: 0; }
  .stat-card { flex: 0 0 180px; scroll-snap-align: start; }
  .topnav .nav-label { display: none; }
  .topnav .nav-tab { padding: 9px 11px; }
  .container { flex-direction: column; padding: 14px; gap:14px; }
  .map-frame, .sidebar-col { flex: 1 1 auto; min-width: 0; width: 100%; }
  #map { height: 320px; }
  .sidebar, .sub-panel { max-height: 55vh; }
  section { padding: 10px 14px 22px; }
}
