/* Lonato Network Map - stili isolati sotto .lonato-network-map per non toccare il resto del sito */
.lonato-network-map{--navy:#06131f;--panel:#0b1c2b;--panel2:#102638;--nm-white:#f4f7fa;--nm-muted:#91a3b3;--nm-red:#df2c34;--nm-red2:#ff5d61;--nm-cyan:#52d6d0;--nm-rail:#ffbf45;--nm-road:#247fca;--nm-sea:#55a9ff;--nm-border:rgba(255,255,255,.09);min-width:320px;background:radial-gradient(circle at 70% 20%,#12324a 0,var(--navy) 42%);color:var(--nm-white);font-family:Inter,Segoe UI,Arial,sans-serif;border-radius:18px;overflow:hidden}
.lonato-network-map *{box-sizing:border-box}
.lonato-network-map button{font:inherit}
.lonato-network-map .app-shell{max-width:1600px;margin:auto;padding:24px 30px 34px}
.lonato-network-map .topbar{min-height:112px;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--nm-border);padding-bottom:20px}
.lonato-network-map .logo{width:112px;height:66px;object-fit:contain;background:white;border-radius:7px;padding:8px}
.lonato-network-map .eyebrow,.lonato-network-map .section-label{font-size:10px;font-weight:800;letter-spacing:.18em;color:var(--nm-red2)}
.lonato-network-map h1{font-size:clamp(25px,3vw,42px);line-height:1.05;margin:6px 0;color:var(--nm-white)}
.lonato-network-map .subtitle{color:var(--nm-muted);font-size:14px}
.lonato-network-map .network-status{margin-left:auto;color:#b9c8d4;font-size:12px;padding:9px 13px;border:1px solid var(--nm-border);border-radius:999px;background:rgba(7,21,33,.7)}
.lonato-network-map .network-status span{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:#44db8a;box-shadow:0 0 10px #44db8a}
.lonato-network-map .workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;margin-top:20px}
.lonato-network-map .sidebar,.lonato-network-map .map-card{background:linear-gradient(160deg,rgba(14,37,54,.96),rgba(7,24,37,.96));border:1px solid var(--nm-border);border-radius:18px;box-shadow:0 22px 55px rgba(0,0,0,.28)}
.lonato-network-map .sidebar{padding:22px;display:flex;flex-direction:column;max-height:780px}
.lonato-network-map .panel-intro h2{font-size:24px;margin:6px 0}
.lonato-network-map .panel-intro>p:last-child{font-size:12px;color:var(--nm-muted);line-height:1.5}
.lonato-network-map .filters{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:18px 0 10px}
.lonato-network-map .filter{cursor:pointer;color:#9eb0bf;background:#081824;border:1px solid var(--nm-border);border-radius:8px;padding:8px 3px;font-size:10px;display:flex;align-items:center;justify-content:center;gap:4px;min-height:37px}
.lonato-network-map .filter:hover,.lonato-network-map .filter.active{background:#193349;color:white;border-color:#496477}
.lonato-network-map .filter-icon{width:15px;height:11px;display:inline-flex;flex:0 0 15px}
.lonato-network-map .filter-icon.steam{width:18px;flex-basis:18px}
.lonato-network-map .filter-icon.ship{width:17px;flex-basis:17px}
.lonato-network-map .filter-icon svg,.lonato-network-map .route-card .icon svg,.lonato-network-map .badge-icon svg{width:100%;height:100%;overflow:visible}
.lonato-network-map .filter[data-filter="rail"] .filter-icon svg,.lonato-network-map .route-card .icon.rail svg,.lonato-network-map .mode-badge.rail .badge-icon svg{fill:var(--nm-rail)}
.lonato-network-map .filter[data-filter="road"] .filter-icon svg,.lonato-network-map .route-card .icon.road svg,.lonato-network-map .mode-badge.road .badge-icon svg{fill:var(--nm-road)}
.lonato-network-map .filter[data-filter="sea"] .filter-icon svg,.lonato-network-map .route-card .icon.sea svg,.lonato-network-map .mode-badge.sea .badge-icon svg{fill:var(--nm-sea)}
.lonato-network-map .filter-icon .window,.lonato-network-map .route-card .window,.lonato-network-map .badge-icon .window{fill:#07131f!important}
.lonato-network-map .filter-icon .detail,.lonato-network-map .route-card .detail,.lonato-network-map .badge-icon .detail{fill:none!important;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.lonato-network-map .play-all{cursor:pointer;border:0;border-radius:9px;padding:12px;color:white;font-size:12px;font-weight:700;background:linear-gradient(90deg,#c71f2d,#ee434c);box-shadow:0 8px 22px rgba(223,44,52,.2)}
.lonato-network-map .play-all span{margin-right:6px}
.lonato-network-map .route-list{overflow:auto;margin:12px -6px 8px;padding:0 6px;scrollbar-color:#345064 transparent}
.lonato-network-map .route-card{width:100%;cursor:pointer;text-align:left;color:white;background:transparent;border:0;border-bottom:1px solid var(--nm-border);padding:11px 8px;border-radius:7px;display:grid;grid-template-columns:27px 1fr;gap:8px}
.lonato-network-map .route-card:hover,.lonato-network-map .route-card.active{background:#183044}
.lonato-network-map .route-card .icon{width:25px;height:18px;display:grid;place-items:center;align-self:center;filter:drop-shadow(0 2px 3px rgba(0,0,0,.45))}
.lonato-network-map .route-card .icon.rail{color:var(--nm-rail)}
.lonato-network-map .route-card .icon.road{color:var(--nm-road)}
.lonato-network-map .route-card .icon.sea{color:var(--nm-sea)}
.lonato-network-map .route-card strong{font-size:11px;display:block;margin-bottom:3px}
.lonato-network-map .route-card small{font-size:9px;color:#8fa4b5;text-transform:uppercase;letter-spacing:.08em}
.lonato-network-map .route-card.hidden{display:none}
.lonato-network-map .legend{padding-top:12px;border-top:1px solid var(--nm-border);font-size:10px;color:#aebcc7;display:grid;gap:8px}
.lonato-network-map .legend .section-label{margin-bottom:2px}
.lonato-network-map .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}
.lonato-network-map .dot-main{background:var(--nm-red);box-shadow:0 0 0 3px rgba(223,44,52,.2)}
.lonato-network-map .dot-branch{background:white}
.lonato-network-map .dot-node{border:1px solid #8ea2b4}
.lonato-network-map .line-sample{display:inline-block;width:18px;height:2px;margin-right:8px;vertical-align:middle}
.lonato-network-map .line-sample.rail{background:var(--nm-rail)}
.lonato-network-map .line-sample.road{background:repeating-linear-gradient(90deg,var(--nm-road) 0 4px,transparent 4px 7px)}
.lonato-network-map .line-sample.sea{background:var(--nm-sea)}
.lonato-network-map .map-card{min-width:0;overflow:hidden}
.lonato-network-map .map-heading{height:65px;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--nm-border)}
.lonato-network-map .map-heading span{display:block;color:#7690a5;font-size:9px;font-weight:800;letter-spacing:.15em}
.lonato-network-map .map-heading strong{font-size:16px}
.lonato-network-map .mode-badge{font-size:9px;font-weight:800;letter-spacing:.12em;padding:7px 10px;border-radius:999px;background:#172e40;color:#9fb2c2;display:flex;align-items:center;gap:6px}
.lonato-network-map .badge-icon{display:inline-flex!important;width:19px;height:14px;color:inherit}
.lonato-network-map .map-wrapper{position:relative;height:min(620px,68vh);min-height:490px;overflow:hidden;background:#9ed2ee}
.lonato-network-map .europe-map{opacity:1;filter:none;pointer-events:none}
.lonato-network-map #networkMap{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.lonato-network-map .country-highlight{fill:rgba(61,113,139,.18);stroke:rgba(103,166,194,.25);stroke-width:1}
.lonato-network-map .route{fill:none;stroke-width:2.2;opacity:.48;transition:opacity .45s,stroke-width .25s}
.lonato-network-map .route.rail{stroke:var(--nm-rail)}
.lonato-network-map .route.road{stroke:var(--nm-road);stroke-dasharray:7 8}
.lonato-network-map .route.sea{stroke:var(--nm-sea);stroke-dasharray:3 6}
.lonato-network-map .route.selected{opacity:1;stroke-width:3.5;filter:drop-shadow(0 0 5px currentColor)}
.lonato-network-map .route.dimmed{opacity:.07}
.lonato-network-map .route-hit{fill:none;stroke:transparent;stroke-width:14;cursor:pointer}
.lonato-network-map .route.pending,.lonato-network-map .route-hit.pending{visibility:hidden;opacity:0;pointer-events:none}
.lonato-network-map .hub{cursor:pointer;opacity:1;transition:opacity .45s}
.lonato-network-map .hub.pending{visibility:hidden;opacity:0;pointer-events:none}
.lonato-network-map .hub .pulse{fill:none;stroke:var(--nm-red2);stroke-width:2;opacity:.4;transform-origin:center;animation:lonatoMapPulse 2.2s infinite}
.lonato-network-map .hub .core{stroke:#f8fcff;stroke-width:2.5}
.lonato-network-map .hub text{fill:#17394d;font-size:8px;font-weight:800;paint-order:stroke;stroke:#f7fbf2;stroke-width:3px;stroke-linejoin:round}
.lonato-network-map .hub .country{fill:#476879;font-size:5.5px;letter-spacing:.12em}
.lonato-network-map .hub.external .core{fill:#557b8d}
.lonato-network-map .hub.branch .core{fill:#ffffff;stroke:#3b6877;stroke-width:2.5}
.lonato-network-map .hub.branch .seat-ring{fill:none;stroke:#25a7a2;stroke-width:2;opacity:.85}
.lonato-network-map .hub.main .core{fill:var(--nm-red2);stroke:#fff;stroke-width:2}
.lonato-network-map .hub.main .seat-ring{fill:none;stroke:var(--nm-red2);stroke-width:3;opacity:.8;filter:drop-shadow(0 0 4px var(--nm-red2))}
.lonato-network-map .hub.main text,.lonato-network-map .hub.branch text{font-size:9px}
.lonato-network-map .hub.main .country,.lonato-network-map .hub.branch .country{font-size:6px}
.lonato-network-map .hub[data-node-id="mantova"] text{font-size:7px}
.lonato-network-map .hub[data-node-id="mantova"] .country{font-size:5px}
.lonato-network-map .moving-vehicle{filter:drop-shadow(0 3px 4px rgba(32,74,96,.45));pointer-events:none}
.lonato-network-map .vehicle-icon.road{fill:var(--nm-road)}
.lonato-network-map .vehicle-icon.rail{fill:var(--nm-rail)}
.lonato-network-map .vehicle-icon.sea{fill:#258ee0}
.lonato-network-map .vehicle-icon circle{fill:#31596c;stroke:#fff;stroke-width:1}
.lonato-network-map .vehicle-icon .vehicle-window{fill:#effaff}
.lonato-network-map .vehicle-icon .vehicle-detail{fill:none;stroke:#fff;stroke-width:1.5;stroke-linecap:round}
.lonato-network-map .stats{height:68px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--nm-border)}
.lonato-network-map .stats div{display:flex;align-items:center;justify-content:center;gap:9px;border-right:1px solid var(--nm-border)}
.lonato-network-map .stats div:last-child{border:0}
.lonato-network-map .stats strong{font-size:22px;color:white}
.lonato-network-map .stats span{font-size:9px;color:#8194a4;text-transform:uppercase;letter-spacing:.08em}
#nmTooltip{position:fixed;z-index:99990;pointer-events:none;opacity:0;transform:translateY(4px);transition:.15s;background:#071722;border:1px solid #355066;border-radius:9px;padding:10px 12px;box-shadow:0 12px 30px #000;color:white;font-size:11px}
#nmTooltip b{display:block;margin-bottom:3px}
#nmTooltip span{color:#8fa4b5}
@keyframes lonatoMapPulse{0%{r:11;opacity:.7}100%{r:27;opacity:0}}
@media(max-width:900px){
    .lonato-network-map .app-shell{padding:16px}
    .lonato-network-map .topbar{gap:15px}
    .lonato-network-map .logo{width:85px}
    .lonato-network-map .network-status{display:none}
    .lonato-network-map .workspace{grid-template-columns:1fr}
    .lonato-network-map .sidebar{max-height:none}
    .lonato-network-map .route-list{max-height:240px}
    .lonato-network-map .map-wrapper{height:560px}
    .lonato-network-map .stats span{display:none}
}
@media(max-width:520px){
    .lonato-network-map .topbar h1{font-size:24px}
    .lonato-network-map .subtitle{display:none}
    .lonato-network-map .map-wrapper{min-height:430px}
    .lonato-network-map .map-heading{padding:12px}
    .lonato-network-map .stats{grid-template-columns:repeat(2,1fr);height:auto}
    .lonato-network-map .stats div{padding:12px}
}
