:root{--bg:#f5f7fb;--panel:#fff;--ink:#172b49;--muted:#7a8aa2;--green:#2863d9;--lime:#b6d6ff;--line:#e5eaf2;--red:#d34760}body{font-family:'Segoe UI','Malgun Gothic',sans-serif;background:#f5f7fb}button{border-radius:9px;background:#2863d9;transition:background .15s,box-shadow .15s}button:hover{filter:none;box-shadow:0 3px 10px #2c67c320}.secondary:hover{background:#f0f5ff}input:focus,select:focus{outline:2px solid #8fb9ff}aside{position:relative;inset:auto;width:100%;height:76px;padding:0 32px;background:#fff;border-bottom:1px solid #e1e7f0;display:flex;flex-direction:row;align-items:center;gap:36px}.brand{font-size:21px;white-space:nowrap;letter-spacing:-.8px}.sidecaption{display:none}nav{flex-direction:row;gap:4px;flex:1}nav button{font-size:12px;color:#74839b;white-space:nowrap;padding:11px 13px;font-weight:600;border-radius:8px}nav button.active{background:#ecf2ff;color:#285fd0}.sidebottom{margin:0;font-size:0;line-height:1}.sidebottom small,.sidebottom .dot{display:none}.sidebottom button{font-size:11px;white-space:nowrap;background:#f6f8fb;padding:9px 14px;margin:0;border:1px solid #e6eaf2;border-radius:8px}main{margin:0;padding:28px 32px;max-width:1880px;margin-inline:auto}header{margin-bottom:22px}header h1{font-size:27px;letter-spacing:-1.2px;font-weight:700}.eyebrow{color:#8695ac;font-size:9px;letter-spacing:1.8px}.headeractions{gap:13px}.headeractions button{padding:10px 15px}.notice{background:#edf7f3;border:1px solid #d7ece3;padding:11px 16px;color:#3d7565;display:flex;align-items:center;gap:13px;font-size:11px;margin-bottom:18px}.notice strong{font-size:12px}.notice small{margin-left:auto;color:#7d9a90}.connected-dot{width:6px;height:6px;background:#1cac80;border-radius:50%;box-shadow:0 0 0 4px #1cac8011}.stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat,.stat:first-child{background:#fff;color:var(--ink);padding:16px 20px;border-color:#e4eaf3;border-radius:12px;position:relative}.stat:first-child{border-left:3px solid #248a74}.statlabel,.stat:first-child .statlabel{font-size:10px;color:#8392a8}.statvalue{font-size:26px;letter-spacing:-.8px;margin:7px 0 3px;font-weight:650}.stat:first-child .statvalue{font-size:23px;color:#219175}.statdetail,.stat:first-child .statdetail{color:#8c9aaf;font-size:10px}.panel{box-shadow:0 2px 8px #18294a03;border:1px solid #e2e8f1;border-radius:14px;padding:22px;margin-bottom:18px}h2{font-size:16px;font-weight:650;color:#1c3352}.atlas-panel{padding:0;overflow:hidden}.map-heading{padding:21px 24px 17px;display:flex;justify-content:space-between;align-items:center;gap:15px}.map-heading h2{margin:7px 0 0;font-size:20px;letter-spacing:-.7px;display:flex;align-items:center;gap:14px}.live-label{display:inline-block;font-size:8px;letter-spacing:.8px;color:#23a184;background:#eef9f4;padding:5px 8px;border:1px solid #d7f1e6;border-radius:5px}.map-actions{display:flex;gap:8px}.map-actions button{font-size:10px;padding:8px 12px;border-color:#e4eaf3}.map-toolbar{display:flex;gap:12px;align-items:center;padding:13px 24px;background:#fafbfe;border-block:1px solid #e8edf5}.map-toolbar label{display:flex;align-items:center;gap:9px;font-size:10px;color:#8a97aa;margin:0}.map-toolbar select,.map-toolbar input{font-size:11px;padding:8px 10px;border:1px solid #e3e9f2;background:#fff;border-radius:7px}.map-toolbar input{width:80px}.route-verdict{margin-left:auto;display:flex;align-items:center;gap:10px}.route-verdict small{font-family:Consolas,monospace;color:#8b97a9;font-size:10px}.verdict{padding:6px 10px;border-radius:6px;font-size:10px;font-weight:650}.verdict.allow{background:#e8f7f0;color:#168269}.verdict.deny{background:#fff0f2;color:#c64460}.topology{min-height:0;background:#fcfdff;overflow:auto;padding:7px 12px 0}.topology svg{display:block;min-width:1020px;width:100%;height:auto;max-height:none;user-select:none}.map-zone rect{fill:#f2f6fdf2;stroke:#dbe6f5;stroke-width:1.2}.map-zone.cyan rect{fill:#f1f8fbf2;stroke:#d8eaf2}.map-zone.mint rect{fill:#f0f8f5f2;stroke:#d8eae3}.map-zone.violet rect{fill:#f4f2fbf2;stroke:#e4ddf5}.zone-title{font-size:11px;letter-spacing:1.8px;font-weight:700;fill:#52708d}.zone-sub{font-size:10px;fill:#8fa1b7}.cable{fill:none;stroke:#7b9fcd;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.cable.branch{stroke:#bfd1e8;stroke-width:1.2}.cable.virtual{stroke:#ad9adc;stroke-dasharray:5 4}.cable.tunnel{stroke:#24a691;stroke-width:1.4;stroke-dasharray:5 5;opacity:.5}.cable.allowed-route{stroke:#24a691;stroke-width:1.6;stroke-dasharray:3 5;opacity:.8}.moving-packet{filter:drop-shadow(0 0 4px #15a68c80)}.interactive{cursor:pointer;outline:none}.interactive:hover .asset-name,.interactive:focus .asset-name{fill:#2466d7}.asset-node>rect{fill:#fff;stroke:#dce6f3;filter:url(#softShadow)}.asset-node:hover>rect,.asset-node:focus>rect{stroke:#69a1f2;stroke-width:1.5}.asset-name{font-size:10px;font-weight:600;fill:#496481}.asset-ip{font-family:Consolas,monospace;fill:#91a1b4;font-size:10px}.router-name{font-size:14px;font-weight:700;fill:#31516f}.router-ip{font-family:Consolas,monospace;font-size:13px;font-weight:600;fill:#3e689c}.router-wan{font-size:9px;fill:#8a9db7}.link-label{font-size:9px;fill:#8ba1bd;font-family:Consolas,monospace}.map-caption{font-size:9px;fill:#8fa2b7}.internet-label{font-size:10px;letter-spacing:1.2px;fill:#8d9eb5}.public-ip{font-family:Consolas,monospace;font-size:15px;font-weight:700;fill:#56718f}.profile-card rect{fill:#ffffff;stroke:#dfece5}.profile-card.selected rect{stroke:#42b79f;fill:#ebfaf4}.profile-name{font-size:12px;font-weight:700;fill:#3a685b}.profile-scope{font-size:10px;fill:#6d9685}.docker-net rect{fill:#fff;stroke:#e4def0}.docker-net:hover rect,.docker-net:focus rect{stroke:#a18ad6}.net-name{font-size:10px;font-weight:650;fill:#736092}.net-ip{font-size:9px;font-family:Consolas,monospace;fill:#9381ae}.net-count{font-size:8px;fill:#a89cba}.net-more{fill:#9076bb;font-size:10px}.tunnel-label{font-size:9px;fill:#3ea390}.denied-caption{font-size:10px;fill:#d35a74}.map-bottom{padding:14px 24px;background:#fff;border-top:1px solid #e9eef6;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;color:#8d9aab}.map-bottom>div{display:flex;align-items:center;gap:8px}.map-bottom small{font-size:9px}.legend-line{width:19px;height:2px;display:inline-block;margin-left:13px}.legend-line.blue{background:#86a5d3}.legend-line.violet{border-top:2px dashed #ab98d1}.legend-packet{width:5px;height:5px;background:#24a691;border-radius:50%;display:inline-block;margin-left:13px}.map-detail{padding:24px;border-top:1px solid #e7edf6;background:#fbfcff}.map-detail h3{font-size:17px;margin-top:25px}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.scope{font-size:10px;padding:5px 9px;border-radius:6px;white-space:nowrap}.scope.allowed{background:#e9f7f0;color:#269574}.scope.partial{background:#fff6df;color:#b68920}.scope.blocked{background:#f0f2f6;color:#8c98aa}.forward-path{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px;font-family:Consolas,monospace;padding:18px 0}.forward-path span{background:#f1f6ff;padding:8px 10px;border:1px solid #e1eafa;border-radius:7px;color:#5479b4}.forward-path i{font-style:normal;color:#a4b3cb;font-size:9px}.forward-metrics{display:flex;gap:20px;font-size:10px;color:#90a0b6;margin:9px 0 17px}.forward-metrics b{font-weight:650;color:#5d7599}.service-line{display:flex;align-items:center;gap:14px;padding:10px 0;font-size:11px;border-bottom:1px solid #edf1f7;color:#6f87a9}.service-line span{flex:1;overflow-wrap:anywhere}.service-line i{color:#b2bfd3;font-style:normal}.service-line code{color:#9bacc1}.service-line+button{margin-top:12px;font-size:10px}th{color:#91a1b6;border-bottom-color:#e6edf6;font-size:9px}td{color:#59718f;border-bottom-color:#edf2f8;font-size:11px;padding:12px}.badge{background:#edf4ff;color:#5d82b9}.status{background:#edf8f2;color:#329474}.status.off{background:#f2f4f8;color:#9ba7b7}.muted{color:#92a1b5;line-height:1.6;font-size:11px}.empty{color:#9aa9bd;font-size:11px}.map-expanded header,.map-expanded .notice,.map-expanded .stats,.map-expanded aside,.map-expanded .overview-grid,.map-expanded footer{display:none}.map-expanded main{padding:12px}.map-expanded .topology svg{min-width:1200px}.loginart{background:#173861;color:#acd1ff}.loginart i{border-color:#3d638d}.loginart i:nth-child(3){background:#8bbaff11}.loginart p{color:#86a5c7}.login{background:#f6f8fc}.loginbox h1{color:#173861}.loginbox p{color:#889db9}footer{color:#9dacc1}
@media(prefers-reduced-motion:reduce){.moving-packet{display:none}*{scroll-behavior:auto!important}}
@media(max-width:1200px){aside{gap:18px;padding:0 22px}nav{gap:0;overflow:auto}nav button{font-size:11px;padding:10px}.sidebottom{display:none}main{padding:24px}.map-toolbar{flex-wrap:wrap}.route-verdict{margin-left:0}.map-bottom{flex-wrap:wrap}.notice small{display:none}.forward-path{gap:5px}}
@media(max-width:800px){aside{height:auto;flex-wrap:wrap;padding:17px;gap:15px}nav{width:100%;order:2;flex:auto}.brand{font-size:19px}main{padding:17px}.notice{flex-wrap:wrap;gap:8px}.notice>span:last-of-type{font-size:9px}.overview-grid{grid-template-columns:1fr;gap:0}.map-heading{flex-wrap:wrap;padding:18px}.map-toolbar{padding:12px 18px;gap:10px}.map-toolbar label{flex-wrap:wrap}.map-toolbar select{max-width:215px}.map-heading h2{font-size:17px}.map-actions{flex-wrap:wrap}.map-actions button{padding:8px 10px}.map-bottom{padding:14px}.map-bottom>div{flex-wrap:wrap}.topology{padding:0}.stats{gap:8px}.stat,.stat:first-child{padding:13px}.statvalue{font-size:25px}.stat:first-child .statvalue{font-size:21px}.map-detail{padding:14px;overflow:auto}.route-verdict{width:100%;gap:8px}.map-bottom small{line-height:1.6}.legend-line{margin-left:0}}
#pivCsr{width:100%;box-sizing:border-box;font-family:monospace}#issueForm select{width:100%}

.vault-hero{background:linear-gradient(125deg,#122c55,#26538d);color:#fff;border-radius:20px;padding:32px;margin-bottom:24px}.vault-hero h2{font-size:32px;line-height:1.2;margin:12px 0}.vault-hero .eyebrow{color:#99d7ff}.vault-hero p{color:#c5dcf7;line-height:1.7}#vault textarea,#modalContent textarea{width:100%;box-sizing:border-box;border:1px solid #d7e1ef;border-radius:9px;padding:12px;font:inherit}#vaultOutput{font-family:monospace}.keyfinger{font-size:11px;overflow-wrap:anywhere}.vault-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center}#vault .panelhead{flex-wrap:wrap;gap:12px}#vault .panelhead button{margin:3px}#vault hr{border:0;border-top:1px solid #e1e8f1;margin:28px 0}
