.nm-page{--n:#102a43;--m:#35d2a6;--line:#dce6e1;--muted:#63747e;background:#f4f8f6;min-height:100vh}.nm-top{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:72px;padding:0 clamp(22px,5vw,80px);font:700 12px monospace;display:flex}.nm-top a{color:#0d2438;text-decoration:none}.nm-top a b{background:var(--m);margin-right:8px;padding:9px 7px}.nm-top span{color:var(--muted)}.nm-hero{background:var(--n);color:#fff;padding:65px clamp(24px,7vw,110px)}.nm-hero p{color:var(--m);font:11px monospace}.nm-hero h1{letter-spacing:-.05em;margin:20px 0;font-size:clamp(44px,6vw,72px);line-height:1}.nm-hero em{color:var(--m);font-style:normal}.nm-hero>span{color:#bdd0d8}.nm-shell{border:1px solid var(--line);background:#fff;grid-template-columns:330px 1fr;width:min(1550px,100% - 36px);margin:40px auto 80px;display:grid}.nm-shell>aside{border-right:1px solid var(--line);padding:20px}.nm-upload{text-align:center;border:1.5px dashed #a5b7ae;flex-direction:column;justify-content:center;align-items:center;height:120px;margin-bottom:9px;display:flex}.nm-upload input{display:none}.nm-upload strong{color:#168a6b;font-size:25px}.nm-upload small{color:var(--muted);text-overflow:ellipsis;max-width:250px;margin-top:5px;font-size:9px;overflow:hidden}.nm-shell nav{gap:6px;margin:17px 0;display:grid}.nm-shell nav button{text-align:left;border:1px solid var(--line);color:var(--muted);background:#fff;padding:11px;font-size:10px}.nm-shell nav button i{background:#bbb;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.nm-shell nav button.on{color:#0d2438;font-weight:700}.nm-shell nav .l1 i{background:var(--m)}.nm-shell nav .l2 i{background:#55a8ff}.nm-shell nav .l3 i{background:#ffbd59}.nm-metrics{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:12px;padding-top:15px;display:grid}.nm-metrics b{font-size:20px}.nm-metrics small{color:var(--muted);font:8px monospace;display:block}.nm-result{min-width:0}.nm-result>header{border-bottom:1px solid var(--line);justify-content:space-between;padding:22px 25px;display:flex}.nm-result>header small{color:#168a6b;font:9px monospace}.nm-result h2{margin:6px 0 0}.nm-legend{align-items:center;gap:15px;font:9px monospace;display:flex}.nm-legend span:before{content:"";border-top:3px solid #345a50;width:28px;margin-right:7px;display:inline-block}.nm-legend .dash:before{border-top-style:dashed}.nm-map{background-image:radial-gradient(#bdd0c7 1px,#0000 1px);background-size:20px 20px;min-height:650px;padding:20px;overflow:auto}.nm-map svg{width:100%;min-width:850px;display:block}.edge path{fill:none;stroke:#315e50;stroke-width:4px}.edge.inferred path{stroke:#78968a;stroke-width:3px;stroke-dasharray:9 6}.edge rect{fill:#fff;stroke:#aabdb5}.edge.confirmed rect{stroke:#35d2a6;stroke-width:2px}.edge text{text-anchor:middle;fill:#26443a;font:700 9px monospace}.nm-node rect{fill:var(--n);stroke:var(--m);stroke-width:3px}.nm-node text{text-anchor:middle;fill:#fff}.nm-node .kind{fill:var(--m);font:700 8px monospace}.nm-node .name{font:700 13px Arial}.nm-node .meta{fill:#bed0d8;font:9px monospace}.nm-node.router rect{fill:#4d3f7d;stroke:#b6a6ff}.nm-node.firewall rect{fill:#713f42;stroke:#ff9c86}.nm-result>footer{color:var(--muted);border-top:1px solid var(--line);padding:14px 22px;font:9px monospace}@media (max-width:850px){.nm-shell{grid-template-columns:1fr}.nm-shell>aside{border-right:0;border-bottom:1px solid var(--line)}.nm-result>header{gap:15px;display:grid}}.nm-map svg{width:135%;min-width:1100px;max-width:none}.nm-toolbar{z-index:160;background:#fff;border:1px solid #dce6e1;align-items:center;gap:5px;padding:7px;display:flex;position:fixed;bottom:22px;right:24px;box-shadow:0 12px 35px #0b21364a}.nm-toolbar button{background:#fff;border:1px solid #dce6e1;padding:9px 12px;font-size:10px;font-weight:700}.nm-toolbar>span{text-align:center;color:#63747e;min-width:48px;font:9px monospace}.nm-toolbar .nm-download{color:#fff;background:#102a43;border-color:#102a43}.nm-map.nm-fullscreen{z-index:140;background-color:#f8fbf9;padding:80px 30px 30px;position:fixed;inset:0;overflow:auto}.nm-map.nm-fullscreen svg{min-width:1200px}.nm-no-scroll{overflow:hidden}@media (max-width:700px){.nm-toolbar{flex-wrap:wrap;max-width:calc(100% - 16px);bottom:8px;right:8px}.nm-toolbar button{padding:8px}}
