.nt-root{--nt-bg:#f7f9fc;--nt-paper:#fff;--nt-ink:#263b4d;--nt-muted:#536c7f;--nt-line:#e0e8ef;--nt-accent:#368cc7;--nt-field:#fff;position:relative;border:1px solid var(--nt-line);border-radius:18px;background:var(--nt-paper);color:var(--nt-ink);box-shadow:0 12px 36px #16344b08;overflow:hidden}
.nt-root[data-theme=dark]{--nt-bg:#0e1824;--nt-paper:#152333;--nt-ink:#ecf2fa;--nt-muted:#a9bdd2;--nt-line:#2b3d51;--nt-accent:#63b0e6;--nt-field:#192a3b}
.nt-root[data-theme=dark]{--nt-ink:#fff;--nt-muted:#c4d2e5;--nt-line:#52657e;--nt-accent:#80bfff}
.nt-root .nt-canvas{isolation:isolate}.nt-root .nt-stage-label{font-size:11px;font-weight:500}.nt-root .nt-legend{font-size:11px}
.nt-root button,.nt-root input,.nt-root select{font:inherit;outline-color:var(--nt-accent);outline-offset:3px}
.nt-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:23px 24px 18px;border-bottom:1px solid var(--nt-line)}
.nt-header h2{font-size:19px;color:var(--nt-ink);margin-top:5px;font-weight:600}
.nt-eyebrow{font-size:9px;letter-spacing:2.4px;font-weight:650;color:var(--nt-muted)}
.nt-header-actions{display:flex;gap:8px;flex-wrap:wrap}
.nt-button{border:1px solid var(--nt-line);border-radius:8px;color:var(--nt-ink);background:var(--nt-paper);padding:9px 12px;line-height:1.2;font-size:11px!important;transition:background .18s,border-color .18s;white-space:nowrap}
.nt-button:hover{border-color:var(--nt-accent);background:var(--nt-bg)}
.nt-button.primary{background:#27614b;border-color:#27614b;color:#fff}
.nt-button:disabled{opacity:.55;cursor:wait}
.nt-metrics{display:flex;align-items:center;gap:25px;padding:14px 24px;border-bottom:1px solid var(--nt-line);font-size:11px;color:var(--nt-muted);flex-wrap:wrap}
.nt-metrics b{font-size:17px;margin-right:4px;color:var(--nt-ink);font-weight:600}
.nt-metrics .nt-green b{color:#26aa7b}.nt-metrics .nt-amber b{color:#c99742}
.nt-toolbar{display:flex;align-items:center;gap:9px;padding:12px 18px;border-bottom:1px solid var(--nt-line);position:relative;z-index:4}
.nt-toolbar select,.nt-toolbar input{background:var(--nt-field);border:1px solid var(--nt-line);color:var(--nt-ink);border-radius:8px;padding:9px 10px;min-width:0;font-size:11px}
.nt-search{position:relative;flex:1;max-width:320px}.nt-search input{width:100%;padding-left:13px}
.nt-search-results{position:absolute;inset:42px 0 auto 0;max-height:320px;overflow:auto;background:var(--nt-paper);border:1px solid var(--nt-line);border-radius:10px;box-shadow:0 12px 35px #0002;z-index:15;padding:5px}
.nt-search-results button{display:block;text-align:left;width:100%;border:0;background:transparent;color:var(--nt-ink);padding:9px;border-radius:6px}
.nt-search-results button:hover{background:var(--nt-bg)}.nt-search-results b,.nt-search-results small{display:block;font-size:11px}.nt-search-results small{color:var(--nt-muted);margin-top:3px}.nt-search-results p{font-size:12px;padding:12px;color:var(--nt-muted)}
.nt-view-count{font-size:10px;color:var(--nt-muted);margin-left:auto;white-space:nowrap}
.nt-workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px;min-height:620px}
.nt-map{position:relative;min-width:0;overflow:hidden;background-color:var(--nt-bg);background-image:radial-gradient(var(--nt-line) .8px,transparent .8px);background-size:20px 20px}
.nt-canvas{position:absolute;inset:0;min-height:500px}.nt-canvas canvas{display:block}
.nt-stage-label{position:absolute;top:15px;left:18px;font-size:9px;letter-spacing:.5px;color:var(--nt-muted);background:var(--nt-bg);padding:6px 10px;border-radius:6px;max-width:calc(100% - 36px);pointer-events:none}
.nt-map-tools{display:flex;align-items:center;gap:5px;position:absolute;top:50px;left:18px;z-index:2;flex-wrap:wrap}
.nt-map-tools .nt-button{box-shadow:0 3px 10px #14253606;padding:8px 10px}
.nt-map-tools .nt-button:first-child,.nt-map-tools .nt-button:nth-child(2){font-size:16px!important;padding:5px 10px}
.nt-legend{position:absolute;bottom:15px;right:16px;display:flex;gap:14px;align-items:center;font-size:9px;color:var(--nt-muted);background:var(--nt-paper);border:1px solid var(--nt-line);border-radius:8px;padding:9px 11px;max-width:calc(100% - 200px);flex-wrap:wrap;pointer-events:none}
.nt-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}.nt-legend i{width:20px;border-top:2px solid #829eb6;display:inline-block}.nt-legend i.inferred{border-top-style:dashed}.nt-legend b{width:6px;height:6px;border-radius:50%;background:#26aa7b}.nt-legend b.offline{background:#d56869}
.nt-map-empty{position:absolute;top:40%;left:50%;transform:translate(-50%,-30%);text-align:center;width:330px;max-width:90%;pointer-events:none;background:var(--nt-bg);padding:25px;border-radius:16px}
.nt-map-empty img{width:54px;height:54px;margin-bottom:15px}.nt-map-empty h3{font-size:16px;margin-bottom:9px;color:var(--nt-ink)}.nt-map-empty p{font-size:11px;color:var(--nt-muted);line-height:1.8}
.nt-panel{background:var(--nt-paper);border-left:1px solid var(--nt-line);min-width:0;max-height:720px;overflow:auto}
.nt-panel-placeholder{color:var(--nt-muted);text-align:center;font-size:12px;line-height:1.8;padding:100px 28px}
.nt-panel-loading{padding:30px;color:var(--nt-muted);font-size:12px}
.nt-panel-head{padding:20px 16px 16px;display:flex;align-items:center;gap:11px}
.nt-panel-head img{width:35px;height:35px}.nt-panel-head div{min-width:0;flex:1}.nt-panel-head h2{font-size:14px;overflow-wrap:anywhere;margin-bottom:4px}.nt-panel-head span{font-size:10px;color:var(--nt-muted)}
.nt-icon-button{background:none;border:0;color:var(--nt-muted);font-size:23px;padding:1px 6px;line-height:1.1}
.nt-panel-actions{padding:0 16px 13px}.nt-panel-actions:empty{display:none}
.nt-tabs{display:flex;border-top:1px solid var(--nt-line);border-bottom:1px solid var(--nt-line);padding:0 10px;gap:2px}
.nt-tabs button{border:0;background:none;padding:12px 8px;font-size:10px;color:var(--nt-muted);border-bottom:2px solid transparent}
.nt-tabs button.active{color:var(--nt-accent);border-bottom-color:var(--nt-accent)}
.nt-panel-body{padding:16px}.nt-panel-body h3{font-size:12px;font-weight:600;margin-bottom:12px}
.nt-properties{margin:0;display:grid;gap:12px}.nt-properties div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:9px}
.nt-properties dt{font-size:10px;color:var(--nt-muted);line-height:1.5}.nt-properties dd{font-size:11px;color:var(--nt-ink);margin:0;overflow-wrap:anywhere;line-height:1.5}
.nt-section-label{margin-top:25px;padding-top:17px;border-top:1px solid var(--nt-line)}
.nt-help{font-size:10px;color:var(--nt-muted);line-height:1.8;margin:10px 0 15px;overflow-wrap:anywhere}
.nt-reason{background:#cf963c13;border:1px solid #c39b4d44;color:#b1883a;font-size:11px;line-height:1.7;border-radius:8px;padding:11px;margin-bottom:17px}
.nt-path{margin:15px 0 10px;padding-left:4px}.nt-hop{position:relative;padding:0 0 19px 19px;border-left:1px solid #39a89755;margin-left:3px}.nt-hop:last-child{border:0;padding-bottom:0}
.nt-hop-dot{position:absolute;left:-4px;top:4px;background:#35aa92;border:2px solid var(--nt-paper);width:8px;height:8px;border-radius:50%}
.nt-hop button,.nt-port-table button{background:none;border:0;padding:0;text-align:left;color:var(--nt-accent);font-size:11px;overflow-wrap:anywhere}.nt-hop small{display:block;font-size:9px;color:var(--nt-muted);line-height:1.7;margin-top:3px}
.nt-port-table{overflow:auto;max-height:480px;border:1px solid var(--nt-line);border-radius:8px}.nt-port-table table{width:100%;border-collapse:collapse;white-space:nowrap}
.nt-port-table th{background:var(--nt-bg);position:sticky;top:0;font-weight:600;color:var(--nt-muted);font-size:9px;padding:10px 9px;border-bottom:1px solid var(--nt-line)}
.nt-port-table td{padding:9px;border-bottom:1px solid var(--nt-line);font-size:10px;color:var(--nt-ink)}.nt-port-table tbody tr:last-child td{border-bottom:0}
.nt-port-status.up{color:#26aa7b}.nt-port-status.down{color:#d56869}
.nt-neighbor{padding:12px 0;border-bottom:1px solid var(--nt-line)}.nt-neighbor b{display:block;font-size:11px;font-weight:600;overflow-wrap:anywhere}.nt-neighbor small{display:block;margin-top:4px;font-size:10px;color:var(--nt-muted)}
.nt-footer{display:flex;justify-content:space-between;gap:12px;padding:13px 20px;font-size:10px;color:var(--nt-muted);border-top:1px solid var(--nt-line)}
.nt-warnings{padding:12px 20px;border-top:1px solid var(--nt-line);font-size:11px;color:var(--nt-muted);max-height:220px;overflow:auto}.nt-warnings summary{cursor:pointer;color:#c09240}.nt-warnings p{font-size:10px;padding-top:5px}
.nt-root:fullscreen{border:0;border-radius:0;height:100vh;display:flex;flex-direction:column;background:var(--nt-paper)}.nt-root:fullscreen .nt-workspace{flex:1;min-height:0}.nt-root:fullscreen .nt-panel{max-height:none}.nt-root:fullscreen .nt-map{min-height:0}.nt-root:fullscreen .nt-canvas{min-height:0}
.nt-settings{position:absolute;inset:0;background:var(--nt-paper);z-index:30;display:flex;flex-direction:column;color:var(--nt-ink)}
.nt-settings>header{display:flex;align-items:center;justify-content:space-between;padding:22px 25px;border-bottom:1px solid var(--nt-line)}.nt-settings>header h2{font-size:18px}.nt-settings>header p{font-size:11px;color:var(--nt-muted);margin-top:7px}
.nt-settings-body{padding:22px 25px;overflow:auto;flex:1}.nt-settings-body h3{font-size:14px;margin:20px 0 8px}
.nt-settings>footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 25px;border-top:1px solid var(--nt-line)}
.nt-check{display:flex;align-items:flex-start;gap:10px;margin-bottom:17px;font-size:12px}.nt-check input{accent-color:#368cc7;flex-shrink:0;margin-top:2px}.nt-check small{display:block;font-size:10px;color:var(--nt-muted);margin-top:5px;line-height:1.6}
.nt-setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 20px}.nt-setting-grid label{display:grid;gap:7px;font-size:10px;color:var(--nt-muted)}
.nt-setting-grid input,.nt-setting-grid select{width:100%;padding:9px 11px;border:1px solid var(--nt-line);border-radius:7px;background:var(--nt-field);color:var(--nt-ink);font-size:12px}
.nt-target{border:1px solid var(--nt-line);border-radius:12px;padding:16px;margin:14px 0}.nt-target-title{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--nt-ink)}.nt-target-title input{accent-color:#368cc7}
.nt-settings-error,.nt-error{font-size:12px;line-height:1.7;color:#cb7372;padding:12px 0}
.nt-root [hidden]{display:none!important}
@media(min-width:1650px){.nt-workspace{grid-template-columns:minmax(0,1fr) 370px;min-height:700px}.nt-panel{max-height:800px}}
@media(max-width:1150px){.nt-workspace{grid-template-columns:minmax(0,1fr) 260px}.nt-header{align-items:flex-start;flex-direction:column;gap:12px}.nt-toolbar{flex-wrap:wrap}.nt-search{max-width:none}.nt-stage-label{font-size:8px}.nt-legend{max-width:210px}.nt-properties div{grid-template-columns:80px minmax(0,1fr)}}
@media(max-width:780px){.nt-workspace{grid-template-columns:1fr;min-height:550px}.nt-map{min-height:550px}.nt-panel{display:none;border-left:0;border-top:1px solid var(--nt-line);max-height:550px}.nt-root.has-selection .nt-panel{display:block}.nt-header{padding:18px}.nt-header-actions{gap:6px}.nt-metrics{gap:15px;padding:12px 18px}.nt-toolbar{padding:10px}.nt-search{flex-basis:100%}.nt-toolbar select{flex:1;width:30%}.nt-view-count{display:none}.nt-footer{flex-direction:column;gap:5px}.nt-root:fullscreen .nt-workspace{overflow:auto}.nt-setting-grid{grid-template-columns:1fr}.nt-legend{right:10px;max-width:150px}.nt-map-tools{gap:4px;max-width:calc(100% - 30px)}}
@media(prefers-reduced-motion:reduce){.nt-root *{transition:none!important}}

.nt-legend i.logical{border-top:2px dotted #a58bc5}

/* The G6 minimap keeps its initial inline background after a theme change. */
.nt-root .g6-minimap{background:var(--nt-paper)!important;border-color:var(--nt-line)!important;border-radius:10px;overflow:hidden}
