.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: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--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;touch-action:none}.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: #0b0e14;--bg-soft: #10141c;--panel: #12161f;--panel-2: #171c27;--panel-3: #141925;--active-bg: #16211d;--border: #232936;--border-2: #161b26;--row: #1d2330;--text: #e6e6e6;--text-mut: #9aa3b2;--text-faint: #67707e;--accent: #00c48d;--accent-bright: #00df9e;--accent-ink: #06231a;--link: #5aa9ff;--warn: #f5a623;--warn-ink: #2a1a00;--danger: #ff5a48;--danger-ink: #2a0a05;--code: #0c0f16;--chip: #2a303c;--chip-text: #cfd6e0;--nav-hover: #1a1f2b;--nav-active: #1f2a3a;--green: #9ee8c8;--scrollbar: rgba(154, 163, 178, .35);color-scheme:dark}[data-theme=light]{--bg: #eef1f6;--bg-soft: #ffffff;--panel: #ffffff;--panel-2: #f2f5f9;--panel-3: #eef2f7;--active-bg: #e7f8f1;--border: #d6dce6;--border-2: #e4e9f0;--row: #eef1f6;--text: #1a2233;--text-mut: #5c6b84;--text-faint: #8a96ab;--accent: #0aa97c;--accent-bright: #099c72;--accent-ink: #ffffff;--link: #1f6feb;--warn: #b26a00;--warn-ink: #ffffff;--danger: #d93025;--danger-ink: #ffffff;--code: #f4f6fb;--chip: #e6ebf2;--chip-text: #3a4a63;--nav-hover: #e7ecf3;--nav-active: #dde6f0;--green: #0a7d5c;--scrollbar: rgba(60, 80, 110, .35);color-scheme:light}*{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}html,body,#root{height:auto;min-height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:13px}code,pre{font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px}button,select,input,textarea{font-family:inherit}.shell{display:flex;min-height:100vh}.sidebar{width:216px;flex-shrink:0;position:sticky;top:0;height:100vh;background:var(--bg-soft);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:12px 10px;gap:4px;transition:width .15s ease;overflow:hidden}.sidebar.collapsed{width:54px}.s-brand{display:flex;align-items:center;gap:8px;padding:4px 6px 12px;flex-shrink:0}.s-brand .logo{color:var(--accent);font-size:16px}.s-logo{flex-shrink:0;display:block}.s-name{font-weight:700;font-size:14px;white-space:nowrap;flex:1}.sidebar.collapsed .s-brand{justify-content:center;gap:6px;padding-left:0;padding-right:0}.sidebar.collapsed .s-name,.sidebar.collapsed .s-logo{display:none}.sidebar.collapsed .s-collapse{margin-left:0}.s-collapse{background:none;border:1px solid var(--border);color:var(--text-mut);border-radius:6px;padding:4px 7px;cursor:pointer;font-size:12px;line-height:1;flex-shrink:0}.s-collapse:hover{color:var(--text);border-color:var(--text-faint)}.s-nav{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;overflow-y:auto}.s-nav .navgroup{flex-direction:column;align-items:stretch;gap:2px;margin-left:0}.s-nav .navgroup+.navgroup{margin-left:0}.s-nav .navgroup-label{margin:6px 6px 2px}.sidebar.collapsed .s-nav .navgroup-label{display:none}.s-nav .navlink{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--text-mut);padding:7px 8px;border-radius:6px;white-space:nowrap;font-size:13px}.s-nav .navlink:hover{color:var(--text);background:var(--nav-hover)}.s-nav .navlink.active{color:var(--text);background:var(--nav-active)}.navabbr{flex-shrink:0;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;background:var(--panel-3);color:var(--text-mut)}.sidebar.collapsed .navabbr{margin:0 auto}.navlabel{overflow:hidden}.sidebar.collapsed .navlabel{display:none}.s-nav .navlink.resource{border:1px solid var(--border);background:var(--panel-3);font-size:12px;padding:6px 8px}.s-nav .navlink.resource .dot{width:6px;height:6px;border-radius:50%;background:var(--text-faint);flex-shrink:0}.s-nav .navlink.resource .dot.up{background:var(--accent)}.s-nav .navlink.resource .dot.down{background:#e5484d}.s-nav .navlink.resource .dot.checking{background:#f5a524}.sidebar.collapsed .s-nav .navlink.resource{justify-content:center;padding:6px 0}.sidebar.collapsed .s-nav .navlink.resource .dot{margin:0}.s-foot{display:flex;flex-direction:column;gap:8px;align-items:stretch;padding-top:8px;border-top:1px solid var(--border);flex-shrink:0}.s-tag{color:var(--text-faint);font-size:10px;line-height:1.4}.sidebar.collapsed .s-tag{display:none}.sidebar.collapsed .s-foot .theme-btn{margin:0 auto}.s-user{display:flex;align-items:center;gap:8px;padding:2px 4px}.s-avatar{width:22px;height:22px;flex-shrink:0;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.s-user-name{font-size:12px;overflow:hidden;text-overflow:ellipsis}.sidebar.collapsed .s-user{justify-content:center}.sidebar.collapsed .s-user-name{display:none}.s-signout{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 8px}.sidebar.collapsed .s-signout{padding:6px 0}.sidebar.collapsed .s-signout .navlabel{display:none}.sidebar.collapsed .s-foot .s-signout{justify-content:center}.s-main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:10px 18px;background:var(--bg-soft);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px;flex-shrink:0}.brand .logo{color:var(--accent)}.brand .tag{color:var(--text-faint);font-weight:400;font-size:11px}.res-status{display:flex;align-items:center;gap:14px;margin-left:auto;color:var(--text-mut);font-size:11px}.res-status-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.res-status .dot{width:7px;height:7px;border-radius:50%;background:var(--text-faint);flex-shrink:0}.res-status .dot.up{background:var(--accent)}.res-status .dot.down{background:#e5484d}.res-status .dot.checking{background:#f5a524}.cbutton{background:var(--accent);color:var(--accent-ink);font-weight:700;text-decoration:none;padding:7px 12px;border-radius:6px;font-size:12px;white-space:nowrap;flex-shrink:0}.theme-btn{background:none;border:1px solid var(--border);color:var(--text-mut);border-radius:6px;padding:6px 10px;cursor:pointer;font-size:13px;line-height:1;flex-shrink:0}.theme-btn:hover{color:var(--text);border-color:var(--text-faint)}.cc{display:grid;grid-template-columns:330px 1fr 360px;gap:10px;padding:10px;align-items:start}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px;display:flex;flex-direction:column;min-width:0}.panel-title{font-weight:600;color:var(--text-mut);font-size:11px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;display:flex;gap:8px;align-items:center}.inc-context{background:var(--active-bg);border-color:var(--accent)}.inc-context-main{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inc-context-sym{color:var(--text);margin-top:4px;font-size:12px;overflow-wrap:anywhere}.info-ic{cursor:help;color:var(--text-faint);font-size:11px;margin-left:6px;border:1px solid var(--border);border-radius:50%;width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;vertical-align:middle;-webkit-user-select:none;user-select:none}.info-ic:hover{color:var(--accent);border-color:var(--accent)}.col-left,.col-right{display:flex;flex-direction:column;gap:10px}.col-center{display:flex;flex-direction:column;gap:10px;min-width:0}.col-left{position:sticky;top:60px;height:calc(100vh - 72px)}.col-right{position:sticky;top:60px;height:calc(100vh - 72px);overflow-y:auto}.feed{flex:1;min-height:0}.map-panel,.melt{min-width:0}.approval{min-height:240px}.feed-tabs{display:flex;gap:6px;margin-bottom:8px}.feed-list{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:6px;padding-right:2px}.feed-item{text-align:left;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text);cursor:pointer}.feed-item.active{border-color:var(--accent);background:var(--active-bg)}.feed-item-head{display:flex;gap:6px;align-items:center;margin-bottom:4px}.feed-item-num{font-family:SF Mono,Menlo,Consolas,monospace;font-weight:700;font-size:11px}.feed-item-svc{font-weight:600}.feed-item-sym{color:var(--text-mut);font-size:11px;margin-top:2px;font-weight:400;overflow-wrap:anywhere}.feed-item-ref{color:var(--link);font-size:10px}.sev{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px}.sev-sev1{background:var(--danger);color:var(--danger-ink)}.sev-sev2{background:var(--warn);color:var(--warn-ink)}.status{font-size:10px;padding:1px 6px;border-radius:4px;background:var(--chip);color:var(--chip-text)}.status-detected{background:var(--warn);color:var(--warn-ink)}.status-resolved{background:var(--accent);color:var(--accent-ink)}.status-failed{background:var(--danger);color:var(--danger-ink)}.status-rejected{background:var(--warn);color:var(--warn-ink)}.quickbar{display:flex;gap:8px;flex-wrap:wrap}.quickbar .btn{flex:0 0 auto;padding:7px 12px;font-size:11px}.tabs{display:flex;gap:4px}.tab{background:none;border:1px solid var(--border);color:var(--text-mut);padding:4px 10px;border-radius:6px;cursor:pointer;font-size:11px;white-space:nowrap}.tab.active{background:var(--nav-active);color:var(--text);border-color:var(--link)}.flowbox{height:260px;border-radius:8px;overflow:hidden}.timeline{display:flex;gap:6px;align-items:stretch;overflow-x:auto}.tl-step{flex:1 1 0;min-width:0;border:1px solid var(--border);border-radius:8px;padding:8px;text-align:center;background:var(--panel-3)}.tl-dot{width:10px;height:10px;border-radius:50%;margin:0 auto 6px;background:#3a4354}.tl-step.running{border-color:var(--warn)}.tl-step.running .tl-dot{background:var(--warn);animation:pulse 1.2s infinite}.tl-step.done{border-color:#2f4a3f}.tl-step.done .tl-dot{background:var(--accent)}.tl-step.failed{border-color:var(--danger)}.tl-step.failed .tl-dot{background:var(--danger)}.tl-step.waiting{border-color:var(--danger)}.tl-step.waiting .tl-dot{background:var(--danger);animation:pulse .8s infinite}.tl-step.WAITING_APPROVAL{border-color:var(--danger)}.tl-step.COMPLETED{border-color:var(--accent)}.tl-step.RESUMED{border-color:var(--link)}.tl-name{text-transform:capitalize;font-weight:600}.tl-meta{color:var(--text-mut);font-size:10px;margin-top:3px;overflow-wrap:anywhere}.tl-checkpoint{margin-top:8px;display:flex;gap:8px;align-items:center;padding:6px 10px;border:1px dashed #3a4354;border-radius:8px;font-size:11px;background:var(--bg-soft)}.tl-cp-key{text-transform:uppercase;letter-spacing:.6px;color:var(--text-mut);font-weight:700}.tl-cp-val{font-weight:700}.tl-checkpoint.running{border-color:var(--warn)}.tl-checkpoint.running .tl-cp-val{color:var(--warn)}.tl-checkpoint.waiting{border-color:var(--danger)}.tl-checkpoint.waiting .tl-cp-val{color:var(--danger);animation:pulse .8s infinite}.tl-checkpoint.done{border-color:var(--accent)}.tl-checkpoint.done .tl-cp-val{color:var(--accent)}.tl-checkpoint.failed{border-color:var(--danger)}.tl-checkpoint.failed .tl-cp-val{color:var(--danger)}.tl-cp-meta{margin-left:auto;color:var(--text-faint)}@keyframes pulse{50%{opacity:.35}}.approval-svc{color:var(--link);font-size:12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.approval-svc .svc-name{font-weight:700;color:var(--text)}.approval-svc .svc-sep{color:var(--text-faint)}.approval-svc .svc-sop{color:var(--text-mut);font-size:11px}.kv{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--border);border-radius:5px;padding:1px 7px;background:var(--panel-3);font-size:10px;color:var(--text);white-space:nowrap}.kv b{text-transform:uppercase;letter-spacing:.5px;font-size:9px;color:var(--text-mut);font-weight:700}.kv span{font-family:SF Mono,Menlo,Consolas,monospace;font-weight:700}.approval-dx{font-size:13px;line-height:1.4;font-weight:400;color:var(--text)}.conf{color:var(--text-mut);font-size:11px;margin-bottom:8px}.section-label{color:var(--text-mut);font-size:10px;text-transform:uppercase;letter-spacing:.6px;margin:10px 0 6px}.mem-list{display:flex;flex-direction:column;gap:4px;max-height:170px;overflow-y:auto}.mem-item{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:4px 8px;font-size:11px;line-height:1.4;overflow-wrap:anywhere;display:flex;flex-direction:row;gap:6px;align-items:center}.mem-item .mem-text{flex:1}.mem-item .info-ic{margin-left:auto}.mem-item>span:not(.mem-oc):not(.mem-num):not(.mem-score):not(.info-ic){flex:1}.mem-item .mem-score{flex:0 0 auto;color:var(--text-mut);font-size:10px}.mem-item .mem-num{flex:0 0 auto;font-family:SF Mono,Menlo,Consolas,monospace;color:var(--link);font-size:10px}.mem-item.clickable{cursor:pointer}.mem-item.clickable:hover{border-color:var(--link)}.mem-item.promoted{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel-2))}.mem-item.avoided{border-color:var(--danger)}.mem-oc{font-size:9px;font-weight:700;padding:1px 5px;border-radius:4px;flex:0 0 auto}.mem-oc.success{background:var(--accent);color:var(--accent-ink)}.mem-oc.failed{background:var(--danger);color:var(--danger-ink)}.mem-oc.waiting{background:var(--warn);color:var(--warn-ink)}.mem-oc.learned,.mem-oc.semantic,.mem-oc.rule{background:var(--link);color:#fff}.mem-oc.incident{background:var(--warn);color:var(--warn-ink)}.mem-oc.approval{background:var(--accent);color:var(--accent-ink)}.mem-oc.avoided{background:var(--danger);color:var(--danger-ink)}.mem-oc.episode{background:var(--warn);color:var(--warn-ink)}.mono{font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px}.affected{color:var(--text-mut);font-size:11px}.script{background:var(--code);border:1px solid var(--border);border-radius:8px;padding:8px;color:var(--green);overflow-x:auto;white-space:pre-wrap}.params{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.param{background:var(--code);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-size:10px;color:var(--text-mut)}.param em{color:var(--link);font-style:normal}.pager{display:flex;align-items:center;gap:8px;margin-top:8px}.pager .btn{flex:0 0 auto;padding:5px 12px;font-size:11px}.pager .muted{margin:0 auto}.btn-row{display:flex;gap:8px;margin-top:12px}.btn{flex:1;padding:9px;border-radius:8px;border:none;font-weight:700;cursor:pointer;font-size:12px;color:var(--text)}.btn.approve{background:var(--accent);color:var(--accent-ink)}.btn.approve:hover{background:var(--accent-bright)}.btn.reject{background:var(--panel-2);color:var(--danger);border:1px solid var(--danger)}.btn.ghost{background:var(--panel-2);color:var(--text-mut);border:1px solid var(--border)}.btn:disabled{opacity:.5;cursor:not-allowed}.pulse{color:var(--danger);animation:pulse .8s infinite}.melt-tabs{display:flex;gap:4px;align-items:center}.melt-summary{margin-left:auto;color:var(--text-mut);font-size:11px}.melt-body{min-height:0}.metric-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin-bottom:8px}.metric-tile{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text);cursor:pointer;text-align:left;min-width:0;min-height:72px;display:flex;flex-direction:column;justify-content:center}.metric-tile:hover{border-color:var(--link)}.metric-tile.selected{border-color:var(--link);background:var(--active-bg)}.metric-tile.impacted{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--panel-2))}.metric-name{display:flex;gap:6px;align-items:center;font-size:10px;color:var(--text-mut);margin-bottom:2px}.metric-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-big{font-size:15px;font-weight:700;font-family:SF Mono,Menlo,Consolas,monospace}.metric-tile.impacted .metric-big{color:var(--danger)}.metric-meta{font-size:10px;color:var(--text-faint);margin-top:2px}.metric-chart{border:1px solid var(--border-2);border-radius:8px;padding:4px 8px 0}.metric-chart-title{font-size:11px;color:var(--text);padding:6px 2px 0;display:flex;gap:6px;align-items:center}.chip{font-size:9px;font-weight:700;padding:1px 5px;border-radius:4px;background:var(--danger);color:var(--danger-ink);white-space:nowrap}.btn.small{flex:0 0 auto;padding:3px 8px;font-size:10px}.log-list,.trace-list{display:flex;flex-direction:column;gap:2px}.log-line{display:flex;gap:8px;font-family:monospace;font-size:11px;padding:1px 0;border-bottom:1px solid var(--border-2)}.log-sev{width:52px;font-weight:700}.log-error .log-sev{color:var(--danger)}.log-warn .log-sev{color:var(--warn)}.log-info .log-sev{color:var(--link)}.log-ts,.log-ts .muted{color:var(--text-faint);margin-left:auto}.trace-line{display:flex;gap:8px;font-size:11px;padding:2px 0;border-bottom:1px solid var(--border-2);align-items:center}.muted{color:var(--text-faint)}.agent-trace{max-height:none}.agent-span{display:flex;gap:8px;align-items:center;font-size:11px;padding:2px 0;border-bottom:1px solid var(--border-2);overflow-wrap:anywhere}.agent-kind{font-weight:600}.agent-kind.root{color:var(--link)}.agent-kind.tool{color:var(--warn)}.agent-dur{margin-left:auto;color:var(--text-mut)}.inp{background:var(--code);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:7px 10px;font-size:12px}.inp:focus{outline:none;border-color:var(--link)}textarea.inp{width:100%;resize:vertical}.dash{padding:14px;display:flex;flex-direction:column;gap:12px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px}.card-value{font-size:26px;font-weight:700;color:var(--accent)}.card-label{color:var(--text-mut);font-size:11px;text-transform:uppercase;letter-spacing:.6px;margin-top:4px}.tbl{width:100%;border-collapse:collapse}.tbl td,.tbl th{text-align:left;padding:7px 9px;border-bottom:1px solid var(--row);font-size:12px}.tbl th{color:var(--text-mut);font-size:10px;text-transform:uppercase}.sym{color:var(--text-mut);max-width:380px;overflow-wrap:anywhere}.tbl td:first-child,.tbl th:first-child{padding-left:0}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:30;display:flex;justify-content:flex-end}[data-theme=light] .drawer-backdrop{background:#1e283c40}.drawer{width:min(520px,92vw);height:100%;overflow-y:auto;background:var(--panel);border-left:1px solid var(--border);padding:16px;display:flex;flex-direction:column;gap:14px}.drawer-head{display:flex;align-items:center;gap:10px}.drawer-num{font-size:18px;font-weight:700;font-family:SF Mono,Menlo,Consolas,monospace}.drawer-close{margin-left:auto;background:none;border:1px solid var(--border);color:var(--text-mut);border-radius:6px;padding:4px 10px;cursor:pointer}.drawer-close:hover{color:var(--text);border-color:var(--text-faint)}.kv{display:grid;grid-template-columns:110px 1fr;gap:4px 10px;font-size:12px;min-width:0}.kv dt{color:var(--text-mut)}.kv dd{margin:0;overflow-wrap:anywhere;min-width:0}.ci-detail{display:block;margin-top:4px;overflow-wrap:anywhere;word-break:break-word}.kv .mono{font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px}.rel-note{font-size:11px;color:var(--text-mut)}.rel-item{display:flex;gap:8px;align-items:center;font-size:11px;padding:5px 8px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;margin-bottom:4px}.rel-item .num{font-family:SF Mono,Menlo,Consolas,monospace;font-weight:700}.rel-list{max-height:200px;overflow-y:auto;margin-top:6px}.rel-inc{display:flex;gap:8px;align-items:center;font-size:11px;width:100%;text-align:left;padding:4px 8px;margin-bottom:4px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer}.rel-inc:hover{border-color:var(--link)}.rel-inc-num{font-family:SF Mono,Menlo,Consolas,monospace;font-weight:700;flex:0 0 auto}.rel-inc-sym{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-mut)}.rel-inc-go{flex:0 0 auto;color:var(--link);font-weight:700}.mem-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.mem-type{background:var(--panel-3);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.mem-type .t{font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-mut);font-weight:700}.mem-type .v{font-size:16px;font-weight:700;margin-top:2px}.ok-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px}.ok-badge.healthy{background:var(--accent);color:var(--accent-ink)}.ok-badge.unknown{background:var(--chip);color:var(--chip-text)}.inbox-list{max-height:calc(100vh - 380px);min-height:120px}.pager.sticky{position:sticky;bottom:0;background:var(--bg);padding:8px 0 2px;z-index:5;margin-top:0}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 30% 20%,var(--panel-3),var(--bg) 60%)}.login-card{width:340px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:26px 24px;display:flex;flex-direction:column;gap:12px;box-shadow:0 18px 50px #00000059}[data-theme=light] .login-card{box-shadow:0 14px 40px #1e283c1f}.login-logo{width:46px;height:46px;border-radius:12px;margin:0 auto 2px;background:var(--accent);color:var(--accent-ink);font-size:24px;display:flex;align-items:center;justify-content:center}.login-title{font-size:18px;font-weight:800;text-align:center}.login-sub{text-align:center;color:var(--text-mut);font-size:11px;margin-top:-6px}.login-field{display:flex;flex-direction:column;gap:4px}.login-field span{font-size:11px;color:var(--text-mut);font-weight:600}.login-err{color:var(--danger);font-size:12px;text-align:center}.login-submit{flex:0 0 auto}.login-demo{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--border);padding-top:10px;margin-top:2px}.login-demo .muted{margin-bottom:2px}.login-demo .btn.ghost{flex:0 0 auto;justify-content:flex-start;gap:8px;padding:7px 10px}.query-wrap{display:flex;gap:10px;padding:10px;min-height:calc(100vh - 60px);align-items:stretch}.query-side{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:10px}.query-new-panel{padding:10px}.query-history{flex:1;min-height:0}.query-list{display:flex;flex-direction:column;gap:4px;overflow-y:auto;min-height:0;flex:1}.query-item{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:6px 8px;cursor:pointer}.query-item:hover{border-color:var(--text-faint)}.query-item.active{border-color:var(--accent);background:var(--active-bg)}.query-item-title{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.query-item-meta{display:flex;gap:8px;align-items:center;font-size:10px;color:var(--text-faint);margin-top:2px}.query-item-del{margin-left:auto;background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:10px;padding:0 2px;border-radius:4px}.query-item-del:hover{color:var(--danger)}.query-chat{flex:1;min-width:0}.query-thread{display:flex;flex-direction:column;gap:10px;margin-top:10px;overflow-y:auto;max-height:calc(100vh - 260px);padding:2px 2px 4px}.msg-row{display:flex}.msg-row.user{justify-content:flex-end}.msg-bubble{max-width:86%;padding:8px 11px;border-radius:10px;font-size:12.5px;line-height:1.5;background:var(--panel-3);border:1px solid var(--border)}.msg-row.user .msg-bubble{background:var(--accent);color:var(--accent-ink);border-color:transparent}.msg-time{font-size:9.5px;color:var(--text-faint);margin-top:5px;text-align:right}.msg-row.user .msg-time{color:color-mix(in srgb,var(--accent-ink) 60%,transparent)}[data-theme=light] .msg-row.user .msg-time{color:#fffc}.rich-text{min-width:0}.rich-text .rt-p{margin:0 0 6px}.rich-text .rt-sp{height:6px}.rich-text .rt-li{margin:0 0 4px;padding-left:12px;position:relative}.rich-text .rt-li:before{content:"•";position:absolute;left:2px;color:var(--text-mut)}.inline-code{background:var(--code);border:1px solid var(--border);border-radius:4px;padding:0 4px;font-size:11px}.sql-block{margin-top:8px}.sql-toolbar{display:flex;gap:6px}.sql-toolbar .btn.ghost{flex:0 0 auto;padding:4px 10px;font-size:11px}.sql-pre{margin:6px 0 0;max-height:220px;overflow:auto}.tbl-wrap{min-width:0;overflow-x:auto}.brand-logo{display:block;flex-shrink:0}
