



.hl-stage{position:relative;width:100%;max-width:1040px;margin:0 auto}
.hl-net{display:block;width:100%;height:auto;font-family:var(--font-mono)}

 
.hz{font-size:10.5px;letter-spacing:2.4px;fill:rgba(143,199,138,.36)}
.hl-elb{font-size:9.5px;letter-spacing:1.6px;fill:rgba(143,199,138,.46)}

 
.he{fill:none;stroke:rgba(57,255,20,.24);stroke-width:1.3;stroke-linecap:square}
.he.k-trunk{stroke:rgba(57,255,20,.42);stroke-width:1.8}
.he.k-standby{stroke:rgba(255,157,60,.32);stroke-dasharray:4 5}
.he.k-wireless{stroke:rgba(143,199,138,.3);stroke-dasharray:1.5 4}
.he.k-planned{stroke:rgba(143,199,138,.16);stroke-dasharray:4 5}
.he.k-logical{stroke:rgba(57,255,20,.5);stroke-width:1.5;stroke-dasharray:3 3;animation:hlDash 2.6s linear infinite}
@keyframes hlDash{to{stroke-dashoffset:-12}}

 
.hn{cursor:pointer}
.hn:focus{outline:none}
.hn .hb{fill:rgba(57,255,20,.035);stroke:rgba(57,255,20,.2);stroke-width:1.1;transition:stroke .16s ease,fill .16s ease}
.hn.s-lg .hb{fill:rgba(57,255,20,.07);stroke:rgba(57,255,20,.44)}
.hn.st-standby .hb{fill:rgba(255,157,60,.03);stroke:rgba(255,157,60,.34);stroke-dasharray:5 4}
.hn.st-planned .hb{fill:rgba(57,255,20,.012);stroke:rgba(143,199,138,.16);stroke-dasharray:5 5}
.hn .hd{fill:#39ff14}
.hn.st-standby .hd{fill:#ff9d3c}
.hn .t-name{font-size:15px;letter-spacing:.6px;fill:#d7f7cd}
.hn.s-lg .t-name{font-size:18px}
.hn.s-sm .t-name,.hn.s-wl .t-name{font-size:12.5px;letter-spacing:.8px}
.hn .t-role{font-size:10px;letter-spacing:1.9px;fill:#39ff14}
.hn.s-lg .t-role{font-size:11px}
.hn.s-sm .t-role,.hn.s-wl .t-role{font-size:9px;letter-spacing:1.1px;fill:rgba(143,199,138,.66)}
.hn.st-standby .t-role{fill:#ff9d3c}
.hn.st-planned .t-name{fill:rgba(143,199,138,.5)}
.hn.st-planned .t-role{fill:rgba(143,199,138,.34)}
.hn .t-plat{font-size:10px;letter-spacing:.8px;fill:rgba(201,247,191,.7)}
.hn .t-hw{font-size:9.5px;letter-spacing:.4px;fill:rgba(143,199,138,.55)}
.hn:hover .hb,.hn:focus-visible .hb,.hn.sel .hb{stroke:#39ff14;fill:rgba(57,255,20,.11)}
.hn.sel .hb{filter:drop-shadow(0 0 9px rgba(57,255,20,.4))}

 
.hl-net.is-trace .hn,.hl-net.is-trace .he{opacity:.2}
.hl-net.is-trace .hn.tr,.hl-net.is-trace .he.tr{opacity:1}
.hl-net.is-trace .he.tr{stroke:rgba(57,255,20,.65)}
.hl-net.is-trace .he.tr.k-standby{stroke:rgba(255,157,60,.6)}
.hl-net.is-trace .he.tr.k-wireless{stroke:rgba(143,199,138,.6)}
.hl-net.is-trace .hz,.hl-net.is-trace .hl-elb{opacity:.35}

 
.hl-net.s-fail .he.e-wan1{stroke:rgba(255,85,85,.5);stroke-dasharray:3 5}
.hl-net.s-lte .he.e-wan2{stroke:rgba(57,255,20,.6);stroke-dasharray:none;stroke-width:1.6}
.hn.x-fail .hb{stroke:rgba(255,85,85,.6);fill:rgba(255,85,85,.06)}
.hn.x-fail .hd{fill:#ff5555}
.hn.x-boot .hb{stroke:rgba(255,157,60,.6)}
.hn.x-boot .hd{fill:#ff9d3c;animation:hlBlink .7s steps(2) infinite}
.hn.x-online .hd{fill:#39ff14}
@keyframes hlBlink{50%{opacity:.2}}
.pk{fill:#39ff14;filter:drop-shadow(0 0 5px rgba(57,255,20,.7))}
.hbg rect{fill:#050805;stroke:rgba(57,255,20,.5);stroke-width:.8}
.hbg text{font-family:var(--font-mono);font-size:9px;letter-spacing:1.4px;fill:#8dff70}
.hbg.neg rect{fill:rgba(255,85,85,.08);stroke:rgba(255,85,85,.55)}
.hbg.neg text{fill:#ff5555}

 
.hl-head{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;width:100%;margin-bottom:6px}
.hl-head>div{display:flex;flex-direction:column;gap:3px}
.hl-head b{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:2.4px;text-transform:uppercase;color:var(--green)}
.hl-head span{font-family:var(--font-mono);font-size:9.5px;letter-spacing:1.8px;text-transform:uppercase;color:rgba(143,199,138,.5)}
.hl-head .hl-op{margin-left:auto;flex-direction:row;align-items:center;gap:8px}
.hl-head .hl-op i{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px rgba(57,255,20,.75)}
.hl-full{padding:5px 11px;border:1px solid rgba(57,255,20,.2);border-radius:999px;background:rgba(0,10,0,.5);font-family:var(--font-mono);font-size:9.5px;letter-spacing:1.8px;text-transform:uppercase;color:rgba(143,199,138,.75);cursor:pointer;transition:border-color .3s ease,color .3s ease}
.hl-full:hover{border-color:rgba(57,255,20,.5);color:var(--green)}

 
.hl-leg{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:6px 20px;width:100%;margin-top:10px;padding-top:11px;border-top:1px solid rgba(57,255,20,.07);font-family:var(--font-mono);font-size:9px;letter-spacing:1.7px;text-transform:uppercase;color:rgba(143,199,138,.45)}
.hl-leg span{display:inline-flex;align-items:center;gap:7px}
.hl-leg u{display:block;width:20px;height:0;border-top:1.4px solid rgba(57,255,20,.5);text-decoration:none}
.hl-leg u.wl{border-top-style:dotted;border-color:rgba(143,199,138,.55)}
.hl-leg u.sb{border-top-style:dashed;border-color:rgba(255,157,60,.6)}
.hl-leg u.pl{border-top-style:dashed;border-color:rgba(143,199,138,.3)}
.hl-leg i{width:6px;height:6px;border-radius:50%;background:var(--green)}
.hl-leg i.sb{background:#ff9d3c}
.hl-leg i.pl{background:rgba(143,199,138,.3)}

 
.hl-panel{display:none;width:100%;margin-top:12px;padding:15px 18px;border:1px solid rgba(57,255,20,.3);border-radius:12px;background:rgba(0,9,0,.9);box-shadow:0 30px 70px -30px rgba(0,0,0,.95);font-family:var(--font-mono)}
.hl-panel.is-open{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 24px;align-content:start}
.hp-hd,.hp-sub,.hp-tags,.hp-note{grid-column:1/-1}
.hp-hd{display:flex;align-items:center;gap:9px}
.hp-hd b{font-size:12.5px;font-weight:500;letter-spacing:2.2px;color:var(--green)}
.hp-hd i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px rgba(57,255,20,.8)}
.hp-hd i.hp-standby{background:#ff9d3c;box-shadow:0 0 8px rgba(255,157,60,.8)}
.hp-hd i.hp-planned{background:rgba(143,199,138,.35);box-shadow:none}
.hp-hd i.hp-sim{background:#ff9d3c;box-shadow:0 0 8px rgba(255,157,60,.7);animation:hlBlink 1.4s steps(2) infinite}
.hp-x{margin-left:auto;width:23px;height:23px;display:grid;place-items:center;border:1px solid rgba(57,255,20,.16);border-radius:6px;background:transparent;color:rgba(143,199,138,.7);font-family:var(--font-mono);font-size:13px;line-height:1;cursor:pointer;transition:border-color .3s ease,color .3s ease}
.hp-x:hover{border-color:rgba(57,255,20,.45);color:var(--green)}
.hp-sub{margin:-4px 0 0;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(143,199,138,.5)}
.hp-r{display:flex;flex-direction:column;gap:4px;padding-top:9px;border-top:1px solid rgba(57,255,20,.08);align-content:start}
.hp-r>span{font-size:8.5px;letter-spacing:2.1px;text-transform:uppercase;color:rgba(143,199,138,.5)}
.hp-r>p{margin:0;font-size:11.5px;line-height:1.6;color:#c9f7bf}
.hp-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.hp-l li{position:relative;padding-left:12px;font-size:11px;line-height:1.55;color:#a9e79c}
.hp-l li::before{content:'›';position:absolute;left:0;color:rgba(57,255,20,.6)}
.hp-st{letter-spacing:1.8px;text-transform:uppercase}
.hp-st.s-online{color:var(--green)}
.hp-st.s-standby{color:#ff9d3c}
.hp-st.s-planned{color:rgba(143,199,138,.55)}
.hp-tags{display:flex;flex-wrap:wrap;gap:6px;padding-top:9px;border-top:1px solid rgba(57,255,20,.08)}
.hp-tags span{padding:3px 8px;border:1px solid rgba(57,255,20,.16);border-radius:999px;font-size:8.5px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(143,199,138,.7)}
.hp-note{margin:2px 0 0;font-size:8.5px;letter-spacing:1.4px;text-transform:uppercase;color:rgba(143,199,138,.4)}
.hp-r .pos{color:var(--green)}
.hp-r .neg{color:#ff5555}

 
.hl-ev{position:relative;z-index:4;width:100%;margin-top:12px;padding:11px 13px;border:1px solid rgba(57,255,20,.16);border-radius:10px;background:rgba(0,8,0,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--font-mono)}
.hl-evh{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.hl-evh b{font-size:9px;font-weight:500;letter-spacing:2.2px;text-transform:uppercase;color:var(--green)}
.hl-evh span{margin-left:auto;padding:2px 7px;border:1px solid rgba(255,157,60,.3);border-radius:999px;font-size:8px;letter-spacing:1.6px;text-transform:uppercase;color:#ff9d3c}
.hl-ev ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.hl-ev li{font-size:10.5px;letter-spacing:.4px;color:rgba(143,199,138,.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hl-ev li b{margin-right:9px;font-weight:400;color:rgba(143,199,138,.45)}
.hl-ev li.neg{color:#ff5555}
.hl-ev li.warn{color:#ff9d3c}

 
.hl-diagram.is-full{position:fixed;inset:0;z-index:120;max-width:none;border-radius:0;padding:54px 14px 14px;background:rgba(0,6,0,.985);overflow:auto}
.hl-diagram.is-full .hl-stage{max-width:1400px}

 
.hl-built{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:12px;margin-top:16px}
.hl-b{display:flex;flex-direction:column;gap:7px;padding:15px 16px;border:1px solid var(--hl-ln,rgba(57,255,20,.11));border-radius:12px;background:linear-gradient(180deg,rgba(57,255,20,.035),rgba(57,255,20,.008));transition:border-color .35s ease,transform .35s ease}
.hl-b:hover{border-color:rgba(57,255,20,.3);transform:translateY(-2px)}
.hl-b b{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:2.2px;text-transform:uppercase;color:var(--green)}
.hl-b span{font-size:13px;line-height:1.6;color:var(--ink-dim);text-wrap:pretty}
.hl-b code{font-family:var(--font-mono);font-size:9px;letter-spacing:1.6px;text-transform:uppercase;color:rgba(143,199,138,.45);background:none;padding:0;border:0}
.hl-fold{display:block}
.hl-fold+.hl-fold{margin-top:4px}
.hl-fold>.hl-sum+*{margin-top:16px}
.hl-fold[open]{margin-bottom:26px}
.hl-sum{cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}
.hl-sum::-webkit-details-marker{display:none}
.hl-sum::marker{content:''}
.hl-sum em{font-style:normal;font-family:var(--font-mono);font-size:9.5px;letter-spacing:1.8px;text-transform:uppercase;color:rgba(143,199,138,.42);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s ease}
@media (max-width:620px){.hl-sum em{display:none}}
.hl-sum i{font-style:normal;display:grid;place-items:center;width:20px;height:20px;border:1px solid rgba(57,255,20,.16);border-radius:6px;font-size:10px;line-height:1;color:rgba(143,199,138,.6);transition:border-color .3s ease,color .3s ease}
.hl-sum:hover em,.hl-sum:focus-visible em{color:var(--green)}
.hl-sum:hover i,.hl-sum:focus-visible i{border-color:rgba(57,255,20,.45);color:var(--green)}
.hl-fold[open] .hl-sum i{transform:rotate(180deg)}
.hl-dec{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:16px}
.hl-d{padding:18px 20px;border:1px solid var(--hl-ln,rgba(57,255,20,.11));border-radius:12px;background:linear-gradient(180deg,rgba(57,255,20,.035),rgba(57,255,20,.008))}
.hl-d>b{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:2.2px;text-transform:uppercase;color:var(--green)}
.hl-d>b em{font-style:normal;color:rgba(143,199,138,.45)}
.hl-d dl{display:grid;grid-template-columns:auto 1fr;gap:9px 16px;margin:0}
.hl-d dt{font-family:var(--font-mono);font-size:8.5px;letter-spacing:1.8px;text-transform:uppercase;color:rgba(143,199,138,.5);padding-top:2px}
.hl-d dd{margin:0;font-size:12.5px;line-height:1.6;color:var(--ink-dim);text-wrap:pretty}
.hl-d dd.tro{color:rgba(255,157,60,.85)}
.hl-svc{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:16px}
.hl-sv b{display:block;margin-bottom:10px;font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:2.2px;text-transform:uppercase;color:rgba(143,199,138,.5)}
.hl-sv.now b{color:var(--green)}
.hl-sv ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.hl-sv li{display:flex;align-items:baseline;gap:9px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:1.4px;text-transform:uppercase;color:rgba(143,199,138,.7)}
.hl-sv li i{flex:none;width:6px;height:6px;border-radius:50%;background:rgba(143,199,138,.28)}
.hl-sv.now li{color:#c9f7bf}
.hl-sv.now li i{background:var(--green);box-shadow:0 0 8px rgba(57,255,20,.7)}
.hl-sv.exp li i{background:#ff9d3c;box-shadow:0 0 8px rgba(255,157,60,.6)}
.hl-sv li em{font-style:normal;font-size:10px;letter-spacing:1px;text-transform:none;color:rgba(143,199,138,.45)}



.hl-inspect{margin-top:30px;padding-top:22px;border-top:1px solid rgba(57,255,20,.08)}
.hl-istog{display:inline-flex;align-items:center;gap:12px;padding:0;border:0;background:none;font-family:var(--font-mono);font-size:14px;letter-spacing:1.6px;color:var(--green);cursor:pointer}
.hl-istog span::after{content:'';display:inline-block;width:8px;height:15px;margin-left:2px;vertical-align:-2px;background:var(--green);opacity:0}
.hl-istog:hover span::after,.hl-istog:focus-visible span::after{opacity:.85;animation:hlCur 1.1s steps(2) infinite}
@keyframes hlCur{50%{opacity:0}}
.hl-istog i{font-style:normal;display:grid;place-items:center;width:22px;height:22px;border:1px solid rgba(57,255,20,.2);border-radius:6px;font-size:11px;line-height:1;color:rgba(143,199,138,.65)}
.hl-istog:hover i,.hl-istog:focus-visible i{border-color:rgba(57,255,20,.5);color:var(--green)}
.hl-istog[aria-expanded="true"] i{transform:rotate(180deg);border-color:rgba(57,255,20,.5);color:var(--green)}
.hl-istog:focus-visible{outline:1px solid rgba(57,255,20,.5);outline-offset:6px;border-radius:4px}
.hl-isboot{min-height:0;margin:0;font-family:var(--font-mono);font-size:11.5px;letter-spacing:1.2px;color:rgba(143,199,138,.55)}
.hl-isboot:not(:empty){margin-top:14px}
.hl-ispanel{margin-top:20px}
.hl-isgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:22px 30px}
.hl-isc>b{display:block;margin-bottom:12px;font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:2.4px;text-transform:uppercase;color:var(--green)}
.hl-isc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.hl-isc li{position:relative;padding-left:15px;font-size:12.5px;line-height:1.45;color:#c9f7bf}
.hl-isc li::before{content:'';position:absolute;left:0;top:6px;width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 7px rgba(57,255,20,.55)}
.hl-isc li.pl{color:rgba(143,199,138,.62)}
.hl-isc li.pl::before{background:transparent;border:1px solid rgba(143,199,138,.4);box-shadow:none}
.hl-isc li em{display:block;margin-top:3px;font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:1.1px;text-transform:uppercase;color:rgba(143,199,138,.45)}
.hl-istree{margin:24px 0 0;padding:20px 22px;border:1px solid rgba(57,255,20,.1);border-radius:12px;background:rgba(0,9,0,.5);font-family:var(--font-mono);font-size:12px;line-height:1.7;color:rgba(143,199,138,.78);overflow-x:auto;white-space:pre}
.hl-isrole{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px 30px;margin-top:24px;padding-top:20px;border-top:1px solid rgba(57,255,20,.08)}
.hl-isrole>div{display:flex;flex-direction:column;gap:6px}
.hl-isrole b{font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:2.4px;text-transform:uppercase;color:var(--green)}
.hl-isrole span{font-family:var(--font-mono);font-size:11.5px;line-height:1.6;letter-spacing:.6px;color:rgba(143,199,138,.7)}
.hl-lead em{font-style:normal;color:rgba(143,199,138,.5)}
@media (max-width:560px){.hl-istree{font-size:10.5px;padding:16px}}
@media (prefers-reduced-motion:reduce){.hl-istog:hover span::after,.hl-istog:focus-visible span::after{animation:none}}
.hl-lead{margin:14px 0 0;max-width:74ch;font-size:13px;line-height:1.65;color:var(--ink-dim);text-wrap:pretty}
.hl-less{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:16px}
.hl-le{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border-left:1px solid rgba(57,255,20,.16)}
.hl-le b{font-family:var(--font-mono);font-size:16px;font-weight:400;letter-spacing:1px;color:rgba(57,255,20,.4)}
.hl-le span{font-size:13px;line-height:1.62;color:var(--ink-dim);text-wrap:pretty}

@media (max-width:900px){
  .hl-stage{overflow-x:auto}
  .hl-net{min-width:760px}
}
@media (max-width:560px){
  .hl-head .hl-op{margin-left:0}
  .hl-d dl{grid-template-columns:1fr;gap:3px 0}
  .hl-d dt{padding-top:8px}
}
@media (prefers-reduced-motion:reduce){
  .he.k-logical{animation:none}
  .hn .hb{transition:none}
    .hn.x-boot .hd,.hp-hd i.hp-sim{animation:none}
}
