@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.sql-editor-container{display:flex;flex-direction:column;height:100%;border-radius:8px;overflow:hidden;border:1px solid var(--color-border);background-color:var(--sidebar-bg)}.sql-editor-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background-color:var(--sidebar-bg);border-bottom:1px solid var(--color-border)}.sql-editor-title{font-weight:700;font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em}.sql-editor-controls{display:flex;gap:12px;align-items:center;margin-top:4px}.dialect-select{background-color:var(--input-bg);color:var(--color-text-primary);border:1px solid var(--color-border);padding:4px 10px;border-radius:5px;font-family:var(--font-sans);font-size:11px;font-weight:500;outline:none;cursor:pointer;transition:var(--transition-all)}.dialect-select:hover{border-color:var(--color-border-hover);background-color:var(--color-row-hover)}.editor-workspace{flex-grow:1;overflow:hidden;height:calc(100% - 84px)}.editor-workspace>.cm-editor{height:100%}.sql-editor-container.fullscreen-editor{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;z-index:9999;border-radius:0;border: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: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.table-node{border-radius:8px;border:1px solid var(--color-border);min-width:240px;box-shadow:var(--shadow-lg);overflow:visible;transition:border-color .2s ease,box-shadow .2s ease;background-color:var(--bg-secondary)!important}.table-node:hover{border-color:var(--color-indigo);box-shadow:0 10px 30px -10px #00000026,var(--shadow-glow)}.table-node-header{display:flex;align-items:center;gap:8px;padding:12px 14px;background:linear-gradient(180deg,#6366f10d,#6366f105);border-bottom:1px solid var(--color-border);font-weight:600;font-size:13px;letter-spacing:.03em;color:var(--color-text-primary);border-top-left-radius:7px;border-top-right-radius:7px}.table-icon{font-size:13px;opacity:.8;color:var(--color-indigo)}.table-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;font-size:12px;letter-spacing:.05em}.table-node-columns{display:flex;flex-direction:column;padding:4px 0}.column-row{display:grid;grid-template-columns:8px 14px 1fr 85px 54px 14px 14px;align-items:center;padding:6px 14px;gap:6px;font-size:13px;transition:var(--transition-all);border-bottom:1px dashed transparent;position:relative}.column-row:hover{background-color:var(--color-row-hover)}.column-meta{display:flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0}.key-icon{font-size:11px}.pk-icon{color:var(--color-amber);filter:drop-shadow(0 0 2px rgba(251,191,36,.2))}.fk-icon{color:var(--color-fk)}.key-placeholder{width:14px}.column-name{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--color-text-primary);flex-grow:1;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.column-name-input{font-family:var(--font-mono);font-size:12px;background-color:var(--input-bg);color:var(--color-text-primary);border:1px solid var(--color-indigo);border-radius:4px;padding:2px 6px;flex-grow:1;outline:none;min-width:0}.column-type{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);flex-shrink:0}.pk-row .column-name{color:var(--color-amber);font-weight:600}.fk-row .column-name{color:var(--color-fk)}.table-name-input{font-family:var(--font-sans);font-size:13px;font-weight:600;background-color:var(--input-bg);color:var(--color-text-primary);border:1px solid var(--color-indigo);border-radius:4px;padding:2px 6px;width:100%;outline:none;text-transform:uppercase}.column-type-input{font-family:var(--font-mono);font-size:11px;background-color:var(--input-bg);color:var(--color-text-primary);border:1px solid var(--color-indigo);border-radius:4px;padding:1px 4px;width:80px;outline:none}.add-column-btn{background:none;border:none;color:var(--color-indigo);font-family:var(--font-sans);font-size:12px;font-weight:600;padding:8px 14px;text-align:left;cursor:pointer;width:100%;transition:var(--transition-all);opacity:.8;display:flex;align-items:center;gap:6px}.add-column-btn:hover{background-color:var(--color-row-hover);opacity:1;padding-left:18px}.column-nullable{font-size:9px;font-family:var(--font-mono);color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#ffffff05;border:1px solid var(--color-border);padding:1px 4px;border-radius:4px;flex-shrink:0;transition:var(--transition-all)}.column-nullable:hover{color:var(--color-indigo);border-color:var(--color-indigo);background-color:var(--color-row-hover)}.comment-bubble-btn{background:none;border:none;cursor:pointer;font-size:11px;opacity:.3;padding:0 2px;transition:var(--transition-all);color:var(--color-text-secondary)}.comment-bubble-btn:hover,.comment-bubble-btn.has-comment{opacity:1;color:var(--color-indigo)}.column-comment-editor{padding:4px 14px 8px;background-color:var(--bg-tertiary);border-bottom:1px solid var(--color-border)}.column-comment-input{width:100%;font-family:var(--font-sans);font-size:11px;background-color:var(--input-bg);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:4px;padding:4px 8px;outline:none;transition:var(--transition-all)}.column-comment-input:focus{border-color:var(--color-indigo)}.delete-table-btn{background:none;border:none;cursor:pointer;font-size:11px;opacity:0;transition:var(--transition-all);padding:4px;border-radius:4px;flex-shrink:0}.table-node:hover .delete-table-btn{opacity:.5}.table-node:hover .delete-table-btn:hover{opacity:1;background-color:#f43f5e26;color:#f43f5e}.delete-col-btn{background:none;border:none;cursor:pointer;opacity:.25;transition:var(--transition-all);padding:2px;border-radius:3px;flex-shrink:0;color:var(--color-text-muted);display:flex;align-items:center}.column-row:hover .delete-col-btn{opacity:.5}.column-row:hover .delete-col-btn:hover{opacity:1;color:#f43f5e;background-color:#f43f5e1f}.drag-handle{cursor:grab;display:flex;align-items:center;color:var(--color-text-muted);flex-shrink:0;opacity:.25;transition:var(--transition-all)}.column-row:hover .drag-handle{opacity:1}.drag-handle:active{cursor:grabbing}.column-wrapper.drag-over{border-top:2px solid var(--color-indigo)!important}.validation-error{font-size:9px;color:#f43f5e;margin-top:2px;font-family:var(--font-sans)}.input-error{border-color:#f43f5e!important}.erd-canvas-container{width:100%;height:100%;position:relative;background-color:var(--bg-primary);transition:background-color .2s ease}.canvas-toolbar{display:flex;align-items:center;gap:10px;padding:4px 8px}.toolbar-btn{background-color:var(--input-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);font-family:var(--font-sans);font-size:11px;font-weight:600;padding:6px 12px;border-radius:5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-all);letter-spacing:.03em}.toolbar-btn:hover{background-color:var(--color-row-hover);border-color:var(--color-indigo);color:var(--color-indigo)}.toolbar-btn.active{border-color:var(--color-indigo);color:var(--color-indigo)}.add-btn{background-color:#0ea5e90f;border-color:var(--color-indigo);color:var(--color-indigo)}.add-btn:hover{background-color:var(--color-indigo);color:#fff!important}.toolbar-divider{width:1px;height:20px;background-color:var(--color-border);flex-shrink:0}.toolbar-dropdown-trigger{background-color:var(--input-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);font-family:var(--font-sans);font-size:11px;font-weight:600;padding:6px 10px;border-radius:5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-all);white-space:nowrap}.toolbar-dropdown-trigger:hover,.toolbar-dropdown-trigger.active{border-color:var(--color-indigo);color:var(--color-indigo);background-color:var(--color-row-hover)}.toolbar-dropdown-label{color:var(--color-text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;margin-right:2px}.toolbar-dropdown-panel{position:absolute;top:calc(100% + 6px);min-width:170px;border-radius:6px;border:1px solid var(--color-border);background-color:var(--bg-secondary);box-shadow:var(--shadow-lg);z-index:1000;display:flex;flex-direction:column;padding:4px;animation:dropdown-fade-in .12s ease-out}@keyframes dropdown-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.toolbar-dropdown-item{background:none;border:none;color:var(--color-text-secondary);font-family:var(--font-sans);font-size:12px;font-weight:500;padding:8px 12px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:var(--transition-all);text-align:left;width:100%}.toolbar-dropdown-item:hover{background-color:var(--color-row-hover);color:var(--color-text-primary)}.toolbar-dropdown-item.selected{color:var(--color-indigo);background-color:#0ea5e90f;font-weight:600}.toolbar-dropdown-check{display:flex;align-items:center;gap:8px;font-family:var(--font-sans);font-size:12px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;padding:8px 12px;border-radius:4px;transition:var(--transition-all)}.toolbar-dropdown-check:hover{background-color:var(--color-row-hover);color:var(--color-text-primary)}.toolbar-dropdown-check input[type=checkbox]{accent-color:var(--color-indigo);cursor:pointer;width:14px;height:14px}.toolbar-dropdown-group-label{font-family:var(--font-sans);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);padding:8px 12px 4px;-webkit-user-select:none;user-select:none}.toolbar-dropdown-divider{height:1px;background-color:var(--color-border);margin:6px 8px;opacity:.5}.toolbar-search-wrapper{display:flex;align-items:center;gap:6px;background-color:var(--input-bg);border:1px solid var(--color-border);border-radius:5px;padding:4px 10px;transition:var(--transition-all);color:var(--color-text-muted)}.toolbar-search-wrapper:focus-within{border-color:var(--color-indigo);color:var(--color-indigo)}.toolbar-search-input{background-color:transparent;color:var(--color-text-primary);border:none;padding:2px 0;font-family:var(--font-sans);font-size:11px;font-weight:500;outline:none;width:140px;transition:width .2s ease}.toolbar-search-input:focus{width:180px}.toolbar-search-clear{background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:2px;display:flex;align-items:center;transition:var(--transition-all)}.toolbar-search-clear:hover{color:var(--color-text-primary)}.toolbar-toggle-btn{background:none;border:none;color:var(--color-text-secondary);font-family:var(--font-sans);font-size:11px;font-weight:600;padding:5px 12px;border-radius:4px;cursor:pointer;transition:var(--transition-all);display:inline-flex;align-items:center;gap:6px}.toolbar-toggle-btn:hover{color:var(--color-text-primary);background-color:var(--color-row-hover)}.toolbar-toggle-btn.active{color:var(--color-indigo);background-color:var(--bg-secondary);box-shadow:var(--shadow-sm)}.react-flow__controls-button{background-color:var(--bg-secondary)!important;color:var(--color-text-primary)!important;border-bottom:1px solid var(--color-border)!important}.react-flow__controls-button:hover{background-color:var(--color-border)!important}.react-flow__minimap{border:1px solid var(--color-border)!important;border-radius:8px;background-color:var(--bg-secondary)!important}.highlighted-node{border-color:var(--color-indigo)!important;animation:neon-pulse 1.5s infinite alternate}@keyframes neon-pulse{0%{box-shadow:0 0 10px var(--accent-glow)}to{box-shadow:0 0 20px var(--color-indigo)}}.erd-sidebar-explorer{border-radius:0;box-shadow:none}.erd-explorer-item:hover{background-color:var(--color-row-hover)!important}.erd-explorer-item:active{transform:scale(.98)}.data-dictionary-container{width:100%;height:100%;background-color:var(--bg-primary);transition:background-color .2s ease}.dict-row-hover:hover{background-color:var(--color-row-hover)}.dict-input-focus:focus{border-color:var(--color-indigo)!important}.export-panel-container{position:relative;display:inline-block}.dropdown-trigger{min-width:140px}.export-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:220px;border-radius:8px;border:1px solid var(--color-border);z-index:1000;display:flex;flex-direction:column;padding:6px 0;background-color:var(--bg-secondary)!important;box-shadow:var(--shadow-lg)}.dropdown-section-title{padding:8px 16px 4px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-weight:700}.dropdown-item{width:100%;padding:8px 16px;background:none;border:none;color:var(--color-text-primary);text-align:left;font-family:var(--font-sans);font-size:12px;font-weight:500;cursor:pointer;transition:var(--transition-all)}.dropdown-item:hover{background-color:var(--color-row-hover);color:var(--color-indigo);padding-left:20px}.dropdown-divider{height:1px;background-color:var(--color-border);margin:6px 0}.lineage-container{display:flex;width:100%;height:calc(100vh - 60px);background-color:var(--bg-primary)}.lineage-sidebar{width:340px;height:100%;border-right:1px solid var(--color-border);display:flex;flex-direction:column;background-color:var(--sidebar-bg);transition:width .3s ease}.lineage-sidebar.fullscreen{position:absolute;top:56px;left:0;width:100vw;height:calc(100vh - 56px);z-index:100}.lineage-sidebar-header{padding:14px 16px;border-bottom:1px solid var(--color-border)}.lineage-title{font-weight:700;font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em;display:block}.lineage-textarea{flex:1 1 0;min-height:120px;overflow-y:auto;border:none;background-color:var(--bg-secondary);color:var(--color-text-primary);font-family:var(--font-mono);font-size:12px;padding:0;resize:none;outline:none;border-bottom:1px solid var(--color-border)}.lineage-textarea .cm-editor{height:100%}.lineage-textarea .cm-scroller{overflow-y:auto!important;scrollbar-width:thin;scrollbar-color:var(--color-text-muted) transparent}.lineage-textarea .cm-scroller::-webkit-scrollbar{width:6px}.lineage-textarea .cm-scroller::-webkit-scrollbar-track{background:transparent}.lineage-textarea .cm-scroller::-webkit-scrollbar-thumb{background-color:var(--color-text-muted);border-radius:3px;opacity:.5}.lineage-textarea .cm-scroller::-webkit-scrollbar-thumb:hover{background-color:var(--color-text-secondary)}.lineage-canvas{flex-grow:1;height:100%;position:relative}.lineage-node{font-family:var(--font-sans);overflow:hidden}.lineage-node-header{padding:8px 12px;font-weight:600;font-size:11px;border-bottom:1px solid var(--color-border);letter-spacing:.03em;border-top-left-radius:5px;border-top-right-radius:5px}.lineage-node-header.source{background-color:#0ea5e914;color:var(--color-indigo)}.lineage-node-header.target{background-color:#10b98114;color:var(--color-emerald)}.lineage-node-header.both{background-color:#f59e0b14;color:#f59e0b}.lineage-node-body{padding:8px 12px;display:flex;flex-direction:column;gap:4px}.lineage-col-row{position:relative;display:flex;align-items:center;padding:3px 0}.lineage-col-flow{font-family:var(--font-mono);font-size:11px;color:var(--color-text-primary);text-align:left}.lineage-sidebar-tabs{display:flex;margin-top:16px;border-bottom:1px solid var(--color-border)}.lineage-tab{flex:1;background:transparent;border:none;border-bottom:2px solid transparent;padding:8px 0;font-size:11px;font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:all .2s}.lineage-tab:hover{color:var(--color-text-primary)}.lineage-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.table-explorer-container{display:flex;flex-direction:column;gap:16px}.table-explorer-category h4{margin:0 0 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.table-explorer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.table-explorer-item{padding:6px 8px;border-radius:4px;background-color:var(--bg-primary);border:1px solid var(--color-border);cursor:pointer;transition:all .2s;display:flex;align-items:center}.table-explorer-item:hover{background-color:var(--bg-hover);border-color:var(--color-primary)}.table-explorer-item.selected{background-color:#38bdf81a;border-color:var(--color-primary);color:var(--color-primary)}.table-explorer-item.highlight{border-color:var(--color-emerald);box-shadow:0 0 0 1px var(--color-emerald)}.table-explorer-item .table-name{font-family:var(--font-mono);font-size:11px;word-break:break-all}.landing-page{position:relative;min-height:100vh;background:#050709;color:#f8fafc;font-family:Outfit,-apple-system,BlinkMacSystemFont,sans-serif;overflow-x:hidden;overflow-y:auto}.landing-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.bg-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(99,102,241,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.03) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 30%,black,transparent);mask-image:radial-gradient(ellipse 80% 60% at 50% 30%,black,transparent)}.bg-glow{position:absolute;border-radius:50%;filter:blur(120px);opacity:.4;animation:glowFloat 12s ease-in-out infinite}.bg-glow-1{width:500px;height:500px;background:radial-gradient(circle,rgba(99,102,241,.3),transparent 70%);top:-100px;left:20%;animation-delay:0s}.bg-glow-2{width:400px;height:400px;background:radial-gradient(circle,rgba(6,182,212,.2),transparent 70%);top:40%;right:10%;animation-delay:-4s}.bg-glow-3{width:350px;height:350px;background:radial-gradient(circle,rgba(16,185,129,.15),transparent 70%);bottom:10%;left:10%;animation-delay:-8s}@keyframes glowFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-20px) scale(1.05)}66%{transform:translate(-20px,15px) scale(.95)}}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:16px 40px;background:#05070999;-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);border-bottom:1px solid rgba(255,255,255,.04);transform:translateY(-100%);opacity:0;transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .6s ease}.nav-visible{transform:translateY(0);opacity:1}.nav-brand{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;letter-spacing:.02em}.nav-links{display:flex;align-items:center;gap:28px}.nav-links a{color:#94a3b8;text-decoration:none;font-size:13px;font-weight:500;transition:color .2s}.nav-links a:hover{color:#f8fafc}.nav-cta{display:flex;align-items:center;gap:6px;padding:8px 18px;background:linear-gradient(135deg,#6366f1,#0ea5e9);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:transform .2s,box-shadow .2s}.nav-cta:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6366f14d}.hero-section{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:140px 24px 60px;opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)}.hero-visible{opacity:1;transform:translateY(0)}.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;background:#6366f114;border:1px solid rgba(99,102,241,.15);border-radius:100px;font-size:12px;font-weight:500;color:#a5b4fc;margin-bottom:32px}.badge-dot{width:6px;height:6px;border-radius:50%;background:#10b981;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 #10b98166}50%{opacity:.8;box-shadow:0 0 0 6px #10b98100}}.hero-title{font-size:clamp(36px,6vw,64px);font-weight:700;line-height:1.1;margin:0 0 24px;letter-spacing:-.03em}.hero-line-1,.hero-line-2,.hero-line-3{display:block}.gradient-text{background:linear-gradient(135deg,#6366f1,#0ea5e9 40%,#10b981,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:16px;color:#64748b;line-height:1.7;max-width:520px;margin:0 0 36px}.hero-actions{display:flex;gap:12px;align-items:center}.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:linear-gradient(135deg,#6366f1,#0ea5e9);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:transform .2s,box-shadow .3s;position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent);opacity:0;transition:opacity .3s}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #6366f159}.btn-primary:hover:before{opacity:1}.btn-large{padding:16px 36px;font-size:16px;border-radius:12px}.btn-secondary{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:#ffffff0a;color:#94a3b8;border:1px solid rgba(255,255,255,.08);border-radius:10px;font-size:15px;font-weight:500;cursor:pointer;text-decoration:none;font-family:inherit;transition:all .2s}.btn-secondary:hover{background:#ffffff14;color:#f8fafc;border-color:#ffffff26;transform:translateY(-1px)}.hero-preview{margin-top:56px;width:100%;max-width:680px;perspective:1000px}.preview-window{background:#0a0d14;border-radius:12px;border:1px solid rgba(255,255,255,.06);overflow:hidden;box-shadow:0 20px 60px #00000080,0 0 0 1px #6366f10d,0 0 80px #6366f10f;animation:previewFloat 6s ease-in-out infinite}@keyframes previewFloat{0%,to{transform:rotateX(2deg) translateY(0)}50%{transform:rotateX(0) translateY(-6px)}}.preview-titlebar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.04)}.titlebar-dots{display:flex;gap:6px}.dot{width:10px;height:10px;border-radius:50%}.dot-red{background:#f43f5e}.dot-yellow{background:#f59e0b}.dot-green{background:#10b981}.titlebar-text{font-size:11px;color:#475569;flex:1;text-align:center}.preview-content{padding:16px}.preview-erd{width:100%;height:auto}.erd-table{opacity:0;animation:tableAppear .6s ease forwards}.erd-table-1{animation-delay:.5s}.erd-table-2{animation-delay:.9s}.erd-table-3{animation-delay:1.3s}@keyframes tableAppear{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.erd-line{stroke-dashoffset:100;animation:lineDrawIn 1.2s ease forwards}.erd-line-1{animation-delay:1.2s}.erd-line-2{animation-delay:1.5s}.erd-line-3{animation-delay:1.8s}@keyframes lineDrawIn{0%{stroke-dashoffset:100;opacity:0}50%{opacity:1}to{stroke-dashoffset:0;opacity:1}}.section-header{text-align:center;margin-bottom:56px}.section-label{display:inline-block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#6366f1;margin-bottom:12px}.section-title{font-size:clamp(28px,4vw,40px);font-weight:700;line-height:1.2;margin:0 0 16px;letter-spacing:-.02em}.section-subtitle{font-size:15px;color:#64748b;max-width:500px;margin:0 auto;line-height:1.6}.features-section{position:relative;z-index:1;padding:100px 40px;max-width:1100px;margin:0 auto}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feature-card{background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:14px;padding:28px;transition:all .3s cubic-bezier(.16,1,.3,1);cursor:default}.feature-card:hover{background:#ffffff0a;border-color:#6366f126;transform:translateY(-4px);box-shadow:0 16px 40px #0003,0 0 30px #6366f10f}.feature-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#6366f10f;border-radius:12px;margin-bottom:16px}.feature-title{font-size:16px;font-weight:600;margin:0 0 8px;color:#f8fafc}.feature-desc{font-size:13px;color:#64748b;line-height:1.6;margin:0}.steps-section{position:relative;z-index:1;padding:80px 40px 100px;max-width:900px;margin:0 auto}.steps-container{display:flex;gap:24px;justify-content:center}.step-card{flex:1;text-align:center;padding:32px 24px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:14px;position:relative;transition:all .3s}.step-card:hover{background:#ffffff0a;transform:translateY(-2px)}.step-number{font-size:40px;font-weight:800;opacity:.25;margin-bottom:12px;letter-spacing:-.02em}.step-title{font-size:18px;font-weight:600;margin:0 0 8px;color:#f8fafc}.step-desc{font-size:13px;color:#64748b;margin:0;line-height:1.6}.step-connector{display:none}.cta-section{position:relative;z-index:1;padding:40px 40px 80px;max-width:800px;margin:0 auto}.cta-card{text-align:center;padding:56px 40px;background:linear-gradient(135deg,#6366f10f,#06b6d40a);border:1px solid rgba(99,102,241,.1);border-radius:20px;position:relative;overflow:hidden}.cta-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 120%,rgba(99,102,241,.08),transparent 60%)}.cta-title{font-size:28px;font-weight:700;margin:0 0 12px;position:relative}.cta-subtitle{font-size:15px;color:#64748b;margin:0 0 28px;position:relative}.landing-footer{position:relative;z-index:1;border-top:1px solid rgba(255,255,255,.04);padding:32px 40px}.footer-content{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.footer-brand{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.footer-text{font-size:12px;color:#475569;margin:0}.scroll-animate{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}.scroll-animate.animate-in{opacity:1;transform:translateY(0)}@media (max-width: 768px){.landing-nav{padding:12px 20px}.nav-links a{display:none}.hero-section{padding:120px 20px 40px}.features-section{padding:60px 20px}.features-grid{grid-template-columns:1fr;gap:12px}.steps-container{flex-direction:column}.steps-section{padding:60px 20px}.cta-section{padding:20px 20px 60px}.footer-content{flex-direction:column;gap:12px;text-align:center}}@media (max-width: 480px){.hero-actions{flex-direction:column;width:100%}.btn-primary,.btn-secondary{width:100%;justify-content:center}}.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column-reverse;gap:8px;pointer-events:none}.toast-item{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;font-size:13px;font-weight:500;font-family:Outfit,sans-serif;background:#0e121ef2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.06);box-shadow:0 8px 32px #0006,0 0 0 1px #ffffff08;color:#f8fafc;min-width:280px;max-width:420px;animation:toastSlideIn .35s cubic-bezier(.16,1,.3,1)}.toast-success{border-left:3px solid #10b981}.toast-error{border-left:3px solid #f43f5e}.toast-warning{border-left:3px solid #f59e0b}.toast-info{border-left:3px solid #0ea5e9}.toast-icon{flex-shrink:0;display:flex;align-items:center}.toast-message{flex:1;line-height:1.4}.toast-close{flex-shrink:0;background:none;border:none;color:#475569;cursor:pointer;padding:2px;border-radius:4px;display:flex;align-items:center;transition:color .15s,background .15s}.toast-close:hover{color:#f8fafc;background:#ffffff0f}@keyframes toastSlideIn{0%{opacity:0;transform:translate(40px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}:root{--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", monospace;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .06), 0 2px 4px -2px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .1), 0 8px 16px -6px rgba(0, 0, 0, .1);--shadow-glow: 0 0 16px var(--accent-glow);--transition-all: all .2s cubic-bezier(.4, 0, .2, 1);--color-rose: #f43f5e;--color-cyan: #06b6d4;--color-amber-hover: #d97706}.theme-dark{--bg-primary: #090b11;--bg-secondary: #0e121e;--bg-tertiary: #171c2d;--accent-glow: rgba(14, 165, 233, .15);--color-text-primary: #f8fafc;--color-text-secondary: #94a3b8;--color-text-muted: #475569;--color-border: #1e293b;--color-border-hover: #334155;--color-indigo: #0ea5e9;--color-indigo-hover: #0284c7;--color-emerald: #10b981;--color-emerald-hover: #059669;--color-edge: #0284c7;--color-grid: #181f30;--color-amber: #fbbf24;--color-fk: #06b6d4;--color-row-hover: rgba(255, 255, 255, .03);--header-bg: #090b11;--sidebar-bg: #0e121e;--input-bg: #090b11}.theme-light{--bg-primary: #f5f7fb;--bg-secondary: #ffffff;--bg-tertiary: #fafbfc;--accent-glow: rgba(2, 132, 199, .08);--color-text-primary: #1e293b;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-border: #e2e8f0;--color-border-hover: #cbd5e1;--color-indigo: #0284c7;--color-indigo-hover: #0369a1;--color-emerald: #10b981;--color-emerald-hover: #047857;--color-edge: #0284c7;--color-grid: #e2e8f0;--color-amber: #d97706;--color-fk: #0891b2;--color-row-hover: rgba(0, 0, 0, .02);--header-bg: #ffffff;--sidebar-bg: #ffffff;--input-bg: #f8fafc}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--color-text-primary);overflow:hidden;height:100vh;width:100vw;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .2s ease,color .2s ease}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}.glass-panel{background:var(--bg-secondary);border:1px solid var(--color-border);box-shadow:var(--shadow-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border-radius:6px;font-family:var(--font-sans);font-weight:500;font-size:13px;cursor:pointer;border:1px solid transparent;transition:var(--transition-all);text-decoration:none;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.98)}.btn-primary{background-color:var(--color-indigo);color:#fff!important}.btn-primary:hover{background-color:var(--color-indigo-hover);box-shadow:0 0 14px #6366f159}.btn-secondary{background-color:transparent;border-color:var(--color-border);color:var(--color-text-secondary)}.btn-secondary:hover{border-color:var(--color-border-hover);color:var(--color-text-primary);background-color:var(--color-row-hover)}.btn-emerald{background-color:var(--color-emerald);color:#fff!important}.btn-emerald:hover{background-color:var(--color-emerald-hover);box-shadow:0 0 14px #10b98159}.tabs-container{display:flex;border-bottom:1px solid var(--color-border);background-color:var(--header-bg);padding:0 8px;gap:4px}.tab-btn{padding:14px 20px;background:none;border:none;color:var(--color-text-secondary);font-family:var(--font-sans);font-size:13px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;transition:var(--transition-all);letter-spacing:.02em}.tab-btn:hover{color:var(--color-text-primary);background-color:var(--color-row-hover)}.tab-btn.active{color:var(--color-indigo);border-bottom-color:var(--color-indigo)}.theme-dark .cm-editor span[class*=keyword],.theme-dark .cm-editor span[class*=operator],.theme-dark .cm-editor span[class*=modifier],.theme-dark .cm-editor span[class*=builtin],.theme-dark .cm-editor span[class*=standardKeyword]{color:#38bdf8!important;font-weight:600}.theme-dark .cm-editor span[class*=type],.theme-dark .cm-editor span[class*=typeName]{color:#34d399!important}.theme-dark .cm-editor span[class*=string]{color:#fda4af!important}.theme-dark .cm-editor span[class*=comment]{color:#64748b!important;font-style:italic}.theme-dark .cm-editor span[class*=variableName],.theme-dark .cm-editor .cm-content{color:#f8fafc!important}.theme-dark .cm-editor span[class*=number]{color:#f59e0b!important}.theme-light .cm-editor span[class*=keyword],.theme-light .cm-editor span[class*=operator],.theme-light .cm-editor span[class*=modifier],.theme-light .cm-editor span[class*=builtin],.theme-light .cm-editor span[class*=standardKeyword]{color:#1e40af!important;font-weight:600}.theme-light .cm-editor span[class*=type],.theme-light .cm-editor span[class*=typeName]{color:#059669!important}.theme-light .cm-editor span[class*=string]{color:#dc2626!important}.theme-light .cm-editor span[class*=comment]{color:#94a3b8!important;font-style:italic}.theme-light .cm-editor span[class*=variableName],.theme-light .cm-editor .cm-content{color:#1e293b!important}.theme-light .cm-editor span[class*=number]{color:#b45309!important}.cm-editor{font-family:var(--font-mono)!important;font-size:13px!important}.cm-gutters{border-right:1px solid var(--color-border)!important;background-color:var(--bg-secondary)!important;color:var(--color-text-muted)!important}.theme-dark .cm-activeLine{background-color:#6366f114!important}.theme-dark .cm-selectionBackground,.theme-dark ::selection{background-color:#6366f140!important}.theme-light .cm-activeLine{background-color:#4f46e50a!important}.theme-light .cm-selectionBackground,.theme-light ::selection{background-color:#4f46e51f!important}
