diff --git a/index.html b/index.html
index ea68c6f..0bfdab0 100644
--- a/index.html
+++ b/index.html
@@ -2817,12 +2817,25 @@
features.forEach(f => {
const p = f.properties || {};
- const varName = p.Variante ? `Variante ${p.Variante}` : (p.name || "Variante A");
+ // Robustly find 'Variante' (case-insensitive)
+ const rawVariante = p.Variante || p.variante || p.VARIANTE || '';
+ const rawName = p.name || p.Name || p.NAME || '';
+
+ const varName = rawVariante ? `Variante ${rawVariante}` : (rawName || "Variante A");
const slot = state.variants.find(lv => lv.name === varName);
+
if (slot && f.geometry && f.geometry.coordinates) {
- slot.id = f.id || p.id || slot.id;
- slot.routes = f.geometry.coordinates.map(c => ({ lat: c[1], lng: c[0] }));
+ slot.id = f.id || p.fid || p.id || p._id || slot.id;
+ // Handle potential nested coordinate arrays from different GIS exports
+ let coords = f.geometry.coordinates;
+ if (f.geometry.type === "LineString") {
+ slot.routes = coords.map(c => ({ lat: c[1], lng: c[0] }));
+ } else if (f.geometry.type === "MultiLineString") {
+ // Take the first segment of a MultiLineString if it's imported that way
+ slot.routes = coords[0].map(c => ({ lat: c[1], lng: c[0] }));
+ }
+
// Re-sync the polyline layer if it exists
if (routeLayers[slot.id]) {
routeLayers[slot.id].setLatLngs(slot.routes);