:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--primary-50:#f4f6fb;--primary-100:#e5eaf5;--primary-200:#cbd5ec;--primary-300:#adbde1;--primary-400:#849dd1;--primary-500:#4d71bd;--primary-600:#4266b3;--primary-700:#395799;--primary-800:#304a82;--primary-900:#1e2f52;--primary-950:#192643;--neutral-50:#f4f4f5;--neutral-100:#e9eaec;--neutral-200:#cecfd4;--neutral-300:#b1b1ba;--neutral-400:#8b8c98;--neutral-500:#4d4e57;--neutral-600:#43444c;--neutral-700:#303136;--neutral-800:#242528;--neutral-900:#17181c;--neutral-950:#0e0f10;--success:#009a6f;--error:#e24742;--warning:#e88445;--surface:#fff;--canvas:var(--neutral-50);--ink:var(--neutral-800);--muted:var(--neutral-500);--line:var(--neutral-200);--accent:var(--primary-500);--accent-hover:var(--primary-600);--accent-soft:var(--primary-100);--danger:var(--error);--success-soft:color-mix(in srgb, var(--success) 10%, white);--success-ink:color-mix(in srgb, var(--success) 70%, var(--neutral-950));--error-soft:color-mix(in srgb, var(--error) 10%, white);--error-ink:color-mix(in srgb, var(--error) 75%, var(--neutral-950));--warning-soft:color-mix(in srgb, var(--warning) 12%, white);--warning-ink:color-mix(in srgb, var(--warning) 55%, var(--neutral-950));--overlay:color-mix(in srgb, var(--neutral-950) 40%, transparent);--shadow:color-mix(in srgb, var(--neutral-950) 10%, transparent);--graph-cyan:#22d3ee;--graph-amber:#fbbf24;--graph-purple:#c084fc;--graph-emerald:#34d399;--graph-blue:#60a5fa;--graph-lime:#a3e635;--rack-compute:var(--primary-200);--rack-leaf:color-mix(in srgb, var(--graph-cyan) 35%, white);--rack-spine:color-mix(in srgb, var(--graph-purple) 35%, white);--rack-frontend:color-mix(in srgb, var(--graph-blue) 35%, white);--rack-management:var(--neutral-200);--rack-cooling:color-mix(in srgb, var(--graph-emerald) 35%, white);--rack-storage:color-mix(in srgb, var(--graph-amber) 35%, white);--rack-cmx:color-mix(in srgb, var(--graph-lime) 35%, white)}
:root{color:var(--ink);background:var(--canvas);font-synthesis:none;--mono:ui-monospace, SFMono-Regular, Consolas, monospace;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px;accent-color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent)}button{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:9px 13px;font-size:12px;font-weight:600;display:inline-flex}button:hover{background:var(--primary-50)}button:disabled{opacity:.45;cursor:wait}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:var(--accent-hover)}.quiet{background:0 0;border-color:#0000}.danger{color:var(--error-ink)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}svg{display:block}#app{min-height:100vh}.shell{grid-template-columns:214px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;width:214px;padding:28px 16px 18px;display:flex;position:fixed;top:0;bottom:0}.brand{letter-spacing:-1px;align-items:center;gap:9px;padding:0 10px 28px;font-size:23px;font-weight:730;display:flex}.brandmark{background:var(--primary-500);color:var(--surface);border-radius:8px;padding:7px}.workspace-label{letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);padding:12px;font-size:11px}.workspace{border:1px solid var(--neutral-100);background:var(--surface);border-radius:8px;margin-bottom:26px;padding:12px;font-size:12px}.workspace b{margin-bottom:4px;display:block}nav{gap:5px;display:grid}nav a{color:var(--muted);border-radius:7px;align-items:center;gap:11px;padding:12px;font-size:12px;font-weight:550;display:flex}nav a:hover{background:var(--neutral-100);text-decoration:none}nav a.active{background:var(--accent-soft);color:var(--primary-700)}nav .count{font-family:var(--mono);opacity:.6;margin-left:auto;font-size:10px}.sidebar-bottom{border-top:1px solid var(--line);color:var(--muted);margin-top:auto;padding:18px 10px 0;font-size:11px}.live{align-items:center;gap:6px;display:flex}.dot{background:var(--success);border-radius:50%;width:6px;height:6px;display:inline-block}.dot.off{background:var(--warning)}.user{align-items:center;gap:9px;margin-top:19px;display:flex}.avatar{background:var(--neutral-100);width:29px;height:29px;color:var(--ink);border-radius:50%;place-items:center;font-size:10px;font-weight:700;display:grid}.main{grid-column:2;min-width:0}.topbar{border-bottom:1px solid var(--line);background:var(--surface);height:62px;color:var(--muted);justify-content:space-between;align-items:center;padding:0 30px;font-size:11px;display:flex}.breadcrumb{align-items:center;gap:13px;display:flex}.top-tools{align-items:center;gap:15px;display:flex}.tag{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:5px;padding:4px 7px;font-size:10px}.page{max-width:2000px;margin:auto;padding:28px 30px 40px}.pagehead{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.eyebrow{font:10px var(--mono);letter-spacing:1.8px;color:var(--muted);text-transform:uppercase;margin-bottom:9px}h1{letter-spacing:-.8px;margin:0 0 7px;font-size:25px;font-weight:630}h2{letter-spacing:-.2px;margin:0;font-size:14px}h3{margin:0 0 12px;font-size:12px}.subtitle{color:var(--muted);margin:0;font-size:12px;line-height:1.7}.actions{gap:8px;display:flex}.stats{grid-template-columns:repeat(4,1fr);gap:13px;margin:18px 0;display:grid}.stat{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:109px;padding:17px 19px}.stat .label{color:var(--muted);justify-content:space-between;align-items:center;font-size:11px;display:flex}.stat .value{letter-spacing:-1px;margin-top:11px;font-size:28px;font-weight:560}.stat .value small{letter-spacing:0;color:var(--muted);font-size:12px;font-weight:400}.stat .note{color:var(--muted);margin-top:6px;font-size:10px}.progress{background:var(--primary-50);border-radius:4px;height:3px;margin-top:12px}.progress i{background:var(--accent);border-radius:4px;height:100%;display:block}.design-grid{grid-template-columns:minmax(0,1fr) 302px;align-items:start;gap:18px;display:grid}.panel{background:var(--surface);border:1px solid var(--line);border-radius:9px;overflow:hidden}.panelhead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:17px 19px;display:flex}.panelhead small{color:var(--muted);font-size:10px}.panelbody{padding:18px}.tabs{border-bottom:1px solid var(--line);gap:20px;padding:0 19px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:0;padding:14px 0;font-size:11px}.tabs button.active{color:var(--accent);border-bottom:2px solid var(--accent)}.canvas{background-color:var(--surface);background-image:radial-gradient(var(--neutral-100) .65px, transparent .65px);background-size:14px 14px;min-height:370px;padding:24px 20px;position:relative;overflow:auto}.canvas svg{width:100%;min-width:420px;min-height:260px}.canvas svg text{font-family:var(--mono)}.canvas-caption{font:10px var(--mono);color:var(--muted);justify-content:space-between;margin:4px 0 24px;display:flex}.hall-title{color:var(--muted);justify-content:space-between;margin:18px 0 10px;font-size:11px;display:flex}.hall-title span{font:10px var(--mono);color:var(--muted)}.legend{color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;gap:18px;padding:14px 19px;font-size:10px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.swatch{border-radius:2px;width:9px;height:9px}.property{border-bottom:1px solid var(--line);padding:16px 18px}.property:last-child{border-bottom:0}.property label,.field label{color:var(--muted);margin-bottom:8px;font-size:10px;font-weight:600;display:block}.property h3{letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-size:10px}.property select,.property input,.field input,.field select{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:6px;padding:9px 10px;font-size:12px}.property .hint{color:var(--muted);margin-top:7px;font-size:10px;line-height:1.6}.formrow{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.toggleline{justify-content:space-between;align-items:center;padding:10px 0;font-size:12px;display:flex}.toggleline input{appearance:none;background:var(--neutral-100);cursor:pointer;border-radius:15px;width:29px;height:17px;padding:0;position:relative}.toggleline input:checked{background:var(--accent)}.toggleline input:after{content:"";background:#fff;border-radius:50%;width:11px;height:11px;transition:left .1s;position:absolute;top:2px;left:2px}.toggleline input:checked:after{left:14px}.ref-link{justify-content:space-between;align-items:center;padding:7px 0;font-size:11px;display:flex}.badge{background:var(--primary-50);color:var(--primary-700);border-radius:4px;align-items:center;gap:4px;padding:4px 7px;font-size:10px;display:inline-flex}.badge.feasible,.badge.Checked{background:var(--success-soft);color:var(--success-ink)}.badge.warning{background:var(--warning-soft);color:var(--warning-ink)}.badge.blocker,.badge.infeasible{background:var(--error-soft);color:var(--error-ink)}.issues{gap:8px;display:grid}.issue{border-left:2px solid var(--warning);background:var(--warning-soft);border-radius:0 5px 5px 0;padding:8px 11px;font-size:11px;line-height:1.6}.issue.blocker{border-color:var(--error);background:var(--error-soft)}.issue.info{border-color:var(--primary-400);background:var(--primary-50)}.bottom-grid{grid-template-columns:1.2fr 1fr;gap:18px;margin-top:18px;display:grid}table{border-collapse:collapse;width:100%;font-size:11px}th{text-align:left;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);background:var(--surface);border-bottom:1px solid var(--line);padding:12px 18px;font-size:9px;font-weight:500}td{border-bottom:1px solid var(--primary-50);padding:12px 18px}tr:last-child td{border-bottom:0}.num{text-align:right;font-family:var(--mono)}.cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.card{text-align:left;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:9px;padding:0;display:block;overflow:hidden}.card:hover{box-shadow:0 5px 18px var(--shadow);border-color:var(--primary-300);text-decoration:none}.cardtop{background:var(--primary-50);background-image:radial-gradient(var(--neutral-200) .7px, transparent .7px);background-size:12px 12px;justify-content:center;align-items:center;height:145px;display:flex}.cardtop svg{width:90%;max-height:110px}.cardbody{padding:18px}.cardbody h2{margin:8px 0;font-size:14px}.cardbody p{color:var(--muted);height:38px;font-size:11px;line-height:1.7;overflow:hidden}.cardfoot{border-top:1px solid var(--line);font:10px var(--mono);color:var(--muted);justify-content:space-between;margin-top:13px;padding-top:13px;display:flex}.listbar{align-items:center;gap:12px;margin:22px 0;display:flex}.search{border:1px solid var(--line);background:#fff;border-radius:7px;min-width:260px;padding:10px 13px;font-size:12px}.empty{text-align:center;border:1px dashed var(--neutral-200);background:var(--surface);border-radius:10px;padding:75px 30px}.empty h2{margin:15px;font-size:20px}.empty p{color:var(--muted);max-width:470px;margin:0 auto 24px;font-size:12px;line-height:1.8}.code{border:1px solid var(--line);font:11px/1.65 var(--mono);background:var(--neutral-50);color:var(--neutral-800);resize:vertical;tab-size:2;border-radius:7px;width:100%;min-height:500px;padding:18px}.toast{border:1px solid var(--line);background:var(--surface);color:var(--ink);z-index:100;box-shadow:0 5px 35px var(--shadow);border-radius:8px;max-width:80vw;padding:13px 22px;font-size:12px;position:fixed;bottom:25px;left:50%;transform:translate(-50%)}.toast.error{color:var(--error-ink);border-color:var(--error);background:var(--error-soft)}.conflict{background:var(--warning-soft);border:1px solid var(--warning);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;padding:13px 16px;font-size:12px;display:flex}dialog{border:1px solid var(--line);width:540px;max-width:90vw;color:var(--ink);box-shadow:0 20px 100px var(--overlay);border-radius:12px;padding:0}dialog::backdrop{background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}dialog .panelbody{max-height:70vh;overflow:auto}.field{margin-bottom:17px}.dialogfoot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:16px 20px;display:flex}.rackview{grid-template-columns:40px 1fr;gap:0;max-width:600px;margin:auto;display:grid}.rackunit{height:20px;font:10px var(--mono);color:var(--muted);border-bottom:1px solid var(--neutral-100);text-align:right;padding:2px 9px}.rackchassis{background:var(--neutral-100);outline:5px solid var(--neutral-500);border-radius:5px;position:relative}.rack-cabinet{min-width:0;display:grid}.rack-sidecar{background:repeating-linear-gradient(45deg, var(--neutral-200), var(--neutral-200) 6px, var(--neutral-300) 6px, var(--neutral-300) 7px);border:1px solid var(--neutral-500);color:var(--ink);justify-content:center;align-items:center;display:flex}.rack-sidecar span{writing-mode:vertical-rl;font:11px var(--mono)}.rackchassis .rackslot{border:1px solid var(--neutral-500);font:10px var(--mono);background:var(--primary-100);color:var(--ink);cursor:pointer;border-radius:2px;justify-content:center;align-items:center;padding:0 4px;display:flex;position:absolute;left:3px;right:3px;overflow:hidden}.rackslot:hover{filter:brightness(.95)}.rackslot.network{background:var(--rack-leaf)}.rackslot.power{background:var(--rack-storage)}.rackslot.compute{background:var(--rack-compute)}.source{border-bottom:1px solid var(--line);padding:12px 0;font-size:11px;line-height:1.7}.source small{color:var(--muted);display:block}.split{grid-template-columns:minmax(0,1fr) 320px;gap:18px;display:grid}.network{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:20px 15px;display:flex}.netnode{background:var(--primary-50);border:1px solid var(--neutral-100);text-align:center;border-radius:6px;flex:1;padding:15px 12px;font-size:11px}.netedge{font:9px var(--mono);color:var(--muted);text-align:center;min-width:100px}.netedge:after{content:"→";letter-spacing:7px;margin-top:6px;display:block}.netnotes{color:var(--muted);padding:0 18px 17px;font-size:10px;line-height:1.7}.roweditor{background:var(--surface);border:1px solid var(--line);border-radius:7px;margin-top:10px;padding:14px}.roweditor input{border:1px solid var(--line);border-radius:4px;width:100%;padding:6px;font-size:11px}.roweditor label{color:var(--muted);margin-bottom:5px;font-size:9px;display:block}.roweditor .formrow{grid-template-columns:repeat(3,1fr)}.footnote{color:var(--muted);padding:14px 0;font-size:10px;line-height:1.7}.selection{stroke:var(--primary-600);stroke-width:.15px}.rackshape{cursor:pointer}.rackshape:hover{filter:brightness(.9)}.view-controls{gap:5px;display:flex}.view-controls button{padding:6px 8px;font-size:10px}.loading{text-align:center;color:var(--muted);padding:80px}.widebutton{width:100%}.statusline{color:var(--muted);font:10px var(--mono);align-items:center;gap:8px;margin-bottom:14px;display:flex}.muted{color:var(--muted)}.section-gap{margin-top:18px}.inlinefields{gap:7px;display:flex}.inlinefields input{min-width:0}.scrolltable{overflow:auto}.mobile-nav{display:none}@media (min-width:1600px){.design-grid{grid-template-columns:minmax(0,1fr) 340px}}@media (max-width:1150px){.sidebar{width:180px}.shell{grid-template-columns:180px 1fr}.page{padding:24px 20px}.design-grid,.split{grid-template-columns:minmax(0,1fr) 265px}.bottom-grid{grid-template-columns:1fr}.stat{padding:15px 12px}.stats{gap:8px}.stat .value{font-size:24px}}@media (max-width:900px){.sidebar{width:65px;padding:25px 8px}.shell{grid-template-columns:65px 1fr}.sidebar .brand{padding:0 0 25px}.brand span,.workspace,.workspace-label,nav .navlabel,nav .count,.sidebar-bottom{display:none}nav a{padding:14px}.design-grid,.split{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.pagehead{align-items:flex-start}.actions{flex-wrap:wrap}.topbar{padding:0 20px}.top-tools .tag{display:none}}@media (max-width:600px){.pagehead{display:block}.actions{margin-top:18px}.page{padding:20px 14px}.stats{grid-template-columns:1fr 1fr}.topbar{padding:0 14px}.bottom-grid{grid-template-columns:1fr}.search{width:100%;min-width:0}h1{font-size:22px}.canvas{padding:15px 8px}.tabs{gap:14px}}.view-controls select{border:1px solid var(--line);max-width:130px;color:var(--ink);background:var(--surface);border-radius:5px;padding:6px;font-size:10px}.actions{flex-wrap:wrap;justify-content:flex-end}.pagehead>div:first-child{min-width:0}.pagehead .actions{flex-shrink:0;max-width:430px}@media (max-width:600px){.pagehead .actions{justify-content:flex-start}.panelhead{flex-wrap:wrap}.topbar .breadcrumb{max-width:75%;font-size:10px}.canvas-caption{font-size:8px}}.physical-plan{background:var(--surface);border-bottom:1px solid var(--line);min-width:0}.plan-heading{justify-content:space-between;align-items:center;gap:12px;padding:20px 20px 12px;display:flex}.plan-heading h3{margin:0 0 5px;font-size:15px}.plan-heading span{color:var(--muted);font-size:11px}.plan-scale{white-space:nowrap;font-family:var(--mono)}.plan-tools{flex-wrap:wrap;align-items:center;gap:6px;padding:0 16px 12px;display:flex}.plan-tools button,.plan-tools select{background:var(--surface);border:1px solid var(--neutral-200);color:var(--ink);border-radius:5px;padding:7px 9px;font-size:11px}.plan-tools select{max-width:170px}.plan-tools button:hover{background:var(--primary-50)}.plan-hint{width:100%;color:var(--muted);margin-top:4px;font-size:10px}.plan-viewport{background:var(--neutral-50);border-top:1px solid var(--neutral-100);border-bottom:1px solid var(--neutral-100);width:100%;height:530px;overflow:hidden}.physical-svg{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.physical-svg.panning{cursor:grabbing}.physical-svg text{font-family:var(--mono);fill:var(--primary-800);pointer-events:none}.physical-svg .plan-zone-label{fill:var(--neutral-500);letter-spacing:.025px;dominant-baseline:middle;font-size:.23px}.physical-svg .plan-row-label{dominant-baseline:middle;fill:var(--primary-800);font-size:.25px;font-weight:700}.physical-svg .plan-axis{font-size:.24px}.physical-svg .plan-rack-label{fill:var(--primary-800);dominant-baseline:middle;font-size:.2px;font-weight:600}.plan-dimension path{fill:none;stroke:var(--neutral-500);stroke-width:.025px}.plan-dimension text{font-size:.3px}.physical-rack{cursor:pointer}.physical-rack:hover,.physical-rack:focus{filter:brightness(1.1);outline:none}.physical-rack:hover>rect,.physical-rack:focus>rect{stroke:var(--primary-600);stroke-width:.08px}.plan-navigator{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:18px;padding:12px 18px;display:flex}.plan-navigator>span{font:9px var(--mono);color:var(--muted);flex:0 0 115px;line-height:1.6}.plan-minimap{cursor:crosshair;width:100%;min-width:0;height:95px;display:block}.plan-view-window{pointer-events:none}.plan-row-schedule{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;padding:14px 18px;display:grid}.plan-row-schedule button{text-align:left;border:1px solid var(--neutral-100);background:var(--surface);padding:11px}.plan-row-schedule b,.plan-row-schedule span,.plan-row-schedule small{display:block}.plan-row-schedule b{color:var(--muted);margin-bottom:7px;font-size:11px}.plan-row-schedule span{margin-bottom:4px;font-size:11px}.plan-row-schedule small{color:var(--muted);font-size:10px}.plan-key{color:var(--muted);flex-wrap:wrap;gap:12px;padding:0 18px 18px;font-size:10px;display:flex}.front-edge{background:var(--primary-800);vertical-align:middle;width:15px;height:3px;margin-right:4px;display:inline-block}.plan-expanded{z-index:100;box-shadow:0 0 0 20px var(--overlay);border-radius:8px;position:fixed;inset:12px;overflow:auto}.plan-expanded .plan-viewport{height:calc(100vh - 315px);min-height:360px}@media (max-width:600px){.plan-heading{flex-direction:column;align-items:flex-start;padding:14px}.plan-viewport{height:460px}.plan-navigator{flex-direction:column;align-items:stretch;gap:4px}.plan-navigator>span{flex-basis:auto}.plan-minimap{height:75px}.plan-expanded{inset:5px}}.physical-svg .plan-pod-label{letter-spacing:.02px;fill:var(--primary-800);paint-order:stroke;stroke:var(--surface);stroke-width:.08px;font-size:.34px;font-weight:700}.plan-schedule>summary{color:var(--muted);cursor:pointer;padding:14px 18px;font-size:12px}.plan-conflict-bar,.plan-validation-bar{background:var(--error-soft);border-bottom:1px solid var(--error);color:var(--error-ink);flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 18px;font-size:12px;display:flex}.plan-validation-bar{background:var(--surface);border-bottom-color:var(--line);color:var(--muted)}.plan-conflict-bar select{max-width:280px}.plan-unplaced{background:var(--error-soft);flex-wrap:wrap;gap:8px;padding:12px;display:flex}.plan-key .conflict-key{color:var(--error-ink);font-weight:600}.physical-svg .rack-conflict .plan-rack-label{fill:var(--error-ink);font-weight:700}.topology-panel{overflow:hidden}.topology-scale,.topology-options{flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.topology-scale input{width:65px}.topology-options{background:var(--surface);border-bottom:1px solid var(--line);padding:16px 20px}.topology-options label{align-items:center;gap:7px;display:flex}.topology-options input{width:auto}.topology-options span{color:var(--muted);font-size:11px}.topology-tabs{overflow-x:auto}.topology-tabs button{white-space:nowrap}.topology-scroll{background:radial-gradient(var(--neutral-100) .65px, transparent .65px);background-size:16px 16px;overflow:auto}.topology-svg{width:100%;height:auto;display:block}.topology-wire{fill:none;stroke:var(--primary-400);stroke-width:2px;opacity:.8}.topology-wire.optional-wire{stroke-dasharray:6 4}.topology-wire.muted-wire{opacity:.12}.topology-node{cursor:pointer}.topology-node rect{fill:var(--primary-50);stroke:var(--primary-300);stroke-width:1.4px}.topology-node .device-mark{fill:var(--primary-600);stroke:none}.topology-node .device-ports{stroke:var(--primary-100);stroke-width:1.5px}.topology-node .node-label{fill:var(--primary-800);font:600 12px sans-serif}.topology-node .node-count{font:11px var(--mono);fill:var(--neutral-700)}.topology-node .node-kind{font:10px var(--mono);fill:var(--neutral-500)}.topology-node.optional-node>rect:first-child{stroke-dasharray:5 3;fill:var(--rack-spine);stroke:var(--graph-purple)}.topology-node.selected-node>rect:first-child,.topology-node:focus>rect:first-child{stroke:var(--primary-600);stroke-width:3px;fill:var(--primary-100)}.topology-node.dim-node{opacity:.3}.tier-caption{font:11px var(--mono);fill:var(--neutral-500);letter-spacing:1px}.topology-caption{border-top:1px solid var(--line);color:var(--muted);padding:16px 20px;font-size:12px;line-height:1.7}.topology-inspector{background:var(--primary-50);border-top:1px solid var(--line);padding:16px 20px;font-size:12px}.topology-inspector p{margin:8px 0;line-height:1.7}.topology-inspector .actions{gap:16px}.topology-links{border-top:1px solid var(--line);padding:16px 20px;font-size:12px}.topology-links summary{cursor:pointer;font-weight:600}.topology-sources{border-top:1px solid var(--line);flex-wrap:wrap;gap:15px;padding:14px 20px;font-size:11px;display:flex}.topology-expanded{z-index:1000;box-shadow:0 0 0 100vmax var(--overlay);position:fixed;inset:16px;overflow:auto}.wire-label{font:10px var(--mono);fill:var(--primary-700);stroke:var(--surface);stroke-width:5px;paint-order:stroke;stroke-linejoin:round;pointer-events:none}.plan-overflow-label{font:600 .19px var(--mono);fill:var(--error-ink);stroke:var(--surface);stroke-width:.06px;paint-order:stroke}.mcp-dialog{width:620px}.mcp-dialog input{border:1px solid var(--line);background:var(--neutral-50);width:100%;color:var(--ink);font:11px/1.6 var(--mono);border-radius:6px;padding:10px}.mcp-commands{min-height:80px}.attribution{color:var(--muted);overflow-wrap:anywhere;margin-top:10px;font-size:11px;line-height:1.5}.revision-summary{overflow-wrap:anywhere;font-size:12px}.view-controls[hidden],.legend[hidden]{display:none}dialog.cable-dialog{width:min(1200px,95vw);max-width:95vw}.cable-dialog .panelbody{max-height:78vh;overflow:auto}.cable-actions{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0;display:flex}.cable-table{max-height:50vh;overflow:auto}.cable-table table{border-collapse:collapse;width:100%;font-size:12px}.cable-table th,.cable-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);overflow-wrap:anywhere;padding:10px}.cable-table th{background:var(--bg);position:sticky;top:0}.cable-table pre{white-space:pre-wrap;max-width:420px}#cable-spec{width:100%;font:12px/1.5 monospace}#cable-workspace input,#netbox-workspace input{min-width:240px}.topology-scroll{background:#fff}.topology-component{cursor:pointer}.topology-component:focus{outline:none}.topology-component:focus>rect:first-of-type{stroke:#456aaa;stroke-width:3px}
