:root{font-family:Inter,Microsoft YaHei,sans-serif;color:#24324a;background:#f3f6fa;font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;background:#3069df;color:#fff;border:0;border-radius:7px;padding:10px 16px;font-weight:600}button:hover{filter:brightness(.95)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;background:#fff;border:1px solid #d7dfeb;border-radius:6px;padding:10px;color:#24324a;outline-color:#3069df}textarea{min-height:90px;resize:vertical}label{display:grid;gap:7px;color:#52637b;font-size:13px;margin-bottom:14px}h1{font-size:27px;margin:9px 0 0;letter-spacing:-.7px}h2{font-size:17px;margin:26px 0 16px}h3{font-size:15px;margin:0 0 15px}p{line-height:1.7}small{font-size:12px;color:#8290a5;display:block;line-height:1.7}code{font:11px Consolas,monospace;display:block;color:#7787a0;overflow-wrap:anywhere;margin:6px 0}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.6}hr{border:0;border-top:1px solid #eaf0f6;margin:20px 0}.shell{display:flex;min-height:100vh}aside{background:#14243e;color:#dce6f6;width:228px;position:fixed;inset:0 auto 0 0;padding:32px 17px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;margin:0 10px 45px;font-size:19px;font-weight:600}.brand small{font-size:8px;letter-spacing:1px;color:#8195b2;margin-top:7px}.brand-icon{display:grid;place-items:center;width:38px;height:38px;background:#3975ed;color:#fff;border-radius:11px}nav{display:grid;gap:8px}nav button{display:flex;justify-content:space-between;background:transparent;color:#a5b4cc;text-align:left;padding:14px 17px;font-weight:400}nav button.active{background:#2e65d6;color:#fff}nav button span{opacity:.5}.side-foot{margin-top:auto;padding:25px 12px 0;line-height:2;font-size:12px;color:#a4b5ce}.side-foot button{display:block;background:#243750;margin-top:15px;padding:7px 12px}main{margin-left:228px;width:calc(100% - 228px);padding:32px 40px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#8997aa;font-weight:600}.header-state{text-align:right;font-size:12px;color:#52726a}.dot{display:inline-block;width:7px;height:7px;border-radius:100%;background:#32b58e;margin-right:7px}.dot.bad{background:#e35c61}.banner{padding:13px 17px;background:#e9effb;color:#647ba4;border:1px solid #dce6fa;border-radius:7px;font-size:12px;line-height:1.6;margin-bottom:18px}.banner.danger{color:#ac3949;background:#ffedef;border-color:#f6cbd1}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:25px 0}.stat{background:#fff;border:1px solid #e5ebf3;border-radius:10px;padding:22px}.stat span{font-size:12px;color:#75849a}.stat strong{display:block;font-size:34px;margin:15px 0 10px;font-weight:600}.stat small{font-size:10px}.section-title,.between{display:flex;justify-content:space-between;align-items:center;gap:10px}.section-title span{font-size:12px;color:#7c8ba3}.panel,.table-wrap{background:#fff;border:1px solid #e1e8f1;border-radius:9px;padding:22px;margin-bottom:18px}.table-wrap{padding:0;overflow:auto}.alert-grid,.device-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.alert-grid h3{margin:20px 0 10px;overflow-wrap:anywhere}.panel .secondary{margin-top:14px}.empty{padding:48px;text-align:center;color:#8b98ad;font-size:13px}.badge{display:inline-block;white-space:nowrap;background:#edf0f5;color:#7d8b9e;font-size:11px;padding:5px 9px;border-radius:4px;font-weight:500}.badge.healthy,.badge.succeeded,.badge.sent,.badge.issued{background:#e7f6f0;color:#248265}.badge.banned,.badge.failed,.badge.restricted,.badge.login_expired,.badge.stopped_by_platform{background:#fcebee;color:#c74c60}.badge.pending,.badge.leased,.badge.received,.badge.executing,.badge.manual,.badge.needs_review,.badge.submission_review{background:#fff4dd;color:#ac8025}.badge.bug,.badge.compensation,.badge.benefit{background:#edf2fd;color:#527fc7}.secondary{background:#f0f4fa;color:#536a8b;border:1px solid #dee5f0;font-size:12px;padding:8px 12px}.account{display:grid;gap:5px;padding:12px 0}.account span{font-size:12px;color:#7e8b9f}.inline{display:flex;align-items:end;gap:15px}.inline label{flex:1;margin:0}.inline button{height:40px}table{border-collapse:collapse;width:100%;text-align:left;min-width:650px;font-size:12px}th{padding:15px 18px;background:#f9fbfe;color:#8390a4;font-weight:500;border-bottom:1px solid #e7edf4}td{padding:17px 18px;border-bottom:1px solid #edf1f6;vertical-align:top;max-width:360px;overflow-wrap:anywhere}tr:last-child td{border-bottom:0}.setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.setup-form{align-self:start}.setup-form h3{margin-bottom:23px}.result{background:#fff8e9;border:1px solid #e9d6ad;border-radius:8px;padding:18px;margin:16px 0}.result>button{float:right}.result pre{-webkit-user-select:text;user-select:text;padding-right:50px}.conversation-layout{display:grid;grid-template-columns:290px 1fr;gap:18px}.conversation{display:block;width:100%;background:#f9fbfd;color:#344d70;border:1px solid #e6ebf4;text-align:left;padding:14px;margin-top:12px}.conversation .badge{float:right}.conversation small{clear:both;padding-top:8px}.conversation.chosen{border-color:#3069df}.messages{max-height:440px;overflow:auto;margin:20px 0}.messages article{padding:18px;background:#f6f8fc;margin-bottom:12px;border-radius:6px}.messages p{white-space:pre-wrap}.chat>small{border-bottom:1px solid #e8edf5;padding-bottom:16px}details summary{cursor:pointer;color:#586e8f}.milestones p{font-size:13px;margin:10px 0}footer{font-size:10px;color:#99a5b6;margin:40px 0 10px;display:flex;justify-content:space-between}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 70% 10%,#e2ebfd,transparent 65%),#f3f6fa}.login-card{width:430px;max-width:90vw;background:#fff;padding:45px;border:1px solid #e1e8f4;border-radius:16px;box-shadow:0 30px 90px #293d6510}.login-card h1{margin-top:18px}.login-card p{color:#8a97aa;margin:18px 0 28px}.login-card button{width:100%;margin:7px 0 23px}@media(max-width:1000px){aside{width:180px}main{margin-left:180px;width:calc(100% - 180px);padding:25px}.stats{grid-template-columns:repeat(2,1fr)}.conversation-layout,.setup-grid{grid-template-columns:1fr}.header-state{max-width:160px}}@media(max-width:650px){aside{position:static;width:100%;padding:18px}.brand{margin-bottom:20px}nav{grid-template-columns:repeat(2,1fr)}.side-foot{display:none}.shell{display:block}main{margin:0;width:100%;padding:20px}.device-grid,.alert-grid{grid-template-columns:1fr}.stat{padding:15px}.inline{flex-wrap:wrap}footer{display:block}.header-state{display:none}}.header-tools{display:flex;align-items:center;gap:22px}.wall-launch{display:flex;align-items:center;gap:20px;padding:24px 26px;background:linear-gradient(110deg,#e9f1ff,#f3f9ff);border:1px solid #ccddf7;border-radius:10px;margin:20px 0}.wall-launch-icon{display:grid;place-items:center;flex-shrink:0;width:56px;height:56px;background:#d6e5ff;color:#3069df;font-size:35px;border-radius:12px}.wall-launch h2{margin:0 0 8px;font-size:19px;color:#294f89}.wall-launch p{margin:0 0 5px;color:#637d9e;font-size:13px}.wall-launch button{margin-left:auto;flex-shrink:0;font-size:15px;padding:14px 22px}@media(max-width:760px){.wall-launch{flex-wrap:wrap;padding:20px}.wall-launch>div:nth-child(2){flex:1;min-width:150px}.wall-launch button{margin:4px 0 0;width:100%}.header-tools{gap:10px}.header-tools>button{font-size:12px;padding:9px 12px}}.queue-title{display:flex;justify-content:space-between;align-items:center;gap:15px}.queue-title>span{font-size:12px;color:#8090a7}.queue-filters{display:flex;align-items:end;gap:15px;flex-wrap:wrap;margin:18px 0}.queue-filters label{flex:1;min-width:160px;margin:0}.queue-filters>small{padding:8px 0}.queue-filters>button{height:39px}.task-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.task-actions>.secondary{margin-top:0}.task-confirm-dialog{border:1px solid #d5deeb;border-radius:12px;padding:28px;width:570px;max-width:92vw;max-height:90vh;color:#24324a;background:#fff;box-shadow:0 20px 100px #10243f44;overflow:auto}.task-confirm-dialog::backdrop{background:#10243f88}.task-confirm-dialog h2{font-size:19px;margin:0}.task-confirm-dialog .between{margin-bottom:15px}.task-confirm-dialog p{font-size:12px}.task-confirm-dialog input,.task-confirm-dialog textarea{font-size:13px}.task-confirm-dialog label{margin-top:16px}.task-confirm-dialog .confirm-checkbox{display:flex;align-items:start;gap:10px;font-size:12px;line-height:1.6}.confirm-checkbox input{width:16px;height:16px;flex-shrink:0}.confirmation-proof p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.integration-intro h2{margin:0 0 12px}.integration-intro p{font-size:13px;margin:6px 0}.integration-intro .between>div{max-width:75%}.api-download{display:inline-block;padding:10px 15px;background:#edf3ff;border:1px solid #cdddf7;color:#3364b5;font-size:12px;text-decoration:none;border-radius:6px;white-space:nowrap}@media(max-width:760px){.integration-intro .between{flex-wrap:wrap}.integration-intro .between>div{max-width:100%}.task-confirm-dialog{padding:20px}.queue-filters label{min-width:130px}}.api-downloads{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.api-endpoint{padding:0;overflow:hidden}.api-endpoint summary{display:flex;align-items:center;gap:12px;cursor:pointer;padding:18px 22px;background:#f6f9fd;border-bottom:1px solid #e3ebf4;list-style:none}.api-endpoint summary:before{content:"›";color:#6b84a6;font-size:22px}.api-endpoint[open] summary:before{transform:rotate(90deg)}.api-endpoint summary code{color:#335777;font-size:12px;flex:1;margin:0}.api-endpoint summary>span:last-child{font-size:11px;color:#71859c}.api-endpoint>p,.api-endpoint>small{margin:16px 22px;font-size:12px}.api-parameter-scroll{overflow:auto;margin:0 0 10px}.api-parameter-scroll table{min-width:1100px}.api-parameter-scroll td{min-width:85px;max-width:none;font-size:11px;line-height:1.8;padding:12px}.api-parameter-scroll th{padding:12px;white-space:nowrap}.api-parameter-scroll td:first-child{min-width:180px}.api-parameter-scroll td:nth-child(7){min-width:155px}.api-parameter-scroll td:last-child{min-width:260px}.api-parameter-scroll code{font-size:11px}.api-endpoint summary:focus-visible{outline:2px solid #3975ed;outline-offset:-3px}@media(max-width:760px){.api-endpoint summary{flex-wrap:wrap;padding:14px}.api-endpoint summary>span:last-child{display:none}.api-downloads{flex-direction:row;flex-wrap:wrap}}.topology-screen{--cyan:#70f1f3;--muted:#aac5dd;--border:#3a6687;min-height:100vh;color:#dceaf8;padding:22px 28px 16px;background:radial-gradient(ellipse at 45% 30%,#22658d88,transparent 62%),radial-gradient(ellipse at 95% 0,#4c4a9d40,transparent 45%),linear-gradient(135deg,#10243c,#153854 55%,#10243e);font-family:Inter,Microsoft YaHei,sans-serif;color-scheme:dark;display:flex;flex-direction:column;gap:16px;position:relative;isolation:isolate}.topology-screen:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(#78c9ff0d 1px,transparent 1px),linear-gradient(90deg,#78c9ff0d 1px,transparent 1px);background-size:48px 48px}.topology-screen:fullscreen{height:100vh;overflow:auto}.topology-screen button{background:linear-gradient(130deg,#235273,#1b3c5c);border:1px solid #477d9f;color:#def3ff;border-radius:5px;font-size:12px;padding:9px 12px;font-weight:400;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}.topology-screen button:hover:not(:disabled){filter:none;background:#2a6383;border-color:#8aebf3;color:#fff;box-shadow:0 0 16px #5ee7ff26;transform:translateY(-1px)}.topology-screen button:disabled{opacity:.35}.topology-screen button:focus-visible,.topology-device:focus-visible,.topology-graph svg:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.topology-screen small{color:var(--muted);font-size:11px;line-height:1.6}.topology-screen .topology-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0;padding:0 0 18px;border-bottom:1px solid #5585a3;position:relative;flex-shrink:0}.topology-header:after{content:"";position:absolute;bottom:-1px;left:0;width:180px;height:2px;background:var(--cyan);box-shadow:0 0 12px #46e3e570}.topology-brand{display:flex;gap:14px;align-items:center}.topology-brand>span{width:48px;height:48px;display:grid;place-items:center;background:linear-gradient(145deg,#347b98,#214767);border:1px solid #39808c;border-radius:12px;box-shadow:inset 0 0 16px #42dddf12,0 0 25px #42dddf09;transform:rotate(-3deg)}.topology-brand svg{width:29px;fill:none;stroke:var(--cyan);stroke-width:1.4;transform:rotate(3deg)}.topology-brand h1{margin:6px 0 0;font-size:24px;letter-spacing:2px;color:#edf8ff;font-weight:600}.topology-brand small{font-size:10px;letter-spacing:2px;color:#9fe8f4}.topology-clock{text-align:center}.topology-clock>b{font:30px Consolas,monospace;letter-spacing:3px;color:#e1f7ff;text-shadow:0 0 18px #51d1ff30}.topology-clock small{margin-top:4px;letter-spacing:1px}.topology-actions{display:flex;align-items:center;gap:10px}.topology-actions button>span{font-size:17px;vertical-align:-1px;margin:0 2px}.topology-sync{text-align:right;margin-right:6px}.topology-sync small{font-size:10px;margin-top:7px}.topology-indicator{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:#75e5c7;background:#113a354f;border:1px solid #2d6c5c;border-radius:4px;padding:5px 8px;white-space:nowrap}.topology-indicator i{width:5px;height:5px;background:currentColor;border-radius:50%;box-shadow:0 0 7px currentColor}.topology-indicator.unknown{color:#a6b5ca;background:#202e43;border-color:#405069}.topology-indicator.warning{color:#f1bc70;background:#392e23;border-color:#715332}.topology-indicator.offline{color:#ef97aa;background:#372331;border-color:#6a3b50}.topology-warning{background:#382a1e;border:1px solid #775531;padding:10px 16px;color:#f0c28d;font-size:12px;line-height:1.6}.topology-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;flex-shrink:0}.topology-metric{--accent:#72beff;background:radial-gradient(ellipse at 100% 0,#5eb4e722,transparent 70%),linear-gradient(120deg,#214663f2,#193650f2);border:1px solid var(--border);border-top-color:#65a3c1;border-radius:7px;padding:15px 20px;position:relative;overflow:hidden}.topology-metric:before{content:"";position:absolute;bottom:0;left:20px;width:40px;height:2px;background:var(--accent);box-shadow:0 0 12px var(--accent)}.topology-metric:after{content:"";position:absolute;right:-24px;bottom:-70px;width:140px;height:140px;border:1px solid #8fe5ff28;border-radius:50%;box-shadow:0 0 0 15px #70b6d40c,0 0 0 30px #70b6d408;pointer-events:none}.topology-metric.online{--accent:#55dfbc}.topology-metric.offline{--accent:#db93ac}.topology-metric.warning{--accent:#efbc71}.topology-metric.queue{--accent:#a4a9ff}.metric-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#d4e7f5}.metric-heading svg{width:20px;height:20px;stroke:var(--accent);fill:none;stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round;opacity:.85}.metric-value{display:flex;align-items:baseline;gap:9px;margin:5px 0 3px}.metric-value strong{font:38px/1.15 Consolas,monospace;color:var(--accent);letter-spacing:-1px}.metric-value>span{font-size:11px;color:#a5c3dc}.metric-index{position:absolute;right:20px;bottom:16px;font:10px Consolas,monospace;color:#7fabc7;letter-spacing:2px}.topology-metric small{font-size:10px;padding-right:22px}.topology-layout{display:grid;grid-template-columns:220px minmax(0,1fr) 255px;gap:14px;min-height:440px;flex:1}.topology-panel{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:7px;background:linear-gradient(145deg,#1b3b56ef,#142e48f2);box-shadow:inset 0 1px #b7e5ff19,0 8px 24px #04152530}.topology-title{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:49px;padding:14px 16px;border-bottom:1px solid #3a6581;background:linear-gradient(90deg,#30617a70,#223f5b30);flex-shrink:0}.topology-title h2{display:flex;align-items:center;gap:9px;margin:0;font-size:13px;color:#e5f7ff;letter-spacing:.8px;white-space:nowrap;font-weight:600}.topology-title h2:before{content:"";width:3px;height:12px;background:var(--cyan);box-shadow:0 0 8px #46e3e540}.topology-title>span{font:9px Consolas,Microsoft YaHei,monospace;color:#abc7dd;white-space:nowrap;letter-spacing:.5px}.topology-inventory{display:flex;flex-direction:column}.topology-fleet{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:18px 16px 10px;font-size:11px;color:#b3d1e4}.topology-fleet b{color:#ccf3f6;font-weight:400}.topology-fleet>div{width:100%;height:3px;background:#23374c;border-radius:2px;overflow:hidden}.topology-fleet i{display:block;height:100%;background:linear-gradient(90deg,#278995,#5bdfc3);box-shadow:0 0 8px #52debe55}.topology-node-list{flex:1;min-height:0;overflow:auto;padding:4px 8px}.topology-node-list>button{display:flex;align-items:center;gap:9px;width:100%;margin:4px 0;padding:14px 9px;background:transparent;border:1px solid transparent;text-align:left}.topology-node-list>button.selected{background:linear-gradient(90deg,#2b789c80,#24455e70);border-color:#60bbd0;box-shadow:inset 3px 0 #7bf4ed,0 0 18px #3cd9e512}.topology-node-list>button div{flex:1;min-width:0}.topology-node-list b{display:block;font-size:11px;line-height:1.7;font-weight:500;color:#d0e4f3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topology-node-list small{font-size:10px;margin-top:5px}.topology-node-list>button>span{font:10px Consolas,monospace;color:#63859d}.topology-status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8294ad;flex-shrink:0}.topology-status-dot.healthy{background:#57dfbf;box-shadow:0 0 8px #57dfbf50}.topology-status-dot.warning{background:#efbc71}.topology-status-dot.offline{background:#df849e}.topology-legend{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;border-top:1px solid #365975;font-size:10px;color:#91a9c0}.topology-legend i{margin-right:7px}.topology-graph-panel{display:flex;flex-direction:column;border-color:#5393b1;position:relative;background:radial-gradient(ellipse at 55% 50%,#28779d55,transparent 70%),linear-gradient(150deg,#173c58,#122c48)}.topology-graph-panel:before,.topology-graph-panel:after{content:"";position:absolute;width:25px;height:25px;pointer-events:none;z-index:1;border-color:#8af8ff}.topology-graph-panel:before{top:0;left:0;border-top:2px solid;border-left:2px solid;color:#8af8ff}.topology-graph-panel:after{bottom:0;right:0;border-bottom:2px solid;border-right:2px solid;color:#8af8ff}.topology-line-legend{display:flex;gap:14px;font-size:10px;color:#60d5d0;white-space:nowrap}.topology-line-legend span:before{content:"";display:inline-block;width:15px;border-top:1px dashed currentColor;margin-right:5px;vertical-align:middle}.topology-line-legend span+span{color:#aaf}.topology-graph{flex:1;min-height:0;position:relative;display:flex;align-items:center;padding:34px 10px 10px;overflow:hidden}.topology-graph-caption{position:absolute;top:14px;left:18px;right:18px;display:flex;justify-content:space-between;gap:10px;pointer-events:none;font-size:10px;color:#a5d4e5;letter-spacing:.5px}.topology-graph-caption i{width:4px;height:4px;margin-right:5px;vertical-align:2px}.topology-graph svg{display:block;width:100%;height:100%;min-height:280px;overflow:hidden;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.topology-graph svg.is-dragging,.topology-graph svg.is-dragging .topology-device{cursor:grabbing}.topology-orbit{fill:none;stroke:#65c6e0;stroke-width:1;stroke-dasharray:3 10;opacity:.55}.topology-orbit.inner{stroke:#81d6ef;stroke-dasharray:none;opacity:.32}.topology-edge{fill:none;stroke:#6f8fa9;stroke-width:1.5;stroke-dasharray:5 7;opacity:.7}.topology-edge.up{stroke:#39dbcf;opacity:1}.topology-edge.down{stroke:#a2a6ff;opacity:1}.topology-edge.route{stroke:#f3c96b;opacity:1;stroke-width:2}.topology-edge.flowing{animation:topology-flow 1.2s linear infinite;filter:drop-shadow(0 0 4px #43d4d766)}@keyframes topology-flow{to{stroke-dashoffset:-24}}.topology-edge-label{font-size:11px;fill:#b6cede;paint-order:stroke;stroke:#16364e;stroke-width:5px}.topology-edge-label.up{fill:#66d7d1}.topology-edge-label.down{fill:#a3a9ee}.topology-edge-label.route{fill:#f3c96b}.topology-hub>rect:first-child{fill:url(#topology-server);stroke:#78d7ee;stroke-width:1.3;filter:drop-shadow(0 0 22px #62d9ff40)}.hub-corners{fill:none;stroke:#61d5e2;stroke-width:2}.hub-rack rect{fill:#235b78;stroke:#7cbad0;stroke-width:1}.hub-rack path{stroke:#b1f3ff;stroke-width:2}.hub-rack circle{fill:#64e6c5;filter:drop-shadow(0 0 3px #64e6c580)}.topology-hub text{fill:#c4e5f4;font-size:12px}.topology-hub .hub-name{fill:#e1f8ff;font-size:23px;font-weight:600;letter-spacing:4px}.topology-hub .hub-live{fill:#67e3c2;font-size:11px}.topology-hub .hub-stale{fill:#b0bdd0}.topology-hub .hub-caption{fill:#a6d8ed;font:8px Consolas,monospace;letter-spacing:2px}.topology-device{cursor:pointer;outline:none}.topology-device>rect{fill:#1b4764;stroke:#6aaec8;stroke-width:1.4;transition:stroke .18s,fill .18s}.topology-device:hover>rect,.topology-device.selected>rect{fill:#205b78;stroke:#9bfff7;stroke-width:1.8;filter:drop-shadow(0 0 12px #53e0de40)}.device-stand{fill:#28546c;stroke:#72abc4;stroke-width:1}.device-bezel{fill:none;stroke:#85bdd1;stroke-width:1;opacity:.7}.topology-device>circle{fill:#93a5bd}.topology-device.healthy>circle{fill:#5de4c2}.topology-device.warning>circle{fill:#efbc71}.topology-device.offline>circle{fill:#df849e}.topology-device.warning>rect{stroke:#a77945}.topology-device.offline>rect{stroke:#705267;fill:#182738}.topology-device text{pointer-events:none}.device-name{fill:#d9edf8;font-size:16px;font-weight:500}.device-state{fill:#c0e0f0;font-size:13px}.device-sub{fill:#a7cbdf;font-size:10px}.device-number{fill:#7fb2cb;font:17px Consolas,monospace}.topology-empty-svg{fill:#829eb7;font-size:13px}.topology-graph-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 15px;border-top:1px solid #365975;color:#bad7e7;font-size:10px;line-height:1.6;flex-shrink:0}.topology-graph-foot>div{display:flex;align-items:center;gap:8px;white-space:nowrap}.topology-graph-foot button{font-size:11px;padding:7px 10px;min-width:30px}.topology-graph-foot small{font-size:9px;margin-top:3px;color:#93b7d1}.topology-zoom output{min-width:42px;text-align:center;font:11px Consolas,monospace;color:#c6e8f1}.topology-detail{overflow:auto}.topology-detail h3{font-size:14px;font-weight:500;line-height:1.7;color:#d0e6f5;margin:17px 17px 10px;overflow-wrap:anywhere}.topology-detail>.topology-indicator{margin:0 17px}.topology-detail dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:13px 8px;padding:0 17px;margin:20px 0 16px;font-size:11px;line-height:1.5}.topology-detail dt{color:#adcde1}.topology-detail dd{margin:0;text-align:right;color:#c4d9e9;overflow-wrap:anywhere}.topology-detail code{padding:10px 17px;margin:0;border-top:1px dashed #20394e;font-size:9px;color:#8db5ce}.topology-detail-note{margin:0 17px 16px;padding:12px 0 0;border-top:1px solid #365975;font-size:10px;color:#a6c6db;line-height:1.8}.topology-detail-note b{display:block;color:#9eb8cd;font-weight:500;margin-bottom:5px}.topology-explainer{padding:20px 17px;color:#91acc3;font-size:12px;line-height:1.8}.topology-route-example{padding:12px 8px;text-align:center;border:1px solid #315367;border-radius:5px;background:#142e43;color:#b7d3e5;font-size:11px}.topology-route-example b{color:var(--cyan)}.topology-bottom{display:grid;grid-template-columns:1fr 1fr;gap:14px;height:168px;flex-shrink:0}.topology-bottom>.topology-panel{display:flex;flex-direction:column}.topology-transfers,.topology-event-list{flex:1;min-height:0;overflow:auto;padding:0 16px}.topology-transfers button,.topology-event-list>div:not(.topology-empty){display:flex;align-items:center;gap:14px;width:100%;padding:13px 0;font-size:11px;background:transparent;border:0;border-bottom:1px solid #20364c;text-align:left;border-radius:0}.topology-transfers button.selected{background:#19394d}.topology-bottom time{font:11px Consolas,monospace;color:#7e9eb9;white-space:nowrap}.topology-bottom span{min-width:0;overflow-wrap:anywhere}.topology-bottom b{font-weight:500}.topology-transfers button b,.topology-event-list>div:not(.topology-empty) b{color:#62cec8;margin:0 5px}.topology-bottom em{margin-left:auto;font-size:10px;color:#98b4cb;font-style:normal;white-space:nowrap}.topology-selected-route{margin:8px 16px 12px;font-size:11px;color:#e1c68c;line-height:1.8}.topology-selected-route small{font-size:10px;color:#b3a47f}.topology-empty{padding:35px 15px;text-align:center;font-size:12px;color:#8ca8bd;line-height:2}.topology-empty.compact{display:flex;align-items:center;justify-content:center;gap:16px;min-height:100%;padding:20px 12px;text-align:left}.topology-empty.compact>i{display:grid;place-items:center;flex-shrink:0;width:43px;height:43px;font:25px Consolas,monospace;color:#9bddeb;background:#24557155;border:1px solid #52809c;border-radius:12px}.topology-empty.compact b{color:#d0e7f5;font-size:12px;display:block;margin-bottom:4px}.topology-empty.compact small{font-size:11px;color:#9dbfd6}.topology-screen .topology-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;color:#99bdd4;font-size:10px;letter-spacing:.8px;flex-shrink:0}.topology-footer>span:first-child:before{content:"";display:inline-block;width:5px;height:5px;margin-right:8px;background:#437e97;transform:rotate(45deg);vertical-align:1px}.topology-screen.is-stale .topology-edge{animation:none;filter:none}.topology-screen.is-stale .hub-rack circle{fill:#8294ad;filter:none}.topology-screen *{scrollbar-width:thin;scrollbar-color:#31516a transparent}@media(min-width:1600px){.topology-screen{padding:28px 36px 20px;gap:20px}.topology-layout{grid-template-columns:250px minmax(0,1fr) 280px}.topology-title{padding:16px 20px}.topology-metric{padding:18px 24px}.metric-value strong{font-size:44px}.topology-bottom{height:186px}.topology-detail dl{gap:17px 10px;font-size:12px}.topology-node-list b{font-size:12px}}@media(min-width:1001px){.topology-screen{height:100vh;min-height:850px}.topology-layout,.topology-inventory,.topology-graph-panel{min-height:0}.topology-graph svg{min-height:0}}@media(max-width:1200px){.topology-screen{padding:18px;gap:14px}.topology-clock{display:none}.topology-layout{grid-template-columns:190px minmax(0,1fr) 225px}.topology-line-legend{gap:8px;font-size:9px}.topology-title{padding:13px 12px}.topology-graph-foot{flex-wrap:wrap}.topology-graph-foot>div{margin-left:auto}.topology-graph-caption{font-size:9px}.topology-graph-caption>span+span{display:none}.topology-detail dl{font-size:10px;gap:12px 6px}}@media(max-width:1000px){.topology-layout{grid-template-columns:200px minmax(0,1fr)}.topology-detail{grid-column:1 / -1;display:grid;grid-template-columns:200px 1fr;align-items:start}.topology-detail .topology-title{grid-column:1 / -1}.topology-detail h3{grid-column:1}.topology-detail>.topology-indicator{grid-column:1;justify-self:start}.topology-detail dl{grid-column:2;grid-row:2 / 5;font-size:11px;gap:12px}.topology-detail code{grid-column:1;border:0;margin-top:10px}.topology-detail-note{grid-column:1 / -1}.topology-graph{min-height:360px}.topology-metric{padding:14px}.metric-value strong{font-size:32px}.topology-metric small{font-size:9px}.topology-explainer{grid-column:1 / -1}}@media(max-width:680px){.topology-screen{padding:14px;gap:12px}.topology-screen .topology-header{flex-wrap:wrap;gap:17px}.topology-brand h1{font-size:20px}.topology-brand small{font-size:9px}.topology-actions{width:100%;gap:8px;flex-wrap:wrap}.topology-sync{text-align:left;margin-right:auto}.topology-sync small{font-size:9px}.topology-actions button{font-size:11px;padding:7px}.topology-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.topology-metric:last-child{grid-column:1 / -1}.topology-layout{grid-template-columns:minmax(0,1fr)}.topology-inventory{max-height:240px}.topology-fleet{margin:12px 16px 6px}.topology-legend{display:flex;gap:20px;padding:12px 16px}.topology-detail{grid-template-columns:140px 1fr}.topology-graph{height:360px;min-height:360px;overflow:hidden;padding-top:40px}.topology-graph svg{min-width:0;min-height:280px}.topology-graph-caption{min-width:280px}.topology-bottom{grid-template-columns:1fr;height:auto}.topology-bottom>.topology-panel{min-height:160px;max-height:260px}.topology-empty.compact{min-height:100px}.topology-screen .topology-footer{display:block;line-height:2}.topology-footer>span{display:block}.topology-transfers button,.topology-event-list>div:not(.topology-empty){flex-wrap:wrap;gap:8px}.topology-title>span{font-size:9px}}.topology-header{overflow:hidden}.topology-header:after{width:220px;background:linear-gradient(90deg,transparent,#6cf5ee,#b4d8ff,transparent);animation:topology-header-light 8s ease-in-out infinite}.topology-brand h1{text-shadow:0 0 24px #84ddff30}.topology-metric,.topology-panel{animation:topology-enter .65s ease-out both}.topology-metric:nth-child(2){animation-delay:.06s}.topology-metric:nth-child(3){animation-delay:.12s}.topology-metric:nth-child(4){animation-delay:.18s}.topology-metric:nth-child(5){animation-delay:.24s}.topology-layout>.topology-panel{animation-delay:.15s}.topology-bottom>.topology-panel{animation-delay:.25s}.topology-metric{transition:border-color .2s,box-shadow .2s,translate .2s}.topology-metric:hover{border-color:var(--accent);box-shadow:inset 0 1px #c0f6ff20,0 0 22px #69caff18;translate:0 -3px}.topology-metric:after{animation:topology-breathe 6s ease-in-out infinite}.metric-value strong{text-shadow:0 0 22px color-mix(in srgb,var(--accent) 32%,transparent)}.topology-graph-panel{box-shadow:inset 0 0 35px #5fd4ff08,0 0 24px #4bd4ff12}.topology-decoration{pointer-events:none}.topology-halo{animation:topology-breathe 6s ease-in-out infinite}.topology-orbit.scanner{stroke:#8af5ff;stroke-width:2;stroke-dasharray:95 180 15 255;opacity:.7;transform-box:fill-box;transform-origin:center;animation:topology-orbit-turn 26s linear infinite}.topology-orbit.scanner.reverse{stroke:#b4b7ff;stroke-width:1.5;stroke-dasharray:25 70 110 220;opacity:.55;animation-duration:38s;animation-direction:reverse}.topology-hub .hub-corners{stroke:#acfbff;filter:drop-shadow(0 0 4px #7eebff60)}.topology-hub .hub-name{text-shadow:0 0 16px #95e9ff55}.topology-device:hover .device-bezel,.topology-device.selected .device-bezel{stroke:#c2ffff;opacity:1}.topology-screen.is-stale .topology-decoration *{animation-play-state:paused}.topology-screen.motion-paused *,.topology-screen.motion-paused *:before,.topology-screen.motion-paused *:after{animation-play-state:paused!important}@keyframes topology-enter{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes topology-breathe{0%,to{opacity:.55}50%{opacity:1}}@keyframes topology-orbit-turn{to{transform:rotate(360deg)}}@keyframes topology-header-light{0%,to{transform:translate(0);opacity:.55}50%{transform:translate(160px);opacity:1}}@media(prefers-reduced-motion:reduce){.topology-screen *,.topology-screen *:before,.topology-screen *:after{animation:none!important;transition:none!important}}.hub-shield-shell{fill:#36d9ef0d;stroke:#67e5f84d;stroke-width:10;filter:drop-shadow(0 0 20px #33d5f955)}.hub-shield-net{opacity:.38}.hub-shield-front-net{opacity:.09}.hub-shield-border{fill:none;stroke:#68dfea;stroke-width:1.7;filter:drop-shadow(0 0 5px #64e7ff99)}.hub-shield-rim-flow{fill:none;stroke:#c5ffff;stroke-width:3;stroke-linecap:round;stroke-dasharray:80 170;filter:drop-shadow(0 0 7px #74faff);animation:shield-rim 7s linear infinite}.hub-shield-current{fill:none;stroke:#6bf5e0;stroke-width:1.5;stroke-dasharray:12 110;opacity:.7;animation:shield-current 4s linear infinite}.hub-shield-scan{fill:none;stroke:#9efaff;stroke-width:2;opacity:0;filter:drop-shadow(0 0 9px #61e9ff);animation:shield-scan 5s ease-in-out infinite}@keyframes shield-rim{to{stroke-dashoffset:-1000}}@keyframes shield-current{to{stroke-dashoffset:-244}}@keyframes shield-scan{0%{transform:translateY(0);opacity:0}18%{opacity:.4}80%{opacity:.18}to{transform:translateY(360px);opacity:0}}.topology-screen.motion-paused .hub-shield-cover *,.topology-screen.motion-paused .hub-shield-current{animation-play-state:paused}.topology-screen.is-stale .hub-shield-cover *,.topology-screen.is-stale .hub-shield-current{animation:none;filter:none}.topology-screen.is-stale .hub-shield-cover,.topology-screen.is-stale .hub-shield-shell,.topology-screen.is-stale .hub-shield-net{opacity:.3}
