.m-app{height:100vh;width:100vw;display:flex;flex-direction:column;background:var(--bg-base);overflow:hidden}.m-chat{display:flex;flex-direction:column;height:100vh;position:relative}.m-chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-glass);background:var(--bg-surface);flex-shrink:0;padding-top:env(safe-area-inset-top,12px)}.m-chat-title{font-size:15px;font-weight:600;color:var(--text-primary);flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 8px}.m-icon-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center}.m-icon-btn:active{opacity:.6}.m-messages{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch}.m-empty{text-align:center;color:var(--text-muted);margin-top:40%;font-size:14px}.m-msg{margin-bottom:12px}.m-msg-user{display:flex;justify-content:flex-end}.m-msg-assistant{display:flex;justify-content:flex-start}.m-msg-bubble{max-width:80%;padding:10px 14px;border-radius:18px;background:var(--highlight);color:#fff;font-size:14px;line-height:1.5}.m-msg-full{width:100%;font-size:14px;line-height:1.6;color:var(--text-primary)}.m-msg-full p{margin-bottom:8px}.m-msg-full p:last-child{margin-bottom:0}.m-msg-full pre{background:var(--code-bg);border-radius:8px;padding:12px;overflow-x:auto;font-size:12px;margin:8px 0}.m-msg-full code{font-size:12px}.m-msg-full ul,.m-msg-full ol{padding-left:20px;margin:6px 0}.m-typing{display:flex;gap:4px;padding:8px 0}.m-typing span{width:7px;height:7px;border-radius:50%;background:var(--text-muted);animation:typing-bounce 1.4s infinite ease-in-out both}.m-typing span:nth-child(2){animation-delay:.2s}.m-typing span:nth-child(3){animation-delay:.4s}.m-input-area{padding:10px 12px;background:var(--bg-surface);flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,10px)}.m-input-container{border:1px solid var(--border-glass-strong);border-radius:16px;background:var(--bg-input, var(--bg-surface));overflow:hidden}.m-input-container:focus-within{border-color:var(--highlight)}.m-input-area textarea{width:100%;resize:none;border:none;padding:12px 14px 8px;font-size:16px;outline:none;max-height:120px;background:transparent;color:var(--text-primary);font-family:inherit;line-height:1.4}.m-input-toolbar{display:flex;align-items:center;padding:6px 10px 10px;gap:8px}.m-tool-btn{display:flex;align-items:center;gap:4px;padding:5px 12px;border-radius:16px;font-size:12px;font-weight:500;border:1px solid var(--border-glass-strong);background:var(--bg-surface-hover);color:var(--text-secondary);cursor:pointer}.m-tool-btn:active{background:var(--highlight-soft);color:var(--text-accent);border-color:var(--highlight)}.m-send-btn-sm{width:30px;height:30px;border-radius:50%;border:none;background:var(--highlight);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px}.m-send-btn-sm:disabled{opacity:.3}.m-send-btn-sm.m-stop-btn{background:#dc2626}.m-input-area textarea::placeholder{color:var(--text-muted)}.m-overlay{position:fixed;inset:0;background:#0006;z-index:500}.m-history{position:fixed;top:0;left:0;bottom:0;width:75%;max-width:300px;background:var(--bg-elevated, var(--bg-surface));z-index:501;display:flex;flex-direction:column;transform:translate(-100%);transition:transform .25s ease}.m-history.open{transform:translate(0)}.m-history-header{padding:16px;border-bottom:1px solid var(--border-glass);padding-top:env(safe-area-inset-top,16px);font-size:16px;color:var(--text-primary)}.m-history-list{flex:1;overflow-y:auto;padding:8px}.m-history-section{font-size:11px;color:var(--text-muted);text-transform:uppercase;padding:12px 8px 4px;letter-spacing:.5px}.m-history-item{padding:10px 12px;border-radius:8px;font-size:13px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-history-item:active,.m-history-item.active{background:var(--highlight-soft);color:var(--text-accent)}.m-history-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:600}.m-canvas{display:flex;flex-direction:column;height:100vh}.m-canvas-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-glass);background:var(--bg-surface);flex-shrink:0;padding-top:env(safe-area-inset-top,12px)}.m-canvas-title{font-size:15px;font-weight:600;color:var(--text-primary);flex:1;text-align:center}.m-canvas-flow{flex:1}.m-canvas-flow .react-flow__node{font-size:11px;padding:6px 10px;border-radius:8px;background:var(--bg-card, var(--bg-surface));border:1px solid var(--border-glass);color:var(--text-primary)}.m-tree{position:fixed;top:0;right:0;bottom:0;width:80%;max-width:320px;background:var(--bg-elevated, var(--bg-surface));z-index:501;display:flex;flex-direction:column;transform:translate(100%);transition:transform .25s ease}.m-tree.open{transform:translate(0)}.m-tree-header{padding:16px;border-bottom:1px solid var(--border-glass);display:flex;align-items:center;justify-content:space-between;padding-top:env(safe-area-inset-top,16px);color:var(--text-primary)}.m-tree-list{flex:1;overflow-y:auto;padding:8px}.m-tree-section{font-size:11px;color:var(--text-muted);text-transform:uppercase;padding:12px 8px 4px;letter-spacing:.5px;font-weight:600}.m-tree-item{padding:10px 12px;border-radius:6px;font-size:13px;color:var(--text-secondary);cursor:pointer}.m-tree-item:active{background:var(--highlight-soft);color:var(--text-accent)}.m-node-card-overlay{position:fixed;inset:0;z-index:600;display:flex;align-items:flex-end;background:#0000004d}.m-node-card{width:100%;max-height:55vh;min-height:200px;background:var(--bg-elevated, var(--bg-surface));border-top-left-radius:16px;border-top-right-radius:16px;border-top:1px solid var(--border-glass);display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom,16px);animation:m-slide-up .25s ease}@keyframes m-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.m-node-card-handle{width:36px;height:4px;border-radius:2px;background:var(--text-muted);margin:10px auto 8px;opacity:.5}.m-node-card-content{padding:0 20px 16px;overflow-y:auto;flex:1}.m-node-card-title{font-size:17px;font-weight:600;color:var(--text-primary);margin-bottom:6px}.m-node-card-badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:4px;background:var(--highlight-soft);color:var(--text-accent);margin-bottom:12px}.m-node-card-desc{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-bottom:12px}.m-node-card-props{margin-bottom:16px}.m-node-card-prop{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid var(--border-glass);font-size:12px}.m-node-card-prop-key{color:var(--text-muted);min-width:80px;font-weight:500}.m-node-card-prop-val{color:var(--text-primary);flex:1}.m-node-card-ask{width:100%;padding:12px;border:none;border-radius:10px;background:var(--highlight);color:#fff;font-size:14px;font-weight:500;cursor:pointer}.m-node-card-ask:active{opacity:.8}.m-msg-full table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:12px;border-collapse:collapse;margin:8px 0;border:1px solid var(--border-glass)}.m-msg-full th,.m-msg-full td{border:1px solid var(--border-glass);padding:6px 8px;white-space:nowrap}.m-msg-full th{background:var(--bg-surface-hover);font-weight:600}.m-msg-full h1,.m-msg-full h2,.m-msg-full h3,.m-msg-full h4{margin-top:14px;margin-bottom:6px;color:var(--text-primary)}.m-msg-full h3{font-size:15px}.m-msg-full h4{font-size:14px}.m-msg-full strong{color:var(--text-primary)}.m-msg-full blockquote{border-left:3px solid var(--highlight);padding-left:12px;margin:8px 0;color:var(--text-secondary)}.m-scroll-btn{position:absolute;bottom:70px;right:16px;z-index:100;width:36px;height:36px;border-radius:50%;background:var(--bg-elevated, var(--bg-surface));border:1px solid var(--border-glass-strong);color:var(--text-secondary);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001f}.m-scroll-btn:active{background:var(--bg-surface-hover)}.m-history-footer{position:relative;padding:10px 12px;border-top:1px solid var(--border-glass);padding-bottom:env(safe-area-inset-bottom,12px)}.m-history-user{display:flex;align-items:center;gap:10px;padding:6px 4px}.m-history-username{flex:1;font-size:13px;color:var(--text-primary)}.m-history-menu-btn{background:none;border:none;color:var(--text-muted);font-size:18px;font-weight:700;letter-spacing:1px;cursor:pointer;padding:4px 8px}.m-user-menu{position:absolute;bottom:56px;left:8px;right:8px;background:var(--bg-elevated, var(--bg-surface));border:1px solid var(--border-glass-strong);border-radius:10px;box-shadow:0 -4px 16px #0003;padding:4px;z-index:10}.m-user-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;background:none;border:none;border-radius:6px;color:var(--text-secondary);font-size:13px;cursor:pointer;text-align:left}.m-user-menu-item:active{background:var(--bg-surface-hover);color:var(--text-primary)}.m-user-menu-logout:active{color:#f87171}.m-user-menu-divider{height:1px;background:var(--border-glass);margin:4px 8px}.m-sheet-overlay{position:fixed;inset:0;z-index:700;background:#0006;display:flex;align-items:flex-end}.m-sheet{width:100%;max-height:60vh;background:var(--bg-elevated, var(--bg-surface));border-top-left-radius:16px;border-top-right-radius:16px;display:flex;flex-direction:column;animation:m-slide-up .25s ease;padding-bottom:env(safe-area-inset-bottom,16px)}.m-sheet-tall{max-height:75vh}.m-sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--text-muted);margin:10px auto 4px;opacity:.4}.m-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 12px}.m-sheet-header h3{font-size:17px;font-weight:600;color:var(--text-primary);margin:0}.m-sheet-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer}.m-sheet-body{padding:0 20px 16px;overflow-y:auto;flex:1}.m-settings-label{font-size:13px;color:var(--text-accent);font-weight:500;margin:16px 0 8px}.m-settings-options{display:flex;gap:10px}.m-settings-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 12px;border-radius:10px;border:1px solid var(--border-glass-strong);background:var(--bg-surface);cursor:pointer;font-size:12px;color:var(--text-secondary)}.m-settings-option.active{border-color:var(--highlight);background:var(--highlight-soft);color:var(--text-accent)}.m-settings-option:active{opacity:.7}.m-plans-grid{display:flex;flex-direction:column;gap:10px}.m-plan-card{border:1px solid var(--border-glass-strong);border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px;background:var(--bg-surface)}.m-plan-highlight{border-color:var(--highlight)}.m-plan-name{font-size:15px;font-weight:600;color:var(--text-primary);min-width:50px}.m-plan-price{display:flex;align-items:baseline;gap:2px}.m-plan-amount{font-size:20px;font-weight:700;color:var(--text-primary)}.m-plan-period{font-size:12px;color:var(--text-muted)}.m-plan-desc{flex:1;font-size:12px;color:var(--text-secondary)}.m-plan-btn{padding:7px 14px;border:none;border-radius:6px;background:var(--highlight);color:#fff;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.m-plan-btn:active{opacity:.8}.m-packs-section{margin-top:16px}.m-pack-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-glass)}.m-pack-name{font-size:13px;font-weight:500;color:var(--text-primary)}.m-pack-info{font-size:12px;color:var(--text-secondary);flex:1}.m-pack-price{font-size:14px;font-weight:600;color:var(--text-accent)}.m-pack-btn{padding:5px 12px;border:1px solid var(--highlight);background:none;color:var(--text-accent);border-radius:6px;font-size:11px;cursor:pointer}.m-pack-btn:active{background:var(--highlight-soft)}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root,[data-theme=light]{--bg-base: #ffffff;--bg-surface: #f9fafb;--bg-surface-hover: #f3f4f6;--border-glass: #e5e7eb;--border-glass-strong: #d1d5db;--highlight: #6366F1;--highlight-soft: #eef2ff;--highlight-border: #c7d2fe;--text-primary: #111827;--text-secondary: #6b7280;--text-muted: #9ca3af;--text-accent: #4f46e5;--blur: blur(12px);--radius: 8px;--radius-lg: 12px;--bg-card: #ffffff;--bg-input: #f9fafb;--bg-elevated: #ffffff;--shadow-modal: 0 8px 32px rgba(0,0,0,.08);--canvas-bg: #fafbfc;--canvas-dot: #e5e7eb;--chat-bg: #ffffff;--code-bg: #f3f4f6;--dropdown-bg: #ffffff}[data-theme=dark]{--bg-base: #09090b;--bg-surface: #0e0e10;--bg-surface-hover: rgba(255,255,255,.03);--border-glass: rgba(255,255,255,.06);--border-glass-strong: rgba(255,255,255,.1);--highlight: #6366F1;--highlight-soft: rgba(99,102,241,.1);--highlight-border: rgba(99,102,241,.2);--text-primary: #fafafa;--text-secondary: #a1a1aa;--text-muted: #52525b;--text-accent: #c4b5fd;--blur: blur(12px);--radius: 8px;--radius-lg: 12px;--bg-card: #18181b;--bg-input: #18181b;--bg-elevated: #111113;--shadow-modal: 0 20px 60px rgba(0,0,0,.7);--canvas-bg: #09090b;--canvas-dot: rgba(255,255,255,.015);--chat-bg: #0c0c0e;--code-bg: #111113;--dropdown-bg: rgba(17,17,19,.97)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;font-family:Poppins,sans-serif}body{background:var(--bg-base);color:var(--text-primary)}body:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:none;z-index:0;pointer-events:none}.app-layout{display:flex;height:100vh;position:relative;z-index:1}.sidebar{width:260px;min-width:260px;display:flex;flex-direction:column;background:var(--bg-surface);border-right:1px solid var(--border-glass);transition:width .2s ease-out,min-width .2s ease-out;overflow:hidden}.sidebar.sidebar-collapsed{width:48px;min-width:48px;align-items:center;padding-top:12px}.sidebar-toggle-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:var(--radius);color:var(--text-secondary)}.sidebar-toggle-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.sidebar-collapse-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;color:var(--text-muted);display:flex;align-items:center}.sidebar-collapse-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.sidebar-header{padding:16px 16px 12px;display:flex;justify-content:space-between;align-items:center}.sidebar-logo{height:28px;width:auto;border-radius:4px}.new-chat-btn{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:10px 14px;background:none;border:1px solid var(--border-glass);border-radius:var(--radius);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s}.new-chat-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--border-glass-strong)}.chat-section-label{padding:8px 12px 4px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.chat-list{flex:1;overflow-y:auto;padding:4px 8px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.chat-list::-webkit-scrollbar{width:4px}.chat-list::-webkit-scrollbar-track{background:transparent}.chat-list::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.chat-item{position:relative;padding:10px 12px;border-radius:var(--radius);cursor:pointer;margin-bottom:2px;display:flex;align-items:center;justify-content:space-between;color:var(--text-secondary);font-size:13px}.chat-item:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.chat-item:hover .chat-item-menu-btn{opacity:1}.chat-item.active{background:var(--highlight-soft);border:1px solid var(--highlight-border);color:var(--text-accent)}.chat-item-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.chat-item-menu-btn{background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:4px;color:var(--text-muted);font-size:16px;font-weight:700;letter-spacing:1px;opacity:0;transition:opacity .15s;flex-shrink:0}.chat-item-menu-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.chat-item.active .chat-item-menu-btn{opacity:.7}.chat-item-dropdown{position:absolute;right:8px;top:36px;background:var(--dropdown-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-glass-strong);border-radius:8px;box-shadow:0 8px 24px #0006;z-index:100;padding:4px;min-width:120px}.chat-item-dropdown button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;border-radius:6px;color:var(--text-secondary);font-size:13px;cursor:pointer;text-align:left}.chat-item-dropdown button:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.chat-item-dropdown-delete:hover{color:#f87171!important}.chat-rename-input{flex:1;background:var(--bg-surface);border:1px solid var(--highlight-border);border-radius:4px;padding:2px 6px;color:var(--text-primary);font-size:13px;outline:none;min-width:0}.sidebar-user-section{position:relative;padding:8px 12px 12px;border-top:1px solid var(--border-glass)}.sidebar-user-info{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius);cursor:default}.sidebar-user-info:hover{background:var(--bg-surface-hover)}.sidebar-user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.sidebar-user-avatar img{width:100%;height:100%;object-fit:cover}.sidebar-user-avatar span{color:#fff;font-size:14px;font-weight:600}.sidebar-user-name{flex:1;font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-menu-btn{background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:4px;color:var(--text-muted);font-size:16px;font-weight:700;letter-spacing:1px}.sidebar-user-menu-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.sidebar-user-dropdown{position:absolute;bottom:60px;left:12px;right:12px;background:var(--dropdown-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-glass-strong);border-radius:10px;box-shadow:0 -4px 24px #0006;z-index:200;padding:4px}.sidebar-user-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;border-radius:6px;color:var(--text-secondary);font-size:13px;cursor:pointer;text-align:left}.sidebar-user-dropdown-item:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.sidebar-user-dropdown-logout:hover{color:#f87171!important}.sidebar-user-dropdown-divider{height:1px;background:var(--border-glass);margin:4px 8px}.content-area{flex:1;display:flex;min-width:0}.chat-pane,.canvas-pane{display:flex;min-width:0}.resizer{width:5px;cursor:col-resize;background:var(--border-glass);flex-shrink:0}.resizer:hover{background:var(--highlight)}.chat-window{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--chat-bg)}.chat-header{padding:12px 24px;background:#ffffff03;border-bottom:1px solid var(--border-glass);display:flex;align-items:center}.model-selector{display:flex;align-items:center;gap:8px}.model-label{font-size:13px;color:var(--text-secondary);font-weight:500}.messages-container{flex:1;overflow-y:auto;padding:24px 0;overflow-anchor:none;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.messages-container::-webkit-scrollbar{width:4px}.messages-container::-webkit-scrollbar-track{background:transparent}.messages-container::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.message{margin-bottom:8px;padding:12px 24px;display:flex;flex-direction:column}.message.user{align-items:flex-end}.message.assistant{align-items:flex-start}.message-bubble{max-width:75%;padding:10px 16px;border-radius:18px;line-height:1.6;background:var(--highlight);color:#fff;font-size:14px}.message-content-full{width:100%;padding:4px 0;line-height:1.7;color:var(--text-primary);font-size:14px}.message-content-full p{margin-bottom:8px}.message-content-full p:last-child{margin-bottom:0}.message-content-full ul,.message-content-full ol{margin:8px 0;padding-left:20px}.message-content-full table{border-collapse:collapse;margin:8px 0;width:100%}.message-content-full th,.message-content-full td{border:1px solid var(--border-glass-strong);padding:6px 10px;text-align:left}.message-content-full th{background:var(--bg-surface-hover)}.message-actions{display:flex;gap:4px;margin-top:4px;opacity:0;transition:opacity .2s}.message:hover .message-actions{opacity:1}.msg-action-btn{background:var(--bg-surface);border:1px solid var(--border-glass);border-radius:6px;padding:4px 8px;cursor:pointer;color:var(--text-secondary);font-size:12px;display:flex;align-items:center;gap:4px}.msg-action-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.code-block-wrapper{position:relative;margin:8px 0;border-radius:var(--radius);overflow:hidden;background:var(--code-bg);border:1px solid var(--border-glass)}.code-block-wrapper pre{margin:0;padding:16px;overflow-x:auto;font-size:13px;line-height:1.5;color:#d4d4d4}.code-copy-btn{position:absolute;top:8px;right:8px;background:#ffffff1a;border:none;border-radius:4px;padding:4px 8px;cursor:pointer;color:#ccc;font-size:12px;opacity:0;transition:opacity .2s}.code-block-wrapper:hover .code-copy-btn{opacity:1}.code-copy-btn:hover{background:#fff3;color:#fff}.inline-code{background:#6366f11a;padding:2px 6px;border-radius:4px;font-size:13px;color:var(--text-accent)}.typing-indicator{display:flex;gap:4px;padding:8px 0}.typing-indicator span{width:8px;height:8px;border-radius:50%;background:var(--text-muted);animation:typing-bounce 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.input-area{padding:12px 24px 16px;border-top:1px solid var(--border-glass);display:flex;align-items:flex-end;gap:8px}.input-wrapper{flex:1;border:1px solid var(--border-glass-strong);border-radius:var(--radius-lg);padding:4px;background:var(--bg-surface);transition:border-color .2s}.input-wrapper:focus-within{border-color:var(--highlight);box-shadow:0 0 0 2px #6366f11a}.input-area textarea{width:100%;resize:none;border:none;padding:8px 12px;font-size:14px;outline:none;line-height:1.5;max-height:200px;font-family:inherit;background:transparent;color:var(--text-primary)}.input-area textarea::placeholder{color:var(--text-muted)}.canvas-panel{flex:1;position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--canvas-bg);background-image:radial-gradient(circle,var(--canvas-dot) 1px,transparent 1px);background-size:24px 24px}.canvas-panel-header{padding:12px 16px;border-bottom:1px solid var(--border-glass);font-weight:500;display:flex;justify-content:space-between;align-items:center;background:var(--bg-surface);color:var(--text-primary)}.token-usage-display{display:flex;gap:10px;font-size:10px;color:var(--text-muted);font-weight:400;font-family:monospace}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:16px}.node-detail-panel{position:absolute;overflow:hidden;background:var(--bg-surface);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border-glass-strong);border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000073,0 0 0 1px #6366f10d;z-index:100;cursor:default;-webkit-user-select:none;user-select:none;color:var(--text-primary);display:flex;flex-direction:column}.node-detail-resize{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 50%,var(--text-muted) 50%,var(--text-muted) 60%,transparent 60%,transparent 70%,var(--text-muted) 70%,var(--text-muted) 80%,transparent 80%);border-radius:0 0 var(--radius-lg) 0}.node-detail-header{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border-glass)}.node-detail-header h3{margin:0;flex:1;font-size:16px}.node-detail-type{padding:2px 8px;border-radius:4px;color:#fff;font-size:11px;font-weight:600;text-transform:uppercase}.node-detail-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-muted);line-height:1}.node-detail-close:hover{color:var(--text-primary)}.node-detail-body{padding:16px 20px}.node-detail-section{margin-bottom:16px}.node-detail-section h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;color:var(--text-muted)}.node-detail-section p{margin:0;font-size:14px;line-height:1.6;color:var(--text-secondary)}.node-detail-relations{list-style:none;padding:0;margin:0}.node-detail-relations li{padding:6px 0;font-size:13px;border-bottom:1px solid var(--border-glass);color:var(--text-secondary)}.node-detail-relations li:last-child{border-bottom:none}.node-detail-relations em{color:var(--highlight);font-style:normal;margin:0 4px}.node-detail-properties{margin:0;padding:0}.node-detail-prop-row{display:flex;padding:4px 0;border-bottom:1px solid var(--border-glass)}.node-detail-prop-row dt{font-weight:600;font-size:13px;min-width:120px;color:var(--text-secondary)}.node-detail-prop-row dd{margin:0;font-size:13px;color:var(--text-primary)}.node-detail-footer{padding:12px 20px;border-top:1px solid var(--border-glass)}.node-detail-ask-btn{width:100%;padding:8px 12px;background:var(--highlight);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer}.node-detail-ask-btn:hover{background:#818cf8}.graph-legend{position:absolute;top:10px;right:10px;background:var(--dropdown-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:8px 12px;font-size:11px;box-shadow:0 8px 32px #0000004d;z-index:10;color:var(--text-secondary)}.graph-legend-item{display:flex;align-items:center;gap:6px;padding:2px 0}.graph-legend-node{display:inline-flex;align-items:center;justify-content:center;width:22px;height:18px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:6px;font-size:10px;box-shadow:0 2px 6px #0003}.graph-legend-node.schema-event{border-left:2px solid rgba(248,113,113,.7)}.graph-legend-node.schema-person{border-left:2px solid rgba(167,139,250,.7)}.graph-legend-node.schema-technology{border-left:2px solid rgba(96,165,250,.7)}.graph-legend-node.schema-organization{border-left:2px solid rgba(52,211,153,.7)}.graph-legend-node.schema-place{border-left:2px solid rgba(74,222,128,.7)}.graph-legend-node.schema-concept{border-left:2px solid rgba(251,191,36,.7)}.graph-legend-node.schema-general{border-left:2px solid rgba(156,163,175,.5)}.graph-zoom-indicator{font-size:11px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:default!important;pointer-events:none}.graph-generating-mask{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#1f293799;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.graph-generating-card{display:flex;align-items:center;gap:12px;background:var(--bg-surface);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:16px 28px;font-size:14px;font-weight:500;color:var(--text-primary);box-shadow:0 4px 24px #0000004d}.graph-generating-pulse{width:18px;height:18px;border-radius:50%;background:var(--highlight);animation:pulse-ring 1.2s ease-in-out infinite}@keyframes pulse-ring{0%{transform:scale(.8);opacity:1;box-shadow:0 0 #6366f180}70%{transform:scale(1);opacity:.7;box-shadow:0 0 0 10px #6366f100}to{transform:scale(.8);opacity:1;box-shadow:0 0 #6366f100}}.graph-layouting-indicator{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:var(--bg-surface);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border-glass);border-radius:var(--radius);padding:8px 16px;font-size:13px;color:var(--text-secondary);box-shadow:0 2px 12px #0003;z-index:100}.canvas-save-toast{position:absolute;top:48px;left:50%;transform:translate(-50%);background:var(--dropdown-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(52,211,153,.3);border-radius:8px;padding:10px 20px;font-size:13px;color:#34d399;box-shadow:0 4px 16px #0000004d;z-index:100;animation:toast-fade 2s ease-in-out}@keyframes toast-fade{0%,80%{opacity:1}to{opacity:0}}.graph-layouting-spinner{width:14px;height:14px;border:2px solid var(--border-glass-strong);border-top-color:var(--highlight);border-radius:50%;animation:spin .8s linear infinite}.canvas-toolbar{display:flex;align-items:center;gap:6px;padding:6px 12px;border-bottom:1px solid var(--border-glass);background:var(--bg-surface);flex-wrap:wrap}.canvas-toolbar-btn{font-size:11px;padding:3px 8px;border:1px solid var(--border-glass-strong);border-radius:4px;background:var(--bg-surface);cursor:pointer;white-space:nowrap;color:var(--text-secondary)}.canvas-toolbar-btn:hover{border-color:var(--highlight);color:var(--text-accent)}.canvas-toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.canvas-toolbar-btn-icon{border:none;background:none;padding:3px 4px;font-size:14px}.canvas-toolbar-btn-icon:hover{border:none;background:none;opacity:.7}.canvas-toolbar-btn-refresh{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:2px;border-radius:4px;border:none;background:none;color:var(--text-secondary);cursor:pointer;transition:all .15s}.canvas-toolbar-btn-refresh:hover{background:#ffffff0f;color:var(--text-accent)}.canvas-toolbar-btn-active{background:var(--highlight);color:#fff;border-color:var(--highlight)}.canvas-toolbar-btn-green{background:#10b981;color:#fff;border-color:#10b981}.canvas-toolbar-btn-green:disabled{background:var(--text-muted);border-color:var(--text-muted)}.canvas-toolbar-btn-danger{color:#f87171;border-color:#f87171}.canvas-toolbar-btn-danger:hover{background:#f87171;color:#fff}.canvas-toolbar-btn-active{background:#6366f133;color:var(--text-accent);border-color:var(--highlight)}.canvas-toolbar-btn-dirty{border-color:var(--highlight);color:var(--text-accent)}.dirty-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#f59e0b;margin-left:4px;vertical-align:middle}.canvas-toolbar-separator{width:1px;height:18px;background:var(--border-glass);margin:0 2px}.canvas-toolbar-group{display:flex;align-items:center;gap:3px}.canvas-toolbar-select{font-size:11px;padding:3px 6px;border:1px solid var(--border-glass-strong);border-radius:4px;background:var(--bg-surface);color:var(--text-secondary)}.canvas-toolbar-label{font-size:11px;min-width:18px;text-align:center;color:var(--text-secondary)}.canvas-toolbar-meta{color:var(--text-muted);margin-left:auto}.format-panel-wrapper{width:0;overflow:hidden;transition:width .3s ease}.format-panel-wrapper.open{width:auto}.properties-panel{width:220px;min-width:220px;border-left:1px solid var(--border-glass);background:var(--bg-surface);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);overflow-y:auto;font-size:12px;color:var(--text-primary)}.properties-panel-header{padding:10px 12px;font-weight:600;font-size:12px;border-bottom:1px solid var(--border-glass);color:var(--text-accent)}.properties-panel-body{padding:8px 12px}.prop-row{margin-bottom:10px}.ask-about-row{margin-bottom:12px}.ask-about-btn{width:100%;padding:8px 12px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s}.ask-about-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #6366f166}.ask-about-btn:active{transform:translateY(0)}.node-info{background:var(--bg-surface-hover);padding:8px;border-radius:4px}.node-label-value{font-size:13px;font-weight:500;color:var(--text-primary)}.prop-row label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase}.prop-controls{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.prop-controls button{font-size:11px;padding:2px 6px;border:1px solid var(--border-glass-strong);border-radius:3px;background:var(--bg-surface);cursor:pointer;color:var(--text-secondary)}.prop-controls button:hover{border-color:var(--highlight);color:var(--text-accent)}.prop-controls span{font-size:11px;min-width:28px;text-align:center;color:var(--text-secondary)}.prop-controls select{font-size:11px;padding:2px 4px;border:1px solid var(--border-glass-strong);border-radius:3px;background:var(--bg-surface);color:var(--text-secondary)}.prop-controls input[type=range]{height:4px}.prop-reset{color:var(--text-muted)!important;font-size:13px!important;padding:1px 4px!important}.prop-color-swatch{width:22px!important;height:22px!important;border-radius:4px!important;padding:0!important;border:2px solid var(--border-glass-strong)!important;cursor:pointer}.prop-color-grid{display:flex;flex-wrap:wrap;gap:3px}.prop-color-option{width:18px!important;height:18px!important;border-radius:3px!important;padding:0!important;border:1px solid var(--border-glass-strong)!important;cursor:pointer}.prop-color-option.active{border:2px solid var(--highlight)!important}.np-panel{overflow-y:hidden;font-size:12px;color:var(--text-primary);display:flex;flex-direction:column;height:100%}.np-panel-body{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.np-panel-body::-webkit-scrollbar{width:4px}.np-panel-body::-webkit-scrollbar-track{background:transparent}.np-panel-body::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.np-panel-body::-webkit-scrollbar-thumb:hover{background:#fff3}.np-header{position:sticky;top:0;z-index:1;flex-shrink:0;padding:16px 18px;background:linear-gradient(135deg,#6366f11f,#8b5cf60f);background-color:var(--bg-surface);border-bottom:1px solid var(--border-glass);cursor:move}.np-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-muted);line-height:1}.np-close:hover{color:var(--text-primary)}.np-schema-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:5px;font-size:10px;font-weight:600;border:1px solid;text-transform:capitalize;letter-spacing:.3px}.np-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:10px 0 0;padding-right:24px}.np-desc{font-size:11.5px;color:var(--text-primary);margin-top:6px;line-height:1.5}.np-section{padding:14px 18px;border-bottom:1px solid var(--border-glass)}.np-section:last-child{border-bottom:none}.np-section-action{padding-bottom:18px}.np-section-title{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.np-prop-item{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;font-size:11.5px}.np-prop-key{color:var(--text-secondary)}.np-prop-val{color:var(--text-primary);font-weight:500;max-width:60%;text-align:right;word-break:break-word;line-height:1.4}.np-relation-item{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:11.5px}.np-relation-label{color:var(--text-secondary)}.np-relation-target{color:var(--text-accent);cursor:pointer;font-weight:500;max-width:60%;text-align:right;word-break:break-word;transition:color .15s}.np-relation-target:hover{color:var(--highlight);text-decoration:underline}.np-relation-arrow{display:inline-block;margin-right:4px;color:var(--highlight);font-weight:600}.np-format-row{display:flex;align-items:center;margin-bottom:10px}.np-format-row:last-child{margin-bottom:0}.np-format-row label{font-size:11px;color:var(--text-secondary);width:72px;flex-shrink:0}.np-format-ctrl{display:flex;align-items:center;gap:6px;flex:1}.np-format-ctrl input[type=range]{flex:1;height:4px;accent-color:var(--highlight)}.np-format-ctrl span{font-size:10px;color:var(--text-muted);min-width:32px;text-align:right}.np-border-seg{display:flex;gap:0;border-radius:5px;overflow:hidden;border:1px solid var(--border-glass-strong)}.np-seg-btn{padding:3px 8px;font-size:10px;border:none;cursor:pointer;background:var(--bg-surface);color:var(--text-secondary);border-right:1px solid var(--border-glass-strong);transition:all .15s}.np-seg-btn:last-child{border-right:none}.np-seg-btn:hover{color:var(--text-accent)}.np-seg-btn.active{background:#6366f133;color:var(--text-accent);font-weight:600}.np-swatch{width:24px;height:24px;border-radius:5px;border:2px solid var(--border-glass-strong);cursor:pointer;padding:0;flex-shrink:0}.np-swatch:hover{border-color:var(--highlight)}.np-color-hex{font-size:10px;color:var(--text-muted);max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.np-reset{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:0 2px;flex-shrink:0}.np-reset:hover{color:var(--text-accent)}.np-color-grid{display:flex;flex-wrap:wrap;gap:5px;padding:6px 0 10px 72px}.np-color-opt{width:22px;height:22px;border-radius:5px;border:1.5px solid var(--border-glass-strong);cursor:pointer;padding:0;transition:transform .1s}.np-color-opt:hover{border-color:var(--highlight);transform:scale(1.15)}.np-color-input{width:22px;height:22px;padding:0;border:none;cursor:pointer;border-radius:5px}.np-action-btn{width:100%;padding:10px 12px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s}.np-action-btn:hover{transform:translateY(-1px);box-shadow:0 3px 12px #6366f166}.react-flow__node-resizable{padding:8px 12px;background:#ffffff0f;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 4px 16px #00000040,inset 0 1px #ffffff14;color:var(--text-primary);transition:box-shadow .2s,border-color .2s,transform .3s ease-out}.react-flow__node-resizable:hover{border-color:#fff3;box-shadow:0 6px 24px #0000004d,inset 0 1px #ffffff1a;transform:translateY(-1px)}.react-flow__node-resizable.selected{border-color:#6366f180;box-shadow:0 0 0 2px #6366f133,0 6px 24px #0000004d}.react-flow__node-resizable.dragging{transition:none}.react-flow__node-resizable.schema-event{border-left:3px solid rgba(248,113,113,.7);box-shadow:0 4px 16px #00000040,0 0 12px #f8717114}.react-flow__node-resizable.schema-person{border-left:3px solid rgba(167,139,250,.7);box-shadow:0 4px 16px #00000040,0 0 12px #a78bfa14}.react-flow__node-resizable.schema-technology{border-left:3px solid rgba(96,165,250,.7);box-shadow:0 4px 16px #00000040,0 0 12px #60a5fa14}.react-flow__node-resizable.schema-organization{border-left:3px solid rgba(52,211,153,.7);box-shadow:0 4px 16px #00000040,0 0 12px #34d39914}.react-flow__node-resizable.schema-place{border-left:3px solid rgba(74,222,128,.7);box-shadow:0 4px 16px #00000040,0 0 12px #4ade8014}.react-flow__node-resizable.schema-concept{border-left:3px solid rgba(251,191,36,.7);box-shadow:0 4px 16px #00000040,0 0 12px #fbbf2414}.react-flow__node-resizable.schema-general{border-left:3px solid rgba(156,163,175,.5)}.react-flow__node-resizable.node-latest-round{outline:2.5px solid var(--highlight);outline-offset:3px;box-shadow:0 0 12px 3px #6366f180,0 0 24px 6px #6366f133;animation:node-glow-pulse 2s ease-in-out infinite}@keyframes node-glow-pulse{0%,to{box-shadow:0 0 12px 3px #6366f180,0 0 24px 6px #6366f133;outline-offset:3px}50%{box-shadow:0 0 18px 5px #818cf899,0 0 32px 10px #818cf840;outline-offset:4px}}.node-content{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.5;word-break:break-word;white-space:normal}.node-content:has(.node-label-inner){display:block;-webkit-line-clamp:unset;overflow:visible}.node-content:has(.node-label-inner) .node-label-inner{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.node-icon{font-size:1.1em;vertical-align:middle;margin-right:2px}.react-flow__node-resizable.has-time-ribbon{padding:0;overflow:hidden}.time-ribbon{padding:3px 12px;background:linear-gradient(90deg,#6366f133,#8b5cf626);border-bottom:1px solid rgba(99,102,241,.2);color:#a5b4fce6;font-size:9.5px;font-weight:600;letter-spacing:.5px}.node-label-inner{padding:8px 12px;line-height:1.5;word-break:break-word}.ant-btn-primary{background:var(--highlight)!important;border-color:var(--highlight)!important}.ant-btn-primary:hover{background:#818cf8!important;border-color:#818cf8!important}.ant-tabs-tab{color:var(--text-secondary)!important}.ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--text-accent)!important}.ant-btn-default{color:var(--text-primary)!important;border-color:var(--border-glass-strong)!important;background:transparent!important}.ant-btn-default:disabled{color:var(--text-muted)!important}.ant-select-selector{background:var(--bg-surface)!important;border-color:var(--border-glass-strong)!important;color:var(--text-primary)!important}.ant-select-arrow{color:var(--text-muted)!important}.ant-select-dropdown{background:#374151!important;border:1px solid var(--border-glass)!important}.ant-select-item{color:var(--text-secondary)!important}.ant-select-item-option-active{background:var(--bg-surface-hover)!important}.ant-select-item-option-selected{background:var(--highlight-soft)!important;color:var(--text-accent)!important}.react-flow__background{background:var(--canvas-bg)!important}.react-flow__controls button{background:var(--dropdown-bg)!important;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-color:#ffffff14!important;color:var(--text-secondary)!important;fill:var(--text-secondary)!important}.react-flow__controls button:hover{background:#ffffff1a!important}.react-flow__minimap{background:var(--dropdown-bg)!important}.react-flow__edge-textwrapper .react-flow__edge-textbg{fill:none!important}.react-flow__edge-textwrapper .react-flow__edge-text{fill:var(--text-secondary)!important}.nf-toolbar{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:4px 8px;background:var(--bg-surface);border:1px solid var(--border-glass-strong);border-radius:10px;box-shadow:0 4px 20px #0006;z-index:150}.nf-btn-wrap{position:relative}.nf-btn{display:flex;align-items:center;gap:3px;padding:6px 10px;border:none;border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:13px;transition:all .15s}.nf-btn:hover{background:#ffffff14;color:var(--text-primary)}.nf-btn.active{background:#6366f133;color:var(--text-accent)}.nf-icon{font-weight:600;font-size:14px}.nf-label{font-size:10px;opacity:.8}.nf-swatch{width:18px;height:18px;border-radius:4px;border:2px solid var(--border-glass-strong)}.nf-popover{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;padding:6px;background:var(--bg-surface);border:1px solid var(--border-glass-strong);border-radius:8px;box-shadow:0 4px 16px #0006;white-space:nowrap;min-width:80px}.nf-pop-item{display:block;width:100%;padding:6px 12px;background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:12px;text-align:left;border-radius:4px}.nf-pop-item:hover{background:#ffffff14;color:var(--text-primary)}.nf-pop-item.active{background:#6366f133;color:var(--text-accent);font-weight:600}.nf-pop-reset{color:var(--text-muted);font-size:11px}.nf-popover-slider{display:flex;align-items:center;gap:8px;padding:8px 12px;min-width:160px}.nf-popover-slider input[type=range]{flex:1;height:4px;accent-color:var(--highlight)}.nf-slider-val{font-size:10px;color:var(--text-muted);min-width:30px}.nf-popover-colors{display:flex;flex-wrap:wrap;gap:5px;padding:8px;min-width:180px}.nf-color-opt{width:22px;height:22px;border-radius:5px;border:1.5px solid var(--border-glass-strong);cursor:pointer;padding:0;transition:transform .1s}.nf-color-opt:hover{border-color:var(--highlight);transform:scale(1.15)}.nf-color-input{width:22px;height:22px;padding:0;border:none;cursor:pointer;border-radius:5px}.nf-pop-reset-inline{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:2px 4px}.nf-pop-reset-inline:hover{color:var(--text-accent)}.knowledge-tree-panel{width:240px;min-width:160px;max-width:400px;background:var(--bg-surface);border-right:1px solid var(--border-glass-strong);display:flex;flex-direction:column;overflow:hidden;position:relative;animation:tree-slide-in .2s ease-out}@keyframes tree-slide-in{0%{width:0;min-width:0;opacity:0}to{width:240px;min-width:200px;opacity:1}}.knowledge-tree-panel.closing{animation:tree-slide-out .2s ease-in forwards}.knowledge-tree-resize{position:absolute;top:0;right:0;width:4px;height:100%;cursor:col-resize}.knowledge-tree-resize:hover{background:var(--highlight);opacity:.5}@keyframes tree-slide-out{0%{width:240px;min-width:200px;opacity:1}to{width:0;min-width:0;opacity:0}}.knowledge-tree-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border-glass-strong);flex-shrink:0}.knowledge-tree-title{font-size:12px;font-weight:600;color:var(--text-primary)}.knowledge-tree-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px}.knowledge-tree-close:hover{background:#ffffff14;color:var(--text-primary)}.knowledge-tree-content{flex:1;overflow-y:auto;padding:4px 0}.knowledge-tree-empty{padding:16px 12px;font-size:12px;color:var(--text-muted);text-align:center}.tree-item{display:flex;align-items:center;gap:6px;padding:5px 12px;cursor:pointer;font-size:12px;color:var(--text-secondary);border-radius:4px;margin:1px 4px;transition:background .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-item:hover{background:#ffffff0f;color:var(--text-primary)}.tree-item-selected{background:#6366f11a;color:var(--text-accent)}.tree-item-icon{flex-shrink:0;font-size:13px}.tree-item-label{overflow:hidden;text-overflow:ellipsis}.tree-item-toggle{flex-shrink:0;font-size:9px;width:14px;text-align:center;cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none}.tree-item-toggle:hover{color:var(--text-primary)}.tree-item-toggle-leaf{visibility:hidden}.react-flow__node.node-highlighted{border:2px dashed #10b981!important;box-shadow:0 0 8px #10b9814d}.settings-overlay{position:fixed;inset:0;z-index:1000;background:#0009;display:flex;align-items:center;justify-content:center}.settings-modal{width:680px;height:440px;background:var(--bg-elevated);border-radius:16px;border:1px solid var(--border-glass-strong);box-shadow:var(--shadow-modal);display:flex;flex-direction:column;overflow:hidden}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 12px}.settings-title{font-size:18px;font-weight:600;color:var(--text-primary)}.settings-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px}.settings-close:hover{color:var(--text-primary);background:#ffffff0f}.settings-body{display:flex;flex:1;overflow:hidden}.settings-nav{width:150px;padding:8px 12px;display:flex;flex-direction:column;gap:2px;border-right:1px solid var(--border-glass)}.settings-nav-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;background:none;border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;text-align:left}.settings-nav-item:hover{background:#ffffff0a;color:var(--text-primary)}.settings-nav-item.active{background:#6366f11a;color:var(--text-accent)}.settings-content{flex:1;padding:20px 28px;overflow-y:auto}.settings-section{display:flex;flex-direction:column}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;min-height:44px}.settings-label{font-size:13px;color:var(--text-secondary)}.settings-value{font-size:13px;color:var(--text-primary);display:flex;align-items:center;gap:8px}.settings-divider{height:1px;background:var(--border-glass)}.settings-select{padding:6px 12px;border-radius:6px;font-size:13px;background:var(--bg-input);border:1px solid var(--border-glass-strong);color:var(--text-primary);cursor:pointer}.settings-select:hover{border-color:var(--highlight)}.settings-link-btn{background:none;border:none;color:var(--text-accent);font-size:13px;cursor:pointer;padding:0}.settings-link-btn:hover{text-decoration:underline}.settings-danger-btn{padding:4px 14px;border-radius:6px;font-size:12px;background:none;border:1px solid #f43f5e;color:#f43f5e;cursor:pointer}.settings-danger-btn:hover{background:#f43f5e1a}.settings-wechat-icon{font-size:12px;color:#10b981}.quota-indicator{font-size:11px;color:var(--text-muted);padding:2px 8px;text-align:right}.sidebar-user-name-group{flex:1;display:flex;align-items:center;gap:6px;min-width:0}.sidebar-user-name-group .sidebar-user-name{flex:unset;min-width:0}.sidebar-user-plan-badge{font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px;background:var(--bg-surface-hover);color:var(--text-muted);flex-shrink:0}.sidebar-user-plan-badge.plan-vip{background:#6366f11f;color:#c4b5fd}.sidebar-user-plan-badge.plan-pro{background:#eab3081f;color:#fbbf24}.plan-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.plan-modal{position:relative;background:var(--bg-elevated);border:1px solid var(--border-glass-strong);border-radius:16px;padding:32px;max-width:860px;width:90vw;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-modal);animation:modalFadeIn .25s ease-out}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.plan-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px}.plan-modal-close:hover{color:var(--text-primary);background:var(--bg-surface-hover)}.plan-modal-header{text-align:center;margin-bottom:28px}.plan-modal-header h2{font-size:22px;margin-bottom:8px;color:var(--text-primary)}.plan-modal-subtitle{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.plan-billing-toggle{display:inline-flex;background:var(--bg-surface);border-radius:8px;border:1px solid var(--border-glass);overflow:hidden}.plan-billing-toggle button{padding:8px 18px;border:none;background:var(--bg-input);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s}.plan-billing-toggle button.active{background:var(--highlight);color:#fff}.plan-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.plan-card{background:var(--bg-surface);border:1px solid var(--border-glass);border-radius:12px;padding:20px;display:flex;flex-direction:column}.plan-card-highlight{border-color:var(--highlight);box-shadow:0 0 0 1px var(--highlight-border)}.plan-card-name{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.plan-card-price{margin-bottom:4px}.plan-price-amount{font-size:28px;font-weight:700;color:var(--text-primary)}.plan-price-period{font-size:13px;color:var(--text-muted)}.plan-card-annual{font-size:11px;color:var(--text-muted);margin-bottom:8px}.plan-card-btn{width:100%;padding:10px;border:none;border-radius:8px;background:var(--highlight);color:#fff;font-size:13px;font-weight:600;cursor:pointer;margin:12px 0;transition:opacity .2s}.plan-card-btn:hover{opacity:.85}.plan-card-features{font-size:12px;color:var(--text-secondary);display:flex;flex-direction:column;gap:6px}.plan-packs-section{border-top:1px solid var(--border-glass);padding-top:20px}.plan-packs-section h3{font-size:15px;color:var(--text-primary);margin-bottom:12px}.plan-packs{display:flex;gap:12px;flex-wrap:wrap}.plan-pack-card{display:flex;align-items:center;gap:12px;background:var(--bg-surface);border:1px solid var(--border-glass);border-radius:8px;padding:12px 16px}.plan-pack-name{font-size:13px;color:var(--text-primary);font-weight:500}.plan-pack-info{font-size:12px;color:var(--text-secondary)}.plan-pack-price{font-size:14px;color:var(--text-accent);font-weight:600}.plan-pack-btn{padding:6px 14px;border:1px solid var(--highlight);background:none;color:var(--highlight);border-radius:6px;font-size:12px;cursor:pointer}.plan-pack-btn:hover{background:var(--highlight-soft)}.payment-qr-section{text-align:center;padding:8px 0 20px}.payment-qr-header{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:24px}.payment-qr-wechat-icon{width:44px;height:44px;border-radius:12px;background:#07c160;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.payment-qr-header h2{font-size:20px;color:var(--text-primary);margin:0}.payment-qr-body{display:flex;flex-direction:column;align-items:center}.payment-qr-product{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:320px;background:var(--bg-surface);border:1px solid var(--border-glass);border-radius:10px;padding:12px 16px;margin-bottom:24px}.payment-qr-product-label{font-size:14px;color:var(--text-secondary)}.payment-qr-product-amount{font-size:22px;font-weight:700;color:var(--text-accent)}.payment-qr-code-wrapper{position:relative;display:inline-block;margin-bottom:16px}.payment-qr-code{display:inline-block;background:#fff;padding:16px;border-radius:12px;box-shadow:0 2px 12px #0000000f}.payment-qr-code img{width:200px;height:200px;display:block}.payment-qr-scan-line{position:absolute;left:16px;right:16px;top:16px;height:200px;overflow:hidden;pointer-events:none;border-radius:4px}.payment-qr-scan-beam{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#07C160,transparent);box-shadow:0 0 8px #07c16066;animation:scanBeam 2.5s ease-in-out infinite}@keyframes scanBeam{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.payment-hint{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.payment-polling-indicator{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:var(--text-muted);margin-bottom:20px}.payment-spinner{width:16px;height:16px;border:2px solid var(--border-glass);border-top-color:var(--highlight);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.payment-cancel-btn{padding:10px 32px;border:1px solid var(--border-glass);background:none;color:var(--text-secondary);border-radius:8px;cursor:pointer;font-size:13px;transition:all .2s}.payment-cancel-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.payment-result-section{text-align:center;padding:40px 0}.payment-result-icon{width:72px;height:72px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-bottom:20px;animation:resultPop .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes resultPop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.payment-result-icon.success{background:#07c1601a;color:#07c160;border:2px solid rgba(7,193,96,.2)}.payment-result-icon.failed{background:#ef44441a;color:#ef4444;border:2px solid rgba(239,68,68,.2)}.payment-result-section h2{font-size:20px;color:var(--text-primary);margin-bottom:8px}.payment-result-section p{font-size:14px;color:var(--text-secondary)}.payment-result-hint{margin-bottom:20px}.payment-retry-btn{padding:10px 28px;border:none;border-radius:8px;background:var(--highlight);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s}.payment-retry-btn:hover{opacity:.85}[data-theme=light] .chat-list::-webkit-scrollbar-thumb,[data-theme=light] .messages-container::-webkit-scrollbar-thumb,[data-theme=light] .np-panel-body::-webkit-scrollbar-thumb{background:#0000001f}[data-theme=light] .chat-header{background:#fafbfc}[data-theme=light] .code-copy-btn{background:#0000000f;color:#6b7280}[data-theme=light] .code-copy-btn:hover{background:#0000001a;color:#374151}[data-theme=light] .code-block-wrapper pre{color:#374151}[data-theme=light] .settings-overlay,[data-theme=light] .plan-modal-overlay{background:#0000004d}[data-theme=light] .inline-code{background:#eef2ff;color:#4f46e5}[data-theme=light] .react-flow__node-resizable{background:#fff;border:1px solid #e5e7eb;box-shadow:0 2px 8px #0000000f}[data-theme=light] .react-flow__node-resizable.schema-event{border-left:3px solid rgba(248,113,113,.9)}[data-theme=light] .react-flow__node-resizable.schema-person{border-left:3px solid rgba(167,139,250,.9)}[data-theme=light] .react-flow__node-resizable.schema-technology{border-left:3px solid rgba(96,165,250,.9)}[data-theme=light] .react-flow__node-resizable.schema-organization{border-left:3px solid rgba(52,211,153,.9)}[data-theme=light] .react-flow__node-resizable.schema-place{border-left:3px solid rgba(74,222,128,.9)}[data-theme=light] .react-flow__node-resizable.schema-concept{border-left:3px solid rgba(251,191,36,.9)}[data-theme=light] .react-flow__node-resizable.schema-general{border-left:3px solid rgba(156,163,175,.7)}[data-theme=light] .react-flow__node-resizable:hover{border-color:#d1d5db;box-shadow:0 4px 12px #0000001a}[data-theme=light] .react-flow__node-resizable.selected{border-color:#6366f180;box-shadow:0 0 0 2px #6366f126,0 4px 12px #0000001a}[data-theme=light] .canvas-panel-header{background:#f9fafb}.feedback-overlay{position:fixed;inset:0;z-index:1000;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.feedback-modal{position:relative;background:var(--bg-elevated);border:1px solid var(--border-glass-strong);border-radius:14px;padding:28px;width:420px;max-width:90vw;box-shadow:var(--shadow-modal)}.feedback-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer}.feedback-close:hover{color:var(--text-primary)}.feedback-title{font-size:17px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.feedback-types{display:flex;gap:8px;margin-bottom:14px}.feedback-type-btn{padding:6px 14px;border-radius:6px;font-size:12px;cursor:pointer;border:1px solid var(--border-glass);background:var(--bg-surface);color:var(--text-secondary)}.feedback-type-btn.active{border-color:var(--highlight);background:var(--highlight-soft);color:var(--text-accent)}.feedback-rating{display:flex;align-items:center;gap:4px;margin-bottom:14px}.feedback-rating-label{font-size:13px;color:var(--text-secondary);margin-right:4px}.feedback-star{background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-muted);transition:color .15s}.feedback-star.active{color:#fbbf24}.feedback-textarea{width:100%;resize:none;border:1px solid var(--border-glass-strong);border-radius:8px;padding:10px 12px;font-size:13px;font-family:inherit;outline:none;background:var(--bg-input);color:var(--text-primary);margin-bottom:14px}.feedback-textarea::placeholder{color:var(--text-muted)}.feedback-textarea:focus{border-color:var(--highlight)}.feedback-submit{width:100%;padding:10px;border:none;border-radius:8px;background:var(--highlight);color:#fff;font-size:13px;font-weight:600;cursor:pointer}.feedback-submit:disabled{opacity:.5;cursor:not-allowed}.feedback-submit:hover:not(:disabled){opacity:.85}.feedback-success{text-align:center;padding:32px 0;font-size:15px;color:#10b981}[data-theme=light] .chat-item{color:#374151}[data-theme=light] .chat-item.active{color:#4f46e5}[data-theme=light] .tree-item{color:#374151}[data-theme=light] .tree-item-selected{color:#4f46e5}[data-theme=light] .chat-section-label{color:#6b7280}
