@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-CMZtQduZ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-CGAr0uHJ.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CaVNZxsx.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-CFHvXkgd.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-C2S99t-D.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.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: rgb(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: rgb(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, var(--xy-background-color-props, 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__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__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-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__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:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));transform: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,[data-theme=dark]{color-scheme:dark;--shell: #1a1a1a;--bg: #262626;--surface: #1f1f1f;--surface-2: #2b2b2b;--surface-3: #363636;--hover: rgba(255, 255, 255, .055);--line: #343434;--line-strong: #404040;--text: #f2f2f2;--text-2: #b3b3b3;--text-3: #808080;--accent: #c6f91f;--accent-hover: #d6ff4a;--accent-ink: #0a0a0a;--accent-soft: rgba(198, 249, 31, .11);--accent-text: #cdf64a;--danger: #f15b5b;--danger-soft: rgba(241, 91, 91, .12);--warn: #f5a524;--warn-soft: rgba(245, 165, 36, .13);--info: #4ea1ff;--info-soft: rgba(78, 161, 255, .13);--bubble-in: #333333;--bubble-out: #2c3a12;--bubble-out-text: #f0f6dc;--note: #2c2612;--note-line: #6b5a1c;--shadow-sm: none;--shadow-lg: 0 16px 48px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .3);--chip-mix: 22%;--chip-text-mix: 72%;--chat-bg: #1f1f1f}[data-theme=light]{color-scheme:light;--shell: #e9ebee;--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f8f9fa;--surface-3: #eef0f2;--hover: rgba(15, 23, 42, .04);--line: rgba(15, 23, 42, .08);--line-strong: rgba(15, 23, 42, .14);--text: #111418;--text-2: #545d68;--text-3: #8a939d;--accent: #b5e80c;--accent-hover: #a6d806;--accent-ink: #0a0a0a;--accent-soft: rgba(150, 200, 0, .16);--accent-text: #456300;--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .08);--warn: #d97706;--warn-soft: rgba(217, 119, 6, .1);--info: #2563eb;--info-soft: rgba(37, 99, 235, .08);--bubble-in: #ffffff;--bubble-out: #e8f7bd;--bubble-out-text: #1b2507;--note: #fff7db;--note-line: #e6c65c;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-lg: 0 16px 48px rgba(15, 23, 42, .14), 0 2px 8px rgba(15, 23, 42, .06);--chip-mix: 13%;--chip-text-mix: 82%;--chat-bg: #eef1f3}:root{--font: "Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--r-sm: 6px;--r: 8px;--r-lg: 10px;--r-xl: 12px;--fs-xs: 11.5px;--fs-sm: 12.5px;--fs: 13.5px;--fs-md: 15px;--fs-lg: 18px;--fs-xl: 22px;--sidebar: 236px;--ease: cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:var(--fs);line-height:1.45;color:var(--text);background:var(--shell);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--accent-soft)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:10px;border:3px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-track{background:transparent}svg.lucide{flex:none}.row{display:flex;gap:8px;align-items:center}.col{display:flex;flex-direction:column;gap:8px}.grow{flex:1;min-width:0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.muted{color:var(--text-2)}.subtle{color:var(--text-3)}.xs{font-size:var(--fs-xs)}.sm{font-size:var(--fs-sm)}.strong{font-weight:600}.mono{font-variant-numeric:tabular-nums}.error{color:var(--danger);font-size:var(--fs-sm);margin:4px 0 8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 12px;border-radius:var(--r);background:transparent;border:1px solid var(--line-strong);color:var(--text);font-weight:500;font-size:var(--fs);cursor:pointer;white-space:nowrap;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),transform .05s}.btn:hover{background:var(--hover)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn.primary{background:var(--accent);border-color:transparent;color:var(--accent-ink);font-weight:600}.btn.primary:hover{background:var(--accent-hover)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent);background:transparent}.btn.danger:hover{background:var(--danger-soft)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--hover);color:var(--text)}.btn.sm{height:28px;padding:0 9px;font-size:var(--fs-sm);border-radius:var(--r-sm)}.btn.icon{width:34px;padding:0}.btn.icon.sm{width:28px}.input{width:100%;height:36px;padding:0 11px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line-strong);outline:none;transition:border-color .15s,box-shadow .15s}textarea.input{height:auto;padding:9px 11px;resize:vertical;line-height:1.45}.input::placeholder{color:var(--text-3)}.input:focus{border-color:var(--accent)}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--text-3) 50%),linear-gradient(135deg,var(--text-3) 50%,transparent 50%);background-position:calc(100% - 15px) 15px,calc(100% - 10px) 15px;background-size:5px 5px;background-repeat:no-repeat}.search{position:relative}.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-3)}.search .input{padding-left:32px}label.field{display:grid;gap:6px;margin-bottom:14px;font-size:var(--fs-sm);font-weight:500;color:var(--text-2)}.field .hint{font-weight:400;color:var(--text-3);font-size:var(--fs-xs)}.check{display:flex;gap:8px;align-items:center;cursor:pointer;color:var(--text);font-weight:400}.check input{accent-color:var(--accent);width:15px;height:15px}.label-chip{--c: #888;--ink: #fff;display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.015em;line-height:1;background:var(--c);color:var(--ink);border:1px solid color-mix(in srgb,var(--c) 70%,#000);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.label-chip.lg{height:26px;padding:0 10px;font-size:var(--fs-sm);border-radius:5px}.label-chip.off{background:transparent;color:var(--text-2);border:1px dashed color-mix(in srgb,var(--c) 70%,var(--text-3))}.labels{display:flex;flex-wrap:wrap;gap:4px}.pill{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;font-size:var(--fs-xs);font-weight:600;background:var(--surface-3);color:var(--text-2);white-space:nowrap}.pill.green{background:var(--accent-soft);color:var(--accent-text)}.pill.red{background:var(--danger-soft);color:var(--danger)}.pill.amber{background:var(--warn-soft);color:var(--warn)}.pill.blue{background:var(--info-soft);color:var(--info)}.count{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:10.5px;font-weight:700;display:inline-grid;place-items:center}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.dot.online{background:#22c55e}.dot.busy{background:#ef4444}.dot.away{background:#f59e0b}.dot.offline{background:#8b939b}.avatar{position:relative;flex:none;display:grid;place-items:center;border-radius:50%;font-weight:600;color:#fff;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.avatar .chan{position:absolute;right:-2px;bottom:-2px;width:16px;height:16px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;border:2px solid var(--surface)}.avatar .status{position:absolute;right:-1px;bottom:-1px;border:2px solid var(--surface);width:11px;height:11px}.shell{display:grid;grid-template-columns:var(--sidebar) 1fr;height:100vh;background:var(--shell)}.shell.collapsed{--sidebar: 64px}.side{background:transparent;display:flex;flex-direction:column;min-height:0}.side-head{display:flex;align-items:center;gap:10px;height:60px;padding:0 16px}.logo{width:28px;height:28px;border-radius:8px;background:#050505;display:grid;place-items:center;color:#c6f91f;font-weight:800;font-size:14px;flex:none}.brand{font-weight:700;font-size:17px;letter-spacing:-.03em}.brand span{color:var(--accent-text)}.side-nav{flex:1;overflow-y:auto;padding:10px}.side-nav h6{margin:16px 8px 6px;font-size:10.5px;letter-spacing:.07em;color:var(--text-3);font-weight:600;text-transform:uppercase}.side-nav h6:first-child{margin-top:4px}.nav-item{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:var(--r);color:var(--text-2);font-weight:500;transition:background .12s,color .12s}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item.active{background:var(--accent-soft);color:var(--accent-text)}.nav-item .count{margin-left:auto}.collapsed .side-nav h6,.collapsed .nav-label,.collapsed .brand,.collapsed .user-meta,.collapsed .nav-item .count{display:none}.collapsed .nav-item{justify-content:center;padding:0}.side-foot{padding:10px;position:relative}.user-btn{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border-radius:var(--r);background:var(--bg);border:0;cursor:pointer;text-align:left}.user-btn:hover{background:var(--surface-2)}.menu{position:absolute;z-index:40;min-width:240px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:6px;animation:pop .14s var(--ease)}.menu .menu-label{padding:8px 10px 4px;font-size:var(--fs-xs);color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.menu button{display:flex;align-items:center;gap:10px;width:100%;height:34px;padding:0 10px;background:none;border:0;border-radius:var(--r-sm);cursor:pointer;text-align:left;color:var(--text)}.menu button:hover{background:var(--hover)}.menu hr{border:0;border-top:1px solid var(--line);margin:6px 0}@keyframes pop{0%{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:none}}.main{display:flex;flex-direction:column;min-width:0;min-height:0;height:calc(100vh - 24px);margin:12px 12px 12px 0;background:var(--bg);border-radius:var(--r-xl);overflow:hidden}.topbar{display:flex;align-items:center;gap:4px;height:48px;padding:0 14px;border-bottom:1px solid var(--line);flex:none}.stat{display:flex;align-items:center;gap:7px;height:20px;padding:0 14px;color:var(--text-2);font-size:var(--fs-sm)}.stat+.stat{border-left:1px solid var(--line-strong)}.stat b{color:var(--text);font-weight:650;font-variant-numeric:tabular-nums}.stat svg{color:var(--text-3)}.stat.hot b{color:var(--warn)}.page{padding:28px 32px 40px;overflow-y:auto;flex:1;min-height:0}.page-head{display:flex;align-items:flex-end;gap:16px;margin-bottom:20px}.page-head h1{font-size:var(--fs-xl);font-weight:700;letter-spacing:-.02em;margin:0}.page-head p{margin:4px 0 0;color:var(--text-2)}.card{background:var(--surface);border-radius:var(--r-lg)}.card-pad{padding:20px}.card h3{margin:0 0 4px;font-size:var(--fs-md);font-weight:650}.table-wrap{overflow-x:auto}table.grid{width:100%;border-collapse:collapse}table.grid th{text-align:left;font-size:var(--fs-xs);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;padding:11px 16px;border-bottom:1px solid var(--line);background:transparent}table.grid td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}table.grid tbody tr{transition:background .1s}table.grid tbody tr:hover{background:var(--hover)}table.grid tr:last-child td{border-bottom:0}table.grid td.actions{text-align:right;white-space:nowrap}.empty-row td{text-align:center;color:var(--text-3);padding:40px}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#05080a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:60;padding:16px;animation:fade .15s}.modal{width:min(520px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);animation:pop .18s var(--ease)}.modal-head{display:flex;align-items:center;gap:10px;padding:18px 20px 6px}.modal-head h2{margin:0;font-size:var(--fs-lg);font-weight:650;letter-spacing:-.01em}.modal-body{padding:10px 20px 4px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 18px}@keyframes fade{0%{opacity:0}}.desk{display:grid;grid-template-columns:372px 1fr;height:100%;min-height:0}.chatlist{display:flex;flex-direction:column;min-height:0;background:var(--surface);border-right:1px solid var(--line)}.chatlist-head{padding:12px 12px 8px;display:flex;flex-direction:column;gap:10px}.seg{display:flex;padding:3px;gap:2px;background:var(--surface-3);border-radius:10px}.seg button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--text-2);font-weight:550;cursor:pointer;font-size:var(--fs-sm)}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.seg .n{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}.seg button.on .n{color:var(--accent-text)}.boxtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;padding:0 6px}.boxtabs button{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 10px;border:0;background:none;color:var(--text-2);font-weight:550;font-size:var(--fs-sm);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.boxtabs button:hover{color:var(--text)}.boxtabs button.on{color:var(--accent-text);border-bottom-color:var(--accent)}.boxtabs button.late.on{color:var(--warn);border-bottom-color:var(--warn)}.boxtabs .unr{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:10.5px;font-weight:700;display:inline-grid;place-items:center}.boxtabs .late .unr{background:var(--warn);color:#231400}.chatitems{overflow-y:auto;flex:1;padding:8px 8px 12px;display:flex;flex-direction:column;gap:6px}.chatitem{display:grid;grid-template-columns:40px 1fr;gap:10px;padding:9px 10px;border-radius:10px;cursor:pointer;position:relative;border:1px solid var(--line-strong);background:var(--surface);transition:background .1s,border-color .1s}.chatitem:hover{background:var(--surface-2)}.chatitem.sel{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.chatitem.unread{border-left:3px solid var(--accent);padding-left:8px}.chatitem .top{display:flex;align-items:baseline;gap:6px;min-width:0;font-size:var(--fs-xs);color:var(--text-3)}.chatitem .name{font-weight:650;font-size:var(--fs);color:var(--text);flex:none;max-width:45%}.chatitem .top .ci-phone{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.chatitem .top .right{margin-left:auto;display:inline-flex;gap:6px;align-items:center;white-space:nowrap;font-variant-numeric:tabular-nums}.chatitem.unread .top .when{color:var(--accent-text);font-weight:600}.chatitem .preview{display:flex;gap:6px;align-items:center;color:var(--text-2);font-size:var(--fs-sm);margin-top:2px}.chatitem .preview .you{color:var(--text-3)}.chatitem .labels{margin-top:6px}.chatitem .item-menu{position:absolute;right:6px;bottom:6px;opacity:0;transition:opacity .12s;background:var(--surface-3)}.chatitem:hover .item-menu,.chatitem .item-menu:focus-visible{opacity:1}.chatitem .late-tag{color:var(--warn);font-weight:600;display:inline-flex;align-items:center;gap:3px}.chat{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--chat-bg);position:relative}.infopanel{position:absolute;top:0;right:0;bottom:0;width:320px;background:var(--surface);border-left:1px solid var(--line-strong);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;z-index:20;animation:slidein .16s var(--ease)}@keyframes slidein{0%{transform:translate(12px);opacity:0}}.btn.on-tool{background:var(--accent-soft);color:var(--accent-text)}.emoji-grid{display:grid!important;grid-template-columns:repeat(6,36px);gap:2px;min-width:0!important;width:auto;padding:6px}.emoji-grid button{width:36px!important;height:36px!important;padding:0!important;justify-content:center;font-size:20px}.chathead{display:flex;gap:12px;align-items:center;min-height:64px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface)}.chathead .who{min-width:0}.chathead .who .name{font-weight:650;font-size:var(--fs-md)}.chathead .who .info{display:flex;gap:10px;flex-wrap:wrap;color:var(--text-3);font-size:var(--fs-xs);margin-top:2px}.chathead .who .info span{display:inline-flex;align-items:center;gap:4px}.chathead .tools{margin-left:auto;display:flex;gap:4px;align-items:center}.vsep{width:1px;height:22px;background:var(--line-strong);margin:0 4px}.chat-labels{display:flex;gap:6px;align-items:center;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap}.timeline{flex:1;overflow-y:auto;padding:20px max(24px,6%);display:flex;flex-direction:column;gap:4px}.day{align-self:center;margin:14px 0 8px;font-size:var(--fs-xs);font-weight:600;color:var(--text-2);background:var(--surface);border:1px solid var(--line);padding:3px 10px;border-radius:999px}.event{align-self:center;display:inline-flex;gap:6px;align-items:center;margin:6px 0;font-size:var(--fs-xs);color:var(--text-3);max-width:80%;text-align:center}.event svg{color:var(--text-3)}.bubble{max-width:min(68%,560px);padding:7px 11px 6px;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45;box-shadow:var(--shadow-sm);position:relative}.bubble.in{background:var(--bubble-in);align-self:flex-start;border-bottom-left-radius:4px;border:1px solid var(--line)}.bubble.out{background:var(--bubble-out);color:var(--bubble-out-text);align-self:flex-end;border-bottom-right-radius:4px}.bubble.note{background:var(--note);align-self:flex-end;border:1px dashed var(--note-line);border-bottom-right-radius:4px}.bubble .who{font-size:var(--fs-xs);font-weight:650;margin-bottom:2px;color:var(--accent-text)}.bubble.note .who{color:var(--warn);display:flex;align-items:center;gap:5px}.bubble .stamp{float:right;margin:6px 0 -2px 10px;font-size:10.5px;color:var(--text-3);display:inline-flex;align-items:center;gap:3px;font-variant-numeric:tabular-nums}.bubble.out .stamp{color:color-mix(in srgb,var(--bubble-out-text) 55%,transparent)}.bubble.failed{outline:1px solid var(--danger)}.bubble .body{white-space:pre-wrap}.bubble.has-media{padding:4px 4px 6px}.bubble.has-media .body,.bubble.has-media .who{padding:4px 7px 0}.bubble.has-media .stamp{margin-right:6px}.bubble.has-media.audio{padding:6px 8px}.media-img{display:block}.media-img img{display:block;max-width:min(320px,100%);max-height:360px;border-radius:10px;object-fit:cover}.media-video{display:block;max-width:min(340px,100%);max-height:360px;border-radius:10px;background:#000}.media-audio{display:block;width:280px;max-width:100%;height:40px}.media-doc{display:flex;align-items:center;gap:10px;min-width:240px;max-width:320px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--text) 6%,transparent);color:inherit}.media-doc:hover{background:color-mix(in srgb,var(--text) 10%,transparent)}.media-doc .ic{width:36px;height:36px;border-radius:8px;background:var(--danger);color:#fff;display:grid;place-items:center;flex:none}.reply-btn{position:absolute;top:4px;right:-32px;width:26px;height:26px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--text-2);display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .12s}.bubble.out .reply-btn,.bubble.note .reply-btn{right:auto;left:-32px}.bubble:hover .reply-btn{opacity:1}.quote{display:flex;gap:8px;align-items:center;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--text) 6%,transparent);border-radius:6px;padding:5px 8px;margin-bottom:4px;font-size:var(--fs-sm)}.quote.in{border-left-color:var(--info)}.quote .q-who{font-weight:650;font-size:var(--fs-xs);color:var(--accent-text)}.quote.in .q-who{color:var(--info)}.quote .q-text{color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quote .q-thumb{width:36px;height:36px;border-radius:4px;object-fit:cover}.composer-extra{margin-bottom:8px}.composer-extra.attach{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface-2)}.attach-thumb{width:48px;height:48px;border-radius:8px;object-fit:cover}.attach-ic{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;background:var(--surface-3);color:var(--text-2)}.recbar{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--danger);border-radius:12px;background:var(--danger-soft)}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);animation:blink 1s infinite}@keyframes blink{50%{opacity:.25}}.dropzone{position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:2px dashed var(--accent);border-radius:14px;background:color-mix(in srgb,var(--bg) 80%,transparent);display:grid;place-content:center;justify-items:center;gap:8px;color:var(--accent-text);z-index:25;pointer-events:none}.group-gap{height:8px}.composer{border-top:1px solid var(--line);background:var(--surface);padding:10px 14px 12px;position:relative}.composer-box{border:1px solid var(--line-strong);border-radius:12px;background:var(--surface-2);transition:border-color .15s,box-shadow .15s}.composer-box:focus-within{border-color:var(--accent)}.composer.note .composer-box{border-color:var(--note-line);background:var(--note)}.composer textarea{width:100%;border:0;background:transparent;outline:none;resize:none;padding:10px 12px 4px;min-height:44px;max-height:180px;line-height:1.45}.composer-bar{display:flex;align-items:center;gap:2px;padding:4px 6px 6px}.mode{display:inline-flex;padding:2px;background:var(--surface-3);border-radius:8px;margin-right:6px}.mode button{height:26px;padding:0 10px;border:0;background:transparent;border-radius:6px;font-size:var(--fs-sm);font-weight:550;color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;gap:5px}.mode button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.mode button.on.note{color:var(--warn)}.composer .hint{margin-left:auto;margin-right:8px;font-size:var(--fs-xs);color:var(--text-3)}kbd{font-family:var(--font);font-size:10.5px;padding:1px 5px;border-radius:4px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text-2)}.popover{position:absolute;bottom:calc(100% - 4px);left:14px;right:14px;max-height:300px;overflow-y:auto;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;animation:pop .12s var(--ease);z-index:30}.popover .ph{padding:6px 10px;font-size:var(--fs-xs);color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.popover .opt{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:8px 10px;border-radius:8px;cursor:pointer;align-items:baseline}.popover .opt.hl{background:var(--accent-soft)}.popover .opt b{color:var(--accent-text);font-weight:650}.popover .opt span{color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty{display:grid;place-items:center;height:100%;padding:24px;text-align:center}.empty .ill{display:grid;place-items:center;color:var(--text-3);margin:0 auto 10px}.empty .ill svg{width:34px;height:34px;stroke-width:1.4}.empty h4{margin:0 0 4px;font-size:var(--fs-md);font-weight:650}.empty p{margin:0;color:var(--text-2);max-width:320px}.choice{display:grid;grid-template-columns:18px 1fr;gap:12px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--r-lg);cursor:pointer;margin-bottom:8px;transition:border-color .12s,background .12s}.choice:hover{background:var(--hover)}.choice.on{border-color:var(--accent);background:var(--accent-soft)}.choice input{accent-color:var(--accent);margin-top:3px}.choice b{display:block;font-weight:600}.choice span{color:var(--text-2);font-size:var(--fs-sm)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}.kpi{padding:16px 18px}.kpi .k{display:flex;align-items:center;gap:8px;color:var(--text-2);font-size:var(--fs-sm);font-weight:500}.kpi .k .ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--surface-3);color:var(--text-2)}.kpi .v{font-size:28px;font-weight:700;letter-spacing:-.02em;margin-top:8px;font-variant-numeric:tabular-nums}.login{--lime: #c6f91f;min-height:100vh;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(400px,1fr);background:#050505;color:#fff}.login-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:48px 56px 40px;min-height:100vh}.login-hero:after{content:"";position:absolute;inset:24px 0 24px auto;width:1px;background:linear-gradient(transparent,#232323 20%,#232323 80%,transparent)}.login-logo{height:44px;width:auto;align-self:flex-start;mix-blend-mode:lighten;margin-left:-6px}.login-pitch{position:relative;z-index:1;margin-top:clamp(40px,11vh,120px);max-width:620px}.login-pitch h2{margin:0 0 22px;font-size:clamp(32px,3.5vw,52px);line-height:1.12;font-weight:500;letter-spacing:-.03em}.login-pitch h2 em{font-style:normal;color:#eef8c2}.login-pitch p{margin:0 0 10px;font-size:clamp(16px,1.5vw,21px);line-height:1.35;color:#c9c9c9;max-width:400px}.login-pitch small{font-size:14px;color:#8f8f8f}.login-art{position:absolute;left:0;right:0;bottom:36px;width:100%;max-height:58vh;object-fit:contain;object-position:center bottom;mix-blend-mode:lighten;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 82%,transparent),linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 82%,transparent),linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);mask-composite:intersect;animation:login-glow 6s ease-in-out infinite alternate}@keyframes login-glow{0%{filter:brightness(.92)}to{filter:brightness(1.12)}}.login-foot{position:relative;z-index:1;margin-top:auto;font-size:12.5px;color:#7d7d7d}.login-side{display:grid;place-items:center;padding:32px 24px}.login-form{width:min(380px,100%)}.login-logo.small{display:none}.login-form h1{margin:0 0 8px;font-size:30px;font-weight:600;letter-spacing:-.03em}.login-sub{margin:0 0 30px;color:#9a9a9a;font-size:14.5px}.login-field{display:block;margin-bottom:18px;font-size:13px;font-weight:500;color:#c9c9c9}.login-field input{display:block;width:100%;height:48px;margin-top:8px;padding:0 14px;font:inherit;font-size:15px;font-weight:400;color:#fff;background:#101010;border:1px solid #2a2a2a;border-radius:10px;outline:none;transition:border-color .15s,box-shadow .15s}.login-field input::placeholder{color:#5c5c5c}.login-field input:hover{border-color:#3a3a3a}.login-field input:focus{border-color:var(--lime);box-shadow:0 0 0 3px #c6f91f29}.login-field input:-webkit-autofill{-webkit-text-fill-color:#fff;box-shadow:0 0 0 100px #101010 inset;caret-color:#fff}.login-pass{position:relative;display:block}.login-pass input{padding-right:46px}.login-pass button{position:absolute;right:6px;bottom:6px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:8px;background:none;color:#8a8a8a;cursor:pointer}.login-pass button:hover{color:#fff;background:#1c1c1c}.login-error{margin:0 0 16px;padding:10px 12px;font-size:13.5px;color:#ffb4a8;background:#ff5a461a;border:1px solid rgba(255,90,70,.28);border-radius:10px}.login-btn{width:100%;height:48px;margin-top:8px;display:flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:15px;font-weight:600;color:#0a0a0a;background:var(--lime);border:0;border-radius:10px;cursor:pointer;transition:filter .15s,box-shadow .15s,transform .05s}.login-btn:hover{filter:brightness(1.06);box-shadow:0 0 28px #c6f91f47}.login-btn:active{transform:translateY(1px)}.login-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.login-btn:disabled{opacity:.6;cursor:default;box-shadow:none}@media (max-width: 900px){.login{grid-template-columns:1fr}.login-hero{display:none}.login-logo.small{display:block;height:38px;margin-bottom:36px}}@media (prefers-reduced-motion: reduce){.login-art{animation:none}}.phone{width:360px;height:620px;border-radius:34px;padding:10px;background:#0a0a0a;box-shadow:var(--shadow-lg);flex:none}.phone-in{height:100%;border-radius:26px;overflow:hidden;display:flex;flex-direction:column;background:#efeae2}.phone .ph-head{display:flex;gap:10px;align-items:center;background:#075e54;color:#fff;padding:12px 14px}.phone .ph-body{flex:1;overflow-y:auto;padding:12px 10px;display:flex;flex-direction:column;gap:4px}.phone .b{max-width:82%;padding:6px 9px;border-radius:8px;white-space:pre-wrap;font-size:13.5px;color:#111b21;box-shadow:0 1px .5px #00000021}.phone .b.me{background:#d9fdd3;align-self:flex-end}.phone .b.them{background:#fff;align-self:flex-start}.phone .ph-input{display:flex;gap:6px;padding:8px;background:#f0f2f5}.phone .ph-quote{border-left:3px solid #06cf9c;background:#0000000d;border-radius:5px;padding:4px 7px;margin-bottom:4px;font-size:12px;color:#54656f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phone .media-doc{color:#111b21;min-width:200px}.phone .media-img img,.phone .media-video{max-width:240px}.phone .media-audio{width:230px}.phone .ph-input input{flex:1;border:0;border-radius:20px;padding:9px 14px;background:#fff;color:#111;outline:none}.phone .ph-input button{width:40px;height:40px;border-radius:50%;border:0;background:#00a884;color:#fff;display:grid;place-items:center;cursor:pointer}@media (max-width: 1100px){.desk{grid-template-columns:320px 1fr}}@media (max-width: 860px){.shell{grid-template-columns:1fr}.side{display:none}.desk{grid-template-columns:1fr}.page{padding:20px 16px}.topbar{overflow-x:auto}}.composer-extra.grouping{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;border:1px solid color-mix(in srgb,var(--info) 40%,transparent);background:var(--info-soft);color:var(--text)}.composer-extra.grouping>svg{color:var(--info)}.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:80;width:min(360px,calc(100vw - 32px))}.toast{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);animation:pop .18s var(--ease);cursor:pointer}.toast .t-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex:none;background:var(--warn-soft);color:var(--warn)}.toast.info .t-ic{background:var(--info-soft);color:var(--info)}.toast b{display:block;margin-bottom:2px}.prev-chat{text-align:left;width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface-2);cursor:pointer;color:var(--text)}.prev-chat:hover{border-color:var(--accent)}.hist-bar{gap:8px;flex-wrap:wrap}.seg-btns{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--r);overflow:hidden;height:40px}.seg-btns button{width:44px;border:0;background:var(--surface);color:var(--text-2);cursor:pointer;display:grid;place-items:center}.seg-btns button+button{border-left:1px solid var(--line-strong)}.seg-btns button.on{background:var(--accent-soft);color:var(--accent-text)}.hist-table th{white-space:nowrap}.hist-table td{padding:10px 14px}.hist-table input[type=checkbox],.hist-card input[type=checkbox],.hf-opt input{accent-color:var(--accent);width:16px;height:16px}.hist-foot{margin-top:12px;gap:10px}.hist-card{display:flex;gap:12px;align-items:center;padding:12px 16px;cursor:pointer}.hist-card:hover{border-color:var(--line-strong);background:var(--surface-2)}.chain{display:inline-flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:var(--fs-sm);font-weight:550}.chain>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.chain i{width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid #888}.st-pill{--c: #888;display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:6px;font-size:11.5px;font-weight:650;white-space:nowrap;color:color-mix(in srgb,var(--c) 85%,var(--text));background:color-mix(in srgb,var(--c) 16%,transparent)}.hf-pop{position:absolute;top:calc(100% + 8px);left:-380px;z-index:50;width:700px;max-width:calc(100vw - 32px);height:480px;display:grid;grid-template-columns:250px 1fr;background:var(--surface);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden;animation:pop .14s var(--ease)}.hf-left{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:var(--surface-2)}.hf-list{overflow-y:auto;padding:0 6px 10px}.hf-group{font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--text-3);padding:12px 10px 6px;text-transform:uppercase}.hf-item{display:flex;align-items:center;gap:9px;width:100%;height:32px;padding:0 10px;border:0;background:none;border-radius:7px;cursor:pointer;color:var(--text-2);text-align:left;font-size:var(--fs-sm)}.hf-item:hover:not(:disabled){background:var(--hover);color:var(--text)}.hf-item.on{background:var(--accent-soft);color:var(--accent-text)}.hf-item:disabled{opacity:.5;cursor:default}.hf-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.hf-right{display:flex;flex-direction:column;min-height:0;padding:16px 18px 0}.hf-head{display:flex;align-items:center;gap:8px;font-size:var(--fs-md)}.hf-ic{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text)}.hf-body{flex:1;overflow-y:auto;min-height:0;padding-right:4px}.hf-opt{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line);cursor:pointer;font-size:var(--fs-sm)}.hf-opt:hover{background:var(--hover)}.hf-foot{display:flex;align-items:center;gap:12px;padding:12px 0 14px;border-top:1px solid var(--line);margin-top:8px}.hf-field{display:flex;align-items:center;gap:4px;padding:6px 8px;border:1px solid var(--line-strong);border-radius:8px;margin-bottom:6px;font-size:var(--fs-sm)}.switch{width:30px;height:17px;border-radius:999px;background:var(--surface-3);border:1px solid var(--line-strong);position:relative;display:inline-block;cursor:pointer;transition:background .15s}.switch:after{content:"";position:absolute;top:1px;left:1px;width:13px;height:13px;border-radius:50%;background:var(--text-3);transition:left .15s,background .15s}.switch.on{background:var(--accent-soft);border-color:var(--accent)}.switch.on:after{left:14px;background:var(--accent)}.hist-table{overflow-x:auto}.hist-table table.grid{min-width:100%;width:max-content}.hist-table table.grid th{text-transform:none;letter-spacing:0;font-size:var(--fs-sm);font-weight:600;color:var(--text-2);background:var(--surface);padding:14px}.hist-table table.grid td{white-space:nowrap;height:58px}.hist-table .chain{flex-wrap:nowrap}.hist-table th:nth-child(1),.hist-table td:nth-child(1){position:sticky;left:0;z-index:1;background:var(--surface)}.hist-table th:nth-child(2),.hist-table td:nth-child(2){position:sticky;left:44px;z-index:1;background:var(--surface);border-right:1px solid var(--line-strong)}.hist-table tbody tr:hover td{background:var(--surface-2)}.hd-lines{display:flex;flex-direction:column;gap:1px;margin-top:3px;font-size:11.5px;color:var(--text-2)}.hd-lines b{font-weight:650;color:var(--text)}.hd-lines svg{vertical-align:-1px}.ac{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:44px;padding:6px 10px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);cursor:text}.ac:focus-within{border-color:var(--accent)}.ac-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 6px 0 9px;border-radius:7px;background:var(--surface-3);font-size:var(--fs-sm);font-weight:550;color:var(--text)}.ac-chip button{border:0;background:none;color:var(--text-3);cursor:pointer;display:grid;place-items:center;padding:2px;border-radius:4px}.ac-chip button:hover{color:var(--text);background:var(--hover)}.ac-chip i,.tagpick-opt i{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid #888;flex:none}.ac-input{flex:1;min-width:140px;border:0;outline:none;background:transparent;height:30px}.ac-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:280px;overflow-y:auto;z-index:30;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-lg);padding:4px}.tagpick-list{max-height:240px;overflow-y:auto;padding:0 4px 6px}.tagpick-opt{display:flex;align-items:center;gap:10px;width:100%;height:34px;padding:0 10px;border:0;background:none;border-radius:7px;cursor:pointer;color:var(--text);text-align:left;font-size:var(--fs-sm)}.tagpick-opt:hover,.tagpick-opt.on{background:var(--hover)}.infopanel{width:360px}.ip-head{display:flex;gap:12px;align-items:flex-start;padding:16px 14px 12px 16px;border-bottom:1px solid var(--line)}.ip-name{font-size:var(--fs-md);font-weight:700}.ip-tabs{padding:0 8px}.ip-tabs button{flex:1;justify-content:center}.ip-body{flex:1;overflow-y:auto;padding:12px 14px;min-height:0}.ip-sec{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden}.ip-sec-head{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:0;background:var(--surface-2);cursor:pointer;color:var(--text);text-align:left}.ip-sec-body{padding:10px 12px}.ip-kv{margin-bottom:10px}.ip-chat{display:flex;gap:10px;align-items:center;padding:10px 6px;border-bottom:1px solid var(--line)}.ip-chat-ic{color:var(--info);flex:none}.ip-file{display:flex;gap:10px;align-items:center;padding:8px;border-radius:8px;color:var(--text)}.ip-file:hover{background:var(--hover)}.ip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.ip-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}.ip-media-other{aspect-ratio:1;border-radius:8px;background:var(--surface-3);display:grid;place-items:center;font-size:22px;color:var(--text-2)}.mm{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mm-list{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto}.mm-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:10px}.mm-row.on{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}@media (max-width: 700px){.mm{grid-template-columns:1fr}}.modal:has(.ac){overflow:visible}table.grid th{text-transform:none;letter-spacing:0;font-size:var(--fs-sm);color:var(--text-2)}.search-box{position:relative;display:flex;align-items:center}.search-box>svg{position:absolute;left:10px;color:var(--text-3);pointer-events:none}.search-box .input{padding-left:32px}.input.sm{height:30px;font-size:var(--fs-sm)}.linkish{display:inline-flex;align-items:center;gap:7px;border:0;background:none;color:var(--text);cursor:pointer;padding:0;font:inherit}.linkish:hover b{color:var(--accent-text);text-decoration:underline}.desc-cell{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row.wrap{flex-wrap:wrap}.check-row{display:flex;align-items:flex-start;gap:8px;font-size:var(--fs-sm);cursor:pointer;margin:6px 0}.check-row input{margin-top:2px;accent-color:var(--accent)}.check-row .hint{color:var(--text-3)}.alert{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:var(--r);font-size:var(--fs-sm);margin:10px 0}.alert.danger{background:var(--danger-soft);color:var(--danger)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.chip-wrap{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:var(--surface-3);padding:1px 5px;border-radius:4px}.flow-editor{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--bg)}.flow-editor.loading{align-items:center;justify-content:center;color:var(--text-3)}.flow-save{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--text-3);margin-left:6px}.flow-canvas .react-flow{--xy-background-color: var(--bg);--xy-minimap-background-color: var(--surface);--xy-controls-button-background-color: var(--surface);--xy-controls-button-color: var(--text-2);--xy-controls-button-border-color: var(--line);--xy-edge-stroke-selected: var(--accent)}.flow-canvas .react-flow__edge.selected .react-flow__edge-path{stroke-width:3.5!important;filter:drop-shadow(0 0 4px var(--accent))}.pal-soon{font-size:10px;color:var(--text-3);border:1px solid var(--line-strong);border-radius:999px;padding:0 6px}.pal-star{border:0;background:none;color:var(--text-3);cursor:pointer;opacity:0;display:grid;place-items:center;padding:2px}.node-modal{width:min(760px,100%);display:flex;flex-direction:column}.node-modal.full{width:calc(100vw - 32px);height:calc(100vh - 32px);max-height:none}.node-modal .modal-body{flex:1}.node-title-input{border:1px solid transparent;background:transparent;color:var(--text);font-size:var(--fs-lg);font-weight:650;padding:2px 6px;margin-left:-6px;border-radius:var(--r-sm);width:100%;outline:none}.node-title-input:hover{border-color:var(--line-strong)}.node-title-input:focus{border-color:var(--accent)}.node-docs{background:var(--info-soft);color:var(--text);border-radius:var(--r);padding:12px 14px;margin-bottom:14px;font-size:var(--fs-sm);line-height:1.5}.vars-help{margin-top:8px;color:var(--text-2);font-size:var(--fs-xs);line-height:1.8}.vars-help code{margin:0 2px}.chat-block{border:1px solid var(--line-strong);border-radius:var(--r-lg);padding:10px 12px 12px;margin-bottom:10px;background:var(--surface-2)}.chat-block-head{display:flex;align-items:center;gap:7px;margin-bottom:8px;font-size:var(--fs-sm)}.btn-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.btn-num{width:22px;height:22px;border-radius:50%;background:var(--surface-3);display:grid;place-items:center;font-size:var(--fs-xs);font-weight:650;color:var(--text-2);flex-shrink:0}.code-area{font-size:12.5px;line-height:1.55;-moz-tab-size:2;tab-size:2}.day-btn{height:30px;min-width:42px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface);color:var(--text-2);cursor:pointer;font-size:var(--fs-sm)}.day-btn.on{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent)}.flow-editor{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:row;background:var(--bg)}.flow-canvas{flex:1;min-width:0;position:relative}.flow-canvas .react-flow{--xy-background-color: var(--bg);--xy-minimap-background-color: var(--surface);--xy-controls-button-background-color: var(--surface);--xy-controls-button-background-color-hover: var(--surface-3);--xy-controls-button-color: var(--text-2);--xy-controls-button-border-color: var(--line);--xy-node-border-radius: 10px}.flow-canvas .react-flow__controls{box-shadow:var(--shadow-sm);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.flow-canvas .react-flow__controls-button svg{max-width:14px;max-height:14px}.flow-canvas .react-flow__minimap{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.flow-canvas .react-flow__node{cursor:grab}.htop{position:absolute;top:14px;left:14px;right:14px;max-width:980px;z-index:5;display:flex;align-items:center;gap:10px;padding:8px 10px;background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.htop-back{width:30px;height:30px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--text-2);display:grid;place-items:center;cursor:pointer;flex-shrink:0}.htop-back:hover{background:var(--hover);color:var(--text)}.htop-name{border:0;background:none;color:var(--text);font-weight:700;font-size:var(--fs-md);cursor:pointer;padding:4px 6px;border-radius:6px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.htop-name:hover{background:var(--hover)}.htop-badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 10px;border-radius:999px;font-size:var(--fs-xs);font-weight:600;border:1px solid;flex-shrink:0}.htop-badge.pub{color:#5fd07e;border-color:#5fd07e80}.htop-badge.draft{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 50%,transparent)}.htop-app{color:var(--text-3);font-size:var(--fs-sm);margin-left:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.htop-avatar{width:28px;height:28px;border-radius:50%;background:var(--surface-3);color:var(--text);display:grid;place-items:center;font-weight:700;font-size:var(--fs-sm);flex-shrink:0}.htop-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px;border-radius:10px;border:1px solid var(--line-strong);background:transparent;color:var(--text);font-weight:550;cursor:pointer;flex-shrink:0}.htop-btn:hover{background:var(--hover)}.htop-btn.primary{background:var(--accent);border-color:transparent;color:var(--accent-ink)}.htop-btn.primary:hover{background:var(--accent-hover)}.htop-btn:disabled{opacity:.5;cursor:default}.flow-save{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--text-3);white-space:nowrap}.flow-save.error{color:var(--danger)}.flow-save.dirty{color:var(--warn)}.hnode{width:300px;background:var(--surface);border:1.5px solid var(--line-strong);border-radius:16px;box-shadow:var(--shadow-sm);font-size:12.5px}.hnode.wide{width:380px}.hnode.sel{border-color:#4ea1ff;box-shadow:0 0 0 3px #4ea1ff40}.hnode.soon{border-style:dashed}.hn-head{display:flex;align-items:center;gap:8px;padding:9px 10px;background:color-mix(in srgb,var(--nc) 22%,var(--surface));color:var(--nc);border-radius:14.5px 14.5px 0 0;border-bottom:1px solid color-mix(in srgb,var(--nc) 35%,transparent)}.hn-title{flex:1;color:var(--text);font-weight:650;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hn-gear{border:0;background:transparent;color:var(--text-2);cursor:pointer;width:24px;height:24px;border-radius:6px;display:grid;place-items:center}.hn-gear:hover{background:var(--hover);color:var(--text)}.hn-big{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 12px;color:var(--nc);text-align:center}.hn-label{color:var(--text);font-size:12px}.hn-sub{color:var(--text-2);font-size:11.5px}.hn-sub.dim{color:var(--text-3)}.hn-warn{color:var(--warn);font-size:11px}.hn-chips{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;align-items:center}.hn-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:6px;background:var(--surface-3);color:var(--text);font-size:11px}.hn-chip i{width:7px;height:7px;border-radius:50%}.hn-chip.flow{background:#26c6da26;color:#26c6da}.hn-badge{padding:1px 7px;border-radius:5px;font-size:10.5px;font-weight:700;background:var(--surface-3);color:var(--text-2)}.hn-badge.ok,.hn-badge.m-get{background:#5fd07e26;color:#5fd07e}.hn-badge.m-post{background:#1e88e526;color:#4ea1ff}.hn-badge.m-put,.hn-badge.m-patch{background:#ff980026;color:#ff9800}.hn-badge.m-delete{background:#ef535026;color:#ef5350}.hn-mono{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--text-2);word-break:break-all}.hn-pad{padding:10px 12px}.hn-chan{display:inline-flex;align-items:center;gap:5px;color:var(--text-2);font-size:11.5px;margin-bottom:6px}.hn-block{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:7px 9px;margin-bottom:6px}.hn-block b{font-size:11px;color:var(--text-2)}.hn-text{color:var(--text);white-space:pre-wrap;word-break:break-word;line-height:1.4;margin-top:2px}.hn-text.center{text-align:center;color:var(--text-2)}.hn-btns{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.hn-btns span{border:1px solid var(--line-strong);border-radius:6px;padding:1px 7px;font-size:11px;color:var(--info)}.hn-json{font-family:ui-monospace,Menlo,monospace;font-size:11px;background:var(--surface-2);border-radius:8px;padding:7px 9px;margin-top:6px}.hn-json .j-row{padding-left:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hn-json .j-k{color:#c792ea}.hn-json .j-v{color:#a5d6a7}.hn-json .j-n{color:var(--text-3)}.hn-json .j-b{color:var(--text-2)}.hn-code{font-family:ui-monospace,Menlo,monospace;font-size:11px;background:var(--surface-2);border-radius:8px;padding:8px;margin:0;white-space:pre-wrap;color:var(--text-2);max-height:260px;overflow:auto}.hn-ports{border-top:1px solid var(--line);padding:4px 0}.hn-port{position:relative;display:flex;align-items:center;gap:6px;padding:5px 20px 5px 12px;min-height:26px}.hn-pbadge{font-size:9.5px;font-weight:800;padding:1px 5px;border-radius:4px;flex-shrink:0}.hn-plabel{flex:1;color:var(--text-2);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hn-tip{color:var(--text-3);display:grid;place-items:center;position:relative;cursor:help}.hn-tip:hover:after{content:attr(data-tip);position:absolute;right:18px;top:50%;transform:translateY(-50%);width:max-content;max-width:280px;background:var(--surface-3);color:var(--text);border:1px solid var(--line-strong);border-radius:8px;padding:7px 10px;font-size:12px;line-height:1.4;white-space:normal;z-index:50;box-shadow:var(--shadow-lg)}.react-flow__handle.hn-h{width:13px;height:13px;right:-7px;background:var(--surface);border:2.5px solid;transition:transform .1s}.react-flow__handle.hn-h:hover{transform:translateY(-50%) scale(1.4)}.react-flow__handle.hn-in{width:10px;height:10px;left:-6px;background:var(--text-3);border:2px solid var(--surface)}.edge-del{position:absolute;pointer-events:all;width:22px;height:22px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--danger);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-sm)}.hnote{width:220px;border-radius:14px;box-shadow:var(--shadow-sm);border:1.5px solid transparent;overflow:hidden}.hnote.note{background:#fef3a0;color:#3d3200}.hnote.comment{background:var(--surface);border-color:var(--info);color:var(--text)}.hnote.sel{border-color:#4ea1ff}.hnote-head{display:flex;align-items:center;gap:6px;padding:6px 9px;font-size:11.5px;font-weight:650;opacity:.8}.hnote textarea{width:100%;min-height:80px;border:0;background:transparent;color:inherit;resize:vertical;padding:0 9px 9px;font:inherit;font-size:12.5px;outline:none}.pal-toggle{position:absolute;right:362px;top:70px;z-index:6;width:26px;height:26px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--text-2);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-sm)}.pal-toggle.closed{right:12px}.hpal{width:375px;flex-shrink:0;border-left:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;min-height:0}.hpal-head{padding:16px 16px 10px}.hpal-hint{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--text-2);margin-bottom:12px;font-size:var(--fs-md)}.hpal-tabs{display:flex;border-bottom:1px solid var(--line)}.hpal-tabs button{flex:1;height:42px;border:0;background:none;color:var(--text-2);font-weight:550;cursor:pointer;border-bottom:2px solid transparent}.hpal-tabs button.on{color:var(--accent-text);border-bottom-color:var(--accent)}.hpal-body{overflow-y:auto;padding:8px 14px 24px;flex:1}.hpal-ghead{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:none;color:var(--text);font-weight:700;padding:14px 2px 10px;cursor:pointer}.hpal-card{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line-strong);border-radius:10px;margin-bottom:8px;cursor:grab;-webkit-user-select:none;user-select:none;background:var(--surface-2)}.hpal-card:hover{border-color:color-mix(in srgb,var(--accent) 60%,transparent)}.hpal-card.soon{opacity:.6}.hpal-ic{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}.hpal-txt{flex:1;min-width:0;display:flex;flex-direction:column}.hpal-txt b{font-weight:550;font-size:13px}.hpal-txt small{color:var(--text-3);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pal-soon{font-size:10px;color:var(--text-3);border:1px solid var(--line-strong);border-radius:999px;padding:0 6px;flex-shrink:0}.pal-star{border:0;background:none;color:var(--text-3);cursor:pointer;display:grid;place-items:center;padding:2px}.pal-star.on{color:var(--warn)}.pal-star.on svg{fill:var(--warn)}.ctx-menu{position:fixed;z-index:60;min-width:220px;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-lg);padding:6px}.ctx-menu button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;color:var(--text);padding:8px 10px;border-radius:7px;cursor:pointer;font-size:var(--fs-sm);text-align:left}.ctx-menu button:hover{background:var(--hover)}.ctx-sep{height:1px;background:var(--line);margin:6px 0}.ctx-title{font-size:var(--fs-xs);color:var(--text-3);padding:4px 10px}.ctx-empty{font-size:var(--fs-xs);color:var(--text-3);padding:2px 10px 8px}.sel-bar{position:absolute;bottom:18px;left:50%;transform:translate(-50%);z-index:5;display:flex;gap:4px;padding:5px;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-sm)}.sel-bar button{display:inline-flex;align-items:center;gap:5px;border:0;background:none;color:var(--text);padding:6px 10px;border-radius:7px;cursor:pointer;font-size:var(--fs-sm)}.sel-bar button:hover{background:var(--hover)}.sel-bar button.danger{color:var(--danger)}.fnode-ic{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:var(--nc);color:#fff;flex-shrink:0}.fnode-ic.big{width:34px;height:34px;border-radius:9px}.cond-row{display:grid;grid-template-columns:1fr 180px 1fr;gap:8px;align-items:center}.cond-tag{font-weight:800;font-size:12px;color:#26c6da;background:#26c6da22;border-radius:6px;padding:3px 7px}.tag-input{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:38px;padding:4px 8px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface)}.tag-input input{flex:1;min-width:160px;border:0;background:none;color:var(--text);outline:none;height:28px}.tag-pill{display:inline-flex;align-items:center;gap:4px;background:var(--surface-3);border-radius:999px;padding:2px 4px 2px 10px;font-size:var(--fs-sm)}.tag-pill button{border:0;background:none;color:var(--text-3);cursor:pointer;display:grid;place-items:center}details.raw summary{cursor:pointer;color:var(--text-2);font-size:var(--fs-sm);margin:8px 0}.trail{display:flex;flex-wrap:wrap;gap:4px;align-items:center;max-width:520px}.trail-step{font-size:11px;padding:2px 7px;border-radius:6px;background:color-mix(in srgb,var(--nc) 16%,transparent);color:var(--text);border-left:3px solid var(--nc);white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.trail-step.err{outline:1px solid var(--danger)}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1.4s infinite}@keyframes pulse{50%{opacity:.3}}.drawer-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:40;display:flex;justify-content:flex-end}.drawer{width:min(520px,100%);height:100%;background:var(--surface);border-left:1px solid var(--line-strong);padding:20px;overflow-y:auto;box-shadow:var(--shadow-lg)}.steps{list-style:none;margin:0;padding:0;position:relative}.steps li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line)}.steps li.err{background:var(--danger-soft)}.st-ic{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:var(--nc);color:#fff;flex-shrink:0}.chatlist .boxtabs{flex-wrap:wrap;overflow:visible;row-gap:0}.chatlist .boxtabs button{padding:0 8px;height:36px}.imp-list{display:flex;flex-direction:column;gap:8px}.imp{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r);font-size:var(--fs-sm);line-height:1.45}.imp svg{flex-shrink:0;margin-top:1px}.imp small{display:block;color:var(--text-3);margin-top:4px}.imp.ok{background:var(--accent-soft)}.imp.ok svg{color:var(--accent-text)}.imp.warn{background:var(--warn-soft)}.imp.warn svg{color:var(--warn)}.chat-drawer{position:fixed;z-index:30;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);animation:cd-in .16s var(--ease)}.chat-drawer.right{top:0;right:0;bottom:0;width:min(600px,100vw);border-width:0 0 0 1px}.chat-drawer.left{top:0;left:0;bottom:0;width:min(600px,100vw);border-width:0 1px 0 0}.chat-drawer.popup{width:600px;height:660px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);border-radius:12px;overflow:hidden;resize:both;min-width:380px;min-height:360px}@keyframes cd-in{0%{opacity:0;transform:translate(12px)}}.chat-drawer.left{animation-name:cd-in-left}@keyframes cd-in-left{0%{opacity:0;transform:translate(-12px)}}.cd-bar{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--line);flex-shrink:0}.chat-drawer.popup .cd-bar{cursor:move}.cd-modes{display:flex;gap:2px}.cd-modes button,.cd-ic{width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:var(--text-2);display:grid;place-items:center;cursor:pointer}.cd-modes button:hover,.cd-ic:hover{background:var(--hover);color:var(--text)}.cd-modes button.on{background:var(--accent-soft);color:var(--accent-text)}.cd-expand{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 11px;border:1px solid var(--line-strong);border-radius:8px;background:transparent;color:var(--text);font-size:var(--fs-sm);cursor:pointer}.cd-expand:hover{background:var(--hover)}.cd-body{flex:1;min-height:0;display:flex}.cd-body>.chat{flex:1;min-width:0}.chat.embedded .chathead{padding:10px 12px;gap:10px}.chat.embedded .chathead .name{font-size:var(--fs-md)}.chat.embedded .hd-lines{font-size:11.5px}.chat.embedded .tools{gap:0}.chat.embedded .tools .btn.icon{width:30px;height:30px}.hist-card.sel{border-color:var(--accent)}.chat.embedded .chathead .who{min-width:0}.chat.embedded .hd-lines span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}td .linkish{text-align:left}td .linkish b{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-strong);font-weight:500}td .linkish:hover b{text-decoration-color:currentColor}td .linkish{min-width:220px}.label-chip.removable{padding-right:2px;gap:2px}.label-x{border:0;background:none;color:inherit;opacity:.7;cursor:pointer;font-size:14px;line-height:1;padding:0 4px;height:100%;border-radius:3px}.label-x:hover{opacity:1;background:#00000038}.label-add{display:inline-flex;align-items:center;gap:3px;height:20px;padding:0 7px;border-radius:4px;border:1px dashed var(--line-strong);background:none;color:var(--text-2);font-size:11px;font-weight:600;cursor:pointer}.label-add:hover{color:var(--text);border-color:var(--text-3)}.label-list{margin-top:8px;max-height:300px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r);padding:4px}.label-list .tagpick-opt.on{color:var(--accent-text)}.label-create{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 6px}.swatch{width:18px;height:18px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.swatch.on{border-color:var(--text)}.dash-head{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}.dash-head h1{margin:0;font-size:var(--fs-xl);font-weight:650;letter-spacing:-.01em}.dash-head p{margin:2px 0 0;font-size:var(--fs-sm)}.dash-alerts{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin-bottom:12px}.dash-alert{display:flex;align-items:center;gap:12px;padding:12px 16px;border:0;border-radius:var(--r-lg);background:var(--surface);color:var(--text);cursor:pointer;text-align:left}.dash-alert:hover{background:var(--surface-2)}.dash-alert b{display:block;font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.15}.dash-alert span{font-size:var(--fs-xs);color:var(--text-2)}.dash-alert>svg{color:var(--text-3)}.dash-ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none}.dash-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.dash-card{background:var(--surface);border-radius:var(--r-lg);padding:16px 18px;min-width:0}.dash-card.wide{grid-column:span 2}.dash-card header{display:flex;align-items:center;gap:10px;color:var(--text-2);font-size:var(--fs-md)}.dash-v{font-size:26px;font-weight:600;letter-spacing:-.01em;margin:10px 0 6px;font-variant-numeric:tabular-nums}.dash-hint{margin:8px 0 0;font-size:var(--fs-xs);color:var(--text-2)}.dash-bar{display:flex;height:6px;border-radius:6px;overflow:hidden;background:var(--surface-3);margin:6px 0 10px}.dash-bar i{display:block;height:100%}.dash-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--fs-xs);color:var(--text-2);margin-bottom:10px}.dash-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.dash-legend i{width:7px;height:7px;border-radius:50%}.dash-rows>div{display:flex;align-items:center;gap:10px;font-size:var(--fs-xs);color:var(--text-2);padding:3px 0}.dash-rows b{color:var(--text);min-width:28px;text-align:right;font-variant-numeric:tabular-nums}.dash-agents{display:flex;flex-wrap:wrap;gap:14px;margin:4px 0 2px}.dash-agents span{position:relative}.dash-agents em{position:absolute;left:50%;bottom:-7px;transform:translate(-50%);font-style:normal;font-size:10px;font-weight:700;padding:0 5px;border-radius:8px;background:var(--accent);color:var(--accent-ink)}.dash-bars{display:grid;gap:12px;margin-top:14px}.dash-bars .row{font-size:var(--fs-sm);margin-bottom:5px}.dash-bars b{min-width:28px;text-align:right;font-variant-numeric:tabular-nums}.dash-track{height:6px;border-radius:6px;background:var(--surface-3);overflow:hidden}.dash-track i{display:block;height:100%;border-radius:6px}.dash-sec{margin:8px 0 10px;font-size:var(--fs-md);font-weight:600;color:var(--text-2)}.dash.tv{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:var(--bg);overflow-y:auto}@media (max-width: 1100px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.dash-grid{grid-template-columns:1fr}.dash-card.wide{grid-column:auto}}.chathead{align-items:flex-start}.chathead>.avatar{margin-top:2px}.chathead .tools{align-self:center}@media (min-width: 1560px){.chat.with-info{padding-right:360px}}.chathead{flex-wrap:wrap;row-gap:8px}.chathead .who{flex:1 1 340px}.nowrap{white-space:nowrap}.only-mobile,.side-backdrop{display:none}@media (max-width: 860px){.only-mobile{display:inline-grid}.shell{height:100dvh}.main{margin:0;border-radius:0;height:100dvh}.side{display:flex;position:fixed;inset:0 auto 0 0;width:264px;z-index:70;background:var(--shell);border-right:1px solid var(--line);transform:translate(-100%);transition:transform .18s ease}.shell.nav-open .side{transform:none}.shell.nav-open .side-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;background:#0000008c}.collapsed .side-nav h6,.collapsed .nav-label,.collapsed .brand,.collapsed .user-meta{display:revert}.side-head .btn{display:none}.topbar{gap:2px;padding:0 8px;scrollbar-width:none}.topbar::-webkit-scrollbar{display:none}.topbar .stat{white-space:nowrap;flex:none}.desk.has-chat .chatlist{display:none}.desk:not(.has-chat)>.chat,.desk:not(.has-chat)>.empty{display:none}.chatlist{border-right:0}.chathead{padding:8px 10px;gap:8px}.chathead .who{flex:1 1 0}.chathead .tools{width:100%;margin-left:0;justify-content:space-between}.composer .hint{display:none}.composer{padding:8px}.composer-bar{flex-wrap:wrap;row-gap:6px}.composer-bar>.btn.primary{margin-left:auto}.bubble{max-width:88%}}.chat-loading{margin:auto;color:var(--text-3);font-size:var(--fs-sm)}.org-mark{border-radius:7px;object-fit:contain;flex:none;background:var(--surface-3)}.org-mark.txt{display:inline-grid;place-items:center;font-weight:700;color:var(--text-2);letter-spacing:0}.side-org{display:flex;align-items:center;gap:9px;margin:0 10px 8px;padding:7px 8px;border:1px solid var(--line);border-radius:var(--r-md, 8px);font-size:var(--fs-sm);font-weight:600;color:var(--text);min-width:0}.collapsed .side-org{justify-content:center;margin:0 8px 8px;padding:6px 0;border-color:transparent}.alert.ok{background:var(--accent-soft);color:var(--text);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:8px;padding:10px 12px;font-size:var(--fs-sm)}@media (max-width: 860px){.collapsed .side-org{justify-content:flex-start;margin:0 10px 8px;padding:7px 8px;border-color:var(--line)}}.bc-bar{height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden;margin-bottom:4px}.bc-bar i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .4s ease}.bc-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:14px 0}.bc-card{display:grid;gap:2px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.bc-card:disabled{cursor:default}.bc-card:not(:disabled):hover,.bc-card.on{border-color:var(--accent)}.bc-card.on{background:var(--accent-soft)}.bc-card span{font-size:var(--fs-xs);color:var(--text-2)}.bc-card b{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums}.bc-card em{font-style:normal;font-size:var(--fs-xs);color:var(--text-3);min-height:15px}.bc-preview{margin-top:8px;padding:10px 12px;border-radius:10px;background:var(--bubble-out);color:var(--bubble-out-text);white-space:pre-wrap;font-weight:400;line-height:1.45;max-width:420px}@media (max-width: 1100px){.bc-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 560px){.bc-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.sched-list{display:grid;gap:8px;max-height:220px;overflow-y:auto}.sched-item{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border:1px solid var(--line);border-radius:8px}.sched-body{margin-top:4px;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.label-select{position:relative;margin-top:6px}.label-select-box{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:40px;padding:6px 8px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface-2);cursor:text}.label-select-box:focus-within{border-color:var(--accent)}.label-select-box input{flex:1;min-width:140px;border:0;outline:0;background:transparent;color:var(--text);font:inherit;height:26px}.label-select-list{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);max-height:240px;overflow-y:auto;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-lg, 0 12px 30px rgba(0,0,0,.4))}.label-select-list button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.label-select-list button:hover,.label-select-list button:focus{background:var(--hover);outline:0}.label-select-list .swatch{width:12px;height:12px;border-radius:3px;flex:none}.bulkbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;margin-bottom:12px;border-radius:var(--r-md, 10px);background:color-mix(in srgb,var(--accent, #a3e635) 10%,transparent);font-size:var(--fs-sm);font-weight:600}.btn.danger-soft{background:var(--danger-soft);color:var(--danger);border-color:transparent}.btn.danger-soft:hover{background:color-mix(in srgb,var(--danger) 22%,transparent)}.bulkmsg{padding:8px 12px;margin-bottom:12px;border-radius:var(--r-md, 10px);background:var(--surface-2, rgba(127,127,127,.12));font-size:var(--fs-sm);cursor:pointer}.flow-canvas.connecting .react-flow__node:hover .hnode{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}.flow-canvas.connecting .react-flow__node{cursor:crosshair}.hn-ports{border-radius:0 0 14.5px 14.5px}.react-flow__handle.hn-in{top:20px}.flow-canvas{--fc-bg: var(--bg);--fc-card: var(--surface);--fc-border: var(--line-strong);--fc-dot: #777}:root:not([data-theme=light]) .flow-canvas{--fc-bg: #1a1a1a;--fc-card: #262626;--fc-border: transparent;--fc-dot: #91919a}.flow-canvas .react-flow{--xy-background-color: var(--fc-bg);--xy-background-pattern-color: var(--fc-dot)}.flow-canvas .hnode{background:var(--fc-card);border-color:var(--fc-border)}.flow-canvas .hnode.sel{border-color:#4ea1ff}.flow-canvas .hn-head{background:color-mix(in srgb,var(--nc) 20%,var(--fc-card));border-bottom-color:transparent}.flow-canvas.connecting .react-flow__node:hover .hnode{border-color:var(--accent)}.composer{padding:0}.composer .composer-extra,.composer .recbar{margin:8px 12px}.composer-row{display:flex;align-items:flex-end;gap:0;padding:4px 8px;min-height:48px}.composer-row textarea{flex:1;min-width:0;width:auto;border:0;background:transparent;outline:none;resize:none;font-size:14px;line-height:20px;padding:10px 8px;min-height:40px;max-height:180px;color:var(--text)}.composer-row textarea::placeholder{color:var(--text-3)}.cbtn{width:40px;height:40px;flex-shrink:0;border:0;background:transparent;color:var(--text);border-radius:50%;display:grid;place-items:center;cursor:pointer}.cbtn:hover:not(:disabled){background:var(--hover)}.cbtn:disabled{opacity:.35;cursor:default}.cbtn.send:not(:disabled){color:var(--accent-text)}.composer-row>.xs{align-self:center;margin-right:4px}
