/* FINAL170 — Network Topolojisi */
.nt-root{--nt-bg:#07101c;--nt-panel:#0c1828;--nt-line:#29435f;--nt-text:#dcecff;--nt-muted:#7f9ab8;position:relative;min-height:720px;overflow:hidden}
.nt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;margin-bottom:8px;border-color:rgba(78,127,176,.3);background:linear-gradient(145deg,rgba(13,29,48,.98),rgba(8,19,33,.98))}
.nt-toolbar-main,.nt-toolbar-actions{display:flex;align-items:center;gap:8px;min-width:0}.nt-toolbar-main{flex:1}.nt-toolbar-main .select{width:auto;min-width:142px;max-width:190px;height:38px}.nt-search{position:relative;flex:1;max-width:390px}.nt-search span{position:absolute;left:12px;top:7px;font-size:20px;color:#7894b2}.nt-search input{padding-left:37px;height:38px}
.nt-toolbar-actions{flex-wrap:wrap;justify-content:flex-end}.nt-icon-btn{width:36px;height:36px;border:1px solid rgba(111,157,201,.32);border-radius:9px;background:#0d1d30;color:#dbeeff;font-size:19px;display:inline-grid;place-items:center;cursor:pointer;transition:.18s}.nt-icon-btn:hover,.nt-icon-btn:focus{border-color:#35a7ff;background:#12304e;transform:translateY(-1px)}.nt-toolbar-actions .active{background:#1d5c93;border-color:#42b2ff;color:#fff}.nt-toolbar-actions #ntZoomValue{width:46px;text-align:center;color:#91abc7;font-size:11px;font-weight:800}.nt-icon-btn.spinning{animation:nt-spin .8s linear infinite}@keyframes nt-spin{to{transform:rotate(360deg)}}
.nt-summary{min-height:30px;display:flex;align-items:center;gap:18px;padding:3px 12px 9px;color:#8eaac7;font-size:11px;font-weight:700;letter-spacing:.04em}.nt-summary span{display:flex;align-items:center;gap:5px}.nt-summary span>i{width:8px;height:8px;border-radius:50%;background:#8395a8}.nt-summary i.up{background:#28d887;box-shadow:0 0 10px rgba(40,216,135,.6)}.nt-summary i.down{background:#ff5d70;box-shadow:0 0 10px rgba(255,93,112,.55)}.nt-summary i.stale{background:#ffb24a}.nt-summary b{color:#ddecfc}.nt-summary small{margin-left:auto;color:#66829e}
.nt-workspace{position:relative;height:clamp(610px,72vh,920px);padding:0;overflow:hidden;border:1px solid rgba(75,121,166,.34);background:#07111f}.nt-canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none;user-select:none;background:radial-gradient(circle at 52% 45%,rgba(25,73,111,.18),transparent 48%),linear-gradient(180deg,#081421,#060e18)}.nt-canvas.panning{cursor:grabbing}
.nt-grid-layer path{fill:url(#none);stroke:rgba(78,118,153,.14);stroke-width:1}.nt-grid-layer{pointer-events:none}.nt-canvas{background-image:linear-gradient(rgba(54,94,128,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(54,94,128,.09) 1px,transparent 1px);background-size:24px 24px}
.nt-node{cursor:pointer;outline:none}.edit-mode .nt-node{cursor:move}.nt-node-card{fill:#0d1d30;stroke:#2d4c69;stroke-width:1.4;transition:.18s}.nt-node:hover .nt-node-card,.nt-node:focus .nt-node-card{stroke:#54b7fa;fill:#102741}.nt-node.dragging{opacity:.88}.nt-node.dragging .nt-node-card{stroke:#fff;stroke-width:2}.nt-node-bar{fill:#7c91a7}.nt-node-icon-bg{fill:#152f49;stroke:#315a7c;stroke-width:1}.nt-node-icon{fill:none;stroke:#a9cbea;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.nt-node-title{fill:#f2f8ff;font-size:12px;font-weight:800}.nt-node-kind{fill:#7592ad;font-size:8px;font-weight:700;text-transform:uppercase}.nt-node-kpi{fill:#c9daec;font-size:8.7px;font-weight:700}.nt-node-sensor{fill:#7894ae;font-size:7.8px}.nt-node-pulse{fill:#8395a8}.nt-lock{display:none;fill:none;stroke:#a8bdd0;stroke-width:1.5}.nt-node.locked .nt-lock{display:block}
.nt-node.status-up .nt-node-bar,.nt-node.status-up .nt-node-pulse{fill:#28d887}.nt-node.status-up .nt-node-pulse{animation:nt-pulse 1.7s infinite}.nt-node.status-down .nt-node-bar,.nt-node.status-down .nt-node-pulse{fill:#ff5d70}.nt-node.status-degraded .nt-node-bar,.nt-node.status-degraded .nt-node-pulse,.nt-node.status-stale .nt-node-bar,.nt-node.status-stale .nt-node-pulse{fill:#ffb24a}.nt-node.status-manual .nt-node-bar{fill:#55a8e5}.nt-node.status-unknown .nt-node-bar{fill:#8294a8}@keyframes nt-pulse{50%{r:8;opacity:.2}}
.nt-node-alarm{display:none}.nt-node-alarm.active{display:block}.nt-node-alarm path{fill:#ffb24a;stroke:#5d3710;stroke-width:1}.nt-node-alarm text{fill:#241400;font-size:6px;font-weight:900}
.nt-link{cursor:pointer}.nt-link-hit{stroke:transparent;stroke-width:26}.nt-link-line{stroke:#68819a;stroke-width:3.2;fill:none;stroke-linecap:round;transition:.2s}.nt-link:hover .nt-link-line{stroke-width:5;filter:drop-shadow(0 0 5px rgba(75,176,255,.6))}.nt-link.status-up .nt-link-line{stroke:#28d887;stroke-dasharray:8 8;animation:nt-flow 1.1s linear infinite}.nt-link.status-down .nt-link-line{stroke:#ff5d70;stroke-dasharray:5 7}.nt-link.status-degraded .nt-link-line,.nt-link.status-stale .nt-link-line{stroke:#ffb24a;stroke-dasharray:9 6}.nt-link.status-unmonitored .nt-link-line{stroke:#718296;stroke-dasharray:3 8}.nt-link.type-fiber .nt-link-line{stroke-width:4.2}.nt-link.type-rl .nt-link-line,.nt-link.type-wireless .nt-link-line{stroke-dasharray:4 10}.nt-link.type-vpn .nt-link-line,.nt-link.type-vxlan .nt-link-line,.nt-link.type-eoip .nt-link-line{stroke:#a789ff;stroke-dasharray:12 7}@keyframes nt-flow{to{stroke-dashoffset:-32}}
.nt-link-label-wrap rect{fill:rgba(7,17,31,.94);stroke:rgba(74,118,157,.45);stroke-width:1}.nt-link-type-icon{fill:none;stroke:#68bdf6;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.nt-link.type-fiber .nt-link-type-icon{stroke:#5ed9ff}.nt-link.type-rl .nt-link-type-icon,.nt-link.type-wireless .nt-link-type-icon{stroke:#ffbf69}.nt-link.type-vpn .nt-link-type-icon,.nt-link.type-vxlan .nt-link-type-icon,.nt-link.type-eoip .nt-link-type-icon{stroke:#b79bff}.nt-link-title{fill:#dcecff;font-size:8.5px;font-weight:800}.nt-link-primary{fill:#a9c9e5;font-size:8px;font-weight:700}.nt-link-secondary{fill:#718ca7;font-size:7px}.nt-link:hover .nt-link-label-wrap rect{stroke:#44acf2;fill:#0b2035}
.nt-minimap{position:absolute;right:16px;bottom:16px;width:240px;height:135px;border:1px solid rgba(92,139,181,.45);border-radius:10px;background:rgba(5,13,23,.9);box-shadow:0 12px 35px rgba(0,0,0,.38);cursor:pointer}.nt-mini-bg{fill:#06111e}.nt-minimap line{stroke:#4f6b84;stroke-width:.7}.nt-minimap line.status-up{stroke:#28d887}.nt-minimap line.status-down{stroke:#ff5d70}.nt-minimap circle{fill:#718ba4}.nt-minimap circle.status-up{fill:#28d887}.nt-minimap circle.status-down{fill:#ff5d70}.nt-minimap circle.status-stale{fill:#ffb24a}.nt-mini-viewport{fill:rgba(58,167,240,.08);stroke:#35a7ff;stroke-width:1.3}
.nt-mode-hint{position:absolute;left:15px;bottom:14px;padding:7px 10px;border:1px solid rgba(82,125,165,.32);border-radius:7px;background:rgba(6,16,28,.88);color:#6685a3;font-size:9px;font-weight:800;letter-spacing:.1em}.edit-mode .nt-mode-hint{color:#ffbc63;border-color:rgba(255,178,74,.35)}.nt-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none;color:#aac0d7}.nt-empty span{display:block;color:#708ba5;font-size:12px;margin-top:6px}
.nt-tooltip{position:fixed;z-index:10020;width:min(430px,calc(100vw - 24px));
  /* FINAL191: Yükseklik sınırı. Bağlantı tooltip'i içerik zengini olduğu için
     pencereden uzun olabiliyor; o durumda konumlandırma onu tepeye kenetliyor
     ve imleçten yüzlerce piksel uzağa düşüyordu. Sınır, "hiçbir yere sığmıyor"
     durumunu ortadan kaldırır. */
  /* FINAL200: Yatay taşma. Operatör tooltip'te "172.16.17.133 · MikroTik RB"
     gibi uzun bir satırın kesildiğini bildirdi. Konumlandırma doğruydu
     (FINAL191) ama İÇERİK kutuyu yatayda aşıyordu: kırılamayan uzun
     dizgeler (IP + model, seri numarası, arayüz adları) sarmıyordu.
     overflow-wrap:anywhere kırılma noktası olmayan dizgeleri de sarar. */
  max-height:min(62vh,560px);overflow:hidden;pointer-events:none;
  box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;border:1px solid rgba(85,142,192,.5);border-radius:14px;background:rgba(7,17,30,.98);box-shadow:0 18px 55px rgba(0,0,0,.55);padding:13px;color:#dcecff}.nt-tip-head{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid rgba(89,127,162,.2);padding-bottom:10px;margin-bottom:10px}.nt-tip-head>div{display:grid;gap:2px;flex:1}.nt-tip-head small{color:#58b9fa;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.nt-tip-head b{font-size:15px}.nt-tip-head span{color:#7894ae;font-size:10px}.nt-tip-head>i,.nt-link-live-head>span:first-child,.nt-detail-head>i{font-style:normal;border:1px solid #536b82;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:900}.nt-tip-head>i.status-up,.nt-link-live-head>.status-up,.nt-detail-head>i.status-up{color:#4ae5a0;border-color:#288765}.nt-tip-head>i.status-down,.nt-link-live-head>.status-down,.nt-detail-head>i.status-down{color:#ff8794;border-color:#9e4050}.nt-tip-head>i.status-stale,.nt-tip-head>i.status-degraded,.nt-detail-head>i.status-stale{color:#ffc36f;border-color:#9c6c2e}.nt-tip-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.nt-tip-grid>span{display:grid;gap:2px;padding:8px;border-radius:8px;background:#0c1d2e}.nt-tip-grid small{font-size:8px;color:#6e8ba7;text-transform:uppercase}.nt-tip-grid b{font-size:10px;color:#d5e6f6}.nt-tip-foot{display:flex;justify-content:space-between;gap:10px;margin-top:10px;color:#718ca7;font-size:9px}.nt-unsupported{font-size:7px;color:#677f97;font-weight:400}
.nt-inventory{position:absolute;z-index:50;right:-440px;top:0;width:min(420px,95vw);height:100%;display:flex;flex-direction:column;background:#091523;border-left:1px solid rgba(85,137,182,.38);box-shadow:-22px 0 50px rgba(0,0,0,.42);transition:right .25s ease}.nt-inventory.open{right:0}.nt-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid rgba(88,129,164,.2)}.nt-drawer-head small,.nt-section-head small,.nt-detail-head small{font-size:9px;color:#4baef1;font-weight:900;letter-spacing:.13em}.nt-drawer-head h2{font-size:18px;margin:3px 0 0}.nt-inventory-search{padding:13px 16px;display:grid;gap:8px;border-bottom:1px solid rgba(88,129,164,.18)}.nt-inventory-search label{color:#819db8;font-size:11px}.nt-palette{padding:13px 16px;border-bottom:1px solid rgba(88,129,164,.18)}.nt-palette h3{font-size:11px;margin:0 0 9px;color:#8eaac6}.nt-palette>div{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.nt-palette button{display:grid;place-items:center;gap:4px;border:1px solid rgba(82,127,168,.3);border-radius:8px;background:#0c1d2e;color:#98b1ca;padding:7px 3px;cursor:pointer;font-size:8px}.nt-palette button:hover{border-color:#35a7ff;color:#dceeff}.nt-palette svg,.nt-inventory-icon svg,.nt-detail-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.nt-inventory-rows{flex:1;overflow:auto;padding:10px}.nt-inventory-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:10px;margin-bottom:7px;border:1px solid rgba(76,119,157,.24);border-radius:10px;background:#0b1b2c}.nt-inventory-row[draggable=true]{cursor:grab}.nt-inventory-row:hover{border-color:rgba(53,167,255,.6)}.nt-inventory-row.placed{opacity:.56}.nt-inventory-row>div:nth-child(2){display:grid;gap:2px;min-width:0}.nt-inventory-row b,.nt-inventory-row span,.nt-inventory-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nt-inventory-row b{font-size:11px}.nt-inventory-row span{font-size:9px;color:#8ca7c0}.nt-inventory-row small{font-size:8px;color:#607d99}.nt-inventory-row em{font-style:normal;font-size:8px;color:#4cd79c}.nt-inventory-icon{position:relative;width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#132a40;color:#9cc8e9}.nt-inventory-icon i{position:absolute;right:2px;bottom:2px;width:7px;height:7px;border-radius:50%;background:#7b8da0}.nt-inventory-icon i.status-up{background:#28d887}.nt-inventory-icon i.status-down{background:#ff5d70}.nt-loading{padding:25px;text-align:center;color:#7894ae}
.nt-inventory-search>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.nt-inventory-search .select{width:100%;min-width:0}
.nt-modal{min-width:min(850px,82vw)}.nt-link-live-head{display:flex;align-items:center;gap:14px;padding:12px;margin-bottom:12px;border:1px solid rgba(76,128,171,.26);border-radius:10px;background:#0b1b2b}.nt-link-live-head b{font-size:14px}.nt-link-live-head>span:last-child{color:#84a1bd;font-size:11px}.nt-link-form{grid-template-columns:repeat(2,minmax(0,1fr))}.nt-link-form .span-2,.nt-form-actions.span-2{grid-column:1/-1}.nt-media-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px;border:1px solid rgba(77,124,166,.25);border-radius:10px;background:#0a1929}.nt-media-fields h3{grid-column:1/-1;margin:0;font-size:11px;color:#8eb0ce}.nt-media-fields label{display:flex;align-items:center;color:#9bb3ca;font-size:10px}.nt-media-live{display:grid;gap:4px;padding:10px 12px;margin-bottom:12px;border-left:3px solid #35a7ff;border-radius:7px;background:#0b2034}.nt-media-live b{font-size:11px}.nt-media-live span{color:#9db7cf;font-size:10px}.nt-form-actions{display:flex;gap:9px}.nt-read-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.nt-read-grid span{display:grid;padding:10px;border-radius:8px;background:#0c1d2e}.nt-read-grid small{color:#708da8;font-size:8px;text-transform:uppercase}.nt-read-grid b{font-size:11px;margin-top:3px}
.modal-card:has(.nt-detail),.modal-card:has(.nt-modal){width:min(1220px,96vw);max-width:1220px}.nt-detail{min-width:0}.nt-detail-head{display:flex;align-items:center;gap:13px;padding-bottom:15px;border-bottom:1px solid rgba(82,125,163,.25)}.nt-detail-head>div:nth-child(2){flex:1;display:grid;gap:2px}.nt-detail-head h2{margin:0;font-size:22px}.nt-detail-head span{color:#7f9bb7;font-size:11px}.nt-detail-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:13px;background:#112c45;color:#a9d3f1}.nt-detail-icon svg{width:34px;height:34px}.nt-periods{display:flex;gap:5px;margin:13px 0}.nt-periods button{border:1px solid rgba(76,124,165,.3);border-radius:7px;background:#0c1c2d;color:#829eba;padding:6px 11px;cursor:pointer;font-size:10px;font-weight:800}.nt-periods button.active{background:#17649a;border-color:#35a7ff;color:#fff}.nt-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.nt-kpi-grid>span{display:grid;gap:3px;padding:11px;border:1px solid rgba(76,122,162,.22);border-radius:9px;background:#0a1929}.nt-kpi-grid small{font-size:8px;color:#708da8;text-transform:uppercase}.nt-kpi-grid b{font-size:14px;color:#e4f1fd}.nt-kpi-grid em{font-style:normal;color:#7692ac;font-size:8px}.nt-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.nt-chart-grid>div{height:250px;padding:11px;border:1px solid rgba(76,122,162,.22);border-radius:10px;background:#091726}.nt-chart-grid h3{font-size:11px;margin:0 0 7px}.nt-chart-grid canvas{height:205px!important}.nt-detail-section{margin-top:14px}.nt-section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:8px}.nt-section-head h3{margin:2px 0 0;font-size:15px}.nt-section-head>span{color:#7e9ab5;font-size:10px}.nt-detail-section table td small{display:block;color:#718ca7;font-size:8px}.nt-table-status{display:inline-block;padding:3px 6px;border-radius:999px;border:1px solid #536a80;font-size:8px;font-weight:800}.nt-table-status.status-up{color:#4de1a0;border-color:#357e65}.nt-table-status.status-down{color:#ff8290;border-color:#8c3d4a}.nt-event-list{display:grid;gap:6px;max-height:300px;overflow:auto}.nt-event-list article{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:start;padding:9px;border-radius:8px;background:#0a1929}.nt-event-list article>i{width:8px;height:8px;border-radius:50%;margin-top:4px;background:#8194a8}.nt-event-list i.up{background:#28d887}.nt-event-list i.down{background:#ff5d70}.nt-event-list i.warning{background:#ffb24a}.nt-event-list article>div{display:grid;gap:2px}.nt-event-list b{font-size:10px}.nt-event-list span,.nt-event-list time{font-size:8px;color:#718ca7}.nt-detail-loading{min-height:220px;display:grid;place-content:center;gap:13px;text-align:center;color:#8eabc6}.nt-detail-loading>span{width:35px;height:35px;margin:auto;border:3px solid #1d3951;border-top-color:#35a7ff;border-radius:50%;animation:nt-spin .8s linear infinite}
.nt-sensor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.nt-sensor-grid>span{display:grid;gap:3px;padding:9px;border:1px solid rgba(76,122,162,.2);border-radius:8px;background:#0a1929}.nt-sensor-grid small{overflow:hidden;color:#718eaa;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.nt-sensor-grid b{font-size:11px;color:#d9eafa}.nt-sensor-grid em{overflow:hidden;color:#5f7b96;font-size:7px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.nt-summary .root-impact{color:#ff8d99}.nt-summary .impact{color:#ffbf69}.nt-summary .root-impact b{color:#ff6678}.nt-summary .impact b{color:#ffc878}
.nt-node.root-outage .nt-node-card{stroke:#ff5d70;stroke-width:2.5;filter:drop-shadow(0 0 10px rgba(255,93,112,.42))}.nt-node.root-outage .nt-node-icon-bg{stroke:#ff5d70}.nt-node.upstream-impacted .nt-node-card{stroke:#ffb24a;stroke-width:2;stroke-dasharray:5 3}.nt-node.upstream-impacted .nt-node-kind{fill:#ffc46f}.nt-downstream-badge rect{fill:#173653;stroke:#4c89b6;stroke-width:1}.nt-downstream-badge text{fill:#bde0fa;font-size:7px;font-weight:900}.nt-node.root-outage .nt-downstream-badge rect{fill:#51212a;stroke:#ff6678}
.nt-link.primary-path .nt-link-line{stroke-width:4.6}.nt-link.primary-path .nt-link-label-wrap rect{stroke:#3baaf4;stroke-width:1.5}.nt-link.primary-path .nt-link-title{fill:#75c9ff}.nt-link.primary-path:hover .nt-link-line{stroke-width:6}
.nt-impact-alert{display:grid;gap:3px;padding:9px 11px;margin:8px 0;border-left:3px solid #35a7ff;border-radius:7px;background:rgba(24,92,139,.2)}.nt-impact-alert b{font-size:10px;color:#cceaff}.nt-impact-alert span{font-size:9px;color:#91aec8}.nt-impact-alert.root{border-color:#ff5d70;background:rgba(132,35,51,.22)}.nt-impact-alert.root b{color:#ff95a0}.nt-impact-alert.upstream,.nt-impact-alert.warning{border-color:#ffb24a;background:rgba(137,86,25,.2)}.nt-impact-alert.upstream b,.nt-impact-alert.warning b{color:#ffc77a}.nt-impact-alert.path{border-color:#35a7ff}
.nt-path-line{display:grid;gap:3px;margin-top:9px;padding:8px 9px;border:1px solid rgba(70,126,173,.25);border-radius:7px;background:#091827}.nt-path-line small{font-size:7px;color:#4eb4f7;font-weight:900;letter-spacing:.1em}.nt-path-line b{font-size:9px;color:#bcd6eb;overflow-wrap:anywhere}
.nt-topology-section{padding:12px;border:1px solid rgba(65,144,201,.3);border-radius:11px;background:linear-gradient(145deg,rgba(12,35,55,.74),rgba(8,23,39,.78))}.nt-path-chain{display:flex;align-items:center;gap:6px;overflow:auto;padding:8px 2px 11px}.nt-path-chain>i{color:#527a9d;font-style:normal}.nt-path-chain>span{min-width:130px;display:grid;gap:2px;padding:8px 10px;border:1px solid #3e5971;border-left:3px solid #8194a8;border-radius:8px;background:#091827}.nt-path-chain>span.status-up{border-left-color:#28d887}.nt-path-chain>span.status-down{border-left-color:#ff5d70}.nt-path-chain>span.status-degraded,.nt-path-chain>span.status-stale{border-left-color:#ffb24a}.nt-path-chain b{font-size:10px}.nt-path-chain small{font-size:8px;color:#708ca7}.nt-impact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.nt-impact-grid>span{display:grid;gap:3px;padding:9px;border-radius:8px;background:#091827}.nt-impact-grid small{font-size:8px;color:#6f8da8;text-transform:uppercase}.nt-impact-grid b{font-size:12px;color:#d9ecfc}.nt-impact-grid em{font-size:8px;font-style:normal;color:#67849f}.nt-path-list{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}.nt-path-list>b{font-size:9px;color:#7e9bb7;margin-right:4px}.nt-path-list button{display:flex;align-items:center;gap:5px;border:1px solid rgba(75,126,168,.34);border-radius:999px;background:#0b2033;color:#b9d3e9;padding:5px 8px;cursor:pointer;font-size:9px}.nt-path-list button:hover{border-color:#35a7ff}.nt-path-list i,.nt-downstream-list i{width:7px;height:7px;border-radius:50%;background:#8294a8}.nt-path-list i.status-up,.nt-downstream-list i.status-up{background:#28d887}.nt-path-list i.status-down,.nt-downstream-list i.status-down{background:#ff5d70}.nt-path-list small{color:#68849e}.nt-downstream-list{margin-top:9px;color:#7897b4;font-size:9px}.nt-downstream-list summary{cursor:pointer}.nt-downstream-list>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:7px}.nt-downstream-list span{display:flex;align-items:center;gap:5px;padding:6px;border-radius:6px;background:#091827;color:#abc7df}.nt-downstream-list small{margin-left:auto;color:#67839d}
.nt-physical-help{padding:10px 12px;border-left:3px solid #35a7ff;border-radius:7px;background:#0b2034;color:#9bb8d1;font-size:11px;line-height:1.5}.nt-physical-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:13px;color:#7996b1;font-size:9px}.nt-physical-legend span{display:flex;align-items:center;gap:5px}.nt-physical-legend i{width:12px;height:3px;border-radius:2px;background:#35a7ff}.nt-physical-legend i.indirect{background:#73869a}.nt-physical-legend i.impact{background:#ffb24a}
.nt-root:fullscreen{background:#07111f;padding:12px}.nt-root:fullscreen .nt-workspace{height:calc(100vh - 115px)}
body.light-theme .nt-root{--nt-bg:#eef5fb;--nt-panel:#fff;--nt-text:#17314c;--nt-muted:#607d98}body.light-theme .nt-toolbar{background:#fff}body.light-theme .nt-workspace{background:#eaf2f8}body.light-theme .nt-canvas{background-color:#eaf2f8;background-image:linear-gradient(rgba(48,91,127,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(48,91,127,.1) 1px,transparent 1px);background-size:24px 24px}body.light-theme .nt-node-card{fill:#fff;stroke:#a9bfd2}body.light-theme .nt-node:hover .nt-node-card{fill:#f3f9ff}body.light-theme .nt-node-title{fill:#17314c}body.light-theme .nt-node-kind,body.light-theme .nt-node-sensor{fill:#637f98}body.light-theme .nt-node-kpi{fill:#314f6c}body.light-theme .nt-link-label-wrap rect{fill:rgba(255,255,255,.96);stroke:#a9bfd2}body.light-theme .nt-link-title{fill:#203b56}body.light-theme .nt-link-primary{fill:#385a78}body.light-theme .nt-link-secondary{fill:#6d879f}
@media(max-width:1150px){.nt-toolbar{align-items:flex-start;flex-direction:column}.nt-toolbar-actions{width:100%;justify-content:flex-start}.nt-toolbar-main{width:100%;flex-wrap:wrap}.nt-search{max-width:none;min-width:260px}.nt-kpi-grid,.nt-impact-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.nt-toolbar-main .select{min-width:calc(50% - 5px);max-width:none;flex:1}.nt-search{min-width:100%}.nt-workspace{height:68vh;min-height:520px}.nt-minimap{width:160px;height:90px}.nt-summary{overflow:auto;white-space:nowrap}.nt-link-label-wrap{display:none}.nt-node-card{width:150px}.nt-palette>div{grid-template-columns:repeat(3,1fr)}.nt-link-form,.nt-chart-grid{grid-template-columns:1fr}.nt-kpi-grid,.nt-sensor-grid,.nt-impact-grid{grid-template-columns:repeat(2,1fr)}.nt-downstream-list>div{grid-template-columns:1fr}.nt-media-fields{grid-template-columns:repeat(2,1fr)}.nt-read-grid{grid-template-columns:repeat(2,1fr)}.nt-modal{min-width:0}}
@media(prefers-reduced-motion:reduce){.nt-node-pulse,.nt-link-line,.nt-icon-btn.spinning{animation:none!important}.nt-inventory{transition:none}}

/* FINAL193 — Port trafik geçmişi grafiği (24 saat)
   Ortalama alan olarak, tepe ince çizgi olarak. İkisi birlikte: yalnız
   ortalamaya bakan operatör, ortalaması düşük ama içinde doyma yaşamış
   bir portu kaçırır. */
.ph-chart{width:100%;height:170px;display:block;margin:6px 0 10px;
  border:1px solid var(--line);border-radius:10px;background:rgba(9,17,29,.6)}
.ph-rx-area{fill:rgba(85,142,192,.22);stroke:rgba(85,142,192,.85);stroke-width:1.5}
.ph-rx-peak{stroke:rgba(85,142,192,.55);stroke-width:1;stroke-dasharray:3 3}
.ph-tx-avg{stroke:rgba(240,180,41,.9);stroke-width:1.5}
.ph-tx-peak{stroke:rgba(240,180,41,.5);stroke-width:1;stroke-dasharray:3 3}
.ph-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:11.5px;color:var(--muted)}
.ph-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.ph-legend .ph-k-rx{background:rgba(85,142,192,.85)}
.ph-legend .ph-k-rxp{background:rgba(85,142,192,.55)}
.ph-legend .ph-k-tx{background:rgba(240,180,41,.9)}
.ph-legend .ph-k-txp{background:rgba(240,180,41,.5)}
.ph-legend b{margin-left:auto;color:var(--text)}
.ph-stats{display:flex;flex-wrap:wrap;gap:16px;margin-top:10px;padding-top:10px;
  border-top:1px solid var(--line);font-size:11.5px;color:var(--muted)}
.ph-stats b{color:var(--text)}

/* FINAL200 — Grafikte imleçle değer okuma
   SVG preserveAspectRatio="none" ile esnetiliyor; fare konumu viewBox'a
   elemanın GERÇEK genişliğinden çevriliyor (kod tarafında). */
.ph-cursor{stroke:rgba(220,236,255,.45);stroke-width:1;stroke-dasharray:2 3;pointer-events:none}
.ph-chart{cursor:crosshair}
.ph-hover{display:flex;flex-wrap:wrap;gap:14px;align-items:baseline;min-height:22px;
  margin:-4px 0 8px;font-size:12px;color:var(--text)}
.ph-hover b{font-family:var(--mono);font-size:12.5px}
.ph-hover small{color:var(--muted-2);margin-left:5px;font-size:10.5px}
.ph-hover .ph-h-rx{color:rgba(120,175,225,1)}
.ph-hover .ph-h-tx{color:rgba(240,190,70,1)}
