.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.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 .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation: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:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.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;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.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:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;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:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-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:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@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}.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-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.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:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.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{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.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:#3367d9;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:#3367d9;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%}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../../fonts/inter-v20-latin-variable.woff2) format("woff2");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}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../../fonts/inter-v20-latin-ext-variable.woff2) format("woff2");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;font-style:italic;font-weight:100 900;font-display:swap;src:url(../../fonts/inter-v20-latin-variable-italic.woff2) format("woff2");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}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(../../fonts/inter-v20-latin-ext-variable-italic.woff2) format("woff2");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:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(../../fonts/instrument-serif-v5-latin.woff2) format("woff2");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}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(../../fonts/instrument-serif-v5-latin-ext.woff2) format("woff2");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:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(../../fonts/instrument-serif-v5-latin-italic.woff2) format("woff2");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}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(../../fonts/instrument-serif-v5-latin-ext-italic.woff2) format("woff2");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}:root{--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif: "Instrument Serif", ui-serif, Georgia, "Times New Roman", Times, serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", "Courier New", monospace;--font-ui: var(--font-sans);--font-display: var(--font-serif);--fs-3xs: 10px;--fs-2xs: 11px;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 15px;--fs-xl: 17px;--fs-2xl: 20px;--fs-3xl: 24px;--fs-4xl: 30px;--lh-3xs: 14px;--lh-2xs: 15px;--lh-xs: 16px;--lh-sm: 18px;--lh-md: 20px;--lh-lg: 22px;--lh-xl: 24px;--lh-2xl: 28px;--lh-3xl: 32px;--lh-4xl: 38px;--tracking-caps: .06em;--tracking-loose: .02em;--tracking-wide: .01em;--tracking-normal: 0;--tracking-snug: -.006em;--tracking-tight: -.012em;--tracking-tighter: -.02em;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-extrabold: 800;--display-xs: clamp(24px, 3vw, 30px);--display-sm: clamp(28px, 4vw, 36px);--display-md: clamp(32px, 5vw, 46px);--display-lg: clamp(38px, 6.4vw, 62px);--display-xl: clamp(44px, 8vw, 84px);--lh-display: 1.06;--lh-display-tight: 1}html{font-family:var(--font-sans);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-md);letter-spacing:var(--tracking-snug)}h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight)}.serif{font-family:var(--font-serif);font-weight:var(--fw-regular);letter-spacing:var(--tracking-normal)}.display,.display-sm,.display-md,.display-lg,.display-xl{font-family:var(--font-serif);font-weight:var(--fw-regular);line-height:var(--lh-display);letter-spacing:var(--tracking-snug);text-wrap:balance}.display-sm{font-size:var(--display-sm)}.display,.display-md{font-size:var(--display-md)}.display-lg{font-size:var(--display-lg)}.display-xl{font-size:var(--display-xl);line-height:var(--lh-display-tight)}.table th,.table td,.badge-count,.nav-badge,.conv-time,.pager,.panel-phone,.tabular,time,input[type=number],input[inputmode=numeric],input[inputmode=tel]{font-variant-numeric:tabular-nums}.proportional{font-variant-numeric:proportional-nums}.slashed-zero{font-variant-numeric:slashed-zero}.tabular.slashed-zero,.slashed-zero.tabular{font-variant-numeric:tabular-nums slashed-zero}.caps{font-size:var(--fs-2xs);line-height:var(--lh-2xs);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase}.text-xs{font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:var(--tracking-wide)}.text-sm{font-size:var(--fs-sm);line-height:var(--lh-sm);letter-spacing:var(--tracking-normal)}.text-md{font-size:var(--fs-md);line-height:var(--lh-md);letter-spacing:var(--tracking-snug)}.text-lg{font-size:var(--fs-lg);line-height:var(--lh-lg);letter-spacing:var(--tracking-snug)}.text-xl{font-size:var(--fs-xl);line-height:var(--lh-xl);letter-spacing:var(--tracking-tight)}.text-2xl{font-size:var(--fs-2xl);line-height:var(--lh-2xl);letter-spacing:var(--tracking-tight)}.text-3xl{font-size:var(--fs-3xl);line-height:var(--lh-3xl);letter-spacing:var(--tracking-tighter)}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;letter-spacing:inherit}:root{--bg-0: #f7f8fa;--bg-1: #ffffff;--bg-2: #ffffff;--bg-3: #f1f3f7;--bg-hover: #eef1f6;--border: #e4e8ef;--border-strong: #d3d9e3;--text: #16181d;--text-muted: #5b6473;--text-dim: #8a93a3;--accent: #1faa52;--accent-strong: #17853f;--accent-text: #ffffff;--info: #2f86e0;--warn: #b8770a;--danger: #d64545;--bubble-in: #ffffff;--bubble-out: #dcf8c6;--bubble-note: #fff8e1;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04);--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 8px 24px rgba(16, 24, 40, .06);--shadow-lg: 0 2px 4px rgba(16, 24, 40, .04), 0 24px 48px rgba(16, 24, 40, .1);--radius-sm: 8px;--radius: 10px;--radius-lg: 16px;--radius-xl: 22px;--radius-pill: 999px;--sidebar-w: 232px;--list-w: 340px;color-scheme:light;--accent-dim: color-mix(in srgb, var(--accent) 8%, transparent);--accent-soft: color-mix(in srgb, var(--accent) 13%, transparent);--accent-border: color-mix(in srgb, var(--accent) 34%, transparent);--danger-dim: color-mix(in srgb, var(--danger) 8%, transparent);--danger-soft: color-mix(in srgb, var(--danger) 14%, transparent);--danger-border: color-mix(in srgb, var(--danger) 32%, transparent);--warn-dim: color-mix(in srgb, var(--warn) 9%, transparent);--warn-soft: color-mix(in srgb, var(--warn) 15%, transparent);--warn-border: color-mix(in srgb, var(--warn) 30%, transparent);--info-dim: color-mix(in srgb, var(--info) 9%, transparent);--info-border: color-mix(in srgb, var(--info) 30%, transparent);--accent-ink: color-mix(in srgb, var(--accent) 70%, #000);--warn-ink: color-mix(in srgb, var(--warn) 76%, #000);--danger-ink: color-mix(in srgb, var(--danger) 80%, #000);--info-ink: color-mix(in srgb, var(--info) 78%, #000);--accent-fill: color-mix(in srgb, var(--accent) 78%, #000);--accent-fill-hover: color-mix(in srgb, var(--accent) 66%, #000);--row-border: #eef1f6;--overlay: rgba(16, 24, 40, .42);--focus: var(--accent-ink);--avatar-text: #ffffff;--tick-read: var(--info);--scroll-thumb: #ced5e1;--scroll-thumb-hover: #b6bfce;--code-bg: var(--bg-3);--bubble-out-text: #16181d;--bubble-out-meta: #58705a;--thread-bg: #f4f6f8;--thread-weave: #e7ebf1;--edge: #b6c0d1;--handle: #9aa5b8;--minimap-mask: rgba(16, 24, 40, .12);--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235b6473' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");--motion: .14s ease;--motion-slow: .18s ease}[data-theme=dark]{--bg-0: #0b1220;--bg-1: #111a2b;--bg-2: #162034;--bg-3: #1d2a42;--bg-hover: #22304c;--border: #26344f;--border-strong: #34456650;--text: #e6ecf7;--text-muted: #93a4c0;--text-dim: #64758f;--accent: #25d366;--accent-strong: #1eb855;--accent-text: #0b1220;--info: #38bdf8;--warn: #fbbf24;--danger: #f87171;--bubble-in: #1d2a42;--bubble-out: #0f5132;--bubble-note: #3f321055;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow: 0 2px 6px rgba(0, 0, 0, .3), 0 10px 30px rgba(0, 0, 0, .38);--shadow-lg: 0 4px 10px rgba(0, 0, 0, .34), 0 28px 60px rgba(0, 0, 0, .48);color-scheme:dark;--accent-ink: var(--accent);--warn-ink: var(--warn);--danger-ink: var(--danger);--info-ink: var(--info);--accent-fill: var(--accent);--accent-fill-hover: var(--accent-strong);--accent-dim: color-mix(in srgb, var(--accent) 12%, transparent);--accent-soft: color-mix(in srgb, var(--accent) 18%, transparent);--accent-border: color-mix(in srgb, var(--accent) 40%, transparent);--danger-dim: color-mix(in srgb, var(--danger) 12%, transparent);--danger-soft: color-mix(in srgb, var(--danger) 20%, transparent);--danger-border: color-mix(in srgb, var(--danger) 38%, transparent);--warn-dim: color-mix(in srgb, var(--warn) 12%, transparent);--warn-soft: color-mix(in srgb, var(--warn) 20%, transparent);--warn-border: color-mix(in srgb, var(--warn) 34%, transparent);--info-dim: color-mix(in srgb, var(--info) 12%, transparent);--info-border: color-mix(in srgb, var(--info) 34%, transparent);--row-border: #1c273d;--overlay: rgba(4, 8, 16, .72);--focus: var(--accent);--avatar-text: #ffffff;--tick-read: #53bdeb;--scroll-thumb: #2b3a58;--scroll-thumb-hover: #3a4d73;--code-bg: var(--bg-0);--bubble-out-text: var(--text);--bubble-out-meta: rgba(255, 255, 255, .62);--thread-bg: #0b1220;--thread-weave: #162034;--edge: #3f5378;--handle: #46597e;--minimap-mask: rgba(11, 18, 32, .7);--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2393a4c0' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg-0);color:var(--text);font-family:var(--font-ui, "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}hr{height:1px;border:0;margin:18px 0;background:var(--border)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}::selection{background:var(--accent-soft);color:var(--text)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:var(--radius-pill);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:padding-box}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 15px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-1);color:var(--text);font-weight:600;font-size:13px;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background var(--motion),border-color var(--motion),box-shadow var(--motion),transform var(--motion),opacity var(--motion)}.btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}.btn:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--accent-fill);border-color:transparent;color:var(--accent-text);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--accent-fill-hover);border-color:transparent;box-shadow:var(--shadow);transform:translateY(-1px)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted);box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);border-color:transparent;color:var(--text)}.btn-danger{background:var(--danger-dim);border-color:transparent;color:var(--danger-ink);box-shadow:none}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:transparent;color:var(--danger-ink)}.btn-sm{padding:5px 11px;font-size:12px}.btn-block{width:100%}.input,.select,.textarea{width:100%;padding:9px 12px;background:var(--bg-1);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none;transition:border-color var(--motion),box-shadow var(--motion),background var(--motion)}.input:hover:not(:disabled),.select:hover:not(:disabled),.textarea:hover:not(:disabled){border-color:var(--text-dim)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:none}.input::placeholder,.textarea::placeholder{color:var(--text-dim)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--bg-3);color:var(--text-muted);cursor:not-allowed}.input.is-invalid,.select.is-invalid,.textarea.is-invalid{border-color:var(--danger)}.input.is-invalid:focus{box-shadow:0 0 0 3px var(--danger-dim)}.textarea{resize:vertical;min-height:80px;font-family:inherit}.select{appearance:none;background-image:var(--select-arrow);background-repeat:no-repeat;background-position:right 11px center;padding-right:30px;cursor:pointer}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.label{font-size:12px;font-weight:600;color:var(--text-muted);letter-spacing:.01em}.field-error{font-size:12px;color:var(--danger-ink)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;letter-spacing:.01em;background:var(--bg-3);color:var(--text-muted);white-space:nowrap}.badge-accent{background:var(--accent-soft);color:var(--accent-ink)}.badge-warn{background:var(--warn-soft);color:var(--warn-ink)}.badge-danger{background:var(--danger-soft);color:var(--danger-ink)}.badge-count{min-width:20px;justify-content:center;background:var(--accent-fill);color:var(--accent-text)}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:var(--radius-pill);background:var(--bg-3);color:var(--text-muted);font-size:12px;font-weight:600;white-space:nowrap;transition:background var(--motion),color var(--motion)}.chip-accent{background:var(--accent-soft);color:var(--accent-ink)}.chip-warn{background:var(--warn-soft);color:var(--warn-ink)}.chip-danger{background:var(--danger-soft);color:var(--danger-ink)}.chip-info{background:var(--info-dim);color:var(--info-ink)}.chip-outline{background:transparent;border:1px solid var(--border-strong);color:var(--text-muted)}.squircle{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border-radius:11px;background:var(--bg-3);color:var(--text-muted);font-size:17px;line-height:1}.squircle-sm{width:30px;height:30px;border-radius:9px;font-size:14px}.squircle-lg{width:48px;height:48px;border-radius:14px;font-size:21px}.squircle-accent{background:var(--accent-soft);color:var(--accent-ink)}.squircle-warn{background:var(--warn-soft);color:var(--warn-ink)}.squircle-danger{background:var(--danger-soft);color:var(--danger-ink)}.squircle-info{background:var(--info-dim);color:var(--info-ink)}.squircle-solid{background:var(--accent-fill);color:var(--accent-text)}.avatar{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border-radius:50%;font-size:13px;font-weight:700;color:var(--avatar-text);-webkit-user-select:none;user-select:none}.avatar-sm{width:28px;height:28px;font-size:11px}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-3) 25%,var(--bg-hover) 37%,var(--bg-3) 63%);background-size:300% 100%;animation:skeleton 1.3s ease-in-out infinite}.skeleton-text{height:12px;margin:6px 0}@keyframes skeleton{to{background-position:-300% 0}}.empty{display:grid;place-items:center;gap:8px;padding:56px 24px;text-align:center;color:var(--text-muted)}.empty-icon{font-size:34px;opacity:.7;line-height:1;margin-bottom:2px}.empty-title{font-weight:700;font-size:15px;color:var(--text)}.alert{padding:11px 14px;border-radius:var(--radius);font-size:13px;line-height:1.55;margin-bottom:14px}.alert-danger{background:var(--danger-dim);color:var(--danger-ink);border:1px solid var(--danger-border)}.alert-info{background:var(--info-dim);color:var(--info-ink);border:1px solid var(--info-border)}.alert-warn{background:var(--warn-dim);color:var(--warn-ink);border:1px solid var(--warn-border)}.seg{display:inline-flex;padding:3px;gap:3px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-3)}.seg-btn{padding:6px 14px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background var(--motion),color var(--motion),box-shadow var(--motion)}.seg-btn:hover{color:var(--text)}.seg-btn.is-active{background:var(--bg-1);color:var(--text);box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--border)}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100%;overflow:hidden}.sidebar{display:flex;flex-direction:column;background:var(--bg-1);border-right:1px solid var(--border);overflow:hidden}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:15px 16px;border-bottom:1px solid var(--border)}.sidebar-logo{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:11px;background:var(--accent-fill);color:var(--accent-text);font-weight:800;font-size:14px;box-shadow:var(--shadow-sm)}.sidebar-name{font-weight:700;font-size:14px;line-height:1.2}.sidebar-sub{font-size:11px;color:var(--text-muted);min-height:1em}.sidebar-nav{flex:1;padding:12px 10px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;margin-bottom:2px;border-radius:var(--radius);color:var(--text-muted);font-weight:500;transition:background var(--motion),color var(--motion)}.nav-item:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}.nav-item.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;opacity:.86}.nav-item.active .nav-icon,.nav-item:hover .nav-icon{opacity:1}.nav-badge{margin-left:auto}.sidebar-foot{padding:12px;border-top:1px solid var(--border)}.user-chip{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius);width:100%;text-align:left;transition:background var(--motion)}.user-chip:hover{background:var(--bg-hover)}.user-chip-name{font-size:13px;font-weight:600;line-height:1.2}.user-chip-role{font-size:11px;color:var(--text-muted);text-transform:capitalize}.main{display:flex;flex-direction:column;overflow:hidden;background:var(--bg-0)}.topbar{display:flex;align-items:center;gap:12px;padding:0 20px;height:58px;flex-shrink:0;border-bottom:1px solid var(--border);background:var(--bg-1)}.topbar-title{font-size:15px;font-weight:700}.topbar-spacer{flex:1}.page{flex:1;overflow-y:auto;padding:24px}.page-narrow{max-width:820px;margin:0 auto}.surface{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:22px;margin-bottom:18px}.card-title{font-size:14px;font-weight:700;margin:0 0 4px}.card-sub{font-size:12.5px;color:var(--text-muted);margin:0 0 16px}.section{padding:96px 24px}.section-tint{background:var(--bg-3)}.section-inner{max-width:1140px;margin:0 auto}.stack{display:flex;flex-direction:column;gap:16px}.stack-sm{gap:8px}.stack-lg{gap:28px}.login{display:grid;place-items:center;height:100%;padding:20px;background:radial-gradient(900px 520px at 12% -8%,var(--accent-dim) 0%,transparent 58%),radial-gradient(820px 520px at 92% 108%,var(--info-dim) 0%,transparent 58%),var(--bg-0)}.login-card{width:100%;max-width:396px;padding:34px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.login-logo{display:grid;place-items:center;width:48px;height:48px;margin-bottom:18px;border-radius:14px;background:var(--accent-fill);color:var(--accent-text);font-weight:800;font-size:19px;box-shadow:var(--shadow-sm)}.login-title{font-family:var(--font-display, "Instrument Serif", Georgia, serif);font-size:30px;font-weight:400;line-height:1.15;letter-spacing:-.01em;margin:0 0 6px}.login-sub{color:var(--text-muted);font-size:13px;margin:0 0 24px}.login-hint{margin-top:18px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted);line-height:1.7}.login-hint code{color:var(--text);background:var(--code-bg);border:1px solid var(--border);padding:1px 6px;border-radius:6px}.inbox{display:grid;grid-template-columns:var(--list-w) 1fr;height:100%;overflow:hidden}.inbox.with-panel{grid-template-columns:var(--list-w) 1fr 292px}.conv-list{display:flex;flex-direction:column;background:var(--bg-1);border-right:1px solid var(--border);overflow:hidden}.conv-search{padding:12px;border-bottom:1px solid var(--border)}.conv-filters{display:flex;gap:6px;padding:0 12px 12px;border-bottom:1px solid var(--border)}.filter-pill{flex:1;padding:5px 8px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;color:var(--text-muted);background:var(--bg-3);text-align:center;transition:background var(--motion),color var(--motion)}.filter-pill:hover{background:var(--bg-hover);color:var(--text)}.filter-pill.active{background:var(--accent-soft);color:var(--accent-ink)}.conv-scroll{flex:1;overflow-y:auto}.conv-item{display:flex;gap:11px;width:100%;padding:12px 14px;border-bottom:1px solid var(--row-border);text-align:left;transition:background var(--motion)}.conv-item:hover{background:var(--bg-hover)}.conv-item.active{background:var(--accent-soft)}.conv-item.active .conv-name{color:var(--accent-ink)}.conv-body{flex:1;min-width:0}.conv-row{display:flex;align-items:baseline;gap:8px}.conv-name{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-time{margin-left:auto;font-size:11px;color:var(--text-dim);white-space:nowrap}.conv-preview{font-size:12.5px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.conv-meta{display:flex;align-items:center;gap:5px;margin-top:5px;flex-wrap:wrap}.tag-dot{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;color:var(--text-muted)}.tag-dot:before{content:"";flex-shrink:0;width:7px;height:7px;border-radius:50%;background:var(--dot, var(--accent))}.thread{display:flex;flex-direction:column;overflow:hidden;background:repeating-linear-gradient(45deg,var(--thread-weave) 0 1px,transparent 1px 10px),var(--thread-bg)}.thread-head{display:flex;align-items:center;gap:11px;padding:10px 18px;height:60px;flex-shrink:0;background:var(--bg-1);border-bottom:1px solid var(--border)}.thread-head-name{font-weight:700;font-size:14px}.thread-head-sub{font-size:12px;color:var(--text-muted)}.thread-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.thread-scroll{flex:1;overflow-y:auto;padding:20px 22px;display:flex;flex-direction:column;gap:3px}.day-sep{align-self:center;margin:14px 0 10px;padding:3px 12px;border-radius:var(--radius-pill);background:var(--bg-1);border:1px solid var(--border);box-shadow:var(--shadow-sm);font-size:11px;font-weight:600;color:var(--text-muted)}.bubble{max-width:min(600px,74%);padding:8px 12px 6px;border-radius:12px;position:relative;word-wrap:break-word;overflow-wrap:anywhere;white-space:pre-wrap;font-size:13.5px;line-height:1.5;box-shadow:var(--shadow-sm)}.bubble-in{align-self:flex-start;background:var(--bubble-in);color:var(--text);border-bottom-left-radius:3px}.bubble-out{align-self:flex-end;background:var(--bubble-out);color:var(--bubble-out-text);border-bottom-right-radius:3px}.bubble-note{align-self:center;max-width:min(560px,82%);background:var(--bubble-note);color:var(--text);border:1px dashed var(--warn-border);border-radius:var(--radius);box-shadow:none}.bubble+.bubble{margin-top:3px}.bubble-head{font-size:11px;font-weight:700;color:var(--accent-ink);margin-bottom:2px}.bubble-note .bubble-head{color:var(--warn-ink)}.bubble-foot{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:3px;font-size:10.5px;color:var(--bubble-out-meta)}.bubble-in .bubble-foot,.bubble-note .bubble-foot{color:var(--text-dim)}.tick{font-size:11px;letter-spacing:-2px}.tick-read{color:var(--tick-read)}.bubble-error{margin-top:4px;padding-top:4px;border-top:1px solid var(--danger-border);font-size:11px;color:var(--danger-ink);white-space:normal}.composer{flex-shrink:0;padding:12px 16px 14px;background:var(--bg-1);border-top:1px solid var(--border)}.composer-tabs{display:flex;gap:4px;margin-bottom:9px}.composer-tab{padding:4px 12px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;color:var(--text-muted);transition:background var(--motion),color var(--motion)}.composer-tab:hover{background:var(--bg-hover);color:var(--text)}.composer-tab.active{background:var(--accent-soft);color:var(--accent-ink)}.composer-tab.note.active{background:var(--warn-soft);color:var(--warn-ink)}.composer-row{display:flex;gap:9px;align-items:flex-end}.composer-input{flex:1;min-height:42px;max-height:168px;padding:11px 13px;background:var(--bg-1);color:var(--text);border:1px solid var(--border-strong);border-radius:12px;resize:none;outline:none;font-family:inherit;line-height:1.45;transition:border-color var(--motion),box-shadow var(--motion)}.composer-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.composer-input:focus-visible{outline:none}.composer-input.note{background:var(--bubble-note);border-color:var(--warn-border)}.composer-input.note:focus{border-color:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}.composer-send{width:42px;height:42px;flex-shrink:0;border-radius:50%;background:var(--accent-fill);color:var(--accent-text);display:grid;place-items:center;font-size:16px;box-shadow:var(--shadow-sm);transition:background var(--motion),transform var(--motion),box-shadow var(--motion)}.composer-send:hover:not(:disabled){background:var(--accent-fill-hover);box-shadow:var(--shadow);transform:translateY(-1px)}.composer-send:disabled{background:var(--bg-3);color:var(--text-dim);box-shadow:none;cursor:not-allowed}.composer-hint{margin-top:7px;font-size:11.5px;color:var(--text-muted)}.window-locked{padding:13px 15px;border-radius:var(--radius);background:var(--warn-dim);border:1px solid var(--warn-border)}.window-locked-title{display:flex;align-items:center;gap:7px;font-weight:700;font-size:13px;color:var(--warn-ink);margin-bottom:4px}.window-locked-text{font-size:12.5px;color:var(--text-muted);margin-bottom:11px}.quick-replies{position:absolute;bottom:100%;left:0;right:0;margin-bottom:8px;max-height:230px;overflow-y:auto;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:20}.quick-reply{display:block;width:100%;padding:9px 13px;text-align:left;border-bottom:1px solid var(--row-border);transition:background var(--motion)}.quick-reply:last-child{border-bottom:none}.quick-reply:hover,.quick-reply.active{background:var(--bg-hover)}.quick-reply-key{font-weight:700;font-size:12px;color:var(--accent-ink)}.quick-reply-text{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel{background:var(--bg-1);border-left:1px solid var(--border);overflow-y:auto}.panel-head{padding:22px 18px 18px;text-align:center;border-bottom:1px solid var(--border)}.panel-avatar{width:62px;height:62px;margin:0 auto 11px;font-size:21px}.panel-name{font-weight:700;font-size:15px}.panel-phone{font-size:12.5px;color:var(--text-muted);margin-top:2px}.panel-section{padding:15px 18px;border-bottom:1px solid var(--border)}.panel-label{font-size:11px;font-weight:700;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:9px}.panel-kv{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:12.5px}.panel-kv dt{color:var(--text-muted)}.panel-kv dd{margin:0;text-align:right;overflow-wrap:anywhere}.tag-picker{display:flex;flex-wrap:wrap;gap:6px}.tag-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:600;border:1px solid var(--border-strong);background:var(--bg-1);color:var(--text-muted);transition:background var(--motion),border-color var(--motion),color var(--motion)}.tag-chip:hover{border-color:var(--text-dim);color:var(--text)}.tag-chip.on{color:var(--text)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-1);box-shadow:var(--shadow-sm)}.table{width:100%;border-collapse:collapse;font-size:13px;min-width:660px}.table th{position:sticky;top:0;z-index:1;text-align:left;padding:11px 16px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--bg-3);border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:13px 16px;border-bottom:1px solid var(--row-border);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background var(--motion)}.table tbody tr:hover{background:var(--bg-hover)}.table-cell-main{display:flex;align-items:center;gap:10px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.toolbar-grow{flex:1;min-width:200px}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;font-size:12.5px;color:var(--text-muted)}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in var(--motion-slow)}.modal{width:100%;max-width:480px;max-height:88vh;overflow-y:auto;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:modal-in var(--motion-slow) ease-out}.modal-lg{max-width:640px}.modal-head{display:flex;align-items:center;gap:12px;padding:17px 22px;border-bottom:1px solid var(--border)}.modal-title{font-size:15px;font-weight:700}.modal-close{margin-left:auto;color:var(--text-muted);font-size:18px;line-height:1;padding:4px 9px;border-radius:var(--radius-sm);transition:background var(--motion),color var(--motion)}.modal-close:hover{background:var(--bg-hover);color:var(--text)}.modal-body{padding:22px}.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:15px 22px;border-top:1px solid var(--border);background:var(--bg-0);border-radius:0 0 var(--radius-lg) var(--radius-lg)}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:200;display:flex;flex-direction:column;gap:9px;max-width:380px}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 15px;border-radius:var(--radius);background:var(--bg-1);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-size:13px;animation:toast-in var(--motion-slow) ease-out}.toast-info{border-color:var(--info-border)}.toast-error{border-color:var(--danger-border);background:var(--danger-dim);color:var(--danger-ink)}.toast-success{border-color:var(--accent-border);background:var(--accent-dim);color:var(--accent-ink)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}.row{display:flex;align-items:center;gap:10px}.col{display:flex;flex-direction:column}.grow{flex:1}.muted{color:var(--text-muted)}.small{font-size:12px}.mono{font-family:var(--font-mono, ui-monospace, Consolas, "Courier New", monospace)}.center{display:grid;place-items:center;height:100%}.relative{position:relative}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mt-1{margin-top:5px}.mt-2{margin-top:8px}.mt-3{margin-top:14px}.grid-2{display:grid;gap:0 14px;grid-template-columns:1fr 1fr}@media(max-width:560px){.grid-2{grid-template-columns:1fr}}:root .fnode{box-shadow:var(--shadow-sm)}:root .fnode.is-selected{box-shadow:0 0 0 2px var(--accent-soft),var(--shadow)}:root .fnode-out{border-bottom-color:var(--row-border)}:root .cb-step{border-bottom-color:var(--row-border)}:root .cb-canvas .react-flow__handle.fhandle{border-color:var(--handle)}:root .cb-canvas .react-flow__edge-path{stroke:var(--edge)}:root .cb-canvas .react-flow__minimap-mask{fill:var(--minimap-mask)}:root .qr-live{border-color:var(--accent-border)}:root .fnode-entry{background:var(--accent-fill)}@media(max-width:1180px){.inbox.with-panel{grid-template-columns:var(--list-w) 1fr}.inbox.with-panel .panel{display:none}}@media(max-width:860px){:root{--sidebar-w: 62px;--list-w: 100%}.sidebar-name,.sidebar-sub,.nav-item span:not(.nav-icon):not(.nav-badge),.user-chip .col{display:none}.sidebar-brand,.nav-item,.user-chip{justify-content:center}.inbox,.inbox.with-panel{grid-template-columns:1fr}.inbox .thread,.inbox.viewing .conv-list{display:none}.inbox.viewing .thread{display:flex}.page{padding:16px}.section{padding:64px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.btn-primary:hover:not(:disabled),.composer-send:hover:not(:disabled){transform:none}.spinner{animation:spin 1.4s linear infinite}}.nav-section{font-size:11px;font-weight:700;color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;padding:0 12px;margin:14px 0 6px}.nav-section:first-child{margin-top:2px}@media(max-width:900px){.nav-section{display:none}}
