.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{--bg-0: #07080a;--bg-1: #0d1014;--bg-2: #12161c;--bg-3: #181d25;--bg-4: #1f2530;--line-1: #1a1f28;--line-2: #252c38;--line-3: #323b4a;--fg-0: #e6ecf2;--fg-1: #a8b3c1;--fg-2: #6e7889;--fg-3: #4a5365;--fg-4: #2e3543;--cyan: #2ee8ff;--cyan-d: #0ea5b8;--green: #34f5a0;--green-d: #109e60;--amber: #ffb547;--amber-d: #b87a1f;--red: #ff4d6a;--red-d: #b32340;--magenta: #ff5edb;--violet: #8b7dff;--q-good: var(--green);--q-bad: var(--red);--q-stale: var(--amber);--font-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--t-xs: 10.5px;--t-sm: 11.5px;--t-md: 12.5px;--t-lg: 14px;--t-xl: 17px;--t-2xl: 22px;--s-1: 4px;--s-2: 6px;--s-3: 8px;--s-4: 12px;--s-5: 16px;--s-6: 20px;--s-7: 28px;--r-1: 2px;--r-2: 4px;--r-3: 6px;--r-4: 10px;--glow-cyan: 0 0 0 1px rgba(46, 232, 255, .35), 0 0 12px -2px rgba(46, 232, 255, .45);--glow-green: 0 0 0 1px rgba(52, 245, 160, .35), 0 0 12px -2px rgba(52, 245, 160, .45);--glow-amber: 0 0 0 1px rgba(255, 181, 71, .4), 0 0 12px -2px rgba(255, 181, 71, .5);--glow-red: 0 0 0 1px rgba(255, 77, 106, .45), 0 0 14px -2px rgba(255, 77, 106, .55);--flash-cyan: rgba(46, 232, 255, .18);--flash-green: rgba(52, 245, 160, .16);--flash-amber: rgba(255, 181, 71, .18)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg-0);color:var(--fg-0);font-family:var(--font-mono);font-size:var(--t-md);font-feature-settings:"ss01","cv11","tnum";-webkit-font-smoothing:antialiased;letter-spacing:.01em;overflow:hidden}.page-bg:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,rgba(255,255,255,.012) 2px,rgba(255,255,255,.012) 3px);z-index:1}@keyframes flash-bg{0%{background-color:var(--flash-cyan)}to{background-color:transparent}}@keyframes flash-bg-green{0%{background-color:var(--flash-green)}to{background-color:transparent}}@keyframes flash-bg-amber{0%{background-color:var(--flash-amber)}to{background-color:transparent}}.flash{animation:flash-bg .7s ease-out}.flash-green{animation:flash-bg-green .7s ease-out}.flash-amber{animation:flash-bg-amber .7s ease-out}@keyframes caret-blink{50%{opacity:0}}.caret{display:inline-block;width:7px;height:12px;background:var(--cyan);animation:caret-blink 1s steps(2) infinite;vertical-align:-1px}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:var(--line-3)}.mono{font-family:var(--font-mono)}.sans{font-family:var(--font-sans)}.dim{color:var(--fg-2)}.dimer{color:var(--fg-3)}.upper{text-transform:uppercase;letter-spacing:.08em}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:1px}.dot-good{background:var(--q-good);box-shadow:0 0 6px var(--q-good)}.dot-bad{background:var(--q-bad);box-shadow:0 0 6px var(--q-bad)}.dot-stale{background:var(--q-stale);box-shadow:0 0 6px var(--q-stale)}.dot-off{background:var(--fg-4)}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}.live-pulse{animation:live-pulse 1.6s ease-in-out infinite}.chip{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border:1px solid var(--line-2);border-radius:var(--r-1);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-1);background:var(--bg-1);white-space:nowrap}.chip-good{color:var(--green);border-color:#34f5a059}.chip-bad{color:var(--red);border-color:#ff4d6a73}.chip-stale{color:var(--amber);border-color:#ffb54766}.chip-cyan{color:var(--cyan);border-color:#2ee8ff59}.chip-violet{color:var(--violet);border-color:#8b7dff59}.btn{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:var(--bg-2);border:1px solid var(--line-2);color:var(--fg-0);font-family:var(--font-mono);font-size:var(--t-sm);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;border-radius:var(--r-2);transition:background .12s,border-color .12s;-webkit-user-select:none;user-select:none}.btn:hover{background:var(--bg-3);border-color:var(--line-3)}.btn:active{background:var(--bg-4)}.btn-primary{background:#2ee8ff14;border-color:#2ee8ff66;color:var(--cyan)}.btn-primary:hover{background:#2ee8ff24}.btn-icon{padding:4px 6px}.btn-sm{padding:2px 6px;font-size:var(--t-xs)}.kbd{display:inline-block;padding:0 4px;min-width:16px;border:1px solid var(--line-3);border-bottom-width:2px;background:var(--bg-1);border-radius:3px;font-size:10px;color:var(--fg-1);text-align:center}.card{background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--r-3);display:flex;flex-direction:column;min-height:0}.card-h{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line-1);font-size:var(--t-sm);text-transform:uppercase;letter-spacing:.1em;color:var(--fg-1);flex-shrink:0}.card-h-title{color:var(--fg-0);font-weight:500}.card-h-spacer{flex:1}.card-b{flex:1;min-height:0;overflow:auto}.section-h{padding:6px 12px;font-size:var(--t-xs);color:var(--fg-2);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--line-1);background:#ffffff03;position:sticky;top:0;z-index:2}.row{transition:background .12s}.row:hover{background:var(--bg-2)}.app{position:relative;display:grid;grid-template-rows:56px 1fr 28px;grid-template-columns:240px 1fr;grid-template-areas:"hdr  hdr" "rail main" "stat stat";height:100vh;width:100vw;z-index:2}.hdr{grid-area:hdr;display:flex;align-items:center;gap:16px;padding:0 14px;background:linear-gradient(180deg,var(--bg-1) 0%,#0a0d11 100%);border-bottom:1px solid var(--line-2);position:relative}.hdr:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(46,232,255,.4),transparent)}.hdr-l{display:flex;align-items:center;gap:12px;min-width:240px;padding-right:12px;border-right:1px solid var(--line-1);height:100%}.hdr-tabs{display:flex;align-items:center;gap:4px;padding:0 12px;border-right:1px solid var(--line-1);height:100%}.hdr-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid transparent;color:var(--fg-2);font-size:var(--t-xs);letter-spacing:.18em;font-weight:600;padding:6px 12px;cursor:pointer;border-radius:3px}.hdr-tab:hover{color:var(--fg-0);background:#ffffff0a}.hdr-tab--active{color:var(--cyan);border-color:#2ee8ff66;background:#2ee8ff14}.hdr-c{display:flex;align-items:center;gap:24px;flex:1;padding-left:8px}.hdr-r{display:flex;align-items:center;gap:8px}.pipeline-page{position:relative;grid-column:1 / -1;grid-row:2;min-height:0;min-width:0;background:var(--bg-0)}.pipeline-page .react-flow{background:transparent;width:100%;height:100%}.pipeline-status{position:absolute;top:12px;left:12px;z-index:5;padding:6px 10px;border-radius:3px;font-size:var(--t-xs);letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;border:1px solid var(--line-1);background:#0006}.pipeline-status--ok{color:var(--green);border-color:#6f96}.pipeline-status--loading{color:var(--cyan);border-color:#2ee8ff66}.pipeline-status--err{color:var(--red);border-color:#ff505080}.pipeline-search{position:absolute;top:48px;left:12px;z-index:5;display:flex;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pipeline-search-input{width:320px;padding:6px 10px;background:#0000008c;border:1px solid var(--line-1);border-radius:3px;color:var(--fg-0);font-family:inherit;font-size:var(--t-sm);letter-spacing:.02em;outline:none}.pipeline-search-input::placeholder{color:var(--fg-2)}.pipeline-search-input:focus{border-color:var(--cyan)}.pipeline-search-count{padding:3px 8px;border-radius:10px;background:#2ee8ff1f;border:1px solid rgba(46,232,255,.4);color:var(--cyan);font-size:var(--t-xs);letter-spacing:.08em}.pn-legend{position:absolute;bottom:12px;right:12px;z-index:5;min-width:180px;padding:10px 12px;border:1px solid var(--line-1);border-radius:4px;background:#000000c7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--fg-1);pointer-events:auto}.pn-legend-title{font-size:10px;letter-spacing:.16em;color:var(--fg-2);text-transform:uppercase;margin-bottom:8px;font-weight:600}.pn-legend-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;font-size:11px}.pn-legend-list li{display:flex;align-items:center;gap:8px}.pn-legend-swatch{width:22px;height:3px;border-radius:2px;flex-shrink:0}.pn-legend-swatch--dashed{background:repeating-linear-gradient(to right,var(--swatch-color) 0 4px,transparent 4px 7px)!important}.pipeline-hints{position:absolute;bottom:12px;right:210px;z-index:5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pipeline-hints-toggle{width:28px;height:28px;border-radius:14px;border:1px solid var(--line-1);background:#00000080;color:var(--fg-2);cursor:pointer;font-size:14px;line-height:1}.pipeline-hints-toggle:hover,.pipeline-hints--open .pipeline-hints-toggle{color:var(--cyan);border-color:var(--cyan)}.pipeline-hints-list{list-style:none;padding:8px 12px;margin:4px 0 0;background:#000000bf;border:1px solid var(--line-1);border-radius:4px;display:flex;flex-direction:column;gap:4px;font-size:10px;color:var(--fg-1);letter-spacing:.06em}.pipeline-hints-list kbd{display:inline-block;min-width:16px;padding:1px 4px;margin-right:6px;background:#2ee8ff14;border:1px solid rgba(46,232,255,.3);border-radius:2px;color:var(--cyan);text-align:center;font-size:9px}.pn{width:240px;background:var(--bg-1, #0e1218);border:1px solid var(--line-1);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--fg-1);cursor:pointer;overflow:hidden;position:relative}.pn:hover{border-color:var(--cyan)}.pn-stripe{height:3px}.pn--source .pn-stripe{background:#3aa0ff}.pn--normalize .pn-stripe{background:#b07aff}.pn--storage .pn-stripe{background:#ffb547}.pn--api .pn-stripe{background:#6f9}.pn--consumer .pn-stripe{background:#777}.pn--source{border-left:2px solid #3aa0ff}.pn--normalize{border-left:2px solid #b07aff}.pn--storage{border-left:2px solid #ffb547}.pn--api{border-left:2px solid #66ff99}.pn--consumer{border-left:2px solid #777}.pn-body{padding:8px 10px;display:flex;flex-direction:column;gap:4px}.pn-title-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.pn-label{color:var(--fg-0);font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.02em}.pn-domain{font-size:9px;color:var(--fg-2);text-transform:uppercase;letter-spacing:.12em;flex-shrink:0}.pn-subtitle{display:flex;gap:4px;flex-wrap:wrap}.pn-tag{display:inline-block;padding:1px 6px;border-radius:2px;background:#ffffff0f;color:var(--fg-1);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.pn-tag--mute{background:#ffffff08;color:var(--fg-2)}.pn-tag--ws{background:#66ff9929;color:#6f9}.pn-tag--rest{background:#2ee8ff29;color:var(--cyan)}.pn-detail{display:flex;flex-direction:column;gap:2px;margin-top:4px}.pn-kv{display:flex;gap:6px;align-items:baseline;font-size:10px}.pn-k{color:var(--fg-2);flex-shrink:0;min-width:44px;text-transform:uppercase;letter-spacing:.08em;font-size:9px}.pn-v{color:var(--fg-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pn-v code{color:var(--fg-0);font-size:10px}.pn-handle{background:var(--fg-2);border:none;width:6px;height:6px}.pn--live-active{box-shadow:0 0 0 1px #6f96,0 0 14px #66ff992e}.pn--live-dormant{opacity:.65}.pn--live-dead{opacity:.45;border-left-style:dashed}.pn--live-dead .pn-stripe{background:#666}.pn--live-active .pn-stripe{filter:brightness(1.25)}.pn--highlighted{box-shadow:0 0 0 2px var(--cyan),0 0 18px #2ee8ff66;border-color:var(--cyan)!important}.pn--dimmed{opacity:.25}.pn--dimmed.pn--highlighted{opacity:1}.pn-service-group{width:100%;height:100%;border:1px dashed transparent;border-radius:6px;position:relative;cursor:default}.pn-service-group-header{position:absolute;top:-12px;left:14px;display:flex;align-items:center;gap:6px;padding:2px 10px;background:var(--bg-0, #06090d);border:1px solid transparent;border-radius:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;z-index:2}.pn-service-group-sub{color:var(--fg-2);font-weight:500;letter-spacing:.04em;text-transform:none;padding-left:6px;border-left:1px solid var(--line-1)}.pn-service-group-count{color:var(--fg-2);font-weight:500;letter-spacing:.04em;padding-left:6px;border-left:1px solid var(--line-1)}.pn-service-group--area .pn-service-group-header{top:-14px;font-size:11px;padding:3px 12px;letter-spacing:.18em}.pn-side{position:absolute;top:12px;right:12px;bottom:12px;width:360px;background:#080b10f2;border:1px solid var(--line-1);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--fg-1);overflow:auto;z-index:6;display:flex;flex-direction:column}.pn-side-hdr{padding:10px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line-1)}.pn-side-title{font-size:12px;font-weight:700;color:var(--fg-0)}.pn-side-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;cursor:pointer;color:var(--fg-2);font-size:16px}.pn-side-close:hover{color:var(--fg-0)}.pn-side-body{padding:12px 14px;display:flex;flex-direction:column;gap:8px}.pn-side-body pre{background:#ffffff08;padding:8px;border-radius:3px;font-size:10px;color:var(--fg-1);white-space:pre-wrap;word-break:break-all}.pn-side-section{display:flex;flex-direction:column;gap:4px}.pn-side-section h4{margin:0 0 4px;font-size:10px;color:var(--fg-2);text-transform:uppercase;letter-spacing:.12em;font-weight:600}.pn-side-stage{display:inline-block;padding:1px 6px;font-size:9px;letter-spacing:.16em;font-weight:700;border-radius:2px;flex-shrink:0}.pn-side-stage--source{color:#3aa0ff;background:#3aa0ff24}.pn-side-stage--normalize{color:#b07aff;background:#b07aff24}.pn-side-stage--storage{color:#ffb547;background:#ffb54724}.pn-side-stage--api{color:#6f9;background:#66ff9924}.pn-side-stage--consumer{color:#ccc;background:#ffffff0f}.pn-side-hdr .pn-side-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pn-kv-side{display:flex;align-items:baseline;gap:8px;font-size:11px;line-height:1.5}.pn-side-k{color:var(--fg-2);min-width:76px;flex-shrink:0;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.pn-side-v{color:var(--fg-1);overflow-wrap:anywhere}.pn-side-v code{color:var(--fg-0)}.pn-side-extras{margin-top:4px}.pn-side-extras summary{cursor:pointer;color:var(--fg-2);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.pn-side-extras pre{margin-top:4px}.pn-ref{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:6px 8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff08;border:1px solid var(--line-1);border-radius:3px;color:var(--fg-1);cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;text-align:left}.pn-ref:hover{border-color:var(--cyan)}.pn-ref code{color:var(--fg-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pn-ref-action{font-size:9px;color:var(--fg-2);text-transform:uppercase;letter-spacing:.12em;flex-shrink:0}.pn-ref--copied{border-color:var(--green)}.pn-ref--copied .pn-ref-action{color:var(--green)}.pn-related-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:4px}.pn-related-stage{flex-shrink:0;min-width:56px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding-top:4px}.pn-related-stage--source{color:#3aa0ff}.pn-related-stage--normalize{color:#b07aff}.pn-related-stage--storage{color:#ffb547}.pn-related-stage--api{color:#6f9}.pn-related-stage--consumer{color:#aaa}.pn-related-items{display:flex;flex-wrap:wrap;gap:4px;flex:1}.pn-related-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff0a;border:1px solid var(--line-1);border-radius:2px;color:var(--fg-1);padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;cursor:pointer}.pn-related-btn:hover{border-color:var(--cyan);color:var(--fg-0)}.hdr-brand{display:flex;align-items:center;gap:10px}.brand-mark{width:32px;height:32px;display:grid;place-items:center;background:#2ee8ff0f;border:1px solid rgba(46,232,255,.3);border-radius:4px}.brand-name{font-size:13px;letter-spacing:.18em;color:var(--fg-0);font-weight:600}.brand-sub{font-size:10px;color:var(--fg-2);margin-top:2px;letter-spacing:.06em}.hdr-stat{display:flex;align-items:center;gap:6px;font-size:var(--t-sm)}.hdr-stat .dim{color:var(--fg-2);text-transform:uppercase;letter-spacing:.1em;font-size:var(--t-xs)}.is-refreshing{background:#2ee8ff2e!important}.hdr--emergency{border-bottom-color:var(--red);box-shadow:inset 0 -2px 0 0 var(--red)}.hdr-emergency-banner{flex:1;align-self:stretch;display:flex;align-items:center;justify-content:center;gap:10px;padding:4px 14px;background:linear-gradient(90deg,var(--red-d) 0%,var(--red) 50%,var(--red-d) 100%);color:#fff;font-weight:700;letter-spacing:.18em;font-size:var(--t-sm);border-radius:3px;animation:hdr-emergency-pulse 1.4s ease-in-out infinite}.hdr-emergency-icon{font-size:16px}.hdr-emergency-text b{color:#fff}@keyframes hdr-emergency-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.25)}}.hdr-svc-off{display:inline-block;margin-left:8px;padding:1px 6px;font-size:9px;font-weight:700;letter-spacing:.14em;color:var(--amber);border:1px solid rgba(255,181,71,.5);border-radius:3px;background:#ffb54714}.rail{grid-area:rail;background:var(--bg-1);border-right:1px solid var(--line-2);display:flex;flex-direction:column;overflow:auto;padding:8px 0 12px}.rail-h{padding:8px 12px 6px;font-size:var(--t-xs);color:var(--fg-2);text-transform:uppercase;letter-spacing:.12em;display:flex;justify-content:space-between}.rail-list{display:flex;flex-direction:column;gap:1px}.src-row{position:relative;padding:8px 12px 8px 14px;border-left:2px solid transparent;cursor:default}.src-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px}.src-good:before{background:var(--green)}.src-bad:before{background:var(--red)}.src-stale:before{background:var(--amber)}.src-line1{display:flex;align-items:center;gap:6px}.src-name{font-size:var(--t-md);color:var(--fg-0);flex:1}.src-refresh{padding:1px 5px!important;font-size:11px!important;opacity:.6}.src-refresh:hover{opacity:1}.src-line2{font-size:var(--t-xs);color:var(--fg-2);margin-top:2px}.src-line3{font-size:var(--t-xs);color:var(--fg-1);margin-top:1px}.src-addr{font-family:var(--font-mono)}.src-meta{display:flex;flex-direction:column;gap:2px;margin-top:4px;font-size:var(--t-xs);color:var(--fg-1)}.src-meta>span{display:flex;gap:4px;align-items:baseline}.src-meta .dim{color:var(--fg-3);margin-right:3px}.rail-stats{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:6px 12px;font-size:var(--t-sm)}.rail-stats>div{display:flex;justify-content:space-between}.rail-stats b{color:var(--fg-0);font-weight:600}.rail-emerg{padding:4px 12px 8px}.emerg-state{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px;font-size:var(--t-md)}.emerg-state.ok{background:#34f5a00d;border:1px solid rgba(52,245,160,.2);color:var(--green)}.emerg-meta{display:flex;flex-direction:column;gap:3px;margin-top:6px;font-size:var(--t-xs);color:var(--fg-1)}.emerg-meta .dim{color:var(--fg-3);margin-right:4px}.main{grid-area:main;display:grid;grid-template-columns:1.05fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:8px;padding:8px;min-height:0;min-width:0}.panel-robots{grid-column:1 / 2;grid-row:1 / 2}.panel-network{grid-column:1 / 2;grid-row:2 / 3}.panel-cameras{grid-column:1 / 2;grid-row:3 / 4}.panel-infra{grid-column:2 / 3;grid-row:1 / 4}.panel-jobs{grid-column:3 / 4;grid-row:1 / 2}.panel-events{grid-column:3 / 4;grid-row:2 / 4}.net-list{padding:6px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}.net-empty{padding:10px;font-size:var(--t-xs)}.net-row{border:1px solid var(--line-2);background:var(--bg-2);border-radius:4px;padding:6px 8px;display:flex;flex-direction:column;gap:3px;font-size:var(--t-sm)}.net-row.net-good{border-color:#34f5a040}.net-row.net-bad{border-color:#ff4d6a59}.net-line1,.net-line2,.net-line3{display:flex;align-items:center;gap:6px}.net-mid{color:var(--fg-0);font-weight:500}.net-name{color:var(--fg-1)}.net-line3{font-size:var(--t-xs);color:var(--fg-2)}.robots-grid{padding:6px;display:flex;flex-direction:column;gap:6px}.rbot{border:1px solid var(--line-2);background:var(--bg-2);border-radius:4px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;font-size:var(--t-sm);position:relative}.rbot:before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:2px;border-radius:4px 0 0 4px}.rbot-tasking:before{background:var(--cyan);box-shadow:0 0 6px var(--cyan)}.rbot-charging:before{background:var(--amber)}.rbot-paused:before{background:var(--amber)}.rbot-idle:before{background:var(--green)}.rbot-manual:before{background:var(--violet)}.rbot-h{display:flex;align-items:center;gap:6px}.rbot-name{font-family:var(--font-mono);color:var(--fg-0);font-weight:500;letter-spacing:.04em}.rbot-row{display:flex;align-items:center;gap:6px;font-size:var(--t-xs)}.rbot-row .dim{color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;min-width:28px}.rbot-task{padding-top:4px;border-top:1px dashed var(--line-1);margin-top:2px}.batt{position:relative;flex:1;height:12px;background:var(--bg-1);border:1px solid var(--line-2);border-radius:2px;overflow:hidden;min-width:100px}.batt-fill{position:absolute;top:0;left:0;bottom:0}.batt-ok{background:var(--green);opacity:.55}.batt-mid{background:var(--amber);opacity:.55}.batt-low{background:var(--red);opacity:.6}.batt-num{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:10px;color:var(--fg-0);font-family:var(--font-mono);text-shadow:0 0 3px rgba(0,0,0,.7)}.tbl{width:100%;border-collapse:collapse;font-size:var(--t-md)}.tbl thead th{position:sticky;top:0;background:var(--bg-2);text-align:left;padding:6px 8px;font-size:var(--t-xs);font-weight:500;color:var(--fg-2);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--line-2);z-index:3}.tbl tbody td{padding:6px 8px;border-bottom:1px solid var(--line-1);vertical-align:middle}.tbl tbody tr:hover{background:var(--bg-2)}.infra-body{padding:0}.infra-group{margin-bottom:4px}.infra-group .section-h{display:flex;align-items:center}.tbl-infra td{font-size:var(--t-sm)}.points{display:flex;flex-wrap:wrap;gap:4px}.pt{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:3px;font-size:var(--t-xs);background:var(--bg-2);border:1px solid var(--line-2);font-family:var(--font-mono)}.pt-dot{width:6px;height:6px;border-radius:50%;background:var(--fg-3)}.pt-name{color:var(--fg-2)}.pt-val{color:var(--fg-1);font-weight:500}.pt-on .pt-dot{background:var(--cyan)}.pt-on .pt-val{color:var(--cyan)}.pt-off .pt-val{color:var(--fg-3)}.pt-green .pt-dot{background:var(--green);box-shadow:0 0 4px var(--green)}.pt-green .pt-val{color:var(--green)}.pt-red .pt-dot{background:var(--red);box-shadow:0 0 4px var(--red)}.pt-red .pt-val{color:var(--red)}.pt-red{border-color:#ff4d6a66;background:#ff4d6a0d}.pt-amber .pt-dot{background:var(--amber);box-shadow:0 0 4px var(--amber)}.pt-amber .pt-val{color:var(--amber)}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:3px;overflow:hidden}.seg button{background:transparent;color:var(--fg-2);border:0;padding:3px 10px;font:inherit;font-size:var(--t-xs);cursor:pointer;text-transform:uppercase;letter-spacing:.08em}.seg button.seg-on{background:#2ee8ff14;color:var(--cyan)}.seg-tabs button{padding:4px 14px;font-weight:600;position:relative}.tab-badge{display:inline-block;margin-left:6px;padding:0 5px;font-size:9px;font-weight:700;color:#fff;background:var(--red);border-radius:6px;min-width:14px;text-align:center}.ev-row--read{opacity:.55}.ev-empty{padding:16px 12px;color:var(--fg-2);font-size:var(--t-sm)}.ev-sev-error{color:var(--red)}.ev-sev-warning{color:var(--amber)}.ev-sev-success{color:var(--green)}.ev-sev-information{color:var(--cyan)}.ev-sev-normal{color:var(--fg-2)}.bar{display:inline-block;width:3px;height:18px;border-radius:1px;background:var(--fg-4)}.bar-in{background:var(--green);box-shadow:0 0 4px var(--green)}.bar-out{background:var(--cyan);box-shadow:0 0 4px var(--cyan)}.bar-move{background:var(--violet)}.bar-charge{background:var(--amber)}.bar-return{background:var(--violet)}.bar-start{background:var(--cyan)}.bar-done{background:var(--green)}.bar-fail{background:var(--red)}.bar-pause{background:var(--amber)}.bar-resume{background:var(--cyan)}.bar-cancel{background:var(--red)}.prog{position:relative;height:16px;min-width:120px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:2px;overflow:hidden}.prog-fill{position:absolute;top:0;left:0;bottom:0;background:var(--cyan);opacity:.7}.prog-fill.prog-running{background:linear-gradient(90deg,#2ee8ff66,#2ee8ffb3)}.prog-fill.prog-paused{background:var(--amber);opacity:.55}.prog-fill.prog-done{background:var(--green);opacity:.5}.prog-fill.prog-fail{background:var(--red);opacity:.5}.prog-fill.prog-queued{background:var(--violet);opacity:.4}.prog-num{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:var(--t-xs);color:var(--fg-0);font-family:var(--font-mono);text-shadow:0 0 4px rgba(0,0,0,.6)}.tbl-jobs td{font-size:var(--t-sm)}.phase-stack{display:inline-flex;flex-direction:column;gap:3px;min-width:200px}.phase-row{display:flex;align-items:center;gap:0}.phase-robot{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--fg-2);width:64px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phase-cell{display:inline-flex;align-items:center}.phase-dot{display:inline-block;width:9px;height:9px;border-radius:50%;border:1px solid var(--fg-4);background:transparent;flex-shrink:0}.phase-dot.phase-pending{border-color:var(--fg-3);background:transparent}.phase-dot.phase-started{background:var(--amber);border-color:var(--amber);box-shadow:0 0 4px #ffb54799}.phase-dot.phase-completed{background:var(--green);border-color:var(--green);box-shadow:0 0 4px #34f5a080}.phase-dot.phase-failed{background:var(--red);border-color:var(--red)}.phase-line{width:22px;height:1px;background:var(--fg-4);flex-shrink:0}.phase-line.phase-completed{background:var(--green)}.phase-line.phase-started{background:var(--amber);opacity:.55}.phase-line.phase-failed{background:var(--red);opacity:.55}.phase-spacer{display:inline-block;width:22px}.phase-header .phase-cell{justify-content:flex-start}.phase-label{display:inline-block;width:9px;font-size:9px;color:var(--fg-3);letter-spacing:.05em;text-transform:uppercase;text-align:center;transform:translate(-2px)}.filt-sel{background:var(--bg-2);color:var(--fg-1);border:1px solid var(--line-2);border-radius:3px;font:inherit;font-size:var(--t-xs);padding:2px 6px}.seg-q{margin-left:4px}.seg-q button.seg-q-good{background:#34f5a01a;color:var(--green)}.seg-q button.seg-q-stale{background:#ffb5471a;color:var(--amber)}.seg-q button.seg-q-bad{background:#ff4d6a1f;color:var(--red)}.ev-body{padding:0;font-size:var(--t-sm)}.ev-row{display:grid;grid-template-columns:64px 90px 130px 1fr 1.2fr 56px;align-items:center;padding:4px 12px;border-bottom:1px solid var(--line-1);white-space:nowrap;overflow:hidden;font-family:var(--font-mono)}.ev-id{color:var(--fg-3);font-size:var(--t-xs)}.ev-ts{color:var(--fg-2)}.ev-type{font-weight:500;text-overflow:ellipsis;overflow:hidden}.ev-type-robot{color:var(--cyan)}.ev-type-infra{color:var(--green)}.ev-type-task{color:var(--amber)}.ev-type-fms{color:var(--magenta)}.ev-type-net,.ev-type-cam{color:var(--violet)}.ev-type-other{color:var(--fg-1)}.ev-entity{color:var(--fg-1);text-overflow:ellipsis;overflow:hidden}.ev-data{color:var(--fg-2);text-overflow:ellipsis;overflow:hidden;font-size:var(--t-xs)}.ev-q{font-size:var(--t-xs);text-align:right;letter-spacing:.08em}.ev-q-good{color:var(--green)}.ev-q-bad{color:var(--red)}.ev-q-stale{color:var(--amber)}.statbar{grid-area:stat;display:flex;align-items:center;gap:16px;padding:0 12px;background:#050608;border-top:1px solid var(--line-2);font-size:var(--t-xs);color:var(--fg-2);letter-spacing:.06em}.statbar .sep{color:var(--fg-4)}.statbar b{color:var(--fg-1);font-weight:500}.drawer-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:50;animation:fadein .2s ease-out}@keyframes fadein{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;top:0;right:0;bottom:0;width:460px;background:var(--bg-1);border-left:1px solid var(--line-3);z-index:51;display:flex;flex-direction:column;animation:slidein .24s cubic-bezier(.2,.7,.2,1)}@keyframes slidein{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-h{padding:14px 16px;border-bottom:1px solid var(--line-2);display:flex;align-items:center;gap:8px}.drawer-h h3{margin:0;font-size:var(--t-lg);letter-spacing:.06em;color:var(--fg-0);font-weight:500}.drawer-b{padding:16px;overflow:auto;flex:1}.drawer-section{margin-bottom:22px}.drawer-section h4{margin:0 0 10px;font-size:var(--t-xs);color:var(--fg-2);text-transform:uppercase;letter-spacing:.12em;font-weight:500}.field{display:grid;grid-template-columns:100px 1fr;gap:8px;align-items:center;margin-bottom:8px;font-size:var(--t-sm)}.field label{color:var(--fg-2)}.field input,.field select{background:var(--bg-0);color:var(--fg-0);border:1px solid var(--line-2);border-radius:3px;padding:5px 8px;font:inherit;font-size:var(--t-sm);width:100%}.field input:focus,.field select:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 1px #2ee8ff4d}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line-1);font-size:var(--t-sm)}.toggle-row:last-child{border-bottom:0}.tog{width:32px;height:18px;background:var(--bg-3);border-radius:9px;position:relative;cursor:pointer;border:1px solid var(--line-2);transition:background .12s}.tog:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--fg-2);transition:all .16s}.tog.on{background:#2ee8ff33;border-color:var(--cyan)}.tog.on:after{left:16px;background:var(--cyan);box-shadow:0 0 6px var(--cyan)}.help{font-size:var(--t-xs);color:var(--fg-3);margin-top:6px;line-height:1.5}.dev-list{display:flex;flex-direction:column;gap:4px;padding:4px 6px 8px}.dev-row{border:1px solid var(--line-2);background:var(--bg-2);border-radius:var(--r-2);padding:6px 8px;display:flex;flex-direction:column;gap:4px}.dev-head{display:flex;align-items:center;gap:8px;font-size:var(--t-sm)}.ctrl{display:flex;flex-direction:column;gap:2px;padding-left:18px}.ctrl-row{display:flex;align-items:center;gap:6px;font-size:var(--t-xs)}.ctrl-label{width:52px;color:var(--fg-2);text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-mono)}.ctrl-led{width:10px;height:10px;border-radius:50%;border:1px solid var(--line-3);background:var(--bg-1);flex-shrink:0}.ctrl-led.off{opacity:.45}.ctrl-led-red.on{background:var(--red);box-shadow:0 0 5px var(--red);border-color:var(--red)}.ctrl-led-yellow.on{background:var(--amber);box-shadow:0 0 5px var(--amber);border-color:var(--amber)}.ctrl-led-green.on{background:var(--green);box-shadow:0 0 5px var(--green);border-color:var(--green)}.ctrl-led-blue.on{background:#5b9dff;box-shadow:0 0 5px #5b9dff;border-color:#5b9dff}.ctrl-led-white.on{background:#e6ecf2;box-shadow:0 0 5px #e6ecf2;border-color:#e6ecf2}.ctrl-led-amber.on{background:var(--amber);box-shadow:0 0 5px var(--amber);border-color:var(--amber)}.ctrl-led-cyan.on{background:var(--cyan);box-shadow:0 0 5px var(--cyan);border-color:var(--cyan)}@keyframes ctrl-blink-anim{0%,to{opacity:1}50%{opacity:.25}}.ctrl-led.blink{animation:ctrl-blink-anim .6s ease-in-out infinite}.ctrl-led-red.blink{background:var(--red);border-color:var(--red)}.ctrl-led-yellow.blink{background:var(--amber);border-color:var(--amber)}.ctrl-led-green.blink{background:var(--green);border-color:var(--green)}.ctrl-led-blue.blink{background:#5b9dff;border-color:#5b9dff}.ctrl-led-white.blink{background:#e6ecf2;border-color:#e6ecf2}.ctrl-btns{display:flex;gap:2px}.ctrl-btn{padding:1px 6px!important;min-width:36px}.ctrl-btn-active{background:#2ee8ff2e!important;border-color:#2ee8ff8c!important;color:var(--cyan)!important}.ctrl-current{color:var(--fg-1);font-family:var(--font-mono);margin-left:4px}.ctrl-help{padding:2px 0}.cmd-badge{display:inline-block;padding:0 5px;font-size:9px;text-transform:uppercase;letter-spacing:.08em;border-radius:2px;min-width:24px;text-align:center;font-family:var(--font-mono);margin-left:auto}.cmd-pending{background:#2ee8ff26;color:var(--cyan)}.cmd-sent{background:#2ee8ff2e;color:var(--cyan)}.cmd-ok{background:#34f5a02e;color:var(--green)}.cmd-timeout{background:#ffb5472e;color:var(--amber)}.cmd-bad{background:#ff4d6a2e;color:var(--red)}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;font-family:var(--font-mono);color:var(--fg-1);background:var(--bg-0, #0d1117)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-0, #0d1117);padding:20px}.login-card{width:100%;max-width:360px;padding:28px 24px;background:var(--bg-1, #161b22);border:1px solid var(--border, rgba(255,255,255,.08));border-radius:6px;display:flex;flex-direction:column;gap:14px}.login-title{margin:0;font-size:18px;font-family:var(--font-mono);letter-spacing:.06em;color:var(--cyan, #2ee8ff)}.login-sub{margin:0 0 8px;font-size:12px;color:var(--fg-2, #8b949e)}.login-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--fg-2, #8b949e)}.login-field input{padding:8px 10px;background:var(--bg-2, #0d1117);border:1px solid var(--border, rgba(255,255,255,.12));border-radius:3px;color:var(--fg-0, #e6edf3);font-family:var(--font-mono);font-size:13px}.login-field input:focus{outline:none;border-color:var(--cyan, #2ee8ff)}.login-field input:disabled{opacity:.5;cursor:not-allowed}.login-hint{margin:0;font-size:11px;color:var(--fg-2, #8b949e)}.login-err{padding:8px 10px;background:#ff4d6a14;border:1px solid rgba(255,77,106,.3);border-radius:3px;font-size:12px;color:var(--red, #ff4d6a)}.login-submit{margin-top:4px}.tab-row{display:flex;gap:2px}.tab-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid var(--bg-2, #2a2f36);border-bottom:none;color:var(--fg-2, #8b949e);font:inherit;font-size:11px;padding:4px 10px;cursor:pointer;border-top-left-radius:3px;border-top-right-radius:3px;transition:background .1s,color .1s}.tab-btn:hover{color:var(--fg-1, #c9d1d9)}.tab-btn-active{background:var(--bg-1, #1a1d22);color:var(--cyan, #2ee8ff);border-color:var(--cyan, #2ee8ff)}.rms-header{display:flex;align-items:center;padding:6px 10px;border-bottom:1px solid var(--bg-2, #2a2f36)}.rms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;padding:8px}.rms-cell{border:1px solid var(--bg-2, #2a2f36);border-radius:3px;padding:6px 8px;font-size:11px;background:var(--bg-1, #1a1d22)}.rms-cell-empty{border-color:var(--bg-2, #2a2f36);opacity:.7}.rms-cell-occupied{border-color:var(--violet, #b48cff);background:#b48cff0a}.rms-cell-inactive{opacity:.4}.rms-cell-head{display:flex;align-items:center;gap:4px;margin-bottom:4px}.rms-cell-body{font-size:11px;line-height:1.35}
