@import"https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";.layout{width:100%;height:100%;display:flex;flex-direction:column;position:relative}.layout-panels{flex:1;display:flex;overflow:hidden}.layout-panel{height:100%;overflow:hidden;display:flex;flex-direction:column}.layout-main{background:var(--color-bg)}.layout-main-content{position:relative;width:100%;height:100%;overflow:hidden}.layout-canvas{background:var(--color-bg);position:relative}.layout-thread{background:var(--color-bg)}.layout-resize-handle{width:var(--border-width-thick);background:var(--color-border);cursor:col-resize;transition:background var(--transition);position:relative;z-index:var(--z-index-sticky);display:flex;flex-direction:column;justify-content:center;align-items:center}.layout-resize-handle:hover{background:var(--color-primary-light)}.layout-resize-handle:active{background:var(--color-primary)}.layout-toggle-button{position:absolute;width:24px;height:24px;background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer!important;pointer-events:auto;z-index:var(--z-index-dropdown);color:var(--color-text-secondary);font-size:var(--font-size-xs);box-shadow:var(--shadow-sm);transition:all var(--transition)}.layout-toggle-button:hover{background:var(--color-bg-hover);color:var(--color-text);border-color:var(--color-primary)}.layout-toggle-button.thread-collapse{left:-12px}.layout-toggle-button.thread-expand{position:absolute;right:0;top:50%;transform:translateY(-50%);border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.layout-resize-handle.hidden{display:none}.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))}.react-flow-node{border-radius:var(--radius-xs);overflow:visible;transition:all var(--transition);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);box-sizing:border-box;background-color:transparent}.node-content-wrapper{position:relative;width:100%;height:100%;overflow:hidden;border-radius:calc(var(--radius-xs) - 1px);background-color:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center}.react-flow-node.selected{border:none;box-shadow:var(--shadow-node-ring)}.react-flow-node:not(.selected){border:none}.react-flow-node .react-flow__resize-control{opacity:0!important;border:none}.node-state-container{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm)}.loading-spinner{width:var(--icon-size-md);height:var(--icon-size-md);border:var(--border-width-medium) solid var(--color-bg-tertiary);border-top-color:var(--color-primary);border-radius:var(--radius-circle);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--color-text-secondary);font-size:var(--font-size-xs-plus);font-weight:var(--font-weight-medium);letter-spacing:.3px}.error-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs-plus)}.error-icon{width:var(--icon-size-sm);height:var(--icon-size-sm);color:var(--color-error);opacity:.9}.error-text{color:var(--color-error);font-size:var(--font-size-xs-plus);font-weight:var(--font-weight-medium);text-align:center;max-width:120px}.node-image{width:100%;height:100%;object-fit:contain;display:block}.react-flow-handle-custom{opacity:0!important;pointer-events:none!important}.node-like-badge{position:absolute;top:2%;right:2%;width:10%;aspect-ratio:1;display:block;pointer-events:none;opacity:0;transition:opacity var(--transition);min-width:16px;max-width:32px;z-index:var(--z-index-sticky)}.node-like-badge svg{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 4px rgb(0 0 0 / 20%))}.react-flow-node:hover .node-like-badge{opacity:1}.node-menu{position:fixed;z-index:var(--z-index-popover);background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);min-width:180px;padding:var(--space-xs);display:flex;flex-direction:column;gap:var(--space-xxs);animation:nodeMenuFadeIn var(--transition-fast) ease-out}@keyframes nodeMenuFadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.node-menu-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-sm-plus);border:none;background:none;color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;border-radius:var(--radius-inner);text-align:left;transition:background-color var(--transition-fast) ease;outline:none}.node-menu-item:hover,.node-menu-item:focus{background:var(--color-bg-tertiary)}.node-menu-item svg{width:var(--thumbnail-badge-size);height:var(--thumbnail-badge-size);transition:opacity var(--transition-fast) ease}.node-menu-item.toggle-item{justify-content:space-between}.menu-label{display:flex;align-items:center;gap:var(--space-sm)}.node-menu-toggle{position:relative;width:var(--toggle-width);height:var(--toggle-height);border-radius:var(--toggle-track-radius);transition:background-color .3s ease}.node-menu-toggle.off{background-color:var(--toggle-track-off-bg);border:var(--border-width-thin) solid var(--toggle-track-off-border)}.node-menu-toggle.on{background-color:var(--toggle-track-on-bg);border:var(--border-width-thin) solid var(--toggle-track-on-border)}.node-menu-toggle__knob{position:absolute;top:var(--toggle-padding);left:var(--toggle-padding);width:var(--toggle-knob-size);height:var(--toggle-knob-size);border-radius:var(--toggle-knob-radius);transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.node-menu-toggle.off .node-menu-toggle__knob{background-color:var(--toggle-knob-off-bg);transform:translate(0)}.node-menu-toggle.on .node-menu-toggle__knob{background-color:var(--toggle-knob-on-bg);transform:translate(var(--toggle-travel))}.show-tree-edges-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-xs-plus) var(--space-sm-plus);border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text);transition:background-color var(--transition-fast) ease;-webkit-user-select:none;user-select:none}.show-tree-edges-toggle:hover{background:var(--color-bg-tertiary)}.show-tree-edges-toggle:focus-visible{outline:var(--border-width-medium) solid var(--color-primary);outline-offset:calc(var(--focus-ring-offset) * -1)}.show-tree-edges-toggle__track{position:relative;width:var(--toggle-width);height:var(--toggle-height);border-radius:var(--toggle-track-radius);background:var(--toggle-track-off-bg);border:var(--border-width-thin) solid var(--toggle-track-off-border);transition:all .25s cubic-bezier(.4,0,.2,1)}.show-tree-edges-toggle__track.on{background:var(--toggle-track-on-bg);border-color:var(--toggle-track-on-border)}.show-tree-edges-toggle__knob{position:absolute;top:50%;left:var(--toggle-padding);transform:translateY(-50%);width:var(--toggle-knob-size);height:var(--toggle-knob-size);border-radius:var(--toggle-knob-radius);background:var(--toggle-knob-off-bg);transition:transform .25s cubic-bezier(.34,1.56,.64,1),background-color .25s ease}.show-tree-edges-toggle__track.on .show-tree-edges-toggle__knob{background:var(--toggle-knob-on-bg);transform:translate(var(--toggle-travel)) translateY(-50%)}.project-browser-overlay{position:fixed;inset:0;background:var(--project-browser-overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal);padding:var(--space-xl);animation:overlayFadeIn .2s ease-out}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.project-browser{background:var(--color-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:1200px;height:85vh;display:flex;flex-direction:column;font-family:var(--font-family-sans);overflow:hidden;animation:browserSlideIn .2s ease-out}@keyframes browserSlideIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.project-browser-topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-xl);background:var(--color-bg);border-bottom:var(--border-width-thin) solid var(--color-border)}.project-browser-topbar__left{display:flex;align-items:center}.project-browser-topbar__title{margin:0;font-family:var(--font-family-sans);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.project-browser-topbar__right{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm)}.project-browser-view-toggle{position:relative;display:flex;background:var(--color-bg-secondary);border-radius:var(--radius);padding:var(--space-xxs)}.project-browser-view-toggle__slider{position:absolute;top:var(--space-xxs);left:var(--space-xxs);width:calc(50% - var(--space-xxs));height:calc(100% - var(--space-xs));background:var(--color-bg);border-radius:calc(var(--radius) - var(--space-xxs));box-shadow:var(--shadow-sm);transition:transform .2s ease;pointer-events:none}.project-browser-view-toggle--list .project-browser-view-toggle__slider{transform:translate(100%)}.project-browser-view-toggle__btn{position:relative;z-index:var(--z-index-1);background:none;border:none;padding:var(--space-xs) var(--space-md);border-radius:calc(var(--radius) - var(--space-xxs));cursor:pointer;color:var(--color-text-secondary);transition:color .2s ease;display:flex;align-items:center;justify-content:center}.project-browser-view-toggle__btn:hover,.project-browser-view-toggle__btn--active{color:var(--color-text)}.project-browser-close-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-sm);border-radius:var(--radius-inner);transition:var(--transition)}.project-browser-close-btn:hover{background:var(--color-bg);color:var(--color-text)}.project-browser-content{flex:1;overflow-y:auto;padding:var(--space-xl);position:relative}.project-browser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:var(--space-md)}.project-browser-card{background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:var(--transition);display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}.project-browser-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.project-browser-card--active{border-color:var(--color-primary)}.project-browser-card--new{border-style:dashed;border-color:var(--color-border);background:transparent;aspect-ratio:16 / 12.5}.project-browser-card--new:hover{border-color:var(--color-primary);background:var(--color-bg)}.project-browser-card__new-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-lg);height:100%;color:var(--color-text-secondary)}.project-browser-card__new-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.project-browser-card__thumb{width:100%;aspect-ratio:16 / 9;position:relative;overflow:hidden;background:var(--color-bg-secondary)}.project-browser-card__thumb-img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.project-browser-card:hover .project-browser-card__thumb-img{transform:scale(1.03)}.project-browser-card__thumb-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:var(--font-size-xl)}.project-browser-card__info{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xxs)}.project-browser-card__name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:-.01em}.project-browser-card__meta{display:flex;align-items:center;gap:var(--space-sm)}.project-browser-card__date{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.project-browser-card__current{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-primary)}.project-browser-list{display:flex;flex-direction:column;gap:var(--space-sm)}.project-browser-list-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius);transition:var(--transition);cursor:pointer;box-shadow:var(--shadow-sm)}.project-browser-list-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translate(2px)}.project-browser-list-item--active{border-color:var(--color-primary)}.project-browser-list-item__thumb{width:10rem;height:6rem;border-radius:var(--radius-inner);overflow:hidden;flex-shrink:0;background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center}.project-browser-list-item__thumb-img{width:100%;height:100%;object-fit:cover}.project-browser-list-item__thumb-empty{color:var(--color-text-secondary)}.project-browser-list-item__name{flex:1;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-browser-list-item__current{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-primary);flex-shrink:0}.project-browser-list-item__date{color:var(--color-text-secondary);font-size:var(--font-size-sm);flex-shrink:0;min-width:4.5rem;text-align:right}.project-browser-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xl);text-align:center;min-height:20rem}.project-browser-empty__text{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin:0}.project-browser-fab{position:fixed;bottom:var(--space-xl);right:var(--space-xl);width:3.75rem;height:3.75rem;border-radius:var(--radius-circle);background:var(--color-text);color:var(--color-bg);border:none;cursor:pointer;box-shadow:var(--shadow-lg);transition:var(--transition);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);z-index:var(--z-index-dropdown)}.project-browser-fab:hover{transform:scale(1.05);box-shadow:var(--shadow-md)}.project-browser-fab:disabled{opacity:.6;cursor:not-allowed}.project-browser-content::-webkit-scrollbar{width:var(--space-sm)}.project-browser-content::-webkit-scrollbar-track{background:transparent}.project-browser-content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--space-xs)}.project-browser-content::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.project-browser-modal-overlay{position:fixed;inset:0;background:var(--project-browser-overlay-bg);-webkit-backdrop-filter:blur(var(--space-sm));backdrop-filter:blur(var(--space-sm));display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal)}.project-browser-modal{background:var(--color-bg);border-radius:var(--radius);width:min(18rem,90%);box-shadow:var(--shadow-lg);overflow:hidden}.project-browser-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-lg)}.project-browser-modal__title{margin:0;font-family:var(--font-family-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}.project-browser-modal__close{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-sm);border-radius:var(--radius-inner);transition:var(--transition)}.project-browser-modal__close:hover{background:var(--color-bg-secondary);color:var(--color-text)}.project-browser-modal__body{padding:0 var(--space-lg) var(--space-sm)}.project-browser-modal__input{width:100%;padding:var(--space-sm) var(--space-md);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-bg);outline:none;transition:var(--transition)}.project-browser-modal__input::placeholder{color:var(--color-text-secondary)}.project-browser-modal__input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.project-browser-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg)}.project-browser-modal__btn{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;border:none}.project-browser-modal__btn--secondary{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.project-browser-modal__btn--primary{background:var(--color-text-secondary);color:var(--color-bg)}.project-browser-modal__btn--primary:disabled{opacity:.5;cursor:not-allowed}.project-browser-modal__btn--danger{background:var(--color-error);color:var(--color-bg)}.project-browser-delete-confirm__message{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.project-browser-delete-confirm__message strong{color:var(--color-text);font-weight:var(--font-weight-semibold)}.project-browser-card__rename-input,.project-browser-list-item__rename-input{width:100%;padding:var(--space-xs) 0;border:none;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);background:transparent;outline:none}.project-browser-context-menu{position:fixed;background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:10rem;padding:var(--space-xs);z-index:var(--z-index-dropdown)}.project-browser-context-menu__item{display:block;width:100%;padding:var(--space-sm) var(--space-md);background:none;border:none;border-radius:var(--radius-inner);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);text-align:left;cursor:pointer;transition:var(--transition)}.project-browser-context-menu__item:hover{background:var(--color-bg-secondary)}.project-browser-context-menu__item--danger{color:var(--color-danger-text)}.project-browser-context-menu__item--danger:hover{background:var(--color-danger-bg-hover)}.workspace-menu{position:relative;display:flex;align-items:center}.workspace-menu__button{position:relative;display:flex;align-items:center;justify-content:center;gap:var(--space-sm-plus);padding:var(--space-xs-plus) var(--space-sm-plus);background:transparent;border:none;cursor:pointer;height:var(--icon-button-size);box-shadow:none}.workspace-menu__button:disabled{opacity:.5;cursor:not-allowed}.workspace-menu__icon{width:var(--icon-size-md);height:var(--icon-size-md);flex-shrink:0;line-height:1;object-fit:contain}.workspace-menu__info{display:flex;flex-direction:column;min-width:0}.workspace-menu__name{display:block;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-menu__arrow{font-size:var(--font-size-xxs);color:var(--color-text-secondary);flex-shrink:0;opacity:.6}.workspace-menu__tooltip{position:absolute;bottom:calc(100% + var(--space-sm));left:50%;transform:translate(-50%);background:var(--color-bg-dark);color:#fff;padding:var(--space-xs-plus) var(--space-sm-plus);border-radius:var(--radius-sm);font-size:var(--font-size-xs-plus);font-weight:var(--font-weight-medium);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease;z-index:var(--z-index-tooltip);box-shadow:var(--shadow-md)}.workspace-menu__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:var(--tooltip-arrow-size) solid transparent;border-top-color:var(--color-bg-dark)}.workspace-menu__button:hover .workspace-menu__tooltip{opacity:0}.workspace-menu__dropdown{position:absolute;top:calc(100% + var(--space-xs-plus));left:0;background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:260px;max-width:320px;max-height:520px;overflow:hidden;z-index:var(--z-index-dropdown);animation:dropdownFadeIn .2s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.workspace-menu__user-section{padding:var(--space-xxs);background:none;border:none}.workspace-menu__user-actions{display:flex;flex-direction:column;gap:var(--space-xxs)}.workspace-menu__dropdown-item,.workspace-menu__dropdown-action,.workspace-menu__user-action{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:var(--menu-item-padding-y) var(--menu-item-padding-x);background:none;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;text-align:left;transition:background-color .15s ease}.workspace-menu__dropdown-item:hover:not(:disabled),.workspace-menu__dropdown-action:hover,.workspace-menu__user-action:hover{background:var(--color-bg-tertiary)}.workspace-menu__dropdown-list{max-height:280px;overflow-y:auto;padding:var(--space-xs) var(--space-xxs) 0;background:var(--color-bg)}.workspace-menu__dropdown-item-wrapper{position:relative;display:flex;align-items:stretch;margin:0;border-radius:var(--radius-sm);overflow:hidden}.workspace-menu__dropdown-item{flex:1;min-width:0}.workspace-menu__dropdown-item--active{background:linear-gradient(90deg,var(--workspace-active-bg-start) 0%,var(--workspace-active-bg-end) 100%);position:relative}.workspace-menu__dropdown-item--active:before{content:"✓";position:absolute;left:var(--space-sm-plus);font-size:var(--font-size-sm-plus);font-weight:var(--font-weight-bold);color:var(--color-text-secondary);opacity:.8}.workspace-menu__dropdown-item--active .workspace-menu__dropdown-content{padding-left:var(--space-md-plus)}.workspace-menu__dropdown-item:disabled{opacity:.5;cursor:not-allowed}.workspace-menu__dropdown-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-xs);opacity:.8}.workspace-menu__dropdown-content{flex:1;display:flex;flex-direction:column;gap:var(--space-xxs);min-width:0}.workspace-menu__dropdown-name{font-size:var(--font-size-sm-plus);font-weight:var(--font-weight-bold);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.workspace-menu__dropdown-meta{font-size:var(--font-size-xs-plus);color:var(--color-text-secondary);line-height:1.2;opacity:.85}.workspace-menu__actions{display:flex;align-items:center;gap:var(--space-xxs);padding-right:var(--space-xs);opacity:0;transition:opacity .2s ease}.workspace-menu__dropdown-item-wrapper:hover .workspace-menu__actions{opacity:1}.workspace-menu__action-btn{display:flex;align-items:center;justify-content:center;width:var(--icon-size-lg);height:var(--icon-size-lg);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-md);transition:all .15s ease;flex-shrink:0}.workspace-menu__action-btn:hover{background:var(--color-bg-secondary);transform:scale(1.08)}.workspace-menu__action-btn:active{transform:scale(.95)}.workspace-menu__action-btn--danger:hover{background:var(--color-danger-bg-hover)}.workspace-menu__rename-input{flex:1;padding:var(--space-sm) var(--space-sm-plus);background:var(--color-bg);border:var(--border-width-medium) solid var(--color-primary);border-radius:var(--radius-sm);font-size:var(--font-size-sm-plus);font-weight:var(--font-weight-medium);color:var(--color-text);outline:none;margin:var(--space-xs) var(--space-xs-plus)}.workspace-menu__dropdown-actions{border-top:none;background:none;padding:var(--space-xxs);display:flex;flex-direction:column;gap:var(--space-xxs)}.workspace-menu__dropdown-action{font-weight:var(--font-weight-medium)}.workspace-menu__separator{height:var(--border-width-thin);background-color:var(--color-border);margin:var(--space-xs) 0}.workspace-menu__dropdown-list::-webkit-scrollbar{width:var(--space-sm)}.workspace-menu__dropdown-list::-webkit-scrollbar-track{background:transparent;margin:var(--space-xs) 0}.workspace-menu__dropdown-list::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-xs);border:var(--border-width-medium) solid transparent;background-clip:padding-box}.workspace-menu__dropdown-list::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:padding-box}.workspace-menu__button:focus-visible{outline:none}.workspace-menu__dropdown-item:focus-visible,.workspace-menu__context-menu-item:focus-visible,.workspace-menu__dropdown-action:focus-visible,.workspace-menu__user-action:focus-visible{outline:var(--border-width-medium) solid var(--color-primary);outline-offset:calc(var(--focus-ring-offset) * -1)}.preview-modal{position:fixed;inset:0;background:var(--color-overlay-dimmed);display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal)}.preview-content{background:var(--color-bg);padding:var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:80vw;max-height:80vh;width:600px;display:flex;flex-direction:column;gap:var(--space-md)}.preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-md);overflow-y:auto;max-height:50vh;padding-right:var(--space-xs);scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}.preview-grid::-webkit-scrollbar{width:6px}.preview-grid::-webkit-scrollbar-track{background:transparent}.preview-grid::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--radius-sm)}.preview-grid::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}.preview-item{display:flex;flex-direction:column;gap:var(--space-xs)}.preview-image-container{width:auto;max-width:100%;border-radius:var(--radius-md);overflow:hidden;background:transparent;border:none;display:flex;justify-content:center;align-items:center;box-shadow:none}.preview-image-container img{width:auto;height:auto;max-width:100%;max-height:200px;object-fit:contain;display:block;background:transparent;box-shadow:none;border:none}.preview-filename{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}.preview-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-md);border-top:var(--border-width-thin) solid var(--color-border)}.preview-cancel{padding:var(--space-sm) var(--space-md);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text);cursor:pointer;transition:all var(--transition);font-size:var(--font-size-sm)}.preview-cancel:hover{background:var(--color-bg-tertiary)}.preview-upload{padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;cursor:pointer;transition:all var(--transition);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.preview-upload:hover{background:var(--color-primary-hover)}.preview-upload:disabled{background:var(--color-primary-disabled);cursor:not-allowed}.tree{width:100%;height:100%;display:flex;flex-direction:column;position:relative}.tree-floating-controls{position:absolute;top:var(--space-sm);left:var(--space-sm);right:var(--space-sm);display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);z-index:var(--z-index-1);pointer-events:none}.tree-floating-controls>*{pointer-events:auto}.tree-content{flex:1;position:relative;overflow:hidden auto;background:var(--color-bg-tertiary)}.tree-empty-state{color:var(--color-text-secondary);font-size:var(--font-size-sm-plus);text-align:center;margin:auto;display:flex;align-items:center;justify-content:center;height:100%}.react-flow-node:hover{transform:scale(1.05);transition:transform var(--transition)}.react-flow__attribution{display:none!important}.react-flow{--xy-selection-background-color: color-mix(in srgb, var(--color-border) 8%, transparent);--xy-selection-border: 1px dotted color-mix(in srgb, var(--color-border) 50%, transparent)}.react-flow__nodesselection{display:none!important}.tree .drop-message{font-size:var(--font-size-lg)}.tree-controls-override{--tree-control-height: 1.375rem;--tree-control-btn-radius: .6875rem;--tree-control-padding: var(--space-xxs);background:var(--tree-preview-bg)!important;-webkit-backdrop-filter:blur(16px)!important;backdrop-filter:blur(16px)!important;border:1px solid var(--tree-preview-border)!important;border-radius:var(--button-radius)!important;box-shadow:var(--shadow-lg)!important;padding:var(--tree-control-padding)!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:0!important;margin:0 0 var(--space-sm) var(--space-sm)}.tree-controls-override .control-btn{height:var(--tree-control-height)!important;border-radius:var(--tree-control-btn-radius)!important;background:transparent!important;border:none!important;color:var(--color-text-secondary)!important;fill:var(--color-text-secondary)!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:none!important;cursor:pointer!important}.tree-controls-override .icon-btn{width:var(--tree-control-height)!important}.tree-controls-override .text-btn{width:auto!important;padding:0 var(--space-xs)!important;font-size:var(--font-size-xs)!important;font-weight:var(--font-weight-semibold)!important;font-variant-numeric:tabular-nums!important;min-width:calc(var(--tree-control-height) + var(--space-xs))!important}.tree-controls-override .control-btn:hover{background:var(--color-bg-secondary)!important;color:var(--color-text)!important;fill:var(--color-text)!important;transform:scale(1.05)}.tree-controls-override svg{opacity:.8}.tree-controls-override .control-btn:hover svg{opacity:1}.react-flow__resize-control.handle{width:var(--space-sm);height:var(--space-sm);border-radius:var(--radius-xs)}.react-flow-node.selected:hover{transform:none}.canvas-viewport{position:relative;width:100%;height:100%;overflow:hidden;background:transparent;touch-action:none;cursor:grab}.canvas-viewport.panning{cursor:grabbing}.canvas-viewport-surface{position:absolute;inset:0;width:100%;height:100%}.canvas-viewport-transform{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.canvas-viewport-content{display:inline-block;width:max-content;height:max-content;min-width:1px;min-height:1px}.canvas-overlay{position:absolute;inset:0;z-index:var(--z-index-sticky);display:flex;align-items:center;justify-content:center;background:var(--color-bg);opacity:0;transform:scale(1.02);transition:opacity .25s ease-out,transform .3s cubic-bezier(.16,1,.3,1)}.canvas-overlay--entering{opacity:0;transform:scale(1.04)}.canvas-overlay--visible{opacity:1;transform:scale(1)}.canvas-overlay--exiting{opacity:0;transform:scale(1.02);transition:opacity .2s ease-in,transform .2s ease-in}.canvas{width:100%;height:100%;display:flex;flex-direction:column;position:relative}.canvas-header{position:absolute;top:0;left:0;right:0;padding:var(--space-sm);display:flex;justify-content:flex-end;z-index:var(--z-index-sticky);pointer-events:none}.canvas-body{flex:1;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.canvas-close-button{width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--color-text-inverse);cursor:pointer;display:flex;align-items:center;justify-content:center;pointer-events:auto;transition:background .2s}.canvas-message{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--color-text-secondary);font-size:var(--font-size-md)}.canvas-grid{display:flex;justify-content:center;align-items:center;gap:24px}.canvas-grid--multi{display:grid;grid-template-columns:repeat(var(--canvas-grid-cols, 1),auto);place-items:center center}.canvas-node{position:relative;display:inline-flex;border-radius:var(--radius-md);box-shadow:var(--shadow-xl);background:var(--color-bg-secondary);max-width:2000px;max-height:2000px}.canvas-node-image{display:block;max-width:100%;height:auto;border-radius:var(--radius-md);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.canvas-node-controls{position:absolute;top:8px;right:8px;display:flex;gap:8px;opacity:0;transition:opacity .2s ease-in-out}.canvas-node:hover .canvas-node-controls{opacity:1}.canvas-btn{width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:var(--color-overlay-button-bg);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.canvas-btn:hover{background:var(--color-overlay-button-hover-bg)}.canvas-btn.active{background:var(--color-primary);color:#fff}.canvas-btn svg{width:16px;height:16px}.canvas-node-placeholder{width:300px;height:300px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border-radius:var(--radius-md);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.message-image{margin-top:var(--space-sm)}.message-image img{max-width:100%;max-height:300px;border-radius:var(--message-radius);border:var(--border-width-thin) solid var(--color-border);transition:transform var(--transition)}.message-image-placeholder{width:100%;max-width:300px;background:var(--color-bg-secondary);border-radius:var(--message-radius);animation:message-image-pulse 2s infinite;margin-top:var(--space-sm)}@keyframes message-image-pulse{0%,to{opacity:1}50%{opacity:.7}}.message-image img:hover{transform:scale(1.02);box-shadow:var(--shadow-soft)}.message-images-grid{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm)}.message-images-grid .message-image{margin-top:0}.message-images-grid .message-image img{width:60px;height:60px;object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;transition:transform .2s ease;border:none}.message-images-grid .message-image img:hover{transform:scale(1.05);box-shadow:var(--shadow-soft)}.clickable-image{cursor:pointer}.loading-effect{position:relative;width:16px;height:16px;display:flex;align-items:center;justify-content:center}.loading-effect-particle{position:absolute;width:2px;height:2px;background-color:var(--particle-color, var(--color-text-on-primary));border-radius:var(--radius-circle);animation:loading-effect-spread-gather 1.8s ease-in-out infinite;animation-delay:calc(var(--particle-index) * .04s);left:50%;top:50%;transform:translate(-50%,-50%)}@keyframes loading-effect-spread-gather{0%,to{transform:translate(-50%,-50%) translate(var(--x),var(--y)) scale(1);opacity:1}50%{transform:translate(-50%,-50%) translate(var(--spread-x),var(--spread-y)) scale(.7);opacity:.5}}.thread-status-indicator{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;animation:thread-status-fade-in .2s ease}@keyframes thread-status-fade-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.thread-status-indicator-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px}.thread-status-indicator-icon .loading-effect{transform:scale(.8)}.thread-status-indicator-icon .loading-effect-particle{--particle-color: var(--color-text-secondary)}.thread-status-indicator-label{font-size:var(--font-size-sm-plus);color:var(--color-text-secondary)}.thread-messages{flex:1;padding:var(--space-lg);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md)}.thread-placeholder{color:var(--color-text-secondary);font-size:var(--font-size-sm-plus);text-align:center;margin:auto}.thread-message{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);border-radius:var(--message-radius);max-width:70%;animation:thread-message-fade-in .3s ease}@keyframes thread-message-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.thread-message-user{align-self:flex-end;background:var(--color-primary);color:var(--color-text-on-primary)}.thread-message-assistant{align-self:flex-start;background:var(--color-bg-secondary);color:var(--color-text)}.thread-message-loading{align-self:flex-start;background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);opacity:.7}.message-role{font-size:var(--font-size-sm);text-transform:uppercase;opacity:.7;font-weight:var(--font-weight-semibold);letter-spacing:.5px}.message-content{font-size:var(--font-size-sm-plus);line-height:1.5;word-break:break-word;overflow-wrap:break-word}.message-content p{margin:0}.message-content p+p{margin-top:var(--space-sm)}.message-content strong{font-weight:var(--font-weight-semibold)}.message-content ul,.message-content ol{margin:var(--space-xs) 0;padding-left:var(--space-lg)}.message-content li{margin:var(--space-xxs) 0}.message-content code{background:var(--color-bg-tertiary);padding:.125em .375em;border-radius:var(--radius-xs);font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.message-content pre{background:var(--color-bg-tertiary);padding:var(--space-sm);border-radius:var(--radius-sm);overflow-x:auto;margin:var(--space-sm) 0}.message-content pre code{background:none;padding:0}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{margin:var(--space-sm) 0 var(--space-xs) 0;font-weight:var(--font-weight-semibold);line-height:1.3}.message-content h1{font-size:var(--font-size-lg)}.message-content h2{font-size:var(--font-size-base)}.message-content h3,.message-content h4,.message-content h5,.message-content h6{font-size:var(--font-size-sm-plus)}.message-content blockquote{border-left:3px solid var(--color-border);margin:var(--space-sm) 0;padding-left:var(--space-sm);color:var(--color-text-secondary)}.message-content a{color:var(--color-primary);text-decoration:underline}.message-content hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-sm) 0}.streaming-indicator,.streaming-cursor{display:inline;color:var(--color-text);animation:streaming-blink 1s infinite;font-weight:var(--font-weight-normal);margin-left:2px}.thread-message.streaming .message-content>p:last-of-type{display:inline!important;margin-bottom:0!important}.thread-message.streaming .message-content>div:last-of-type,.thread-message.streaming .message-content>ul:last-of-type,.thread-message.streaming .message-content>ol:last-of-type,.thread-message.streaming .message-content>pre:last-of-type,.thread-message.streaming .message-content>blockquote:last-of-type{display:inline-block!important;margin-bottom:0!important}@keyframes streaming-blink{0%,50%{opacity:1}51%,to{opacity:0}}.message-tools{margin-top:var(--space-sm);display:flex;flex-wrap:wrap;gap:var(--space-sm)}.tool-indicator{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--color-bg-secondary);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--message-radius);font-size:var(--font-size-sm);color:var(--color-primary)}.session-history-menu{position:relative;display:flex;align-items:center}.session-history-menu__trigger{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:var(--border-width-thin) solid transparent;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition)}.session-history-menu__trigger:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);transform:scale(1.05)}.session-history-menu__dropdown{position:absolute;top:calc(100% + var(--space-xs));right:0;background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:320px;max-width:400px;max-height:480px;overflow:hidden;z-index:var(--z-index-dropdown);animation:sessionHistoryFadeIn .15s ease-out;display:flex;flex-direction:column}@keyframes sessionHistoryFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.session-history-menu__search{padding:var(--space-xs) var(--space-sm)}.session-history-menu__search-input{width:100%;padding:var(--space-xs) var(--space-sm);background:transparent;border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text);outline:none;transition:border-color var(--transition)}.session-history-menu__search-input::placeholder{color:var(--color-text-secondary)}.session-history-menu__search-input:focus{border-color:var(--color-primary)}.session-history-menu__list{flex:1;overflow-y:auto;padding:var(--space-xs) 0}.session-history-menu__list::-webkit-scrollbar{width:var(--space-sm)}.session-history-menu__list::-webkit-scrollbar-track{background:transparent}.session-history-menu__list::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-xs);border:var(--border-width-medium) solid transparent;background-clip:padding-box}.session-history-menu__list::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:padding-box}.session-history-menu__group{margin-bottom:var(--space-xxs)}.session-history-menu__group-label{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);letter-spacing:.03em}.session-history-menu__item{display:flex;align-items:center;gap:var(--space-sm);width:calc(100% - var(--space-xs));padding:var(--space-xs) var(--space-sm);margin:0 var(--space-xxs);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background var(--transition)}.session-history-menu__item:hover{background:var(--color-bg-tertiary)}.session-history-menu__item.is-active{background:var(--color-bg-secondary)}.session-history-menu__item svg{flex-shrink:0;color:var(--color-text-secondary);width:14px;height:14px}.session-history-menu__item-title{flex:1;font-size:var(--font-size-sm);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-history-menu__item-actions{display:flex;align-items:center;gap:var(--space-xxs);flex-shrink:0;opacity:0;transition:opacity var(--transition)}.session-history-menu__item:hover .session-history-menu__item-actions{opacity:1}.session-history-menu__action-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition)}.session-history-menu__action-btn:hover{background:var(--color-bg-secondary);color:var(--color-text)}.session-history-menu__action-btn--danger:hover{color:var(--color-danger-text)}.session-history-menu__rename-input{flex:1;padding:0;background:transparent;border:none;border-bottom:var(--border-width-thin) solid var(--color-primary);font-size:var(--font-size-sm);color:var(--color-text);outline:none;min-width:0}.session-history-menu__spinner{width:14px;height:14px;flex-shrink:0;border:var(--border-width-medium) solid var(--color-bg-tertiary);border-top-color:var(--color-text-secondary);border-radius:var(--radius-circle);animation:session-spinner .8s linear infinite}@keyframes session-spinner{to{transform:rotate(360deg)}}.session-history-menu__empty{padding:var(--space-md) var(--space-sm);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.slash-command-menu{position:absolute;bottom:100%;left:0;right:0;margin-bottom:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:200px;overflow:hidden;z-index:var(--z-index-dropdown)}.slash-command-list{list-style:none;margin:0;padding:var(--space-xs);overflow-y:auto;max-height:200px}.slash-command-item{display:flex;flex-direction:column;gap:var(--space-xxs);padding:var(--space-sm) var(--space-sm-plus);border-radius:var(--radius-sm);cursor:pointer}.slash-command-item.selected{background:var(--color-bg-secondary)}.slash-command-name{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text)}.slash-command-description{font-size:var(--font-size-sm);color:var(--color-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-input-container .slash-command-menu{position:absolute;bottom:100%;left:0;right:0;margin-bottom:var(--space-xs)}.image-reference-menu{position:absolute;bottom:100%;left:0;margin-bottom:var(--space-sm);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-index-dropdown);display:flex;gap:var(--space-sm);padding:var(--space-sm);overflow-x:auto;max-width:100%}.image-reference-menu::-webkit-scrollbar{height:4px}.image-reference-menu::-webkit-scrollbar-track{background:transparent}.image-reference-menu::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm)}.image-reference-menu-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-sm);border:none;border-radius:var(--radius-md);background:transparent;cursor:pointer;flex-shrink:0;min-width:80px;transition:background-color .15s ease}.image-reference-menu-item:hover,.image-reference-menu-item.selected{background:var(--color-bg-secondary)}.image-reference-menu-item-thumbnail{width:64px;height:64px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-tertiary);display:flex;align-items:center;justify-content:center}.image-reference-menu-item-thumbnail img{width:100%;height:100%;object-fit:cover}.image-reference-menu-item-thumbnail-placeholder,.image-reference-menu-item-thumbnail-fallback{width:100%;height:100%;background:var(--color-bg-tertiary)}.image-reference-menu-item-thumbnail-placeholder{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.image-reference-menu-item-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);white-space:nowrap}.image-reference-menu-item.selected .image-reference-menu-item-label,.image-reference-menu-item:hover .image-reference-menu-item-label{color:var(--color-text)}.unified-input[data-variant=floating] .image-reference-menu{background:var(--floating-input-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-color:var(--floating-input-border)}.unified-input[data-variant=floating] .image-reference-menu-item:hover,.unified-input[data-variant=floating] .image-reference-menu-item.selected{background:var(--color-overlay-tint)}.unified-input[data-variant=floating] .image-reference-menu-item-label{color:var(--floating-input-placeholder)}.unified-input[data-variant=floating] .image-reference-menu-item.selected .image-reference-menu-item-label,.unified-input[data-variant=floating] .image-reference-menu-item:hover .image-reference-menu-item-label{color:var(--floating-input-text)}.unified-input[data-variant=floating] .image-reference-menu-item-thumbnail,.unified-input[data-variant=floating] .image-reference-menu-item-thumbnail-placeholder,.unified-input[data-variant=floating] .image-reference-menu-item-thumbnail-fallback{background:var(--color-overlay-tint)}.command-input-container{position:relative;flex:1;min-width:0}.command-input-placeholder{position:absolute;top:0;left:0;right:0;padding:var(--space-xs) 0;font-size:var(--font-size-base);line-height:1.5;color:var(--color-text-secondary);pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unified-input[data-variant=floating] .command-input-placeholder{font-size:var(--font-size-lg);color:var(--floating-input-placeholder);padding:var(--space-sm) var(--space-sm)}.command-input-paragraph{margin:0}.slash-command-chip{display:inline;padding:var(--space-xs) var(--space-xs);background:var(--color-bg-secondary);color:var(--color-text);border-radius:var(--radius-sm);font-size:inherit;font-weight:var(--font-weight-medium);white-space:nowrap;-webkit-user-select:none;user-select:none;vertical-align:baseline}.unified-input[data-variant=floating] .slash-command-chip{background:var(--color-overlay-tint);color:var(--floating-input-text)}.image-reference-chip{display:inline;padding:var(--space-xs) var(--space-xs);background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:inherit;white-space:nowrap;-webkit-user-select:none;user-select:none;vertical-align:baseline}.image-reference-chip-thumbnail{width:1em;height:1em;border-radius:var(--radius-xs);overflow:hidden;display:inline-block;vertical-align:middle;margin-right:var(--space-xxs);background:var(--color-bg-tertiary)}.image-reference-chip-thumbnail img{width:100%;height:100%;object-fit:cover}.image-reference-chip-thumbnail-placeholder,.image-reference-chip-thumbnail-fallback{width:100%;height:100%;background:var(--color-bg-tertiary)}.image-reference-chip-label{font-weight:var(--font-weight-medium);color:var(--color-text)}.unified-input[data-variant=floating] .image-reference-chip{background:var(--color-overlay-tint)}.unified-input[data-variant=floating] .image-reference-chip-label{color:var(--floating-input-text)}.selected-nodes-container{display:flex;gap:var(--space-sm);padding:var(--space-sm-plus) var(--space-sm-plus) 0 var(--space-sm-plus);flex-wrap:wrap;max-height:160px;overflow:hidden auto}.selected-node-thumbnail{position:relative;width:var(--thumbnail-size);height:var(--thumbnail-size);border-radius:var(--radius-sm);border:var(--border-width-thin) solid var(--color-border);background:var(--color-bg-secondary);flex-shrink:0}.selected-node-thumbnail.loading{animation:pulse 1.5s infinite;background:var(--color-bg-tertiary);overflow:hidden}.selected-node-thumbnail.error{display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:var(--font-size-2xl);overflow:hidden}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.selected-node-thumbnail img{width:100%;height:100%;object-fit:cover;display:block;border-radius:var(--radius-sm)}.thumbnail-number{position:absolute;top:-5px;left:-5px;background:var(--badge-bg);color:var(--badge-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);width:var(--thumbnail-badge-size);height:var(--thumbnail-badge-size);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-circle);box-shadow:var(--shadow-sm);z-index:var(--z-index-1);border:var(--border-width-thin) solid var(--color-border)}.thumbnail-remove{position:absolute;top:-5px;right:-5px;background:var(--badge-remove-bg);color:#fff;width:var(--thumbnail-remove-size);height:var(--thumbnail-remove-size);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);cursor:pointer;opacity:0;transform:scale(.8);transition:all .2s cubic-bezier(.175,.885,.32,1.275);font-size:var(--font-size-xs);z-index:var(--z-index-2);border:none;padding:0;box-shadow:var(--shadow-sm)}.selected-node-thumbnail:hover .thumbnail-remove,.selected-node-thumbnail:focus-within .thumbnail-remove{opacity:1;transform:scale(1)}@media(hover:none){.thumbnail-remove{opacity:1;background:var(--selected-node-remove-touch-bg)}}.thumbnail-remove:hover{background:var(--badge-remove-hover-bg);color:#fff;transform:scale(1.1)}.thumbnail-remove:focus-visible{opacity:1;outline:var(--border-width-medium) solid var(--color-primary);outline-offset:var(--focus-ring-offset)}.plus-menu{position:absolute;bottom:100%;left:0;margin-bottom:var(--space-xs);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;padding:var(--space-xs);z-index:var(--z-popover);animation:plus-menu-fade-in .15s ease-out}@keyframes plus-menu-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.plus-menu-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:var(--font-size-base);cursor:pointer;transition:background-color .1s ease}.plus-menu-item:hover{background:var(--color-bg-hover)}.plus-menu-item:active{background:var(--color-bg-active)}.plus-menu-item svg{flex-shrink:0;color:var(--color-text-secondary)}.plus-menu-item-label{flex:1;text-align:left}.plus-menu-item-shortcut{flex-shrink:0;color:var(--color-secondary);font-size:var(--font-size-sm);opacity:0;transition:opacity .1s ease}.plus-menu-item:hover .plus-menu-item-shortcut{opacity:1}.plus-menu[data-variant=floating]{background:var(--floating-input-bg);border-color:var(--floating-input-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.plus-menu[data-variant=floating] .plus-menu-item{color:var(--floating-input-text)}.plus-menu[data-variant=floating] .plus-menu-item:hover{background:#ffffff1a}.plus-menu[data-variant=floating] .plus-menu-item:active{background:#ffffff26}.plus-menu[data-variant=floating] .plus-menu-item svg{color:var(--floating-input-placeholder)}.plus-menu[data-variant=floating] .plus-menu-item-shortcut{color:var(--floating-input-placeholder)}.unified-input{position:relative;display:flex;flex-direction:column;border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);transition:border-color var(--transition)}.unified-input:focus-within{border-color:var(--color-primary);box-shadow:var(--shadow-soft)}.unified-input-file-hidden{display:none}.unified-input-drop-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-primary-transparent);border-radius:inherit;z-index:var(--z-index-overlay);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-primary);pointer-events:none}.unified-input[data-dragging]{border-color:var(--color-primary);border-style:dashed}.unified-input-row{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm)}.unified-input-textarea{flex:1;min-width:0;padding:var(--space-xs) 0;font-size:var(--font-size-base);font-family:inherit;line-height:1.5;background:transparent;border:none;outline:none;resize:none;max-height:200px;overflow-y:auto;color:var(--color-text)}.unified-input-textarea::placeholder{color:var(--color-text-secondary)}.unified-input-plus-wrapper{position:relative;flex-shrink:0}.plus-button{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);cursor:pointer;transition:all var(--transition)}.plus-button:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text)}.plus-button:disabled{opacity:.5;cursor:not-allowed}.unified-input-send-btn{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);background:var(--color-primary);cursor:pointer;transition:all var(--transition)}.unified-input-send-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:scale(1.02)}.unified-input-send-btn:disabled{opacity:.5;cursor:not-allowed}.unified-input-send-btn[data-loading]{opacity:1;cursor:pointer;background:var(--color-bg-secondary);color:var(--color-text-secondary)}.unified-input-send-btn[data-loading]:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.unified-input-send-logo{width:16px;height:16px;object-fit:contain}.unified-input .selected-node-list{padding:var(--space-sm);border-bottom:var(--border-width-thin) solid var(--color-border-light)}.unified-input[data-variant=floating]{background:var(--floating-input-bg);border-color:var(--floating-input-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-lg)}.unified-input[data-variant=floating]:focus-within{border-color:var(--floating-input-border);box-shadow:var(--shadow-lg)}.unified-input[data-variant=floating] .unified-input-row{padding:var(--space-sm);gap:var(--space-xs)}.unified-input[data-variant=floating] .unified-input-textarea{color:var(--floating-input-text);font-size:var(--font-size-lg);padding:var(--space-sm) var(--space-sm)}.unified-input[data-variant=floating] .unified-input-textarea::placeholder{color:var(--floating-input-placeholder)}.unified-input[data-variant=floating] .plus-button{width:26px;height:26px;font-size:var(--font-size-base);color:var(--floating-input-placeholder)}.unified-input[data-variant=floating] .plus-button:hover:not(:disabled){background:var(--color-overlay-tint);color:var(--floating-input-text)}.unified-input[data-variant=floating] .unified-input-send-btn{width:36px;height:36px;background:var(--color-bg)}.unified-input[data-variant=floating] .unified-input-send-btn:hover:not(:disabled){background:var(--color-bg-secondary)}.unified-input[data-variant=floating] .unified-input-send-btn:disabled{background:var(--color-overlay-tint)}.unified-input[data-variant=floating] .unified-input-send-btn[data-loading]{background:var(--color-overlay-tint);color:var(--floating-input-placeholder)}.unified-input[data-variant=floating] .unified-input-send-btn[data-loading]:hover{background:var(--color-overlay-tint-hover);color:var(--floating-input-text)}.unified-input[data-variant=floating] .selected-node-list{background:var(--color-overlay-tint);border-radius:var(--radius-md);border-bottom:none;margin:var(--space-sm);margin-bottom:0;padding:var(--space-sm)}.unified-input[data-variant=floating] .slash-command-menu{background:var(--floating-input-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-color:var(--floating-input-border)}.unified-input[data-variant=floating] .slash-command-item.selected{background:var(--color-overlay-tint)}.unified-input[data-variant=floating] .slash-command-name{color:var(--floating-input-text)}.unified-input[data-variant=floating] .slash-command-description{color:var(--floating-input-placeholder)}.unified-input[data-variant=floating] .unified-input-drop-overlay{background:var(--color-overlay-tint);color:var(--floating-input-text)}.unified-input[data-variant=floating][data-dragging]{border-color:var(--floating-input-text)}.bug-report-content{gap:var(--space-md);padding:var(--space-lg)}.bug-report-form{display:flex;flex-direction:column;gap:var(--space-sm)}.bug-report-field{display:flex;flex-direction:column;gap:var(--space-xs)}.bug-report-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.bug-report-loading,.bug-report-empty{margin-bottom:var(--space-sm);color:var(--color-text-secondary)}.bug-report-input{width:100%;border-radius:var(--message-radius);border:var(--border-width-thin) solid var(--color-border);padding:var(--space-sm);font-size:var(--font-size-base);font-family:inherit;transition:border-color var(--transition),box-shadow var(--transition)}.bug-report-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 var(--focus-ring-width) var(--color-focus-ring);outline:none}.bug-report-input:disabled{background:var(--color-bg-secondary);cursor:not-allowed}.bug-report-input-custom{margin-top:var(--space-sm)}.bug-report-textarea{width:100%;min-height:140px;border-radius:var(--message-radius);border:var(--border-width-thin) solid var(--color-border);padding:var(--space-sm);font-size:var(--font-size-base);font-family:inherit;resize:vertical;transition:border-color var(--transition),box-shadow var(--transition)}.bug-report-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 var(--focus-ring-width) var(--color-focus-ring);outline:none}.bug-report-textarea:disabled{background:var(--color-bg-secondary);cursor:not-allowed}.bug-report-error{color:var(--color-status-error);font-size:var(--font-size-sm)}.bug-report-radio-group{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.bug-report-radio-option{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-base)}.thread-options-menu{position:relative;display:flex;align-items:center}.thread-options-menu__trigger{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:var(--border-width-thin) solid transparent;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition)}.thread-options-menu__trigger:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);transform:scale(1.05)}.thread-options-menu__dropdown{position:absolute;top:calc(100% + var(--space-xs));right:0;background:var(--color-bg);border:none;border-radius:var(--radius);box-shadow:var(--shadow-md);min-width:180px;padding:var(--space-xs);z-index:var(--z-index-dropdown);animation:threadOptionsMenuFadeIn .15s ease-out}@keyframes threadOptionsMenuFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.thread-options-menu__item{display:flex;align-items:center;gap:var(--space-xs);width:100%;padding:var(--space-xs) var(--space-sm);background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;text-align:left;transition:background var(--transition)}.thread-options-menu__item:hover:not(.is-disabled){background:var(--color-bg-tertiary)}.thread-options-menu__item.is-disabled{opacity:.5;cursor:not-allowed}.thread-options-menu__item-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-secondary)}.thread-options-menu__item-label{flex:1}.thread{width:100%;height:100%;display:flex;flex-direction:column;position:relative;background:var(--color-bg-tertiary)}.thread-header{position:sticky;top:var(--space-sm);left:var(--space-sm);right:var(--space-sm);padding:var(--space-xs-plus) var(--space-sm-plus);background:var(--color-bg-tertiary);display:flex;align-items:center;justify-content:space-between;height:2.5rem;z-index:var(--z-index-sticky);border:none;pointer-events:none}.thread-header h2{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;text-shadow:0 1px 2px var(--shadow-text-soft);line-height:1}.thread-header-actions{display:flex;gap:var(--space-xxs);pointer-events:auto}.new-chat-button{width:24px;height:24px;border:var(--border-width-thin) solid transparent;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.new-chat-button:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary);transform:scale(1.05)}.new-chat-button:disabled{opacity:.5;cursor:not-allowed}.thread-input-area{padding:var(--space-md);background:var(--color-bg-tertiary)}.agent-status-preview{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md)}.agent-status-header{display:flex;align-items:center;gap:var(--space-sm)}.agent-status-indicator{display:flex;align-items:center;justify-content:center;width:20px;height:20px}.agent-status-indicator .loading-effect{transform:scale(.8)}.agent-status-indicator .loading-effect-particle{--particle-color: var(--floating-input-placeholder)}.agent-status-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--floating-input-placeholder)}.agent-status-content{font-size:var(--font-size-sm);line-height:1.4;color:var(--floating-input-text);opacity:.9;word-break:break-word;max-height:5.6em;overflow-y:auto;scrollbar-width:none}.agent-status-content::-webkit-scrollbar{display:none}.agent-status-content p{margin:0}.agent-status-content p+p{margin-top:var(--space-xs)}.agent-status-content strong{font-weight:var(--font-weight-semibold)}.agent-status-content em{font-style:italic}.agent-status-content ul,.agent-status-content ol{margin:var(--space-xxs) 0;padding-left:var(--space-lg)}.agent-status-content li{margin:var(--space-xxs) 0}.agent-status-content code{background:#ffffff1a;padding:.125em .375em;border-radius:var(--radius-xs);font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.floating-thread-input-wrapper{position:fixed;bottom:var(--space-xl);left:50%;transform:translate(-50%) translateY(150%);width:min(640px,90vw);z-index:var(--z-index-floating-input);display:flex;flex-direction:column;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .3s ease;opacity:0;pointer-events:none}.floating-thread-input-wrapper.visible{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.tool-ui-container{width:100%}.tool-ui-content{margin-bottom:var(--space-lg);overflow:auto hidden;max-width:100%}.tool-ui-buttons{display:flex;gap:var(--space-sm);justify-content:flex-end;padding-top:var(--space-md);border-top:var(--border-width-thin) solid var(--color-border)}.tool-ui-button{padding:var(--space-sm) var(--space-lg);border-radius:var(--button-radius);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:var(--transition);font-family:var(--font-family-sans);border:var(--border-width-thin) solid var(--color-border)}.tool-ui-button:disabled{opacity:.5;cursor:not-allowed}.finalize-button{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.finalize-button:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.cancel-button{background:var(--color-bg);color:var(--color-text)}.cancel-button:hover:not(:disabled){background:var(--color-bg-secondary)}.tool-ui-overlay{position:absolute;inset:0;background:var(--color-overlay-tint);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;pointer-events:auto;cursor:not-allowed}.tool-ui-error{padding:var(--space-md);background-color:var(--color-bg-tertiary);color:var(--color-status-error);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius);margin:var(--space-md) 0;font-size:var(--font-size-base);max-height:200px;overflow:auto}.tool-ui-simple-message{color:var(--color-text-secondary)}.tool-ui-error-boundary{color:var(--color-status-error);white-space:pre-wrap}.segmentation-canvas-wrapper{position:relative;width:100%;height:100%;overflow:hidden}.segmentation-canvas{width:100%;height:100%}.segmentation-canvas-placeholder{position:absolute;inset:0;z-index:var(--z-index-1);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:var(--font-size-sm);background:var(--color-bg-secondary);border-radius:var(--radius-lg)}.segmentation-canvas-placeholder.error{color:var(--color-status-error)}.segmentation-panel{width:100%;display:flex;flex-direction:column;height:100%;outline:none;--segmentation-mask-1: #3b82f6;--segmentation-mask-2: #ec4899;--segmentation-mask-3: #22c55e;--segmentation-mask-4: #f97316;--segmentation-mask-5: #a855f7;--segmentation-mask-6: #14b8a6;--segmentation-mask-7: #ef4444;--segmentation-mask-8: #eab308;--segmentation-mask-9: #6366f1;--segmentation-mask-10: #f43f5e}.segmentation-image-container{position:relative;margin-bottom:var(--space-md);border-radius:var(--radius-lg);overflow:hidden;flex:1;min-height:200px}.segmentation-legend-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md);min-height:var(--space-lg)}.segmentation-color-legend{display:flex;gap:var(--space-xs);align-items:center;justify-content:flex-start}.segmentation-color-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-right:var(--space-xs);visibility:hidden}.segmentation-color-label.visible{visibility:visible}.segmentation-color-chip{width:var(--space-lg);height:var(--space-lg);border-radius:var(--radius-circle);border:2px solid transparent;cursor:pointer;transition:var(--transition)}.segmentation-color-chip:hover{transform:scale(1.1)}.segmentation-color-chip:not(.active,.loading){opacity:.35}.segmentation-color-chip.active{border-color:var(--color-text);box-shadow:var(--shadow-sm)}.segmentation-color-chip.loading{cursor:default;animation:fade 1.2s ease-in-out infinite}@keyframes fade{0%,to{opacity:.15}50%{opacity:.85}}.segmentation-prompt-section{margin-bottom:var(--space-md)}.segmentation-prompt-label{display:block;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--space-xs)}.segmentation-prompt-row{display:flex;gap:var(--space-sm)}.segmentation-prompt-input{flex:1;min-width:0;padding:var(--space-sm) var(--space-sm-plus);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius);font-size:var(--font-size-sm);font-family:var(--font-family-sans)}.segmentation-prompt-input:focus{outline:none;border-color:var(--color-primary)}.segmentation-prompt-input::placeholder{color:var(--color-text-secondary);opacity:.6}.segmentation-button{padding:var(--space-sm) var(--space-md);border-radius:var(--button-radius);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:var(--transition);font-family:var(--font-family-sans);border:var(--border-width-thin) solid var(--color-border);white-space:nowrap}.segmentation-button:disabled{opacity:.5;cursor:not-allowed}.segment-button{background:var(--color-primary);color:var(--color-text-on-primary);border-color:var(--color-primary)}.segment-button:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.clear-button{background:var(--color-bg);color:var(--color-text)}.clear-button:hover:not(:disabled){background:var(--color-bg-secondary)}.segmentation-footer{display:flex;gap:var(--space-sm);justify-content:flex-end;padding-top:var(--space-md);border-top:var(--border-width-thin) solid var(--color-border)}.segmentation-status{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm);text-align:center}.segmentation-error{padding:var(--space-xs) 0;color:var(--color-error);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:center}.mask-edit-toolbar{display:flex;align-items:center;gap:var(--space-xs)}.mask-edit-tool-anchor{position:relative}.mask-edit-tool-btn{display:flex;align-items:center;justify-content:center;width:var(--space-lg);height:var(--space-lg);padding:0;border:var(--border-width-thin) solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:var(--transition)}.mask-edit-tool-btn:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text)}.mask-edit-tool-btn.active{background:var(--color-bg-secondary);border-color:var(--color-border);color:var(--color-text)}.mask-edit-tool-btn:disabled{opacity:.3;cursor:not-allowed}.mask-edit-separator{width:var(--border-width-thin);height:var(--space-md);background:var(--color-border);margin:0 var(--space-xxs)}.mask-edit-size-popover{position:absolute;bottom:calc(100% + var(--space-sm));left:50%;transform:translate(-50%) translateY(4px);display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;white-space:nowrap}.mask-edit-size-popover.visible{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}.mask-edit-size-slider{width:80px;height:4px;margin:0;accent-color:var(--color-primary);cursor:pointer}.mask-edit-size-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);min-width:1.5em;text-align:right}.global-tool-overlay-wrapper{position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:var(--z-index-interactive-tool);overflow:hidden}.canvas-tool-window{position:absolute;top:0;left:0;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);pointer-events:auto;display:flex;flex-direction:column;overflow:hidden;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);resize:both;min-width:300px;min-height:200px;max-width:80vw;max-height:80vh}.drag-handle{height:var(--icon-button-size);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 var(--space-sm-plus);cursor:grab;-webkit-user-select:none;user-select:none;font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);gap:var(--space-sm)}.drag-handle:active{cursor:grabbing}.drag-handle-icon{opacity:.5;font-size:var(--font-size-base)}.canvas-tool-content{padding:var(--space-lg);flex:1;overflow-y:auto;display:flex;flex-direction:column}.tool-ui-container{border:none;background:transparent}.projects-page{height:100vh;background:var(--color-bg);color:var(--color-text);padding:var(--space-lg) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md);overflow:hidden}.projects-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg)}.projects-page__titles{display:flex;flex-direction:column;gap:var(--space-xs)}.projects-page__eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:var(--font-size-xs);color:var(--color-secondary)}.projects-page__title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text)}.projects-page__subtitle{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-md)}.projects-page__actions{display:flex;align-items:center;gap:var(--space-sm)}.projects-page__new-button{padding:var(--space-sm) var(--space-md);border-radius:var(--radius);border:none;background:var(--color-primary);color:var(--color-bg);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease;box-shadow:var(--shadow-sm)}.projects-page__new-button:hover{background:var(--color-primary-hover)}.projects-page__new-button:disabled{background:var(--color-primary-disabled);cursor:not-allowed;box-shadow:none}.projects-page__content{background:var(--color-bg);flex:1;overflow-y:auto;padding:var(--space-sm) 0}.projects-page__grid,.projects-page__list{margin-top:0}.projects-page__empty{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--color-text-secondary);font-size:var(--font-size-md)}.browser__item{position:relative;display:flex;align-items:center;width:100%;padding:var(--space-sm) var(--space-md);background:none;border-bottom:var(--border-width-thin) solid var(--color-border);border-left:3px solid transparent;cursor:pointer;text-align:left;transition:all var(--transition)}.browser__item:last-child{border-bottom:none}.browser__item:hover{background:var(--color-bg-secondary);border-left-color:var(--color-border)}.browser__item--selected{background:var(--color-card-selected-bg);border-left-color:var(--color-primary)}.browser__item-content{flex:1;min-width:0;display:flex;flex-direction:column}.browser__item-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-xs)}.browser__item-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.browser__item-menu-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;opacity:0;transition:opacity var(--transition),background-color var(--transition)}.browser__item:hover .browser__item-menu-btn,.browser__item-menu-btn:focus{opacity:1}.browser__item-menu-btn:hover{background:var(--color-bg-hover);color:var(--color-text)}.browser__item-menu{position:absolute;top:100%;right:var(--space-sm);z-index:var(--z-index-popover);min-width:120px;padding:var(--space-xs) 0;background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.browser__item-menu-option{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:none;border:none;color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--transition)}.browser__item-menu-option:hover{background:var(--color-bg-hover)}.browser__list{flex:1;overflow-y:auto}.browser__items{display:flex;flex-direction:column}.browser__loading,.browser__empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.browser{background:var(--color-bg);display:flex;flex-direction:column;overflow:hidden;height:100%}.browser__section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-sm);background:var(--color-bg);border-bottom:var(--border-width-thin) solid var(--color-border);flex-shrink:0;height:28px}.browser__section-toggle{display:flex;align-items:center;gap:var(--space-xs);padding:0;background:transparent;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.5px}.browser__section-toggle:hover{color:var(--color-text)}.browser__section-title{text-transform:uppercase}.browser__section-count{color:var(--color-text-secondary);font-weight:var(--font-weight-normal)}.browser__section-action{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition),color var(--transition)}.browser__section-action:hover{background:var(--color-bg-secondary);color:var(--color-text)}.editor-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-xs)}.editor-title__name-row{display:flex;align-items:center;gap:var(--space-sm)}.editor-title__name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;padding:var(--space-xs) 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3;cursor:text;border-radius:var(--radius-sm);transition:background-color var(--transition)}.editor-title__name:hover{background-color:var(--color-bg-hover)}.editor-title__description{margin:0;padding:var(--space-xs) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text;border-radius:var(--radius-sm);transition:background-color var(--transition)}.editor-title__description:hover{background-color:var(--color-bg-hover)}.editor-title__description--empty{color:var(--color-text-tertiary);font-style:italic}.editor-title__name-input{flex:1;min-width:0;height:32px;padding:0 var(--space-sm);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-family:inherit;color:var(--color-text);background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition)}.editor-title__name-input:focus{border-color:var(--color-primary)}.editor-title__name-input::placeholder{color:var(--color-text-secondary);font-weight:var(--font-weight-normal)}.editor-title__name-input--error{border-color:var(--color-error)}.editor-title__name-error{font-size:var(--font-size-xs);color:var(--color-error);white-space:nowrap}.editor-title__description-input{width:100%;height:28px;padding:0 var(--space-sm);font-size:var(--font-size-sm);font-family:inherit;color:var(--color-text);background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition)}.editor-title__description-input:focus{border-color:var(--color-primary)}.editor-title__description-input::placeholder{color:var(--color-text-tertiary)}.editor-panel__buttons{display:flex;gap:var(--space-xs);flex-shrink:0;margin-top:var(--space-xs)}.editor-panel__btn{height:28px;padding:0 var(--space-sm);font-size:var(--font-size-sm);font-family:inherit;font-weight:var(--font-weight-medium);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);cursor:pointer;transition:all var(--transition)}.editor-panel__btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary)}.editor-panel__btn:disabled{opacity:.5;cursor:not-allowed}.editor-panel__btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.editor-panel__btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.form-field{margin-bottom:var(--space-md);flex-shrink:0}.form-field:last-child{margin-bottom:0}.form-field__label{display:block;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.form-field__input{width:100%;height:36px;padding:0 var(--space-sm);font-size:var(--font-size-base);font-family:inherit;color:var(--color-text);background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition)}.form-field__input:focus{border-color:var(--color-primary)}.form-field__input::placeholder{color:var(--color-text-secondary)}.form-field__value{height:36px;line-height:36px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text)}.form-field__value--empty{color:var(--color-text-secondary);font-style:italic}.form-field--inline{display:flex;align-items:flex-start;gap:var(--space-md)}.form-field--inline .form-field__label{flex-shrink:0;width:140px;margin-bottom:0;line-height:36px}.form-field--inline .form-field__value,.form-field--inline .form-field__input{flex:1;min-width:0}.form-field--inline .form-field__value{height:auto;word-break:break-word;white-space:pre-wrap;line-height:1.6;padding:var(--space-sm) 0}.form-field--inline:has(.param-list) .form-field__label{line-height:1.4;padding-top:var(--space-sm)}.form-field--inline .param-list{flex:1;min-width:0}.param-list{border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.param-list__toggle{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);font-family:inherit;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:none;cursor:pointer;transition:background var(--transition)}.param-list__toggle:hover{background:var(--color-bg-tertiary)}.param-list__arrow{font-size:var(--font-size-xs);transition:transform var(--transition)}.param-list__arrow--open{transform:rotate(90deg)}.param-list__count{color:var(--color-text-tertiary)}.param-list__empty{padding:var(--space-md);color:var(--color-text-tertiary);font-size:var(--font-size-sm);font-style:italic}.param-list__item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:var(--border-width-thin) solid var(--color-border)}.param-list__item:last-child{border-bottom:none}.param-list__key{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-tertiary);min-width:100px}.param-list__value{flex:1;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-family:var(--font-mono);color:var(--color-text)}.param-list__input{flex:1;height:28px;padding:0 var(--space-sm);font-size:var(--font-size-sm);font-family:var(--font-mono);color:var(--color-text);background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);outline:none}.param-list__input:focus{border-color:var(--color-primary)}.param-list__input--key{font-family:inherit}.param-list__remove{width:24px;height:24px;padding:0;font-size:var(--font-size-lg);line-height:1;color:var(--color-text-tertiary);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.param-list__remove:hover{color:var(--color-danger-text);background:var(--color-error-bg)}.param-list__add{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border-top:var(--border-width-thin) solid var(--color-border)}.param-list__add-btn{height:28px;padding:0 var(--space-sm);font-size:var(--font-size-xs);font-family:inherit;font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.param-list__add-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-text)}.param-list__add-btn:disabled{opacity:.5;cursor:not-allowed}.code-editor{display:flex;width:100%;height:100%;min-height:200px;background:var(--color-code-bg)}.code-editor__line-numbers{flex-shrink:0;width:48px;padding-top:var(--space-md);background:#1e1e1e;border-right:1px solid rgb(255 255 255 / 10%);overflow:hidden;-webkit-user-select:none;user-select:none}.code-editor__line-number{height:calc(var(--font-size-sm-plus) * 1.6);padding-right:var(--space-sm);font-size:var(--font-size-sm-plus);font-family:var(--font-mono);line-height:1.6;color:#fff6;text-align:right}.code-editor__content{position:relative;flex:1;min-width:0;overflow:hidden}.code-editor__highlight{position:absolute;inset:0;overflow:auto;pointer-events:none}.code-editor__highlight pre{margin:0}.code-editor__input{position:absolute;top:0;left:0;width:100%;height:100%;padding:var(--space-md);font-size:var(--font-size-sm-plus);font-family:var(--font-mono);line-height:1.6;color:transparent;background:transparent;border:none;outline:none;resize:none;caret-color:var(--color-code-text);white-space:pre-wrap;word-break:break-word;overflow:auto}.code-editor__input::placeholder{color:#fff6}.code-editor__add-ref-btn{position:absolute;display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs);font-family:inherit;font-weight:var(--font-weight-medium);color:var(--color-text-on-primary);background:var(--color-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow-md);z-index:var(--z-index-popover);transition:background var(--transition),transform var(--transition)}.code-editor__add-ref-btn:hover{background:var(--color-primary-hover);transform:scale(1.02)}.code-tabs{display:flex;flex-direction:column;flex:1;min-height:0}.code-tabs__header{display:flex;gap:0;border-bottom:var(--border-width-thin) solid var(--color-border)}.code-tabs__tab{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);font-family:inherit;font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:all var(--transition)}.code-tabs__tab:hover{color:var(--color-text)}.code-tabs__tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.code-tabs__editor-wrapper{flex:1;min-height:100px;margin-top:var(--space-sm);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.code-tabs__editor-wrapper:focus-within{border-color:var(--color-primary)}.empty-state--with-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-xl);height:100%}.empty-state__label{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.empty-state__input-row{display:flex;gap:var(--space-sm);width:100%;max-width:480px}.empty-state__input{flex:1;padding:var(--space-sm) var(--space-md);font-family:inherit;font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition)}.empty-state__input::placeholder{color:var(--color-text-tertiary)}.empty-state__input:focus{outline:none;border-color:var(--color-primary)}.empty-state__btn{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);font-family:inherit;font-weight:var(--font-weight-medium);color:var(--color-text-on-primary);background:var(--color-primary);border:var(--border-width-thin) solid var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),border-color var(--transition)}.empty-state__btn:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.empty-state__btn:disabled{opacity:.5;cursor:not-allowed}.generate-panel{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background:var(--color-bg-secondary);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);flex-shrink:0;margin-bottom:var(--space-sm)}.generate-panel__content{display:flex;gap:var(--space-sm)}.generate-panel__input{flex:1;height:36px;padding:0 var(--space-md);font-family:inherit;font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition)}.generate-panel__input::placeholder{color:var(--color-text-tertiary)}.generate-panel__input:focus{outline:none;border-color:var(--color-primary)}.generate-panel__input:disabled{opacity:.6}.generate-panel__btn{height:36px;padding:0 var(--space-lg);font-size:var(--font-size-sm);font-family:inherit;font-weight:var(--font-weight-medium);color:var(--color-text-on-primary);background:var(--color-primary);border:var(--border-width-thin) solid var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),border-color var(--transition)}.generate-panel__btn:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.generate-panel__btn:disabled{opacity:.5;cursor:not-allowed}.generate-panel__error{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs);color:var(--color-error);background:var(--color-error-bg);border-radius:var(--radius-sm)}.generate-panel__refs{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-xs)}.generate-panel__ref{display:flex;align-items:center;gap:var(--space-xs);padding:2px var(--space-xs) 2px var(--space-sm);font-size:var(--font-size-xs);color:var(--color-primary);background:#3b82f61a;border:1px solid rgb(59 130 246 / 30%);border-radius:var(--radius-sm)}.generate-panel__ref-icon{flex-shrink:0;opacity:.7}.generate-panel__ref-label{font-family:var(--font-mono);font-weight:var(--font-weight-medium)}.generate-panel__ref-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;color:var(--color-primary);background:transparent;border:none;border-radius:var(--radius-xs);cursor:pointer;opacity:.6;transition:opacity var(--transition),background var(--transition)}.generate-panel__ref-remove:hover{opacity:1;background:#3b82f633}.editor-panel{height:100%;background:var(--color-bg);display:flex;flex-direction:column;overflow:hidden}.editor-panel--loading{pointer-events:none}.editor-panel--loading .editor-panel__content{opacity:.6;transition:opacity .15s ease-out}.editor-panel__empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.editor-panel__header{padding:var(--space-lg) var(--space-lg) var(--space-md);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);flex-shrink:0}.editor-panel__error{padding:var(--space-sm) var(--space-md);background-color:var(--color-error-bg);color:var(--color-error);font-size:var(--font-size-sm);flex-shrink:0}.editor-panel__content{flex:1;overflow-y:auto;padding:0 var(--space-lg) var(--space-lg);display:flex;flex-direction:column;min-height:0}.editor-panel__field{margin-bottom:var(--space-md);flex-shrink:0}.editor-panel__field:last-child{margin-bottom:0}.editor-panel__label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.editor-panel__text{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);margin:0;line-height:1.5}.editor-panel__text--empty{color:var(--color-text-secondary);font-style:italic}.editor-panel__textarea{width:100%;min-height:60px;padding:var(--space-sm);font-size:var(--font-size-sm-plus);font-family:inherit;line-height:1.6;color:var(--color-text);background:var(--color-bg-tertiary);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);outline:none;resize:vertical;transition:border-color var(--transition)}.editor-panel__textarea:focus{border-color:var(--color-primary);background:var(--color-bg)}.editor-panel__textarea::placeholder{color:var(--color-text-secondary)}.simulator__input-bar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border:1px dashed var(--color-border);border-radius:var(--radius-sm);margin:var(--space-sm);background:var(--color-bg-secondary);transition:border-color var(--transition),background var(--transition);overflow:visible}.simulator__input-bar--dragging{border-color:var(--color-primary);background:var(--color-bg-tertiary)}.simulator__input-thumbnails{display:flex;flex-wrap:nowrap;gap:var(--space-sm);align-items:center;overflow-x:auto;padding:var(--space-xs) 0;flex:1;min-width:0}.simulator__input-thumb{position:relative;width:var(--simulator-thumb-size);height:var(--simulator-thumb-size);min-width:var(--simulator-thumb-size);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.simulator__input-thumb img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-sm)}.simulator__input-thumb-remove{position:absolute;top:-5px;right:-5px;width:var(--thumbnail-remove-size);height:var(--thumbnail-remove-size);padding:0;border:none;border-radius:var(--radius-circle);background:var(--badge-remove-bg);color:#fff;font-size:var(--font-size-xs);line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:scale(.8);transition:opacity var(--transition),transform var(--transition),background var(--transition);box-shadow:var(--shadow-sm);z-index:var(--z-index-1)}.simulator__input-thumb:hover .simulator__input-thumb-remove{opacity:1;transform:scale(1)}.simulator__input-thumb-remove:hover{background:var(--badge-remove-hover-bg);transform:scale(1.1)}.simulator__input-thumb-index{position:absolute;top:-5px;left:-5px;width:var(--thumbnail-badge-size);height:var(--thumbnail-badge-size);display:flex;align-items:center;justify-content:center;background:var(--badge-bg);color:var(--badge-text);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-circle);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);box-shadow:var(--shadow-sm);z-index:var(--z-index-1)}.simulator__input-add{width:var(--simulator-thumb-size);height:var(--simulator-thumb-size);min-width:var(--simulator-thumb-size);display:flex;align-items:center;justify-content:center;border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-secondary);font-size:var(--font-size-2xl);cursor:pointer;transition:border-color var(--transition),color var(--transition)}.simulator__input-add:hover{border-color:var(--color-primary);color:var(--color-text-secondary)}.simulator__input-add-wrapper{position:relative}.simulator__preset-backdrop{position:fixed;inset:0;z-index:var(--z-index-popover)}.simulator__preset-popover{position:absolute;top:calc(100% + var(--space-xs));left:0;z-index:var(--z-index-modal);min-width:280px;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);box-shadow:var(--shadow-lg)}.simulator__preset-upload{width:100%;padding:var(--space-xs) var(--space-sm);border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--transition),background var(--transition)}.simulator__preset-upload:hover{border-color:var(--color-primary);background:var(--color-bg-tertiary)}.simulator__preset-divider{height:1px;margin:var(--space-sm) 0;background:var(--color-border)}.simulator__preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.simulator__preset-thumb{width:var(--simulator-thumb-size);height:var(--simulator-thumb-size);padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;cursor:pointer;overflow:hidden;transition:border-color var(--transition),transform var(--transition)}.simulator__preset-thumb:hover{border-color:var(--color-primary);transform:scale(1.05)}.simulator__preset-thumb img{width:100%;height:100%;object-fit:cover}.simulator__input-hint{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-left:var(--space-xs)}.simulator__preview-content{height:100%;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--color-bg-secondary);overflow:hidden}.simulator__preview-image{max-width:100%;max-height:100%;object-fit:contain}.simulator__preview-loading,.simulator__preview-empty{padding:var(--space-lg);font-size:var(--font-size-sm);color:var(--color-secondary)}.simulator__preview-error{padding:var(--space-md);color:var(--color-status-error);font-size:var(--font-size-sm);text-align:center}.tool-preview-window{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;overflow:hidden}.tool-preview-header{height:36px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 var(--space-sm);-webkit-user-select:none;user-select:none;font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);gap:var(--space-sm)}.tool-preview-header-icon{opacity:.5;font-size:var(--font-size-base)}.tool-preview-header-title{font-size:var(--font-size-sm)}.tool-preview-content{padding:0;max-height:50vh;overflow-y:auto}.tool-preview-content .tool-ui-container{border:none;background:transparent;padding:var(--space-md)}.simulator{flex:1;min-height:0;height:100%;display:flex;flex-direction:column;background:var(--color-bg)}.simulator__result{flex:1;min-height:0;margin:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;overflow:hidden}.simulator__result-header{flex-shrink:0;height:36px;padding:0 var(--space-sm);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.simulator__result-content{flex:1;min-height:0;padding:var(--space-sm)}.simulator__params{flex:1;min-height:0;padding:var(--space-sm);overflow-y:auto}.editor-modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0006;z-index:var(--z-index-modal)}.editor-modal{background:var(--color-bg);border-radius:var(--radius-lg);width:min(20rem,90%);box-shadow:var(--shadow-md)}.editor-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:var(--border-width-thin) solid var(--color-border)}.editor-modal__title{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}.editor-modal__close{width:28px;height:28px;padding:0;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-lg);cursor:pointer;transition:all var(--transition)}.editor-modal__close:hover{background:var(--color-bg-secondary);color:var(--color-text)}.editor-modal__body{padding:var(--space-lg)}.editor-modal__message{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.editor-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:var(--border-width-thin) solid var(--color-border)}.editor-modal__btn{height:32px;padding:0 var(--space-md);font-size:var(--font-size-sm);font-family:inherit;font-weight:var(--font-weight-medium);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);cursor:pointer;transition:all var(--transition)}.editor-modal__btn:hover{background:var(--color-bg-secondary)}.editor-modal__btn--danger{background:var(--color-error);border-color:var(--color-error);color:var(--color-text-on-primary)}.editor-modal__btn--danger:hover{background:var(--color-error-hover, var(--color-error))}.editor-modal__btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.editor-modal__btn--primary:hover{background:var(--color-primary-hover, var(--color-primary))}.global-header{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 var(--space-md);background:var(--color-bg);border-bottom:var(--border-width-thin) solid var(--color-border);flex-shrink:0}.global-header__left{display:flex;align-items:center;gap:var(--space-sm)}.global-header__logo-button{display:flex;align-items:center;padding:var(--space-xs);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition)}.global-header__logo-button:hover{background:var(--color-bg-secondary)}.global-header__logo{height:18px;width:auto}.global-header__separator{color:var(--color-text-secondary);font-size:var(--font-size-sm);-webkit-user-select:none;user-select:none}.global-header__page-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.global-header__tool-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);display:flex;align-items:center;gap:var(--space-xs)}.global-header__dirty-indicator{color:var(--color-primary);font-size:var(--font-size-xs)}.global-header__right{display:flex;align-items:center;gap:var(--space-sm)}.activity-bar{display:flex;flex-direction:column;justify-content:space-between;width:48px;background:var(--color-bg-secondary);border-right:var(--border-width-thin) solid var(--color-border);flex-shrink:0}.activity-bar__top,.activity-bar__bottom{display:flex;flex-direction:column;align-items:center;padding:var(--space-xs) 0}.activity-bar__button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin:var(--space-xxs) 0;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition),color var(--transition);position:relative}.activity-bar__button:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.activity-bar__button--active{color:var(--color-text)}.activity-bar__button--active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:24px;background:var(--color-text);border-radius:0 var(--radius-xs) var(--radius-xs) 0}.tool-manager-page__sidebar{display:flex;flex-direction:column;background:var(--color-bg);overflow:visible;position:relative;border-right:var(--border-width-thin) solid var(--color-border)}.tool-manager-page__sidebar-content{display:flex;flex-direction:column;flex:1;overflow:hidden}.tool-manager-page__sidebar-resize-handle{position:absolute;top:0;right:0;width:4px;height:100%;cursor:col-resize;background:transparent;z-index:var(--z-index-dropdown);transition:background var(--transition)}.tool-manager-page__sidebar-resize-handle:hover,.tool-manager-page__sidebar-resize-handle--active{background:var(--color-primary)}.editor-modal--wide{width:min(56rem,90%);max-height:85vh}.editor-modal__textarea{width:100%;min-height:480px;padding:var(--space-lg);font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.7;color:var(--color-code-text);background:var(--color-code-bg);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.editor-modal__textarea:focus{outline:none;border-color:var(--color-primary)}.editor-modal__textarea::placeholder{color:#fff6}.editor-modal__hint{margin:var(--space-sm) 0 0;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.tool-manager-page__simulator{position:relative;border-left:var(--border-width-thin) solid var(--color-border);overflow:visible;display:flex;flex-direction:column;background-color:var(--color-bg)}.tool-manager-page__resize-handle{position:absolute;top:0;left:0;width:4px;height:100%;cursor:col-resize;background:transparent;z-index:var(--z-index-dropdown);transition:background var(--transition)}.tool-manager-page__resize-handle:hover,.tool-manager-page__resize-handle--active{background:var(--color-primary)}.tool-manager-page{--font-mono: "SF Mono", Monaco, Menlo, Consolas, monospace;--color-code-bg: #1e1e1e;--color-code-text: #d4d4d4;--color-code-border: #3c3c3c;--color-code-focus: #007acc;--simulator-thumb-size: 120px}.tool-manager-page{display:flex;flex-direction:column;height:100vh;background-color:var(--color-bg)}.tool-manager-page__body{display:flex;flex:1;min-height:0;overflow:hidden}.tool-manager-page__content{display:grid;grid-template-columns:280px 1fr 400px;flex:1;min-width:0;gap:1px}.tool-manager-page__content--resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.tool-manager-page__main{overflow:hidden;display:flex;flex-direction:column;background:var(--color-bg)}.landing-container{position:relative;min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background-color:var(--landing-bg);overflow:hidden}.landing-grain-overlay{position:absolute;inset:0;opacity:.4;pointer-events:none;transform:scale(3);transform-origin:center center}.landing-grain-texture{position:absolute;inset:0;width:100%;height:100%}.landing-main-content{position:relative;z-index:var(--z-index-sticky);display:flex;flex-direction:column;align-items:center;justify-content:center;padding-left:var(--space-xl);padding-right:var(--space-xl);max-width:56rem;margin-left:auto;margin-right:auto;margin-top:4vh}.landing-hero-text{text-align:center;margin-bottom:var(--space-md)}.landing-hero-text>*+*{margin-top:var(--space-sm)}.landing-hero-text h1{color:var(--landing-heading);letter-spacing:-.025em;font-weight:var(--font-weight-normal);font-size:var(--font-size-5xl);line-height:1.2}.landing-hero-text p{color:var(--landing-subtext);letter-spacing:.025em;font-size:var(--font-size-3xl);line-height:1.5}.landing-cta-button{padding:var(--space-xxs) 0;font-size:var(--font-size-lg);letter-spacing:.025em;text-transform:none;color:var(--landing-subtext);border:none;border-bottom:var(--border-width-thin) solid var(--landing-border);background-color:transparent;transition:all .2s;cursor:pointer}.landing-cta-button:hover{color:var(--landing-heading);border-bottom-color:var(--landing-heading)}.landing-corner-accent-vertical{position:absolute;top:0;right:0;width:var(--border-width-thin);height:6rem;background:linear-gradient(to bottom,var(--landing-accent),transparent)}.landing-corner-accent-horizontal{position:absolute;top:0;right:0;width:6rem;height:var(--border-width-thin);background:linear-gradient(to left,var(--landing-accent),transparent)}.auth-page{position:relative;min-height:100vh;background:var(--landing-bg);display:flex;align-items:center;justify-content:center;padding:var(--space-xl);overflow:hidden}.auth-grain-overlay{position:absolute;inset:0;opacity:.4;pointer-events:none;transform:scale(3);transform-origin:center center}.auth-grain-texture{position:absolute;inset:0;width:100%;height:100%}.auth-container{position:relative;z-index:var(--z-index-1);background:transparent;border-radius:0;padding:0;width:100%;max-width:520px}.waitlist-container{max-width:360px}.waitlist-content{text-align:center}.waitlist-heading{color:var(--landing-heading);font-size:var(--font-size-5xl);font-weight:var(--font-weight-normal);letter-spacing:-.025em;margin:0 0 var(--space-xl)}.waitlist-subtext{color:var(--landing-subtext);font-size:var(--font-size-xl);margin:0}.waitlist-input-group{display:flex;align-items:center;gap:var(--space-sm);border-bottom:var(--border-width-thin) solid var(--landing-border);padding-bottom:var(--space-xs)}.waitlist-input{flex:1;border:none;background:transparent;color:var(--landing-heading);font-size:var(--font-size-xl);font-family:var(--font-family-sans);letter-spacing:.025em;outline:none;padding:var(--space-sm) 0}.waitlist-input::placeholder{color:var(--landing-subtext)}.waitlist-submit{border:none;background:transparent;color:var(--landing-heading);font-size:var(--font-size-base);font-family:var(--font-family-sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:var(--space-xs);transition:opacity .2s}.waitlist-submit:hover{opacity:.6}.waitlist-submit:disabled{opacity:.3;cursor:default}.waitlist-error{color:var(--color-error);font-size:var(--font-size-sm);margin:var(--space-sm) 0 0}.waitlist-signin{color:var(--landing-subtext);font-size:var(--font-size-base);margin:var(--space-xl) 0 0}.waitlist-signin a{color:var(--landing-heading);text-decoration:none}.waitlist-signin a:hover{text-decoration:underline}.signin-container{max-width:360px}.signin-form{text-align:center}.signin-heading{color:var(--landing-heading);font-size:var(--font-size-5xl);font-weight:var(--font-weight-normal);letter-spacing:-.025em;margin:0 0 var(--space-xl)}.signin-oauth-button{border:none;background:transparent;color:var(--landing-heading);font-size:var(--font-size-base);font-family:var(--font-family-sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:var(--space-xs);transition:opacity .2s}.signin-oauth-button:hover{opacity:.6}.signin-oauth-button:disabled{opacity:.3;cursor:default}.signin-divider{color:var(--landing-subtext);font-size:var(--font-size-sm);margin:var(--space-lg) 0}.signin-fields{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.signin-field{border-bottom:var(--border-width-thin) solid var(--landing-border);padding-bottom:var(--space-xs)}.signin-input{width:100%;border:none;background:transparent;color:var(--landing-heading);font-size:var(--font-size-xl);font-family:var(--font-family-sans);letter-spacing:.025em;outline:none;padding:var(--space-sm) 0}.signin-input::placeholder{color:var(--landing-subtext)}.signin-submit{border:none;background:transparent;color:var(--landing-heading);font-size:var(--font-size-base);font-family:var(--font-family-sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:var(--space-xs);transition:opacity .2s}.signin-submit:hover{opacity:.6}.signin-submit:disabled{opacity:.3;cursor:default}.signin-verification-hint{color:var(--landing-subtext);font-size:var(--font-size-base);margin:0 0 var(--space-lg)}.signin-back-link{border:none;background:transparent;color:var(--landing-heading);font-size:var(--font-size-base);font-family:var(--font-family-sans);cursor:pointer;padding:0;text-decoration:none}.signin-back-link:hover{text-decoration:underline}.signin-error{color:var(--color-error);font-size:var(--font-size-sm);margin:var(--space-sm) 0 0}.signin-footer{color:var(--landing-subtext);font-size:var(--font-size-base);margin:var(--space-xl) 0 0}.signin-footer a{color:var(--landing-heading);text-decoration:none}.signin-footer a:hover{text-decoration:underline}:root{--font-family-sans: -apple-system, BlinkMacSystemFont, "Poppins", system-ui;--font-family-serif: "DM Serif Display", Georgia, serif;--space-xxs: .125rem;--space-xs: .25rem;--space-xs-plus: .375rem;--space-sm: .5rem;--space-sm-plus: .75rem;--space-md: 1rem;--space-md-plus: 1.25rem;--space-lg: 1.5rem;--space-xl: 2rem;--color-primary: #444;--color-primary-hover: #282828;--color-primary-disabled: #ccc;--color-active: #0b6a2b;--color-active-bg: #e6f4ea;--color-error: #991b1b;--color-error-bg: #fef2f2;--color-secondary: #777;--color-secondary-hover: #555;--color-text: #282828;--color-text-secondary: #444;--color-text-on-primary: #fff;--color-border: #bbb;--color-bg: #fafafa;--color-bg-secondary: #f5f5f5;--color-bg-tertiary: #fafafa;--color-bg-dark: #3D3D3D;--font-size-xxs: .5rem;--font-size-xs: .625rem;--font-size-xs-plus: .6875rem;--font-size-sm: .75rem;--font-size-sm-plus: .8125rem;--font-size-base: .875rem;--font-size-md: .9375rem;--font-size-lg: 1rem;--font-size-xl: 1.125rem;--font-size-2xl: 1.25rem;--font-size-3xl: 1.5rem;--font-size-4xl: 2rem;--font-size-5xl: 2.5rem;--font-size-6xl: 4rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--radius: .75rem;--radius-inner: .5rem;--radius-xs: .25rem;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: 1rem;--radius-circle: 50%;--message-radius: .75rem;--button-radius: 2rem;--icon-size-sm: 1.25rem;--icon-size-md: 1.5rem;--icon-size-lg: 1.75rem;--icon-button-size: 2rem;--focus-ring-width: 3px;--focus-ring-offset: 2px;--color-status-success: #0b6a2b;--color-status-success-bg: #e6f4ea;--color-status-error: #b01212;--color-status-error-bg: #fef2f2;--color-focus-ring: rgb(37 99 235 / 25%);--color-overlay-dimmed: rgb(0 0 0 / 50%);--color-overlay-light: rgb(240 240 240 / 95%);--color-overlay-button-bg: rgb(0 0 0 / 70%);--color-overlay-button-hover-bg: rgb(0 0 0 / 90%);--shadow-overlay: rgb(0 0 0 / 25%);--shadow-dropdown: rgb(0 0 0 / 12%);--shadow-text-soft: rgb(0 0 0 / 10%);--scrollbar-thumb: rgb(0 0 0 / 15%);--scrollbar-thumb-hover: rgb(0 0 0 / 25%);--thumbnail-size: 4rem;--thumbnail-badge-size: 1rem;--thumbnail-remove-size: 1.125rem;--canvas-button-size: 2rem;--menu-item-padding-y: var(--space-xs-plus);--menu-item-padding-x: var(--space-sm-plus);--toggle-width: 32px;--toggle-height: 18px;--toggle-padding: 2px;--toggle-knob-size: 12px;--toggle-travel: 14px;--toggle-track-radius: calc(var(--toggle-height) / 2);--toggle-knob-radius: calc(var(--toggle-knob-size) / 2);--toggle-track-off-bg: var(--color-bg-tertiary);--toggle-track-off-border: var(--color-border);--toggle-knob-off-bg: var(--color-primary);--toggle-track-on-bg: var(--color-primary-hover);--toggle-track-on-border: var(--color-primary-hover);--toggle-knob-on-bg: var(--color-bg);--transition: .2s ease;--border-width-thin: 1px;--border-width-medium: 2px;--border-width-thick: .5px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 5%);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 10%), 0 2px 4px -1px rgb(0 0 0 / 6%);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 10%), 0 4px 6px -2px rgb(0 0 0 / 5%);--shadow-soft: 2px 2px 10px rgb(0 0 0 / 10%);--z-index-1: 1;--z-index-2: 2;--z-index-sticky: 10;--z-index-dropdown: 100;--z-index-overlay: 100;--z-index-popover: 900;--z-index-tooltip: 1000;--z-index-modal: 2000;--z-index-floating-input: 2500;--z-index-interactive-tool: 2500;--color-node-border-strong: #282828;--color-node-selected-border: #999;--shadow-node-selected: rgb(0 0 0 / 20%);--shadow-node-ring: 0 0 0 var(--border-width-medium) var(--color-primary), var(--shadow-md);--color-card-hover-border: var(--color-primary);--color-card-active-bg: rgb(0 0 0 / 5%);--color-card-selected-bg: rgb(0 0 0 / 10%);--color-danger-text: #ff3b30;--color-danger-bg-hover: rgb(255 59 48 / 10%);--color-overlay-tint: rgb(252 252 252 / 10%);--color-overlay-tint-hover: rgb(255 255 255 / 15%);--tree-preview-bg: rgb(255 255 255 / 85%);--tree-preview-border: rgb(255 255 255 / 40%);--tree-preview-shadow-strong: rgb(0 0 0 / 10%);--tree-preview-shadow-soft: rgb(0 0 0 / 5%);--badge-bg: #fff;--badge-text: #000;--badge-shadow: rgb(0 0 0 / 20%);--badge-remove-bg: rgb(0 0 0 / 60%);--badge-remove-hover-bg: rgb(0 0 0 / 80%);--badge-remove-shadow: rgb(0 0 0 / 10%);--thread-header-text-shadow: rgb(0 0 0 / 10%);--thread-input-focus-shadow: rgb(0 0 0 / 10%);--thread-drop-overlay: rgb(240 240 240 / 95%);--thread-preview-modal-bg: rgb(0 0 0 / 80%);--landing-bg: #fafafa;--landing-heading: #171717;--landing-subtext: #737373;--landing-border: #d4d4d4;--landing-button-hover-bg: #171717;--landing-button-hover-text: #fafafa;--landing-accent: #d4d4d4;--auth-body-text: #4a4a4a;--project-browser-overlay-bg: rgb(0 0 0 / 50%);--project-browser-primary-hover-end: #1a1a1a;--project-browser-bulk-bg: var(--color-bg-secondary);--floating-input-bg: rgb(66 66 66 / 90%);--floating-input-border: rgb(255 255 255 / 15%);--floating-input-text: #fff;--floating-input-placeholder: rgb(255 255 255 / 60%);--floating-input-disabled-text: rgb(255 255 255 / 40%);--typing-indicator-dot-size: var(--space-xs);--typing-indicator-animation-duration: 1.4s;--typing-indicator-animation-delay-1: -.32s;--typing-indicator-animation-delay-2: -.16s}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;overscroll-behavior-x:none}body{font-family:var(--font-family-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text);background-color:var(--color-bg)}.app{width:100%;height:100%;display:flex;flex-direction:column}
