/* CISARNET v2.2 — visual layer loaded after the site's original CSS. */
body.network-map{--ink:#172c42;--muted:#748399;--accent:#176f88;--border:#e1e8ee;margin:0;background:#e9eef3;color:var(--ink);font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow:hidden}
.network-map *{box-sizing:border-box}.network-map .hidden{display:none!important}
.network-map .topbar{height:78px;position:relative;z-index:1001;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 28px;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 2px 16px #18334d08}
.network-map .brand{display:flex;align-items:center;gap:12px;min-width:0}.network-map .brand-logo{width:44px;height:44px;object-fit:contain}.brand-copy{display:flex;flex-direction:column}.network-map .brand-title{font-size:18px;font-weight:750;letter-spacing:1.4px;color:var(--ink)}.brand-subtitle{font-size:11px;color:var(--muted);letter-spacing:.3px}
.network-map .nav,.network-map .userbox{display:flex;align-items:center;gap:9px}.network-map .user{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.network-map .btn,.network-map .icon-btn{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:38px;padding:8px 14px;background:#fff;color:var(--ink);border:1px solid #d9e2eb;border-radius:9px;font:600 12px/1.3 system-ui;text-decoration:none;cursor:pointer;box-shadow:none;transition:background .15s,border-color .15s}.network-map .btn:hover{background:#f0f5f8;border-color:#acbbc9}.network-map .btn.primary{background:var(--accent);border-color:var(--accent);color:white}.network-map .btn.primary:hover{background:#125d73}.network-map .btn:focus-visible,.network-map input:focus-visible{outline:3px solid #78bdd3;outline-offset:2px}.network-map .btn:disabled{opacity:.5;cursor:wait}
.network-map .page{display:block;position:relative;margin:0;padding:0;width:100%;height:calc(100vh - 78px);height:calc(100dvh - 78px)}.network-map .mapwrap{position:relative;width:100%;height:100%;margin:0;padding:0}.network-map #map{position:absolute;inset:0;width:100%;height:100%;background:#e8eef0}.network-counts{position:absolute;bottom:28px;left:20px;z-index:800;border:1px solid #e1e8ee;background:#fffffff2;color:#506478;padding:9px 15px;border-radius:10px;box-shadow:0 3px 20px #18334d12;font-size:12px;pointer-events:none}
.network-map .leaflet-control-zoom,.network-map .leaflet-control-layers{border:1px solid #dce4ec!important;border-radius:10px;overflow:hidden;box-shadow:0 4px 20px #18334d15}.network-map .leaflet-control-zoom a{color:#28465d;background:#fff}.network-map .leaflet-control-layers{font:12px/1.8 system-ui;padding:8px}.network-map .leaflet-control-attribution{font-size:10px}.network-map .leaflet-popup-content-wrapper{padding:0;border-radius:16px;background:#fff;box-shadow:0 12px 48px #132e4933;color:var(--ink)}.network-map .leaflet-popup-content{margin:0;min-width:260px;width:340px!important;max-width:calc(100vw - 58px);font:13px/1.5 system-ui}.network-map .leaflet-popup-tip{background:#fff}.network-map .leaflet-popup-close-button{top:8px!important;right:9px!important;color:#708297!important;font-size:22px!important}
.network-marker{background:transparent;border:0}.network-marker-dot{display:block;width:18px;height:18px;margin:2px;border:3px solid #fff;border-radius:50%;background:var(--marker-color);box-shadow:0 0 0 1px #203b5022,0 3px 8px #18334d55}.network-marker:hover .network-marker-dot{box-shadow:0 0 0 5px #ffffff99,0 3px 8px #18334d55}
.eyebrow{display:block;color:#7a8a9c;font-size:10px;font-weight:700;letter-spacing:1.4px;line-height:1.6}.network-map .link-card,.network-map .popup-ip{padding:22px;background:transparent;border:0;box-shadow:none;border-radius:0}.link-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-right:10px;margin-bottom:17px}.network-map .link-card .link-state-badge{display:inline-flex;align-items:center;gap:6px;background:#f2f5f7;color:#334d62;padding:4px 7px;border:1px solid #e5ebef;border-radius:6px;font:650 10px system-ui;max-width:170px;overflow-wrap:anywhere}.link-card .link-state-badge::before{content:'';width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:var(--link-color)}.link-endpoints{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:start;gap:8px}.link-endpoints>div:last-child{text-align:right}.link-endpoints strong{font-size:16px;font-weight:700;overflow-wrap:anywhere;line-height:1.3;display:block}.link-endpoints small{display:block;margin-top:4px;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.link-arrow{color:#9aabbc;font-size:18px;text-align:center}.link-distance{text-align:center;color:#7a8a9c;font-size:11px;margin:6px 0 18px}.link-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:14px;border-top:1px solid #edf1f5}.link-metrics:empty{display:none}.link-metrics span{display:block;color:#7a8a9c;font-size:10px;margin-bottom:4px}.link-metrics strong{font-size:13px;font-weight:650;overflow-wrap:anywhere}.link-updated{font-size:10px;color:#8190a0;margin:14px 0}.network-map .js-open-profile{width:100%;margin-top:16px;justify-content:space-between}.network-map .popup-ip h3{font-size:19px;margin:5px 15px 18px 0;color:var(--ink);overflow-wrap:anywhere}.station-device{display:flex;align-items:center;gap:10px;border-top:1px solid #edf1f5;padding:10px 0}.station-device strong{font-size:12px;font-weight:600}.station-device small{display:block;color:#8190a0;font-size:11px;overflow-wrap:anywhere}.station-device .dot{display:block;flex:0 0 7px;width:7px;height:7px;border-radius:50%;margin:0}.station-device .dot-on{background:#229a75}.station-device .dot-off{background:#dc4c52}.network-map .js-webcam{width:100%;margin-top:10px}
.network-map dialog.modal{position:fixed;inset:0;margin:auto;padding:0;border:1px solid #dfe7ee;border-radius:18px;max-width:calc(100vw - 28px);max-height:92vh;max-height:92dvh;background:white;color:var(--ink);box-shadow:0 30px 100px #10283f40;overflow:auto}.network-map dialog:not([open]){display:none}.network-map dialog::backdrop{background:#122a4266;backdrop-filter:blur(4px)}.network-map dialog .card{background:#fff;color:var(--ink);border:0;box-shadow:none;margin:0;padding:24px;border-radius:0}.network-map dialog .profile-card-v2{width:min(1180px,calc(100vw - 30px))!important;max-height:none;overflow:visible}.profile-title-row{padding-bottom:18px;border-bottom:1px solid #edf1f5}.network-map dialog h3{font-size:22px;font-weight:650;letter-spacing:-.4px;color:var(--ink)}.network-map .profile-sites{display:flex;align-items:center;gap:18px;margin:20px 0 6px;font-size:16px;color:#274258}.network-map .profile-sites .site{flex:1;overflow-wrap:anywhere}.network-map .profile-sites .right{text-align:right}.network-map .profile-sites .spacer{flex:0 0 26px;color:#92a4b7}.network-map .profile-sites .spacer::after{content:'↔'}.profile-preset{text-align:center;margin:8px 0 20px;color:#8190a0;font-size:11px}.profile-preset span{padding:0 7px;color:#c0cbd5}.network-map .profile-plot{padding-top:18px;min-height:160px}.network-map .profile-legend{margin:4px 0 14px;font-size:11px;gap:14px}.network-map .profile-hover{padding:12px 0 0;font-size:11px}.network-map .profile-summary{border-color:#e5ebf0}.network-map .profile-result-state{background:#f7f9fb}.network-map .login-card{width:350px;max-width:calc(100vw - 30px)}.network-map .login-card h3{margin:0 0 22px}.network-map .field{display:block;margin-bottom:16px}.network-map .field span{display:block;font-size:12px;margin-bottom:7px;color:#718397}.network-map .field input{display:block;width:100%;padding:11px;border:1px solid #dbe4ec;border-radius:9px;background:#f8fafc;color:var(--ink);font:14px system-ui}.network-map .login-card .row{display:flex;gap:8px}.network-map .login-card .note{font-size:11px;color:#8190a0}.network-map #webcamTimestamp{color:#8190a0}
@media(max-width:650px){.network-map .topbar{height:68px;padding:0 12px;gap:8px}.network-map .brand-logo{width:33px;height:33px}.network-map .brand{gap:8px}.network-map .brand-title{font-size:14px;letter-spacing:1px}.brand-subtitle{font-size:9px}.network-map .nav{gap:5px}.network-map .nav .btn{padding:7px 9px;font-size:10px;min-height:34px}.network-map #fitNetwork{display:none}.network-map .page{height:calc(100vh - 68px);height:calc(100dvh - 68px)}.network-map .nav .user{display:none}.network-counts{left:12px;bottom:24px;font-size:11px;padding:7px 10px}.network-map dialog .card{padding:16px}.network-map dialog h3{font-size:18px}.network-map .profile-sites{font-size:13px;margin-top:15px}.network-map .profile-preset{font-size:10px}.network-map .profile-preset span{padding:0 3px}.network-map .profile-plot{overflow:auto}.network-map .profile-plot svg{min-width:650px}.network-map .profile-legend{font-size:10px}}
@media(prefers-reduced-motion:reduce){.network-map *{transition:none!important;animation:none!important}}

/* Scheda manutentori */
.profile-pointing{border:1px solid #e1e8ee;border-radius:12px;overflow:hidden;margin-bottom:12px}.profile-pointing table{width:100%;border-collapse:collapse;table-layout:fixed}.profile-pointing th,.profile-pointing td{text-align:left;padding:10px 14px;border-bottom:1px solid #edf1f5;font-size:13px;overflow-wrap:anywhere}.profile-pointing thead th{background:#f5f8fa;color:#667e92;font-size:11px;font-weight:600}.profile-pointing tbody th{font-weight:500;color:#667e92}.profile-pointing td{font-size:18px;font-weight:650;color:#176f88}.profile-pointing p{font-size:11px;color:#748399;margin:10px 14px}.profile-export-row{display:flex;align-items:center;gap:12px;justify-content:flex-end;margin:12px 0 18px}.profile-export-row span{font-size:11px;color:#748399}.profile-export-row button:disabled{opacity:.45;cursor:default}@media(max-width:600px){.profile-pointing th,.profile-pointing td{padding:8px;font-size:11px}.profile-pointing td{font-size:14px}.profile-export-row{flex-wrap:wrap}}

/* v2.4: gocce originali e lista IP contenuta */
.neutral-drop{background:none;border:none;filter:drop-shadow(1px 2px 2px #243e5355)}
.network-map .station-ip-list{max-height:220px;max-height:min(220px,35vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b8c8d5 transparent;padding-right:6px;margin-bottom:8px}
.network-map .station-ip-list:focus-visible{outline:2px solid #78bdd3;outline-offset:3px;border-radius:4px}
.network-map .station-device{padding:6px 0;gap:8px}.network-map .station-device strong{font-size:11px}.network-map .station-device small{font-size:10px;line-height:1.3}.network-map .popup-ip{padding:18px}.network-map .popup-ip h3{margin-bottom:12px;font-size:17px}.network-map .popup-ip .js-webcam{margin-top:4px}.network-map .leaflet-popup-content{max-height:75vh;overflow-y:auto;overscroll-behavior:contain}

/* v2.4.1: IP e hostname sulla stessa riga senza allargare il popup. */
.network-map .station-device{min-width:0;gap:7px}
.network-map .station-device>div{display:flex;align-items:baseline;gap:9px;flex:1;min-width:0;overflow:hidden}
.network-map .station-device strong{flex:0 0 auto;white-space:nowrap;line-height:1.5}
.network-map .station-device small{display:block;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5}

/* v2.5: lista ad altezza naturale, scroll solo oltre il limite dello schermo. */
.network-map .station-ip-list{height:auto;max-height:min(340px,50vh)}
.network-map .profile-pointing{border:0;border-radius:0;margin:4px 0 8px;font-size:12px;color:#526e82;line-height:1.6;overflow-wrap:anywhere}
.network-map .profile-export-row{margin:6px 0 10px}.network-map .profile-preset{margin-bottom:10px}.network-map .profile-title-row{padding-bottom:12px}.network-map .profile-sites{margin-top:12px}

/* 2.7.3: dedicated popup badge; avoid global .status styles. */
.network-map .leaflet-popup .link-card .link-state-badge{color:#244258!important;background:#edf3f7!important;border:1px solid #cbd8e2!important;opacity:1!important;text-shadow:none!important;-webkit-text-fill-color:#244258;box-shadow:none;font-weight:700;line-height:1.4;flex-shrink:0}
.network-map .leaflet-popup .link-card .link-state-badge::before{background:var(--link-color,#64748b);box-shadow:0 0 0 2px #ffffff;opacity:1}
