:root{color-scheme:light;--canvas:#edf1f5;--surface:#fff;--ink:#22354b;--muted:#68798c;--line:#d9e1e9;--wire:#b8c6d5;--accent:#315cda;--green:#27816b;--amber:#ae711f;--red:#b94949;--mono:Menlo,Consolas,monospace;--body:'Avenir Next',Avenir,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--surface);font:13px/1.5 var(--body)}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:7px 12px}button:hover{border-color:var(--wire);background:#f5f7fa}button:disabled{opacity:.5;cursor:wait}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,svg [tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.toolbar{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line);gap:20px}.brand{font-size:19px;letter-spacing:-.7px;font-weight:750;color:var(--ink);white-space:nowrap}.brand span{font-size:13px;font-weight:500;letter-spacing:0;color:var(--muted);margin-left:12px}.toolbar-right{display:flex;align-items:center;gap:20px;font-size:12px}.toolbar-right form{margin:0}.logout{border:0;color:var(--muted);padding:5px}#freshness{color:var(--muted);font-size:11px}.workspace{display:flex;height:calc(100dvh - 92px);min-height:540px}.rail{width:92px;flex:0 0 92px;border-right:1px solid var(--line);padding:16px 8px;display:flex;flex-direction:column;gap:8px;background:#f9fafc}.rail button{border:0;background:transparent;font-size:10px;padding:10px 2px;position:relative;color:var(--muted)}.rail button>span{display:block;font:22px/1.2 var(--mono);margin-bottom:6px}.rail button.active{background:#e8eefc;color:var(--accent)}.rail small{position:absolute;right:8px;top:5px;color:var(--red);font:10px var(--mono)}.rail-bottom{margin-top:auto;display:grid;gap:14px;text-align:center;font-size:10px}.rail-bottom a{color:var(--muted)}main{flex:1;min-width:0;position:relative}.view{height:100%;overflow:auto}.view-toolbar{height:79px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line);background:var(--surface)}h1{font-size:18px;font-weight:650;letter-spacing:-.4px;margin:0 0 3px}.view-toolbar>div>span{color:var(--muted);font-size:11px}.search{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px}.search input{width:220px;border:1px solid var(--line);border-radius:5px;background:#f9fafc;padding:8px 10px;font-size:12px;color:var(--ink)}.map-layout{display:flex;height:calc(100% - 79px)}.canvas-wrap{flex:1;min-width:0;position:relative;overflow:hidden;background-color:var(--canvas);background-image:radial-gradient(#c6d1dd .7px,transparent .7px);background-size:16px 16px}#topology{width:100%;height:100%;display:block;touch-action:none;cursor:grab;user-select:none}#topology:active{cursor:grabbing}.map-controls{position:absolute;bottom:18px;left:18px;display:flex;box-shadow:0 2px 8px #22354b0a;border-radius:5px;background:var(--surface)}.map-controls button{border-radius:0;margin-left:-1px;font-size:12px}.map-controls button:first-child{border-radius:5px 0 0 5px;margin:0}.map-controls button:last-child{border-radius:0 5px 5px 0}.map-legend{position:absolute;top:12px;left:18px;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:9px;pointer-events:none}.legend-line{width:22px;border-top:1px solid var(--wire)}.legend-line.planned{border-top-style:dashed;margin-left:12px}.inspector{width:285px;flex:0 0 285px;border-left:1px solid var(--line);padding:23px 20px;overflow:auto;background:var(--surface)}.inspector-kicker{font:10px var(--mono);color:var(--muted);letter-spacing:.6px;margin:0 0 10px}.inspector h2{font:600 20px var(--mono);letter-spacing:-.8px;margin:0 0 10px;overflow-wrap:anywhere}.inspector p{color:var(--muted);font-size:12px}.inspector h3{margin:24px 0 12px;font-size:11px;font-weight:600}.inspector .status{margin-bottom:8px}.inspector .caption{padding:0}.inspector-list{display:grid;gap:0}.inspector-row{padding:10px 0;border-bottom:1px solid #e8edf2;display:grid;gap:4px;font-size:11px}.inspector-row strong{font-weight:600;overflow-wrap:anywhere}.inspector-row small{font:10px var(--mono);color:var(--muted)}.inspector-row .status{font-size:10px;margin:0}.node-button{cursor:pointer}.node-shell{fill:var(--surface);stroke:#becbd9;stroke-width:1.2}.node-button:hover .node-shell{stroke:var(--accent);stroke-width:2}.node-button.selected .node-shell{stroke:var(--accent);stroke-width:2.5;fill:#f8faff}.node-button.dimmed{opacity:.22}.node-name{font:600 16px var(--mono);fill:var(--ink)}.node-detail{font:11px var(--mono);fill:var(--muted)}.namespace-name{font:12px var(--mono);fill:var(--ink)}.node-small{font:10px var(--body);fill:var(--muted)}.group-box{fill:#ffffff48;stroke:#cbd5e0;stroke-width:1;stroke-dasharray:4 5;rx:10}.group-title{font:600 13px var(--body);fill:#536b85;letter-spacing:.2px}.group-meta{font:10px var(--mono);fill:var(--muted)}.edge{stroke:var(--wire);stroke-width:1.2;fill:none}.edge.inventory{stroke-dasharray:5 5}.edge.highlight{stroke:var(--accent);stroke-width:2}.edge.dimmed{opacity:.14}.port{fill:var(--surface);stroke:var(--wire);stroke-width:1}.status{font-size:11px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.status:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}.status.healthy{color:var(--green)}.status.warning{color:var(--amber)}.status.critical{color:var(--red)}.status.stopped{color:#7f8893}.metric{margin:14px 0}.metric-heading{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;gap:10px}.metric-value{font:11px var(--mono);color:var(--ink)}progress{appearance:none;width:100%;height:4px;display:block;margin-top:7px;border:0;background:#edf1f5;border-radius:0}progress::-webkit-progress-bar{background:#edf1f5}progress::-webkit-progress-value{background:#7295b7}progress::-moz-progress-bar{background:#7295b7}.warm progress::-webkit-progress-value{background:var(--amber)}.hot progress::-webkit-progress-value{background:var(--red)}.spark-wrap{height:48px;margin:12px 0;color:var(--muted);font-size:10px}.spark-wrap svg{width:100%;height:48px}.inspector-facts{font:10px/1.9 var(--mono);color:var(--muted);overflow-wrap:anywhere}.notice{position:absolute;top:79px;left:12px;right:300px;z-index:2;background:#fff4df;border:1px solid #e5ce9c;color:#7c5b20;padding:9px 12px;font-size:11px;border-radius:5px}.list-view .view-toolbar{position:sticky;top:0;z-index:1}.table-wrap{overflow:auto;padding:0 24px}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-size:10px;color:var(--muted);font-weight:500;padding:13px 12px;white-space:nowrap;border-bottom:1px solid var(--line)}td{padding:12px;border-bottom:1px solid #e8edf2}td small{display:block;font-size:10px;color:var(--muted);margin-top:3px}td strong{font-weight:600}.mono{font:11px var(--mono)}.caption{font-size:11px;color:var(--muted);padding:12px 24px}.empty{padding:24px;color:var(--muted);font-size:12px}.alert-row,.backup-row{display:flex;align-items:center;gap:15px;padding:18px 0;border-bottom:1px solid var(--line);margin:0 24px}.alert-text{display:grid;gap:3px}.alert-text strong,.backup-row strong{font-size:12px;font-weight:600}.alert-text small,.backup-right small{font-size:11px;color:var(--muted)}.alert-icon{width:24px;height:24px;display:grid;place-content:center;background:#faf0e2;color:var(--amber);border-radius:50%;font:12px var(--mono)}.alert-icon.critical{color:var(--red);background:#f9e9e9}.backup-row{justify-content:space-between}.backup-row>div{display:flex;gap:16px;align-items:center}.backup-right{min-width:160px;justify-content:space-between}.region{font:10px var(--mono);color:var(--muted)}footer{height:30px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 20px;font:9px var(--mono);color:var(--muted)}.footer-divider{margin:0 14px;color:var(--wire)}.login{min-height:100dvh;display:grid;place-items:center;background:var(--canvas)}.login-card{width:min(440px,90vw);padding:38px;background:white;border:1px solid var(--line);border-radius:8px}.brand-mark{font:600 20px var(--mono)}.login-card h1{font-size:26px;margin:30px 0 16px}.login-card p{color:var(--muted)}.login-card .primary{display:block;background:var(--accent);color:white;padding:12px 14px;margin:30px 0 14px;border-radius:4px}.login-card small{color:var(--muted);font-size:11px}.eyebrow{font-size:10px;letter-spacing:1px}@media(min-width:1600px){.inspector{width:315px;flex-basis:315px}}@media(max-width:1100px){.inspector{width:240px;flex-basis:240px;padding:18px 15px}.toolbar-right{gap:12px}.brand span{display:none}.map-legend{font-size:8px}.search input{width:180px}}@media(max-width:760px){.toolbar{height:52px;padding:0 14px}.toolbar-right{gap:8px}.toolbar-right>a,#freshness{display:none}.brand{font-size:17px}.workspace{height:auto;min-height:calc(100dvh - 82px);display:block}.rail{width:auto;flex-direction:row;padding:5px 10px;border-right:0;border-bottom:1px solid var(--line);gap:6px}.rail button{flex:1;padding:8px 10px;font-size:11px}.rail button>span{display:none}.rail small{position:static;margin-left:5px}.rail-bottom{display:none}.view-toolbar{height:76px;padding:12px 15px;gap:10px}.view-toolbar h1{font-size:17px}.view-toolbar>div>span{font-size:10px}.search>span{display:none}.search input{width:145px;font-size:11px}.map-layout{display:block;height:auto}.canvas-wrap{height:56dvh;min-height:350px}.inspector{width:auto;border-left:0;border-top:1px solid var(--line);min-height:180px;padding:20px}.map-legend{gap:5px;left:12px;font-size:8px}.map-controls{left:12px;bottom:12px}.notice{right:12px;top:80px}.list-view{min-height:calc(100dvh - 145px)}.table-wrap{padding:0 6px}.alert-row,.backup-row{margin:0 16px}.backup-row>div{gap:9px}.backup-right{min-width:130px}footer{font-size:8px;padding:0 12px}.caption{padding:12px 16px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
