/* ====== Layout ====== */
.via-map-container { max-width: 1200px; margin: 0 auto; }
.via-map-controls { display:flex; justify-content:flex-end; align-items:center; gap:10px; margin:8px 0 10px; }
.via-map-controls label { font-size:14px; color:#475569; }
#via-category {
  padding:8px 12px; border:1px solid #cbd5e1; border-radius:999px; background:#fff; font-size:14px;
  appearance:none; -moz-appearance:none; -webkit-appearance:none; cursor:pointer;
}

/* ====== Map host + Leaflet canvas ====== */
#via-map { position: relative; width: 100%; min-height: 560px; margin-bottom: 10px; }
#via-map .leaflet-container {
  height: 560px; width: 100%; background: #eef2f7; border: 1px solid #cbd5e1; border-radius: 6px;
}

/* Tooltip (Leaflet) */
.via-lf-tip {
  background:#0f172a; color:#fff; padding:6px 10px; border-radius:8px;
  box-shadow:0 8px 22px rgba(2,6,23,.25); border:none; font-size:13px;
}
.via-lf-tip:before, .via-lf-tip:after { display:none!important; }

/* ====== Legend ====== */
.via-legend { margin: 6px 0 10px; font-size:12px; color:#64748b; display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.via-legend-item { display:flex; align-items:center; gap:6px; }
.via-legend-swatch { width:18px; height:18px; border-radius:999px; border:1px solid rgba(0,0,0,0.06); }

/* ====== Table ====== */
#via-table table { width:100%; border-collapse:separate; border-spacing:0; font-size:14px; }
#via-table thead th {
  text-align:left; padding:10px 12px; background:#f1f5f9; color:#475569; font-weight:600; position:sticky; top:0; z-index:1;
}
#via-table tbody td { padding:10px 12px; border-top:1px solid #e5e7eb; color:#0f172a; }
#via-table tbody tr:hover { background:#f8fafc; }
.via-row-flash { animation: viaFlash 1.4s ease; }
@keyframes viaFlash {
  0% { background:#fff7ed; } 100% { background:transparent; }
}

/* Small screens */
@media (max-width: 600px) {
  #via-map .leaflet-container { height: 440px; }
}