:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e6edf7;background:#07111f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 0 0,#143a5a 0,#07111f 38%,#04070d 100%);min-height:100vh;margin:0}button{font:inherit}.appShell{width:min(1440px,100vw - 32px);margin:0 auto;padding:28px 0 40px}.topbar{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}h1,h2,h3,p{margin:0}h1{letter-spacing:-.055em;font-size:clamp(30px,5vw,54px)}h2{letter-spacing:-.02em;font-size:20px}h3{font-size:18px}.subtitle{color:#9fb1c8;margin-top:8px}.eyebrow{color:#69d2ff;text-transform:uppercase;letter-spacing:.14em;margin-bottom:6px;font-size:12px;font-weight:800}.topbarActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.topbarBadge,.pill,.sourceBadge,.userBadge{color:#bfefff;white-space:nowrap;background:#69d2ff1a;border:1px solid #69d2ff47;border-radius:999px;align-items:center;gap:8px;padding:9px 13px;font-size:13px;font-weight:800;display:inline-flex}.sourceBadge{color:#d7e1ef;background:#94a3b81c;border-color:#94a3b83d}.sourceBadge.live{color:#bbf7d0;background:#22c55e1f;border-color:#22c55e52}.userBadge{color:#fef3c7;background:#facc151a;border-color:#facc153d}.pill{background:color-mix(in srgb, var(--pill-color,#69d2ff) 18%, transparent);color:#eaf8ff;border-color:color-mix(in srgb, var(--pill-color,#69d2ff) 55%, transparent);padding:7px 10px}.pill.muted{--pill-color:#7b8797;color:#c9d3e2}.ghostButton{color:#d7e1ef;cursor:pointer;background:#02070e47;border:1px solid #94a3b83d;border-radius:999px;align-items:center;gap:7px;padding:9px 12px;font-weight:800;display:inline-flex}.ghostButton:hover{background:#94a3b824}.notice{color:#fef3c7;background:#facc151a;border:1px solid #facc1547;border-radius:16px;align-items:center;gap:9px;margin-bottom:14px;padding:12px 14px;font-size:13px;font-weight:700;display:flex}.notice.compact{margin:0 0 10px;padding:10px;font-size:12px}.notice.success{color:#bbf7d0;background:#22c55e1a;border-color:#22c55e47}.navTabs{flex-wrap:wrap;gap:10px;margin:0 0 14px;display:flex}.navTabs button{color:#cbd8e9;cursor:pointer;background:#02070e52;border:1px solid #94a3b833;border-radius:999px;align-items:center;gap:8px;padding:10px 14px;font-weight:900;display:inline-flex}.navTabs button.active,.navTabs button:hover{color:#eaf8ff;background:#69d2ff24;border-color:#69d2ff59}.metricGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px;display:grid}.metricCard,.card{background:linear-gradient(#0f1f33e0,#060d18e6);border:1px solid #94a3b82e;border-radius:24px;box-shadow:0 24px 80px #0000003d}.metricCard{grid-template-columns:auto 1fr;grid-template-areas:"icon label""icon value";gap:2px 12px;padding:16px;display:grid}.metricCard span{color:#69d2ff;background:#69d2ff1f;border-radius:14px;grid-area:icon;place-items:center;width:42px;height:42px;display:grid}.metricCard svg{width:21px;height:21px}.metricCard small{color:#9fb1c8;grid-area:label}.metricCard strong{grid-area:value;font-size:26px}.workspaceGrid{grid-template-columns:300px minmax(0,1fr) 330px;align-items:stretch;gap:14px;display:grid}.card{min-height:620px;overflow:hidden}.cardHeader{border-bottom:1px solid #94a3b821;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px;display:flex}.feederPanel{flex-direction:column;display:flex}.feederList{flex-direction:column;gap:7px;max-height:560px;padding:10px;display:flex;overflow:auto}.feederButton{color:#d9e7f7;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:15px;grid-template-columns:auto 1fr;align-items:center;gap:10px;width:100%;padding:10px;display:grid}.feederButton:hover,.feederButton.active{background:#94a3b81c;border-color:#94a3b82e}.feederButton.active{outline:1px solid #69d2ff4d}.feederColor{border-radius:999px;width:12px;height:34px;box-shadow:0 0 18px}.feederButton strong,.feederButton small{display:block}.feederButton small{color:#8393a9;margin-top:2px;font-size:11px}.diagramPanel{min-width:0}.canvasWrap{padding:14px}svg{background:radial-gradient(circle at 50% 45%,#194d7161,#02070ecc);border:1px solid #94a3b821;border-radius:20px;width:100%;min-height:430px}.clickable{cursor:pointer}.sectionLine{stroke:var(--feeder-color);stroke-width:10px;stroke-linecap:round;opacity:.95}.sectionLine.open{stroke-dasharray:20 16;opacity:.45}.sectionLine.unknown{stroke:#778292;stroke-dasharray:6 14;opacity:.7}.sectionLabel,.nodeLabel,.nodeMeta{fill:#cbd8e9;paint-order:stroke;stroke:#02070ee6;stroke-width:4px;font-size:14px;font-weight:800}.nodeMeta{fill:#91a3b8;letter-spacing:.09em;font-size:11px}.nodeCircle{fill:#081522;stroke:var(--feeder-color);stroke-width:5px}.nodeCircle.open{stroke-dasharray:9 7;opacity:.72}.nodeCircle.unknown{stroke:#7b8797}.nodeIcon{color:#facc15}.deviceSymbol{fill:#ffffff24;stroke:#e6edf7;stroke-width:2px}.endpointDot{fill:#e6edf7}.legend{color:#9fb1c8;flex-wrap:wrap;gap:14px;margin-top:14px;font-size:13px;display:flex}.legend span{align-items:center;gap:7px;display:inline-flex}.legend i{background:#22c55e;border-radius:999px;width:28px;height:5px;display:inline-block}.legendOpen{background:repeating-linear-gradient(90deg,#f59e0b 0 8px,#0000 8px 13px)!important}.legendUnknown{background:repeating-linear-gradient(90deg,#7b8797 0 5px,#0000 5px 10px)!important}.emptyState,.emptyDetail{text-align:center;color:#9fb1c8;align-content:center;place-items:center;gap:12px;min-height:430px;padding:28px;display:grid}.emptyState svg,.emptyDetail svg{color:#facc15}.emptyState h3{color:#e6edf7}.emptyState p,.emptyDetail p{max-width:460px;line-height:1.55}.detailPanel{flex-direction:column;display:flex}.detailContent{flex-direction:column;gap:13px;padding:18px;display:flex}.detailContent h3{margin-bottom:3px;line-height:1.25}.detailRow{border-bottom:1px solid #94a3b81f;grid-template-columns:96px 1fr;align-items:start;gap:10px;padding:10px 0;display:grid}.detailRow span{color:#8393a9;font-size:13px}.detailRow strong{color:#e6edf7;word-break:break-word;font-size:13px}.statusEditor{background:#69d2ff14;border:1px solid #69d2ff33;border-radius:18px;margin-top:8px;padding:14px}.statusEditor label{margin-bottom:10px;font-weight:800;display:block}.statusEditor small{color:#91a3b8;margin-top:10px;line-height:1.45;display:block}.statusButtons{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.statusButtons button{color:#d9e7f7;cursor:pointer;background:#02070e59;border:1px solid #94a3b833;border-radius:11px;padding:8px 6px;font-size:12px;font-weight:900}.statusButtons button.selected{color:#03111b;background:#69d2ff}.statusButtons button:disabled{cursor:not-allowed;opacity:.45}.loginWrap{place-items:center;min-height:640px;display:grid}.loginCard{width:min(460px,100%);min-height:auto;padding:26px}.loginIcon{color:#69d2ff;background:#69d2ff21;border-radius:20px;place-items:center;width:58px;height:58px;margin-bottom:14px;display:grid}.loginHelp{color:#9fb1c8;margin:8px 0 18px;line-height:1.55}.loginCard label{color:#cbd8e9;margin:14px 0 7px;font-size:13px;font-weight:800;display:block}.loginCard input{color:#e6edf7;background:#02070e6b;border:1px solid #94a3b838;border-radius:14px;outline:none;width:100%;padding:12px 13px}.loginCard input:focus{border-color:#69d2ff94;box-shadow:0 0 0 3px #69d2ff1c}.primaryButton{color:#03111b;cursor:pointer;background:#69d2ff;border:0;border-radius:14px;width:100%;margin-top:16px;padding:12px 14px;font-weight:900}.primaryButton:disabled{opacity:.6;cursor:wait}.loginChecklist{color:#91a3b8;border-top:1px solid #94a3b824;flex-direction:column;gap:6px;margin-top:18px;padding-top:16px;font-size:12px;line-height:1.4;display:flex}.loginChecklist strong{color:#e6edf7}.usersGrid{grid-template-columns:380px minmax(0,1fr);align-items:start;gap:14px;display:grid}.userForm,.usersListCard{min-height:auto}.innerHeader{border-bottom:1px solid #94a3b821;margin-bottom:4px;padding:0 0 16px}.formBody{padding:18px}.userForm .formBody{padding-top:8px}.userForm label{color:#cbd8e9;margin:13px 0 7px;font-size:13px;font-weight:800;display:block}.userForm input,.userForm select{color:#e6edf7;background:#02070e6b;border:1px solid #94a3b838;border-radius:14px;outline:none;width:100%;padding:12px 13px}.userForm input:focus,.userForm select:focus{border-color:#69d2ff94;box-shadow:0 0 0 3px #69d2ff1c}.checkRow{align-items:center;gap:9px;display:flex!important}.checkRow input{width:auto}.usersList{flex-direction:column;gap:10px;max-height:620px;padding:12px;display:flex;overflow:auto}.userRow{background:#02070e38;border:1px solid #94a3b821;border-radius:16px;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:12px;display:grid}.userRow strong,.userRow small{display:block}.userRow small{color:#8393a9;word-break:break-all;margin-top:4px;font-size:11px}.rolePill,.activePill{text-transform:uppercase;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:900}.rolePill.admin{color:#fecaca;background:#ef444421;border:1px solid #ef444440}.rolePill.operator{color:#bfdbfe;background:#3b82f621;border:1px solid #3b82f640}.rolePill.viewer{color:#ddd6fe;background:#8b5cf621;border:1px solid #8b5cf640}.activePill.yes{color:#bbf7d0;background:#22c55e21;border:1px solid #22c55e40}.activePill.no{color:#e5e7eb;background:#6b728021;border:1px solid #6b728040}.tinyButton{color:#d7e1ef;cursor:pointer;background:#02070e52;border:1px solid #94a3b83d;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900}.tinyButton:hover:not(:disabled){background:#69d2ff24;border-color:#69d2ff59}.tinyButton:disabled{opacity:.45;cursor:not-allowed}.sectionHelp{color:#91a3b8;margin-top:6px;font-size:13px;line-height:1.45}.auditCard{min-height:auto}.auditContent{padding:14px}.auditTableWrap{border:1px solid #94a3b821;border-radius:18px;overflow:auto}.auditTable{border-collapse:collapse;width:100%;min-width:1040px}.auditTable th,.auditTable td{text-align:left;vertical-align:top;border-bottom:1px solid #94a3b81c;padding:12px;font-size:13px}.auditTable th{color:#69d2ff;text-transform:uppercase;letter-spacing:.08em;background:#02070e57;font-size:11px}.auditTable tr:last-child td{border-bottom:0}.auditTable strong,.auditTable small{display:block}.auditTable small{color:#8393a9;word-break:break-all;margin-top:4px}.statusFlow{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.statusFlow b{color:#e6edf7}.statusFlow i{color:#69d2ff;font-style:normal;font-weight:900}@media (width<=1180px){.workspaceGrid{grid-template-columns:280px 1fr}.detailPanel{grid-column:1/-1;min-height:auto}}@media (width<=860px){.topbar{flex-direction:column}.metricGrid,.workspaceGrid,.usersGrid{grid-template-columns:1fr}.card{min-height:auto}}
